单片机用作通用红外遥控接收器的设计

[09-12 18:12:31]   来源:http://www.88dzw.com  单片机学习   阅读:8301

文章摘要: 由图5可知,TSOP1738送往8051解码单片机INT0和INT1两引脚上的波形相反,由INT0引脚上脉冲的下降沿所触发的中断服务程序完成启动计数器T0,以测量INT1引脚上正脉冲的宽度。由INT1引脚上脉冲的下降沿所触发的中断服务程序完成关计数器T0,并根据计数值来判断是对应于二进制的“0”还是“1”。 3.2 软件设计 解码单片机8051的软件包括主程序、INT0中断服务程序和INT1中断服务程序等3部分。在8051单片机内部RAM区建立的工作单元和标志位。 *BUF0~BUF3——接收缓冲移位寄存器单元(32bit),每次

单片机用作通用红外遥控接收器的设计,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com

     由图5可知,TSOP1738送往8051解码单片机INT0和INT1两引脚上的波形相反,由INT0引脚上脉冲的下降沿所触发的中断服务程序完成启动计数器T0,以测量INT1引脚上正脉冲的宽度。由INT1引脚上脉冲的下降沿所触发的中断服务程序完成关计数器T0,并根据计数值来判断是对应于二进制的“0”还是“1”。

     3.2 软件设计
     解码单片机8051的软件包括主程序、INT0中断服务程序和INT1中断服务程序等3部分。在8051单片机内部RAM区建立的工作单元和标志位。
              
     *BUF0~BUF3——接收缓冲移位寄存器单元(32bit),每次由INT1中断服务程序解出的存于CY的二进制位,通过累加器连同CY的右移操作,传送到BUF0——BUF3内。
     *LENG——码长计数器,用于计数器解出的二进制位数。

     *(29H).0——码间隔标志位,当收到码组间隔时该标志被置位。

     *(29H).1——用户识别码标志位,当收到一组码的前8位为01H时该标志被置位

     以下是主程序的设计要点:
     *正确地解码必须从一组码的起始进行。为此程序在初始化后,首先检测码间隔标志(29H).0,如果为1,表明是一组码的开始,程序就将码长计数器清零,以例从头开始计数。

     *为防止其它遥控码的干扰,当接收到前8位码后,要检查它的值是否为01H。如果是,则置位用户码标志(29H).1。只有用户码标志为1时,收到的后8位码才作为有效操作码处理。

     *为了得到正确的解码结果,要检查32位遥控编码中用户码和操作码各自的反相一致性。正极性的用户码留在BUF3中,负极性的用户码留在BUF2中;正极性的操作码留在BUF1中,负极性的操作码留在BUF0中。然后比较BUF3和BUF2中的内容,比较BUF1和BUF0中的内容,如果都满足反相一致才进入下一步,否则,作无效码处理。
   
     以上所述方法非常简单地实现了红外遥控信号的接收解码,极大地节约了硬件实现的资源开销。只要修改汇编代码的部分参数,就可以适用于多种红外遥控器信号的接收和解码。 
    


上一页  [1] [2] 


Tag:单片机学习单片机开发,单片机原理,单片机教程单片机学习

《单片机用作通用红外遥控接收器的设计》相关文章

分类导航
最新更新
热门排行