【51单片机实例】智能小车(二)-------- 小车的红外遥控调速
时间:2023-04-25 23:07:00
51智能小车系列
智能汽车(1)-汽车的前进、后退和停止
智能小车(二)-------- 小车的红外遥控调速
智能汽车(3)- 汽车红外循环
文章目录
- 前言
- 一、红外遥控
-
- 1. 简介
- 2. 红外遥控系统
-
- 2.1 红外发射
- 2.2 红外接收
- 3. 红外调制
-
- 基本发送和接收
- 二、中断系统
-
- 1. 0 外部中断和 定时器中断
- 2. 相关寄存器介绍
- 三、实现代码
-
- 1.延迟模块
- 2. 定时器模块
-
- 2.1 定时器0
- 2.2 定时器1
- 3. 数码管模块
- 4. 独立按键模块
- 5. 外部中断0模块
- 6. 红外遥控模块
- 7. 主函数模块
- 总结
前言
本节主要介绍了51台单片机下智能汽车的简单应用,在上一节智能汽车(1)的基础上增加了一些功能,如:通过调整电机旋转的比例,实现汽车的简单性pwm调速;在调速的基础上,增加红外遥控模块,实现汽车红外遥控调速或增加红外循环模块。之后,我将带您逐步进入51台单片机的具体应用。
介绍相关硬件模块,请前往上一节 智能车(一)
一、红外遥控
1. 简介
红外遥控是一种无线、非接触控制技术,具有抗干扰能力强、信息传输可靠、功耗低、成本低、易于实现等显著优点。由于红外是一种不可见的光,它对环境的影响很小,红外波长期小于无线电波,因此红外遥控不会影响其他家用电器或相邻的无线电设备。
红外线波长760nm~1mm它们之间的非可见光。红外通信装置由红外发射管和红外接收管组成。红外发射管是一种发光二极管,可发光二极管,发射强度随电流的增加而增加;红外接收管具有红外光敏感性PN光敏二极管只反应红外线,产生光电流。
红外遥控器是红外光通信的设备LED发出调制信号,由专用红外接收头解调输出。
通信方式:单工、异步;
红外LED波长:940nm;
通信协议标准:NEC标准;
遥控器:
2. 红外遥控系统
红外遥控系统一般由红外发射装置和红外接收设备组成。
2.1 红外发射
红外发射功能主要由红外发射管实现,红外发射管外观透明LED发光二极管非常相似,其驱动和控制方法也相同。三极管通常用于使用单片机控制发射管,NPN三极管和PNP可实现三极管。PNP三极管的基极通过电阻连接到单片机GPIO口通过限流电阻连接发射管PNP三极管的发射极上。当单片机的GPIO平时输出高电PNP当三极管处于截止状态时,红外发射管不工作;GPIO平时输出低电PNP三极管导通发射管工作,发出肉眼看不见的红外线,被接收管接收。
有两种具体电路:
2.2 红外接收
红外接收管的外观与黑色相似LED发光二极管,接收红外信号时,接收管不导通,三极管不导通,单片机接收连续高电平;当接收管接收到红外信号时,单片机接收到低电平。当按下遥控器的按钮时,按钮对应的编码脉冲将被单片机接收。如果单片机分析脉冲,您可以知道按下遥控器上的哪个按钮,以实现用户的操作。然而,黑色红外接收管的抗干扰性相对较低。在设计电路时,一般不选择,而是选择特殊的红外接收头。最常用的型号是HS0038。而且,其红外接收电路简单,抗干扰能力强。
具体电路图:
接收器将过滤接收到的红外光,然后输出到P32引脚上。
3. 红外调制
红外遥控遥控发射数据,即与数据和一定频率的载波,提高发射效率,降低功耗。
调制载波频率一般为30khz到60khz它们大多使用38kHz,方波占空比1/3,如下图所示(载波波形)为455kHz晶体振动决定。晶体振动应在发射端进行整数分频,分频系数一般为12,因此为455kHz÷12≈37.9 kHz≈38kHz。
基本发送和接收
红外LED接收头在三种发送状态下的输出:
①空闲状态:红外LED不亮,接收头输出高电平;
②低电平:红外LED以38KHz闪烁频率,接收头输出低电平;
③高电平:红外LED不亮,接收头输出高电平。
例如:
每个部分有三种情况:字节(8位),第一部分和第二部分,第三部分和第四部分相反,以验证数据信号。
接收到的信号分为以下三种情况:
① 信息头,图中的红色信号,提示将发送信号
② 信息体,图中的蓝色信号,真正需要传输的内容
③ 重复信号,图中的绿色信号,代表前面发送的内容
二、中断系统
中断系统是为使CPU具有实时处理外部紧急事件的能力。
中央处理机CPU在处理某件事时,外界发生了紧急要求,要求CPU暂停当前工作,转而处理紧急情况。处理完毕后,回到原来中断的地方,继续原来的工作。这个过程被称为中断。实现此功能的部件称为中断系统,请指示CPU中断的请求源称为中段源。
STC89C如下表所示:
STC89C52系列单片机中断系统结构示意图如下图所示:
STC89C51RC总结如下表所示:
STC89C所有与52系列单片机中断相关的寄存器如下表所示:
本节我主要对外部中断0和定时器0进行简单的介绍与应用
1. 外部中断0 与 定时器中断0 简介
外部中断0(INT0)既可低电平触发,也下降沿触发。请求中断的标志位是位于寄存器TCON中的IE0 / TCON.1。当外部中断服务程序被响应后,中断请求标志位IE0会自动被清0。TCON寄存器中的IT0/TCON.0决定了外部中断0是低电平触发方式还是下降沿触发方式。如果IT0=0,那么系统在INT0脚探测到低电平后可产生外部中断。如果IT0=1,那么系统在INT0脚探测下降沿后可产生外部中断。外部中断0(INT0)还可以用于将单片机从掉电模式唤醒。
定时器0中断请求标志位是TF0。当定时器寄存器TH0/TL0溢出时,溢出标志位TF0会被置位,定时器中断发生。当单片机转去执行该定时器中断时,定时器的溢出标志位TF0会被硬件清除。
2. 相关寄存器介绍
-
IE 中断允许控制寄存器
说明:
EA :全局中断允许位,当此位是1时中断可用
ET2:定时器/计数器2中断允许位
ES :串口中断允许位
ET1:定时器/计数器1中断允许位
EX1:外部中断1允许位
ET0:定时器/计数器0中断允许位
EX0:外部中断0允许位 -
TCON 控制寄存器
说明:
TF1 :定时器1溢出标志位
TR1 :定时器1运行控制位
TF0 :定时器0溢出标志位
TR0: 定时器0运行控制位
IE1 :外部中断1请求标志 IE1=1则外部中断1在向CPU请求中断,当CPU响应中断时硬件清0。一般不用手动设置。
IT1 :外部中断1触发方式选择位 该位为0时INT1引脚上的低电平信号可触发外部中断1。该位为1时INT1引脚上的负跳变信号可触发外部中断1。
IE0 :外部中断0请求标志 IE0=1则外部中断0在向CPU请求中断,当CPU响应中断时硬件清0。一般不用手动设置。
IT0 :外部中断0触发方式选择位 该位为0时INT0引脚上的低电平信号可触发外部中断1。该位为1时INT1引脚上的负跳变信号可触发外部中断1。 -
TMOD寄存器
说明:
GATE :定时操作开关控制位,当GATE=1时,INT0或INT1引脚为高电平,同时TCON中的TR0或TR1控制位为1时,计时/计数器0或1才开始工作。若GATE=0,则只要将TR0或TR1控制位设为1,计时/计数器0或1就开始工作。
C/T :定时器或计数器功能的选择位。C/T=1为计数器,通过外部引脚T0或T1输入计数脉冲。C/T=0时为定时器,由内部系统时钟提供计时工作脉冲。
M1 、M0:T0、T1工作模式选择位
三、代码实现
本文利用的是模块化编程
