新闻中心

EEPW首页>嵌入式系统>设计应用> 红外遥控芯片BA5104的软件解码方法探讨

红外遥控芯片BA5104的软件解码方法探讨

作者: 时间:2013-01-14 来源:网络 收藏


3 BA5104芯片的软件方法
3.1 测出接收脉冲下降沿刭上升沿的时间间隔并保存
的关键是要测出接收脉冲下降沿到上升沿的时间间隔,行之有效的方法有两种:外部中断法输入捕获功能法,下面分别进行介绍。
3.1.1 外部中断法
ATmega16的外部中断INT0接收BA5104芯片的电路如图4所示。PC838为一体化红外接收头,YM12864为中文液晶显示器,用于显示下降沿中断至上升沿中断之间的时间间隔及解码成功后的遥控码。

本文引用地址://m.amcfsurvey.com/article/170619.htm

c.JPG


外部中断法的解码思路:PCF838的输出端未接收到红外遥控信号时保持高电平,接收到红外遥控信号时,输出端从高电平变成低电平,形成下降沿,低电平持续一段时间后,红外遥控信号消失,输出端又从低电平变成高电平,形成上升沿。单片机ATmega16的外部中断可以由编程者自由设置为上升沿中断或下降沿中断,初始化时先将ATmega16的外部中断INT0设置为下降沿中断,当INT0发生下降沿中断时用定时器/计数器T/C1记录发生的时间并保存在t1中,然后设置外部中断INT0为上升沿中断,当外部中断INT0又一次触发中断时将发生的时间保存在t2中,再次将外部中断INT0为下降沿中断。最后计算从下降沿中断至上升沿中断之间的时间间隔并保存在事先开辟的数据存储区中,直到接收完一帧遥控码,外部中断INT0发生的过程如图5所示。外部中断INT0的中断服务子程序如下:
d.JPG
3.1.2 输入捕获功能法
ATmega16的输入捕获功能ICP1接收解码BA5104芯片的电路如图6所示。

e.JPG


输入捕获功能法的思路:初始化时先将ATmega16的T/C1设置为输入,下降沿捕获中断。当ICP1引脚检测到下降沿时产生捕获中断,将计数寄存器TCNT1中的计数值自动写入捕捉寄存器ICR1,在捕获中断程序中将ICR1的值保存到变量t1中,之后将T/C1设置为上升沿捕获中断;当ICP1引脚检测到上升沿时再一次产生捕获中断,此时将ICR1的值保存在变量t2中,然后将TENT1的计数值清0,并将T/C1设置为上升沿捕获。最后进行计算便可得到下降沿捕获中断至上升沿捕获中断之间的时间间隔并保存在数据缓冲区中,直到接收完12位遥控码。输入捕获中断发生的过程如图7所示。ICP1捕获中断服务子程序如下:
f.JPG



评论


相关推荐

技术专区

关闭