一種基于單片機的紅外遙控信號解碼新方法

2.2.3 主監控程序中對IRKeyReady標志的處理
在主監控程序中,不斷查詢(xún)IRKeyReady標志。如果標志置位,則在主程序巾進(jìn)入鍵值處理,判斷鍵值的類(lèi)型,以便實(shí)現遙控器按鍵的功能。代碼如下:

2.3 42位編碼
硬件使用57L5彩電遙控器,其內部紅外發(fā)射專(zhuān)用集成電路為T(mén)C7461,采用42位的編碼結構,包含13位用戶(hù)碼、13位用戶(hù)反碼、8位數據碼和8位數據反碼。42位編碼結構如圖6所示。引導碼由9 ms的載波和4.5 ms的載波關(guān)斷波形所構成,作為用戶(hù)碼、數據碼以及它們的反碼的先導。信息位0與1的定義與上述NEC32位格式相同。但是長(cháng)按鍵時(shí),其重復碼的前13.5 ms與引導碼是一樣的,在編程中要特別處理,其重復碼波形如圖7所示。本文引用地址:http://dyxdggzs.com/article/171007.htm
初始化階段與32位的基本類(lèi)似,但由于重復碼的波形和起始碼相同,為了區分清楚,這里引用了狀態(tài)機的方法,添加了狀態(tài)寄存器IR57 L5Satus和計數寄存器IRSysCodeCnt,初始化時(shí)都先清零。以數值0、1、2來(lái)表示3種不同的狀態(tài)。每種狀態(tài)具體的功能如下:
◆為0時(shí)進(jìn)入引導碼或重復碼,然后賦值IR57L5Satus為1。
◆為1時(shí)進(jìn)入26個(gè)系統位階段,為了簡(jiǎn)單起見(jiàn),在這里跳過(guò)它們,并未存儲。賦值IR57L5Satus為2。同時(shí)在這個(gè)狀態(tài),初始化2個(gè)數據存儲寄存器IRCode和IRCode+1。
◆為2時(shí)收數據碼,16位收到后,賦值IR57L5Satus為0。
限于篇幅,這里不列出具體代碼,其中斷子程序軟件流程如圖8所示。
3 調試
在測試程序的過(guò)程中需要示波器與串口調試助手軟件。示波器用于檢測紅外發(fā)射波形是否符合規范。而通過(guò)編寫(xiě)單片機串口程序,并借助于串口調試助手軟件,可以將紅外數據接收單元的信息發(fā)送到PC機上,而后通過(guò)與遙控器說(shuō)明書(shū)比對,以證實(shí)數據碼的準確性。這種紅外解碼方法在本人制作的硬件時(shí)鐘和多溫區控制系統等項目中都有應用,數據接收準確、使用效果良好。
評論