一種基于單片機的紅外遙控信號解碼新方法
了解了各種碼制的區(qū)別后,就可以開始著手寫程序了。紅外解碼程序主要包括了中斷初始化函數(shù)和中斷子函數(shù)兩個部分。另外,由于一體化接收頭輸出信號與發(fā)射波形是反向的,在定時器中記錄的實際是紅外波形中低電平的時間長度。
2.2.1 初始化函數(shù)
在初始化函數(shù)中主要是對中斷1和定時器1的特殊功能寄存器單元進行定義,同時對相關(guān)工作單元進行初始化。初始化代碼如下:
2.2.2 中斷子函數(shù)
中斷子函數(shù)中得到了一體化接收頭高電平的時間寬度,以此來區(qū)分起始碼、信息位和重復(fù)碼。如果是起始碼,就轉(zhuǎn)入初始化處理模塊;如果是信息位則通過右移操作將0、1信息存入定義好的寄存器單元,直到獲得所需的4字節(jié)數(shù)據(jù)為止。注意在子函數(shù)中利用TH1保護ACC和利用ADD來獲得0、1信息位的技巧。
評論