永发信息网

关于单片机中断时两个中断出现的不同情况

答案:2  悬赏:70  手机版
解决时间 2021-04-08 00:26
void main()
{
resettimea();
resetint0();
resetint1();
temp=0x7f;
while(1)
{
if(flag1!=1)
printsmg(qw,bw,sw,gw);
else
flag1=~flag1;
if(time0==20)
{
time0=0;
P2=temp;
temp=_cror_(temp,1);
}
}

void exter0() interrupt 0
{
P0=dusmg[10];
led0=0;
P0=0xc7;
led0=1;

P0=dusmg[10];
led1=0;
P0=0xc0;
led1=1;
P0=dusmg[10];
led2=0;
P0=0xc1;
led2=1;

P0=dusmg[10];
led3=0;
P0=0x86;
led3=1;
flag1=1;
}
void timer0() interrupt 1
{
time0++;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
}
void exter1() interrupt 2
{
P0=dusmg[10];
led0=0;
P0=dusmg[10];
led0=1;
P0=dusmg[10];
led1=0;
P0=dusmg[4];
led1=1;
P0=dusmg[10];
led2=0;
P0=dusmg[0];
led2=1;
P0=dusmg[10];
led3=0;
P0=0xc1;
led3=1;

flag1=1;
}
这是主函数和两个中断响应函数。在实际运行中,当中断0按下时,保持住数码管显示,主程序里的LED闪烁停止运行。当中断1按下时,保持住数码管的同时,LED继续闪烁。这是什么原因?全部程序太多了。不让发,就发这几个。
最佳答案
嗯!这个是中断优先级的问题!优先级是这样排列的外部中断0是最高的,以此是定时器0,外部中断1,定时器1,串口中断!

你按下中断0的时候,因为她的中断优先级是最高的,所以他执行的时候,其他的中断是不能执行的。所以只有显示,没有闪烁。

你按下中断1的时候,因为定时器0的优先级是比他搞的,那么这样的话就会使得你中断1执行的时候中断0也是可以执行的!现象是既有显示还有闪烁!
全部回答
如上楼上所说的。pic 的八位单片机只有一个中断入口(16位和32位的单片机就有多个)。 也就只能在程序里只能有一个中断子函数。如果开了两个或更多的中断,那就把两个中断的处理都放在这一个中断子函数中。中断子函数的最先判断中断标志位是那个被置位了,然后再根据你自己定的优先级来处理各个中断操作。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
单选题Isthereahospitalinthatstreet?____
煲耳机的方法。我刚启用,找了几首班得瑞的轻
法律语言有什么?求解答
单选题法国援助北美独立战争的根本出发点是A.
鲍鱼干怎么泡发视频,干鲍鱼用什么方法可以泡
3.2的户外写真机打壁画维修成本高吗
安桥功放 tx-ds494 家庭影院功放 与安桥 tx-d
金马圆(南门)在什么地方啊,我要过去处理事情
魔兽世界 不屈束带值多少钱
描写归途最唯美的诗词,或许明日太阳西下倦鸟
长江宾馆地址在什么地方,想过去办事
单选题下列涉及有机物的性质或应用的说法,不
综合单价法是不是按企业定额计算单价?
好喜欢一个女生,都两年多了,没有表白过只是
为什么高考写鸡汤会得满分
推荐资讯
She is not herself today, so she doesn’t
想要设置一张照片,刚好能放在微信头像的,要
艺术家都很孤僻吗?
关于工业革命早期阶段还有工业革命新阶段的那
爱情数字177371是什么意思
天上飘着白云,改为比喻句
灰绿色是什么颜色求图,绿色的含义是什么
剑网3 千雷殿和锻刀厅出的装备不一样吗
圆内两弦相交,一弦长是8CM,且被交点平分,另一
光盘裂开可以修复吗 抚顺
信达财产保险股份有限公司上海分公司我想知道
我的电动车充电器上标有WC48V20AH和DC59V2.5A
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?