#include
#define uint unsigned int
uint dat=0,time=0;
bit flag=0;
sbit key=P1^0;
void int00() interrupt 0
{
dat++;
}
void t0isr() interrupt 1
{
time++;
if(time>=400)flag=1;
}
main()
{
TMOD=0x22;
TH0=6;
TL0=6;
TH1=0xfd;
TL1=0xfd;
TR1=1;
SCON=0x40;
ET0=1;
EX0=1;
IT0=1;
PX0=1;
EA=1;
while(1)
{
if(key==0)
{
while(key==0);
TR0=1;
while(flag==0);
TR0=0;
flag=0;
SBUF=dat;
while(TI==0);
TI=0;
SBUF=dat>>8;
while(TI==0);
TI=0;
}
}
}
那就在程序里面用循环语句对管脚进行电平高低的检测,if什么情况,然后counter++。
不太行呀,外部脉冲少的话对定时器影响还不大,要是脉冲频率高了的话,对定时器很有影响的
用定时器计数方式,外部脉冲从T0或者T1输入
100ms内,测出外部INT0脉冲的个数。
---------
这个“个数”,最多 能达到多少?