中断是指CPU正在执行程序,处理某件事情的时候,外部发生了某一事件,请求CPU马上处理。CPU暂时中断当前工作,转入处理所发生的事件,处理完后,在返回到原来被中断的地方,继续原来的工作。EA是中断的总允许位,SETBEA即使EA=1,CPU开放中断,则设计的单片机系统可以响应被“允许的中断源”申请中断,如果EA=0,则CPU屏蔽所有中断。一般主程序和中断服务程序都可能会用到累加器、PSW寄存器和一些其他寄存器。CPU在进入中断服务程序后,用到上述寄存器时就会破坏它原来存在寄存器中的内容,一旦中断返回,将会造成主程序混乱。因而,在进入中断服务程序后,一般要先保护现场,然后再执行中断服务程序,在返回主程序以前,要恢复现场。
一次中断处理过程的五个阶段如下:
1.中断请求 。
中断请求是由中断源向CPU发出中断请求信号。外部设备发出中断请求信号要具备以下两个条件:
(1)外部设备的工作已经告一段落。例如输入设备只有在启动后,将要输入的数据送到接口电路的数据寄存器(即准备好要输入的数据)之后,才可以向CPU发出中断请求。 (2)系统允许该外设发出中断请求。如果系统不允许该外设发出中断请求,可以将这个外设的请求屏蔽。当这个外设中断请求被屏蔽,虽然这个外设准备工作已经完成,也不能发出中断请求。
2.中断排队 。
中民申请是随机的,有时会出现多个中断源同时提出中断申请。但CPU每次只能响应一断源的请求,那么究竟先响应哪一个中断源的请求呢?这就必须根据各中断源工作性质的轻重缓急,预先安排一个优先级顺序,当多个中断源同时申请中断时,即按此优先级顺序进行排队,等候CPU处理。一般是把最紧迫和速度最高的设备排在最优先的位置上。
CPU首先响应优先级别最高的中断源。当中断处理完毕,再响应级别低的中断申请。
中断排队可以采用硬件的方法,也可以采用软件的方法。前者速度快,但需要增加硬设备;后者无需增加硬设备,但速度慢,特别是中断源很多时尤为突出。
软件优用查询技术:
当CPU响应中断后,就用软件查询以确定是哪些外设申请中断,并判断它们的优先权。当CPU响应中断后,把中断寄存器的状态作为一个外设读入CPU,逐位检测它们的状态,若哪一位为1,则该位对应的外设有中断请求,应转到相应的服务程序的入口。
以上就是关于编制中断服务程序时,为什么在主程序的初始化程序中全部的内容,包括:编制中断服务程序时,为什么在主程序的初始化程序中、一次中断处理过程的五个阶段、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)