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