陈洋德:基于51单片机的自学习型遥控器设计与实现
调用按键扫描程序,根据按下的键盘值从EEPROM中取出所存入的数据,并且将其传送到单片机的RAM中,然后根据RAM中的数据发出高低脉冲,即“0”,“1”的编码方式,还原出解码前的脉冲信号,并利用定时器T0在P2.5口产生38KHZ的方波,加载到编码输出口上,以便于发射。
4.4.1 读取EEPROM数据到单片机RAM中
编码首先要将学习时存储的数据读取到单片机片内RAM中,其程序流程图如图17所示:
调用键盘扫描程序 根据键值从EEPROM取出地址及其里面的数据 将其中的数据传送到单片机的40——45H单元 调用发射子程序
图17 读取EEPROM程序流程图
由此,写出读EEPROM的程序如下: //读串行E2PROM子程序I2CREAD: I2CREAD: MOV R1,RAMADDRESS SETB SCL SETB SDA
CLR SDA ;发开始信号 MOV A,#MACHINEAD ;送器件地址 CALL BITS ;调发送单字节子程序 MOV A,I2CADDRESS ;送片内字节地址
- 16 -
铜陵学院毕业设计
CALL BITS SETB SCL SETB SDA
CLR SDA ;再发开始信号 MOV A, #MACHINEAD
SETB ACC.0 ;发读命令 CALL BITS CALL BITR MOV @R1,A CLR SDA CALL DELAYI2C SETB SCL CALL DELAYI2C
SETB SDA RET //接受单字节子程序: BITR: MOV R0,#08H LOOP2: SETB SCL CALL DELAYI2C MOV C,SDA RLC A CLR SCL CALL DELAYI2C DJNZ R0,LOOP2 SETOK: CALL DELAYI2C SETB SCL CALL DELAYI2C CLR SCL CALL DELAYI2C
SETB SDA RET
4.4.2 红外编码发射程序
;送停止信号 ;应答毕,SDA置1
- 17 -
陈洋德:基于51单片机的自学习型遥控器设计与实现
当EEPROM的数据传入到单片机内的RAM中后,根据RAM中的内容,还原出红外信号脉冲,其程序流程图如图18所示:
进入发射状态 将44和45H中的数据依次传送到C中 调用键盘扫描程序,根据键值从EEPROM相应单元取出数据 C=1? 先后发送9.12ms的低电平和4.5ms的高电平 Y 调用“1”码发射波形 调用“0”码发射波形 N 将40——43H中字节的前26位依次传送到C N C=1? Y 调用“1”码发射波形 调用“0”码发射波形 发射完毕,回到主程序 26位传送完? Y N
图18 红外编码发射程序流程图
4.4.3 38KHZ方波程序
在设计中,利用定时器0产生38KHZ的方波,以便提高发射效率,其程序如下: 38KHZ:
ORG 0000H LJMP START ORG 000BH
- 18 -
铜陵学院毕业设计
LJMP T0INT ORG 0040H
START:MOV SP,#60H MOV TMOD,#00H MOV TH0,#0F7H MOV TL0,#19H SETB TR0 SETB EA SETB ET0 SJMP $ TOINT:
MOV TH0,#0F7H MOV TL0,#19H CPL P2.5 RETI
4.5 学习与发射的切换程序
为方便遥控器的使用,特别加入了学习与发射的切换电路,以便能更好的运用,其程序流程图如图19所示: 对应程序如下: LOOP1: JB P2.7,SEND LCALL D088MS JB P2.7,SEND LJMP STUDY SEND:JB P2.6,LOOP1 LCALL D088MS JB P2.6,LOOP1 LJMP MAINSEND
- 19 -
陈洋德:基于51单片机的自学习型遥控器设计与实现
程序初始化 P2.7按下? Y 进入学习子程序 N P2.6按下? Y N 学习完毕? 进入发射子程序,发射完毕。
图19 学习与发射的切换程序流程图
结论
这种自学习型红外遥控器能对NEC码的信号进行学习, 然后对这些数据识别以及存储, 并能对红外信号进行解码和读码。能很好地控制智能家居,让人们的生活变得更舒适和方便。其硬件电路很简单,软件功能也挺完善,性价比也高。缺点是红外编码NEC是特定的,并不能对所有的遥控器进行控制,给人们的生活带来诸多不便。
致 谢
经过两个多月来的艰苦努力,我的毕业论文终于取得了阶段性的进展,虽然我们未能最后将此系统做为产品,但我们自觉已在这两个多月之内尽了自己的最大的努力,去钻研这个系统,我接触了真正设计一个电子产品的全部过程,学到了很多实实在在的学问。
经历不知从何入手的无助,不知程序为什么出错的苦恼,初现光芒的窃喜还有最后攻破难关的欢呼。现在回头想想,真的是很有意义。在周妍老师的指导下一步步的完成了这个设计,在这里非常感谢周研老师的教导,如果没有她的帮助我现在估计还不知道从何入手这个设计,关于其中的很多内容都是在周老师的资料帮助下才能够完成。
- 20 -