標(biāo)題:
stc15系列單片機(jī)紅外解碼程序
[打印本頁]
作者:
一屆書生
時(shí)間:
2016-3-25 13:46
標(biāo)題:
stc15系列單片機(jī)紅外解碼程序
使用于藍(lán)橋杯金塞板
紅外遙控(T2EX).zip
(54.31 KB, 下載次數(shù): 53)
2016-3-25 13:45 上傳
點(diǎn)擊文件名下載附件
stc15系列單片機(jī)紅外解碼程序
下載積分: 黑幣 -5
stc15單片機(jī)紅外解碼部分程序預(yù)覽:
#include "Ir_Process.h"
uchar Ir_Time, Start_Flag, Bit_Num, Ir_Ok, Ir_ProsOk;
uchar Ir_Data[33], Ir_Code[4], Disp_Num[8];
void ULN2003(void)
{
Relay = BUZZ = 0; //關(guān)閉繼電器和蜂鳴器
HC138(3);
P0 = 0xFF; HC138(0); //熄滅LED
}
void Init_INT0(void) //INT0初始化
{
IT0 = 1; //INT0下降沿觸發(fā)
EX0 = 1; //INT0允許
EA = 1;
}
void Init_T2(void) //T2初始化
{
AUXR &= ~0x04; //定時(shí)器2為12T模式
T2H = (65536 - 236)/256; //初始化計(jì)時(shí)值
T2L = (65536 - 236)%256;
AUXR |= 0x10; //定時(shí)器2開始計(jì)時(shí)
IE2 |= 0x04; //開定時(shí)器2中斷
EA = 1;
}
void Ir_Pros(void) //紅外處理
{
uchar Num, i, j, k = 1;
for(j = 0; j < 4; j++) //用戶碼16位、數(shù)據(jù)碼8位、數(shù)據(jù)反碼8位
{
for(i = 0; i < 8; i++) //一個(gè)數(shù)據(jù)八位
{
Num = Num >> 1;
if(Ir_Data[k] > 6) //0碼:0.56ms高電平+0.56ms低電平;1碼:0.56ms高電平+1.685ms低電平
{ //0.56/0.256=4.4; 2.245/0.256=8.8。所以大于6為1碼
Num = Num | 0x80; //低位在前,提取4個(gè)數(shù)據(jù)
}
k++;
}
Ir_Code[j] = Num; //為十六位二進(jìn)制數(shù)
}
Ir_ProsOk = 1;
}
void Ir_Disp(void) //紅外碼轉(zhuǎn)換,準(zhǔn)備送數(shù)碼管顯示
{
Disp_Num[0] = Ir_Code[0]/16;
Disp_Num[1] = Ir_Code[0]%16;
Disp_Num[2] = Ir_Code[1]/16;
Disp_Num[3] = Ir_Code[1]%16;
Disp_Num[4] = Ir_Code[2]/16;
Disp_Num[5] = Ir_Code[2]%16;
Disp_Num[6] = Ir_Code[3]/16;
Disp_Num[7] = Ir_Code[3]%16;
}
void INT0_ISR(void) interrupt 0
{
if(Start_Flag)
{
if(Ir_Time > 32 && Ir_Time < 63) //在8~16ms之間,為引導(dǎo)碼
Bit_Num = 0;
Ir_Data[Bit_Num] = Ir_Time;
Ir_Time = 0;
Bit_Num++;
if(Bit_Num == 33)
{
Bit_Num = 0;
Ir_Ok = 1;
}
}
else
{
Ir_Time = 0;
Start_Flag = 1;
}
}
void T2_ISR(void) interrupt 12
{
IE2 &= ~0x04; //若需要手動清除中斷標(biāo)志,可先關(guān)閉中斷,此時(shí)系統(tǒng)會自動清除內(nèi)部的中斷標(biāo)志
Ir_Time++;
IE2 |= 0x04; //然后再開中斷即可
}
復(fù)制代碼
作者:
jimpro
時(shí)間:
2017-3-1 13:01
謝謝LZ分享
作者:
hejianhuan
時(shí)間:
2018-3-13 08:27
正在做紅外遙控的學(xué)習(xí),,收下,,謝謝!。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1