RS BIT P3.5 ;ПЕРЕМЕННЫЕ ДЛЯ LCD
RW BIT P3.3
EN BIT P3.2
DATALCD EQU P1
ANYTIME: ;СОСТОЯНИЕ ДОЛЖНО СОХРАНЯТЬСЯ ВСЕ ВРЕМЯ ,
CLR EN ;КОГДА ЖКИ НЕ ЗАНЯТ
CLR RW
MOV DATALCD,#0FFH
RET
WRITEDATALCD: ;ВВОДИТ В ЖКИ БАЙТ ИЗ АСС
CLR RW ;С ПРЕДВАРИТЕЛЬНО УСТАНОВЛЕННЫМ RS
MOV DATALCD,A
SETB EN
NOP
CLR EN
CALL ANYTIME
RET
LOADDATALCD: ;ВЫВОДИТ ИЗ ЖКИ БАЙТ В АСС
CALL ANYTIME ;С ПРЕДВАРИТЕЛЬНО УСТАНОВЛЕННЫМ RS
SETB RW
SETB EN
NOP
NOP
MOV A,DATALCD
CLR EN
CLR RW
CALL ANYTIME
RET
BFCHECK: ;КОНТРОЛЬ ФЛАГА ЗАНЯТОСТИ BF (0=ГОТОВ)
CLR RS
CALL ANYTIME
SETB RW
SETB EN
MOV A,DATALCD
CLR EN
CLR RW
CALL ANYTIME
ANL A,#10000000B
JZ TORET
JMP BFCHECK
TORET:
SETB RS
RET
WAIT:
MOV B, #0FFH ;ЗАДЕРЖКА
DJNZ B, $
DJNZ ACC, WAIT
RET
INITLCD: ;Инициализация ЖКИ
CALL ANYTIME
MOV A,#0FFH ;>15 МС ПОСЛЕ ВКЛЮЧЕНИЯ
CALL WAIT
CLR RS
MOV A,#30H
CALL WRITEDATALCD
MOV A,#0FFH ;>4.1 МС
CALL WAIT
MOV A,#30H
CALL WRITEDATALCD
MOV A,#0FFH ;>100 МKС
CALL WAIT
MOV A,#30H
CALL WRITEDATALCD
MOV A,#0FFH
CALL WAIT
MOV A,#38H ;2 СТРОКИ, 5Х8, 8 БИТ
CALL WRITEDATALCD
MOV A,#0FFH
CALL WAIT
MOV A,#0FH ;ОТОБРАЖЕНИЕ С КУРСОРОМ
CALL WRITEDATALCD
MOV A,#0FFH
CALL WAIT
MOV A,#06H ;СДВИГ СЛЕВА-НАПРАВО
CALL WRITEDATALCD
MOV A,#0FFH
CALL WAIT
MOV A,#01H ;ОЧИСТКА ЭКРАНА ЖКИ
CALL WRITEDATALCD
MOV A,#0FFH
CALL WAIT
MOV A,#0A8H ;буква "П"
SETB RS
CALL WRITEDATALCD
CALL BFCHECK
E-mail: info@telesys.ru