找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3098|回復: 0
打印 上一主題 下一主題
收起左側(cè)

51單片機液晶顯示漢字匯編程序

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:564281 發(fā)表于 2019-6-18 08:38 來自手機 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
實驗名稱
LCD顯示漢字
實驗目的
用LCD 和8051顯示任意漢字
實驗原理
LCD顯示漢字
LCD元器件:

引腳說明:VCC:電源
                  CV:液晶顯示器對比度調(diào)整端
                  GND:電源接地
                  E:使能端,下降沿有效,對RS和DATA進行取樣和執(zhí)行操作
                            RS:數(shù)據(jù)命令選擇端,高電平:數(shù)據(jù);低電平:指令。
                  RW:讀寫。高電平:讀;低電平:寫。
                  D7-D0:輸入數(shù)據(jù)或指令。
由P1口把信號傳送到D7-D0。
當E使能端由高電平跳成低電平時,LCD執(zhí)行命令。
由P3.4、P3.5接LCD的控制引腳RS和RW,輸送指令。
其中01H代表清空顯示;RS高、RW低,代表寫入D7-D0的數(shù)據(jù);RS高、RW高,代表讀出D7-D0的數(shù)據(jù);
液晶顯示模塊需要在執(zhí)行每一個指令之前要確認忙標志為低電平。否則指令失效。
顯示字符要先輸入地址。
實驗步驟
初始化控制使能信號,使LCD工作。
設(shè)置總線方式,清屏
設(shè)置顯示方式
取一個數(shù)并顯示
延時
若沒有顯示完16個字符,則繼續(xù)4步,否則結(jié)束程序。
實驗代碼

ORG 0000H                        ;程序初始地址
RS  EQU  P3.3                ;賦值操作,初始化控制接口
RW  EQU  P3.4
E   EQU  P3.5
COM EQU  20H                ;命令字暫存單元
CLR RS                                ;復位控制接口
CLR RW
MOV P1,#30H                        ;向LCD寫入3條30H指令,使之復位
MOV R7,#03H
INT: SETB  E
        CLR E
        ACALL DELAY                        ;調(diào)用延時程序
        DJNZ  R7,INT
        MOV   P1,#38H                ;設(shè)置8位數(shù)據(jù)總線方式
        SETB  E                                ;控制使能端,產(chǎn)生下降沿
        CLR   E
        MOV   COM,#01H                ;清空屏幕指令01H
        ACALL PR1                        ;調(diào)用寫指令程序
        MOV   COM,#06H                ;設(shè)置輸入方式:AC+1計數(shù),光標右移一個字符
        ACALL PR1                        ;調(diào)用寫指令程序
        MOV   COM,#0FH                ;設(shè)置顯示方式:開顯示,光標顯示,閃爍
        ACALL PR1                        ;調(diào)用寫指令程序
        MOV   R6,#16H                ;用R6作為字符計數(shù)器,即滿16個字符即停止
        MOV   DPTR,#DATA1        ;調(diào)用DATA表中的字符
        MOV   R4,#0                        ;由R4作為指針
DISPLY:
        ACALL DELAY                        ;調(diào)用判斷忙程序
        MOV   A,R4                        ;將表中要顯示的字符取到A中
        MOVC  A,@A+DPTR
        SETB  RS                                ;RS高,RW低,代表要寫入數(shù)據(jù)
        CLR   RW
        MOV   P1,A                        ;將字符輸出到P1口
        SETB  E                                ;控制使能端,執(zhí)行指令
        CLR   E
        INC   R4                                ;指針下移,指向下一個字符
        DJNZ  R6,DISPLY                 ;只有顯示完16個字符即可退出
        SJMP  $                                ;循環(huán),直至出現(xiàn)中斷
PR1:                                                ;寫指令程序
        ACALL DELAY                        ;調(diào)用延時/判斷忙程序
        CLR   RW                        ;設(shè)置讀寫接口為低電平,即進行寫操作
        MOV   P1,COM                ;將命令字暫存的COM值賦給P1接口,實現(xiàn)輸出
        SETB  E                                ;控制使能端,執(zhí)行指令
        CLR   E
        RET
DELAY:MOV   R1,#04H                ;延時程序
DLY1:DJNZ  R1,DLY1
        RET
DATA1: DB 0C6H
       DB 0FAH        ;要寫入的字符
END


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂1 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表