<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 單片機系統中的紅外通信接口

單片機系統中的紅外通信接口

作者: 時(shí)間:2011-02-27 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:本文結合復費率電能表中紅外通信的設計實(shí)從事貿易,介紹了系統中紅外通信的軟硬件設計方法,并給出了具體的電路原理和通信源程序。

關(guān)鍵詞:,紅外通信,遙控

在許多基于的應用系統中,系統需要實(shí)現遙控功能,而紅外通信則是被采用較多的一種方法。一般市場(chǎng)上的搖控器協(xié)議簡(jiǎn)單、保密性不強、抗干擾能力較弱。這里,我們介紹一種基于字節傳輸的紅外遙控系統,可以適合于各種復雜的應用場(chǎng)合。

紅外通信的基本原理

紅外通信的基本原理是發(fā)送端將基帶二進(jìn)制信號調制為一系列的脈沖串信號,通過(guò)紅外發(fā)射管發(fā)射紅外信號。常用的有通過(guò)脈沖寬度來(lái)實(shí)現信號調制的脈寬調制(PWM)和通過(guò)脈沖串之間的時(shí)間間隔來(lái)實(shí)現信號調制的脈時(shí)調制(PPM)兩種方法。本系統采用的為永時(shí)市制方法。數據比特的傳送仿照不帶奇側校驗的RS232通信,首先產(chǎn)生一個(gè)同步頭,然后接著(zhù)8位數據比特


硬件電路設計

復費率電能表系統可分為手持遙控器和復費率電能表兩部分.手持遙控器為發(fā)射部分,其基本電路如圖2所示。采用塑封的SE303ANC-發(fā)射二極管,波長(cháng)為940nm。CPU按照協(xié)議規定導通或截止發(fā)射二極管,從而產(chǎn)生特定頻率的發(fā)射信號,這里選用的頻率為38.9kHz。復費率電能表紅外接收部分的基本電路如圖3所示。接收管采用日本光電子公司的PIC-12034,其接收頻率為37.9kHz,它直接將37.9kHz的調制信號解調為基帶信號,提供緞帶接收CPU。該芯片接收靈敏度高,性能穩定。其基本工作過(guò)程為:當接收至37.9kHz信號時(shí),輸出低電平,否則輸出為高電平。電能表部分采用的是51系列單片機,以中斷方式檢測接收信號。這里的非門(mén)對收信號起整形作用。


軟件設計

發(fā)射部分的程序相對來(lái)說(shuō)非常簡(jiǎn)單,主要是生產(chǎn)不同時(shí)間間隔的37.9kHz脈沖串信號控制發(fā)射管的通斷。在發(fā)射端,CPU不斷掃描鍵盤(pán),一旦發(fā)現有鍵按下,即啟動(dòng)發(fā)射子程序將相應的數值發(fā)送出。在我們的設計中,采用的是4×4的小鍵盤(pán),正如和0~F編碼對應,為了提高可靠性,采用最簡(jiǎn)單的糾錯編碼――將每位數重復發(fā)送一次,即和鍵盤(pán)數字對應的編碼為00~FF。這樣,一個(gè)鍵值要發(fā)送8比特。接收端接收滿(mǎn)8比特信號后,再進(jìn)行糾錯處理,不正確的碥碼認為無(wú)效。收足規定的號碼后,即調用號碼分析程序進(jìn)行處理。當每收至一個(gè)脈沖串信號后即啟動(dòng)一個(gè)定時(shí)器。下次中斷發(fā)生時(shí),通過(guò)定時(shí)器的計數值判斷是0還是1。如果定時(shí)器溢出,則清除本次接收的號碼,恢復到接收初始狀態(tài)。接收部分的基本程序流程如圖4所示。

在程序設計時(shí),應該注意的中斷方式采用下降沿觸發(fā):接收端通過(guò)T0計數值來(lái)判斷發(fā)送比特,一般采用硬判決,即取0和1比特時(shí)寬的平均值為竟決門(mén)限A,當T0值大于A(yíng)時(shí)判接收信號為0,小于A(yíng)時(shí)判為1。

復費率電能表中的紅外接收程序(為Intel 8052,采用C語(yǔ)言編寫(xiě))見(jiàn)程序清單。

結語(yǔ)

以上設計方案在復費率電能表中應用后,效果良好,達至了設計要求。整個(gè)系統外圍元件少,調試方便;軟件工作量也較小。如果應用來(lái)傳送大量數據時(shí),還可以根據需要改變相應的編碼形式,提高數據傳送速率。

通信源程序
#includereg52.h>
#includeintrins.h>
#includeabsacc.h>
#pragma OPTIMIZE(5,SPEED)
sbit RECV=P3^3;
bdata unsigned char SIGN,RECVBYTE;
sbit RECVBG=SING^0;
sbit US1AT=SIGN^6;
sbit RECVBITO=RECVBYTE^0;
unsigned char RECVBIT;

timer0() interrupt 1 ∥entrance:8*n+3=0Bh;
{
IE=0x8d; ∥1(EA)0(X)0(X)0(X)-1(ET1)1(EX1)0(ET0)1(EX0)
RECVBG=0;
}

EX-INT1() interrupt 2 ∥接收紅外信號
{
TCON=0x45; ∥0(TF1)1(TR1)0(TF0)1(TR0)-0(IE1)1(IT1)0(IE0)1(IT0)
If(RECVBG==0) {RECVBG=1;
RECVBIT=8;
}
eles{BECVBYTE=RECVBYTE1;
if(TH0=4)RECVBIT0=1;
else RECVBIT0=0;
RECVBIT--;
If(RECVBIT==0) {RECVBG=0;
US1AT=1;
}
}
TH0=0;
TL0=0;
TCON=0x55; ∥0(TF1)1(TR1)0(TF0)1(TR0)-0(IE1)1(IT1)0(IE0)1(IT0)
IE=0x8f; ∥Enable the timer0 interrupt
}

void main(){
RECVBYTE=O;
SIGN=O;
TMOD=0x11;
TCON=0x55; ∥0(TF1)1(TR1)0(TF0)1(TR0)-0(IE1)1(IT1)0(IE0)1(IT0)
IP=0x00;
IE=0x8d; ∥1(EA)0(X)0(X)0(X)-1(ET1)1(EX1)0(ET0)1(EX0)
∥基本循環(huán)程序
while(1) {

.(略)

if(US1AT==1{∥紅外接收處理

.(略)

}
}
}

紅外遙控器相關(guān)文章:紅外遙控器原理
電能表相關(guān)文章:電能表原理
脈寬調制相關(guān)文章:脈寬調制原理


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>