У меня вот так
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
;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 = сюда у меня ничего не подключено
есть такой параметр tAS - время предустановки команды
+ мин время импульса стробирования - 0,23 мкс при Fo=16 МГц
у вас импульс будет 0,0625 мкс, что меньще допустимого
см. ДШ
Хммм.... Надо подумать... И почитать тоже. Хотя странно... статический курсор выводится же.И мигающее знакоместо... Может действительно не хватает задержки для того чтобы контроллер ЖК переварил эту команду...
Блин. Не моргает подчеркивание!!! Я уже отдельный строб замутил по всем правилам - пофигу. Просто выводится но не моргает. Может он вобще не моргает? Но я собирал таймер по книге Заеца, он в коде для курсора делает все те же приседания что и я - там моргает. Че за финя.....
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
собрал вечерком схемку, прошил всё работало ... утром продолжаю работать, вдруг экран погас ... (питания подсветки не подавалось, просто исчезла индикация) ... 3 нога была кинута на землю через 2К (выявлено эксперементальным путём) ... замыкаю на землю - индикатор включется (всё в чёрных квадратиках - полная засветка), размыкаю, оставляя только 2К - работает некоторое время, показывая информацию, потом опять гаснет ... постепенно время работы сокращалось ... сейчас замыкаю 3 ногу на землю, отпускаю - на долю секунды проглядываются буквы, потом опять всё гаснет нафигх
переменника под рукой нет ... но порог отключения находится где-то между 700 и 1К ...
Ну вот чё за нафиг, а?
ЗЫ: контроллер и память индикатора работают нормально - траблы только с отображением, то есть с контрастностью - она то на полную, то выключена ... индикатор новый, только из магазина ...
PS2: нашёл подстроечный резистор ... ёмана ... поймать границу вкл-выкл практически нереально ... вроде начинает работать, потом хряк - опять отключается ..
У меня было такое. Первая причина: Подсветка жрет болше чем указано производителем - т.е. не хватает питания. Отключить ее нафиг (временно).
Вторая причина: плохой пропай проводов или сами провода. Обычно когда собираешь все быстро - не сильно озадачиваешься материаллами. Как всегда ставишь то, что под рукой. Мож сопля где какая.
Черные квадраты при включении говорят о том, что ЖКИ не успел запуститься а МК уже начал инициализацию. А если есть проблемы с проводами то инициализация вобще уходит в космос. Кстати Протеус этого не замечает, ему и контрастность и задерка переж включение побоку. А когда собираешь девайс начинаеь париться.
У меня было так. Включаю - черные квадраты, нажмаю кнопку Reset все запускается.
Вылечил тем что перед инициализацией сделал задержку?
оказалось до банальности просто - оба резистора оказались битыми ... купил в магазинчике сегодня новый на 20К переменник - всё заработало как часы ... во всяком случае два часа работает стабильно.
переход на С прошёл совершенно безболезненно путём использования библиотеки lcd.h ... с первого раза заработал подсоединённый по схеме в визарде CodeVision WH1602 ... объём кода, что характерно, не намного больше, чем аналогичная байда на ассемблере.
Странно только, что CodeVision не разумеет подключения по порту D. Ну и фиг с ним - на В тоже нормально работает по 4 битам ...