LCD1602 DDRAM地址映射表:
第一行地址80H
第二行地址C0H
单片机与LCD1602接口
;///////////////////////////////////////////////
项目名称:AT89S52与LCD1602接口实验
功能:在LCD1602的第一行显示WWW.LZY.EDU.CN:
;///////////////////////////////////////////////
RS EQUP2.4
RW EQUP2.5
E EQUP2.6
DRIR EQUP0
CWDK EQU 40H
DATK EQU 41H
ORG 0000H
SJMP START
ORG 0030H
;主程序
START:MOV SP,#80H
;函数INCWD 指令写入程序
INCWD:CLR RS
;函数INDAT
INDAT:SETB RS
;函数RESTELCD1602初始化程序
RESTE:MOV CWDK,#00111000B;工作方式 8位数据接口,二行显示,5*7点阵
;函数TOPDA LCD1602第一行显示程序
TOPDA:MOV CWDK,#80H
;函数BOTDA LCD1602第二行显示程序
BOTDA:MOV CWDK,#0C0H
;函数DELAY 480us延时
DELAY:MOV R1,#0A0H
;函数DEL1S 1S延时
DEL1S:MOV R5,#20
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
E EQU P2.6
LDB EQU P0
DAT DA
COM DA
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
上一篇:STC89C52R并行驱动LCD12864(asm/c51)
下一篇:AT89S52并口驱动LCD12864(ST7920芯片组)
推荐阅读最新更新时间:2024-03-16 15:12
设计资源 培训 开发板 精华推荐
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?
- 村田推出高精度汽车用6轴惯性传感器
- 福特获得预充电报警专利 有助于节约成本和应对紧急情况