紅外遙控器的制作_第1頁(yè)
紅外遙控器的制作_第2頁(yè)
紅外遙控器的制作_第3頁(yè)
紅外遙控器的制作_第4頁(yè)
紅外遙控器的制作_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、課程設(shè)計(jì)報(bào)告設(shè)計(jì)題目: 題2-遙控器的制作 學(xué) 院: 理學(xué)院 專 業(yè): 電子信息科學(xué)與技術(shù) 班 級(jí): 學(xué) 號(hào): 姓 名: 電子郵件: 時(shí) 間: 成 績(jī): 指導(dǎo)教師: 華 南 農(nóng) 業(yè) 大 學(xué)理 學(xué) 院 應(yīng) 用 物 理 系課 程 設(shè) 計(jì)(報(bào)告)任 務(wù) 書學(xué)生姓名 指導(dǎo)教師 職稱 學(xué)生學(xué)號(hào) 專業(yè) 題目 遙控器的制作 任務(wù)與要求1 學(xué)習(xí)、了解遙控器的信息編碼方式。2 制作紅外發(fā)射器;制作一塊電路板,安裝紅外接收器。3 接收到紅外信號(hào)后經(jīng)過(guò)單片機(jī)的處理,控制LED的亮暗。制作包含至少5個(gè)控制按鈕的遙控器4 掌握單片機(jī)的中斷系統(tǒng)及延時(shí)程序的編寫方法及程序調(diào)試的方法。5 掌握硬件設(shè)計(jì)及焊接工藝。6 掌握仿真

2、機(jī)的使用及在線調(diào)試方法。開始日期 xxxx年xx月xx日 完成日期 xxxx年xx 月xx日 遙控器的制作的設(shè)計(jì)設(shè)計(jì)方案0 概述與應(yīng)用背景遙控器是一種用來(lái)遠(yuǎn)程控機(jī)械的無(wú)線發(fā)射裝置,通過(guò)現(xiàn)代的數(shù)字編碼技術(shù),將按鍵信息進(jìn)行編碼,并通過(guò)紅外線二極管發(fā)射光波,光波經(jīng)接收機(jī)的紅外線接收器將收到的紅外信號(hào)轉(zhuǎn)變成電信號(hào),進(jìn)處理器進(jìn)行解碼,解調(diào)出相應(yīng)的指令來(lái)達(dá)到控制機(jī)頂盒等設(shè)備完成所需的操作要求。上世紀(jì)八十年代初,日本率先在電視產(chǎn)品中使用了紅外遙控技術(shù),使用集成發(fā)射芯片來(lái)實(shí)現(xiàn)遙控碼的發(fā)射,如東芝TC9012、飛利浦SAA3010 等,它的主要特點(diǎn)是遙控器內(nèi)預(yù)置固定編碼,一只遙控器只能控制單一型號(hào)的電器。隨著電

3、子技術(shù)的發(fā)展,家用電器越來(lái)越普遍,人們希望以一只遙控器遙控所有家用電器,多用遙控器產(chǎn)生了。它的主要特點(diǎn)是遙控器內(nèi)預(yù)置多套編碼,可供用戶選擇。如今,隨著嵌入式的廣泛應(yīng)用,部分廠商推出了具備紅外學(xué)習(xí)的遙控器,它的主要特點(diǎn)是遙控器內(nèi)置一個(gè)動(dòng)態(tài)編碼庫(kù),具備紅外學(xué)習(xí)功能,可由用戶自主錄入編碼。通過(guò)對(duì)具備紅外學(xué)習(xí)功能的遙控器進(jìn)行市場(chǎng)調(diào)查發(fā)現(xiàn)國(guó)內(nèi)紅外遙控編碼學(xué)習(xí)技術(shù)雖比較成熟,但產(chǎn)品化程度較低,市場(chǎng)推廣不夠,主要原因在于設(shè)計(jì)者對(duì)用戶需求的調(diào)查不夠全面,以致產(chǎn)品不夠?qū)嵱茫詢r(jià)比較低。從用戶操作方便實(shí)用的角度出發(fā),本文自主設(shè)計(jì)具備紅外學(xué)習(xí)、彩屏虛擬遙控界面的萬(wàn)能學(xué)習(xí)型紅外遙控器,借此促進(jìn)紅外遙控學(xué)習(xí)技術(shù)在國(guó)內(nèi)市

