资源描述:
《基于单片机的红外遥控器解码器设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、2010NO.06科技资讯SCIENCE&TECHNOLOGYINFORMATION工程技术基于单片机的红外遥控器解码器设计靳光明(绵阳职业技术学院计算机科学系四川绵阳621000)摘要:SAA3010T是一种通用型红外遥控信号发送用的集成电路,适用于电视机、组合音响、VCD、DVD、风扇、电玩等设备的遥控操作。本文给出基于单片机STC80C51,红外发送芯片为SAA3010T,红外接收为SFH506的解码器设计,作为单片机应用产品的输入设备用于参数设置,在实际应用中收到了良好效果。关键词:红外遥控发射器AS3010红外接收头SH506-38编码接口电路解码程序中
2、图分类号:TN21文献标识码:A文章编号:1672-3791(2010)03(a)-0051-031红外遥控信号发送电路SAA3010T及遥路,信号被调制在37.91Khz,占空比1∶3,如封性好,灵敏度高,并且价格低廉。它的主控信号图2所示。要功能包括放大、选频、解调几大部分。要1.1SAA3010简介调制频率(晶振使用455Khz时)f=1/求输入信号需是已经被调制的信号。经过CARSAA3010是一款红外遥控发射集成电T=f/12=38Khz,f为晶振频率,占空比它的接收放大和解调会在输出端直接输出COSCOSC路,采用CMOS工艺制造,低电压工作,单管为T
3、/T=1/3。原始的信号。1C脚的振荡器,双相位发射技术,最大可提供1.3数据格式2.2SFH506-38与MCU接口2048个编码。一般为28P表贴封装,管脚信输出端产生的编码由MD端输出,它由SFH506的out端(3p)接51单片机的外部号的功能定义为:KI0~KI3为键盘扫描输4部分组成:起始位1.5bit(2个逻辑“1”)、控中断0或外部中断1,本例中接INT1。如图5入端,KO0~KO7为键盘扫描驱动管脚,C制位(1位)、用户编码位(5位)、指令编码位所示。0~C3键盘扫描输入,SMS为系统模式选择部分(6位),如图3所示:注意SFH506的2脚与1脚
4、之间最好接10输入,MDout为用载波(频率为fc/12,占空1.4位定义us电解电容及104电容,以防电源干扰。比为33%)调制的码脉冲输出,Dout为合成SAA3010的位传送方式采用双相位,位码数据输出端,OSC为振荡器输入管脚,T“1”和位“0”的相位正好相反,如图4所示。3单片机接收程序为测试端,VDD电源正,VSS电源负。当按下遥控器按键时,遥控器发出一本系统中SMS接高电平,遥控器工作于2解码器的硬件设计串二进制代码,称其为一帧数据。根据各部单系统方式,Cx输入端与KOx之间的连线2.1SFH506-38分的功能,分别为引导码(2位“1”),控制码提
5、供了32种用户编码的选择,如图1所示。SFH506-38是一种红外接收头电路,内(1位x),用户码(5位“0”),指令码(6位)。解码1.2载波波形部将红外接收管与放大电路集成在一体,算法如下。使用455KHz晶振,经由内部分频电体积小(大小与一只中功率三极管相当),密(1)设外部中断1(接SH506数据输出端)为低电平触发,允许中断。定时器T0工作于定时方式2(自动重装在时间常数),定时时间常数为20us,高优先级中断。(2)定时器T0的中断服务函数为每20us(1/4位时间)到,T20_c计数器加1。(3)外部中断1的中断服务函数的算法:①关闭外部中断,启动T
6、0定时器,清计数器T20_c。②判断第一位起始位是否为1,并丢掉该位,清计数器T20_c,清接收数据位计数器。③接收后面的13位数据的每一位,每一位的时间1.668ms④停止定时器,接收的13位数据取反送IRDA_dat,从IRDA_dat中提取5位用户码。⑤当第二个起始位为1且用户码为00000,表明本帧数据有效,提取6位指令码,否则行纠错处理。⑥等待外部中断1(IRDA)变高,打开外部中断1。图1AS3010/SAA3010遥控器内部电路图2载波波形图3数据格式科技资讯SCIENCE&TECHNOLOGYINFORMATION51科技资讯2010NO.06SC
7、IENCE&TECHNOLOGYINFORMATION工程技术参考代码如下voidT0_init(void);/*定时器0初始化*/2//外部INT1中断服务函数sbitIRDA=P3^3;//红外接口定义,外voidINT1_init(void);/*外部中断1初{//外部中断1遥控接收部中断INT1始化*///起始位:1.5位1,1#defineucharunsignedcharvoidIRDA_init(void);/*遥控接收初始//控制字:1位x#defineuintunsignedint化*///用户码:5位0,0,0,0,0#defineD_ERRO
8、R-1/*