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

我需要在100ms内,测出外部INT0脉冲的个数。用INT0接外部脉冲,定时器0工作在方式2进行100ms定时,外部脉冲中断高优先级,当定时器满的话,读出计数值,求程序和... 我需要在100ms内,测出外部INT0脉冲的个数。用INT0接外部脉冲,定时器0工作在方式2进行100ms定时,外部脉冲中断高优先级,当定时器满的话,读出计数值,求程序和指导建议!!谢谢 展开
 我来答
zhxiufan
推荐于2017-08-30 · 知道合伙人软件行家
zhxiufan
知道合伙人软件行家
采纳数:14923 获赞数:38384
国家科技进步奖

向TA提问 私信TA
展开全部
#include<reg51.h>
#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;
}
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2010-07-10 · 超过34用户采纳过TA的回答
知道答主
回答量:97
采纳率:0%
帮助的人:0
展开全部
那就在程序里面用循环语句对管脚进行电平高低的检测,if什么情况,然后counter++。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
极智能实验室
2017-08-30
知道答主
回答量:5
采纳率:0%
帮助的人:4642
展开全部
不太行呀,外部脉冲少的话对定时器影响还不大,要是脉冲频率高了的话,对定时器很有影响的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友52e979a1a
2010-07-10 · TA获得超过3588个赞
知道小有建树答主
回答量:1355
采纳率:100%
帮助的人:1050万
展开全部
用定时器计数方式,外部脉冲从T0或者T1输入
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
做而论道
高能答主

2010-07-10 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部
100ms内,测出外部INT0脉冲的个数。
---------
这个“个数”,最多 能达到多少?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式