基于單片機系統的紅外遙控器應用_第1頁
基于單片機系統的紅外遙控器應用_第2頁
基于單片機系統的紅外遙控器應用_第3頁
已閱讀5頁,還剩7頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、.遙控器應用摘要1Abstract21紅外遙控器信號發射原理簡介22紅外遙控器信號接收芯片外圍電路33 遙控編碼4一、編碼格式5二、單片機遙控接收電路84軟件解碼應用程序85 結語9參考文獻9摘要介紹紅外遙控器與單片機的硬件接口,并從原理出發給出軟件解碼的方法。通過軟件程序對紅外遙控器發射的脈沖波形檢測得出信,從而為軟件解碼提供依據。紅外遙控器由于其體積小、功耗低、功能強、本錢低的特點,已經在家電產品設備中廣泛應用?,F代智能化儀器儀表系統、工業設備中的控制輸入也較多地使用紅外遙控器。本文給出紅外遙控器信號發射原理、紅外接收器的連接方式和單片機軟件解碼應用程序,并提供了一種對未知格式的遙控器信檢

2、測的應用程序。關鍵詞:遙控器;軟件解碼;單片機;紅外線 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 t

3、hus 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

4、 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

5、; SCM; infrared1紅外遙控器信號發射原理簡介通用紅外發射器由指令鍵、指令信號產生電路、調制電路、驅動電路及紅外發射器組成。如圖1所示。遙控器所產生的脈沖編碼的格式一般為:    引導脈沖(頭)識別碼(用戶碼)鍵碼鍵碼的反碼其引導脈沖為寬度是10 ms左右的一個高脈沖和一個低脈沖的組合,用來標識指令碼的開場。識別碼、鍵碼、鍵碼的反碼均為數據編碼脈沖,用二進制數表 示?!?和“1均由ms量級的上下脈沖的組合代表。識別碼(即用戶碼)是對每個遙控系統的標識。通過對識別碼的檢驗,每個遙控器只能控制一個設備動作,有效的防止了多個設備之間的串擾。當指令鍵按下時,指

6、令信號產生電路便產生脈沖編碼。鍵碼后面一般還要有鍵碼的反碼,用來檢驗鍵碼接收的正確性,防止誤動作,增強系統的可靠性。這些指令信號由調制電路調制成3240 kHz的信號,經調制后輸出,最后由驅動電路驅動紅外發射器件(LED)發出紅外遙控信號。2紅外遙控器信號接收芯片外圍電路接收電路可以使用集成紅外接收器成品,一般不需要任何外接元件就能完成從紅外接收到輸出TTL電平兼容信號的所有工作。注意選擇接收器件時要保證接收器件的中心頻率與發射信號的中心頻率相匹配。接收器對外只有3個引腳:VCC,GND和1個脈沖信號輸出OUT。與單片機接口非常方便,如圖2所示。脈沖信號輸出接CPU的普通輸入引腳或中斷輸入引腳

7、(IO/INT)。采取這種連接方法,軟件解碼既可工作于查詢方式,也可工作于中斷方式。在實際應用中,還可以進一步增加抑制干擾電路和提高驅動能力電路,增強系統的穩定性。紅外線遙控信號發送器電路 TC9012F的遙控信號,TC9012F為4位專用微控制器,其內部振蕩電路的振蕩頻率fosc典型值為455 kHz。當不按下操作鍵時,其內部455 kHz的時鐘振蕩器停頓工作,以減少電池消耗。內局部頻電路將振蕩頻率,fosc進展12分頻后,變成頻率fc=379 kHz,占空比為1/3的脈沖載波信號。 紅外遙控信號發送器電路由集成電路TC9012F、鍵盤矩陣電路、驅動器和紅外發光二極管組成,遙控信號為379

8、kHz的脈沖載波被遙控編碼脈沖調制的已調波,三、遙控信號的解碼算法及程序編制,遙控器無鍵按下。紅外發射二極管不發出信號,遙控接收頭輸出信號1。有鍵按下時O和1編碼的高電平經遙控頭倒相后會輸出信號O由于與單片機的中斷腳相連,將會引起單片機中斷(單片機預先設定為下降沿產生中斷)。單片機在中斷時使用定時器0或定時器1開場計時到下一個脈沖到來時,即再次產生中斷時,先將計時值取出。清零計時值后再開場計時通過判斷每次中斷與上一次中斷之間的時間間隔。便可知接收到的是引導碼還是 O和1。如果計時值為9ms。接收到的是引導碼,如果計時值等于112ms,接收到的是編碼O。如果計時值等于2 25ms接收到的是編碼1

