单片机中断和硬件有什么关系 单片机中断优先级是如何划分的?

[更新]
·
·
分类:互联网
1588 阅读

单片机中断和硬件有什么关系

单片机中断优先级是如何划分的?

单片机中断优先级是如何划分的?

CPU同时接收到几个中断时,首先响应优先级别最高的中断请求。正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。正在进行的低优先级中断服务,能被高优先级中断请求所中断。
为了实现上述后两条原则,中断系统内部设有两个用户不能寻址的优先级状态触发器。
其中一个置1,表示正在响应高优先级的中断,它将阻断后来所有的中断请求;另一个置1,表示正在响应低优先级中断,它将阻断后来所有的低优先级中断请求。

interrupt1到5分别是指什么中断?

51单片机有5个中断源,在硬件上的排列顺序是INT0,T0,INT1,T1,TI/RI,也就是中断允许寄存器中5个中断允许标志位的排列顺序,则这5个中断源的中断顺序号依次就是interrupt 后面的0,1,2,3,4。 这是由硬件决定的,就是中断服务子程序的入口地址的排列顺序。

单片机用中断和定时怎么延时?

1.软件延时
利用多个指令的执行来延时,累加每个指令的运行时间,来计算出延时的总时间。一般写成一个延时函数。
如,以下是10ms软件延时。
delay_10ms() {
int c 1000 // 调整常数,以达到要求的延时,但很难!
while(c ! 0) {
c--
}
}
以上函数被调用一次,就延时10ms,多次调用可以达到任意更大的时间要求。
!但是,在延时时,就其它什么事也做不了了,就是干等啊!
2.硬件延时
利用定时器/计数器芯片,或用微控制器内部的定时器/计数器,实际上,它就是对晶振的分频(分频系数可编程设置),得到一个精确的低频的周期信号,用这个周期信号(比如10ms)去触发中断,每10ms调用一次定时中断服务程序。在定时中断服务程序中加入计数变量,就可以得到任意的定时了。
在10ms没有到时,微控制器可以运行其它程序,10ms到时再自动进去中断服务程序以处理定时任务,不会像软件延时阻塞了。
3.操作系统中,都有个硬件延时,和定时中断,可以看ucos ii中的源码,节拍时钟,和汇编语言实现的定时中断。
4.硬件延时,要占用一个定时器/计数器硬件资源。