液晶顯示與單片機的接口與編程方法
以上所有的字模數據都存放在單片機W78E58 的程序存儲器中,如用到的漢字、圖形較多,可選用較大容量的程序存儲器。
通用子程序:通用子程序分左半屏、右半屏寫指令代碼子程序和寫顯示數據子程序。液晶顯示驅動器HD16202 內部有個忙標志寄存器,當BF=1 時,表示內部操作正在運行,不能接受外部數據或指令。下面子程序中設指令代碼寄存器為COMM,數據寄存器為DATA。
?。–OMM EQU 20H /*指令寄存器*/ DATA EQU 21H /*數據寄存器*/)
?。?) 左半屏寫指令子程序
WR_CMD1: MOV DPTR,#CRADR1 ;/*讀狀態(tài)字口地址*/ WAIT1: MOVX A,@DPTR ;/* 讀狀態(tài)字 */
JB ACC.7,WAIT1 ;/*判忙標志BF,如BF=1 忙,等待*/
MOV DPTR,#CWADR1 ;/*寫指令字口地址*/
MOV A,COMM ;/*取指令代碼*/
MOVX @DPTR,A ;/*寫指令代碼*/
RET
?。?)左半屏寫數據子程序
WR_DATA1:MOV DPTR,#CRADR1 ;/*讀狀態(tài)字口地址*/
WAIT11: MOVX A,@DPTR ;/* 讀狀態(tài)字 */
JB ACC.7,WAIT11 ;/*判忙標志BF,如BF=1 忙,等待*/
MOV DPTR,#DWADR1 ;/*寫數據字口地址*/
MOV A,DATA ;/*取數據/
MOVX @DPTR,A ;/*寫數據*/
RET
?。?)右半屏寫指令子程序WR_CMD2 和右半屏寫數據子程序WR_DATA2 的編制同左半屏子程序相同,只是對應口地址不同。
8X16 字符顯示子程序:MGLS12864 液晶顯示屏由二片HD61202 控制,LCD 顯示中應盡量避免一個字符一半在左半屏顯示,另一半在右半屏顯示的情況。設列地址寄存器為COLUMN,頁地址寄存器為PAGE,要顯示的字符代碼寄存器為ASCIICODE,W78E58 內R
評論