9、。在判斷時間時,應考慮一定的誤差值。因為不同的遙控器由于晶振參數等原因,發射及接收到的時間也會有很小的誤差。    以接收TC9012遙控器編碼為例,解碼方法如下:    (1)設外部中斷0(或者1)為下降沿中斷,定時器0(或者1)為16位計時器初始值均為O。    (2)第一次進入遙控中斷后,開場計時。    (3)從第二次進入遙控中斷起,先停頓計時。并將計時值保存后,再重新計時。如果計時值等于前導碼的時間,設立前導碼標志。準備接收下面的一幀遙控數據,如果計時值不等于前導碼

10、的時間,但前面已接收到前導碼,那么判斷是遙控數據的O還是1。(4)繼續接收下面的地址碼、數據碼、數據反碼。(5)當接收到32位數據時,說明一幀數據接收完畢。此時可停頓定時器的計時,并判斷本次接收是否有效如果兩次地址碼一樣且等于本系統的地址,數據碼與數據反碼之和等于0FFH,那么接收的本幀數據碼有效。否那么丟棄本次接收到的數據。(6)接收完畢,初始化本次接收的數據,準備下一次遙控接收。3遙控編碼遙控編碼脈沖由引導碼、用戶碼、功能碼和功能碼的相反碼組成,用戶碼是同一組碼發送兩次,如圖2所示。用戶碼為8位,所以整個脈沖碼為32位。引導碼作為接收數據的準備脈沖,他由8TCP(45 ms)的高電平和8T

11、CP(45 ms)的低電平組成。用戶碼和功能碼采用脈沖位置調制(PPM)方式編碼,根據脈沖之間的時間間隔來區分碼值的"0"或"1"。對應于二進制數字信號的"0"或"1",脈沖時間間隔分別為2TCP(1125 ms)和4TCP(225 ms),而每一脈沖的寬度仍不變,均為TCP(0562 6 ms)。由于用戶碼發送兩次,功能碼與其相反碼一起發送,因此系統的誤動作很少。本遙控器采用第一次發送的遙控信號的編碼脈沖(圖3所示)和第二、第三次連續發送的遙控信號的編碼脈沖(圖4所示)不同的工作方式。這樣,當按鍵一直按著的時候,

12、從第二次連續發送開場,只發送引導碼和用戶碼第一位SO的相反碼SO,因此可減少接收處理時間和紅外發光二極管功耗,遙控編碼脈沖經脈沖載波調制后由TC9021F的第腳輸出,再經鼓勵器驅動紅外發光二極管,發送出波長為940nm的脈沖紅外光。假設用戶碼為十六進制的76H那么第一次發送的遙控信號的編碼脈沖如圖3所示。解碼器硬件以AT89C51單片機為核心,如圖5所示,圖中只給出接收紅外遙控信號的局部電路。紅外遙控信號經過紅外接收模塊接收后,解調為遙控信號的編碼脈沖由輸出端A輸出,其波形如圖3和圖4所示,此信號經過反相器74LS04輸出到AT89C51的外部中斷INT0輸入端.單片機通過運行程序對紅外遙控器

13、TC9021所發出的編碼脈沖進展接收和譯碼。用單片機解碼紅外遙控器遙控器使用方便,功能多目前已廣泛應用在電視機、VCD、DVD、空調等各種家用電器中,且價格廉價,市場上非常容易買到。如果能將遙控器上許多的按鍵解碼出來用作單片機系統的輸入那么解決了常規矩陣鍵盤線路板過大、布線復雜、占用IO口過多的弊病。而且通過使用遙控器,操作時可實現人與設備的別離,從而更加方便使用。下面以TC9012編碼芯片的遙控器為例。談談如何用常用的51系統單片機進展遙控的解碼。一、編碼格式1、0和1的編碼遙控器發射的信號由一串O和1的二進制代碼組成不同的芯片對0和1的編碼有所不同。通常有曼徹斯特編碼和脈沖寬度編碼。TC9

14、012的O和1采用PWM方法編碼,即脈沖寬度調制,其O碼和1碼如圖1所示(以遙控接收輸出的波形為例)。O碼由O56ms低電平和056ms高電平組合而成脈沖寬度為112ms1碼由056ms低電平和169ms高電平組合而成脈沖寬度為225ms。在編寫解碼程序時通過判斷脈沖的寬度,即可得到0或1。2、按鍵的編碼當我們按下遙控器的按鍵時,遙控器將發出如圖2的一串二進制代碼,我們稱它為一幀數據。根據各局部的功能??蓪⑺鼈兎譃?局部,分別為引導碼、地址碼、地址碼、數據碼、數據反碼。遙控器發射代碼時均是低位在前。高位在后。由圖2分析可以得到引導碼高電平為45ms,低電平為45ms。當接收到此碼時表示一幀數據

