新聞中心

AT89S52與LCD1602(asm/c51)

作者: 時(shí)間:2016-11-10 來(lái)源:網(wǎng)絡(luò) 收藏

LCD1602 DDRAM地址映射表:

本文引用地址:http://2s4d.com/article/201611/317448.htm

第一行地址80H

第二行地址C0H

單片機(jī)與LCD1602接口

;///////////////////////////////////////////////
項(xiàng)目名稱(chēng):AT89S52與LCD1602接口實(shí)驗(yàn)
功能:在LCD1602的第一行顯示W(wǎng)WW.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 $
;函數(shù)INCWD 指令寫(xiě)入程序
INCWD:CLR RS
CLR RW
MOV A,CWDK
MOV DRIR,A
SETB E
NOP
NOP
CLR E
LCALL DELAY
RET
;函數(shù)INDAT顯示數(shù)據(jù)寫(xiě)入程序
INDAT:SETB RS
CLR RW
MOV A,DATK
MOV DRIR,A
SETB E
NOP
NOP
CLR E
LCALL DELAY
RET
;函數(shù)RESTELCD1602初始化程序
RESTE:MOV CWDK,#00111000B;工作方式 8位數(shù)據(jù)接口,二行顯示,5*7點(diǎn)陣
LCALL INCWD
MOV CWDK,#00000001B;AC清0 光標(biāo)復(fù)位
LCALL INCWD
MOV CWDK,#00001111B;開(kāi)顯示 開(kāi)光標(biāo) 開(kāi)閃爍
LCALL INCWD
MOVCWDK,#00011100B;屏幕不動(dòng)光標(biāo)自動(dòng)右移
LCALL INCWD
RET
;函數(shù)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
;函數(shù)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
;函數(shù)DELAY 480us延時(shí)
DELAY:MOV R1,#0A0H
E1:NOP
DJNZ R1,E1
RET
;函數(shù)DEL1S 1S延時(shí)
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

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

付帶閃爍光標(biāo)的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復(fù)位延時(shí)

LCALL LRET;LCD1602初始化

LCALL TOPD;顯示第一行

LCALL BOMD;顯示第二行

LJMP START

;函數(shù)BUSY忙標(biāo)志檢測(cè)

BUSY: CLR RS

SETB RW

E1:MOV LDB,#0FFH

SETB E

MOV A,LDB

CLR E

JB ACC.7,E1

RET

;函數(shù)WCOM LCD1602指令寫(xiě)入子程序

WCOM: LCALL BUSY

CLR RS

CLR RW

MOV A,COM

MOV LDB,A

SETB E

NOP

CLR E

RET

;函數(shù)WDAT LCD1602顯示數(shù)據(jù)寫(xiě)入子程序

WDAT: LCALL BUSY

SETB RS

CLR RW

MOV A,DAT

MOV LDB,DAT

SETB E

NOP

CLR E

RET

;函數(shù)LRET LCD1602初始化子程序

LRET: MOV COM,#00000001B;清屏

LCALL WCOM

MOV COM,#00111000B;功能設(shè)定8bit數(shù)據(jù)接口,兩行顯示,5*7點(diǎn)陣

LCALL WCOM

MOV COM,#00000110B;輸入方式設(shè)定AC加一,畫(huà)面不動(dòng)

LCALL WCOM

MOV COM,#00001111B;開(kāi)顯示,開(kāi)光標(biāo),開(kāi)閃爍

LCALL WCOM

MOV COM,#00000010B;光標(biāo)復(fù)位

LCALL WCOM

MOV COM,#00010100B;光標(biāo)右移

LCALL WCOM

RET

;函數(shù)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

;函數(shù)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

;函數(shù)DEL40 40MS延時(shí)

DEL40:MOV R0,#160

D1:MOV R1,#250

DJNZ R1,$

DJNZ R0,D1

RET

;函數(shù)DEL05 0.5S延時(shí)

DEL05:MOV R5,#2

D3:MOV R0,#200

D2:MOV R1,#248

DJNZ R1,$

DJNZ R0,D2

DJNZ R5,D3

RET

;顯示數(shù)據(jù)表

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

TAB2:DB "Visual Basic net"

END



關(guān)鍵詞: AT89S52LCD160

評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