單片機紅外發射原理與設計程序_第1頁
單片機紅外發射原理與設計程序_第2頁
單片機紅外發射原理與設計程序_第3頁
單片機紅外發射原理與設計程序_第4頁
單片機紅外發射原理與設計程序_第5頁
已閱讀5頁,還剩9頁未讀 繼續免費閱讀

付費下載

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

用AT89S51單片機制作紅外電視遙控器一般紅外電視遙控器的輸出都是用編碼后串行數據對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<AT89X51.h>staticbitOP;

//紅外發射管的亮滅

staticunsignedintcount;

//延時計數器

staticunsignedintendcount;//終止延時計數

staticunsignedcharflag;

//紅外發送標志

chariraddr1;

//十六位地址的第一個字節

chariraddr2;

//十六位地址的第二個字節voidSendIRdata(charp_irdata);

voiddelay();voidmain(void)

{

count=0;

flag=0;

OP=0;

P3_4=0;

EA=1;//允許CPU中斷

TMOD=0x11;//設定期器0和1為16位模式1

ET0=1;//定期器0中斷允許

TH0=0xFF;

TL0=0xE6;//設定期值0為38K也就是每隔26us中斷一次

TR0=1;//開始計數

iraddr1=3;

iraddr2=252;

do{

delay();

SendIRdata(12);

}while(1);

}//定期器0中斷解決

voidtimeint(void)interrupt1

{

TH0=0xFF;

TL0=0xE6;//設定期值為38K也就是每隔26us中斷一次

count++;

if(flag==1)

{

OP=~OP;

}

else

{

OP=0;

}

P3_4=OP;

}

voidSendIRdata(charp_irdata)

{

inti;

charirdata=p_irdata;

//發送9ms的起始碼

endcount=223;

flag=1;

count=0;

do{}while(count<endcount);

//發送4.5ms的結果碼

endcount=117

flag=0;

count=0;

do{}while(count<endcount);

//發送十六位地址的前八位

irdata=iraddr1;

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

{

//先發送0.56ms的38KHZ紅外波(即編碼中0.56ms的低電平)

endcount=10;

flag=1;

count=0;

do{}while(count<endcount);//停止發送紅外信號(即編碼中的高電平)

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

//判斷二進制數個位為1還是0

{

endcount=41;

//1為寬的高電平

}

else

{

endcount=15;

//0為窄的高電平

}

flag=0;

count=0;

do{}while(count<endcount);

irdata=irdata>>1;

}

//發送十六位地址的后八位

irdata=iraddr2;

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

{

endcount=10;

flag=1;

count=0;

do{}while(count<endcount);

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

{

endcount=41;

}

else

{

endcount=15;

}

flag=0;

count=0;

do{}while(count<endcount);

irdata=irdata>>1;

}

//發送八位數據

irdata=p_irdata;

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

{

endcount=10;

flag=1;

count=0;

do{}while(count<endcount);

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

{

endcount=41;

}

else

{

endcount=15;

}

flag=0;

count=0;

do{}while(count<endcount);

irdata=irdata>>1;

}

//發送八位數據的反碼

irdata=~p_irdata;

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

{

endcount=10;

flag=1;

count=0;

do{}while(count<endcount);

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

{

endcount=41;

}

else

{

endcount=15;

}

flag=0;

count=0;

do{}while(count<endcount);

irdata=irdata>>1;

}

endcount=10;

flag=1;

count=0;

do{}while(count<endcount);

flag=0;

}voiddelay()

{

inti,j;

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

{

for(j=0;j<100;j++)

{

}

}

}制作的實物如下圖所示:

1、引言紅外通信是目前比較常用的一種無線數據傳輸手段,其具有無污染、信息傳輸穩定、信息安全性高以及安裝使用方便等優點,并且可以在很多場合應用,如家電產品,工業控制、娛樂設施等領域。紅外通信是運用950nm近紅外波段的紅外線作為傳遞信息的載體,通過紅外光在空中的傳播來傳遞信息,由紅外發射器和接受器實現。發射端將二進制數字信號調制成某一頻率的脈沖序列,經電光轉換電路,驅動紅外發射管以光脈沖的形式發送到空中。接受端將接受到的光脈沖轉換成電信號,再經解調和譯碼后恢復出原二進制數字信號。本文設計了一種基于單片機PIC18F248的主從式紅外通信系統,重要設計了紅外接口電路以及主機和從機通信軟件流程。2、系統硬件電路設計在主從式紅外通信系統中,主機及從機的紅外發射電路相同,紅外線的載波頻率都為38KHz,在同一時間內,可以是主機發射,從機接受;或者從機發射,主機接受。2.1紅外發射電路設計紅外發射器電路重要由單片機,驅動管Q1和Q2、紅外發射管D1等組成,電路如下:紅外發射器工作原理為:單片機通過I/O端口控制整個發射過程。其中,紅外載波信號采用頻率為38KHz的方波,由PIC18F248的*模塊的PWM功能實現,并由*1端口傳輸到三極管T2的基極。待發送到數據由單片機的TX端口以串行方式送出并驅動三極管Q1,當TX為“0”時使Q1管導通,通過Q2管采用脈寬調制(PWM)方式調制成38KHz的載波信號,并由紅外發射管D1以光脈沖的形式向外發送。當TX為“1”時使Q1管截止,Q2管也截止,連接Q1和Q2的兩個上拉電阻R1和R3把三極管的基極拉成高電平,分別保證兩個三極管可靠截止,紅外發射管D1不發射紅外光。因此通過待發送數據的“0”或“1”就可控制調制后兩個脈沖串之間的時間間隔,即調制PWM的占空比。比如若傳送數據的波特率為1200bps,則每個數位“0”就相應32

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論