红外解码C语言程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
void delay0_14MS(unsigned char x) //x*0.14MS
{
unsigned char i;
while(x--)
{
for (i = 0; i<13; i++) {}
}
}
/******************************外部中断1初始化**************************/
/**********************************2us延时******************************/
void delay(uint k)
{
while(k --);
}
/**********************************************************/
{
for(j = 0;j < 8;j ++) //每个字节8个bit的判断
{
while(SM0038 == 0);//等待上升沿
while(SM0038)
{
delay0_14MS(1);
N ++;
if(N>来自百度文库30)
{
EX1 = 1; //0.14ms计数过长自动离开。
return;
}
}
CodeTemp = CodeTemp >> 1;
{uchar N = 0;
EX1 = 0;
delay(500);//延时1ms
if(SM0038 == 1)
{
EX1 =1;
return;
}
//确认IR信号出现
while(!SM0038); //跳过9ms低电平
while(SM0038);//跳过4.5ms高电平
for(i = 0;i < 4;i ++)//分别读取4个字节
if(N >= 8)
{
CodeTemp = CodeTemp | 0x80;
}
N = 0;
}
IRcode[i] = CodeTemp;
CodeTemp = 0;
}
if (IRcode[2]!=~IRcode[3])
{ EX1=1;
return;
}
EX1 = 1;
}
void main(void)
{
Outside_Init();
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit SM0038 = P3^3;
sbit LED = P1^0;
uchar data IRcode[4]; //定义一个4字节的数组用来存储代码
uchar CodeTemp,charsend,i,j,k; //编码字节缓存变量
while(1)
{
P0 = IRcode[2];//把键码显示在流水灯上
}}
void Outside_Init(void)
{
EX1= 1;//开外部中断1
IT1 = 1;//负边沿触发
EA = 1; //开总中断
}
/******************************中断处理**************************************/
void Outside_Int(void) interrupt 2using 0
相关文档
最新文档