TC1602液晶模塊與單片機接口字符顯示試驗
圖3: 1602液晶顯示一個(gè)字符“A”
前面我們進(jìn)行了液晶顯示一個(gè)字符“A”的實(shí)驗,接下來(lái)再來(lái)編一個(gè)稍復雜點(diǎn)的多字符顯示程序,相信你有了第一個(gè)程序的經(jīng)驗,下面的程序也就沒(méi)有什么難度了,畢竟程序都差不多。下面程序實(shí)現兩行顯示:第1行顯示"welcme!",第2行顯示"www.ourmpu.com"。顯示效果見(jiàn)下圖4。
;******** TC1602液晶模塊字符顯示試驗單片機匯編程序 ********
;******** 第一行顯示“welcme! ********
;******** 第二行顯示“www.ourmpu.com” ********
RS EQU P3.4
RW EQU P3.5
E EQU P3.6
ORG 0000H
AJMP START
ORG 0033H
START: MOV SP,#60H
MAIN: LCALL DELAY ;延時(shí)一段時(shí)間
MOV P1,#01H ;寫(xiě)指令01H,清屏
LCALL ENABLE
MOV P1,#38H ;寫(xiě)指令38H,設定LCD為16*2顯示,5*7點(diǎn)陣,8位數據接口
LCALL ENABLE
MOV P1,#0FH ;寫(xiě)指令0FH,顯示ON,光標ON,閃爍ON
LCALL ENABLE
MOV P1,#06H ;寫(xiě)指令06H,光標輸入方式增量移位
LCALL ENABLE
MOV P1,#80H ;第一行起始字符地址
LCALL ENABLE
MOV DPTR,#TABLE1 ;第一行顯示字符表頭地址
LCALL DISP ;顯示第一行數據
MOV P1,#0C0H ;第二行起始字符地址
LCALL ENABLE
MOV DPTR,#TABLE2 ;第二行顯示字符表頭地址
LCALL DISP ;顯示第二行數據
AJMP MAIN ;返回主程序循環(huán)
;-----------------
ENABLE: CLR RS ;寫(xiě)指令子程序(請參照1602LCD使用說(shuō)明書(shū))
CLR RW
CLR E
LCALL DELAY
SETB E
RET
;-----------------
DISP: MOV R1,#16 ;準備顯示一行16個(gè)字符
LOOP: MOV A,#00H ;將ACC清零
MOVC A,@A+DPTR ;查表取得要顯示的數據
LCALL DISP1 ;寫(xiě)入一個(gè)數據
INC DPTR ;數據表指針加1,準備取下一個(gè)數據
DJNZ R1,LOOP ;一行沒(méi)有顯示完就繼續
RET
;-----------------
DISP1: MOV P1,A ;寫(xiě)1字節數據到顯示端口
SETB RS ;寫(xiě)數據時(shí)序(請參照1602LCD使用說(shuō)明書(shū))
CLR RW
CLR E
LCALL DELAY
SETB E
RET
;-----------------
DELAY: MOV R7,#255 ;延時(shí)子程序
D1: MOV R6,#255
D2: DJNZ R6,D2
DJNZ R7,D1
RET
TABLE1: DB " welcome! "
TABLE2: DB " www.ourmpu.com "
END
圖4:《單片機驅動(dòng)1602液晶多字符顯示效果》
至此,我們學(xué)習了字符型液晶模塊1602在S51增強型實(shí)驗板上的應用及編程,相信大家看到一定這里都有點(diǎn)累了吧!現在回過(guò)頭來(lái)再看看,其實(shí)液晶模塊編程也并沒(méi)有想像的那么高深、難學(xué)!現在,你就可以充分發(fā)揮你聰明才智,按自己的意愿及要求來(lái)編寫(xiě)各種各樣的顯示應用程序了,如萬(wàn)年歷時(shí)鐘、溫度計、頻率計等,可以充分發(fā)揮你的想象達到你所需要的各種顯示效果。最后,讓我們再欣賞一個(gè)基于S51增強型實(shí)驗板開(kāi)發(fā)的1602液晶模塊高精度(4位小數)數字溫度計的圖片吧,見(jiàn)下圖5所示。
圖5:1602液晶顯示DS18B20高精度(4位小數)測溫效果
led顯示器相關(guān)文章:led顯示器原理
評論