/***************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