单片机用作通用红外遥控接收器的设计
[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中的内容,如果都满足反相一致才进入下一步,否则,作无效码处理。
以上所述方法非常简单地实现了红外遥控信号的接收解码,极大地节约了硬件实现的资源开销。只要修改汇编代码的部分参数,就可以适用于多种红外遥控器信号的接收和解码。
- 上一篇:用单片机实现温度远程显示
《单片机用作通用红外遥控接收器的设计》相关文章
- › 单片机用作通用红外遥控接收器的设计
- 在百度中搜索相关文章:单片机用作通用红外遥控接收器的设计
- 在谷歌中搜索相关文章:单片机用作通用红外遥控接收器的设计
- 在soso中搜索相关文章:单片机用作通用红外遥控接收器的设计
- 在搜狗中搜索相关文章:单片机用作通用红外遥控接收器的设计