1602液晶显示屏模块资料附程序文档格式.docx
- 文档编号:13260391
- 上传时间:2022-10-09
- 格式:DOCX
- 页数:9
- 大小:130.29KB
1602液晶显示屏模块资料附程序文档格式.docx
《1602液晶显示屏模块资料附程序文档格式.docx》由会员分享,可在线阅读,更多相关《1602液晶显示屏模块资料附程序文档格式.docx(9页珍藏版)》请在冰豆网上搜索。
RS为1时,选择数据寄存器DR;
5脚:
读写控制端,为1时,选择读出;
为0时,则选择写入;
6脚Enable:
使能控制端,Enable为1时,使能;
Enable为0,禁止;
7脚~14脚D0~D7:
数据总线;
15脚LED+:
背景光源,接+5V;
16脚LED-:
背景光源,接地。
1602液晶模块内部的字符发生存储器(CGROM)已经存储了不同的点阵字符图形,这些字符有,阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,其中数字与字母同ASCII码兼容。
其内部还有自定义字符(CGRAM),可用业存储自已定义的字符。
二.硬件的连接(单片机与液晶的连接。
注:
表的上行是液晶显示的1-16个引脚,下行是单片机接出的部分I/O口以及一些接口的定义):
引脚
1
2
3
4
5
6
7
8
接口
GND
+5V
电位器
PE2
PE3
PB7
PA0
PA1
9
10
11
12
13
14
15
16
PA2
PA3
PA4
PA5
PA6
PA7
PB6
接地
三:
液晶模块的读写与光标控制指令:
指令
RS
RW
D7
D6
D5
D4
D3
D2
D1
D0
清屏
光标返回
*
输入模式
I/D
S
显示控制
D
C
B
光标/字符移位
S/C
R/L
功能
DL
N
F
置字符发生器地址
字符发生存贮器地址
置数据存贮器地址
显示数据存贮器地址
读忙标志和地址
BF
计数器地址
写数据到指令7.8所设地址
要写的数据
从指令7.8所设的地址读数据
读出的数据
指令说明:
指令1:
清显示屏;
指令2:
光标复位;
指令3:
光标和显示模式设置I/D:
光标移动方向,高电平右移,低电平左移,S:
屏幕上所有文字是否左移或者右移。
高电平表示有效,低电平则无效。
指令4:
显示开关控制。
D:
控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:
控制光标的开与关,高电平表示有光标,低电平表示无光标B:
控制光标是否闪烁,高电平闪烁,低电平不闪烁。
指令5:
光标或显示移位S/C:
高电平时移动显示的文字,低电平时移动光标。
R/L,高向左,低向右。
指令6:
功能设置命令DL:
高电平时为4位总线,低电平时为8位总线N:
低电平时为单行显示,高电平时双行显示F:
低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符(再这个液晶屏中选择5×
7或5×
10的效果一样)。
指令7:
写入字符,可以直接参看ASCII字符码。
指令8:
置显示字符的地址,第一行为:
00——0F,第二行为:
40——4F(十六进制的)。
指令9:
读忙信号和光标地址BF:
为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。
所以,在写数据或指令到LCD之前,必须查看BF是否为0(在实际操作过程中,可以用一个短暂的延时来跳过这个忙指令即可)。
指令10:
写数据。
指令11:
读数据。
以上共有11条控制指令,其中9条是针对命令寄存器IR的,两条是针对数据寄存器DR的(以下两条指令对写程序来控制液晶显示是很重要的,看的话要理解清楚)。
IR为指令寄存器(InstructionRegister,简称IR)负责存储MCU要写给LCD的指令码,当RS及R/W引脚信号为0且Enable引脚信号由1变为0时,D0-D7引脚上的数据便会存入到IR寄存器中;
DR为数据寄存器(DataRegister,简称DR),它们负责存储微机要写到CGRAM或DDRAM的数据,或者存储MCU要从CGRAM或DDRAM的数据。
因此,可将DR视为一个数据缓存冲区,当RS及R/W引脚信号为1且Enable引脚信号由一变为0时,读取数据;
当RS引脚信号为1,R/W引脚信号为0且Enable引脚信号由1变为0时,存入数据。
三.软件说明:
1.用户程序结构:
该程序的主程序中未作任何有意义的工作。
液晶显示在初始化,子程序,以及中断程序实现.为是程序模块化,将初始化,中断均在子程序中.为防止出现片内外设使用冲突,故将各模块使能设置寄存器放在主程序前设置。
1.用户变量(EQU)设置;
2.用户RMB设置;
3.中断设置(定时器通道0中断);
4.开机初始化;
5.各个模块的开关:
(1)开启LCD模块;
(2)开启定时器模块;
(3)开中断;
6.主程序(空操作):
7.子程序:
(1)写入地址
(2)写入命令
(3)写入数据
(4)定时器中断
2.流程图:
该程序就是一个单线条的,比较简单,在这里就不说了。
3.程序设计:
;
********************SCI初始化****************************
MOVB#$00,SCI0BDH
MOVB#$A2,SCI0BDL;
波特率9600
MOVB#$00,SCI0CR1
MOVB#$0C,SCI0CR2;
使能发送器和接受器
*****************定时器初始化************************
BSETTIOS,#%00000001;
0通道为输出比较定时
MOVB#%00000011,TSCR2;
禁止溢出中断,8分频
BSETTIE,#%00000001;
TC0开中断
MOVB#%10000000,TSCR1;
开定时器,标志位正常清除
MOVW#125,TC0
BSETTSCR1,#%10000000;
定时器使能,标志位正常清除
***************液晶显示初始化************************
MOVB#$FF,DDRA
MOVB#$FF,DDRB
MOVB#$FF,DDRE
BSETPORTA,#%00000011;
清屏和光标复位
JSRENABLE
BSETPORTB,#%01000000;
开背光
MOVB#%00111000,PORTA;
8位总线,双行,5*7的点阵字符JSRENABLE
MOVB#%00001110,PORTA;
开显示,光标开,不允许光标闪烁JSRENABLE
MOVB#%10000000,PORTA;
写入显示1地址(第一行第一个)
LDX#ABC_1
LDAB#16;
显示1
JSRSHUJU
MOVB#%11000000,PORTA;
写入显示2的地址(第二行第一个)
LDX#ABC_2;
显示2
LDAB#16
JSRSHUJU
**********************主程序******************************
mainLoop:
NOP
JMPmainLoop
**********************地址******************************
SHUJU:
MOVBX,PORTA
JSRENABLE_1;
调用写入数据子程序
INX
DBNEB,SHUJU
RTS
*****************写入命令子程序*************************
ENABLE:
BCLRPORTE,#%00001100
BCLRPORTB,#%10000000
JSRYANSHI_1MS
BSETPORTB,#%10000000
RTS
*******************写入数据子程序*************************
ENABLE_1:
BSETPORTE,#%00000100
BCLRPORTE,#%00001000
BCLRPORTB,#%10000000
JSRYANSHI_1MS
BSETPORTB,#%10000000
*****************定时器延时子程序*********************
YANSHI_1MS:
MOVB#25,R1
Y1:
LDAAR1
CMPA#0
BNEY1;
变量循环
YANSHI_2S:
LDX#2000
AAA:
JSRYANSHI_1MS
DBNEX,AAA
RTS
*******************显示字母表***************************
ABC_1:
FCB$44,$65,$73,$69,$67,$6e,$65,$72,$A0,$62,$79,$A0,$63,$68,$65,$6e
ABC_2:
FCB$A0,$A0,$A0,$32,$30,$31,$31,$2e,$30,$37,$2e,$32,$35,$A0,$A0,$A0
****************定时器中断子程序********************
ZHONGDUAN:
BSETTFLG1,#%0000001;
清零0通道位LDDTC0将TC0通道的值给D寄存器
ADDD#125;
D的内容加上125存在D中
STDTC0
LDAAR1
DECA
STAAR1
RTI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 1602 液晶显示屏 模块 资料 程序