微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 这么好的思路 1838T一体化红外接收 为啥不接受?

这么好的思路 1838T一体化红外接收 为啥不接受?

时间:10-02 整理:3721RD 点击:
头码 13.5ms  
/*外部中断0 计时检测脉冲高电平宽度 边沿触发(下降沿)*/
#include <reg51.h>
#define unchar unsigned char
unchar zdcs=1,kehu1,kehu2,shuju,shujubu;//zds中断次数
bit start;
int time;
sbit A0=ACC^0;
void init0() //初始化INT0
{EA=1;
EX0=1;
IT0=1;
TH0=0x00;
TL0=0x00;
TR0=0;}
void init_com()//初始化串口           T1
{TMOD=0x21;
SCON=0X50;       
PCON=0X00;
TH1=0XFD;
TL1=0XFD;
TR1=1;
}
void zd0() interrupt 0          //T0计时  INT0查询时间 并在中段中完成解码
{                                  
if(TR0==1)
{TR0=0;
time=TH0*256+TL0;
TH0=0x00;
TL0=0x00;
}
if(TR0==0)                          //利用每次下降沿检测时间间隔
{TR0=1;
time=TH0*256+TL0;}
if(time>13300)   //判断是否开始
{if(time<13700)
{start=1;} }
if(start==1)
{
if(time>1100&&time<1161)  //0               
{A0=0;
ACC<<=1;}
if(time>2214&&time<2270)   //1
{A0=1;
ACC<<=1;}
if(zdcs==8)
{kehu1=ACC;}
if(zdcs==16)
{kehu2=ACC;}
if(zdcs==24)
{shuju=ACC;}
if(zdcs==32)
{shujubu=ACC;
zdcs=0;
start=0;
SBUF=shuju;}
zdcs+=1;
}
}
void main()
{init_com();
init0();               
while(1)
{}
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top