欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
關(guān)于nec紅外的單片機(jī)解碼程序
[打印本頁(yè)]
作者:
不死鳥(niǎo)a
時(shí)間:
2025-5-10 17:49
標(biāo)題:
關(guān)于nec紅外的單片機(jī)解碼程序
#include "ray_decode.h"
sbit led2 = P1^0;
sbit led = P1^1;
sbit IR_INPUT = P3^3; //紅外接收引腳
bit irflag = 0; //紅外接收標(biāo)志,收到一幀正確數(shù)據(jù)后置1
unsigned char IR_bit_Time = 0;
unsigned char ircode[4]; //紅外代碼接收緩沖區(qū)
unsigned char xdata Ray_bit_timer_Buffer[33];
/* 初始化紅外接收功能 */
void InitInfrared()
{
IR_INPUT = 1; //確保紅外接收引腳被釋放
TMOD &= 0x0F; //清零T1的控制位
TMOD |= 0x20; //配置T1為模式2
TH1 = 0xA4;
TL1 = 0xa4;
TR1 = 0; //停止T1計(jì)數(shù)
ET1 = 1;
IT1 = 1; //設(shè)置INT1為負(fù)邊沿觸發(fā)
EX1 = 1; //使能INT1中斷
}
//低電平560+2= 1120us 高電平 560+560x3 = 2240us
void IR_Decode()
{
unsigned char value = 0;
unsigned char i,j,k = 1;
if(irflag)
{
irflag = 0;
for(i=0;i<4;i++)
{
for(j=0;j<8;j++)
{
value >>= 1;
if(Ray_bit_timer_Buffer[k] <19 || Ray_bit_timer_Buffer[k]>26) //如果計(jì)數(shù)值不在這個(gè)范圍內(nèi),說(shuō)明數(shù)據(jù)錯(cuò)誤退出
{
return;
}
else
{
value |= 0x80;
}
if(Ray_bit_timer_Buffer[k]<9 || Ray_bit_timer_Buffer[k]>14)
{
return;
}
else
{
value &= 0x7f;
}
k++;
}
//LedShow(Ray_bit_timer_Buffer[2]);
ircode[i] = value;
}
}
}
//100us進(jìn)入一次
void Timer1_ISR() interrupt 3
{
led = ~led;
IR_bit_Time++;
}
/* INT1中斷服務(wù)函數(shù),執(zhí)行紅外接收及解碼 */
void EXINT1_ISR() interrupt 2
{
static unsigned char i = 1;
static unsigned char IR_start = 0;
led2 = ~led2;
TR1 = 1;
if(IR_start == 0)
{
Ray_bit_timer_Buffer[0] = IR_bit_Time;
if(Ray_bit_timer_Buffer[0]<130 || Ray_bit_timer_Buffer[0]>140)
{
//TR1 = 0;
IR_bit_Time = 0;
return;
}
IR_bit_Time = 0;
IR_start = 1;
}
Ray_bit_timer_Buffer[i] = IR_bit_Time;
LedShow(IR_bit_Time);
IR_bit_Time = 0;
if(++i >= 33)
{
i=1;
irflag = 1; //接收完畢后設(shè)置標(biāo)志
TR1 = 0;
IR_start = 0;
}
}
復(fù)制代碼
每次下降沿進(jìn)入中斷,然后啟動(dòng)定時(shí)器開(kāi)始計(jì)數(shù),,但是解碼得出的結(jié)果總是不對(duì),找了兩天問(wèn)題了還是找不出,希望大佬們幫幫忙
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1