4、場(chǎng)的產(chǎn)品化推廣。1 工作進(jìn)度、組內(nèi)分工與合作情況1.1 工作進(jìn)度:10.01-10.10時(shí)間段,完成對(duì)整體方案的設(shè)計(jì),具體確定方案設(shè)計(jì)的硬件電路與所需要的電子元器件;10.11-10.13時(shí)間段,購(gòu)買元器件并完成接收電路模塊的焊接;10.14-10.20 時(shí)間段,進(jìn)行接收部分的電路功能調(diào)試,設(shè)計(jì)接收部分要實(shí)現(xiàn)的功能,完成遙控發(fā)射電路模塊的焊接,學(xué)習(xí)紅外遙控的編碼與解碼的原理(NEC協(xié)議);10.21-10.25 時(shí)間段,進(jìn)行發(fā)射端的調(diào)試,并設(shè)計(jì)編碼與解碼的程序,實(shí)現(xiàn)整體功能的實(shí)現(xiàn);10.26-10.30 時(shí)間段,撰寫課程設(shè)計(jì)報(bào)告,拍使用解說(shuō)視頻,做PPT。1.2 組內(nèi)分工與合作:1)合作部分A

5、:整體方案的設(shè)計(jì)B:撰寫課程設(shè)計(jì)報(bào)告,拍使用解說(shuō)視頻,做PPT2)分工部分表2.1 組內(nèi)分工小組成員組內(nèi)分工xxxxxxxxxxxxxxxxxxxxxxxxxxxx2 元件清單與主要元件介紹2.1 元件清單1)發(fā)射電路模塊STC89C52單片機(jī)1片、紅外發(fā)光二極管1個(gè)、12M晶振1個(gè)、30pF無(wú)極性電容2個(gè)、22pF有極性電容1個(gè)、200電阻1個(gè)、1k電阻2個(gè)、藍(lán)光LED 1個(gè)、按鍵17個(gè)。2)接收電路模塊STC89C52單片機(jī)1片、紅外接收一體管HS0038一個(gè)、8×8紅色LED點(diǎn)陣1個(gè)、12M晶振1個(gè)、30pF無(wú)極性電容2個(gè)、22pF有極性電容1個(gè)、200電阻1個(gè)、1k電阻1個(gè)、

6、8乘10K排阻1個(gè)、復(fù)位按鍵1個(gè)。2.2 主要元件介紹2.2.1 STC89C52單片機(jī)STC89C52單片機(jī)芯片集成了以下幾個(gè)基本組成部分: 1)一個(gè)8位的CPU;2)128B或256B單元內(nèi)數(shù)據(jù)存儲(chǔ)器(RAM);3)4KB或8KB片內(nèi)程序存儲(chǔ)器(ROM或EPROM);4)4個(gè)8位并行I/O接口P0P3;5)兩個(gè)定時(shí)/計(jì)數(shù)器;6)5個(gè)中斷源的中斷管理控制系統(tǒng);7)一個(gè)全雙工串行I/O口UART(通用異步接收、發(fā)送器) ;8)一個(gè)片內(nèi)振蕩器和時(shí)鐘產(chǎn)生電路。如圖2.1是STC89C52的引腳排列:圖2.1 單片機(jī)STC89C52管腳圖其中,CPU 是單片機(jī)的核心部件,它由運(yùn)算器和控制器等部件組成

7、。存儲(chǔ)器(Memory)是計(jì)算機(jī)系統(tǒng)中的記憶設(shè)備,用來(lái)存放程序和數(shù)據(jù)。它根據(jù)控制器指定的位置存入和取出信息。P0P3口是與外部交換信息的8位并行接口,均是準(zhǔn)雙向口。復(fù)位操作則使單片機(jī)的片內(nèi)電路初始化,使單片機(jī)從一種確定的狀態(tài)開始運(yùn)行。此次設(shè)計(jì)單片機(jī)外接12M晶振作為時(shí)鐘頻率,并采用按鍵復(fù)位設(shè)計(jì)。2.2.2 紅外發(fā)光二極管發(fā)射部分的主要元件為紅外發(fā)光二極管。紅外線發(fā)光二極管由紅外輻射效率高的材料(常用砷化鎵GaAs)制成PN結(jié),外加正向偏壓向PN結(jié)注入電流激發(fā)紅外光。光譜功率分布為中心波長(zhǎng)830950nm,半峰帶寬約40nm左右。大量使用的紅外發(fā)光二極管發(fā)出的紅外線波長(zhǎng)為940nm左右,外形與普

8、通發(fā)光二極管相同,只是顏色不同。紅外發(fā)光二極管一般有黑色、深藍(lán)、透明三種顏色。本次方案設(shè)計(jì)使用透明色,如圖2.2所示。圖2.2 透明色的紅外發(fā)射二極管一些彩電紅外遙控器,其紅外發(fā)光管的工作脈沖占空比約為1/3-1/4;一些電器產(chǎn)品紅外遙控器,其占空比是1/10。減小脈沖占空比還可使小功率紅外發(fā)光二極管的發(fā)射距離大大增加。常見的紅外發(fā)光二極管,其功率分為小功率(1mW-10mW)、中功率(20mW-50mW)和大功率(50mW-100mW以上)三大類。要使紅外發(fā)光二極管產(chǎn)生調(diào)制光,只需在驅(qū)動(dòng)管上加上一定頻率的脈沖電壓。本次方案設(shè)計(jì)使用NEC協(xié)議中占空比為 1/3的38KHz的脈沖電壓直接驅(qū)動(dòng)紅外

