在硬件篇中,我们讲述了电路的原理,现在再来介绍一下单片机的解码程序和计算机端软件的使用。
一、单片机解码程序原理的分析
在介绍解码的方法之前,首先要说说红外编码的格式。
1. 红外数据传送的调制格式
遥控器的红外数据传送编码格式基本上有两种,一种是RC5格式,一种是RECS80格式。RC5格式是脉冲相位调制格式,RECS80是脉冲宽度调制格式。
对于脉宽调制方式,也就是IR信号的逻辑0和1是根据信号电平的宽度来区分的。每个逻辑0或1是一个脉冲信号,通常逻辑1的高电平宽度比逻辑0的高电平宽度大,而低电平宽度都是一致的(见图1)。

脉宽调制方式最常使用的芯片有TC9012、LC7461等,使用这个芯片的遥控器有CHANGHONG、东宝541DRK(A)、三洋6955、康佳T920C及三洋2169、2189、2176等等。
脉冲相位调制方式,逻辑0和1的脉冲宽度都是一致的,而电平正好相反(见图2)。

相位调制方式最常用的芯片是SAA3010,使用这个芯片的遥控器有乐华542A-2PD、康力5306、康力5438、皇牌9321、创维、百合花47-6、索尼:1882、B21、G21、S29、K29等等。
2. 红外编码的数据格式
红外遥控器发送的编码一般是由引导码、系统码、用户码、功能码等组成,它们各占其中的几位。其中系统码和用户码一般都是固定的,而功能码对应的每个按键却是不同的。我们现在并不需要知道具体的编码,只要能正确解码出数据即可,这样就能区分出遥控器上的每个按键。需要注意的是引导码,它表示红外数据的开始。
3. 12C508红外解码程序的分析
知道了上面的红外编码格式,就需要分别编写子程序来处理这两种红外编码。其中对于不同的红外编码芯片,信号的调制格式可能都不一样。为了能兼容众多的遥控器,需要在接收红外信号时先进行信号的格式识别。识别出不同的信号后就可以转不同的子程序来分别处理了。程序的结构框图见图3。

