單片機紅外發(fā)射(原理與設(shè)計程序)_第1頁
單片機紅外發(fā)射(原理與設(shè)計程序)_第2頁
單片機紅外發(fā)射(原理與設(shè)計程序)_第3頁
單片機紅外發(fā)射(原理與設(shè)計程序)_第4頁
單片機紅外發(fā)射(原理與設(shè)計程序)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

..用AT89S51單片機制作紅外電視遙控器一般紅外電視遙控器的輸出都是用編碼后串行數(shù)據(jù)對38~40kHz的方波進行脈沖幅度調(diào)制而產(chǎn)生的。

當(dāng)發(fā)射器按鍵按下后,即有遙控碼發(fā)出,所按的鍵不同遙控編碼也不同。這種遙控碼具有以下特征:

采用脈寬調(diào)制的串行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進制的"0";以脈寬為0.565ms、間隔1.685ms、周期為2.25ms的組合表示二進制的"1"。

上述"0"和"1"組成的32位二進制碼經(jīng)38kHz的載頻進行二次調(diào)制,然后再通過紅外發(fā)射二極管產(chǎn)生紅外線向空間發(fā)射。一般電視遙控器的遙控編碼是連續(xù)的32位二進制碼組,其中前16位為用戶識別碼,能區(qū)別不同的紅外遙控設(shè)備,防止不同機種遙控碼互相干擾。后16位為8位的操作碼和8位的操作反碼,用于核對數(shù)據(jù)是否接收準(zhǔn)確。

根據(jù)紅外編碼的格式,發(fā)送數(shù)據(jù)前需要先發(fā)送9ms的起始碼和4.5ms的結(jié)果碼。

遙控串行數(shù)據(jù)編碼波形如下圖所示:接收方一般使用TL0038一體化紅外線接收器進行接收解碼,當(dāng)TL0038接收到38kHz紅外信號時,輸出端輸出低電平,否則為高電平。所以紅外遙控器發(fā)送紅外信號時,參考上面遙控串行數(shù)據(jù)編碼波形圖,在低電平處發(fā)送38kHz紅外信號,高電平處則不發(fā)送紅外信號。單片機紅外電視遙控器電路圖如下:C51程序代碼:#include<AT89X51.h>staticbitOP;

//紅外發(fā)射管的亮滅staticunsignedintcount;

//延時計數(shù)器

staticunsignedintendcount;//終止延時計數(shù)staticunsignedcharflag;

//紅外發(fā)送標(biāo)志chariraddr1;

//十六位地址的第一個字節(jié)chariraddr2;

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

voiddelay<>;voidmain<void>

{

count=0;

flag=0;

OP=0;

P3_4=0;

EA=1;//允許CPU中斷

TMOD=0x11;//設(shè)定時器0和1為16位模式1

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

TH0=0xFF;

TL0=0xE6;//設(shè)定時值0為38K也就是每隔26us中斷一次

TR0=1;//開始計數(shù)

iraddr1=3;

iraddr2=252;do{

delay<>;

SendIRdata<12>;

}while<1>;

}//定時器0中斷處理voidtimeint<void>interrupt1

{

TH0=0xFF;

TL0=0xE6;//設(shè)定時值為38K也就是每隔26us中斷一次

count++;if<flag==1>

{

OP=~OP;

}

else

{

OP=0;

}

P3_4=OP;

}voidSendIRdata<charp_irdata>

{

inti;

charirdata=p_irdata;//發(fā)送9ms的起始碼

endcount=223;

flag=1;

count=0;

do{}while<count<endcount>;//發(fā)送4.5ms的結(jié)果碼

endcount=117

flag=0;

count=0;

do{}while<count<endcount>;//發(fā)送十六位地址的前八位

irdata=iraddr1;

for<i=0;i<8;i++>

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

endcount=10;

flag=1;

count=0;

do{}while<count<endcount>;//停止發(fā)送紅外信號〔即編碼中的高電平if<irdata-<irdata/2>*2>

//判斷二進制數(shù)個位為1還是0

{

endcount=41;

//1為寬的高電平

}

else

{

endcount=15;

//0為窄的高電平

}

flag=0;

count=0;

do{}while<count<endcount>;

irdata=irdata>>1;

}//發(fā)送十六位地址的后八位

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;

}//發(fā)送八位數(shù)據(jù)

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;

}//發(fā)送八位數(shù)據(jù)的反碼

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

溫馨提示

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

評論

0/150

提交評論