Ниже приведены исходные тексты подпрограммы на языке ассемблера ASM51, позволяющие записывать данные, инструкции в контроллер, считывать данные. Приведен так же примерный текст подпрограммы инициализации контроллера в режим восьми битного интерфейса, при работе с двумя строками. Отображение курсора и мигание отключено. Курсор установлен в начало первой (верхней) строки.
Использовать минимальное количество линий подключения контроллера ЖКИ к микро-ЭВМ позволяет соединение по схеме приведенной на рисунке
Далее приведены исходные тексты подпрограмм, позволяющие записывать инструкции и данные в контроллер при реализации четырёх битного интерфейса подключения.
B_RS BIT P1.2
B_WR BIT P1.3
B_E BIT P3.4
LCD_PORT EQU P1
;-------------------------------------
;ИНИЦИАЛИЗАЦИЯ HD44780
;-------------------------------------
LCDINIT: CLR B_E
MOV A,#28H ; 8-BIT 2-LINES
CALL WRC
MOV A,#0CH ; DISP-ON, CUR-OFF, FLASH-OFF
CALL WRC
MOV A,#06H ; MOVE CURSOR RIGHT
CALL WRC
CLS: MOV A,#01H ; CLEAR SCREEN
CALL WRC
RET
;-------------------------------------
;ЗАПИСЬ ДАННЫХ В HD44780 ИЗ АСС
;-------------------------------------
WRD: CALL WAIT_HD
MOV LCD_PORT,A
SETB B_RS
CLR B_WR
SETB B_E
CLR B_E
SWAP A
MOV LCD_PORT,A
SETB B_RS
CLR B_WR
SETB B_E
CLR B_E
RET
;-------------------------------------
;ЗАПИСЬ КОМАНДЫ В HD44780 ИЗ АСС
;-------------------------------------
WRC: CALL WAIT_HD
MOV LCD_PORT,A
CLR B_RS
CLR B_WR
SETB B_E
CLR B_E
SWAP A
MOV LCD_PORT,A
CLR B_RS
CLR B_WR
SETB B_E
CLR B_E
RET
;-------------------------------------
;ожидание ГОТОВНОСТИ HD44780
;-------------------------------------
WAIT_HD: PUSH ACC
MOV LCD_PORT,#0FFH
CLR B_RS
SETB B_WR
WAIT_LL: SETB B_E
MOV A,LCD_PORT
CLR B_E
MOV B,A
SETB B_E
MOV A,LCD_PORT
CLR B_E
MOV A,B
JB ACC.7,WAIT_LL
POP ACC
RET
;-------------------------------------
|
Надеемся, что приведённая примеры позволят Вам сэкономить время на освоении ЖКИ-модулeй с контроллерами, совместимыми с HD44780.
gaw.ru