9、發(fā)射二極管。2.2.3 紅外接收一體管HS0038如圖2.3為紅外接收一體管HS0038的實(shí)物圖,HS0038能接收紅外信號(hào),同時(shí)對(duì)信號(hào)進(jìn)行放大、檢波、整形得到TTL電平的編碼信號(hào),其接收紅外信號(hào)頻率為38kHz,周期約26s。 紅外接收一體管HS0038有三個(gè)引腳,其管腳圖如圖2.4所示。其中管腳1為TTL信號(hào)輸出端,管腳2接地,管腳3接VCC。如圖2.5所示為紅外接收一體管HS0038將38KHz紅外信號(hào)解調(diào)、轉(zhuǎn)換為TTL電平的波形。 圖2.3 HS0038的實(shí)物圖 圖2.4 HS0038管腳圖圖2.5 紅外接收一體管HS0038輸出波形圖NEC 協(xié)議說(shuō)明:NEC 協(xié)議特點(diǎn):8位地址和8位

10、命令為提高可靠性,地址和命令都傳輸2次,脈沖間隔調(diào)制38kHz 載波頻率。下圖2.6為某一NEC 協(xié)議的脈沖編碼。圖2.6 某一NEC 協(xié)議的脈沖編碼 上圖是NEC 協(xié)議的一個(gè)典型脈沖發(fā)送圖。此協(xié)議LSB 最低位先傳送,所以接收的時(shí)候最先接收的是低位。 此圖傳送的地址是$59、命令是$16。 1)一個(gè)信息發(fā)送是由9mS 的AGC 自動(dòng)增益控制脈沖開頭,在早期的IR 紅外接收器中用來(lái)設(shè)置增益。接著是4.5mS 空閑,然后是地址、命令。 2)地址和命令都傳送2次,第二次的地址和命令是反碼,可以用來(lái)校驗(yàn)接收到的信息。總的傳輸時(shí)間是固定的,因?yàn)槊恳晃欢加蟹创a傳送。 3)一個(gè)命令只發(fā)送一次。如果遙控器上

11、的按鍵一直按著。則會(huì)每110mS 發(fā)送一次代碼,此代碼是重復(fù)碼(在下面解釋),直到遙控器按鍵釋放。4)重復(fù)碼比較簡(jiǎn)單:一個(gè)9mS 的AGC 脈沖、2.25mS 間隔、560uS脈沖。由以上可知:在接收端高電平持續(xù)最長(zhǎng)的時(shí)間為4.5ms,表示為引導(dǎo)碼。高電平時(shí)間持續(xù)為2.25ms 為重復(fù)碼。由此我們?cè)谝粋€(gè)5ms 的時(shí)間內(nèi)的脈沖的高電平持續(xù)時(shí)間,從而判斷是引導(dǎo)碼、重復(fù)碼、還是“1”和“0”。表2為各種碼類型。表2 各種碼類型高/低電平時(shí)間4.5/9 ms2.25/9 ms1.68/0.56 ms0.56/0.56 ms碼類型引導(dǎo)碼重復(fù)碼10在5ms 只要是上面的任意碼,都會(huì)出現(xiàn)高低電平的變化的,如

12、果超過(guò)5ms 都沒(méi)有出現(xiàn)變化,則這個(gè)碼就是無(wú)效碼。四個(gè)方框就構(gòu)成了編程的基礎(chǔ)。在看上面的電平,在接收端都是先接收到低電平,再接收到高電平,所以一旦接收到低電平,就要進(jìn)入中斷,等待高電平的到來(lái)。圖2.7為引導(dǎo)碼、地址碼、和用戶碼的發(fā)送順序。圖2.7 引導(dǎo)碼、地址碼、和用戶碼的發(fā)送順序引導(dǎo)碼及數(shù)據(jù)的定義如下圖2.8所示,當(dāng)一直按住一個(gè)按鈕的時(shí)候,會(huì)隔110ms 左右發(fā)一次引導(dǎo)碼(重復(fù)),并不帶任何數(shù)據(jù)。圖2.8 引導(dǎo)碼、數(shù)據(jù)碼的定義充分理解了NEC協(xié)議的規(guī)律了后,為簡(jiǎn)單起見本次設(shè)計(jì)采用與此協(xié)議相同的引導(dǎo)碼,但省略了地址部分,并且數(shù)據(jù)碼只用原碼的部分(即也省略了數(shù)據(jù)的反碼),這樣簡(jiǎn)略后的NEC協(xié)議便

