问问题描述
答精选答案

c51单片机中断中可以加循环的。
c51单片机中断函数中通过 以下程序实现对中断函数的运算循环。延时通过定时器定时来实现,中断多次进入就能实现重复多次处理。设置一个位变量,每次进入后取反,根据它的值来给P2口服不同的值。启动前给flag赋值1,n赋值10,然后启动定时计数器,设置合适的初值,使其定时为500bit flag;int n;void hi() interrupt 2 using 2{if(n-->0)if(flag)P2 = 0xf8;elseP2 = 0x07;flag = ~ flag;}
答其他回答(1条)
-
可以。设置一个位变量,每次进入后取反,根据它的值来给P2口赋不同的值。
首先中断函数中一般是要杜绝循环的,也不用延时的。
延时通过定时器定时来实现,中断多次进入就能实现重复多次处理。
如果是同一个或一级中断,在没有执行完这个中断的时候时候是不会响应的。可以设置优先级,等待下一个高优先级的中断来打断,否则会一直死循环不会响应的。
本文来自作者[万有引力大视界]投稿,不代表公众科技网立场,如若转载,请注明出处:https://www.cpst.net.cn/gongchengkaoshi1/202609/1960567.html

评论列表(4条)
我是公众科技网的签约作者“万有引力大视界”!
希望本篇文章《c51单片机中断中可以加循环吗》能对你有所帮助!
本站[公众科技网]内容主要涵盖:教育咨询,知识百科
本文概览:c51单片机中断中可以加循环的。c51单片机中断函数中通过 以下程序实现对中断函数的运算循环。延时通过定时器定时来实现,中断多次进入就能实现重复多次处理。设置一个位变量,每次进入后取反,根据它的值来给P2口服不同的值。启动前给flag赋值1,n赋值10,然后启动定时计数器,设置合适的初值,使其定时为500bit flag;int n;void hi() interrupt 2 using 2{if(n-->0)if(flag)P2 = 0xf8;elseP2 = 0x07;fla