AT89S51製作紅外電視遙控器

2021-08-13 19:52:30 字數 2212 閱讀 6012

一般紅外電視遙控器的輸出都是用編碼後序列資料對38~40khz的方波進行脈衝幅度調製而產生的。

當發射器按鍵按下後,即有遙控碼發出,所按的鍵不同遙控編碼也不同。這種遙控碼具有以下特徵:

採用脈寬調變的序列碼,以脈寬為0.565ms、間隔0.56ms、週期為1.

125ms的組合表示二進位制的「0」;以脈寬為0.565ms、間隔1.685ms、週期為2.

25ms的組合表示二進位制的「1」。

上述「0」和「1」組成的32位二進位製碼經38khz的載頻進行二次調製,然後再通過紅外發射二極體產生紅外線向空間發射。一般電視遙控器的遙控編碼是連續的32位二進位製碼組,其中前16位為使用者識別碼,能區別不同的紅外遙控裝置,防止不同機種遙控碼互相干擾。後16位為8位的操作碼和8位的操作反碼,用於核對資料是否接收準確。

根據紅外編碼的格式,傳送資料前需要先傳送9ms的起始碼和4.5ms的結果碼。

遙控序列資料編碼波形如下圖所示:

接收方一般使用tl0038一體化紅外線接收器進行接收解碼,當tl0038接收到38khz紅外訊號時,輸出端輸出低電平,否則為高電平。所以紅外遙控器傳送紅外訊號時,參考上面遙控序列資料編碼波形圖,在低電平處傳送38khz紅外訊號,高電平處則不傳送紅外訊號。

微控制器紅外電視遙控器電路圖如下:

c51程式**:

#include

static bit op; //紅外發射管的亮滅

static unsigned int count; //延時計數器

static unsigned int endcount; //終止延時計數

static unsigned char flag; //紅外傳送標誌

char iraddr1; //十六位位址的第乙個位元組

char iraddr2; //十六位位址的第二個位元組

void sendirdata(char p_irdata);

void delay();

void main(void)

while(1);

} //定時器0中斷處理

void timeint(void) interrupt 1

else

p3_4 = op;

} void sendirdata(char p_irdata)

while(count

//傳送4.5ms的結果碼

endcount=117

flag=0;

count=0;

do{}while(count

//傳送十六位位址的前八位

irdata=iraddr1;

for(i=0;i<8;i++)

while(count//停止傳送紅外訊號(即編碼中的高電平)

if(irdata-(irdata/2)*2) //判斷二進位制數個位為1還是0

else

flag=0;

count=0;

do{}while(count

irdata=irdata>>1;

} //傳送十六位位址的後八位

irdata=iraddr2;

for(i=0;i<8;i++)

while(count

if(irdata-(irdata/2)*2)

else

flag=0;

count=0;

do{}while(count

irdata=irdata>>1;

} //傳送八位資料

irdata=p_irdata;

for(i=0;i<8;i++)

while(count

if(irdata-(irdata/2)*2)

else

flag=0;

count=0;

do{}while(count

irdata=irdata>>1;

} //傳送八位資料的反碼

irdata=~p_irdata;

for(i=0;i<8;i++)

while(count

if(irdata-(irdata/2)*2)

else

flag=0;

count=0;

do{}while(count

irdata=irdata>>1;

} endcount=10;

flag=1;

count=0;

do{}while(count flag=0;

}void delay() }}

AT89S51微控制器實驗一報告

1.假定外ram 1000h單元的內容為80h,a的內容為60h,執行下列指令序列後,累加器a的內容為 80h mov dptr,1000h movx a,dptr 2 執行下列指令序列後,累加器a的內容為 68h mov a,03h movc a,a pc db 20h,23h,26h,68h,8...

AT89S51微控制器廣告燈電路的設計

1 實驗任務 做單一燈的左移右移,硬體電路如圖4.4.1所示,八個發光二極體l1 l8分別接在微控制器的p1.0 p1.7介面上,輸出 0 時,發光二極體亮,開始時p1.0 p1.1 p1.2 p1.3 p1.7 p1.6 p1.0亮,重複迴圈。2 電路原理圖 圖4.4.1 3 系統板上硬體連線 把...

基於AT89S51微控制器數字頻率計的設計

55目錄 第八章 protel原理圖pcb板圖 一緒論 本次課題設計的主要任務是製作乙個微控制器數字頻率計進行頻率的自動測量並用數碼管顯示被測訊號的頻率,測頻範圍為1hz 500khz。我的設計的思路是這樣的,採用的是晶振為12mhz的at89s51微控制器,首先利用該微控制器的定時器 計數器t0作...