13、只剩下9ms的引導(dǎo)碼和一個(gè)字節(jié)的數(shù)據(jù)碼。其中數(shù)據(jù)碼的編碼規(guī)則較為簡(jiǎn)單,采用矩陣鍵盤中按鍵的鍵值所對(duì)應(yīng)的二進(jìn)制碼,這樣編碼后的二進(jìn)制碼有利于程序的調(diào)試。在后面的電路仿真中便會(huì)看到,紅外管發(fā)射的編碼波形與鍵值的二進(jìn)制碼一致。2.2.4 8×8紅色LED點(diǎn)陣 如圖2.9為8×8紅色LED點(diǎn)陣的外形圖(左)與對(duì)應(yīng)的正面管腳圖(右)。其中,黑色點(diǎn)為L(zhǎng)ED的正極。 圖2.9 8×8紅色LED點(diǎn)陣點(diǎn)陣LED的等效電路如圖2.10,只要其對(duì)應(yīng)的X、Y軸順向偏壓,即可使LED發(fā)亮。例如如果想使左上角LED點(diǎn)亮,則Y0=1,X0=1即可。應(yīng)用時(shí)限流電阻可以放在X軸或Y軸。圖2.10

14、點(diǎn)陣LED的等效電路LED點(diǎn)陣一般采用掃描方式顯示,實(shí)際分為三種方式: 1)點(diǎn)掃描 2)行列掃描 3)列行掃描 16×64=1024Hz,周期小于1ms即可。若使用第二種和第三種方式,則頻率必須大于16×8=128Hz,周期小雨7.8ms即可符合視覺(jué)停留要求。此外一次驅(qū)動(dòng)一列或一行(8顆LED)時(shí)需外加驅(qū)動(dòng)電路提高電流,否則LED亮度會(huì)不足。這樣,只需控制使對(duì)應(yīng)字符對(duì)應(yīng)的LED點(diǎn)點(diǎn)亮,就可以實(shí)現(xiàn)字符的顯示了。3 電路圖以及仿真結(jié)果3.1 紅外發(fā)射部分使用Proteus設(shè)計(jì)紅外發(fā)射端(遙控器)的硬件電路圖如圖3.1所示,并通過(guò)該軟件對(duì)發(fā)射電路進(jìn)行仿真。軟件中沒(méi)有紅外發(fā)射管的元

15、件,圖中以特性較接近的紅色LED(D3)來(lái)代替。仿真時(shí)通過(guò)按下某一個(gè)按鈕,觀察LED的電壓波形是否為單片機(jī)發(fā)射的編碼信號(hào)。圖3.1 紅外發(fā)射端(遙控器)的硬件電路圖抽取第三列的按鍵進(jìn)行仿真,第四列的按鍵對(duì)應(yīng)的鍵值從上往下為3、7、11、15。發(fā)射出來(lái)的波形應(yīng)分別為四個(gè)鍵值的二進(jìn)制波形表示,下面是仿真結(jié)果。第3個(gè)按鍵的發(fā)射波形如圖3.2所示,從左邊看起,首先發(fā)射的是4.5ms的高電平和4.5ms的低電平,然后接著從鍵值對(duì)應(yīng)的8位二進(jìn)制碼的的低位開始發(fā)射。圖3.2 第3個(gè)按鍵的發(fā)射波形,對(duì)應(yīng)的編碼為0000 0011第7個(gè)按鍵的發(fā)射波形如圖3.3所示。圖3.3 第7個(gè)按鍵的發(fā)射波形,對(duì)應(yīng)的編碼為0

16、000 0111第11個(gè)按鍵的發(fā)射波形如圖3.4所示。圖3.4 第11個(gè)按鍵的發(fā)射波形,對(duì)應(yīng)的編碼為0000 1011第15個(gè)按鍵的發(fā)射波形如圖3.5所示。圖3.5 第15個(gè)按鍵的發(fā)射波形,對(duì)應(yīng)的編碼為0000 1111從波形對(duì)應(yīng)的編碼觀察,發(fā)射電路發(fā)射的編碼波形完全與按鍵的鍵值一一對(duì)應(yīng),編碼仿真的結(jié)果正確。把波形放大后的波形如圖3.6所示,此波形應(yīng)為承載編碼的38KHz載波。t2t1圖3.6 波形放大的載波波形,每格對(duì)應(yīng)5us圖中載波每周期大概為26us,t1對(duì)應(yīng)為低電平,約為17us;t2對(duì)應(yīng)為高電平,約為9us。此脈沖電壓與紅外一體化接收頭所需要的占空比為 1/3的38KHz紅外信號(hào)幾一

