于明軍
(赤峰學(xué)院 物理與電子信息工程學(xué)院,內(nèi)蒙古 赤峰 024000)
基于單片機(jī)的紅外遙控編碼器的設(shè)計(jì)
于明軍
(赤峰學(xué)院 物理與電子信息工程學(xué)院,內(nèi)蒙古 赤峰 024000)
本文設(shè)計(jì)并實(shí)現(xiàn)了一種基于STC89C58RD+單片機(jī)的紅外遙控編碼器,運(yùn)用模塊化的設(shè)計(jì)方法來設(shè)計(jì)遙控器的硬件系統(tǒng)和軟件系統(tǒng).通過Keil軟件和仿真軟件Proteus進(jìn)行了聯(lián)合仿真調(diào)試,最后焊接出紅外遙控編碼器實(shí)物,并給出了仿真和實(shí)驗(yàn)結(jié)果.
紅外遙控;單片機(jī);proteus仿真
紅外線遙控技術(shù)的應(yīng)用不僅極大的方便了人們的日常生活,使人們的生活更容易更舒適,而且在工業(yè)設(shè)備中像高壓、輻射、有毒氣體、粉塵等環(huán)境下,采用紅外線遙控不僅完全可以完成過去所能完成的操作而且還能有效地隔離電氣干擾.遙控器的實(shí)現(xiàn)手段有很多種,目前市面上的遙控器絕大多數(shù)都是采用專用遙控芯片.例如:6121/2、9012、3010、50462.但有些遙控器碼型比較特殊,專用遙控芯片無法實(shí)現(xiàn),而遙控器的用量又不大,做掩膜費(fèi)用又太高,因此在這個(gè)領(lǐng)域利用單片機(jī)來實(shí)現(xiàn)具有很大的優(yōu)勢(shì).另外采用單片機(jī)進(jìn)行紅外遙控系統(tǒng)的應(yīng)用設(shè)計(jì)具有硬件接口簡(jiǎn)單方便,編程靈活多樣,操作碼隨意設(shè)定等優(yōu)點(diǎn).
本紅外遙控編碼器是以STC89C58RD+單片機(jī)作為主控芯片,協(xié)同外加紅外發(fā)射電路來模擬電視遙控器的發(fā)射信號(hào),來控制兩種不同品牌電視機(jī)的上、下?lián)Q臺(tái)、音量增大和減小.
紅外遙控器的發(fā)射原理如圖1所示:
圖1 紅外遙控器的發(fā)射原理
目前常見的紅外編碼協(xié)議有RC5編碼、SONY編碼、NEC編碼和RECS80編碼,本紅外遙控編碼器就采用日常運(yùn)用比較廣泛和編解碼比較容易的NEC編碼來加以說明.當(dāng)遙控編碼器按下不同的鍵時(shí)即有遙控碼發(fā)出,所按的鍵不同,其編碼也不同.這種編碼方式為:
采用脈寬調(diào)制的串行碼,以脈寬為0.56ms、間隔0.565ms、周期為1.125ms的組合表示二進(jìn)制的“0”;以脈寬為0.56ms、間隔1.69ms、周期為2.25ms的組合表示二進(jìn)制的“1”,其圖示如圖2所示:
圖2 位0和位1圖
NEC編碼是連續(xù)的32位二進(jìn)制碼組,其中前16位為用戶識(shí)別碼,能區(qū)別不同的電器設(shè)備,防止不同機(jī)種遙控碼互相干擾.后16位為8位操作碼(功能碼)及其反碼.其原理圖如圖3所示:
圖3 紅外遙控器的發(fā)射碼圖
把上述“0”和“1”組成的32位二進(jìn)制碼調(diào)制到38kHz的高頻載波上的原理是將32位碼中0和1的高電平調(diào)制到以1/38KHz為周期的矩形脈沖上,低電平保持不變.經(jīng)過調(diào)制的發(fā)射碼然后再通過紅外發(fā)射二極管產(chǎn)生紅外線向空間發(fā)射.其原理如圖4所示:
圖4 數(shù)字0和1的38KHz調(diào)制波形原理圖
系統(tǒng)硬件電路如圖5所示:
圖5 系統(tǒng)硬件電路組成原理圖
本紅外遙控編碼器由單片機(jī)、12Mz晶振模塊、按鍵電平復(fù)位電路、獨(dú)立按鍵、LED燈、按鍵和紅外發(fā)射電路組成.其中單片機(jī)是本遙控器的處理核心部件,通過單片機(jī)來實(shí)現(xiàn)它們的功能.12Mz晶振模塊使單片機(jī)內(nèi)部的時(shí)鐘接在單片機(jī)的XTAL1和XTAL2口上.按鍵電平復(fù)位模塊是單片機(jī)在開機(jī)和運(yùn)行編碼程序出現(xiàn)錯(cuò)誤的時(shí)候用以復(fù)位操作.獨(dú)立按鍵是本遙控器的用戶接口,通過按下不同的鍵,單片機(jī)讀取其相應(yīng)的鍵值,然后完成相應(yīng)的處理操作.LED用于指示兩種不同編碼的工作狀態(tài).
軟件設(shè)計(jì)包括4個(gè)部分:主函數(shù)、鍵掃描子程序、發(fā)射子程序和中斷程序;主程序通過調(diào)用鍵掃描和發(fā)射子程序來實(shí)現(xiàn)不同紅外編碼發(fā)射.鍵掃描程序用于正確檢測(cè)和掃描鍵值,發(fā)射子程序通過獲得的鍵值執(zhí)行不同的編碼發(fā)射,中斷程序用于發(fā)送碼型的38KHz調(diào)制.
圖6 主程序流程圖
圖7 發(fā)射電路流程圖
圖8 按鍵掃描流程圖
圖9 T0中斷流程圖
圖10 Proteus仿真圖
圖10 是紅外遙控器通過Proteus進(jìn)行功能仿真的仿真圖,圖形顯示的是一個(gè)完整的32位波形編碼,從左往右依次是9ms的起始碼(圖中較寬的高電平)、4.5ms的結(jié)束碼(圖中較寬的低電平)、16位機(jī)器碼1C61H、數(shù)據(jù)碼ACH和數(shù)據(jù)反碼53H.由于發(fā)射是從低位到高位依次單字節(jié)發(fā)射,故 1CH (00011100D)的發(fā)送 形式 是 00111000D,61H(01100001D)的發(fā)送形式是10000110D,ACH(10101100D)的發(fā)送形式是00110101D,53H(01010011D)的發(fā)送形式是11001010D.
圖11 實(shí)驗(yàn)波形圖
依照設(shè)計(jì)制作了實(shí)際電路,并通過數(shù)字示波器觀察了發(fā)射波形,圖11所示.該圖形顯示的碼型、數(shù)據(jù)與Proteus仿真結(jié)果的碼型、數(shù)據(jù)完全一致,表明實(shí)驗(yàn)電路正確.
通過仿真和實(shí)際測(cè)量,表明該編碼器能夠正常運(yùn)行,準(zhǔn)確控制,滿足設(shè)計(jì)要求.通過單片機(jī)設(shè)計(jì)紅外遙控系統(tǒng)發(fā)揮了軟件的優(yōu)點(diǎn),簡(jiǎn)化了電路,降低了成本,提高了可靠性,且易于維護(hù),功能可擴(kuò)展性好,尤其適用于編碼器碼型比較特殊,保密性要求較高的場(chǎng)合.
〔1〕羅冬,趙海剛,張?jiān)?盧超.基于單片機(jī)的紅外遙控定時(shí)開關(guān)裝置的設(shè)計(jì)[J].機(jī)電工程技術(shù),2010(3).
〔2〕李楠,鄭建立.基于單片機(jī)的紅外遙控自學(xué)習(xí)系統(tǒng)的設(shè)計(jì)[J].自動(dòng)化與儀器儀表,2008(6).
〔3〕李寶營(yíng),趙永生,祁建廣.基于單片機(jī)的紅外遙控系統(tǒng)設(shè)計(jì)[J].機(jī)電工程技術(shù),2008(12).
〔4〕李芳,高煥芝,賀秀玲,劉慶杰.紅外遙控密碼鎖的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2008(5).
〔5〕張仁儉.基于89C2051單片機(jī)的紅外遙控裝置及應(yīng)用[J].航天制造技術(shù),2005(3).
TP872
A
1673-260X(2011)11-0028-02