单片机外部中断0和外部中断1

单片机外部中断0和外部中断1,第1张

首先你要开总中断EA

其次你才是开启五个小中断ET0 ET1 ES INT0 INT1

只要你对应中断的接口接受到有效电平它就启动

设置这些优先级

不过我的建议是 刚学习中断 基本是一个中断没什么优先级好说的 只有你对一个中断玩熟了 才慢慢设置多个中断 对吧,哥们

、中断的概念

CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);

CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);

待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断

二、中断源

在51单片机中有5个中断源

中断号 优先级 中断源 中断入口地址

0 1(最高) 外部中断0 0003H

1 2 定时器0 000BH

2 3 外部中断1 0013H

3 4 定时器1 0018H

4 5 串口总段 0023H

三、中断寄存器

单片机有10个寄存器主要与中断程序的书写控制有关

1中断允许控制寄存器IE

2定时器控制寄存器TCON

3串口控制寄存器SCON

4中断优先控制寄存器IP

5定时器工作方式控制寄存器TMOD

6定时器初值赋予寄存器(TH0/TH1,TL0/TL1)

寄存器详细说明:>

不知你 time2 是否有用

EW_FREE_SN_FREE();执行一次要多长时间?若时间很短的话,有可能一直执行下去,因你不断地把 time1清0,time1<10永远满足 若时间较长的话,执行一次 EW_FREE_SN_FREE()后发现 不仅time1>10 而且 time1>20, 所以EW_FREE_SN_NOR()执行不了,但你说的中断次数为11,再次偱环 到else if(time1<20)时 EW_FREE_SN_NOR()应该可执行1次

EW_FREE_SN_NOR()执行时间不超过10次中断的话,又回到 if(time1<10)而执行 EW_FREE_SN_FREE(); 这也许是你想要和结果

若EW_FREE_SN_NOR()执行时间超过10次不超过20次中断的话,程序在此此反复执行

若EW_FREE_SN_NOR()执行时间超过20次中断的话,程序跑飞,两条语句都不执行,我也不知当time1溢出后它会不会回来

 若EW_FREE_SN_FREE()和EW_FREE_SN_NOR()两条语句占用时间不是定值的话,执行情况就更复杂了

以上就是关于51单片机怎么设置外部中断啊全部的内容,包括:51单片机怎么设置外部中断啊、关于51单片机的中断。、单片机外部中断0和外部中断1等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/langs/8827074.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存