我是菜鸟51单片机求助 10

当输入一个高电平,有30kHZ的脉冲出入,当输入转入低电平后。计算输入脉冲个数是否在两个值之间,如果在则发出一个信号... 当输入一个高电平,有30kHZ的脉冲出入,当输入转入低电平后。计算输入脉冲个数是否在两个值之间,如果在则发出一个信号 展开
 我来答
最近的天涯海角
2011-11-21 · TA获得超过427个赞
知道答主
回答量:127
采纳率:0%
帮助的人:62.2万
展开全部
输入的高电平接P3.2,输入脉冲接P3.4
#include<reg52.h>
sbit INPUT = P3^4;
static i = 0;
unsigned int cnt;
void main()
{
TMOD = 0X05;//计数器0
TH0=0;///计数初值为0
TL0=0;
EA=1;//打开相应中断
EX0=1;
IT0=1;//边沿触发
while(INPUT==0);//等待高电平输入
TR0 = 1;//开始计数
while(1);
}
void isr_INT0 interrupt 0
{
cnt = 65536*i+TH0*256+TL0;//计算所有计数脉冲
if((cnt>xx)&&(cnt<yy))
{
P1=~P1;//如果在某两个值以内发出信号
}
}
void isr_timer interrupt 1
{
i++;//计数溢出,溢出次数加一
TH0=0;//重新载入初值
TL0=0;

}
jiayanlei9
2011-11-21 · TA获得超过123个赞
知道答主
回答量:172
采纳率:0%
帮助的人:102万
展开全部
计脉冲数是计脉冲下降沿的个数,下降沿是输入由高电平转入低电平的一段很小的时间瞬间。
有关寄存器里的值会加一
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式