红外遥控——驱动直流电机

学习笔记:红外遥控——驱动电机

这是我对该联动的一些理解,有不对之处请各位大佬指正。
一、功能显示:按下开关键,控制直流电机启动或停止,即奇数次按下启动,偶数次按下关闭,同时在LCD1602上显示“ON”或“OFF”.
二、模块构成:需要红外遥控、LCD1602、直流电机三个模块联动。
接下来我们来具体了解一下这三个模块。
三、模块讲解。
1、红外模块:
(1)原理:红外线遥控 就是利用波长为 0.76~1.5μm 之间的近红外线来传送控制信号的(红外属于不可见光,肉眼不能分辨)。由红外发射装置发送,红外接收装置接收、调制、放大。
红外遥控器常用载波频率为38kHz的载波传送二进制编码(这里的38kHz是由发射端所使用的晶振来决定的,在发射端要对晶振进行整数分频,分频系数一般取 12,所以 455kHz÷12≈37.9kHz≈38kHz)。通常的红外遥控器是将遥控信 号(二进制脉冲码)调制在 38KHz 的载波上,经缓冲放大后送至红外发光二极 管,转化为红外信号发射出去的。二进制脉冲码的形式有多种,其中最为常用的是 NEC Protocol 的 PWM 码 (脉冲宽度调制)和 Philips RC-5 Protocol 的 PPM 码(脉冲位置调制码,脉冲 串之间的时间间隔来实现信号调制)。如果要开发红外接收设备,一定要知道红 外遥控器的编码方式和载波频率,我们才可以选取**一体化红外接收头和制定解码 方案。*
配套的红外遥控器使用的是 NEC 协议,其特征如下:
a、8 位地址和 8 位指令长度;
b、地址和命令 2 次传输
c、PWM 脉冲位置调制,以发射红外载波的占空比代表“0”和“1”;
d、载波频率为 38Khz
e、位时间为 1.125ms 或 2.25ms(NEC 码的位定义:一个脉冲对应 560us 的连续载波,一个逻辑 1 传输需要 2.25ms(560us 脉冲+1680us 低电平),一个逻辑 0 的传输需要 1.125ms(560us 脉冲+560us 低电平))。 红外接收头在收到脉冲的时候为低电平,在没有脉冲 的时候为高电平,这样,我们在接收头端收到的信号为:逻辑 1 :560us 低 +1680us 高;逻辑 0 :560us 低+560us 高。可以通过计算高电平时间判断接收到的数据是逻辑0还是逻辑1。由于红外接收头在收到脉冲的时候为低电平,
(2)、发射装置:红外遥控器,它是由键盘电路、红外编码电 路、电源电路和红外发射电路组成。红外发射电路的主要元件为红外发光二极管。
在这里插入图片描述

