單片機(jī)紅外遙控電腦音源切換器 |
一般的電腦聲卡上只有一個(gè)LINE輸入口一個(gè)揚(yáng)音器輸出口和一個(gè)MIC輸入口(有些有LINE輸出口),如果我們要用聲卡去連接多個(gè)音頻設(shè)備進(jìn)行輸入錄音或輸出放音則會(huì)比較麻煩,為此我設(shè)計(jì)制作了一個(gè)可用電腦程序控制也可以獨(dú)立工作的紅外遙控電腦音源切換器。筆者曾使用過(guò)電腦并行端口中的數(shù)據(jù)口線(xiàn)(2-9引腳)制作過(guò)相似的制作,因并口在PC啟動(dòng)時(shí)數(shù)據(jù)口狀態(tài)是不確定的,所以會(huì)造成開(kāi)機(jī)時(shí)音源切換狀態(tài)不確定。這次的制作使用到單片機(jī)AT89C2051與PC串口通訊解決以上的問(wèn)題,同時(shí)AT89C2051可以獨(dú)立工作外理按鍵和紅外接收頭的信號(hào),并作出相應(yīng)的控制,這樣該切換器可以脫離PC進(jìn)行工作?,F(xiàn)在PC軟件只做了對(duì)切換器和對(duì)聲卡的控制。
1.工作原理與硬件電路
本音源切換器用一片AT89C2051做核心控制同時(shí)也負(fù)責(zé)通過(guò)串口進(jìn)行與電腦的連接,為了能讓其在脫離電腦也能進(jìn)行控制作業(yè),在電路中加入了四個(gè)按鍵和LED指示燈,電路中用了兩片CD4066電子模擬開(kāi)關(guān)做音源切換,可做到4路立體聲輸入1路輸出。在一般家庭的聽(tīng)音環(huán)境中,CD4066的信噪比和分離度基本上可以滿(mǎn)足,如需要更高要求的音質(zhì)可以把CD4066改換成高質(zhì)量的音源控制電路。
![]() |
圖1:電路圖(點(diǎn)擊放大) |
電路中選用11.0592MHz的晶振,這樣可以方便產(chǎn)生標(biāo)準(zhǔn)的9600波特率。AT89C2051串口通過(guò)一片MAX232轉(zhuǎn)換成可與PC串口相連接的RS232信號(hào)。IC5為一片CD4069六反相器,因51單片機(jī)上電復(fù)位后,IO口全置1,引腳高電平,如直接連接CD4066就會(huì)選通所有音源,所以要用反相器全部變?yōu)榈碗娖饺ミB接CD4066。K1至K4為四個(gè)常開(kāi)按鍵,分別控制四個(gè)音源,P1.0和P1.1要使用10K的上拉電阻把電平拉高,另兩個(gè)不用也能正常工作。K5為復(fù)位鍵,復(fù)位后切換狀態(tài)為全部禁止。紅外遙控器選用SAA3010芯片的彩電遙控器。
2.軟件設(shè)計(jì)
在此筆者提供單片機(jī)的C51源碼給大家參考。51C源碼的設(shè)計(jì)思路是這樣的:上電復(fù)位后,程序初始化,P1為高電平,所有音源關(guān)閉,同時(shí)串口初始化為9600波特率,并打開(kāi)串口接收中斷和中斷0(P3.2用于接收紅外信號(hào)),沒(méi)有收到串口字符或紅外信號(hào)時(shí),就一直在運(yùn)行板上按鈕查詢(xún),有鍵按下時(shí)則執(zhí)行相關(guān)函數(shù)操作。如有串口字符接收到時(shí),則根據(jù)字符內(nèi)容執(zhí)行相關(guān)函數(shù)操作,如有紅外信號(hào)觸發(fā)中斷0時(shí),關(guān)串口和中斷0并打開(kāi)定時(shí)器中斷,定時(shí)器中斷采集一定數(shù)量的數(shù)據(jù)后,根據(jù)收到的數(shù)據(jù)內(nèi)容進(jìn)行相關(guān)操作,完成后關(guān)定時(shí)中斷再次打開(kāi)串口和中斷0,等待下一次的紅外信號(hào)。
![]() |
圖2:RC5編碼示意圖(點(diǎn)擊放大) |
圖二是標(biāo)準(zhǔn)的SAA3010紅外遙控發(fā)射芯片的RC5編碼示意圖。它包括了引導(dǎo)碼,起始碼,系統(tǒng)碼和指令碼等。系統(tǒng)碼一般來(lái)說(shuō)是固定的,指令碼則是對(duì)應(yīng)每個(gè)鍵而定義的。在這個(gè)制作中,我們不需要具體知道很一個(gè)鍵的編碼,我們只要采集數(shù)據(jù)再對(duì)數(shù)據(jù)做簡(jiǎn)單判斷轉(zhuǎn)化為特定的數(shù)值,轉(zhuǎn)化后的程序輸送到PC串口和轉(zhuǎn)不同的子程序執(zhí)行功能操作。
數(shù)據(jù)采集和識(shí)別的方法是這樣的:當(dāng)紅外接收頭接收到有紅外信號(hào)時(shí),定時(shí)器被打開(kāi)以每隔800us響應(yīng)一次,采集24次,采集的數(shù)據(jù)存在3個(gè)字節(jié)中,我們?nèi)『竺娴膬蓚€(gè)字節(jié)就可以判斷所按的鍵了。單片機(jī)的源代碼或是HEX文件可以到http://www.cdle.net上去下載。
PC軟件的設(shè)計(jì)則是對(duì)采集到串口字符做相關(guān)顯示和操作,同時(shí)也可根據(jù)相應(yīng)的操作輸出串口字符,單片機(jī)收到字符后再做切換和顯示。軟件用delphi7.0編寫(xiě),程序很長(zhǎng)這里也不作介紹了。
3.使用方法
在電路做好后,但單片機(jī)程序燒寫(xiě)到AT89C2051中,基本不用進(jìn)行調(diào)試就可以使用了。
![]() |
圖3:PC程序界面 |
如你要用到電腦對(duì)其進(jìn)行控制就先要用一根串口通訊線(xiàn)把切換器和電腦串口相連接。PC程序界面如圖3,程序是綠色軟件,只有一個(gè)文件,第一次啟動(dòng)后,以后每次開(kāi)機(jī)自行啟動(dòng),啟動(dòng)后在任務(wù)欄有個(gè)小圖標(biāo),雙擊或右擊可彈出主界面,如不想再使用時(shí)先關(guān)閉程序再刪除它的文件就可以了。程序可控制音源外還可以控制聲卡音量大小。軟件中的音源1-4就代表4個(gè)音源,點(diǎn)擊它們中的一個(gè)時(shí),就選中了相應(yīng)的音源,音量條就是用來(lái)調(diào)節(jié)電腦的聲卡音量用,靜音選項(xiàng)則是用來(lái)關(guān)閉聲卡的聲音,關(guān)閉選項(xiàng)就是關(guān)閉所有的音源不在輸出端輸出,而端口選擇就是選擇你所連接的PC串口號(hào),一般是COM1或COM2。程序在啟動(dòng)后會(huì)自動(dòng)執(zhí)行最后的音源狀態(tài)。程序現(xiàn)在只支持遙控本切換器,需要可到http://cdle.yeah.net下載。本人制作時(shí)只使用到遙控器的電源(關(guān)閉選項(xiàng)),1-4號(hào)(音源1-4),音量加減和靜音鍵。其它的鍵可以在單片機(jī)C程序中再定義使用,配合編寫(xiě)PC程序就可以做到可遙控電腦的多能遙控器了。電路板上K1-K4是分別控制1-4號(hào)音源,而K5是復(fù)位用,也可以等于關(guān)閉所用音源用。當(dāng)你連接了PC并打開(kāi)了它的軟件時(shí),無(wú)論你用遙控或板上按鍵進(jìn)入操作,狀態(tài)都會(huì)馬上反映到PC軟件上進(jìn)行相應(yīng)的顯示。
![]() |
圖4:連接示意圖 |
電路可以有兩種音頻線(xiàn)的連接方式。圖4a的連接方式好處是可以通過(guò)電腦上的聲卡進(jìn)行音量和靜音控制,就是先把音源送入切換器,再通過(guò)切換器選擇后,輸出端連接到聲卡的LINE IN輸入端,再通過(guò)聲卡連接到有源音箱,這種接接法中間要經(jīng)過(guò)電腦聲卡,適用于采集和編輯音源用,但是不開(kāi)電腦時(shí)就無(wú)法使用切換器。圖4b的連接方式,好處是不開(kāi)電腦也可使用遙控切換音源,如果你要加入音量控制電路就要自己動(dòng)手改改電路了,這種接法就是把電腦聲卡也當(dāng)做一種音源外理,連同所有接上的音源經(jīng)過(guò)切換控制后輸出到放大設(shè)備,這種接法就不好對(duì)多種音源進(jìn)行采集切換,但很適合對(duì)多種音源的監(jiān)聽(tīng),就算你沒(méi)有電腦它也可以很好的工作。圖5是用萬(wàn)用板做好的電路實(shí)物圖。
![]() |
圖5:實(shí)物圖 |
提供程序:(本文相關(guān)程序下載cdle050010.rar
編譯好的單片機(jī)HEX文件:CDLE.hex
單片機(jī)C源程序:CDLE.c
PC控制程序:CDLE.exe
附表 元件表
元件 | 數(shù)量 | 元件參數(shù) |
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 | 小型常開(kāi)按鈕 |
R1 | 1 | 8.2K電阻 |
R2 | 1 | 1K電阻 |
R3,R4 | 2 | 10K電阻 |
R5 | 1 | 220歐電阻 |
晶振 | 1 | 11.0592M |
紅外接收頭 | 1 | VCD或彩電一體化接收頭 |
LED | 5 | 普通發(fā)光二極管 |
聯(lián)系客服