17、致。3.2 紅外接收部分紅外接收部分的電路如圖3.7所示。圖3.7 紅外接收部分的電路圖發(fā)射的紅外信號(hào)被紅外一體化接收頭接收、轉(zhuǎn)化為起始碼和用戶碼(鍵值二進(jìn)制碼)所對(duì)應(yīng)的包絡(luò)波形,然后傳遞到單片機(jī)的外部中斷0引腳,觸發(fā)單片機(jī)外部中斷。通過(guò)使用外部中斷0的下降沿觸發(fā)的時(shí)間間隔對(duì)包含用戶碼的包絡(luò)波形進(jìn)行解碼,然后通過(guò)解碼得到的編碼判斷鍵值并控制相應(yīng)的功能。同樣抽取第三列的按鍵進(jìn)行仿真,第三列的按鍵對(duì)應(yīng)的鍵值從上往下為3、7、11、15,下面是仿真結(jié)果。第3個(gè)按鍵的仿真結(jié)果如圖3.8,點(diǎn)陣顯示的是顯示效果數(shù)字“2”,下面黑色區(qū)域顯示分別為紅外二極管的發(fā)送波形(上)和接收管的解調(diào)波形(下)。圖3.8

18、第3個(gè)按鍵的仿真結(jié)果需要注意的是,方案中設(shè)計(jì)接收端的按鍵功能為第一個(gè)按鍵顯示“0”,第二個(gè)按鍵顯示“1”,一次類推第七個(gè)按鍵顯示“6”,而后面第11個(gè)按鍵實(shí)現(xiàn)加1功能,第15個(gè)按鍵實(shí)現(xiàn)顯示所有圖案的功能。第7個(gè)按鍵的仿真結(jié)果如圖3.9所示,點(diǎn)陣顯示數(shù)字“6”,下面分別為對(duì)應(yīng)的發(fā)送、解調(diào)波形。圖3.9 第7個(gè)按鍵的仿真結(jié)果第11個(gè)按鍵為“+”鍵,可以實(shí)現(xiàn)數(shù)字加減的功能,按下該鍵之前(左)和之后(右)的仿真結(jié)果如圖3.10所示。 圖3.10 第11個(gè)按鍵的仿真結(jié)果第15個(gè)按鍵為圖案顯示鍵,會(huì)逐個(gè)顯示圖案,其仿真結(jié)果如圖3.11所示,其中,點(diǎn)陣顯示的是某一時(shí)刻顯示的圖案。圖3.11 第15個(gè)按鍵的仿

19、真結(jié)果從前面的仿真結(jié)果可以看出,發(fā)射的波形與接收到的波形一致,并能實(shí)現(xiàn)方案預(yù)設(shè)的功能。4 程序流程圖4.1 紅外發(fā)射部分的流程圖如圖4.1所示為發(fā)射部分的程序流程圖。YNP2=0xF0判斷是否有鍵按下P2!=0xF0?鍵盤掃描得key值LED= 1點(diǎn)亮藍(lán)光燈,表示開始發(fā)射代碼先發(fā)送9ms的引導(dǎo)碼再發(fā)送key的二進(jìn)制碼延遲后,滅藍(lán)光LED表示發(fā)射代碼結(jié)束開始初始化圖4.1 發(fā)射部分的程序流程圖4.2 紅外接收部分的流程圖程序初始化開始調(diào)用其他顯示程序全顯示標(biāo)志 =1?開關(guān)顯示標(biāo)志 =1?流水燈標(biāo)志 =1?調(diào)用開關(guān)顯示程序調(diào)用流水燈顯示程序調(diào)用全顯示程序NNNYYY如圖4.2所示為接收部分的程序流

20、程圖。圖4.2 接收部分的程序流程圖5 作品演示方案設(shè)計(jì)的電路有兩部分,一為反射部分(每張圖中的下部分電路),二為接收部分(每張圖中的上部分電路),電路板的正面、反面如圖5.1所示。 圖5.1 電路板的正面、反面下面是工作時(shí)候的照片。圖5.2為開機(jī)畫面,圖5.3為第1個(gè)按鍵(從左上到右下的順序)顯示數(shù)字“0”,圖5.4為第6個(gè)按鍵顯示數(shù)字“5”,圖5.5為第13個(gè)按鍵數(shù)字與漢字裝換功能,顯示漢字“五”,圖5.6為第14個(gè)按鍵顯示流水燈動(dòng)畫的某一瞬間,圖5.7為第15個(gè)按鍵全部圖案顯示的動(dòng)畫的某一個(gè)。 圖5.2為開機(jī)畫面 圖5.3 第1個(gè)按鍵顯示數(shù)字“0” 圖5.4 第6個(gè)按鍵顯示數(shù)字“5” 圖

