位置:51电子网 » 技术资料 » 显示光电

用TC9148遥控MCS-51单片机

发布时间:2007/8/20 0:00:00 访问次数:752

    TC9148是CMOS低功耗红外遥控发射专用IC,通常与TC9149/TC9150红外遥控接收IC配合使用,对家用电器进行控制。TC9148可连接18个键,其中12个键为脉冲发射键(即按一次发射一次编码脉冲,接收机解调后生成一个单脉冲信号),其余6键,具有连续发射功能(即按下发射键,红外发射管连续发射该键的编码信号直到放开该键为止,接收机端可得到一串脉冲信号)。本文介绍不用TC9148对应的专用接收电路,直接用MCS-51单片机的定时器及外中断功能,接收TC9148的红外编码信号,即用TC9148遥控MCS-51单片机的方法。

    一、TC9148的编码

    要用单片机接收TC9148的遥控信号,首先应知道TC9148的编码信号。笔者利用自制的以8031为CPU的仿真器,对TC9148的编码进行监测分析,得出TC9148的编码,如附表所示。

    从表中可知TC9148的编码信号规则如下:  

    1. 码长24位,位宽840μs。

    2. 编码的第1、3、5……23位全为1,作为识别标记。

    3. 去掉1、2条中的识别标志后的纯编码中只有4位为1,其余8位为0。

    4.脉冲发射键的编码以EE开头,连续发射键的编码以EF开头(为编解码方便,接收校验后将去除以上两种识别标记)。

    手动按键后,发射一次本键编码,延时40位后再发射一次。若按的是连续发射键,延时80位后,重复上述过程,直至该键断开为止。

    MCS-51单片机根据以上规则对收到的编码信号进行校验,若不符合,则视为无效。

    二、发射、接收电原理图

    发射器原理如图1所示。TC9148静态功耗极低,可不设电源开关。读者也可以选用TC9148制作的遥控器成品,使用时要注意{13}脚至{12}、{11}、{10}脚之间的二极管的接法,这三个二极管对应编码的前3位。笔者将前3位编码为“101”,故第2个二极管不接。接收器原理较简单,如图2所示。红外接收头选用成品,通过一反相器倒相后,将信号送入单片机的INT1端(也可接INT0,但要修改相应程序)。

    三、接收及解码程序

    设单片机使用的晶振为6MHz。设定时器的定时时间为0.42ms、定时方式2、INT1为负沿触发。当第一位数据到来时,触发INT1中断,产生中断。在INT1中断服务程序中关外中断1,启动定时器0,0.42ms后,定时器中断,读数据。此时正好在该位数据的中间,以后定时器每中断2次读一位数据,读完24位数据后,将数据保存在内存中,延时40位,再读24位数据,若读出的24位数据和前面的相同,则进行校验、解码,得出相应的控制程序入口,执行相应的程序。以上任何一步不能通过则放弃此次接收结果。

    本文提供的程序本为嵌入其他程序而设计的,程序中使用了定时器T0,外中断1,内存单元10H、11H、12H、30H、31H、32H、33H、34H、35H,位地址77H,若读者在主程序中使用了以上资源,也可进行更换,要注意不要和栈冲突。

    若将此程序嵌入其他程序,只要将其中的初始化程序编入主程序的初始化部分中即可。中断服务程序可放在程序存储器的任意位置。此程序相当于在后台执行,不影响主控程序。注意6个连续发射键将导致相应处理程序的反复执行。

    源程序清单(略)。

    本文中的程序在自制仿真器中运行通过。实践证明此方法稳定性好、可靠性高、抗干扰性能优良。用户将此程序嵌入控制程序中,可完成非常复杂的遥控功能。
                

    TC9148是CMOS低功耗红外遥控发射专用IC,通常与TC9149/TC9150红外遥控接收IC配合使用,对家用电器进行控制。TC9148可连接18个键,其中12个键为脉冲发射键(即按一次发射一次编码脉冲,接收机解调后生成一个单脉冲信号),其余6键,具有连续发射功能(即按下发射键,红外发射管连续发射该键的编码信号直到放开该键为止,接收机端可得到一串脉冲信号)。本文介绍不用TC9148对应的专用接收电路,直接用MCS-51单片机的定时器及外中断功能,接收TC9148的红外编码信号,即用TC9148遥控MCS-51单片机的方法。

    一、TC9148的编码

    要用单片机接收TC9148的遥控信号,首先应知道TC9148的编码信号。笔者利用自制的以8031为CPU的仿真器,对TC9148的编码进行监测分析,得出TC9148的编码,如附表所示。

    从表中可知TC9148的编码信号规则如下:  

    1. 码长24位,位宽840μs。

    2. 编码的第1、3、5……23位全为1,作为识别标记。

    3. 去掉1、2条中的识别标志后的纯编码中只有4位为1,其余8位为0。

    4.脉冲发射键的编码以EE开头,连续发射键的编码以EF开头(为编解码方便,接收校验后将去除以上两种识别标记)。

    手动按键后,发射一次本键编码,延时40位后再发射一次。若按的是连续发射键,延时80位后,重复上述过程,直至该键断开为止。

    MCS-51单片机根据以上规则对收到的编码信号进行校验,若不符合,则视为无效。

    二、发射、接收电原理图

    发射器原理如图1所示。TC9148静态功耗极低,可不设电源开关。读者也可以选用TC9148制作的遥控器成品,使用时要注意{13}脚至{12}、{11}、{10}脚之间的二极管的接法,这三个二极管对应编码的前3位。笔者将前3位编码为“101”,故第2个二极管不接。接收器原理较简单,如图2所示。红外接收头选用成品,通过一反相器倒相后,将信号送入单片机的INT1端(也可接INT0,但要修改相应程序)。

    三、接收及解码程序

    设单片机使用的晶振为6MHz。设定时器的定时时间为0.42ms、定时方式2、INT1为负沿触发。当第一位数据到来时,触发INT1中断,产生中断。在INT1中断服务程序中关外中断1,启动定时器0,0.42ms后,定时器中断,读数据。此时正好在该位数据的中间,以后定时器每中断2次读一位数据,读完24位数据后,将数据保存在内存中,延时40位,再读24位数据,若读出的24位数据和前面的相同,则进行校验、解码,得出相应的控制程序入口,执行相应的程序。以上任何一步不能通过则放弃此次接收结果。

    本文提供的程序本为嵌入其他程序而设计的,程序中使用了定时器T0,外中断1,内存单元10H、11H、12H、30H、31H、32H、33H、34H、35H,位地址77H,若读者在主程序中使用了以上资源,也可进行更换,要注意不要和栈冲突。

    若将此程序嵌入其他程序,只要将其中的初始化程序编入主程序的初始化部分中即可。中断服务程序可放在程序存储器的任意位置。此程序相当于在后台执行,不影响主控程序。注意6个连续发射键将导致相应处理程序的反复执行。

    源程序清单(略)。

    本文中的程序在自制仿真器中运行通过。实践证明此方法稳定性好、可靠性高、抗干扰性能优良。用户将此程序嵌入控制程序中,可完成非常复杂的遥控功能。
                

相关IC型号

热门点击

 

推荐技术资料

按钮与灯的互动实例
    现在赶快去看看这个目录卞有什么。FGA15N120AN... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!