一. 實驗目的 1. 了解紅外遙控編碼并用單片機捕捉信號及解碼 2. 熟悉LCD1602的驅動
二.紅外遙控器編碼 遙控器編碼分好幾種,常見的32位編碼碼和42位編碼碼,目前我手中遙控器就是42位編碼,如圖1所示,當有按鍵時就會產一個9.12ms低電平和4.5ms高電平的起始碼,緊接著是26位系統碼,此系統碼能區別不同的電器設備,防止不同機種遙控碼互相干擾,接下來是8位數據碼和8位數據反碼,間隔23ms的高電平后,再發一個與啟始碼完全一樣的結束碼
以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進制的“0”;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms的組合表示二進制的“1”,其波形如圖2所示。
圖2
再回頭看圖1,大家不難看出,圖1是遙控器按鍵1的一串編碼
三. 硬件連接 接收電咱我們使用一化紅外接紅外接收管3800,不需要任何外接無件,就能完成從紅外線接收到輸出與TTL電平信號兼容的所有工作,實物如圖所示
四. 解碼 以上我們了解了紅外遙控的編碼及硬件連接,現在就對其進行解碼,所謂解碼就是能用單片機把以不同寬度的脈沖區別開來,一種比較好思路就是計算兩次下降沿間隔時間,當單片機外部中斷1口有下降沿時中斷一次,并啟動定時器,定時器定50us,當下次下降沿到來時我們計算定時器中斷的次數,這樣我們就能很好的區分不同寬度的脈沖了。 大家可能已經迫不急待的要開始解碼了,別急,我們先把注意事項先講一下,實際上,我們紅外接收頭收到的信號的是有毛刺的,放大后就如下圖,所以在下降沿中斷觸發后,要做延時去抖處理
************以下是完整解碼程序***************
/********************************************* 用11.0592MHZ晶振 跳線設置:J7的23端插上跳線(實驗完畢千萬計的要拔掉,不然會干擾其他實驗切記!!) 其他默認.
**本程序適合42位碼遙控器,即26位系統碼,16位
數據碼,如:57L5,55K2,54B4,KD-29,55K8,5Z26A,等型號的遙控器
如果想要得到紅外遙控器的波形圖請看 "用51hei開發板制作紅外無線邏輯分析儀"一文介紹了得到和分析紅外的波形的方法 http://www.zg4o1577.cn/bbs/dpj-4524-1.html *********************************************/
點這里下載源代碼和hex文件:
http://www.zg4o1577.cn/ziliao/51hei-5/紅外解碼+1602液晶1.rar
[此貼子已經被作者于2010-7-27 8:29:03編輯過]
|