AVR學習筆記--紅外遙控接收器使用
[1]指令格式:前導碼 + 地址碼 + 地址碼反碼 + 數據 + 數據碼反碼
本文引用地址:http://cqxgywz.com/article/201611/320163.htm[2]指令編碼:脈寬調制編碼
[3]識別算法:每兩次信號的下降沿表示1位數據,根據兩次下降沿之間的間隔時間,就可以判斷出是前導碼,還是數據1或數據0。

注意:[1]雖然0和1的占用時間長度不同,但因為同時其反碼的存在,所以整條指令的總長度是固定的。
[4]硬件電路:

[5]編程流程:
- 一體化紅外接收頭的輸出腳接到外部硬件中斷I/O上,并設置成下降沿觸發。
- CPU上電,初始化定時器,初值為0。
- 每次觸發中斷,停止定時器,讀取定時器值,判斷定時器值,9ms表示前導碼,2.25ms表示1,1.12ms表示0。送入數據緩沖,并對數據隊列計數,初始化定時器,重新計時。
- 判斷數據隊列長度,除前導碼外,接收到32位數據,表示指令接受完成。
- 指令校驗,就是將數據和數據反碼,地址和地址反碼做加法處理,如果得到的結果是0xFF,表示校驗通過,否則,校驗失敗,丟棄數據。
- 指令解讀,根據規則解讀。
[6]實例代碼:
等待補充


評論