導航:首頁 > 操作系統 > 單片機紅外解碼原理

單片機紅外解碼原理

發布時間:2024-12-20 16:55:37

① 求單片機紅外遙控解碼識別長按和短按鍵的C語言例子

以NEC格式為例:
按鍵一次: 依次發送 引導碼 + 地址 + 地址取反 + 數據 + 數據取反

長按鍵: 隔110ms左右發一次引導碼(重復),並不帶任何數據(全部為高電平)

所以根據這個特點可以識別長按鍵:
程序接收一幀數據後,提取出地址和數據,然後判斷
......
//有地址和數據的,為一次按鍵
.....
//地址和數據為空的,為重復按鍵
if((ir_addr_code==0xffff)&&(ir_origin_data==0xff)&&(ir_data==0xff))
{
repeat=1;
key= last_key;

}

② 單片機如何紅外遙控解碼

用單片機的中斷 測試低電平,載波是0.14ms,判斷低電平時幾個0.14ms,就能測出紅外線的碼值

③ 單片機控制紅外遙控編碼解碼中定時器和外部中斷的作用是什麼紅外遙控編碼解碼的大致步驟是什麼

同時使用上定時器 跟 外中斷 的紅外程序,只有解碼程序。而且該方式,只能解析 使用不同時間長度代表數據「0」、「1」 的波形(如數據『1』的時間長度 2倍於數據『0』的時間)。
解析原理:外部中斷接 紅外輸入,當有 紅外信號的時候,該引腳會有波形輸入(N多下降沿),觸發外部中斷,通過記錄 每2次中斷的時間間隔,可以判斷此段時間對應的數據(0/1)。一般「數據」長度為32位數據

注意點:
①初次產生外中斷的時候,並無 時間記錄,不需要進行時間判斷;
②第二次中斷與第一次中斷 之間 的時間,是 紅外的引導碼,該時間一般多倍於數據時間(一般為ms級時間);
③第三次中斷與第二次中斷的時間,即為 第一個數據 的時間;
④第34次中斷與第33次中斷的時間間隔,即為 第32個數據的時間;
⑤後面 可能存在 停止位,是否存在,由遙控器決定;不過,一般都直接忽略該位,除非該位是由自己製作的遙控器 發出 的校驗位;
⑥後面 可能存在 連發碼,是否存在,由遙控器決定;
另外:一般紅外數據的每個位元組都是LSB在前,MSB在後的( 低位先發,高位後發)

軟體要處理以下情況:
①干擾的處理,有些紅外接收頭不僅僅對38KHz頻率光有反應,可能對人體紅外、日光燈紅外一樣有反應,那就存在干擾。如果它只產生一次干擾,就會使系統卡在引導碼接收階段;
②引導碼時間過短、過長 的處理;
③接收數據位數不足的處理;
④完成32位數據接收後,處理接收爛尾:後面不會有中斷(如果需接收停止位、連發碼,就增加對應數據長度),需要停止計時。
⑤進行數據校對,一般第一位元組跟第二位元組互為反碼,第三位元組跟第四位元組互為反碼,而且第一位元組 代表 一個地址、一個密碼,只有地址、密碼正確,才能算合法的操作。

④ 誰能幫我解釋一下這個有關51單片機的紅外解碼的部分程序

那個N大於30是因為已經超出了0和1代表的時間長度。0和1所代表的高低電平時間不一樣。當高電平時長超過n=8時,代表1否則代表0.這個是和你紅外設置的0,1代表時間長度有關系,請問你有時序圖嗎??那就一目瞭然了

閱讀全文

與單片機紅外解碼原理相關的資料

熱點內容
760貼片機編程視頻 瀏覽:333
歐姆龍plc編程第36講 瀏覽:915
我的世界如何將一個伺服器弄崩 瀏覽:8
php網站訪問量代碼 瀏覽:431
怠速壓縮機咔咔響 瀏覽:176
怎麼才能修改APP中的數據 瀏覽:688
哪裡有搶單的app 瀏覽:462
演算法概率題 瀏覽:465
長方形拉伸的命令 瀏覽:279
python代碼函數編程技術 瀏覽:194
java正則式 瀏覽:429
外包程序員好進嗎 瀏覽:384
雲伺服器服務模型架構 瀏覽:901
刪文件夾什麼指令 瀏覽:509
極速抖音已加密怎麼辦 瀏覽:603
matlab拉格朗日演算法框圖 瀏覽:430
華為公司計算機視覺演算法顧問 瀏覽:254
夏老師講的單片機 瀏覽:298
在編程中如何將圖片放大 瀏覽:163
appstore怎麼看是否付費 瀏覽:603