在没有脉冲 的时候为高电平,所以可以通过外部中断的下降沿触发中断,在中断内通过计算高电平时间来判断 接收到的数据是 0 还是 1。NEC 码位定义时序图如下图所示:
在这里插入图片描述
另外,NEC 遥控指令的数据格式为:引导码、地址码、地址反码、控制码、控制反 码。引导码由一个 9ms 的低电平和一个 4.5ms 的高电平组成,地址码、地址反 码、控制码、控制反码均是 8 位数据格式。按照低位在前,高位在后的顺序发 送。采用反码是为了增加传输的可靠性(可用于校验)。数据格式如下
在这里插入图片描述
NEC 码还规定了连发码(由 9ms 低电平+2.5m 高电平+0.56ms 低电平 +97.94ms 高电平组成),如果在一帧数据发送完毕之后,红外遥控器按键仍然没 有放开,则发射连发码,可以通过统计连发码的次数来标记按键按下的长短或次数。
(3)、接收装置
红外接收设备是由红外接收电路、红外解码、电源和应用电路组成。红外遥 控接收器的主要作用是将遥控发射器发来的红外光信好转换成电信号,再放大、 限幅、检波、整形,形成遥控指令脉冲,输出至遥控微处理器。由于红外接收头在没有脉冲的时候为高电平,当收到脉冲的时候为低电平, 所以可以通过外部中断的下降沿触发中断,
在这里插入图片描述
这是红外模块的原理:左侧蓝色部分为调制在38KHz载波上的数据,通过缓冲放大后发送给红外发光二极管发送给接收装置(右侧部分),经接收端接收,解码,发送给处理器执行相应功能。需要注意的是:
当发送为1时,三极管导通后, 红外发光二极管发光,将高电平1发射出去,经解码为低电平0:
当发送0时,二极管不打通,不传送数据,而接收装置与单片机相连,为高电平1。
(4)、原理图
在这里插入图片描述
电路集成,可直接连线使用。
2、LCD1602模块
(1)简介:1602 液晶也叫 1602 字符型液晶,它能显示 2 行字符信息,每行又能显示 16 个字符。它是一种专门用来显示字母、数字、符号的点阵型液晶模块。它是由若 干个 5x7 或者 5x10 的点阵字符位组成,每个点阵字符位都可以用显示一个字符。每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作 用,正因为如此,所以它不能很好的显示图片。LCD1602实物如下所示在这里插入图片描述
(2)、管脚功能
上图可见LCD1602有 16 个管脚孔,从左至右管脚编号 顺序是 1-16,其功能定义如下所示:
在这里插入图片描述
3 脚:VL,液晶显示偏压信号,用于调整 LCD1602 的显示对比度.
4 脚:RS,数据/命令选择端,当此脚为高电平时,可以对 1602 进行数据字 节的传输操作,而为低电平时,则是进行命令字节的传输操作。LCD1602 的数据是 8 位的。
5 脚:R/W,读写选择端。当此脚为高电平可对 LCD1602 进行读数据操作, 反之进行写数据操作。
6 脚:E,使能信号,其实是 LCD1602 的数据控制时钟信号,利用该信号的 上升沿实现对 LCD1602 的数据传输。 7~14 脚:8 位并行数据口,而 51 单片机一组 IO 也是 8 位,使得对 LCD1602 的数据读写大为方便。 在 LCD1602 内部含有 80 个字节的 DDRAM,它是用来寄存显示字符的。其地址 和屏幕的对应关系如下表:
在这里插入图片描述
不是所有的地址都可以直接用来显示字符数据,只有第一行中 的 00-0F,第二行中的 40-4F 才能显示,其他地址只能用于存储。要显示字符时 要先输入显示字符地址,也就是告诉模块在哪里显示字符。要注意的是:写入显示地址时要求最高位 D7 恒定为高电平 1 所以实际写入的数据应该是
指定显示地址数据 +10000000B(80H)
(3)常用指令
清屏指令在这里插入图片描述
<1> 清除液晶显示器,即将 DDRAM 的内容全部填入"空白"的 ASCII 码 20H;
<2> 光标归位,即将光标撤回液晶显示屏的左上方;
<3> 将地址计数器(AC)的值设为 0
模式设置指令
在这里插入图片描述
只有DB1和DB0需要手动输入,其他值为固定。
设定每次写入 1 位数据后光标的移位方向,并且设定每次写入的一个字符是 否移动。
I/D:0=写入新数据后光标左移 1=写入新数据后光标右移 S:0=写入新数据后显示屏不移动 1=写入新数据后显示屏整体右移 1 个 字符。
显示开关控制指令
在这里插入图片描述
控制显示器开/关、光标显示/关闭以及光标是否闪烁。
D:0=显示功能关 1=显示功能开
C:0=无光标 1=有光标
B:0=光标闪烁 1=光标不闪烁
功能设定指令
在这里插入图片描述
设定数据总线位数、显示的行数及字型。
DL:0=数据总线为 4 位 1=数据总线为 8 位
N:0=显示 1 行 1=显示 2 行
F:0=5×7 点阵/每字符 1=5×10 点阵/每字符
总结来说,操作步骤如下
作步骤如下所示:
(1)初始化
(2)写命令(RS=L),
设置显示坐标
(3)写数据(RS=H) 在此,不需要读出它的数据的状态或者数据本身。所以只需要看两个写时序: ① 当要写指令字,设置 LCD1602 的工作方式时:需要把 RS 置为低电平,RW 置为低电平,然后将数据送到数据口 D0~D7,最后 E 引脚一个高脉冲将数据写入。 ② 当要写入数据字,在 1602 上实现显示时:需要把 RS 置为高电平,RW 置 为低电平,然后将数据送到数据口 D0~D7,最后 E 引脚一个高脉冲将数据写入。 写指令和写数据,差别仅仅在于 RS 的电平不一样而已。以下是 LCD1602 的 时序图:
在这里插入图片描述
在这里插入图片描述
当要写命令字节的时候,时间由左往右,RS 变为低电平,R/W 变为低电平, 注意看是 RS 的状态先变化完成。然后这时,DB0~DB7 上数据进入有效阶段,接 着 E 引脚有一个整脉冲的跳变,接着要维持时间最小值为 tpw=400ns 的 E 脉冲宽 度。然后E引脚负跳变,RS电平变化,R/W 电平变化。这样便是一个完整的LCD1602 写命令的时序。如需要更加详细数据请移步数据手册。
3、直流电机
ULN2003控制的直流电机只能同一方向转动,定义引脚sbit moto=P1^0后,令moto=1即可转动不再赘述。

  • 8
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值