中国新歌声3 张学友:单片机红外遥控电脑音源切换器

来源:百度文库 编辑:中财网 时间:2024/04/29 18:45:07

单片机红外遥控电脑音源切换器

  一般的电脑声卡上只有一个LINE输入口一个扬音器输出口和一个MIC输入口(有些有LINE输出口),如果我们要用声卡去连接多个音频设备进行输入录音或输出放音则会比较麻烦,为此我设计制作了一个可用电脑程序控制也可以独立工作的红外遥控电脑音源切换器。笔者曾使用过电脑并行端口中的数据口线(2-9引脚)制作过相似的制作,因并口在PC启动时数据口状态是不确定的,所以会造成开机时音源切换状态不确定。这次的制作使用到单片机AT89C2051与PC串口通讯解决以上的问题,同时AT89C2051可以独立工作外理按键和红外接收头的信号,并作出相应的控制,这样该切换器可以脱离PC进行工作。现在PC软件只做了对切换器和对声卡的控制。

 1.工作原理与硬件电路
  本音源切换器用一片AT89C2051做核心控制同时也负责通过串口进行与电脑的连接,为了能让其在脱离电脑也能进行控制作业,在电路中加入了四个按键和LED指示灯,电路中用了两片CD4066电子模拟开关做音源切换,可做到4路立体声输入1路输出。在一般家庭的听音环境中,CD4066的信噪比和分离度基本上可以满足,如需要更高要求的音质可以把CD4066改换成高质量的音源控制电路。

图1:电路图(点击放大)

  电路中选用11.0592MHz的晶振,这样可以方便产生标准的9600波特率。AT89C2051串口通过一片MAX232转换成可与PC串口相连接的RS232信号。IC5为一片CD4069六反相器,因51单片机上电复位后,IO口全置1,引脚高电平,如直接连接CD4066就会选通所有音源,所以要用反相器全部变为低电平去连接CD4066。K1至K4为四个常开按键,分别控制四个音源,P1.0和P1.1要使用10K的上拉电阻把电平拉高,另两个不用也能正常工作。K5为复位键,复位后切换状态为全部禁止。红外遥控器选用SAA3010芯片的彩电遥控器。

 2.软件设计
  在此笔者提供单片机的C51源码给大家参考。51C源码的设计思路是这样的:上电复位后,程序初始化,P1为高电平,所有音源关闭,同时串口初始化为9600波特率,并打开串口接收中断和中断0(P3.2用于接收红外信号),没有收到串口字符或红外信号时,就一直在运行板上按钮查询,有键按下时则执行相关函数操作。如有串口字符接收到时,则根据字符内容执行相关函数操作,如有红外信号触发中断0时,关串口和中断0并打开定时器中断,定时器中断采集一定数量的数据后,根据收到的数据内容进行相关操作,完成后关定时中断再次打开串口和中断0,等待下一次的红外信号。

图2:RC5编码示意图(点击放大)

  图二是标准的SAA3010红外遥控发射芯片的RC5编码示意图。它包括了引导码,起始码,系统码和指令码等。系统码一般来说是固定的,指令码则是对应每个键而定义的。在这个制作中,我们不需要具体知道很一个键的编码,我们只要采集数据再对数据做简单判断转化为特定的数值,转化后的程序输送到PC串口和转不同的子程序执行功能操作。
数据采集和识别的方法是这样的:当红外接收头接收到有红外信号时,定时器被打开以每隔800us响应一次,采集24次,采集的数据存在3个字节中,我们取后面的两个字节就可以判断所按的键了。单片机的源代码或是HEX文件可以到http://www.cdle.net上去下载。
  PC软件的设计则是对采集到串口字符做相关显示和操作,同时也可根据相应的操作输出串口字符,单片机收到字符后再做切换和显示。软件用delphi7.0编写,程序很长这里也不作介绍了。

 3.使用方法
  在电路做好后,但单片机程序烧写到AT89C2051中,基本不用进行调试就可以使用了。

图3:PC程序界面

  如你要用到电脑对其进行控制就先要用一根串口通讯线把切换器和电脑串口相连接。PC程序界面如图3,程序是绿色软件,只有一个文件,第一次启动后,以后每次开机自行启动,启动后在任务栏有个小图标,双击或右击可弹出主界面,如不想再使用时先关闭程序再删除它的文件就可以了。程序可控制音源外还可以控制声卡音量大小。软件中的音源1-4就代表4个音源,点击它们中的一个时,就选中了相应的音源,音量条就是用来调节电脑的声卡音量用,静音选项则是用来关闭声卡的声音,关闭选项就是关闭所有的音源不在输出端输出,而端口选择就是选择你所连接的PC串口号,一般是COM1或COM2。程序在启动后会自动执行最后的音源状态。程序现在只支持遥控本切换器,需要可到http://cdle.yeah.net下载。本人制作时只使用到遥控器的电源(关闭选项),1-4号(音源1-4),音量加减和静音键。其它的键可以在单片机C程序中再定义使用,配合编写PC程序就可以做到可遥控电脑的多能遥控器了。电路板上K1-K4是分别控制1-4号音源,而K5是复位用,也可以等于关闭所用音源用。当你连接了PC并打开了它的软件时,无论你用遥控或板上按键进入操作,状态都会马上反映到PC软件上进行相应的显示。

图4:连接示意图

  电路可以有两种音频线的连接方式。图4a的连接方式好处是可以通过电脑上的声卡进行音量和静音控制,就是先把音源送入切换器,再通过切换器选择后,输出端连接到声卡的LINE IN输入端,再通过声卡连接到有源音箱,这种接接法中间要经过电脑声卡,适用于采集和编辑音源用,但是不开电脑时就无法使用切换器。图4b的连接方式,好处是不开电脑也可使用遥控切换音源,如果你要加入音量控制电路就要自己动手改改电路了,这种接法就是把电脑声卡也当做一种音源外理,连同所有接上的音源经过切换控制后输出到放大设备,这种接法就不好对多种音源进行采集切换,但很适合对多种音源的监听,就算你没有电脑它也可以很好的工作。图5是用万用板做好的电路实物图。

图5:实物图

提供程序:(本文相关程序下载cdle050010.rar
编译好的单片机HEX文件:CDLE.hex
单片机C源程序:CDLE.c
PC控制程序:CDLE.exe

附表 元件表

元件 数量 元件参数 INPUT1-INPUT4,OUT 5 立体声音频端子 IC1,IC2 2 CD4066 IC3 1 MAX232 IC4 1 AT89C2051 IC5 1 CD4069 J1 1 9针母串口接座 C1,C2 2 30pF电容 C3-C7 5 10uF 16V电解电容 K1-K5 5 小型常开按钮 R1 1 8.2K电阻 R2 1 1K电阻 R3,R4 2 10K电阻 R5 1 220欧电阻 晶振 1 11.0592M 红外接收头 1 VCD或彩电一体化接收头 LED 5 普通发光二极管