利用單片機(jī)進(jìn)行紅外線編、解遙控_第1頁
利用單片機(jī)進(jìn)行紅外線編、解遙控_第2頁
利用單片機(jī)進(jìn)行紅外線編、解遙控_第3頁
利用單片機(jī)進(jìn)行紅外線編、解遙控_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

利用單片機(jī)進(jìn)行紅外線編、解碼遙控目前,彩電和VCD已走進(jìn)千家萬戶,而其所帶的紅外線遙控器給這些家電的操作帶來了極大的方便。對于單片機(jī)愛好者來說,若能知道家電遙控器的原理并將其運(yùn)用到單片機(jī)制作中,將是一件非常美妙的事情,比如家里常有幾個(gè)遙控器,操作起來還是有點(diǎn)煩,能不能用單片機(jī)將這些遙控器合并起來甚至拿遙控器來做單片機(jī)系統(tǒng)的無線鍵盤答案是肯定的。為了實(shí)現(xiàn)以上目的,本文將首先介紹目前家電遙控器常用的編碼方式,然后介紹怎樣用單片機(jī)來實(shí)現(xiàn)紅外線編解碼遙控。本文只介紹彩電、VCD遙控器常用的編碼方式,而空調(diào)的遙控器由于帶有溫度值和時(shí)間等參數(shù),碼元非常長,本文不作介紹。筆者利用紅外線讀碼儀檢測了大量的彩電、VCD遙控器的編碼,發(fā)現(xiàn)大概有以下兩種編碼格式(FORMAT)。第一種格式為1913、9012、1621格式;第二種為3010格式。其中尤以第一種格式用得最多。要識(shí)別一個(gè)遙控器的格式很簡單,只要把遙控器拆開,看它所用的集成塊型號(hào)就知道,比如UPD1621、SAA3010,其格式就是1621、3010格式。下面分別具體介紹這兩種編碼格式。第一種格式以1621為例,當(dāng)按下遙控器上的某個(gè)按鍵時(shí),遙控器將發(fā)射出一幀數(shù)據(jù),幀數(shù)據(jù)的編碼格式由三部分組成引導(dǎo)碼(LEADCODE)、客戶碼CUSTOMCODE和數(shù)據(jù)碼(DATACODE),見圖1。對于一個(gè)遙控器來說,每個(gè)按鍵所發(fā)射的幀數(shù)據(jù)的客戶碼總是一樣的,有區(qū)別的只是數(shù)據(jù)碼。其中9012和1913、1621格式的唯一區(qū)別就是引導(dǎo)碼的高電平寬度不一樣,9012格式為45MS,1913和1621格式為9MS。幀結(jié)構(gòu)中的客戶碼和數(shù)據(jù)碼各有兩個(gè)字節(jié),第一個(gè)字節(jié)和第二個(gè)字節(jié)互為按位取反,其中客戶碼的高4位與低4位又互為按位取反,如幀結(jié)構(gòu)0FF0AA55。0碼和1碼的結(jié)構(gòu)見圖2,0碼由056MS高電平和0565MS低電平組合而成、1碼由056MS高電平和169MS低電平組合而成。碼元的高電平信號(hào)采用38KHZ矩形波(載波)調(diào)制發(fā)射,載波占空比(DUTY)為1/3,低電平無信號(hào)發(fā)射。第二種格式3010與第一種格式截然不同,它是以信號(hào)脈沖的上升沿和下降沿來分別表示1碼和0碼的。其幀格式見圖3,每一幀由起始位STARTBIT、擴(kuò)展位ENLARGEDBIT、翻轉(zhuǎn)位TOGGLEBIT、系統(tǒng)位SYSTEMBIT和數(shù)據(jù)位DATABIT組成。其位碼結(jié)構(gòu)見圖4。碼元高電平也是采用38KHZ載波調(diào)制發(fā)射。前面我們了解了遙控器的編碼格式,那么我們用單片機(jī)來進(jìn)行編解碼就是一個(gè)怎樣來寫程序的問題,而硬件非常簡單。我們以1621格式為例看看怎樣用單片機(jī)來模擬它以及程序調(diào)式的一些技巧。單片機(jī)使用AT89C2051,晶振為12MHZ,電路如圖6A。我們僅使用了單片機(jī)的一個(gè)I/O口,且不必加任何驅(qū)動(dòng)電路。當(dāng)要發(fā)射信號(hào)比如0碼,事實(shí)上P30口上的電平狀態(tài)如圖5所示,碼元的高電平時(shí)就是載波信號(hào),碼元的低電平時(shí)P30口為高電平,不發(fā)射信號(hào)。38KHZ載波的周期為263微秒,由于單片機(jī)最多只能精確到1微秒,經(jīng)筆者實(shí)踐,載波周期取27微秒時(shí)發(fā)射信號(hào)最穩(wěn)定,發(fā)射距離大于8米。編程時(shí)關(guān)鍵是如何準(zhǔn)確地在P30口上產(chǎn)生38KHZ載波。對于用C51編的程序,由于不知道其匯編代碼,很難精確地取得周期為微秒級的信號(hào),即使是用定時(shí)器,進(jìn)出中斷程序以及重裝計(jì)數(shù)初值都要耗費(fèi)一定的時(shí)間,也難精確到微秒。筆者采用循環(huán)延時(shí)的方法來產(chǎn)生載波,用斷點(diǎn)法來調(diào)式。通常使用的KEILC編譯器都有程序調(diào)式功能,調(diào)式程序時(shí)啟動(dòng)定時(shí)器0,并設(shè)為方式1,不必開放中斷,在產(chǎn)生載波的循環(huán)子程序里設(shè)置一個(gè)斷點(diǎn),當(dāng)程序第一次運(yùn)行到斷點(diǎn)時(shí),記下計(jì)數(shù)器的值,接著繼續(xù)運(yùn)行程序,再只次運(yùn)行到斷點(diǎn)時(shí)又記下計(jì)數(shù)器的值,兩值相減就是載波周期了,反復(fù)改變延時(shí)時(shí)間直至載波周期為27微秒。當(dāng)我們沒有測量儀器時(shí),這種方法不失為測量信號(hào)周期和時(shí)間的一種好方法。當(dāng)然,碼元的寬度亦可采用這種方法調(diào)式。以下是筆者編是例程,在KEILC編譯器623版上編譯通過。INCLUDE/晶振為12MHZSBITLEDP30SBITKEYP37/幀數(shù)據(jù)放數(shù)組DATA里UNSIGNEDCHARDATA40X00,0XFF,0X1F,0XE0VOIDTRANSMITINTC1,INTC2/發(fā)射子程序/MAINUNSIGNEDCHARI,JWHILE1WHILEKEY/沒鍵按下,等待TRANSMIT340,565/發(fā)射引導(dǎo)碼FORI0IJ/1碼ELSETRANSMIT19,70/0碼TRANSMIT19,17WHILEKEY/等待釋放按鍵/VOIDTRANSMITINTC1,INTC2/C1為高電平寬度UNSIGNEDCHARI/C2為低電平寬度DOLED1/產(chǎn)生38KHZ載波FORI8I0I/延時(shí)18USLED0WHILEC1LED1WHILEC2利用單片機(jī)對紅外線信號(hào)進(jìn)行解碼也很簡單,電路如圖6B,一體化紅外線接收頭內(nèi)部集成有解調(diào)、信號(hào)放大和整形等電路,要注意的是在沒有紅外線信號(hào)時(shí),其輸出端為高電平,有信號(hào)時(shí)為低電平,故其輸出信號(hào)電平正好與發(fā)射端相反。因而接收頭輸出的碼元信號(hào)電平有區(qū)別的是高電平寬度不一樣,0碼高電平寬度為0565MS,1碼為169MS。本例程就是測量高電平寬度來識(shí)別碼元的,程序取幀數(shù)據(jù)的最后一個(gè)字節(jié)就可以識(shí)別不同的按鍵,客戶碼和數(shù)據(jù)碼的第一字節(jié)舍棄掉,最后將數(shù)據(jù)輸出到P1口。程序如下INCLUDE/晶振為12MHZSBITRECP31UNSIGNEDCHARI,CHUNSIGNEDINTTMAINTMOD0X01TR01WHILE1WHILEREC/等待接收信號(hào)TTH0400ELSE/非0、1碼,重新解碼CH0I0IFI32P1CHWHILERECTL00/重新計(jì)時(shí)TH00對利用單片機(jī)進(jìn)行紅外遙控感興趣的讀者,可以對以上程序進(jìn)行擴(kuò)展,實(shí)現(xiàn)自己想要的功能。如果是單片機(jī)對單片機(jī)進(jìn)行遙控時(shí),讀者還可以自己定義數(shù)據(jù)格式。需要注意的是,紅外線的載波周期一定要精確到微秒,否則發(fā)射距離極近且容易誤碼,而碼元電平的寬度可允許大到80微秒的誤差。通過單片機(jī)的這個(gè)應(yīng)用實(shí)例,我想只要掌握單片機(jī)的一些編程技巧,以及在制作過程中多加思考,往往可以用最簡單的硬件實(shí)現(xiàn)復(fù)雜的功能,這也是許多單片機(jī)初學(xué)者需要做到的。圖在下一頁圖11621格式幀可格式056MS1125MS0碼056MS225MS

溫馨提示

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

評論

0/150

提交評論