一个单片机C语言的问题

2025-03-09 13:29:54
推荐回答(3个)
回答1:

1、先执行while(1),因为单片机运行是一直执行的是主程序,只有当中断发生了(而且寄存器EA设置成允许T0中断),这时单片机才会响应中断,并执行中断服务程序。这是单片机自身约定好的中断响应方式。
2、进入中断服务程序前单片机会先保存下一条将要执行指令的地址,当中断返回后,单片机会自动转到主程序中,并且从之前保存的指令地址处取指令,然后再执行。每次中断都是这样,所以程序会在while循环和中断程序之间来回切换。

回答2:

肯定是先执行while(1)循环,main ()中的只是计时器初始值初装而已

回答3:

先执行while程序啊,时间中断需要计数器到达时间后才能执行。

中断未执行前j=0;

j=j+8;
if(j==128)
这里有错误,128/8=3.5。

因此永远无法符合j==128,必须改为 if(j>=128) 才可以。