新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > AT89S52與LCD1602(asm/c51)

        AT89S52與LCD1602(asm/c51)

        作者: 時間:2016-11-10 來源:網絡 收藏

        LCD1602 DDRAM地址映射表:

        本文引用地址:http://www.104case.com/article/201611/317448.htm

        第一行地址80H

        第二行地址C0H

        單片機與LCD1602接口

        ;///////////////////////////////////////////////
        項目名稱:AT89S52與LCD1602接口實驗
        功能:在LCD1602的第一行顯示WWW.LZY.EDU.CN:
        在LCD1602的第二行顯示0830--3150897
        ;///////////////////////////////////////////////
        RS EQUP2.4;P2.4接LCD的RS

        RW EQUP2.5;P2.5接LCD的RW

        E EQUP2.6;P2.6接LCD的E
        DRIR EQUP0;P0口接LCD的DB0-DB7
        CWDK EQU 40H
        DATK EQU 41H

        ORG 0000H
        SJMP START
        ORG 0030H
        ;主程序
        START:MOV SP,#80H
        LCALL RESTE
        LCALL TOPDA
        LCALL BOTDA
        SJMP $
        ;函數INCWD 指令寫入程序
        INCWD:CLR RS
        CLR RW
        MOV A,CWDK
        MOV DRIR,A
        SETB E
        NOP
        NOP
        CLR E
        LCALL DELAY
        RET
        ;函數INDAT顯示數據寫入程序
        INDAT:SETB RS
        CLR RW
        MOV A,DATK
        MOV DRIR,A
        SETB E
        NOP
        NOP
        CLR E
        LCALL DELAY
        RET
        ;函數RESTELCD1602初始化程序
        RESTE:MOV CWDK,#00111000B;工作方式 8位數據接口,二行顯示,5*7點陣
        LCALL INCWD
        MOV CWDK,#00000001B;AC清0 光標復位
        LCALL INCWD
        MOV CWDK,#00001111B;開顯示 開光標 開閃爍
        LCALL INCWD
        MOVCWDK,#00011100B;屏幕不動光標自動右移
        LCALL INCWD
        RET
        ;函數TOPDA LCD1602第一行顯示程序
        TOPDA:MOV CWDK,#80H
        LCALL INCWD
        MOV R2,#10H
        MOV R3,#00H
        MOV DPTR,#TABL1
        D1:MOV A,R3
        MOVC A,@A+DPTR
        MOV DATK,A
        LCALL INDAT
        LCALL DEL1S
        INC R3
        DJNZ R2,D1
        RET
        ;函數BOTDA LCD1602第二行顯示程序
        BOTDA:MOV CWDK,#0C0H
        LCALL INCWD
        MOV R2,#10H
        MOV R3,#00H
        MOV DPTR,#TABL2
        D2:MOV A,R3
        MOVC A,@A+DPTR
        MOV DATK,A
        LCALL INDAT
        LCALL DEL1S
        INC R3
        DJNZR2,D2
        RET
        ;函數DELAY 480us延時
        DELAY:MOV R1,#0A0H
        E1:NOP
        DJNZ R1,E1
        RET
        ;函數DEL1S 1S延時
        DEL1S:MOV R5,#20
        E2:MOV R6,#20
        E3:MOV R7,#248
        DJNZ R7,$
        DJNZ R6,E3
        DJNZ R5,E2
        RET

        TABL1:DB "WWW.LZY.EDU.CN"
        TABL2:DB " 0830---3150897 "
        END

        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

        付帶閃爍光標的LCD1602字符顯示

        ;///////////////////////////////////////////////////

        ;AT89S52與LCD1602接口

        ;目的:1602第一行顯示:WWW.SINA.COM.CN

        ;第二行顯示:Visual Basic net

        ;//////////////////////////////////////////////////

        RS EQU P2.4

        RW EQU P2.5

        EEQU P2.6

        LDB EQU P0

        DAT DATA 40H

        COM DATA 41H

        ORG 0000H

        SJMP START

        ORG 0030H

        ;主程序

        START:MOV SP,#50H

        LCALL DEL40;1602復位延時

        LCALL LRET;LCD1602初始化

        LCALL TOPD;顯示第一行

        LCALL BOMD;顯示第二行

        LJMP START

        ;函數BUSY忙標志檢測

        BUSY: CLR RS

        SETB RW

        E1:MOV LDB,#0FFH

        SETB E

        MOV A,LDB

        CLR E

        JB ACC.7,E1

        RET

        ;函數WCOM LCD1602指令寫入子程序

        WCOM: LCALL BUSY

        CLR RS

        CLR RW

        MOV A,COM

        MOV LDB,A

        SETB E

        NOP

        CLR E

        RET

        ;函數WDAT LCD1602顯示數據寫入子程序

        WDAT: LCALL BUSY

        SETB RS

        CLR RW

        MOV A,DAT

        MOV LDB,DAT

        SETB E

        NOP

        CLR E

        RET

        ;函數LRET LCD1602初始化子程序

        LRET: MOV COM,#00000001B;清屏

        LCALL WCOM

        MOV COM,#00111000B;功能設定8bit數據接口,兩行顯示,5*7點陣

        LCALL WCOM

        MOV COM,#00000110B;輸入方式設定AC加一,畫面不動

        LCALL WCOM

        MOV COM,#00001111B;開顯示,開光標,開閃爍

        LCALL WCOM

        MOV COM,#00000010B;光標復位

        LCALL WCOM

        MOV COM,#00010100B;光標右移

        LCALL WCOM

        RET

        ;函數TOPD LCD1602第一行顯示子程序

        TOPD: MOV COM,#80H

        LCALL WCOM

        MOV DPTR,#TAB1

        MOV R3,#10H

        MOV R4,#00H

        E2:MOV A,R4

        MOVC A,@A+DPTR

        MOV DAT,A

        LCALL WDAT

        LCALL DEL05

        INC R4

        DJNZ R3,E2

        RET

        ;函數BOMD LCD1602第二行顯示子程序

        BOMD: MOV COM,#0C0H

        LCALL WCOM

        MOV DPTR,#TAB2

        MOV R3,#10H

        MOV R4,#00H

        E3:MOV A,R4

        MOVC A,@A+DPTR

        MOV DAT,A

        LCALL WDAT

        LCALL DEL05

        INC R4

        DJNZ R3,E3

        RET

        ;函數DEL40 40MS延時

        DEL40:MOV R0,#160

        D1:MOV R1,#250

        DJNZ R1,$

        DJNZ R0,D1

        RET

        ;函數DEL05 0.5S延時

        DEL05:MOV R5,#2

        D3:MOV R0,#200

        D2:MOV R1,#248

        DJNZ R1,$

        DJNZ R0,D2

        DJNZ R5,D3

        RET

        ;顯示數據表

        TAB1:DB " WWW.SINA.COM.CN"

        TAB2:DB "Visual Basic net"

        END



        關鍵詞: AT89S52LCD160

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 武陟县| 渑池县| 聊城市| 滦南县| 阿克| 华宁县| 禹州市| 聂荣县| 静安区| 武隆县| 武清区| 义乌市| 遂溪县| 云浮市| 毕节市| 邵阳县| 会东县| 盐边县| 中山市| 新野县| 连城县| 韶关市| 襄城县| 长治县| 古浪县| 马尔康县| 炎陵县| 涡阳县| 肃北| 栾川县| 本溪市| 苗栗县| 内乡县| 页游| 漯河市| 勐海县| 麻阳| 洛宁县| 宜都市| 富源县| 乌鲁木齐县|