用TC9148遥控MCS-51单片机电路图

2013-10-29 14:38:00
  •   tc9148是cmos低功耗红外遥控发射专用ic,通常与tc9149/tc9150红外遥控接收ic配合使用,对家用电器进行控制。tc9148可连接18个键,其中12个键为脉冲发射键(即按一次发射一次编码脉冲,接收机解调后生成一个单脉冲信号),其余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个连续发射键将导致相应处理程序的反复执行。

源程序清单(略)。

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