具有学习功能的智能遥控器
3 软件设计
由于电路受按键控制,故在主程序中要不断地判断键值,相应的功能在子程序中完成。软件应完成的工作有以下几部分:
3.1接收码的处理
无论遥控器的编码以哪种编码调制方式发出,总可以认为编码由时间延续不等的高、低电平组成,因此,可以不断读取与接收头相连的I/O口的数值,用计数器记录高、低电平的时间。考虑到单片机的时钟周期较长,可以将接收信号的时间进行压缩,即将记录的数值除以32后再储存,可以节省存储空间。
为了准确地存储编码,可以进行3次学习操作,每次学习时,均记录3组数值,存至不同的空间。每次学习后,将3组数值进行比较,每个数值的偏差在03H之内,即认为本次学习成功,将3组数平均,存储。重复学习三次后,将3次学习的结果再进行比较,偏差在03H之内,即可认为学习成功,取3次学习的结果作平均,作为遥控器编码的代用码,存至EEPROM的相应空间,以防数据掉电丢失。
编码存储时先存储键值作起始标志,最后以FFH为结束码。按照12M的晶体振荡器决定的时钟周期和除以32的时间压缩,编码的规律为高、低电平交错出现。
3.2 判断键盘按键
按键被按下时,通过INT1产生中断。在中断服务程序中,判断键值,存储,并确定相应的编码存储地址。
3.3 发射编码
发射编码时,先根据键值寻找相应编码所在地址,依据起始码判断是否正确,确认后依据高、低电平的顺序控制振荡器的起振与停振,起振与停振的时间是将存储码扩展32倍。扩展时间是通过延时进行的,延时时间需经过多次反复的实验。
3.4遥控器编码预存
为了降低学习时的误码率,在程序中填加了遥控器编码预存功能,将收集到的编码存储在程序存储器中,并将编码序号与发射芯片的对应关系告之用户,用户在已知发射芯片型号的基础上可以预存遥控器编码。当预存键按下时,配以数字增减键,将相应的编码存至EEPROM对应的地址中。
3.5显示功能
显示系统能显示学习及编码预存功能的各种状态。如进入学习状态时显示HELP;每一次学习成功时显示1111;学习不成功显示2222;三次学习成功显示5555。编码预存时显示编码芯片的序列号。为了节电,不学习时显示系统不工作。
4 结束语
设计完成后,由于其价格低廉,控制准确,操作简单,而得到了生产厂家的认可,预计可以给厂家带来的经济效益每年近百万元。单片机代替编码芯片的思路将我们引入了单片机应用的一个新领域,我们将进一步缩小其体积,使其功能进一步完善,以求更大的发展。
参考文献
1 郝建国,家用电器遥控系统集成电路大全[M],北京:人民邮电出版社,1996年
2王裕琛、安颖,与空调、电视共用遥控器的遥控灯[P],中华人民共和国知识产权局,ZL03281069.5,2004年10月6日
评论