单片机红外遥控系统设计 摘要:本文设计了一种基于AT89S52单片机的红外遥控系统,可用于控制多种电器的开关,交流电机的转速及启停等方面。阐述了发射部分和接收部分的设计原理和工作过程,介绍了一种红外遥控解码程序的实现方法,并用流程图表示了程序的设计过程。 1 引言 红外线波长远小于无线电波的波长,所以红外遥控不会干扰其他无线设备的工作;其次其无法穿透墙壁,故不同房间的家用电器可使用通用的遥控器而不会产生相互干扰;再次红外线电路调试简单,只要按给定电路连接无误,一般不需任何调试即可投入工作,并且编解码容易,可进行多路遥控;另外红外遥控器作为控制系统的输入设备,具有成本低、灵活方便的特点。红外遥控的这些优点可为用户提供方便的操控手段,因此该技术被广泛应用于各种家电产品、娱乐设施、现代化仪器仪表和工业控制中,为现代家居和生产生活增添了一丝亮色。 单片机集CPU,RAM,ROM,I/O口、中断和定时器于一体,具有体积小,重量轻,控制灵活方便,价格低廉等优点,广泛应用于工业自动化、仪器仪表、家用电器、信息和通信产品以及军事装备等方面。采用单片机进行红外遥控系统设计,具有编程灵活多样,操作码数可随意设定等优点。单片机经过不断地更新换代,其性能也在不断的提升,其中ATMEL公司生产的闪速存储器单片机芯片AT89S52是一种低功耗,高性能的CMOS8位微控制器,本设计以AT89S52单片机为核心,附以相应的外围电路,构成基于单片机控制的红外遥控系统。 2 系统硬件设计 本文所设计的红外遥控系统分为两个部分:即遥控发射部分和接收控制部分(整个系统原理框图如图1,图2所示)。整个系统需要解决的关键问题是实现红外信号的有效发射与接收,本设计将采用脉冲个数编码,和单片机软件解码的方式来实现红外遥控器对继电器的开和关,从而控制电器设备。 file:///C:/Users/chang/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif 图1: 遥控发射部分框图 file:///C:/Users/chang/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif file:///C:/Users/chang/AppData/Local/Temp/msohtmlclip1/01/clip_image003.gif 图2:接收控制部分电路 2.1遥控发射部分(其电路原理图如图3): 主要由AT89S52单片机、矩阵式操作键盘、红外发射电路和电源部分组成。实现一旦有键按下,单片机进行键盘查询,并由查询的键号控制红外发射管发射相应的脉冲。 2.1.1AT89S52单片机 遥控电路的核心控制芯片采用AT89S52单片机,它具备8KB可重编程Flash存储器,1000次擦写周期,32个可编程I/O口线,3个16位定时器/计数器,8个中断源,看门狗定时器,2个数据指针,另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 2.1.2矩阵式键盘 file:///C:/Users/chang/AppData/Local/Temp/msohtmlclip1/01/clip_image005.jpg
矩阵式键盘即行列式键盘,用I/O线组成行、列结构,按键设置在行列的交电上,行列线分别连接到按键开关的两图3: 遥控发射部分的电路原理图 端,按键中有无按键按下是由列线送入扫描字,行线读入行线状态来判断的。本设计中的4*4矩阵键盘扫描时先 经4位输出口向4位列线输出低电平,然后再输入4位行线的状态,若行线状态皆为高电平则表明无键按下,若行线状态有低电平则表明有键被按下。 2.1.3红外发射电路 遥控信息码由单片机的定时器0调制成38KHZ的红外线载波信号,由P3.4口输出,经三极管9013放大后由红外发射管发射出去。 2.2接收控制部分(电路原理图如图4): 主要由AT89S52单片机、红外接收电路、数码显示电路、继电器控制电路和电源电路组成。遥控器发射的信号经红外接收处理传递给单片机,单片机根据不同的信息码进行相应的继电器的控制,并完成相应的现实功能。 2.2.1AT89S52单片机 AT89S52(2)单片机为控制核心,外加12MHZ的晶振。 2.2.2红外接收电路 红外光波不可见,峰值波长940nm左右,属红外波段。红外接收管将接收到的红外线光波转换成电信号,黑色的树脂封装将700nm以下波长的光线滤除。红外一体化接收头是由红外接收管和放大电路组成的,能够接收脉冲编码调制的红外光信号,具有体积小,密封性好,灵敏度高,价格低廉等优点。本设计采用SM0038一体化接收头,其解调频率为38KHZ,当接收到38KHZ的红外脉冲信号时输出为低电平,反之输出高电平。经其解调后的信号输入单片机的中断和串行接收口。通过单片机的中断查询可进行下一步操作。 2.2.3数码显示电路 为方便识别发射的按键号码,以及显示受控制的电路,在接收部分设置数码显示电路。显示电路主要由显示驱动器4511和数码管LED组成。CD4511是7段译码器,与其它驱动器不同的是,它显示数码‘6’和‘9’时没有拖尾现象,它所驱动对象是共阴极LED数码管。CD4511的四个信号输入端用单片机P1端口中的四位来实现。 2.2.4继电器控制电路 继电器控制电路可由单片机的P0和P2口输出,一共可以有16个支路,即可以控制16个电器,而这16个支路的电路形式完全相同,在本次设计模型中,可选择其中的一个或几个支路来演示。以P2.1口为例,将其连接到继电控制电路中三极管9012的基极,三极管的射极接继电器,使整个控制部分接到交流电器中。当P2.1输出低电平时,三极管导通,继电器吸合,对应的电器设备电源接通,设备开启工作;否则P0或P2口相应引脚输出为高电平,三极管截止,继电器断开,对应的电器设备因断电而不能工作。 file:///C:/Users/chang/AppData/Local/Temp/msohtmlclip1/01/clip_image007.jpg 图4: 接收控制部分的电路原理图 3 系统软件设计 本设计的软件分为发射部分和接收部分。 发射部分的工作原理为:系统上电初始化,进入主程序循环状态。调用键盘扫描处理子程序,当无按键按下时,系统处于等待状态;当有按键按下时,系统通过按键检查子程序,检查按键号并转入相应的发射子程序。(键扫描程序流程图如图5) 在发射子程序中,利用定时器0将待发射信号调制成38KHZ的载波信号,经三极管放大后驱动红外发射管,发射调制脉冲信号。发射信号采用脉冲个数编码,不同的脉冲个数代表不同的编码,最小为2个脉冲,其它信息码的脉冲个数逐个递增。为了使接收可靠,第一位码宽为3ms,其余为1ms,码间距为1ms,遥控码数据帧间隔大于10ms。遥控器上每一个按键都有唯一的一个键号,CPU通过查询得到的键值发射事先设定个数的脉冲。(红外发射程序流程图如图6)
| | | | | | file:///C:/Users/chang/AppData/Local/Temp/msohtmlclip1/01/clip_image008.gif | | file:///C:/Users/chang/AppData/Local/Temp/msohtmlclip1/01/clip_image009.gif | |
图5:键扫描程序流程图
| | file:///C:/Users/chang/AppData/Local/Temp/msohtmlclip1/01/clip_image010.gif |
图6:发射程序流程图 接收部分工作原理为 :系统上电初始化后,对单片机的INT1口进行检测,当其为高电平时,系统处于等待状态;当其为低电平时,将启动中断服务程序。红外接收器输出脉冲帧数据时,第一位码的下降沿触发中断程序,实时接收数据帧,并对第一位码的码宽进行验证。若第一位的低电平码的脉宽小于2ms,将作为错误帧处理。当间隔位的高电平脉冲宽大于3ms时,结束接收,然后根据累加器A中的脉冲数,在单片机P1.O—P1.3口输出相应的二进制数据,经译码器的译码后驱动数码显示管显示相应按键,同时P0或P2口的某一对应引脚输出控制信号,使继电器原有状态发生改变,此时即完成一次数据的接收处理。 4 结束语 本设计采用红外发射和接收的方式,保证了信号传输的可靠性,并且控制简单、实施方便,成本低廉。通过接收发射端的控制信号,在接收部分实现了相应的控制。但是,由于受红外线定向性和传输距离的限制,该系统只适应于短距离的遥控控制(10 m以内),而且操作时遥控器要有一定的角度,如果中间有墙、门窗等障碍物时,红外线将无法穿透。如果采用调频或调幅等发射接收编码,可提高遥控距离,并且不受角度的影响。 注释: 红外编码的格式多种多样,本设计只是选取了其中的一种。 参考文献: (1)李广弟《单片机基础》北京航空航天大学出版社 2001年第2版,2003年9月第6次印刷, P11-37,P200-203 (2)刘东汉《基于微处理器解码多功能遥控系统的设计》<现代电子技术>2006年第8期,P27-29 (3)朱光忠《基于单片机的红外遥控开关控制器》<计算机工程与设计>2006年第11期,P2097-2099
|