全站数据
8 4 2 0 5 8 1

c51单片机中断中可以加循环吗

玫瑰工程 | 简单学习,快乐成才!         
问题更新日期:2024-10-20 01:03:34

问题描述

c51单片机中断中可以加循环吗,在线求解答
精选答案
最佳答案

c51单片机中断中可以加循环的。c51单片机中断函数中通过 以下程序实现对中断函数的运算循环。延时通过定时器定时来实现,中断多次进入就能实现重复多次处理。

设置一个位变量,每次进入后取反,根据它的值来给P2口服不同的值。

启动前给flag赋值1,n赋值10,然后启动定时计数器,设置合适的初值,使其定时为500

bit flag;

int n;

void hi() interrupt 2 using 2

{

if(n-->0)

if(flag)

P2 = 0xf8;

else

P2 = 0x07;

flag = ~ flag;

}

其他回答

可以。设置一个位变量,每次进入后取反,根据它的值来给P2口赋不同的值。

首先中断函数中一般是要杜绝循环的,也不用延时的。

延时通过定时器定时来实现,中断多次进入就能实现重复多次处理。

如果是同一个或一级中断,在没有执行完这个中断的时候时候是不会响应的。可以设置优先级,等待下一个高优先级的中断来打断,否则会一直死循环不会响应的。