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

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

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

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

摘要:根据红外遥控芯片BA5104的编码格式,探讨使用AVR单片机ATmega16进行软件解码的两种方法:外部中断解码法和输入捕获功能解码法。详细阐述这两种解码方法的思路,并给出相应的解码中断效劳子程序。分析这两种解码方法的优缺点,得出输入捕获功能解码法比外部中断解码法效率更高、解出的遥控码更稳定、可靠的结论。

关键词:AVR单片机;捕获模式;解码;红外遥控芯片

???用BA5104芯片构成的红外遥控发射器电路具有外接元件少、本钱低廉、器件本身功耗低、电源电压适应范围宽、工作稳定可靠等特点,因此广泛应用于遥控风扇、灯器、电热水器等各类家用电器中。BA5104芯片解码常用BA5204、BA820X系列、SM5032C等芯片进行硬件解码,这种解码方法缺乏灵活性。目前许多电子产品和电气设备以单片机作为核心控制器且逐渐采用红外遥控器进行操作,采用软件解码代替硬件解码,对于设备的升级和改造提供极大的灵活性,降低开发本钱。

1BA5104芯片构成的红外遥控发射器电路

????由红外遥控芯片BA5104构成的红外遥控发射器电路如图1所示。K1~K8为遥控器的输入按键,由于BA5104的按键输入端内接有上拉电阻无键按下时,电路没有电流流通,无编码信号输出。当电路中有任一键按下时,振荡电路起振,产生455kHz的振荡信号,经BA5104内部电路进行12分频,得到38kHz的载波信号。按键的绾码信息和C1、C2的状态信息经内部电路进行编码调制,由15脚串行输出,经三极管Q1,Q2构成的达灵顿电路放大,驱动经外发射管发射38kHz的已调制红外载波信号。14脚输出高电平,点亮发射状态指示灯LED1。

2BA5104芯片的编码格式

????BA5104的编码格式瑚为:每一帧遥控码的长度为12位,包括3位起始码位、2位用户码位、7位指令码位。每一帧遥控码的时间间隔为4T,其中T=1.6879ms为每一位遥控码的周期。一帧遥控码如图2所示。遥控码“0”用1/4T的高电平、3/4T的低电平表示,遥控码“1”用3/4T的高电平、1/4T的低电平表示,一位遥控码的波形如图3所示。

3BA5104芯片的软件解码方法

3.1测出接收脉冲下降沿刭上升沿的时间间隔并保存

????解码的关键是要测出接收脉冲下降沿到上升沿的时间间隔,行之有效的方法有两种:外部中断法输入捕获功能法,下面分别进行介绍。

3.1.1外部中断法

????用AVR单片机ATmega16的外部中断INT0接收解码BA5104芯片的电路如图4所示。PC838为一体化红外接收头,YM12864为中文液晶显示器,用于显示下降沿中断至上升沿中断之间的时间间隔及解码成功后的遥控码。

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

????

3.1.2输入捕获功能法

????用AVR单片机ATmega16的输入捕获功能ICP1接收解码BA5104芯片的电路如图6所示。

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

????

3.2遥控码“0”和遥控码“1”的提取

????根据BA5104芯片的编码格式,当保存在数据缓冲区中的数值为1/4T=1/4×1.6879ms≈422μs时,

文档评论(0)

199****4744 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7002121022000045

1亿VIP精品文档

相关文档