单片机C51外中断应用案例分享

1.在51单片机的P1口上接有8只LED。在外部中断0输入引脚P3.2(INT0*)接有一只按钮开关K1,在外部中断1引脚P3.3(INT1*)接有一只按钮开关K2。

程序要求:K1和K2都未按下时,P1口的8只LED呈流水灯显示。仅K1按下时,上下4只LED交替闪烁10次。仅K2按下时,8只LED全部闪烁10次,再回到流水灯的状态。

a31b9aca26a44ef9b3a4824c520ac8a0.png

延时函数:

 eee179befc6f4b09b850c887ee5d9324.png

 

 主函数:457df82fa7fe41b2a1864cfa223225c6.png

 

INT0 INT1的中断服务函数:

 a462669c4e654216bca46032660d90aa.png

 

2.中断嵌套

电路图仍以上图所示,设计一个中断嵌套程序:

K1与K2未按下时,P1的8只LED流水点亮。K1按下松开时,产生一个低优先级的外中断0请求(跳沿触发),进入外中断0中断服务程序,上下4只LED交替闪烁10次。K2按下松开时,产生一个低优先级的外中断1请求(跳沿触发),进入外中断1中断服务程序,8只LED交替闪烁10次。当闪烁10次后,再从中断1返回中断0,继续执行中断0中断服务程序。设置外中断1为高优先级,外中断0为低优先级。

ace7d8a0e8c141209ba37f6a13b65e25.png

 注:仅对上题中的主函数中设置外中断1为高优先级,外中断0为低优先级。即PX0=0;PX1=1;

物联沃分享整理
物联沃-IOTWORD物联网 » 单片机C51外中断应用案例分享

发表评论