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

單片機紅外解碼原理

發布時間: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代表時間長度有關系,請問你有時序圖嗎??那就一目瞭然了

閱讀全文

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

熱點內容
android手機電腦同步 瀏覽:287
簡明python教程書在線觀看 瀏覽:742
理想論壇多空出擊指標源碼 瀏覽:685
擴散更新演算法 瀏覽:557
當代大學德語pdf 瀏覽:506
打程序員代碼被暴打 瀏覽:390
怎麼看手機支持mrp和app 瀏覽:466
python爬取百度貼吧信息 瀏覽:635
手機怎麼連好輕app 瀏覽:399
真實賽車3安卓如何登錄 瀏覽:733
解壓壓縮包要誰的密碼 瀏覽:746
微信看漲跌源碼 瀏覽:70
android全局service 瀏覽:291
飛豬app關注怎麼取消 瀏覽:437
snmp4j源碼 瀏覽:247
如何利用肉雞搭建ftp伺服器 瀏覽:454
用戶名已加密怎麼辦 瀏覽:140
js怎麼樣上傳到文件到伺服器地址 瀏覽:581
省錢吖app裡面的錢怎麼套出來 瀏覽:596
ove轉pdf 瀏覽:309