15、的開場。單片機可以準備接收下面的數據。地址碼由8位二進制組成,共256種圖中地址碼重發了一次。主要是加強遙控器的可靠性如果兩次地址碼不一樣那么說明本幀數據有錯應丟棄。不同的設備可以擁有不同的地址碼因此。同種編碼的遙控器只要設置地址碼不同,也不會相互干擾。圖中的地址碼為十六進制的0EH(注意低位在前)。在同一個遙控器中所有按鍵發出的地址碼都是一樣的。數據碼為8位,可編碼256種狀態,代表實際所按下的鍵。數據反碼是數據碼的各位求反,通過比擬數據碼與數據反碼可判斷接收到的數據是否正確。如果數據碼與數據反碼之間的關系不滿足相反的關系那么本次遙控接收有誤數據應丟棄。在同一個遙控器上所有按鍵的數據碼均不一

16、樣。在圖2中,數據碼為十六進制的0CH,數據反碼為十六進制的0F3H(注意低位在前)兩者之和應為0FFH。單片機程序主要解決的問題就是如何對接收到的9021型紅外遙控器所發射的信號進展解碼,編碼脈沖信號是由引導碼、用戶碼、和功能碼等局部組成,我們只對獲取其功能碼過程進展分析。在單片機設置中,將單片機AT89C51內部定時器/計數器T0設為定時方式1,定時時間為1 ms;設外部中斷INT0為下降沿中斷觸發方式,由于在接收時將編碼脈沖信號進展反相,因此,每當INT0外管腳信號下降沿到來時,外部中斷INT0發生中斷,啟動定時器T0,定時器每次中斷定時時間為1 ms并累加到定時計數器中,在下一次外部中

17、斷INT0發生中斷時讀取定時計數器中的時間,通過對兩個脈沖之間的定時時間的分析來對 遙控器功能碼進展解碼例如程序如下: E1INT:. v.PUSHACCPUSH PSWCLRTR1MOV RMTLEN,TH1    、MOVTH1,*00HMOV TL1,*00HSETBTR1MOV A,RMJLENJNZ LBLRMDATBITMOV RMADDR*00HMOV RMRADDR,*00HMOV RMDAT,*00HMOV RMRDAT,*00HMOV RMBIT_T,*00HCLR RMOKCLR RMGUIDEPOPPSWPOPACCRET1 I BI RM

18、 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 L

19、BL_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&

20、#160;   RRC A    MOV RM RADDRA    MOV A。RM-ADDR    RRC A    MOV RMADDRALBLRMEND:    INC RMBITT    MOV A,RM_BIT_T    CJNE A,*32,LBLE1 INT_RET    CLRTR1    M

21、OV 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_T,*00H   

22、 CLR RMGUIDE    SEITB RMOK    SJMP LBLE1 INTRET LBLRMERROR:    CLRTR1    MOV TH1,*0OH    MOVTL1,*00H     MOV RM_ADDR,*00H    MOV RMRADDR,*00H    MOV RMDAT,*00H    MO

23、V RMRDAT,*00H    MOV RMB1TT,*00H    CLR RMGUIDELBLE1 INTRET:POPPSWPOPACCRETI. v.二、單片機遙控接收電路    紅外遙控接收可采用較早的紅外接收二極管加專用的紅外處理電路的方法。如CXA20216,此種方法電路復雜,現在一般不采用。較好的接收方法是用一體化紅外接收頭,它將紅外接收二極管、放大、解調、整形等電路做在一起,只有三個引腳分別是+5V電源、地、信號輸出。常用的一體化接收頭的外形及引腳見圖3和圖4。紅外接收頭的信號輸出接單

24、片機的INTO或INTl腳典型電路如圖5所示圖中增加了一只PNP型三極管對輸出信號進展放大。    以上以Tc9012編碼格式為例,說明了解碼的原理與方法。只要注意一幀數據的格式及引導碼、O碼和1碼的時間長度其它編碼芯片如 HT6121、M50560、LC7461等也非常容易解碼。4軟件解碼應用程序在遙控器信格式的條件下,可以通過單片機軟件程序實現解碼。以筆者手中的遙控器為例,根據上面已測得的信,采用PIC16C54單片機,4 MHz晶振,提供一種軟件解碼的應用程序。PIC16C54單片機是一款有著較高性能價格比的低檔單片機,最適合低價格、低功耗、小體積的設備。PIC16C54沒有中斷系統,程序采用軟件查詢法,查詢輸入引腳的電平變化,采用定時器定時,根據定時器的記錄值和的信號格式比擬,判斷各局部接收是否正確以及分辨鍵碼并執行相應的命令。由于遙控器脈寬時間值是在一個小X圍內波動,而且檢測過程中定時器也存在誤差。因此,對信號的識別不能采取準確比擬法,本程序采用了區間比擬法,即判斷定時器的記錄值是否在預先計算的區間內。由88于引導脈沖和數據脈沖的時間相差很大,解

溫馨提示

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

評論

0/150

提交評論