基於51微控制器 的紅外遙控解碼設計

2021-07-24 09:19:36 字數 2197 閱讀 1208

紅外線遙控在生活中有著廣泛的應用,比如空調,電視,音響,機頂盒等。紅外線遙控實際上就是一種通訊方法,利用led發射紅外線,接收器接收到資料,進行處理後就可以得到傳送端的訊號。利用乙個簡單的紅外線發光二極體,我們可以製作萬能遙控器。眾所周知,電視機的遙控不能控制空調,甚至不同的電視機遙控只能控制自己的電視。這是因為紅外遙控都遵循了乙個協議,從而保證穩定和可靠。最常見的是日本的nec晶元下的協議。在該協議下,紅外訊號以38khz的紅外波作為載波訊號,以9ms的高電平和4.5毫秒的低電平作為引導碼,然後是8位客戶碼1,8位客戶碼2,8位操作碼,8位操作反碼(如圖)。​

這些訊號的作用分別如下:客戶碼1、2:用於區分不同的裝置,比如不同品牌的電視遙控之間有著不同的客戶碼,因而可以相互識別,不至於產生干擾。操作碼:包含了遙控正在所要傳輸的操作資訊;操作碼反碼就是操作碼取反後的資料,作用在與對操作碼進行校驗,收到訊號後對操作碼和操作碼反碼進行比較,如果發現差異,這說明資料傳輸過程中出現了干擾,這次接收就要忽略。

接收的原理是採用光敏二極體,受紅外線照射產生電訊號。實際中使用紅外一體化接收頭,只能選擇性接收38khz的紅外訊號,增加了抗干擾的能力,其內部有增益電路和濾波電路,直接輸出高低電平。需要注意的是接收頭輸出的訊號和發射訊號反相了。如下圖所示:

可以看到,接收到的訊號無論是0還是1,都首先是乙個下降沿,只不過是間隔的時間不同罷了,因此,我們可以將接受頭接到p3.2口,用中斷的方法得到每個位,記錄下間隔時間,再寫程式判斷是0還是1即可。

nec協議下的編碼訊號,然後在數碼管上顯示出來。

我們的思路是首先識別引導碼,確認接下來是乙個發射的訊號後將4個8位訊號(共32位)儲存起來。這可以利用中斷來實現,實際上記錄的是中斷間隔時間(用計時器週期來表示)在void int0 () interrupt 0中定義了陣列bitnum,儲存乙個引導碼和32位訊號資料。

然後通過中斷時間的判斷,得知是0還是1。這一部分在void irpros(void)中實現。將處理後的結果放到ircode裡去。

第三步:將ircode裡的資料轉化為16進製制,便於在數碼管上顯示。

配套數碼管顯示函式,將以上幾步用main函式串起來就實現了紅外編碼的獲取。

最終效果​

#include#define uchar unsigned char

#define uint unsigned int

sbit ir=p3^2;

sbit beep=p2^3;

uchar irtime;

uchar irdata[33];

uchar bitnum;

uchar startflag;

uchar irok;

uchar ircode[4];

uchar irprosok;

uchar disnum[8]=;

sbit dula=p2^6;

sbit wela=p2^7;

uchar code table_du=;

uchar code table_we=;

void timer0init(void) //256*(1/12m)*12=0.256ms

void irpros(void) // 紅外碼值處理

k++;

} ircode[j]=mun;

} irprosok=1;

}void irwork(void) // 紅外碼值轉換

delay(uchar x)

display()

}void int0init(void)

void main()

if(irprosok==1)

// display();

} }void int0 () interrupt 0 //中斷服務

irdata[bitnum]=irtime;

irtime=0;

bitnum++;

if(bitnum==33)

}else }

void timer0 () interrupt 1

現在,離製作萬能遙控只有一步之遙了,只需要把得到的編碼用二極體輸出就大功告成。

附獲取編碼的全部**

—————————————————————————————————————

51微控制器 紅外遙控解碼

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

51微控制器 紅外遙控

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

51微控制器 紅外解碼

nec協議的資料格式包括 引導碼 使用者碼 使用者碼 使用者反碼 按鍵碼 按鍵碼 按鍵反碼 最後乙個停止位。停止位只要起隔離作用,一般不進行判斷,程式中可以不予理會。資料編碼共4個位元組32位,分別為 使用者碼 使用者碼 使用者反碼 按鍵碼 按鍵碼 按鍵反碼 具體是原始碼還是反碼由生產商決定,反碼可...