基于單片機(jī)系統(tǒng)的紅外遙控器應(yīng)用_第1頁
基于單片機(jī)系統(tǒng)的紅外遙控器應(yīng)用_第2頁
基于單片機(jī)系統(tǒng)的紅外遙控器應(yīng)用_第3頁
基于單片機(jī)系統(tǒng)的紅外遙控器應(yīng)用_第4頁
基于單片機(jī)系統(tǒng)的紅外遙控器應(yīng)用_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

遙控器應(yīng)用摘要1Abstract21紅外遙控器信號發(fā)射原理簡介22紅外遙控器信號接收芯片外圍電路33 遙控編碼4一、編碼格式5二、單片機(jī)遙控接收電路84軟件解碼應(yīng)用程序85 結(jié) 語9參考文獻(xiàn)9摘要介紹紅外遙控器與單片機(jī)的硬件接口,并從原理出發(fā)給出軟件解碼的方法。通過軟件程序?qū)t外遙控器發(fā)射的脈沖波形檢測得出信號碼,從而為軟件解碼提供依據(jù)。紅外遙控器由于其體積小、功耗低、功能強(qiáng)、成本低的特點(diǎn),已經(jīng)在家電產(chǎn)品設(shè)備中廣泛應(yīng)用?,F(xiàn)代智能化儀器儀表系統(tǒng)、工業(yè)設(shè)備中的控制輸入也較多地使用紅外遙控器。本文給出紅外遙控器信號發(fā)射原理、紅外接收器的連接方式和單片機(jī)軟件解碼應(yīng)用程序,并提供了一種對未知格式的遙控器信號碼檢測的應(yīng)用程序。 關(guān)鍵詞:遙控器;軟件解碼;單片機(jī);紅外線 AbstractIntroduction infrared remote control and microcontroller hardware interface and software decoding are presented and from the principle of the method. Through the infrared remote control software program launched in the letter obtained pulse detection number, and thus provide the basis for software decoding. Infrared remote control because of its small size, low power consumption, strong function, and low costs, has been widely used in home appliances equipment. Modern intelligent instrumentation systems, industrial equipment, the control input is greater use of infrared remote control. In this paper, principle of infrared remote control signal transmission, infrared receiver connection and SCM software decoding applications, and provides a remote control for unknown format letter number detection applications.Keywords: remote control; software decoding; SCM; infrared1紅外遙控器信號發(fā)射原理簡介通用紅外發(fā)射器由指令鍵、指令信號產(chǎn)生電路、調(diào)制電路、驅(qū)動電路及紅外發(fā)射器組成。如圖1所示。遙控器所產(chǎn)生的脈沖編碼的格式一般為: 引導(dǎo)脈沖(頭)識別碼(用戶碼)鍵碼鍵碼的反碼其引導(dǎo)脈沖為寬度是10 ms左右的一個高脈沖和一個低脈沖的組合,用來標(biāo)識指令碼的開始。識別碼、鍵碼、鍵碼的反碼均為數(shù)據(jù)編碼脈沖,用二進(jìn)制數(shù)表 示?!?”和“1”均由ms量級的高低脈沖的組合代表。識別碼(即用戶碼)是對每個遙控系統(tǒng)的標(biāo)識。通過對識別碼的檢驗(yàn),每個遙控器只能控制一個設(shè)備動作,有效的防止了多個設(shè)備之間的串?dāng)_。當(dāng)指令鍵按下時,指令信號產(chǎn)生電路便產(chǎn)生脈沖編碼。鍵碼后面一般還要有鍵碼的反碼,用來檢驗(yàn)鍵碼接收的正確性,防止誤動作,增強(qiáng)系統(tǒng)的可靠性。這些指令信號由調(diào)制電路調(diào)制成3240 kHz的信號,經(jīng)調(diào)制后輸出,最后由驅(qū)動電路驅(qū)動紅外發(fā)射器件(LED)發(fā)出紅外遙控信號。2紅外遙控器信號接收芯片外圍電路接收電路可以使用集成紅外接收器成品,一般不需要任何外接元件就能完成從紅外接收到輸出TTL電平兼容信號的所有工作。注意選擇接收器件時要保證接收器件的中心頻率與發(fā)射信號的中心頻率相匹配。接收器對外只有3個引腳:VCC,GND和1個脈沖信號輸出OUT。與單片機(jī)接口非常方便,如圖2所示。脈沖信號輸出接CPU的普通輸入引腳或中斷輸入引腳(IO/INT)。采取這種連接方法,軟件解碼既可工作于查詢方式,也可工作于中斷方式。在實(shí)際應(yīng)用中,還可以進(jìn)一步增加抑制干擾電路和提高驅(qū)動能力電路,增強(qiáng)系統(tǒng)的穩(wěn)定性。紅外線遙控信號發(fā)送器電路 TC9012F的遙控信號,TC9012F為4位專用微控制器,其內(nèi)部振蕩電路的振蕩頻率fosc典型值為455 kHz。當(dāng)不按下操作鍵時,其內(nèi)部455 kHz的時鐘振蕩器停止工作,以減少電池消耗。內(nèi)部分頻電路將振蕩頻率,fosc進(jìn)行12分頻后,變成頻率fc=379 kHz,占空比為1/3的脈沖載波信號。 紅外遙控信號發(fā)送器電路由集成電路TC9012F、鍵盤矩陣電路、驅(qū)動器和紅外發(fā)光二極管組成,遙控信號為379 kHz的脈沖載波被遙控編碼脈沖調(diào)制的已調(diào)波,三、遙控信號的解碼算法及程序編制,遙控器無鍵按下。紅外發(fā)射二極管不發(fā)出信號,遙控接收頭輸出信號1。有鍵按下時O和1編碼的高電平經(jīng)遙控頭倒相后會輸出信號O由于與單片機(jī)的中斷腳相連,將會引起單片機(jī)中斷(單片機(jī)預(yù)先設(shè)定為下降沿產(chǎn)生中斷)。單片機(jī)在中斷時使用定時器0或定時器1開始計時到下一個脈沖到來時,即再次產(chǎn)生中斷時,先將計時值取出。清零計時值后再開始計時通過判斷每次中斷與上一次中斷之間的時間間隔。便可知接收到的是引導(dǎo)碼還是 O和1。如果計時值為9ms。接收到的是引導(dǎo)碼,如果計時值等于112ms,接收到的是編碼O。如果計時值等于2 25ms接收到的是編碼1。在判斷時間時,應(yīng)考慮一定的誤差值。因?yàn)椴煌倪b控器由于晶振參數(shù)等原因,發(fā)射及接收到的時間也會有很小的誤差。 以接收TC9012遙控器編碼為例,解碼方法如下: (1)設(shè)外部中斷0(或者1)為下降沿中斷,定時器0(或者1)為16位計時器初始值均為O。 (2)第一次進(jìn)入遙控中斷后,開始計時。 (3)從第二次進(jìn)入遙控中斷起,先停止計時。并將計時值保存后,再重新計時。如果計時值等于前導(dǎo)碼的時間,設(shè)立前導(dǎo)碼標(biāo)志。準(zhǔn)備接收下面的一幀遙控數(shù)據(jù),如果計時值不等于前導(dǎo)碼的時間,但前面已接收到前導(dǎo)碼,則判斷是遙控數(shù)據(jù)的O還是1。(4)繼續(xù)接收下面的地址碼、數(shù)據(jù)碼、數(shù)據(jù)反碼。(5)當(dāng)接收到32位數(shù)據(jù)時,說明一幀數(shù)據(jù)接收完畢。此時可停止定時器的計時,并判斷本次接收是否有效如果兩次地址碼相同且等于本系統(tǒng)的地址,數(shù)據(jù)碼與數(shù)據(jù)反碼之和等于0FFH,則接收的本幀數(shù)據(jù)碼有效。否則丟棄本次接收到的數(shù)據(jù)。(6)接收完畢,初始化本次接收的數(shù)據(jù),準(zhǔn)備下一次遙控接收。3 遙控編碼遙控編碼脈沖由引導(dǎo)碼、用戶碼、功能碼和功能碼的相反碼組成,用戶碼是同一組碼發(fā)送兩次,如圖2所示。用戶碼為8位,所以整個脈沖碼為32位。引導(dǎo)碼作為接收數(shù)據(jù)的準(zhǔn)備脈沖,他由8TCP(45 ms)的高電平和8TCP(45 ms)的低電平組成。用戶碼和功能碼采用脈沖位置調(diào)制(PPM)方式編碼,根據(jù)脈沖之間的時間間隔來區(qū)分碼值的0或1。對應(yīng)于二進(jìn)制數(shù)字信號的0或1,脈沖時間間隔分別為2TCP(1125 ms)和4TCP(225 ms),而每一脈沖的寬度仍不變,均為TCP(0562 6 ms)。由于用戶碼發(fā)送兩次,功能碼與其相反碼一起發(fā)送,因此系統(tǒng)的誤動作很少。本遙控器采用第一次發(fā)送的遙控信號的編碼脈沖(圖3所示)和第二、第三次連續(xù)發(fā)送的遙控信號的編碼脈沖(圖4所示)不同的工作方式。這樣,當(dāng)按鍵一直按著的時候,從第二次連續(xù)發(fā)送開始,只發(fā)送引導(dǎo)碼和用戶碼第一位SO的相反碼SO,因此可減少接收處理時間和紅外發(fā)光二極管功耗,遙控編碼脈沖經(jīng)脈沖載波調(diào)制后由TC9021F的第腳輸出,再經(jīng)激勵器驅(qū)動紅外發(fā)光二極管,發(fā)送出波長為940nm的脈沖紅外光。假設(shè)用戶碼為十六進(jìn)制的76H則第一次發(fā)送的遙控信號的編碼脈沖如圖3所示。解碼器硬件以AT89C51單片機(jī)為核心,如圖5所示,圖中只給出接收紅外遙控信號的部分電路。紅外遙控信號經(jīng)過紅外接收模塊接收后,解調(diào)為遙控信號的編碼脈沖由輸出端A輸出,其波形如圖3和圖4所示,此信號經(jīng)過反相器74LS04輸出到AT89C51的外部中斷INT0輸入端.單片機(jī)通過運(yùn)行程序?qū)t外遙控器TC9021所發(fā)出的編碼脈沖進(jìn)行接收和譯碼。用單片機(jī)解碼紅外遙控器遙控器使用方便,功能多目前已廣泛應(yīng)用在電視機(jī)、VCD、DVD、空調(diào)等各種家用電器中,且價格便宜,市場上非常容易買到。如果能將遙控器上許多的按鍵解碼出來用作單片機(jī)系統(tǒng)的輸入則解決了常規(guī)矩陣鍵盤線路板過大、布線復(fù)雜、占用IO口過多的弊病。而且通過使用遙控器,操作時可實(shí)現(xiàn)人與設(shè)備的分離,從而更加方便使用。下面以TC9012編碼芯片的遙控器為例。談?wù)勅绾斡贸S玫?1系統(tǒng)單片機(jī)進(jìn)行遙控的解碼。一、編碼格式1、0和1的編碼遙控器發(fā)射的信號由一串O和1的二進(jìn)制代碼組成不同的芯片對0和1的編碼有所不同。通常有曼徹斯特編碼和脈沖寬度編碼。TC9012的O和1采用PWM方法編碼,即脈沖寬度調(diào)制,其O碼和1碼如圖1所示(以遙控接收輸出的波形為例)。O碼由O56ms低電平和056ms高電平組合而成脈沖寬度為112ms1碼由056ms低電平和169ms高電平組合而成脈沖寬度為225ms。在編寫解碼程序時通過判斷脈沖的寬度,即可得到0或1。2、按鍵的編碼當(dāng)我們按下遙控器的按鍵時,遙控器將發(fā)出如圖2的一串二進(jìn)制代碼,我們稱它為一幀數(shù)據(jù)。根據(jù)各部分的功能??蓪⑺鼈兎譃?部分,分別為引導(dǎo)碼、地址碼、地址碼、數(shù)據(jù)碼、數(shù)據(jù)反碼。遙控器發(fā)射代碼時均是低位在前。高位在后。由圖2分析可以得到引導(dǎo)碼高電平為45ms,低電平為45ms。當(dāng)接收到此碼時表示一幀數(shù)據(jù)的開始。單片機(jī)可以準(zhǔn)備接收下面的數(shù)據(jù)。地址碼由8位二進(jìn)制組成,共256種圖中地址碼重發(fā)了一次。主要是加強(qiáng)遙控器的可靠性如果兩次地址碼不相同則說明本幀數(shù)據(jù)有錯應(yīng)丟棄。不同的設(shè)備可以擁有不同的地址碼因此。同種編碼的遙控器只要設(shè)置地址碼不同,也不會相互干擾。圖中的地址碼為十六進(jìn)制的0EH(注意低位在前)。在同一個遙控器中所有按鍵發(fā)出的地址碼都是相同的。數(shù)據(jù)碼為8位,可編碼256種狀態(tài),代表實(shí)際所按下的鍵。數(shù)據(jù)反碼是數(shù)據(jù)碼的各位求反,通過比較數(shù)據(jù)碼與數(shù)據(jù)反碼可判斷接收到的數(shù)據(jù)是否正確。如果數(shù)據(jù)碼與數(shù)據(jù)反碼之間的關(guān)系不滿足相反的關(guān)系則本次遙控接收有誤數(shù)據(jù)應(yīng)丟棄。在同一個遙控器上所有按鍵的數(shù)據(jù)碼均不相同。在圖2中,數(shù)據(jù)碼為十六進(jìn)制的0CH,數(shù)據(jù)反碼為十六進(jìn)制的0F3H(注意低位在前)兩者之和應(yīng)為0FFH。單片機(jī)程序主要解決的問題就是如何對接收到的9021型紅外遙控器所發(fā)射的信號進(jìn)行解碼,編碼脈沖信號是由引導(dǎo)碼、用戶碼、和功能碼等部分組成,我們只對獲取其功能碼過程進(jìn)行分析。在單片機(jī)設(shè)置中,將單片機(jī)AT89C51內(nèi)部定時器/計數(shù)器T0設(shè)為定時方式1,定時時間為1 ms;設(shè)外部中斷INT0為下降沿中斷觸發(fā)方式,由于在接收時將編碼脈沖信號進(jìn)行反相,因此,每當(dāng)INT0外管腳信號下降沿到來時,外部中斷INT0發(fā)生中斷,啟動定時器T0,定時器每次中斷定時時間為1 ms并累加到定時計數(shù)器中,在下一次外部中斷INT0發(fā)生中斷時讀取定時計數(shù)器中的時間,通過對兩個脈沖之間的定時時間的分析來對 遙控器功能碼進(jìn)行解碼示例程序如下: E1INT:PUSHACCPUSH PSWCLRTR1MOV RMTLEN,TH1 、MOVTH1,#00HMOV TL1,#00HSETBTR1MOV A,RMJLENJNZ LBLRMDATBITMOV RMADDR#00HMOV RMRADDR,#00HMOV RMDAT,#00HMOV RMRDAT,#00HMOV RMBIT_CNT,#00HCLR RMOKCLR RMGUIDEPOPPSWPOPACCRET1 I BI RM DAT BIT: MOV A,RM_TLEN CJNE A,#23H,LBLRM_ADDR_DAT SETB RMGUIDE SJMP LBLE1 INT-RETLBLRM_ADDR_DAT; JNB RMGUIDE,LBLRMERROR CJNE A,#04H,LBL_RM_ONE CLR C SJMP LBL_RMSHIFTLBLRMONE: CJNE A。#08H。LBLRMERROR SETB CLBL_RM_SHIFT: MOV A,RMRDAT RRC A MOV RMRDATA MOV A,RMDAT RRC A MOV RMDAT,A MOV A,RMRADDR RRC A MOV RM RADDRA MOV A。RM-ADDR RRC A MOV RMADDRALBLRMEND: INC RMBITCNT MOV A,RM_BIT_CNT CJNE A,#32,LBLE1 INT_RET CLRTR1 MOV TH1,#00H MOVTL1,#00H MOV HOURRMADDR MOV MINUTE,RMDAT MOV RM_ADDR,#00H MOV RMRADDR,#00H MOV RMDAT,#00H MOV RMRDAT,#00H MOV RM一8IT_CNT,#00H CLR RMGUIDE SEITB RMOK SJMP LBLE1 INTRET LBLRMERROR: CLRTR1 MOV TH1,#0OH MOVTL1,#00H MOV RM_ADDR,#00H MOV RMRADDR,#00H MOV RMDAT,#00H MOV RMRDAT,#00H MOV RMB1TCNT,#00H CLR RMGUIDELBLE1 INTRET:POPPSWPOPACCRETI 二、單片機(jī)遙控接收電路 紅外遙控接收可采用較早的紅外接收二極管加專用的紅外處理電路的方法。如CXA20106,此種方法電路復(fù)雜,現(xiàn)在一般不采用。較好的接收方法是用一體化紅外接收頭,它將紅外接收二極管、放大、解調(diào)、整形等電路做在一起,只有三個引腳分別是+5V電源、地、信號輸出。常用的一體化接收頭的外形及引腳見圖3和圖4。紅外接收頭的信號輸出接單片機(jī)的INTO或INTl腳典型電路如圖5所示圖中增加了一只PNP型三極管對輸出信號進(jìn)行放大。 以上以Tc9012編碼格式為例,說明了解碼的原理與方法。只要注意一幀數(shù)據(jù)的格式及引導(dǎo)碼、O碼和1碼的時間長度其它編碼芯片如 HT6121、M50560、LC7461等也非常容易解碼。4軟件解碼應(yīng)用程序在已知遙控器信號碼格式的條件下,可以通過單片機(jī)軟件程序?qū)崿F(xiàn)解碼。以筆者手中的遙控器為例,根據(jù)上面已測得的信號碼,采用PIC16C54單片機(jī),4 MHz晶振,提供一種軟件解碼的應(yīng)用程序。PIC16C54單片機(jī)是一款有著較高性能價格比的低檔單片機(jī),最適合低價格、低功耗、小體積的設(shè)備。PIC16C54沒有中斷系統(tǒng),程序采用軟件查詢法,查詢輸入引腳的電平變化,采用定時器定時,根據(jù)定時器的記錄值和已知的信號格式比較,判斷各部分接收是否正確以及分辨鍵碼并執(zhí)行相應(yīng)的命令。由于遙控器脈寬時間值是在一個小范圍內(nèi)波動,而且檢測過程中定時器也存在誤差。因此,對信號的識別不能采取精確比較法,本程序采用了區(qū)間比較法,即判斷定時器的記錄值是否在預(yù)先計算的區(qū)間內(nèi)。由88于引導(dǎo)脈沖和數(shù)據(jù)脈沖的時間相差很大,解碼時對定時器采用不同的預(yù)分頻,以盡量提高解碼的準(zhǔn)確度。引導(dǎo)脈沖判斷:低884 ms,高440 ms,預(yù)分頻164,理論計算得定時器值應(yīng)為:低8AH,高44H。如實(shí)際所得低部分在85H和90H之間、高部分在40H和4AH之間,則認(rèn)為引導(dǎo)脈沖接收正確?!?

溫馨提示

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

評論

0/150

提交評論