51微控制器 紅外解碼

2022-07-07 02:18:14 字數 1472 閱讀 8500

​ nec協議的資料格式包括:引導碼、使用者碼、使用者碼(使用者反碼)、按鍵碼、按鍵碼(按鍵反碼)、最後乙個停止位。停止位只要起隔離作用,一般不進行判斷,程式中可以不予理會。

​ 資料編碼共4個位元組32位,分別為:使用者碼、使用者碼(使用者反碼)、按鍵碼、按鍵碼(按鍵反碼)(具體是原始碼還是反碼由生產商決定,反碼可用於對資料糾錯)

解碼:(其中載波為低電平,空閒為高電平)

​ 引導碼:9ms載波+4.5ms的空閒訊號時間為:13.5ms

​ 位元值 「0」:560us的載波+560us的空閒訊號時間為:1.12ms

​ 位元值 「1」:560us的載波+1.68ms的空閒訊號時間為:2.24ms

//定時器0初始化

void init_timer0()

void timer0_break() interrupt 1

​ 紅外置收頭接微控制器的p3^2引腳(即外部中斷0),配置外部中斷為下降沿觸發方式,在中斷函式中將下降沿的時間進行記錄,存到陣列中以便對碼值進行判斷。

//外部中斷0配置

void init_ext0()

//中斷處理

void ex0_break() interrupt 0

} else

}

​ 電訊號時間記錄後,我們對記錄到的時間進行處理。其中,引導碼我們不予處理,主要處理4位資料編碼,將其轉換為對應的二進位制編碼。

//將接收到的時間轉換為電平訊號

void ir_single_trun()

ir_code[i] = value;//將處理完的值存進碼值陣列

value = 0;

} ir_turn = 1;//鍵值轉換完畢

}

​ 最後,我們將解碼到的碼值與編碼值進行比較,判斷出對應的操作。

​ 我的紅外遙控器編碼值為:

//數碼管顯示處理	dataport為p0口巨集定義

void led_view()

ir_turn = 0;//處理完成置0,以便下一次鍵值轉換處理

}

​ 最後在主函式中對各個函式進行呼叫。

//主函式

void main()

if(ir_turn)}}

51微控制器 紅外遙控解碼

ir infrared radiation 通用紅外遙控系統由發射和接受兩大部分組成,應用編 解碼專用積體電路晶元來進行控制操作。發射部分包括鍵盤矩陣,編碼調製,led紅外線發射。接受部分包括光,電轉化放大器,解調,解碼電路。接收電路可以使用一種集紅外線接受和放大於一體的一體化紅外置收器,不需要任何...

51微控制器 紅外遙控

紅外遙控系統主要由紅外發射裝置和紅外置收裝置構成。紅外發射裝置主要由鍵盤電路 紅外編碼晶元 電源和紅外發射電路組成 比如遙控器 如圖 紅外置收裝置主要由紅外置收電路 紅外解碼晶元 電源和應用電路組成,在微控制器開發板上有紅外置收電路,而且微控制器充當解碼晶元。人的眼睛能看到的可見光按波長從長到短排列...

51微控制器紅外通訊

本文是武漢市海聯天下物聯網 技術團隊內部學習筆記,將詳細講解紅外遙控的基本原理以及51微控制器如何利用外部中斷和定時器0對紅外訊號進行解碼。技術部 張傲 使用紅外遙控器對準hl stc51開發板紅外置收頭,按下不同的按鍵,在開發板數碼管上將顯示對應按鍵的數字。8位位址碼,8位命令碼 完整發射兩次位址...