红外遥控步进电机控制器设计Word下载.docx
《红外遥控步进电机控制器设计Word下载.docx》由会员分享,可在线阅读,更多相关《红外遥控步进电机控制器设计Word下载.docx(17页珍藏版)》请在冰豆网上搜索。
模块最佳工作电压:
5.0V
字符尺寸:
2.95×
4.35(W×
H)mm
3.1.4引脚功能说明
1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表3-1所示:
编号
符号
引脚说明
1
VSS
电源地
9
D2
数据
2
VDD
电源正极
10
D3
3
VL
液晶显示偏压
11
D4
4
RS
数据/命令选择
12
D5
5
R/W
读/写选择
13
D6
6
E
使能信号
14
D7
7
D0
15
BLA
背光源正极
8
D1
16
BLK
背光源负极
表3-1:
引脚接口说明表
第1脚:
VSS为地电源。
第2脚:
VDD接5V正电源。
第3脚:
VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
第15脚:
背光源正极。
第16脚:
背光源负极。
3.1.51602LCD的指令说明及时序
1602液晶模块内部的控制器共有11条控制指令,如表3-2所示:
序号
指令
清显示
光标返回
*
置输入模式
I/D
S
显示开/关控制
D
C
B
光标或字符移位
S/C
R/L
置功能
DL
N
F
置字符发生存贮器地址
字符发生存贮器地址
置数据存贮器地址
显示数据存贮器地址
读忙标志或地址
BF
计数器地址
写数到CGRAM或DDRAM)
要写的数据内容
从CGRAM或DDRAM读数
读出的数据内容
表3-2:
控制命令表
1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。
(说明:
1为高电平、0为低电平)
指令1:
清显示,指令码01H,光标复位到地址00H位置。
指令2:
光标复位,光标返回到地址00H。
指令3:
光标和显示模式设置I/D:
光标移动方向,高电平右移,低电平左移S:
屏幕上所有文字是否左移或者右移。
高电平表示有效,低电平则无效。
指令4:
显示开关控制。
D:
控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:
控制光标的开与关,高电平表示有光标,低电平表示无光标B:
控制光标是否闪烁,高电平闪烁,低电平不闪烁。
指令5:
光标或显示移位S/C:
高电平时移动显示的文字,低电平时移动光标。
指令6:
功能设置命令DL:
高电平时为4位总线,低电平时为8位总线N:
低电平时为单行显示,高电平时双行显示F:
低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。
指令7:
字符发生器RAM地址设置。
指令8:
DDRAM地址设置。
指令9:
读忙信号和光标地址BF:
为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。
指令10:
写数据。
指令11:
读数据。
3.1.6与HD44780相兼容的芯片时序表如下3-3:
读状态
输入
RS=L,R/W=H,E=H
输出
D0—D7=状态字
写指令
RS=L,R/W=L,D0—D7=指令码,E=高脉冲
无
读数据
RS=H,R/W=H,E=H
D0—D7=数据
写数据
RS=H,R/W=L,D0—D7=数据,E=高脉冲
表3-3:
基本操作时序表
读写操作时序如图3-3和3-4所示:
图3-3读操作时序
图3-4写操作时序
3.1.71602LCD的RAM地址映射及标准字库表
液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。
要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图3-5是1602的内部显示地址。
图3-51602LCD内部显示地址
例如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?
这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。
在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。
每次输入指令前都要判断液晶模块是否处于忙的状态。
1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如图3-5所示,这些字符有:
阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”
3.1.81602LCD的一般初始化(复位)过程
延时15mS
写指令38H(不检测忙信号)
延时5mS
以后每次写指令、读/写数据操作均需要检测忙信号
写指令38H:
显示模式设置
写指令08H:
显示关闭
写指令01H:
显示清屏
写指令06H:
显示光标移动设置
写指令0CH:
显示开及光标设置
3.2红外线模块
红外通信具有控制简单、实施方便、传输可靠性高的特点,是一种较为常用的通信方式。
实现单片机系统红外通信的关键在于红外接口电路的设计以及接口驱动程序的设计。
3.2.1红外通信的基本原理
红外通信是利用950nm近红外波段的红外线作为传递信息的媒体,即通信信道。
发送端采用脉冲相位调制(PPM)方式,将二进制数字信号调制成某一频率的脉冲序列,并驱动红外发射管以光脉冲的形式发送出去;
接收端将接收到的光脉转换成电信号,再经过放大、滤波等处理后送给解调电路进行解调,还原为二进制数字信号后输出。
3.2.2红外发送器
红外发送器电路包括脉冲振荡器、驱动管Q1和Q2、红外发射管Q3等部分。
其中脉冲振荡器由2206组成,用以产生38kHz的脉冲序列作为载波信号;
红外发射管Q3用来向外发射950nm的红外光束。
红外发送器的工作原理为:
串行数据由单片机的串行输出端DATA送出并驱动Q1管,数位“0”使Q1管导通,通过Q2管调制成38kHz的载波信号,并利用红外发射管Q3以光脉冲的形式向外发送。
数位“1”使Q1管截止,红外发射管Q3不发射红外光。
若传送的波特率设为1200bps,则每个数位“0”对应32个载波脉冲调制信号的时序,如图3-6所示。
3-6调制信号时序图
3.2.3红外接收器
红外接收电路选用专用红外接收模块。
该接收模块是一个三端元件,使用单电源+5V电源,具有功耗低、抗干扰能力强、输入灵敏度高、对其它波长(950nm以外)的红外光不敏感的特点,其内部结构框图如图3-7所示。
3-7红外接收模块内部结构框图
接收模块的工作原理为:
首先,通过红外光敏元件将接收到的载波频率为38kHz的脉冲调制红外光信号转化为电信号,再由前置放大器和自动增益控制电路进行放大处理。
然后,通过带通滤波器和进行滤波,滤波后的信号由解调电路进行解调。
最后,由输出级电路进行反向放大输出。
红外接收头接收后的数据刚好是跟发送相反,引导码是9ms低电平加4.5ms的高电平
接下来是8位客户码和8位客户码的反码,再接下来就是8位数据码和八位数据码的反码
“0”是0.56ms的低电平和0.56ms的高电平表示
“1”是0.56ms的低电平和1.69ms的高电平表示
先接收低位后高位
四、软件流程图
4.1主流程图
4.2红外线接受模块流程图
五、测试结果
1.测试结果图
图5-1单片机上电欢迎语
图5-2启动状态
图5-3匀速正转
图5-4匀速反转
图5-5高速正转
图5-6高速反转
图5-7低速正转
图5-8低速反转
图5-9停止