采用單片機的紅外遙控器解碼器的設(shè)計
TC9012F是一種通用型紅外遙控信號發(fā)送用CMOS大規(guī)模集成電路,適用于電視(TV),磁帶錄像機(VTR),激光唱機等設(shè)備的遙控操作。市場上,以TC9012F為核心的9012型紅外遙控器被廣泛使用且價格便宜。將設(shè)計的基于單片機AT89C51的9012型紅外遙控解碼器應(yīng)用于生產(chǎn)即時顯示系統(tǒng)中,作為參數(shù)設(shè)置和系統(tǒng)控制用紅外遙控器,在實際應(yīng)用中收到了良好效果。
本文引用地址:http://butianyuan.cn/article/171184.htm1 紅外線遙控信號發(fā)送器電路 TC9012F的遙控信號
TC9012F為4位專用微控制器,其內(nèi)部振蕩電路的振蕩頻率fosc典型值為455 kHz。當不按下操作鍵時,其內(nèi)部455 kHz的時鐘振蕩器停止工作,以減少電池消耗。內(nèi)部分頻電路將振蕩頻率,fosc進行12分頻后,變成頻率fc=37.9 kHz,占空比為1/3的脈沖載波信號。 紅外遙控信號發(fā)送器電路由集成電路TC9012F、鍵盤矩陣電路、驅(qū)動器和紅外發(fā)光二極管組成,遙控信號為37.9 kHz的脈沖載波被遙控編碼脈沖調(diào)制的已調(diào)波,如圖1所示。
遙控編碼脈沖由引導(dǎo)碼、用戶碼、功能碼和功能碼的相反碼組成,用戶碼是同一組碼發(fā)送兩次,如圖2所示。用戶碼為8位,所以整個脈沖碼為32位。引導(dǎo)碼作為接收數(shù)據(jù)的準備脈沖,他由8TCP(4.5 ms)的高電平和8TCP(4.5 ms)的低電平組成。用戶碼和功能碼采用脈沖位置調(diào)制(PPM)方式編碼,根據(jù)脈沖之間的時間間隔來區(qū)分碼值的0或1。對應(yīng)于二進制數(shù)字信號的0或1,脈沖時間間隔分別為2TCP(1.125 ms)和4TCP(2.25 ms),而每一脈沖的寬度仍不變,均為TCP(0.562 6 ms)。由于用戶碼發(fā)送兩次,功能碼與其相反碼一起發(fā)送,因此系統(tǒng)的誤動作很少。
本遙控器采用第一次發(fā)送的遙控信號的編碼脈沖(圖3所示)和第二、第三次連續(xù)發(fā)送的遙控信號的編碼脈沖(圖4所示)不同的工作方式。這樣,當按鍵一直按著的時候,從第二次連續(xù)發(fā)送開始,只發(fā)送引導(dǎo)碼和用戶碼第一位SO的相反碼SO,因此可減少接收處理時間和紅外發(fā)光二極管功耗,遙控編碼脈沖經(jīng)脈沖載波調(diào)制后由TC9021F的第腳輸出,再經(jīng)激勵器驅(qū)動紅外發(fā)光二極管,發(fā)送出波長為940nm的脈沖紅外光。假設(shè)用戶碼為十六進制的76H則第一次發(fā)送的遙控信號的編碼脈沖如圖3所示。
由圖2和圖3可以看出,遙控編碼脈沖波形的輸出時間為192TCP或224TCP,α為用戶碼(8位)的輸出時間。當α≥26TCP時,遙控編碼脈沖波形輸出時間為224TCP.另外,對于連續(xù)發(fā)送的編碼脈沖中用戶碼第一位的相反碼的脈沖間隔時間,當SO=1時,則SO=0,該時間為2TCP,當SO=0時,則SO=1,該時間為4TCP.
2解碼器硬件設(shè)計
解碼器硬件以AT89C51單片機為核心,如圖5所示,圖中只給出接收紅外遙控信號的部分電路。紅外遙控信號經(jīng)過紅外接收模塊接收后,解調(diào)為遙控信號的編碼脈沖由輸出端A輸出,其波形如圖3和圖4所示,此信號經(jīng)過反相器74LS04輸出到AT89C51的外部中斷INT0輸入端.單片機通過運行程序?qū)t外遙控器TC9021所發(fā)出的編碼脈沖進行接收和譯碼。
3單片機程序設(shè)計
單片機程序主要解決的問題就是如何對接收到的9021型紅外遙控器所發(fā)射的信號進行解碼,編碼脈沖信號是由引導(dǎo)碼、用戶碼、和功能碼等部分組成,我們只對獲取其功能碼過程進行分析。在單片機設(shè)置中,將單片機AT89C51內(nèi)部定時器/計數(shù)器T0設(shè)為定時方式1,定時時間為1 ms;設(shè)外部中斷INT0為下降沿中斷觸發(fā)方式,由于在接收時將編碼脈沖信號進行反相,因此,每當INT0外管腳信號下降沿到來時,外部中斷INT0發(fā)生中斷,啟動定時器T0,定時器每次中斷定時時間為1 ms并累加到定時計數(shù)器中,在下一次外部中斷INT0發(fā)生中斷時讀取定時計數(shù)器中的時間,通過對兩個脈沖之間的定時時間的分析來對遙控器功能碼進行解碼。圖6、圖7和圖8分別給出解碼器主程序、定時器T0中斷程序和外部中斷INT0中斷程序的流程圖。
評論