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Мудрость(Опыт и выдержка) приходит с годами. Все Ваши беды и проблемы, от недостатка знаний. Умный и у дурака научится, а дураку и .. Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения