新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于AT89C51單片機的紅外遙控器解碼器的設計

        基于AT89C51單片機的紅外遙控器解碼器的設計

        作者: 時間:2016-11-18 來源:網絡 收藏
         1 紅外線遙控信號發送器電路 TC9012F的遙控信號

          TC9012F為4位專用微控制器,其內部振蕩電路的振蕩頻率fosc典型值為455 kHz。當不按下操作鍵時,其內部455 kHz的時鐘振蕩器停止工作,以減少電池消耗。內部分頻電路將振蕩頻率,fosc進行12分頻后,變成頻率fc=37.9 kHz,占空比為1/3的脈沖載波信號。 紅外遙控信號發送器電路由集成電路TC9012F、鍵盤矩陣電路、驅動器和紅外發光二極管組成,遙控信號為37.9 kHz的脈沖載波被遙控編碼脈沖調制的已調波,如圖1所示。

        本文引用地址:http://www.104case.com/article/201611/315795.htm

          遙控編碼脈沖由引導碼、用戶碼、功能碼和功能碼的相反碼組成,用戶碼是同一組碼發送兩次,如圖2所示。用戶碼為8位,所以整個脈沖碼為32位。引導碼作為接收數據的準備脈沖,他由8TCP(4.5 ms)的高電平和8TCP(4.5 ms)的低電平組成。用戶碼和功能碼采用脈沖位置調制(PPM)方式編碼,根據脈沖之間的時間間隔來區分碼值的"0"或"1"。對應于二進制數字信號的"0"或"1",脈沖時間間隔分別為2TCP(1.125 ms)和4TCP(2.25 ms),而每一脈沖的寬度仍不變,均為TCP(0.562 6 ms)。由于用戶碼發送兩次,功能碼與其相反碼一起發送,因此系統的誤動作很少。

          本遙控器采用第一次發送的遙控信號的編碼脈沖(圖3所示)和第二、第三次連續發送的遙控信號的編碼脈沖(圖4所示)不同的工作方式。這樣,當按鍵一直按著的時候,從第二次連續發送開始,只發送引導碼和用戶碼第一位SO的相反碼SO,因此可減少接收處理時間和紅外發光二極管功耗,遙控編碼脈沖經脈沖載波調制后由TC9021F的第腳輸出,再經激勵器驅動紅外發光二極管,發送出波長為940nm的脈沖紅外光。假設用戶碼為十六進制的76H則第一次發送的遙控信號的編碼脈沖如圖3所示。



         由圖2和圖3可以看出,遙控編碼脈沖波形的輸出時間為192TCP或224TCP,α為用戶碼(8位)的輸出時間。當α≥26TCP時,遙控編碼脈沖波形輸出時間為224TCP.另外,對于連續發送的編碼脈沖中用戶碼第一位的相反碼的脈沖間隔時間,當SO="1"時,則SO="0",該時間為2TCP,當SO="0"時,則SO="1",該時間為4TCP.2解碼器硬件設計

          解碼器硬件以AT89C51單片機為核心,如圖5所示,圖中只給出接收紅外遙控信號的部分電路。紅外遙控信號經過紅外接收模塊接收后,解調為遙控信號的編碼脈沖由輸出端A輸出,其波形如圖3和圖4所示,此信號經過反相器74LS04輸出到AT89C51的外部中斷INT0輸入端.單片機通過運行程序對紅外遙控器TC9021所發出的編碼脈沖進行接收和譯碼。



         3單片機程序設計

          單片機程序主要解決的問題就是如何對接收到的9021型紅外遙控器所發射的信號進行解碼,編碼脈沖信號是由引導碼、用戶碼、和功能碼等部分組成,我們只對獲取其功能碼過程進行分析。在單片機設置中,將單片機AT89C51內部定時器/計數器T0設為定時方式1,定時時間為1 ms;設外部中斷INT0為下降沿中斷觸發方式,由于在接收時將編碼脈沖信號進行反相,因此,每當INT0外管腳信號下降沿到來時,外部中斷INT0發生中斷,啟動定時器T0,定時器每次中斷定時時間為1 ms并累加到定時計數器中,在下一次外部中斷INT0發生中斷時讀取定時計數器中的時間,通過對兩個脈沖之間的定時時間的分析來對遙控器功能碼進行解碼。圖6、圖7和圖8分別給出解碼器主程序、定時器T0中斷程序和外部中斷INT0中斷程序的流程圖。



         4結 語

          生產即時顯示系統面向生產現場,對生產效率進行量化管理,目前在發達國家和國內一些外資企業已經得到廣泛的應用。他通過即時顯示生產中的定額任務量、生產目標以及當前時刻實際完成的生產數量,可以使生產情況一目了然,提高了生產效率。此顯示系統一般都安放在生產線上方,工作人員需要經常對顯示系統進行操作,設定和修改數據,用紅外遙控器對生產即時顯示系統進行不接觸的參數設定,可以使操作靈活方便,抗干擾強。



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 方城县| 三明市| 涿州市| 上饶市| 华容县| 陈巴尔虎旗| 龙陵县| 且末县| 尉犁县| 六枝特区| 高淳县| 武冈市| 岳普湖县| 成安县| 九台市| 连江县| 磐石市| 丰县| 固安县| 尚志市| 行唐县| 庆云县| 凌源市| 游戏| 广南县| 囊谦县| 景德镇市| 星座| 沅陵县| 盐池县| 青冈县| 砚山县| 尚志市| 陆河县| 陕西省| 承德市| 海盐县| 紫金县| 崇左市| 马山县| 揭阳市|