4 系统软件设计
4.1 初始化程序
初始化程序的任务是清除存储脉宽数据单元、关闭学习及发射指示灯,关闭遥控输出口,设置相应定时器模式,设置中断等。
4.2 遥控码读入程序
遥控码的学习处理程序主要是:将原控制器发送的脉冲依次存人存储单元。其偶数地址单元存储高电平脉宽数据,奇数地址单元存储低电平脉宽数据。数据均存入外存储器24LC16中。
读遥控码读人程序,通过大量、不同类型的遥控码波形实验测试分析,遥控码的帧间歇位宽均大于10 ms,起始位码宽为100μs~20 ms,编码位为100μs~3.5 ms。为确保大部分遥控器学习成功,采用方法:
(1)读起始位法 由于起始位的码宽范围较大,因此技术单元采用单独的2字节,计数周期约15μs,按65 535×15μs计算,最大存储起始位脉宽为983 ms。当输入为高电平时,停止起始位计数,进入高电平计数。
(2)读遥控码法 采用1字节计数单元计数码宽(高电平或低电平),当电平跳变时计数结束,将数据存储到规定地址。在高电平码汁数时,当计数器值大于255(码宽大于3.825ms),则为结束帧间隔位,在相应存储单元写入数据0x00作为结束标志。其程序流程如图4所示。
4.3 遥控码发射程序
遥控码发射程序是将原存于存储单元的脉冲数据通过38 kHz方波调制,将存储的原始控制码和载波相与,即可发送遥控脉冲码。其程序流程如图5所示。
4.4 主程序
系统主程序在完成上电初始化后,端口按键查询。当确认有按键按下时,从外部存储器中调用相应的遥控编码将其发出。主程序流程如图6所示。
5 结语
实验证明,该学习型红外系统完全满足实验需要。在学习遥控信号时,综合分析了大量红外遥控码,具有一定的通用性。遥控码发射时不是采用硬件设计而是以软件方式产生载波,这样节约了硬件设备,简化了电路,有效实现红外遥控信号的接收和发射。此学习型红外遥控器已成功应用于多媒体教室、智能家居、家庭集中控制器等遥控设备,获得了满意效果。当然,由于目前遥控器信号尚未完全统一标准,利用红外学习技术并不能保证学习到所有电器设备的遥控器信号,这也是学习型红外今后的需要改进的方向。