эх что то ничего не получается.
Пытаюсь подключить HD44780 к меге 8. Программировать только учусь, пока только научился программить мегу под светодиоды (бегущий огонек с обучалки) но этих знаний не хватает, что б справится с моей задачей.
HD44780 подключаю по 4х битному режиму.
Схему подключения прикладываю ниже. Кому не сложно, не могли бы накидать простейший прогр. код для инициализации + вывода пары симвалов на экран? а дальше по примеру думаю разобрался бы. Очень помогли бы комментарии по ходу выполнения проги. Учусь под асм.
Нашел кучи готовых программ но там слишком много всего, слишком много не знакоммых комманд и операций. попроще бы как ниьудь
Заранее благодарен откликнувшимся
Пока только накидал программу инициализации, и то пока не уверен, сработает ли.
Код: Выделить всё
.include "m8def.inc"
.def Temp=R16
.def t0=R17
.def t1=R18
.cseg
.org 0
;***********инициализация порттов**************
ldi Temp,low(RAMEND)
out SPL,Temp
ldi Temp,high(RAMEND)
out SPH,Temp
ldi Temp,0b11110000 ;настройка портов
out DDRD, Temp
;***********инициализация жки******************
rcall Paus ; 20 мс
ldi Temp,0b00110000
out PortD, Temp
rcall Paus1 ; 40 мкс
ldi Temp,0b00110000
out PortD, Temp
rcall Paus1 ; 40 мкс
ldi Temp,0b00110000
out PortD, Temp
rcall Paus1 ; 40 мкс
ldi Temp,0b00100000
out PortD, Temp
rcall Paus1 ; 40 мкс
ldi Temp,0b00010000 ;установка параметров
out PortD, Temp
ldi Temp,0b10000000
out PortD, Temp
ldi Temp,0b00000000 ;выключение дисплея
out PortD, Temp
ldi Temp,0b10000000
out PortD, Temp
ldi Temp,0b00000000 ;очистка дисплея
out PortD, Temp
ldi Temp,0b00010000
out PortD, Temp
ldi Temp,0b00000000 ;установка режима ввода данных
out PortD, Temp
ldi Temp,0b01100000
out PortD, Temp
Inf:
rjmp Inf ;основной цикл
;***********задержка 20mc***************************
Paus:
ldi t0,246
ldi t1,80
loop:
dec t0
brne loop
dec t1
brne loop
ret
;***********задержка 40 мкс***************************
Paus1:
ldi t0,40
loop1:
dec t0
brne loop1
ret