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