4.1 液晶(LCD)驱动程序
我们采用89S51单片机来控制液晶屏,通过不断循环读取FPGA的状态编码来控制液晶显示器实时地刷新其显示内容,其中包括遥控系统当前所处的状态(是处于学习状态还是遥控状态)以及当前处理的对象类别和编号,防止用户由于不清楚当前遥控的对象而产生误操作,同时在每一个状态液晶屏都要提示用户下一步该如何操作,为用户提供一个十分人性化的使用界面,软件使用Keil C编写。其程序流程如图6所示。
图6.LCD显示软件流程
4.2 Girder程序
Girder是一款完全免费的软件,从本质上说它可接收来自任何输入设备的指令,识别后做事先定义好的动作,如启动某个程序或鼠标双击等。首先要设置好硬件,从网上下载串口驱动文件IgorPlug.dll拷贝到Girder目录下的子目录Plugins中。Girder软件的界面如图7。
进入“filesettings”,点击选项卡上的“Plugins”,找到滚动窗口中的“Igor SFH-56 devICe”,在它前面的小框中打上勾,再点击左边的“Setting”, 选择你所使用的串口,点击OK就可以通过串口来控制电脑了。
图7.Girder的主界面
对于像关机,关闭显示器等动作,Girder已经有设置好的现成的命令可用,对于一些较复杂的播放软件的控制可以通过简单的设置来完成。
5 关键技术--对编码信号的学习方法
红外遥控信号的编码方式多种多样,例如图8所示的是一种电视卡自带的遥控器的编码波形,它采用的是SPACe编码,前面9ms的脉冲加4ms低电平是引导码,中间是8位地址码00H、8位地址反码FFH、8位数据码E8H、8位数据反码17H,从引导码开始计时发送108ms后若按键仍没有松开则以后每隔108ms发送一个9ms高+2ms底+0.5ms高的重复简码,直到按键松开为止。
图8. 一种电视卡的遥控器编码波形
如果每一种遥控器都通过解码后存储“0”“1”的数字信号,那么解码的工作将是非常繁重而且不经济的,一个简单的方法是记录下波形中每个高低电平的宽度,使用时再按照原始形式将波形发射出去。
6 结语
智能家居各类产品的智能化加速必将推动家居产业发展,让我们共同期待,相信智能时代还会创造更多的智能奇迹,智能家居生活终会飞入寻常百姓家,普通百姓也能享受高科技时代下的智慧生活。