/***************LCD显示*******************/
;;;;;;LCD初始化子程序;;;;;;;;;;;;
LCD_INT:MOV A,#00000001H //清屏
ACALL W_COM //调用读命令子程序
MOV A,#00111000B //传输8位数据,显示两行,使用5*7的字符
LCALL W_COM
MOV A,#00001100B //显示器开,光标关,字符不闪烁
LCALL W_COM
MOV A,#00000110B //字符不动,光标自动右移一格
LCALL W_COM
RET
;;;;;写入命令子程序(RS=0,RW=0);;;;;;
W_COM: ACALL F_BUSY
CLR E
CLR RS
CLR RW
SETB E
MOV P0,A
CLR E
RET
;;;;;写入数据子程序(RS=1,RW=0);;;;;
W_DAT: ACALL F_BUSY
CLR E
SETB RS
CLR RW
SETB E
MOV P0,A
CLR E
RET
;;;;;查忙子程序;;;;;;;;;;;;;
F_BUSY: PUSH ACC
MOV P0,#0FFH
CLR RS //忙标志
SETB RW
WAIT: CLR E //给使能端有效信号(下降沿触发)
SETB E
JB P0.7,WAIT //直接寻址位P0.7是否为1,为1则忙,继续等待
POP ACC
RET
END