娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

首頁 > 微機單片機 >單片機制作 > 用單片機解碼紅外遙控器

用單片機解碼紅外遙控器

來源:互聯(lián)網(wǎng)發(fā)布者:三月小雨 更新時間: 2013/07/30

用單片機解碼紅外遙控器 遙控器使用方便,功能多.目前已廣泛應用在電視機、VCD、DVD、空調(diào)等各種家用電器中,且價格便宜,市場上非常容易買到。如果能將遙控器上許多的按鍵解碼出來.用作單片機系統(tǒng)的輸入.則解決了常規(guī)矩陣鍵盤線路板過大、布線復雜、占用I/O口過多的弊病。而且通過使用遙控器,操作時可實現(xiàn)人與設備的分離,從而更加方便使用。下面以TC9012編碼芯片的遙控器為例。談談如何用常用的51系統(tǒng)單片機進行遙控的解碼。 一、編碼格式 1、0和1的編碼 遙控器發(fā)射的信號由一串O和1的二進制代碼組成.不同的芯片對0和1的編碼有所不同。通常有曼徹斯特編碼和脈沖寬度編碼。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ù)反碼之間的關系不滿足相反的關系.則本次遙控接收有誤.數(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遙控器編碼為例,解碼方法如下: (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ù)接收完畢。此時可停止定時器的計時,并判斷本次接收是否有效.如果兩次地址
提問/討論

這里還沒有內(nèi)容,您有什么問題嗎?

我要提問/討論

推薦帖子 最新更新時間:2025-04-08 19:30

我項目中都用的是UCOS,需求又改了,不要操作系統(tǒng),怎么把UCOS改成裸機跑
我項目中都用的是UCOS,需求又改了,不要操作系統(tǒng),怎么把UCOS改成裸機跑,單片機NXP1788 我項目中都用的是UCOS,需求又改了,不要操作系統(tǒng),怎么把UCOS改成裸機跑 為什么要改呢? 就是啊,能開摩托車,干嘛要棄之去騎自行車 難道UCOS不實用??????? 很簡單,
 陽光守望者NXP MCU
煉獄傳奇-if_else與case之戰(zhàn)
Verilog HDL 語言中存在兩種分支語言: ● if-else 條件分支語句 ● case 分支控制語句 1. if-else 條件分支語句 if-else 條件分支語句的作用是根據(jù)指定的判斷條件是否滿足來確定下一步要執(zhí)行的操作。它在使用時可以采用如
 夢翼師兄FPGA/CPLD
求,初學stm32方法
如題 求,初學stm32方法 劉凱的stm32視頻 先過一遍理論 那用不用得著買板??? wxj199999 發(fā)表于 2015-2-1 15:50 那用不用得著買板??? 最好是買板,不然都是紙上談兵,, 實踐最重要 若有51基礎,看看青風教學,不錯喔! 板子隨
 wxj199999stm32/stm8
出MSP430FR5969一塊
如題,參加完金剛狼活動后,該板子暫時沒有使用的場合,1元出MSP430FR5969一塊。那啥,不包郵啊。不過有個前提,也得承諾做個什么東西發(fā)在論壇上才行,可別浪費了這么好的板子啊。記得當年學單片機的時候那一路坎坷啊,希望這板子能在新手手里發(fā)光發(fā)熱。 板子如下: 那些已經(jīng)申請到了
 lonerzf淘e淘
OpenCL相關資料分享
OpenCL相關資料分享 前輩怎么搞這個了。。。 我之前借過OpenCL編程指南,看了個開頭就覺得這東西我暫時用不上。 哈哈,控制幾個led和按鍵的話,確實用不上,不過要是搞搞復雜的圖像處理,希望邏輯開發(fā)容易點,這個還是有相當?shù)谋匾?我啊 只是貢獻點資料 我也不搞這
 chenzhuflyFPGA/CPLD
常用C算法共享
共享C算法大全,如下: 常用C算法共享 謝謝樓主共享,學習了 無罪之賓 發(fā)表于 2015-1-27 22:40 謝謝樓主共享,學習了 恩恩,這個值得學習........ 果斷mark 支持 留著備用還不錯…… 謝謝…… 多謝樓主 defence
 liuwanlihao1stm32/stm8

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

About Us 關于我們 客戶服務 聯(lián)系方式 器件索引 網(wǎng)站地圖 最新更新 手機版 版權聲明

EEWORLD 電路圖 站點相關: 下載中心 Datasheet 參考設計

北京市海淀區(qū)中關村大街18號B座15層1530室 電話:(010)82350740 郵編:100190

電子工程世界版權所有 京B2-20211791 京ICP備10001474號-1 電信業(yè)務審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 阿拉尔市| 温州市| 孙吴县| 泸溪县| 栾川县| 泗洪县| 阿拉善盟| 陇川县| 台前县| 凉山| 黎川县| 桓仁| 旌德县| 峨眉山市| 兴和县| 安义县| 梁平县| 蓝田县| 乌拉特前旗| 政和县| 独山县| 霍城县| 兰考县| 新津县| 临沧市| 萨嘎县| 隆德县| 准格尔旗| 铜陵市| 泗水县| 东兰县| 思茅市| 潜江市| 凤凰县| 庆元县| 鸡东县| 正镶白旗| 盐池县| 衡阳市| 东乡县| 乐亭县|