今天是分享喜悅的日子,近十天的檢查調(diào)試,每走一步都是相當?shù)碾y,辛酸就不講了。今天lcd顯示終于完成。字符顯示的那一刻真的是很開心。波形大的是51單片機psen引腳,波形小的是P2.7引腳。
29引腳脈沖信號
P2.7輸出波形
一,74ls138同時只能片選1只引腳,而lcd rs,rw 需要兩者引腳,所以用138作lcd rs rw控制不合適。
二,51單片機的EA引腳要接
三,lcd第三腳,就是調(diào)整對比度的要接,不接不顯示。
四,P0口驅(qū)動lcd,不加上拉電阻,可以顯示
五,12兆晶振51單片機 總線法驅(qū)動lcd1602,12864,時序沒問題
下面是測試代碼
SJMP MAIN
WRCMD: //寫指令子程序
push ACC
lcall READ12864BF
POP ACC
MOV A,R3
MOV DPTR,#009000H //lcd寫指令地址 9000H
MOVX @DPTR,A
RET
WRDAT: //寫數(shù)據(jù)子程序
push ACC
lcall READ12864BF
POP ACC
MOV A,R4
MOV DPTR,#00B000H //lcd寫寫數(shù)據(jù)地址 B000H
MOVX @DPTR,A
RET
INIT: //lcd初始化程序
MOV R3,#0X38
LCALL WRCMD
MOV R3,#0X38
LCALL WRCMD
MOV R3,#0X0c
LCALL WRCMD
MOV R3,#0X06
LCALL WRCMD
MOV R3,#0X01
LCALL WRCMD
RET
MAIN: //主程序
LCALL INIT
D1:
MOV R3,#0x80
LCALL WRCMD
MOV R4,#0X35 //5
LCALL WRDAT
MOV R3,#0x81
LCALL WRCMD
MOV R4,#0X31 //1
LCALL WRDAT
MOV R3,#0x82
LCALL WRCMD
MOV R4,#0X48 //H
LCALL WRDAT
MOV R3,#0x83
LCALL WRCMD
MOV R4,#0X45 //E
LCALL WRDAT
MOV R3,#0x84
LCALL WRCMD
MOV R4,#0X49 //I
LCALL WRDAT
MOV R3,#0x85
LCALL WRCMD
MOV R4,#0X2E //.
LCALL WRDAT
MOV R3,#0x86
LCALL WRCMD
MOV R4,#0X43 //C
LCALL WRDAT
MOV R3,#0x87
LCALL WRCMD
MOV R4,#0X4F //O
LCALL WRDAT
MOV R3,#0x88
LCALL WRCMD
MOV R4,#0X4D //M
LCALL WRDAT
SJMP $
READ12864BF: //判斷忙子程序
MOV DPTR,#0XD000 //lcd讀指令地址 D000H
MOVX A,@DPTR
JB ACC.7,READ12864BF
ret
END
|