您的位置:首页 > 科技 > 能源 > 单片机多个中断源时的设计思路,(51为例)工作寄存器R0-R7

单片机多个中断源时的设计思路,(51为例)工作寄存器R0-R7

2024/10/6 4:05:39 来源:https://blog.csdn.net/weixin_43794311/article/details/139588613  浏览:    关键词:单片机多个中断源时的设计思路,(51为例)工作寄存器R0-R7

51单片机中四组工作寄存器(R0-R7)

参考
可以看出每个工作寄存器区8个字节即为R0-R7,当不指定使用哪个工作寄存器区的时候默认0区。其他工作区作为普通的RAM使用。特殊功能寄存器中有可以位寻址和不能位寻址的区域
在这里插入图片描述
在这里插入图片描述

下面文字引用
通过修改PSW中的RS1、RS0两位的状态,就能任选一个工作寄存器区。这个特点提高了现场保护和现场恢复的速度。对于提高CPU的工作效率和响应中断的速度是很有利的。若在一个实际的应用系统中,不需要四组工作寄存器,那么这个区域中多余单元可以作为一般的数据缓冲器使用。

在keil中使用不同的工作寄存器组的范例

下面是一个使用寄存器1的格式,使用关键字using
在这里插入图片描述

多个中断源如何设置

参考
多个中断的程序执行过程
在这里插入图片描述

中断系统结构

在这里插入图片描述

中断请求标志位

定时器和外部中断标志位

下面标志位一般不关心,因为不需要读取这些状态,直接进入中断函数处理。
在这里插入图片描述

串口中断标志位

实际上对于标志位还是串口使用比较多,通过标志位判断数据发送和接收
在这里插入图片描述

中断允许寄存器

在这里插入图片描述

中断优先级

MCS-51的中断请求源有2个中断优先级,表示为低优先级和高优先级,就可以通过一位控制一种中断的优先级
在这里插入图片描述
同级优先级,则根据中断的地址来判断先执行哪个中断,如下图所示,
在这里插入图片描述

多个中断程序设计的整体思路

1,必须设置中断控制寄存器IE和优先级控制寄存器IP

2,psw状态寄存器没必要设置

首先使用哪个寄存器,在keil中使用using关键字实现,这时没必要我们设置(不知道是不是编译中自动生成)。
实际来说,我们也不能确定什么时候来中断,而且中断就会进入工作寄存器中。在中断之前指定工作寄存器?指定哪个呢?不知道哪个中断使用的寄存器先被使用到。所以这个寄存器就当是一个读取中断标志位的寄存器就行。

3,中断函数中,一般会用到中断请求标志位的寄存器TCON和SCON(串口)

串口标志寄存器位使用较多,用于判定收发数据。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com