AVR學(xué)習(xí)筆記--紅外遙控接收器使用
[1]指令格式:前導(dǎo)碼 + 地址碼 + 地址碼反碼 + 數(shù)據(jù) + 數(shù)據(jù)碼反碼
本文引用地址:http://m.butianyuan.cn/article/201611/320163.htm[2]指令編碼:脈寬調(diào)制編碼
[3]識(shí)別算法:每兩次信號(hào)的下降沿表示1位數(shù)據(jù),根據(jù)兩次下降沿之間的間隔時(shí)間,就可以判斷出是前導(dǎo)碼,還是數(shù)據(jù)1或數(shù)據(jù)0。
注意:[1]雖然0和1的占用時(shí)間長度不同,但因?yàn)橥瑫r(shí)其反碼的存在,所以整條指令的總長度是固定的。
[4]硬件電路:
[5]編程流程:
- 一體化紅外接收頭的輸出腳接到外部硬件中斷I/O上,并設(shè)置成下降沿觸發(fā)。
- CPU上電,初始化定時(shí)器,初值為0。
- 每次觸發(fā)中斷,停止定時(shí)器,讀取定時(shí)器值,判斷定時(shí)器值,9ms表示前導(dǎo)碼,2.25ms表示1,1.12ms表示0。送入數(shù)據(jù)緩沖,并對(duì)數(shù)據(jù)隊(duì)列計(jì)數(shù),初始化定時(shí)器,重新計(jì)時(shí)。
- 判斷數(shù)據(jù)隊(duì)列長度,除前導(dǎo)碼外,接收到32位數(shù)據(jù),表示指令接受完成。
- 指令校驗(yàn),就是將數(shù)據(jù)和數(shù)據(jù)反碼,地址和地址反碼做加法處理,如果得到的結(jié)果是0xFF,表示校驗(yàn)通過,否則,校驗(yàn)失敗,丟棄數(shù)據(jù)。
- 指令解讀,根據(jù)規(guī)則解讀。
[6]實(shí)例代碼:
等待補(bǔ)充
評(píng)論