关于单片机外部中断的这个疑问

关于单片机外部中断的这个疑问,第1张

我是看到你的标题自己想的,可不可以用外中断的方式的方式计数。因为51单片机的外中断可以选择脉冲低电平有效,就是进一次中断,然后给A+1的方式计数。但是由于它是对低电平有效,所以在外中断端口P30前加一个外相器,把你输入的信号取反,这样就可以检查上升沿计数了。下面是汇编程序:

org 0000h

LJPM MAIN

ORG 0003H

LJMP JISHU

MAIN: MOV SP,#60H 初始化外中断0

SETB IT0

SETB EA

SETB EX0

MOV IP,#01H

MOV R2,#0

SJMP $

JISHU: PUCH ACC 入栈

INC R2 每次进入中断R2 +1

MOV 50H,R2 最后计数放在50H里,你喜欢放哪就哪里,计数在也在r2里

POP ACC 出栈

RETI

END

你可以试试,希望对你有帮助。也希望你能给我分。

用汇编语言,只用两条指令即可办到。

------------------------

输入周期是2S的(占空比是50%)的方波给单片机的P32口,

经过单片机延时50ms后输出周期为2S的(占空比为50%)的方波,从P10输出。

程序正确。

延时50ms,只是估算,基本上正确。

呵呵,能听见一点声音,真值得祝贺。

主程序中,beep=1;

按下键后,beep=0;

按一下键,蜂鸣器上,只是出现了一个下降沿;

松开按键,蜂鸣器上,只是出现了一个上升沿。

这种波形,是应该听不到正常的声音的,只有微弱的咔咔噪音。

把中断函数如下改动试试:

void extern0() interrupt 0

{

while(P32 == 0) { //在前面设定:sbit P32 = P3^2;

beep = ~beep;

delay(); //延时1~2ms

}

}

以上就是关于单片机检查上升沿并计数,怎么实现可否有例子示范全部的内容,包括:单片机检查上升沿并计数,怎么实现可否有例子示范、怎么捕捉单片机的方波上升沿和下降沿 急!、关于单片机外部中断的这个疑问等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/8873022.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-22
下一篇 2023-04-22

发表评论

登录后才能评论

评论列表(0条)

保存