Работа с ЖКИ на контроллере HD44780 и его аналогах
- AndyWorld
- Прорезались зубы
- Сообщения: 209
- Зарегистрирован: Вт сен 30, 2008 09:23:14
- Откуда: Краснодарский край
У меня вот так
set_cursor: ;Установка курсора в указанный адрес
rcall set_adress
ldi temp,0b00001110
Здесь подчеркивание. но если я ставлю 0b00001111
появляется мигающее знакоместо.
push temp
swap temp
andi temp,0b00001111
ori temp,0b00010000
out lcd,temp
cbi lcd,e ;строб
pop temp
andi temp,0b00001111
ori temp,0b00010000
out lcd,temp
cbi lcd,e
rcall delay40mks
clr temp
out lcd,temp
ret
set_cursor: ;Установка курсора в указанный адрес
rcall set_adress
ldi temp,0b00001110
Здесь подчеркивание. но если я ставлю 0b00001111
появляется мигающее знакоместо.
push temp
swap temp
andi temp,0b00001111
ori temp,0b00010000
out lcd,temp
cbi lcd,e ;строб
pop temp
andi temp,0b00001111
ori temp,0b00010000
out lcd,temp
cbi lcd,e
rcall delay40mks
clr temp
out lcd,temp
ret
- AndyWorld
- Прорезались зубы
- Сообщения: 209
- Зарегистрирован: Вт сен 30, 2008 09:23:14
- Откуда: Краснодарский край
Мега 16, кварц 4.096 Мгц
;PortC0 = lcd(0) = 4 = нулевой (младший) бит 4-х битного режима
;PortC1 = lcd(1) = 5 = первый бит 4-х битного режима
;PortC2 = lcd(2) = 6 = второй бит 4-х битного режима (
;PortC3 = lcd(3) = 7 = третий (старший) бит 4-х битного режима
;PortC4 = lcd(4) = E = разрешение чтения/записи
;PortC5 = lcd(5) = R = выбор режима чтения/записи
;PortC6 = lcd(6) = A = адресный сигнал, выбор адрес/данные ("1"-данные, "0"-адрес)
;PortC7 = lcd(7) = x = сюда у меня ничего не подключено
;PortC0 = lcd(0) = 4 = нулевой (младший) бит 4-х битного режима
;PortC1 = lcd(1) = 5 = первый бит 4-х битного режима
;PortC2 = lcd(2) = 6 = второй бит 4-х битного режима (
;PortC3 = lcd(3) = 7 = третий (старший) бит 4-х битного режима
;PortC4 = lcd(4) = E = разрешение чтения/записи
;PortC5 = lcd(5) = R = выбор режима чтения/записи
;PortC6 = lcd(6) = A = адресный сигнал, выбор адрес/данные ("1"-данные, "0"-адрес)
;PortC7 = lcd(7) = x = сюда у меня ничего не подключено
- GP1
- Поставщик валерьянки для Кота
- Сообщения: 2401
- Зарегистрирован: Пт май 23, 2008 19:32:22
- Откуда: Россия, Волгоград
- Контактная информация:
начнем с того что выводить строб одновременно с данными - это не правильно
есть такой параметр tAS - время предустановки команды
+ мин время импульса стробирования - 0,23 мкс при Fo=16 МГц
у вас импульс будет 0,0625 мкс, что меньще допустимого
см. ДШ
Код: Выделить всё
ori temp,0b00010000
out lcd,tempесть такой параметр tAS - время предустановки команды
+ мин время импульса стробирования - 0,23 мкс при Fo=16 МГц
у вас импульс будет 0,0625 мкс, что меньще допустимого
см. ДШ
- Alex_A
- Родился
- Сообщения: 11
- Зарегистрирован: Пн май 18, 2009 11:25:28
- Откуда: samara
- Контактная информация:
гаснет, нехорошая редиска
странный глюк с WH1602 от Winstar
собрал вечерком схемку, прошил всё работало ... утром продолжаю работать, вдруг экран погас ... (питания подсветки не подавалось, просто исчезла индикация) ... 3 нога была кинута на землю через 2К (выявлено эксперементальным путём) ... замыкаю на землю - индикатор включется (всё в чёрных квадратиках - полная засветка), размыкаю, оставляя только 2К - работает некоторое время, показывая информацию, потом опять гаснет ... постепенно время работы сокращалось ... сейчас замыкаю 3 ногу на землю, отпускаю - на долю секунды проглядываются буквы, потом опять всё гаснет нафигх
переменника под рукой нет ... но порог отключения находится где-то между 700 и 1К ...
Ну вот чё за нафиг, а?
ЗЫ: контроллер и память индикатора работают нормально - траблы только с отображением, то есть с контрастностью - она то на полную, то выключена ... индикатор новый, только из магазина ...
PS2: нашёл подстроечный резистор ... ёмана ... поймать границу вкл-выкл практически нереально ... вроде начинает работать, потом хряк - опять отключается ..
собрал вечерком схемку, прошил всё работало ... утром продолжаю работать, вдруг экран погас ... (питания подсветки не подавалось, просто исчезла индикация) ... 3 нога была кинута на землю через 2К (выявлено эксперементальным путём) ... замыкаю на землю - индикатор включется (всё в чёрных квадратиках - полная засветка), размыкаю, оставляя только 2К - работает некоторое время, показывая информацию, потом опять гаснет ... постепенно время работы сокращалось ... сейчас замыкаю 3 ногу на землю, отпускаю - на долю секунды проглядываются буквы, потом опять всё гаснет нафигх
переменника под рукой нет ... но порог отключения находится где-то между 700 и 1К ...
Ну вот чё за нафиг, а?
ЗЫ: контроллер и память индикатора работают нормально - траблы только с отображением, то есть с контрастностью - она то на полную, то выключена ... индикатор новый, только из магазина ...
PS2: нашёл подстроечный резистор ... ёмана ... поймать границу вкл-выкл практически нереально ... вроде начинает работать, потом хряк - опять отключается ..
- AndyWorld
- Прорезались зубы
- Сообщения: 209
- Зарегистрирован: Вт сен 30, 2008 09:23:14
- Откуда: Краснодарский край
У меня было такое. Первая причина: Подсветка жрет болше чем указано производителем - т.е. не хватает питания. Отключить ее нафиг (временно).
Вторая причина: плохой пропай проводов или сами провода. Обычно когда собираешь все быстро - не сильно озадачиваешься материаллами. Как всегда ставишь то, что под рукой. Мож сопля где какая.
Черные квадраты при включении говорят о том, что ЖКИ не успел запуститься а МК уже начал инициализацию. А если есть проблемы с проводами то инициализация вобще уходит в космос. Кстати Протеус этого не замечает, ему и контрастность и задерка переж включение побоку. А когда собираешь девайс начинаеь париться.
У меня было так. Включаю - черные квадраты, нажмаю кнопку Reset все запускается.
Вылечил тем что перед инициализацией сделал задержку?
rcall Delay40mks
rcall DisplayInit
Вторая причина: плохой пропай проводов или сами провода. Обычно когда собираешь все быстро - не сильно озадачиваешься материаллами. Как всегда ставишь то, что под рукой. Мож сопля где какая.
Черные квадраты при включении говорят о том, что ЖКИ не успел запуститься а МК уже начал инициализацию. А если есть проблемы с проводами то инициализация вобще уходит в космос. Кстати Протеус этого не замечает, ему и контрастность и задерка переж включение побоку. А когда собираешь девайс начинаеь париться.
У меня было так. Включаю - черные квадраты, нажмаю кнопку Reset все запускается.
Вылечил тем что перед инициализацией сделал задержку?
rcall Delay40mks
rcall DisplayInit
- Alex_A
- Родился
- Сообщения: 11
- Зарегистрирован: Пн май 18, 2009 11:25:28
- Откуда: samara
- Контактная информация:
+
переход на С прошёл совершенно безболезненно путём использования библиотеки lcd.h ... с первого раза заработал подсоединённый по схеме в визарде CodeVision WH1602 ... объём кода, что характерно, не намного больше, чем аналогичная байда на ассемблере.
Странно только, что CodeVision не разумеет подключения по порту D. Ну и фиг с ним - на В тоже нормально работает по 4 битам ...
Странно только, что CodeVision не разумеет подключения по порту D. Ну и фиг с ним - на В тоже нормально работает по 4 битам ...

