當前位置:首頁 > 嵌入式 > 嵌入式電路圖
[導讀]用單片機解碼紅外遙控器

 

 

 

單片機解碼紅外遙控器

遙控器使用方便,功能多.目前已廣泛應用在電視機、VCD、DVD、空調(diào)等各種家用電器中,且價格便宜,市場上非常容易買到。如果能將遙控器上許多的按鍵解碼出來.用作單片機系統(tǒng)的輸入.則解決了常規(guī)矩陣鍵盤線路板過大、布線復雜、占用I/O口過多的弊病。而且通過使用遙控器,操作時可實現(xiàn)人與設備的分離,從而更加方便使用。下面以TC9012-p.htm" target="_blank" title="TC9012貨源和PDF資料">TC9012編碼芯片的遙控器為例。談談如何用常用的51系統(tǒng)單片機進行遙控的解碼。

一、編碼格式

1、0和1的編碼

遙控器發(fā)射的信號由一串O和1的二進制代碼組成.不同的芯片對0和1的編碼有所不同。通常有曼徹斯特編碼和脈沖寬度編碼。TC9012-p.htm" target="_blank" title="TC9012貨源和PDF資料">TC9012的O和1采用PWM方法編碼,即脈沖寬度調(diào)制,其O碼和1碼如圖1所示(以遙控接收輸出的波形為例)。O碼由O.56ms低電平和0.56ms高電平組合而成.脈沖寬度為1.12ms.1碼由0.56ms低電平和1.69ms高電平組合而成.脈沖寬度為2.25ms。在編寫解碼程序時.通過判斷脈沖的寬度,即可得到0或1。

2、按鍵的編碼

當我們按下遙控器的按鍵時,遙控器將發(fā)出如圖2的一串二進制代碼,我們稱它為一幀數(shù)據(jù)。根據(jù)各部分的功能。可將它們分為5部分,分別為引導碼、地址碼、地址碼、數(shù)據(jù)碼、數(shù)據(jù)反碼。遙控器發(fā)射代碼時.均是低位在前。高位在后。由圖2分析可以得到.引導碼高電平為4.5ms,低電平為4.5ms。當

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

二、單片機遙控接收電路

紅外遙控接收可采用較早的紅外接收二極管加專用的紅外處理電路的方法。如CXA20106,此種方法電路復雜,現(xiàn)在一般不采用。較好的接收方法是用一體化紅外接收頭,它將紅外接收二極管、放大、解調(diào)、整形等電路做在一起,只有三個引腳.分別是+5V電源、地、信號輸出。常用的一體化接收頭的外形及引腳見圖3和圖4。紅外接收頭的信號輸

出接單片機的INTO或INTl腳.典型電路如圖5所示.圖中增加了一只PNP型三極管對輸出信號進行放大。

三、遙控信號的解碼算法及程序編制

平時。遙控器無鍵按下。紅外發(fā)射二極管不發(fā)出信號,遙控接收頭輸出信號1。有鍵按下時.O和1編碼的高電平經(jīng)遙控頭倒相后會輸出信號O.由于與單片機的中斷腳相連,將會引起單片機中斷(單片機預先設定為下降沿產(chǎn)生中斷)。單片機在中斷時使用定時器0或定時器1開始計時.到下一個脈沖到來時,即再次產(chǎn)生中斷時,先將計時值取出。清零計時值后再開始計時.通過判斷每次中斷與上一次中斷之間的時間間隔。便可知接收到的是引導碼還是 O和1。如果計時值為9ms。接收到的是引導碼,如果計時值等于1.12ms,接收到的是編碼O。如果計時值等于2 25ms.接收到的是編碼1。在判斷時間時,應考慮一定的誤差值。因為不同的遙控器由于晶振參數(shù)等原因,發(fā)射及接收到的時間也會有很小的誤差。

以接收TC9012-p.htm" target="_blank" title="TC9012貨源和PDF資料">TC9012遙控器編碼為例,解碼方法如下:

(1)設外部中斷0(或者1)為下降沿中斷,定時器0(或者1)為16位計時器.初始值均為O。

(2)第一次進入遙控中斷后,開始計時。