21、5.5 第13個(gè)按鍵數(shù)字與漢字裝換功能 圖5.6 第14個(gè)按鍵顯示流水燈動(dòng)畫 圖 5.7第14個(gè)按鍵顯示流水燈動(dòng)畫的某一瞬間由圖 5.7所示,矩陣中的按鍵的功能如方便貼中所示。首先從第一行左邊開始第1個(gè)鍵顯示數(shù)字“0”,依次為“1”、“2”“9”,接著的為第11個(gè)按鍵實(shí)現(xiàn)加1的功能,與電視遙控器的節(jié)目加按鍵類似;第12個(gè)按鍵為減1的功能;第13個(gè)為數(shù)字漢字轉(zhuǎn)換;第14個(gè)為顯示流水燈動(dòng)畫;第15個(gè)為顯示所有圖案的動(dòng)畫;最后一個(gè)為開關(guān)鍵,按下后LED點(diǎn)陣熄滅,再次按下后點(diǎn)亮開關(guān)畫面。6 設(shè)計(jì)方案中的不足及改進(jìn)1)編碼方式簡(jiǎn)單,容易出現(xiàn)差錯(cuò)如前所示,為編程和程序的調(diào)試方便,本次方案中采用自定義的紅外

22、發(fā)射編碼格式,即是9ms的引導(dǎo)碼加上按鍵鍵值的二進(jìn)制碼一個(gè)字節(jié),調(diào)試時(shí)可以直接從二進(jìn)制碼中查看鍵值是否正確。但是,只發(fā)送一個(gè)字節(jié)的鍵值二進(jìn)制碼在實(shí)際的操作中可能會(huì)有出現(xiàn)發(fā)送或解碼錯(cuò)誤而卻無(wú)法判斷,到此接收端會(huì)顯示錯(cuò)誤的圖案,這也是NEC協(xié)議中使用兩位地址碼和兩位數(shù)據(jù)碼的原因。再者,NEC協(xié)議使用地址反碼和數(shù)據(jù)反碼可以用來(lái)檢測(cè)接收是否正確,如有差錯(cuò)需另行處理。改進(jìn)方法:因遙控發(fā)射端只有16個(gè)按鍵,則使用4位二進(jìn)制碼剛好能夠完全表示。假設(shè)使用低4位碼來(lái)表示不同的按鍵,則可以用高4位碼表示成低4位碼的反碼,這樣便可避免高4位碼都為”0”而沒(méi)有得到充分利用的情況。同時(shí)接收端也可以用此來(lái)判斷接收到的8位

23、碼是否正確,以提高遙控的安全性。當(dāng)然,也可直接采用NEC協(xié)議的編碼方式。2)紅外發(fā)射二極管的驅(qū)動(dòng)電路較為簡(jiǎn)單一個(gè)遙控器的性能的好壞,除了前述的編碼的安全性外,還會(huì)有對(duì)遙控的距離的要求。紅外線不能穿透墻壁,因此遙控器不能從一房間控制另一個(gè)房間的的電器,但在一個(gè)房間內(nèi),遙控器的遙控距離也需達(dá)到一定的要求。本次方案中使用單片機(jī)直接驅(qū)動(dòng)紅外發(fā)射二極管,可能會(huì)導(dǎo)致遙控距離較短。改進(jìn)方法:使用晶體管放大電路驅(qū)動(dòng)紅外管可產(chǎn)生較大的電流并且工作穩(wěn)定性很高,如圖6.1所示。圖6.1 晶體管放大電路驅(qū)動(dòng)紅外管3)接收端功能較為簡(jiǎn)單如作品演示部分所示,接收端采用單純的LED點(diǎn)陣顯示數(shù)字與圖案,控制功能較為簡(jiǎn)單,但這

24、不是課題方案的關(guān)鍵所在。如有需要且知道電視、空調(diào)等的編碼方式,程序改為其編碼格式后便可直接控制電視或空調(diào)。作品演示中接收端的LED點(diǎn)陣的亮度較低,其原因可能是驅(qū)動(dòng)電壓較低。可采用提高供電電壓或減小限流電阻使其亮度增加。與演示時(shí)采用的單片機(jī)開發(fā)板上的LED點(diǎn)陣相比接收端的LED點(diǎn)陣亮度很低,因此還可以更換亮度較高的LED點(diǎn)陣。7 實(shí)驗(yàn)總結(jié)通常紅外遙控使用專用配對(duì)編碼、解碼芯片,即某種解碼芯片只能識(shí)別某種編碼芯片的編碼,對(duì)其他型號(hào)的編碼芯片的編碼則不能識(shí)別,因此不同的遙控器沒(méi)有互換性,造成使用場(chǎng)合有多個(gè)遙控器,用戶深感不便。本實(shí)驗(yàn)提出了利用單片機(jī)作為主控芯片,結(jié)合紅外遙控用戶碼的設(shè)置,自行設(shè)計(jì)編碼

