Config 1wire = Portd.3 Dim Byte0 As Byte Dim Byte1 As Byte Dim Sign As String * 1 Dim T As Byte Dim T1 As Byte Dim T2 As Byte 'Dim Text As String * 6 Dim R As Byte Dim B As Bit
Nokia_spi_data Alias Portc.4 : Config Portc.4 = Output 'MOSI - можно задать любую ножку Nokia_spi_clock Alias Portc.5 : Config Portc.5 = Output 'SCK - можно задать любую ножку Nokia_cs Alias Portc.3 : Config Portc.3 = Output 'CS - можно задать любую ножку Display_reset Alias Portc.2 : Config Portc.2 = Output 'LCD_RESET - можно задать любую ножку Display_reset = 1 Nokia_cs = 1 Declare Sub Nokia_init() 'Nokia_data_9 = &HC8 : Gosub Nokia_out_cmd 'Nokia_data_9 = &HA0 : Gosub Nokia_out_cmd Declare Sub Nokia_clear() Declare Sub Nokia_text(byval Nokia_text As String , Byval Uvel As Byte , Byval Nokia_inversion As Byte , Byval Szatie As Byte) Declare Sub Nokia_picture(bylabel Nokia_label As Word) Declare Sub Nokia_pos(byval Nokia_x As Byte , Byval Nokia_y As Byte) 'Dim Text As String * 10 Dim W As Iram Word At 8 Overlay Dim Nokia_data_9 As Integer Dim Nokia_data As Byte Dim Text As String * 15 'Dim T As Byte Call Nokia_init() ' Инициализируем дисплей 'Nokia_data_9 = &HC8 : Gosub Nokia_out_cmd Nokia_data_9 = 140 'контрастность х+128 Gosub Nokia_out_cmd '******************************************************************************* Config Clock = Soft 'Async = On Config Timer2 = Timer , Async = On , Prescale = 128 ' Делитель 32768 / 128 / 256 = 1 сек (прерывание TIMER2 = 2 раза в секунду) '---------- Time$ = "02:20:00" '---------- Настройка пониженного энергопотребления МК ---------- Assr.3 = 1 : Waitms 100 ' Включить НЧ-генератор AS2 и подождать стабилизации амплитуды генератора ' При включении бита AS2 (3) в регистре ASSR (ASSR.3), становится возможным применение режима ' "Powersave" - разновидность спящего режима. Пробуждение МК от TIMER2 ' Mcucr = &B10000000 ' Разрешаем режим пониженного энергопотребления Power Idle Mcucr = &B10110000 ' Разрешаем режим пониженного энергопотребления Power Save 'Prr = &B10111111 'Acsr = &B10000000 Enable Timer2 Enable Interrupts
Do Display_reset = 1 Nokia_cs = 1 'Waitms 10 'Call Nokia_clear() If _sec = 0 Then ' _sec = 55 'Text = "" ' If _hour < 10 Then Text = "0" ' Text = Text + Str(_hour) ' Text = Text + ":" ' If _min < 10 Then Text = Text + "0" ' Text = Text + Str(_min) ' Call Nokia_init() 'очищаем дисплей ' Call Nokia_pos(1 , 1) ' Call Nokia_text(text , 4 , 0 , 3) ' End If Config Portd.4 = Output Portd.4 = 1 'Call Nokia_picture(bunny) 1wreset If Err = 1 Then 'если при опросе небыло ответа ставим флаг ошибки Wait 1 Else ' иначе, если ошибки не было, продолжаем опрос датчика 1wwrite &HCC ' Выдаем команду чтения ПЗУ 1wwrite &H44 ' Запуск измерения Waitms 750 ' Ждем окончания преобразования 1wreset 1wwrite &HCC 1wwrite &HBE ' Команда чтения ОЗУ датчика Byte0 = 1wread() ' Читаем нулевой байт Byte1 = 1wread() ' Читаем первый байт If Byte1 > 248 Then ' Проверка на отрицательность температуры Byte0 = &HFF - Byte0 Byte1 = &HFF - Byte1 Sign = "-" Else Sign = "+" End If T1 = Byte0 / 16 ' Сдвигаем нулевой байт вправо на 4 бита (2*2*2*2=16) T2 = Byte1 * 16 ' Сдвигаем первый байт влево на 4 бита (2*2*2*2=16) T1 = T1 + T2 ' Формируем результат для вывода на дисплей ' *** Коррекция полученных значений If Sign = "-" Then T1 = T1 + 1 ' для корректного вывода отрицательных температур
'End If If Sign = "+" And T1 = 0 Then Sign = " " ' убираем знак "+" с нулевой температуры
'End If 'End If Text = Sign + Str(t1) 'Text = Text + " C" Call Nokia_init() Call Nokia_pos(0 , 2) Call Nokia_text(text , 8 , 0 , 4) Call Nokia_pos(80 , 2) Call Nokia_text( "o" , 2 , 0 , 2) Portd.3 = 0 Portd.4 = 0 End If End If
долго бился с потреблением,в итоге получилось так-перед погружением в сон все ноги либо на вход,либо лог ноль на выходе,питание на DS18B20 тоже с порта-когда надо питание подаю,замер температуры,питание снимаю много мороки с выводом ресет дисплея-его нельзя опускать в ноль так как он сбросится,если эту ногу оставить включенной то потребление примерно на 1 ма выше,пришлось припаять к ноге ресет RC цепь(к мк его не цепляю,резистор 47 ком между ресет и плюс питания,конденсатор 0,1 мкф между ресет дисплея и минусом),дисплей сбрасывается при подаче питания,из-за чего пришлось перед очередным выводом информации на дисплей его инициализировать по новой-стало надежнее увеличил контрастность-стало 180 мкампер,так что и она ест немного,раз в минуту потребление 5 ма
У вас неродной дисплей. Я не правил прошивку под них. Либо вам нужно найти оригинальный дисплей от Нокии 3310, либо собирайте вариант мегатермо 2 на дисплее от Нокии 1100.
Gordon Shumway, rjn2 Дисплеи 1100 и 5110 не имею, а есть целых 3 дисплея 3310 снятых с работающих телефонов, но на всех одна и та же картина. Ранее, на 1 странице, ya-zp написал, что собирал термометр с дисплеем, имеющим надпись "NOKIA", но со своей прошивкой. Я написал здесь сообщение в надежде, что кто-нибудь собрал устройство с аналогичным дисплеем и с правленой или своей прошивкой и сможет ею поделиться. К ya-zp я обращался напрямую, но пока ответа не получил. Конечно, если надежда не сбудется, то буду искать дисплей 1100, 5110 или 3310 с двумя улыбками.
Gordon Shumway, rjn2 Дисплеи 1100 и 5110 не имею, а есть целых 3 дисплея 3310 снятых с работающих телефонов
Дисплеи 5110 и 3310 на одном чипе, поэтому взаимозаменяемы. 3310, как я понял, бывают разные, в телефонах работают нормально, но здесь библиотека нормально позволяет работать только с оригинальными дисплеями или приближенным к ним.
Дисплей 1100 - совсем на другом чипе, поэтому с ним был сделан следующий проект - Мегатермо часть вторая. Рекомендую заняться именно им, там получилось сделать большие цифры, да и вообще он мне больше нравится...
Дисплей 1100 - совсем на другом чипе, поэтому с ним был сделан следующий проект - Мегатермо часть вторая. Рекомендую заняться именно им, там получилось сделать большие цифры, да и вообще он мне больше нравится...
Мне очень понравился термометр с дисплеем 1100. Просто были в наличии 3310, поэтому на нём и собрал. Занялся поиском дисплея 1100. Как найду соберу на нём. Спасибо.
Здравствуйте! Я так понял, что по Мегатермо c дисплеем 1100 вопросы можно задавать здесь, т.к отдельной темы я не нашёл. По схеме два левых контакта дисплея соединены, а на плате нет. Как правильно? Вроде бы должны соединяться.
Зарегистрирован: Пт сен 02, 2016 07:05:42 Сообщений: 1
Рейтинг сообщения:0
Решил собрать это интересное устройство. Так как предполагаю использовать питание не от батареек, а от БП. В схему добавил стабилизатор 78L33. Кому интересно выкладываю свой проект в DipTrace, не просите, в LAY переделывать не буду. https://yadi.sk/d/9NE-iMP03H29wx
а смысл? чем оно мешает кроме того там нет управления релей тока замер
_________________ ZМудрость(Опыт и выдержка) приходит с годами. Все Ваши беды и проблемы, от недостатка знаний. Умный и у дурака научится, а дураку и .. Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения