您当前的位置:五五电子网电子知识单片机-工控设备源码-程序电脑红外遥控器下位机程序的实现 正文
电脑红外遥控器下位机程序的实现

电脑红外遥控器下位机程序的实现

点击数:7399 次   录入时间:03-04 11:41:32   整理:http://www.55dianzi.com   源码-程序

  1.红外数据采集部分
  
  目前红外遥控器大多采用两种发射数据编码方式,一种是以同步头开始,中间跟着若干位数据、地址码,而数据以矩形波的宽度来区分”0”或”1”,最后再紧跟一位结束码,一帧数据发送完毕后,后面只连续发送同步头不再重复发送数据,通常数据位的”1”表示形式为500us低电平加500us高电平,用500μs低电平加1.6ms高电平表示“0”;另一种没有同步头,直接发送的就是数据、地址码,这种也以时间来区分数据,但附加波形的起升或下降沿来区别:而市面上这两种编码方式又以第一种居多。

  为此要实现数据的采集通常也是采用两种方法,一种采用固定解码方式,即遇到规定的数据宽度(时间)或升降沿就写入数据“0”或”1”,这种方法比较简单,容易实现,但解码有相对性,通用性差,只能实现大部分解码:另一种解码方式就是,采用分开读取数据码高低电平的宽度(时间),通过记录、区分所有时间数据来实现解码,这种解码方式比较复杂,且数据量比较大,但理论值可以实现所有红外遥控器的解码,兼容性强,这种方式可以利用MCU的捕获功能来简化解码程序.至于取用何种方式解码,可按需取舍,考虑到本人的用途暂时只需兼容大部分遥控器即可,所以采用了第一种固定解码方式,并采用MCU的中断功能实现,程序如下。

  *注:在此提醒一下读者,延时程序编写要特别注意,同样的延时程序在STC和普通51上运行的时间差别很大,尤其是编写DS18820的温度读取程序时要注意,因为DS18820芯片对时序、时间的要求极其严格。

  //以下部分变量未定义,在系统总初始化程序内定义

  2.EEPROM的读写
  
  现在很多用途均需用到数据存储,所以EEPROM在大多应用场合中都成了必须附件:

  为方便应用,现在的MCU一般均内部集成有EEPROM存储器,STC也不例外,象STC12C5410AD芯片,内部就集成了2K-EEPROM,大大方便了使用:本芯片内的存储器分为4个扇区,每个扇区512字节,但每个扇区地址并不连续,使用时需注意一下扇区的起始地址问题;另外在数据写入时,如果原位置已存有数据,需先擦除再写入新的数据:程序如下:

  3.模拟发射部分
  
  目前的红外遥控器发射信号,绝大部分都是调制在38~40KHz副载波上(副载波通常为方波,周期26μs),然后经红外发射管发送出去:不管那种数据模式(如上面讨论的有同步头和无同步头形式),其发射原理都一样,即将需发射的数据调制到副载波上,调制原理很简单,将所需发送的数据直接和副载波相与即可。

  调制可采用外部调制或内部调制,内部调制就是用程序直接模拟,一次性产生发射波;外部调制则直接用硬件完成,增加一个与门电路即可,与门的一个输入脚接38K~40K周期方波(即副载波),另一输入脚接MCU数据输出口,则与门输出脚即为发射波,再加接一级发射放大,然后经红外发射管发射出去即完成整个调制,本文发射部分采用程序模拟来产生,副载波用定时器模拟产生,程序片断如下:

 




本文关键字:程序  遥控器  电脑  源码-程序单片机-工控设备 - 源码-程序