當前位置:首頁 > 單片機 > 單片機
[導讀]紅外遙控發(fā)射芯片采用PPM編碼方式,當發(fā)射器按鍵按下后,將發(fā)射一組108ms的編碼脈沖。遙控編碼脈沖由前導碼、8位用戶碼、8位用戶碼的反碼、8位操作碼以及8位操作碼的反碼組成。通過對用戶碼的檢驗,每個遙控器只能控制

紅外遙控發(fā)射芯片采用PPM編碼方式,當發(fā)射器按鍵按下后,將發(fā)射一組108ms的編碼脈沖。遙控編碼脈沖由前導碼、8位用戶碼、8位用戶碼的反碼、8位操作碼以及8位操作碼的反碼組成。通過對用戶碼的檢驗,每個遙控器只能控制一個設備動作,這樣可以有效地防止多個設備之間的干擾。編碼后面還要有編碼的反碼,用來檢驗編碼接收的正確性,防止誤操作,增強系統(tǒng)的可靠性。前導碼是一個遙控碼的起始部分,由一個9ms的低電平(起始碼)和一個4. 5ms的高電平(結果碼)組成,作為接受數(shù)據(jù)的準備脈沖。以脈寬為0. 56ms、周期為1. 12ms的組合表示二進制的“0”;以脈寬為1. 68ms、周期為2. 24ms的組合表示二進制的“1”。如果按鍵按下超過108ms仍未松開,接下來發(fā)射的代碼(連發(fā)代碼)將僅由起始碼(9ms)和結束碼(2. 5ms)組成。

單片機采用外部中斷INTI管腳和紅外接收頭的信號線相連,中斷方式為邊沿觸發(fā)方式。并用定時器0計算中斷的間隔時間,來區(qū)分前導碼、二進制的“1”、“0”碼。并將8位操作碼提取出來在數(shù)碼管上顯示。

// 解碼值在Im[2]中,當IrOK=1時解碼有效。
/* 51單片機紅外遙控解碼程序 */
//用遙控器對準紅外接收頭,按下遙控器按鍵,在數(shù)碼管前兩位上就會顯示對應按鍵的編碼

#include
#define uchar unsigned char
sbit dula=P2^6;
sbit wela=P2^7;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

uchar f;

#define Imax 14000 //此處為晶振為11.0592時的取值,
#define Imin 8000 //如用其它頻率的晶振時,
#define Inum1 1450 //要改變相應的取值。
#define Inum2 700
#define Inum3 3000

unsigned char Im[4]={0x00,0x00,0x00,0x00};
uchar show[2]={0,0};
unsigned long m,Tc;
unsigned char IrOK;


void delay(uchar i)
{
uchar j,k;
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}

void display()
{
dula=0;
P0=table[show[0]];
dula=1;
dula=0;

wela=0;
P0=0xfe;
wela=1;
wela=0;
delay(5);

P0=table[show[1]];
dula=1;
dula=0;

P0=0xfd;
wela=1;
wela=0;
delay(5);
}


//外部中斷解碼程序
void intersvr1(void) interrupt 2 using 1
{
Tc=TH0*256+TL0; //提取中斷時間間隔時長
TH0=0;
TL0=0; //定時中斷重新置零
if((Tc>Imin)&&(Tc {
m=0;
f=1;
return;
} //找到啟始碼
if(f==1)
{
if(Tc>Inum1&&Tc {
Im[m/8]=Im[m/8]>>1|0x80; m++;
}
if(Tc>Inum2&&Tc {
Im[m/8]=Im[m/8]>>1; m++; //取碼
}
if(m==32)
{
m=0;
f=0;
if(Im[2]==~Im[3])
{
IrOK=1;
}
else IrOK=0; //取碼完成后判斷讀碼是否正確
}
//準備讀下一碼
}

}


/*演示主程序*/
void main(void)
{
unsigned int a;

m=0;
f=0;
EA=1;

IT1=1;EX1=1;

TMOD=0x11;
TH0=0;TL0=0;
TR0=1;//ET0=1;

while(1)
{

if(IrOK==1)
{
show[1]=Im[2] & 0x0F; //取鍵碼的低四位
show[0]=Im[2] >> 4;
IrOK=0;

}
for(a=100;a>0;a--)
{
display();
}

}
}


本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