初始化串口部分,为了和UIR的标准配套(这样可以直接使用很多好用的红外遥控驱动程序),需要向串口发送UIR的识别标记:4F 5B。
对于识别信号的格式,当等待到引导码后,可利用508的计数器功能来计算红外数据的第一个数据码的宽度进行区分,然后接收红外数据。这里是接收48位,一般的遥控器发送的编码都没有这么长,这里只是为不同的遥控器识别的兼容性考虑。接收完数据就可以直接把数据通过232发送给计算机程序了。
二、配套软件GIRDER的介绍和使用说明
硬件必须和计算机端的软件相配合,才能完成各种各样的功能。下面我们来介绍一下软件部分。能够与本电路配合使用的软件很多,如PC Remote Control、Girder、uICE和IRAssistant等,但其中功能最强大、使用最方便并且是全免费的软件只有Girder,由于该软件为英文版,所以我们对其做了汉化处理,使其操作界面完全中文化,让国内的朋友使用起来更方便、直观。
1. 安装方法
在安装软件之前,我们要把做好的接收电路连接在计算机上,连接的方法很简单,把接收电路的9针插头插在计算机的任一串口上,然后把接收电路放在无阻挡的位置即可,通常可以放在显示器上面。
软件可以到笔者的网站上下载(网址见文后),下载后是个ZIP压缩包文件,将其解压缩到任一目录下,这时你可看到一个名为“Girder3024”的文件,双击它即可开始安装,安装过程中会有一些提示,如果你对电脑操作不太熟悉,可以直接回车。
然后把我们提供的设置文件拷贝到Girder目录下,通常是在C:\Program Files\Girder3下。
2. 软件的设置
刚安装好的软件是英文的,看起来不太舒服,所以我们首先要把它变成中文界面。首先在软件主菜单的“File”中选择“Settings...”,出现设置窗口。单击“User Interface”,在“Ianguage”栏选择“chinese”,再单击“Apply”即可变成中文界面(见图4)。
如果你是头一次在自己的计算机上安装这个软件,那么你还需要对软件进行一些设置。设置也没有什么复杂的,跟我一步一步做就行。
首先我们要告诉计算机,接收电路是哪一种设备,它接在计算机的哪个串口上。单击“文件”菜单下的“系统设置”,出现“设置窗口”,单击“硬件插件”,先选中“自动打开输入设备”,然后在“输入设备”中选中“UIR/IRMAN”,再单击右下角的“应用”,接着再次选中“输入设备”中的“UIR/IRMAN”,然后单击左边的“设置”,出现UIR/IRMAN设置窗口,在端口选择中选择你的接收电路连接的那个串口(不是COM1,就是COM2),其他参数不动,然后单击“确定”退回到系统设置窗口,再单击“确定”退回到主界面。这时我们重新启动一下Girder,或者按两次F9键,接收电路的电源指示灯将点亮,说明刚才的设置已经起作用了,如果电源指示灯不亮,通常是串口设置错误,改一下即可(见图5)。
每当我要使用遥控器的时候,总要先打开Girder软件,再点那么几下才能使用,非常麻烦。怎样才能做到想遥控的时候就用呢。单击“文件”菜单下的“系统设置”,出现“设置窗口”,在“常规”下,先选中“自动载入设置文件”,在下面的空格中填入设置文件的路径;也可用浏览来选择,例如C:\Program Files\Girder\ediy.gir。然后要选中“Windows启动时运行Girder”。接下来切换到“用户界面”,选中“缩放到系统栏”和“启动后隐藏”。最后单击“确定”退出。好了,现在我们重新启动一次Windows看看吧,你现在想什么时候遥控就可以立即遥控了(见图6)。
3. 使用方法
硬件也连接好了,软件也设置好了,现在我来按一下遥控器吧,但是计算机好像没有什么反应呀。其实并不是计算机的错,而是你没有事先告诉计算机,你按下这个按键要让计算机干些什么,所以即使它接到这个指令,也不知道该干些什么。对于Girder这个软件而言,通过增加设置文件,可以完成许多功能,这里不再详细说明,我们提供了一些现成的设置文件,基本上涵盖了目前最常用的功能,这些功能主要包括两大类,一类是Windows的基本操作,包括鼠标的功能、键盘的功能、音量调节、窗口缩放、任务切换、关闭计算机等;一类是具体应用程序的功能,包括各种影音播放软件的开启、关闭、播放、停止、快进、快退、屏幕缩放等功能和一些图片查看软件或文章浏览软件的开启、关闭、上下翻页、屏幕缩放等功能,甚至收发电子邮件、上网浏览等。我们现在要做的就是要告诉计算机,遥控器的哪个按键对应了上述的哪个功能,这样计算机就能按我们的要求工作了。下面我们以超级解霸来具体说明。
(1)系统功能:如图7所示。左边的窗口列出了系统的各种功能。我现在打算让遥控器的1号按键来控制“增大音量”,2号按键来控制“减小音量”,那么先选中左边窗口内的“增大音量”,然后单击右边的“学习事件”按钮,你可看到左下角状态栏出现“等待红外信号”的提示,这时按下遥控器的1号按键不松手,直到状态栏的提示变成确定,即完成学习过程,这样遥控器的1号按键就和“增大音量”这个功能对应上了,当你以后按遥控器的1号按键时,计算机就会完成增大音量的功能。用同样的方法,你可完成其他各种功能的定义。

(2)超级解霸的功能:如图8所示。左边窗口列出了超级解霸的各种功能。这里关于程序的开启和关闭要特殊一些,由于在不同的计算机上,超级解霸的安装路径可能不一样,所以你需要告诉Girder,你的超级解霸安装在什么地方,单击左边窗口里的“开启关闭”下的“开启”,然后在右边的“系统”下的“文件”一栏中填入超级解霸的安装路径或者用“浏览”来选择,再单击“应用”即可。学习的时候是选择“开启关闭”进行学习,这一个按键用来完成两个功能,像电视机的电源开关一样,按第一下是开启超级解霸,按第二下是关闭超级解霸,如此循环。超级解霸的其他功能的定义方法与“增大音量”的定义方法完全相同,可参照来完成。

好了,现在我们已经可以用遥控器来控制超级解霸了,与用键盘鼠标来操作相比,真是不一样的感觉。
三、更多的用途
利用这样一套硬件和软件,你可以完成更多的别人想不到的功能。我正好从网上找到一个语音报时的软件,叫做MULTILINGUAL SPEAKING CLOCK,用起来可真不错,哦,是你问我几点了吗?我可正忙呢,还是按一下遥控器,让电脑来告诉你吧,“下午5点38分”,是不是很有趣呢?
(在使用中如有任何疑问,可以和我们联系,网址:http//ediy.yeah.net,EMAIL:ediy2000@sina.com)
(电子DIY工作室)