使用51单片机,怎么使用中断对脉冲的下降沿进行计数?

就是指呢,对一个端口输入的可能是不规则的脉冲,对低电平出现的次数计数

你好!!
可以在中断内,设置一个中间变量;
检测单片机的出现,低电平出现的同时,中间变量赋 0;
等待高电平,完成一次计数,中间变量赋 1;
反复操作,完成计数!追问

如何使用程序检测他的到来?如果是下降沿触发的话,这个下降沿指的是单片机本身的那个震荡脉冲吧,怎么检测我们通过P3^2接收到的脉冲信号?

追答

单片机本身的那个震荡脉冲,是单片机是时钟,工作频率;

如果你对中断不了解,就直接检测端口低电平,这样写程序简单;

必须要用中断吗?


看你的回答,也是爱答不理的

追问

哪有哪有,是比较忙,一直没时间登录啊!问题是这样的,假设我从外部输入一个1khz的波形,我们怎么对高电平计数?

追答

如果采用外部输入,不能采用高电平计数,因为单片机输入检测的时候,端口必须要置高;
所以只能检测低电平,我的仿真图的按钮,就是按下时是低电平,然后计数加 1

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-22
定义一个全局变量,中断设置下降沿触发,然后在中断服务程序里面对该全局变量加1,就可以了。
第2个回答  2013-10-21
设置一个全局变量作为计数单元,在中断服务程序中对计数单元加一即可追问

问题就是如何在中断服务程序中怎么检测这个低电平的到来。。。?

追答

如果将待测信号接在外部中断引脚,设置一个全局变量作为计数单元,在中断服务程序中对计数单元加一即可达到你的要求,能识别微秒级的脉冲。
如果对其它任一个端口判断,也许采用中断不是一个好办法。

相似回答