[单片机教程]第九课中断应用—红外解码
第九课 中断
应用
—
红外
解码
上一课,我们
学习
了中断
系统
,并且以计数器溢出中断编写了一个秒计数器。这一课继续讲解中断中的另一种应用—红外解码,这是外部中断的一种应用。红外线遥控是目前使用最广泛的一种
通信
和遥控手段。由于红外线遥控装置具有体积小、功耗低、
功能
强、 成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有 毒气体、粉尘等环境下,采用红外线遥控不仅xx可靠而且能有效地隔离电气干扰。我们来看看红外发射和接收的工作框图。
图一
一般由专用的
芯片
来进行编码,调制然后发射,接收端接收到红外信号后进行放大、解调、然后送到专门的芯片去进行解码输出。这一课,我们要做的就是用
单片机
来实现解码。
在
实验
板上,有一个一体化的红外接收头,它用于接收红外信号并且整理成单片机可以直接处理的标准电平信号,看下图。
图二
左端是单一的红外接收二极管,只起到接收信号的作用,而右端二种是一体化的红外接收头,一体化红外线接收器是一种集红外线接收和放大于一体,不需要任何外接
元件
, 就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,而体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输。在实验板上的 P32口我们接了一个一体化的红外接收头。P32口是单片机的外部中断INT0的入口。我们以uPD1621芯片的编码方式来讲解红外解码的过程。
uPD6121G产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。后16位 为8位操作码(功能码)及其反码。uPD6121G最多达128种不同组合的编码。遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为 108ms。一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在45~63ms之间,下图为发射波形图。
图三
当发射端一个键按下超过36ms,振荡器使芯片xx,将发射一组108ms的编码脉冲,这108ms发射
代码
由 一个起始码(9ms),一个结果码(4.5ms),低8位地址码(9ms-18ms),高8位地址码(9ms-18ms),8位数据码(9ms- 18ms)和这8位数据的反码(9ms-18ms)组成。如果键按下超过108ms仍未松开,接下来发射的代码(连发代码)将仅由起始码(9ms)和结束 码(2.5ms)组成。
图四
图四①图为位的波形图,我们要用单片机来解码,关键在于如何识别“0”和“1”,从位的定义我们可以发现“0”、“1”均以0.56ms的低电平开 始,不同的是高电平的宽度不同,“0”为0.56ms,“1”为1.68ms,所以必须根据高电平的宽度区别“0”和“1”。如果从0.56ms低电平过 后,开始延时,0.56ms以后,若读到的电平为低,说明该位为“0”,反之则为“1”,为了可靠起见,延时必须比0.56ms长些,但又不能超过 1.12ms,否则如果该位为“0”,读到的已是下一位的高电平,因此取(1.12ms+0.56ms)/2=0.84ms最为可靠,一般取0.84ms 延时左右均可。
从图四②图可以看出,根据码的格式,我们解码前应该等待9ms的起始码和4.5ms的结果码(称之为引导码)完成后才能开始读码。图四③图中为连发的格式,这个波形是发生在已经发送了一次完整的108ms的编码之后,如果按键仍按下,则只发③图中的波形。
我们来看看单片机
程序
上如何解码。
图五
程序进行接收解码,并且将解码得到的值在
数码管
上进行显示。
IT0=1;从第八课的图一中断系统图中,我们可以知道,定义外部中断为负跳变的边缘触发方式,这样当P32上的引脚信号由高变低的瞬间,单片机就可以产生中断信号。
主程序中,不停做扫描显示,当有红外信号时,中断进入中断处理子程序,先做
检测
起始码,避免由于干扰信号造成误动作,然后再等待高电平之后跳过结果码,就开始读入32位的二进制码组。解码出来的数值存放在个变量中,我们在数码管上显示出码值及其反码值,这样可以看到解码是否正确。
这次我们的中断处理子函数我们写成void Decode() interrupt 0,和上一课的interrupt 1不同,大家对照第八课的中断系统图,从上到下,分别就是interrupt 0~4共5个中断。
在解码过程中,当我们按一下遥控器时,可以显示出码值,但如果持续按住,则解出来全是FF,这是对连发格式的解码得到的值,在判断是否连发时,程序中 还要进行处理。大家可以想想怎么做连发判断。另外,在解码的时候,大家应该注意到了,数码管的显示有闪动,这是因为解码过程中,用了延时而没有进行数码管 扫描,大家想想有什么办法可以减少这种闪动。
好了,这一课到此结束,这个解码程序还有需要改进的地方,比如里面用到了 while做电平判断,这样如果受到干扰容易在此处死循环,大家想想如何改进这里,可以使其既能做电平判断又不至于会出现死循环的状况。
郑重声明:资讯 【[单片机教程]第九课中断应用—红外解码】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【
在线投诉
】,我们审核后将会尽快处理。
——
相关资讯
——
2023年中国现代精密灌溉系统市场现状分析报告
2023/3/27
南京打井公司
2018/2/14
可喜安床垫_凤凰家居
2018/2/14
留学日本学费多
2018/8/18
周围血管病的xx医院【301军科微创】
2015/12/21
安装合页大有讲究
2019/5/25
泥灸,潮生康元泥灸多少钱一盒
2011/12/21
什么去眼部细纹的眼霜效果{zh0}
2015/2/20
总经理办公室适合挂什么样的墨宝
2015/3/12
生宝宝后肚子怎么减
2015/3/16
多年黑眼圈怎么去除
2015/3/24
去眼袋明星产品
2015/3/25
什么是工装夹具_浅笑一生--------------------------------浅笑一生
2010/1/9
弹簧支架,弹簧支吊架,可变弹簧支吊架_sythzdjc的空间_百度空间
2010/1/24
蓄电池修复仪、蓄电池修复仪加盟商的信任_cs110sc电池医院_新浪博客
2010/2/2
美国芝加哥宠物用具展/2009年美国芝加哥圣诞节宠物用品展- lili80 ...
2010/4/3
周日 笔架山放松跑16圈_善存片_新浪博客
2010/4/6
也谈中国的井盖_海文_新浪博客
2010/4/17
泰昌牌破碎机、磨矿机、破碎设备类别- hntcjx的博客- 途牛旅游网
2010/5/9
2011年美国玩具展纽约玩具展2011年纽约玩具展阿里巴巴tcsy2010的博客BLOG
2010/6/8