单片机学习笔记---红外遥控(外部中断)

这篇具有很好参考价值的文章主要介绍了单片机学习笔记---红外遥控(外部中断)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

红外遥控简介

硬件电路

基本发送与接收

NEC编码​​​​​​​

遥控器键码

复习外部中断和定时器


红外遥控简介

红外遥控是利用红外光进行通信的设备,由红外LED将调制后的信号发出,由专用的红外接收头进行解调输出

通信方式:单工,异步

红外LED波长:940nm

通信协议标准:NEC标准

单片机学习笔记---红外遥控(外部中断),51单片机学习笔记,单片机,学习,笔记,51单片机,mcu,物联网,嵌入式硬件

上图第三种图就是红外接收头(可以拔下来的)

硬件电路

发送部分

单片机学习笔记---红外遥控(外部中断),51单片机学习笔记,单片机,学习,笔记,51单片机,mcu,物联网,嵌入式硬件

以上是两种电路

我们先来看第一个电路

单片机学习笔记---红外遥控(外部中断),51单片机学习笔记,单片机,学习,笔记,51单片机,mcu,物联网,嵌入式硬件

当两个三极管同时导通的时候,IN是低电平,LED是以38KHZ闪着亮的。

这样是为了抗干扰,因为自然界中有很多红外光(比如太阳会发出很强的红外光,如果这个LED直接发出连续的红外光,那这个红外光会淹没在太阳光之中。接收头就没办法判断了,这样的话接收头被太阳照一下就有键码值了,这样子肯定是不行的,所以我们让它以38KHZ这个频率闪着亮,和自然界中的红外光区分开来,我们接收头再把这38KHZ的频率提出来,用个滤波器把38KHZ的频率分量提出来,然后再进行一个放大,然后再把这个频率滤掉,就能够在自然界这个连续不断的红外光中传递这个38KHZ的通讯信号了,这就是调制的目的,就是为了和自然光中的红外光区分。调制过程就是将38KHZ和高低电平进行叠加。

再来看第二个电路

单片机学习笔记---红外遥控(外部中断),51单片机学习笔记,单片机,学习,笔记,51单片机,mcu,物联网,嵌入式硬件

如果IN输入低电平,LED就亮,如果给高电平的话这个灯就不亮。发送的时候就需要程序来时序“以38KHZ闪着亮”的这样一个波形的功能。我们可以把这个IN端接在单片机的IO口上,但是要求这个IO口能直接输出这种波形,高电平1就是连续的1,低电平的话就是38KHZ的方波给这个LED,它也能实现“以38KHZ闪着亮”的功能,这就是高低电平调制的过程。

但是我们这个开发板上并没有发送部分的电路,所以只能用开发板配的遥控器进行发送

单片机学习笔记---红外遥控(外部中断),51单片机学习笔记,单片机,学习,笔记,51单片机,mcu,物联网,嵌入式硬件

所以我们主要了解它的接收部分(这是个一体化的红外接收头)

单片机学习笔记---红外遥控(外部中断),51单片机学习笔记,单片机,学习,笔记,51单片机,mcu,物联网,嵌入式硬件

我们把这个红外接收头输出的波形进行解码,然后读取里面的键码值,就可以完成本节的任务。

这个接收部分其中是有一个单独的一个红外接收LED的,这个LED是一个黑色的红外接收管,如果直接用红外接收管的话,那接收的信号就有很多成分了,比如说自然光和闪着亮的这种光都会进来,这样的话在后面还需要进行一个电路操作,比如说你要将自然光给滤掉,然后再对闪着亮的成分进行放大。

因为接收头肯定是不想要这个38KHZ,它只在传递的过程中需要,所以我们接收之后要设计一个滤波电路或者其他的操作把这个滤掉,使我们输出的信号和第一种电路中IN端的输入的信号是一样的,这样就做到把这个信号给发送过来的目的了。

由于信号发送是很快的,每次按键之后就会出现很多的高低电平,并且这高低电平会在几十毫秒内就跑完了。因此我们不能用单片机判断按键那样来个if循环扫描来判断,这样的就太慢了。

为了更快的处理,我们将OUT引脚接在外部中断引脚上(INT0(P32),INT1(P33)),一旦产生一个下降沿,就立马中断对它进行处理,这样的响应实时性很高。

原理图上就把这个OUT接在了P32这个引脚上:

单片机学习笔记---红外遥控(外部中断),51单片机学习笔记,单片机,学习,笔记,51单片机,mcu,物联网,嵌入式硬件

基本发送与接收

空闲状态:红外LED不亮,接收头输出高电平

发送低电平:红外LED以38KHz频率闪烁发光(接收时高电平还是高电平,低电平滤掉),接收头输出低电平

发送高电平:红外LED不亮,接收头输出高电平

单片机学习笔记---红外遥控(外部中断),51单片机学习笔记,单片机,学习,笔记,51单片机,mcu,物联网,嵌入式硬件

空闲状态和发送高电平状态是可以区分开的,我们红外发送的时候是以第一个下降沿为开始,之后在一段时间内都是波形,在这一个过程中如果没收到即认为是高电平,等这个波形完了之后,就进入空闲状态,这就是基本的发送和接收。

NEC编码

发送这个高电平和低电平之后,就可以传递信号了,这个时候需要一个企业来制定一个标准,就是怎么来表示这个高电平,以及高电平怎么组合去表示起始信号数据0和1.

这个标准就是NEC编码

单片机学习笔记---红外遥控(外部中断),51单片机学习笔记,单片机,学习,笔记,51单片机,mcu,物联网,嵌入式硬件

这个NEC标准中不会出现38KHZ的调制。

38KHZ是底层通信时才会有,就当于底层做好了基本的发送高低电平,然后把它封装在一个模块中。

单片机学习笔记---红外遥控(外部中断),51单片机学习笔记,单片机,学习,笔记,51单片机,mcu,物联网,嵌入式硬件

发送高低电平信号,先调制之后再接收,接收完之后解调输出

单片机学习笔记---红外遥控(外部中断),51单片机学习笔记,单片机,学习,笔记,51单片机,mcu,物联网,嵌入式硬件

NEC标准是建立在输入信号和输出信号之后,所以NEC的时序图中并不会出现38KHZ。

首先来看一下这个波形,它是按键按下后,接收头OUT引脚输出的波形。

单片机学习笔记---红外遥控(外部中断),51单片机学习笔记,单片机,学习,笔记,51单片机,mcu,物联网,嵌入式硬件

没按键按下时是,波形是高电平,代表空闲状态。

一旦按键按下后,OUT引脚就会输出一个Star信号(由9毫秒的低电平和4.5毫秒的高电平组成),这个信号相当于告诉单片机这些接触设备有按键过来了,要开始发送数据了,请准备一下。

单片机学习笔记---红外遥控(外部中断),51单片机学习笔记,单片机,学习,笔记,51单片机,mcu,物联网,嵌入式硬件

Star信号发送完之后会有段长的数据区,表示地址码和控制码这一部分。DATA的格式总共是四个字节,一共是32位。第一个字节就是地址码,就是遥控器的一个标识符,防止不同品牌的遥控器互相用,就是标识遥控器的地址。

然后是一个地址码反码(按位取反),用来数据验证,接收完两个字节后,把第一个字节和第二个字节进行比较,看看是否相等,如果相等就说明接收对了。

再之后就是命令码,这就是我们的键码,按下哪个按键。同样命令码也需要一个反码来进行验证。

因此4个字节(低位在前,高位在后)其实携带的信号只有两个。

单片机学习笔记---红外遥控(外部中断),51单片机学习笔记,单片机,学习,笔记,51单片机,mcu,物联网,嵌入式硬件

DATA的1和0是怎么表示的呢?

单片机学习笔记---红外遥控(外部中断),51单片机学习笔记,单片机,学习,笔记,51单片机,mcu,物联网,嵌入式硬件

它是先来一个低电平560us,然后高电平560us,这样就表示逻辑0;

然后低电平560us,然后高电平1690us,这样就表示逻辑1。

这样发完32位数据之后,一帧数据就发完了

单片机学习笔记---红外遥控(外部中断),51单片机学习笔记,单片机,学习,笔记,51单片机,mcu,物联网,嵌入式硬件

之后就采集OUT引脚的波形,然后对它的时间长度进行分析,就可以得到地址码和命令码了。

之后绿色的数据帧就表示如果你按着按键不放的时候,它先发一个带有数据的这样一个波形,然后还不放手,它就会每个100毫秒就发送一次repeat,就相当于连续按键这个功能。

如果按下立即放手的话就只有前面第一帧的蓝色部分波形。

而repeat的这段波形和Star部分的波形差不多。

单片机学习笔记---红外遥控(外部中断),51单片机学习笔记,单片机,学习,笔记,51单片机,mcu,物联网,嵌入式硬件

这是示波器实际采样的图(将示波器直接接到接收头的OUT引脚上)

PS:一个格子表示2ms,我们的遥控器的地址码是0000 0000

下降沿是前一个数据位的开始也是后一个数据位的结束,所以发送完最后一位数据之后为了终止会多出来一个下降沿。

单片机学习笔记---红外遥控(外部中断),51单片机学习笔记,单片机,学习,笔记,51单片机,mcu,物联网,嵌入式硬件

遥控器键码

单片机学习笔记---红外遥控(外部中断),51单片机学习笔记,单片机,学习,笔记,51单片机,mcu,物联网,嵌入式硬件

接下来复习一下中断的知识。

复习外部中断和定时器

STC89C52有4个外部中断(传统的51单片机只有2个外部中断)

单片机学习笔记---红外遥控(外部中断),51单片机学习笔记,单片机,学习,笔记,51单片机,mcu,物联网,嵌入式硬件

STC89C52的外部中断有两种触发方式:下降沿触发和低电平触发

本节将用到下降沿触发,我们只需要测一下两个下降沿之间的时间,就可以知道这个信号是起始/逻辑1/逻辑0。

中断号:

单片机学习笔记---红外遥控(外部中断),51单片机学习笔记,单片机,学习,笔记,51单片机,mcu,物联网,嵌入式硬件

外部中断寄存器

单片机学习笔记---红外遥控(外部中断),51单片机学习笔记,单片机,学习,笔记,51单片机,mcu,物联网,嵌入式硬件

上图红框里的才是外部中断的控制位

单片机学习笔记---红外遥控(外部中断),51单片机学习笔记,单片机,学习,笔记,51单片机,mcu,物联网,嵌入式硬件

其实我之前已经详细些过中断系统和定时器的博客了,也写的比较全面的了,大家不懂的可以看看,看过后肯定能让你明白中断系统和定时器的工作原理!

单片机学习笔记---中断系统(含外部中断)-CSDN博客

单片机学习笔记---定时器/计数器(简述版!)_定时计数器ea-CSDN博客

单片机学习笔记---定时器和中断系统如何连起来工作-CSDN博客

以上就是本节的内容,下一篇开始代码演示!代码演示中会涉及定时器和中断系统!文章来源地址https://www.toymoban.com/news/detail-834515.html

到了这里,关于单片机学习笔记---红外遥控(外部中断)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 51单片机 (十八)红外遥控

    什么是红外线?         人的眼睛能看到的可见光按波长从长到短排列,依次为红、橙、黄、绿、青、蓝、紫。其中红光的波长范围为0.62~0.76μm;紫光的波长范围为0.38~0.46μm。比紫光波长还短的光叫紫外线,比红光波长还长的光叫红外线.红外线遥控就是利用波长为0.

    2024年02月08日
    浏览(32)
  • 【【51单片机的红外遥控】】

    红外遥控 利用红外光进行通信的设备,由红外LED将调制后的信号发出,再由专门的红外接收头进行解调输出 通信方式:单工 异步 红外LED波长:940nm 通信协议标准:NEC标准 用那种一体化红红外接收头 直接帮忙滤波 好用一点 因为用红外遥控案件按下 速度太快了 比普通按键按

    2024年02月15日
    浏览(32)
  • (十六)51单片机——红外遥控

    目录 学习目标 成果展示  硬件知识 简介 硬件电路 NEC编码 遥控器键码 外部中断  中断号 寄存器 代码  红外调控  直流电机 总结            本节知识我们来学习关于红外遥控的部分,重点要学习的是NEC编码和外部中断的知识,好了,让我们开始今天的学习吧! 红外遥

    2023年04月09日
    浏览(29)
  • 单片机学习 11-中断系统(定时器中断+外部中断)

    ​ 中断是为使单片机具有对外部或内部随机发生的事件实时处理而设置的,中断功能的存在,很大程度上提高了单片机处理外部或内部事件的能力。它也是单片机最重要的功能之一,是我们学习单片机必须要掌握的。很多初学者被困在中断中,学了很久仍然不知道中断究竟是

    2024年02月05日
    浏览(41)
  • 【【51单片机红外遥控小风车】】

    今天结束了51单片机的学习,明天开始学习stm32 我是学习江科大的视频一步一步完成的 ,他讲的非常好,非常好 特别通俗易懂 学习复刻他的作品我也自己创作了一些 但是现在暂时脱离这块板子了 以后可能会更新一个应用51单片机制作的智能小车 我特别想开一个小车的坑 谢

    2024年02月15日
    浏览(33)
  • 51单片机——中断系统之外部中断实验,小白讲解,相互学习

     中断介绍         中断是为使单片机具有对外部或内部随机发生的事件实时处理而设置的,中断功能的存在,很大程度上提高了单片机处理外部或内部事件的能力。它也是单片机最重要的功能之一,是我们学些单片机必须要掌握的。         为了更容易的理解中断概

    2024年02月07日
    浏览(38)
  • STC15系列单片机学习6:外部中断

    外部中断,就是通过单片机IO引脚电平的变化触发的中断。 STC15系列单片机的外部中断源一共有5个,分别是外部中断0(INT0)、外部中断1(INT1)、外部中断2(INT2)、外部中断3(INT3)、外部中断4(INT4);当然不是所有的STC15系列单片机都有着5个外部中断。 中断源 触发行为

    2024年03月12日
    浏览(97)
  • 【【51单片机11.0592晶振红外遥控】】

    这是初步实现的架构 怎么实现内部的详细逻辑 我们用状态机的方法 0状态时一个空闲状态 当它接收到下降沿开始计时然后转为1状态 1状态下 寻找start 或者repeat的信号 再来下降沿读出定时器的值 如果是start 那就进入2状态开始译码 如果repeat 那么重发标志位 重新切回去 我每次

    2024年02月15日
    浏览(33)
  • 基于51单片机设计的红外遥控器

    遥控器是现代生活中必不可少的电子产品之一,目前市面上的遥控器种类繁多,应用范围广泛。而 NEC 红外遥控器协议则是目前应用最为广泛的一种协议之一,几乎所有的电视、空调等家用电器都支持该协议。 本项目是基于 51 单片机设计支持 NEC 协议的红外遥控器,实现接收

    2024年02月09日
    浏览(36)
  • 使用C51单片机实现红外遥控行为控制

    目录 引言 红外遥控原理 实现红外遥控功能 代码示例 结论

    2024年02月12日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包