51单片机怎么实现外部脉冲计数

2025-01-05 06:59:28
推荐回答(5个)
回答1:

#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;
}
}
}

回答2:

那就在程序里面用循环语句对管脚进行电平高低的检测,if什么情况,然后counter++。

回答3:

不太行呀,外部脉冲少的话对定时器影响还不大,要是脉冲频率高了的话,对定时器很有影响的

回答4:

用定时器计数方式,外部脉冲从T0或者T1输入

回答5:

100ms内,测出外部INT0脉冲的个数。
---------
这个“个数”,最多 能达到多少?