25、和解碼程序,實(shí)現(xiàn)一個(gè)遙控器控制多臺(tái)設(shè)備的方法。本實(shí)驗(yàn)以單片機(jī)為控制核心,采用軟件編程對(duì)紅外遙控信號(hào)進(jìn)行編碼、解碼設(shè)計(jì)從而實(shí)現(xiàn)了遙控功能。系統(tǒng)硬件電路簡(jiǎn)單,工作穩(wěn)定可靠,易于擴(kuò)展受控設(shè)備,節(jié)約了硬件資源。系統(tǒng)具有較強(qiáng)的靈活性和實(shí)用性,為新型遙控器材的研制做了有益的探索。同時(shí),本實(shí)驗(yàn)也有許多不足之處。因?yàn)橄到y(tǒng)采用的編碼方式過(guò)于簡(jiǎn)單,所以接收端解碼可能會(huì)出現(xiàn)差錯(cuò)。另外,還存在著8×8點(diǎn)陣亮度不夠,信號(hào)有效距離較短等問(wèn)題。總的來(lái)說(shuō),本實(shí)驗(yàn)基本實(shí)現(xiàn)了紅外遙控器的功能。參考文獻(xiàn)1李朝青編著.單片機(jī)原理及接口技術(shù)(第三版).北京:北京航空航天大學(xué)出版社,2006.122李光飛等編著.單片機(jī)課程設(shè)計(jì)

26、實(shí)例指導(dǎo).北京:北京航空航天大學(xué)出版社,20043楊圣、江兵編著.電子技術(shù)實(shí)踐基礎(chǔ)教程. 北京:清華大學(xué)出版社,2006.74童詩(shī)白主編.模擬電子技術(shù)基礎(chǔ)(第2版).北京:高等教育出版社,1998附錄:程序清單1) 發(fā)射部分:#include <reg52.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned charsbit OP=P10; /紅外發(fā)射標(biāo)志sbit led =P11 ; /LED uchar endcount08;uchar flagkey;uchar temp;uc

27、har key,keytemp; /鍵順序碼void delay(uchar x) /延遲函數(shù) uchar j; while(x-)!=0) /CPU執(zhí)行x*125次 for(j=0;j<125;j+); void delay560us(void) /誤差 0us unsigned char a,b; for(b=111;b>0;b-) for(a=1;a>0;a-);void delay4ms500us(void) /誤差 0us unsigned char a,b; for(b=155;b>0;b-) for(a=13;a>0;a-);/*載波延遲*void

28、delay6us(void) /誤差 0us _nop_(); /if Keil,require use intrins.h _nop_(); /if Keil,require use intrins.hvoid delay14us(void) /誤差 0us unsigned char a,b; for(b=1;b>0;b-) for(a=3;a>0;a-);/*鍵盤部分*void keyscan(void)/求鍵值 temp = 0; P2=0xF0; /高四位輸入 列為高電平 行為低電平 delay(1); /延時(shí)temp=P2; /讀P1口 temp=temp&0x

29、F0; /屏蔽低四位 temp=(temp>>4)|0xF0); if(temp=1) / p1.4 被拉低 key=1; /第1個(gè)按鍵鍵值 else if(temp=2) / p1.5 被拉低 key=2; /第2個(gè)按鍵鍵值 else if(temp=4) / p1.6 被拉低 key=3; /第3個(gè)按鍵鍵值 else if(temp=8) / p1.7 被拉低 key=4; /第4個(gè)按鍵鍵值 P2=0x0F; /低四位輸入 行為高電平 列為低電平 delay(1); /延時(shí)temp=P2; /讀P1口 temp=temp&0x0F; temp=(temp|0xF0);i

30、f(temp=1) /第一行 p1.1 被拉低(直接temp=2 是因?yàn)槲覀働1.0空的,是3*4的矩陣鍵盤) key=key+0; else if(temp=2) /第一行 p1.1 被拉低(直接temp=2 是因?yàn)槲覀働1.0空的,是3*4的矩陣鍵盤) key=key+4; else if(temp=4) /第二行 p1.2 被拉低 key=key+8; else if(temp=8) /第三行 p1.3 被拉低 key=key+12;/判斷是否有鍵按下 void keydown(void) P2=0xF0; /將高4位全部置1 低四位全部置0if(P2!=0xF0) /判斷按鍵是否按下

31、如果按鈕按下 會(huì)拉低P1其中的一個(gè)端口 keyscan(); /調(diào)用按鍵掃描程序 flagkey=1; /*/初始化void init() OP = 1;P2=0xFF; /置P1口 led=0;void initimer0()/定時(shí)器初始化 TMOD = 0x11; TH0 = 0x0FD; TL0 = 0x0D0;/定時(shí)器0定時(shí)0.56msTH1 = 0x0EE; TL1 = 0x6C;/定時(shí)器1定時(shí)4.5msEA = 1; ET0 = 1;ET1=1;/*發(fā)送數(shù)據(jù)*/void emit4500ush()TR1=1;while(TF1!=1)OP=0;delay6us();OP=1;del

