图2 89C52引脚图
3.1.2 晶振电路
STC89C52芯片内部有一高增益反相放大器,用于构成振荡器。反相放大器的输入端为XTAL1,输出端为XTAL2[8]。在XTALl、XTAL2(第19、18引脚)两端跨接一个石英晶体振荡器,加上两个电容就构成了稳定自激谐振电路[6]。电路晶振频率为11.0592MHz。C12,C13是两个瓷片电容,与晶振Y1构成了自激谐振电路,其电容的作用主要是对频率进行微调,一般取20~45PF左右。使用该电路可产生稳定的11.0592MHz频率,受外界的环境的干扰影响非常小。电路接法如图3。
图3 晶振电路
3.2 红外发射器电路设计
3.2.1 按键电路
一个按键与一个LED灯相对应,按一次对应灯亮,再按一次对应灯灭。再
设一个总开关控制所有灯的亮灭,如图4所示。
图4 按键电路
3.2.2 红外发射电路
指令脉冲编码信号经过调制,将其放在由载波振荡器生成的载波上,然后用调制信号驱动红外发射LED,目的是发出已经调制后的红外光波,电路的红外遥控系统框图如图5所示。
图5 红外发射系统框图
在红外数据发射过程中,软件编程将数据从P1.0将数据输出。T0定时产生38KHz载波信号,发射电路如图6所示。
图6 红外发射电路
3.3 红外接收器电路设计
硬件电路组成有:红外接收电路、电源电路、电器驱动电路、四路LED电路。
3.3.1 红外接收电路
红外线接收[8]是把发送的数据转换成一定格式的控制指令脉冲(调制信号、基带信号),是完成红外线的接收、放大、解调,还原成发射格式的脉冲信号。电路如图7所示。
图7 红外接收电路
3.3.2 电源电路设计
由于本设计不需要高功率电源,因此采用USB供电足以满足要求,如图8所示。
图8 电源电路
3.3.3 四路LED电路
四路开关电路的实现是本次设计的重点,通过四路开关的功能演示来体现本次多功能红外遥控器的设计思想,图9为其电路图。
图9 四路LED电路
4. 程序设计
4.1 红外发射模块
单片机对红外遥控开关的控制包括两个子系统:红外遥控器指令发射、红外遥控指令接收,两个子系统是有很强的互连性[11]。各个子系统的软件系统差别较大,下面将首先介绍红外发射系统的软件设计。使用C语言编写程序,调用的库函数多,易于移植,编程简单。
4.1.1 发射电路主程序流程图
图10 红外发射主程序流程图
4.1.2 红外发射子程序流程图
子程序设计是让单片机等待按键按下发送脉冲信号,如果检测到信号就让其按照红外通信规则发射引导码、系统码、系统反码、数据码、数据反码还有结束标志位。引导码用来提示接收器其后为遥控数据:一个按键对应一个系统码,防止接收数据混乱;反码的作用是防止数据在传输过程中失真,保证通信质量。如图11所示。
图11 红外发射子程序流程图
4.2 红外接收模块
4.2.1 红外接收电路主程序流程图
主程序是首先初始化接收端口,红外接收器开始扫描接收端口,然后检测是否接收到红外信号[15]。如果接收到红外信号就调用接收子程序,经过单片机处理,发出控制信号,驱动LED灯亮,否则,继续扫描端口,此过程循环往复。程序流程图如下图12所示。
图12 红外接收主程序流程图
4.2.2 红外接收电路子程序流程图
子程序首先读取T0定时器长度,如果是1.125ms就认为是“0”,将值存入缓冲区,计数器加1;如果是2.25ms则认为是“1”,将值存入缓冲区,计数器加1。按键按下后,遥控器会产生32位编码,因此,当计数器值为32时表示按键结束,计数器清0,等待接收下次数据,如图13所示。 STC89C52单片机室内电器设备智能控制系统设计+源码+电路图+仿真图(4):http://www.youerw.com/zidonghua/lunwen_1385.html