单片机初学者,定时中断不太明白,请大家指教
我是单片机初学者,定时器中断问题不太明白!
不知道我问的对不对!
1,假如说一个程序有3条语句,分别为1,2,3。是不是一个机器周期执行一条语句?
2,如果是外部中断的话,假如在执行到语句1时,有中断指令,就先执行中断指令,然后再回来执行语句2?
3,如果是定时器/计数器中断,是不是在启动TR=1时程序就开始在后台进行+1的操作了,与此同时程序在同步进行?如果是的话,以定时器为例,我想在执行完语句1后延时再执行语句2,但是按照定时器的+1运算和程序语句执行是同步的,要是在定时器的定时时间还没到时,程序已经运行到语句2了怎么办? 主要就是想问问这里有关时间差的问题。
4,内部出发出发中断和外部出发中断有什么不同的?是怎么区分和控制的呢,还有中断和主程序是分开进行的吗?
我是初学者,问题比较幼稚,可能有些地方问的不对,请包含!谢谢大家!
我的QQ:2652206926 急切希望有人和我交流!共同学习!
[解决办法]
1、不用这么纠结去想。51的程序语句就是上到下执行。1.2.3这样执行下去。
2、对的。内中断也一样。
3、是的,不过内中断还有EA,ET0/1和TR0/1共同控制的.
如果对时间差数值要求不高,可以用延时子程序来控制。如果用中断开控制的话,可以用标志位来控制。程序就只有2句的话,也可以考虑把第二句放进内中断程序里。
4、单片机书上对这解释的很详细的,请差资料。
PS:本人菜鸟,LX轻喷。
[解决办法]
一楼回答得很好嘛 可以结贴了
[解决办法]
4,内部出发出发中断和外部出发中断有什么不同的?是怎么区分和控制的呢,还有中断和主程序是分开进行的吗?
没有区别,在硬件上会产生一样的响应机制。区分的办法是通过优先级进行的(通常会有配置中断优先级的寄存器)。通常MCU只有一个核,本质上还是抢先顺序运行的。不过,在中断很短的情况下,个人主观上可以简单的理解为并行。
[解决办法]
一条语句运行多少机器周期是不一样的,具体时间要看相应的汇编代码,有些介绍汇编编单片机程序的书上会有。你可以找找资料