32、ay14us();TF1=0;TR1=0;TH1 = 0x0EE; TL1 = 0x6C;void emit560ush()TR0=1;while(TF0!=1)OP=0;delay6us();OP=1;delay14us();TF0=0;TR0=0;TH0 = 0x0FD; TL0 = 0x0D0;/*發(fā)射代碼函數(shù)*/void SendIRdata(uchar keytemp) uint j; emit4500ush();/發(fā)送4.5ms的起始碼"1"OP=1; /發(fā)送4.5ms的起始碼"0"delay4ms500us(); for(j=0;j<

33、8;j+) /發(fā)送8位紅外編碼 emit560ush();/先發(fā)送0.56ms載波即高電平/42-0.59msOP= 1;/再發(fā)送低電平部分if(keytemp&0x01)delay560us();delay560us();delay560us();elsedelay560us();keytemp=keytemp>>1; emit560ush();/*主函數(shù)*/main() init();initimer0();P2=0xFF; delay(1); /延時(shí) while(1) keydown(); /調(diào)用按鍵判斷檢測(cè)程序 if(flagkey)led=1;flagkey=0;

34、SendIRdata(key);delay(200);led=0; 2) 接收部分:#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intuchar irtime;uchar startflag;uchar irdata9;uchar bitnum;uchar irreceok;uchar ircode;uchar ex_tabledata;uchar value;uchar tabledata;bit displayflag;bit redispl

35、ayflag;bit lsdflag;bit openflag,closeflag;bit turn;/*/延時(shí)函數(shù),在 12MHz 的晶振頻率下/大約 50us 的延時(shí)/*void delay500us(void) /誤差 0us unsigned char a,b; for(b=99;b>0;b-) for(a=1;a>0;a-);void delay500ms(void) /誤差 0us unsigned char a,b,c; for(c=205;c>0;c-) for(b=116;b>0;b-) for(a=9;a>0;a-);unsigned char

36、 code tablex=0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,; /列選通控制 unsigned char code numdata278=0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00, /00x00,0x00,0x00,0x00,0x21,0x7f,0x01,0x00, /10x00,0x00,0x27,0x45,0x45,0x45,0x39,0x00, /20x00,0x00,0x22,0x49,0x49,0x49,0x36,0x00, /30x00,0x00,0x0c,0x14,0x24,0x7f,0x04,0

37、x00, /40x00,0x00,0x72,0x51,0x51,0x51,0x4e,0x00, /50x00,0x00,0x3e,0x49,0x49,0x49,0x26,0x00, /60x00,0x00,0x40,0x40,0x40,0x4f,0x70,0x00, /70x00,0x00,0x36,0x49,0x49,0x49,0x36,0x00, /80x00,0x00,0x32,0x49,0x49,0x49,0x3e,0x00, /90xAF,0xEA,0xAD,0x00,0xE6,0xE9,0xA9,0x06,/零0x00,0x10,0x10,0x10,0x10,0x10,0x10,0

38、x00, /一0x00,0x08,0x28,0x28,0x28,0x28,0x08,0x00, /二0x00,0x08,0x28,0x38,0x38,0x28,0x08,0x00, /三0x00,0x7C,0x54,0x64,0x64,0x54,0x7C,0x00, /四0x02,0x42,0x52,0x7E,0x52,0x5E,0x42,0x02, /五0x02,0x24,0x28,0xA0,0x60,0x28,0x24,0x02, /六0x10,0x10,0x7C,0x12,0x12,0x12,0x16,0x00, /七0x04,0x08,0x30,0x00,0x30,0x08,0x04,

39、0x02, /八0x00,0x22,0x24,0xF8,0x20,0x3E,0x02,0x06, /九0x30,0x78,0x7C,0x3E,0x3E,0x7C,0x78,0x30,/圖案10xE7,0xC3,0xA5,0x18,0x18,0xA5,0xC3,0xE7,/圖案20x18,0x3C,0x66,0xC3,0xC3,0x66,0x3C,0x18,/圖案30xFF,0x80,0xFF,0x01,0x01,0xFF,0x80,0xFF,/圖案40x01,0x02,0x04,0x08,0x90,0xA0,0xC0,0xF0,/圖案50x08,0x04,0x02,0x04,0x08,0x10

40、,0x20,0x40,/圖案60xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55/上電圖案;void timer0init(void)TMOD=0x02;TH0=0x00;TL0=0x00;ET0=1;EA=1;TR0=1;void int0init(void)IT0=1;EX0=1;EA=1;void display(uchar dat)uchar i;for(i=0;i<8;i+)P0=tablexi; / 列線P2=numdatadat-1i; / 行線delay500us();void redisplay()uchar i,j,t;for(j=0;j<27;j+)for(t=0;t<50;t+)i=0;for(i=0;i<8;i+) P0=tablexi; / 列線P2=numdataji; / 行線delay500us();redisplayflag=0;tabledata=27;void liushuideng()uchar i;for(i=0;i<8;i+) /P1=0xFF; /列選通都關(guān)閉掉 P0=tablexi; / 列線P2=0xff; / 行線delay500ms(); /誤差 0u

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論