(3)從第二次進入遙控中斷起,先停止計時。并將計時值保存后,再重新計時。如果計時值等于前導碼的時間,設立前導碼標志。準備接收下面的一幀遙控數(shù)據(jù),如果計時值不等于前導碼的時間,但前面已接收到前導碼,則判斷是遙控數(shù)據(jù)的O還是1。

(4)繼續(xù)接收下面的地址碼、數(shù)據(jù)碼、數(shù)據(jù)反碼。

(5)當接收到32位數(shù)據(jù)時,說明一幀數(shù)據(jù)接收完畢。此時可停止定時器的計時,并判斷本次接收是否有效.如果兩次地址碼相同且等于本系統(tǒng)的地址,數(shù)據(jù)碼與數(shù)據(jù)反碼之和等于0FFH,則接收的本幀數(shù)據(jù)碼有效。否則丟棄本次接收到的數(shù)據(jù)。

(6)接收完畢,初始化本次接收的數(shù)據(jù),準備下一次遙控接收。

示例程序如下: E1INT:

PUSHACC

PUSH PSW

CLRTR1

MOV RM?TLEN,TH1 、

MOVTH1,#00H

MOV TL1,#00H

SETBTR1

MOV A,RMJLEN

JNZ LBL?RM?DAT?BIT

MOV RM?ADDR.#00H

MOV RM?RADDR,#00H

MOV RM?DAT,#00H

MOV RM?RDAT,#00H

MOV RM?BIT_CNT,#00H

CLR RM?OK

CLR RM?GUIDE

POPPSW

POPACC

RET1 I BI RM DAT BIT:

MOV A,RM_TLEN

CJNE A,#23H,LBL?RM_ADDR_DAT

SETB RM?GUIDE

SJMP LBLE1 INT-RET

LBLRM_ADDR_DAT;

JNB RM?GUIDE,LBL?RM?ERROR

CJNE A,#04H,LBL_RM_ONE

CLR C

SJMP LBL_RM?SHIFT

LBLRM?ONE:

CJNE A。#08H。LBL?RM?ERROR

SETB C

LBL_RM_SHIFT:

MOV A,RM?RDAT

RRC A

MOV RM?RDAT.A

MOV A,RM?DAT

RRC A

MOV RM?DAT,A

MOV A,RM?RADDR

RRC A

MOV RM RADDR.A

MOV A。RM?-ADDR

RRC A

MOV RM?.ADDR.A

LBL?RM?END:

INC RM?BIT?CNT

MOV A,RM_BIT_CNT

CJNE A,#32,LBLE1 INT_RET

CLRTR1

MOV TH1,#00H

MOVTL1,#00H

MOV HOUR.RM?ADDR

MOV MINUTE,RM?DAT

MOV RM?_ADDR,#00H

MOV RM?RADDR,#00H

MOV RM?DAT,#00H

MOV RM?RDAT,#00H

MOV RM一8IT_CNT,#00H

CLR RM?GUIDE

SEITB RM?OK

SJMP LBL?E1 INT?RET LBL?RM?ERROR:

CLRTR1

MOV TH1,#0OH

MOVTL1,#00H

MOV RM?_ADDR,#00H

MOV RM?RADDR,#00H

MOV RM?DAT,#00H

MOV RM?RDAT,#00H

MOV RM?B1T?CNT,#00H

CLR RM?GUIDE

LBL?E1 INT?RET:

POPPSW

POPACC

RETI

四、遙控代碼與鍵盤碼的轉(zhuǎn)換

在應用系統(tǒng)中,帶遙控器的儀器設備一般都帶按鍵。而且二者功能相同。將遙控鍵值轉(zhuǎn)換成標準的按鍵值后。遙控按鍵散轉(zhuǎn)表格可以與鍵盤散轉(zhuǎn)表格復用。轉(zhuǎn)換方法可用查表法。通過查表。使遙控的按鍵值轉(zhuǎn)換成本機鍵盤的值。這樣既可以使用按鍵操作,也可以使用遙控操作,而且相應的處理程序非常簡單。

以上以Tc9012編碼格式為例,說明了解碼的原理與方法。只要注意一幀數(shù)據(jù)的格式及引導碼、O碼和1碼的時間長度.其它編碼芯片如 HT6121、M50560、LC7461等也非常容易解碼。

 

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