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