利用STC89C52单片机控制LCD1602Word文件下载.docx
- 文档编号:16889930
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:14
- 大小:17.20KB
利用STC89C52单片机控制LCD1602Word文件下载.docx
《利用STC89C52单片机控制LCD1602Word文件下载.docx》由会员分享,可在线阅读,更多相关《利用STC89C52单片机控制LCD1602Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
数据读、写操作后,AC自动减一;
S=1:
数据读、写操作,画面平移;
S=0:
数据读、写操作,画面不动;
4、显示开关控制
00001DCB
运行时间(250Khz):
设置显示、光标及闪烁开、关。
D表示显示开关:
D=1为开,D=0为关;
C表示光标开关:
C=1为开,C=0为关;
B表示闪烁开关:
B=1为开,B=0为关。
5、光标、画面位移
0001S/CR/L**
光标、画面移动,不影响DDRAM。
S/C=1:
画面平移一个字符位;
S/C=0:
光标平移一个字符位;
R/L=1:
右移;
R/L=0:
左移。
6、功能设置
001DLNF**
运行时间(250Khz):
功能:
工作方式设置(初始化指令)。
其中:
DL=1,8位数据接口;
DL=0,四位数据接口;
N=1,两行显示;
N=0,一行显示;
F=1,510点阵字符;
F=0,57点阵字符。
7、CGRAM地址设置
01A5A4A3A2A1A0
设置CGRAM地址。
A5~A0=0~3FH。
8、DDRAM地址设置
1A6A5A4A3A2A1A0
设置DDRAM地址。
N=0,一行显示A6~A0=0~4FH;
N=1,两行显示,首行A6~A0=00H~2FH,
次行A6~A0=40H~67H。
9、读BF及AC值
01
BFAC6AC5AC4AC3AC2AC1AC0
读忙BF值和地址计数器AC值。
BF=1:
忙;
BF=0:
准备好。
此时,AC值意义为最近一次地址设置(CGRAM或DDRAM)定义。
10、写数据
10
数据
根据最近设置的地址性质,数据写入DDRAM或CGRAM内。
11、读数据
11
根据最近设置的地址性质,从DDRRAM或CGRAM数据读出。
三、程序:
//液晶显示中文-版本0.0
//作者:
pcdian
//定义液晶的一些功能位
//RS为数据、指令寄存器选择位
//RW
为读写选择位
//E
为使能位
RSBITp2.5
RWBITP2.6
E
BITP2.7
ORG
0000H
SJMPSTART
000BH
LJMPTimer_IT
0030H
START:
MOVSP,#60H
MOVTMOD,#01H
MOVTH0,#0A6H
MOVTL0,#00H
SETBEA
SETBET0
CLRTR0
MAIN:
MOVP0,#01H
//清屏
ACALLENABLE
MOVP0,#38H
//显示模式设置为16字*2行
MOVP0,#0CH
//不显示光标
MOVP0,#06H
//显示方向正向且屏不移动
DISPLAY:
ACALLDISPLAY_C0
//我
MOVP0,#80H
MOVP0,#00H
ACALLWRITE
MOVP0,#81H
MOVP0,#01H
MOVP0,#82H
MOVP0,#02H
MOVP0,#0C0H
MOVP0,#03H
MOVP0,#0C1H
MOVP0,#04H
MOVP0,#0C2H
MOVP0,#05H
LCALLDELAY1S
ACALLDISPLAY_C1
//们
MOVP0,#83H
MOVP0,#84H
MOVP0,#85H
MOVP0,#0C3H
MOVP0,#0C4H
ACALLWRITE
MOVP0,#0C5H
ACALLDISPLAY_C2
//的
MOVP0,#86H
MOVP0,#87H
MOVP0,#88H
MOVP0,#0C6H
MOVP0,#0C7H
MOVP0,#0C8H
ACALLDISPLAY_C3
//0
MOVP0,#89H
MOVP0,#8AH
MOVP0,#0C9H
MOVP0,#0CAH
LCALLDELAY1S
ACALLENABLE
ACALLDISPLAY_C4
//7
MOVP0,#8BH
MOVP0,#8CH
MOVP0,#0CBH
MOVP0,#0CCH
//3
MOVP0,#8DH
MOVP0,#8EH
MOVP0,#0CDH
MOVP0,#06H
MOVP0,#0CEH
MOVP0,#07H
MOVP0,#01H
LJMPDISPLAY
DISPLAY_C0:
MOVDPTR,#TAB0
MOVR2,#48
ACALLDISPLAY_C
RET
DISPLAY_C1:
MOVDPTR,#TAB1
ACALLDISPLAY_C
DISPLAY_C2:
MOVDPTR,#TAB2
DISPLAY_C3:
MOVDPTR,#TAB3
MOVR2,#32
DISPLAY_C4:
MOVDPTR,#TAB4
MOVR2,#64
DISPLAY_C:
MOVP0,#40H
MOVR3,#0
DISPLAY_CC:
MOVA,R3
MOVCA,@A+DPTR
MOVP0,A
LCALLWRITE
INCR3
DJNZR2,DISPLAY_CC
ENABLE:
CLRRS
CLRRW
CLRE
ACALLDELAY
SETBE
WRITE:
SETBRS
DELAY1S:
SETBTR0
CJNER0,#20,DELAY1S
MOVR0,#0
RET
DELAY:
MOVR5,#08H
L1:
MOVR4,#0FAH
L0:
DJNZR4,L0
DJNZR5,L1
Timer_IT:
MOVTH0,#0A6H
INCR0
RETI
TAB0:
DB0x00,0x07,0x01,0x01,0x01,0x1F,0x01,0x01
DB0x19,0x01,0x01,0x01,0x01,0x1F,0x01,0x01
DB0x00,0x08,0x04,0x04,0x00,0x1F,0x00,0x04
DB0x01,0x07,0x19,0x01,0x01,0x01,0x05,0x02
DB0x18,0x00,0x00,0x01,0x06,0x00,0x00,0x00
DB0x14,0x18,0x10,0x08,0x09,0x05,0x03,0x01
TAB1:
DB0x01,0x01,0x02,0x02,0x06,0x04,0x0c,0x14
DB0x08,0x04,0x06,0x04,0x10,0x10,0x10,0x10
DB0x00,0x00,0x1e,0x02,0x02,0x02,0x02,0x02
DB0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00
DB0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00
DB0x02,0x02,0x02,0x02,0x02,0x0a,0x04,0x00
TAB2:
DB0x02,0x02,0x04,0x0f,0x08,0x08,0x08,0x0f
DB0x02,0x02,0x02,0x13,0x14,0x14,0x18,0x12
DB0x00,0x00,0x00,0x1e,0x02,0x02,0x02,0x02
DB0x08,0x08,0x08,0x08,0x0f,0x08,0x08,0x00
DB0x11,0x11,0x10,0x10,0x10,0x10,0x00,0x00
DB0x02,0x12,0x12,0x02,0x02,0x14,0x08,0x00
TAB3:
DB0x00,0x00,0x03,0x04,0x08,0x08,0x08,0x08
DB0x00,0x00,0x18,0x04,0x02,0x02,0x02,0X02
DB0x08,0x08,0x08,0x08,0x04,0x03,0x00,0x00
DB0x02,0x02,0x02,0x02,0x04,0x18,0x00,0x00
TAB4:
DB0x00,0x00,0x0F,0x0F,0x00,0x00,0x00,0x00
DB0x00,0x00,0x1E,0x1E,0x06,0x06,0x06,0X06
DB0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
DB0x06,0x06,0x06,0x06,0x06,0x06,0x00,0x00
DB0x00,0x00,0x0F,0x0F,0x00,0x00,0x00,0x0F
DB0x00,0x00,0x1E,0x1E,0x06,0x06,0x06,0X1E
DB0x0F,0x00,0x00,0x00,0x0F,0x0F,0x00,0x00
DB0x1E,0x06,0x06,0x06,0x1E,0x1E,0x00,0x00
END
四、总结:
虽然LCD1602可以利用自建字符显示中文,但最多不能超过8个字符位。
所以实际应用中,无法同时显示“我们的073”。
该段程序没来得及优化,没有充分利用单片机做重复的事情的优点;
并且使代码量增大,可读较差(重复的,看起来头晕);
注释少也致使可读性差!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 利用 STC89C52 单片机 控制 LCD1602