有没得办法可以查询一个网站有没得做竞价呀,ai可以用来做网站吗,新余市网站建设,电商平台怎么推广大家好啊#xff0c;这几天因为考试断更了一段时间#xff0c;现在放假了也可以恢复正常的更新速度了。今天我们来认识一下单片机的中断系统#xff0c;这里可以说是我们学习单片机以来第一个核心功能#xff0c;我们会分几期内容来深入了解中断系统的作用原理和应用方式。…大家好啊这几天因为考试断更了一段时间现在放假了也可以恢复正常的更新速度了。今天我们来认识一下单片机的中断系统这里可以说是我们学习单片机以来第一个核心功能我们会分几期内容来深入了解中断系统的作用原理和应用方式。
中断的定义
中断的结构
TCON
SCON
IE
IP
中断的定义
当CPU正在执行某个程序时由单片机内部或外部的原因引起的紧急事件向CPU发出请求处理的信号CPU在允许的情况下响应请求信号暂时停止正在执行的程序保护好断点处的现场转向执行一个用于处理该紧急事件的程序处理完后又返回被中止的程序断点处继续执行原程序
以上过程就称为中断流程如图所示 它并不是单指在输入请求信号的作用下打断原程序而是包括保存原程序、执行中断服务、返回原程序等多个步骤重点是在立即执行中断程序的同时不影响原先进程。
中断的结构
先前提到中断是由单片机内部或外部的原因向CPU发送请求信号而引发的那么我们就要提出一个中断请求源的概念。中断请求源是指产生中断请求的源头在51单片机中共有5个中断请求源包括外部中断引脚INT0和INT1以及内部中断源如定时器中断、串口中断等。 我们从左到右依次介绍首先是最左侧的中断源大家看到有6个名称可能会感到疑惑——不是五个中断源吗。实际上图中的TX和RX对应的是同一个中断即串口通信中断TX负责发送功能而RX负责接收功能。除了串口中断外都是一个引脚对应一个中断源INT0是外部中断0由P3.2引脚输入紧接着是定时器/计数器T0由P3.4引脚输入在之后是INT1和T1分别对应外部中断1和定时器/计数器1引脚号可以参考STC89C52的结构图。STC89C52STC89C52STC89C52 细心的朋友会发现T0,T1,TX和RX是直接接到中断标志上的为什么INT1和INT0后面还有IT0和1的选择呢。实际上这个选择也是由TCON控制的只是外部中断信号在输入时需要先设置相应的触发方式。在51单片机中整个中断系统主要由与中断相关的4个特殊功能寄存器和硬件查询电路等组成分别为
定时/计数器控制寄存器TCON串行口控制寄存器SCON中断允许控制寄存器IE中断优先级控制寄存器IP
TCON
TCON全称是定时/计数器控制寄存器作用是控制定时器的启动与停止并保存T0、T1的溢出中断标志和外部中断的中断标志。
地址88H8FH8EH8DH8CH8BH8AH89H88H名称TCONTF1TR1TF0TR0IE1IT1IE0IT0
高四位控制定时器0和1低四位控制外部中断0和1.
TF1和TF0位分别表示定时器1和定时器0的溢出标志位。当定时器溢出时对应的溢出标志位会被置位。
TR1和TR0位用于控制定时器1和定时器0的开始/停止操作。当TR1或TR0位被置位时对应的定时器开始计数当TR1或TR0位被清零时对应的定时器停止计数。
IE1和IE0位分别表示外部中断1和外部中断0的使能位。当IE1或IE0位被置位时对应的外部中断允许产生中断请求。
IT1和IT0位用于设置外部中断1和外部中断0的触发类型。当IT1或IT0位为0时对应的外部中断触发类型为电平触发当IT1或IT0位为1时对应的外部中断触发类型为边沿触发。
下面对两种触发方式做一些补充
当外部中断引脚被设为电平触发时对应的TCON寄存器的IT0或IT1位需要被清零。这样当外部中断引脚检测到高电平或低电平具体取决于电平触发的方式时中断就会被触发处理器会跳转到外部中断的中断服务程序执行相应的操作。那么电平触发的方式应该怎么确定呢在上方的引脚图中我们可以看到P3.2和P3.3对应的INT引脚被加上了横线这代表“低电平有效”也就是说当51单片机的外部中断引脚检测到低电平时才会触发中断。
边沿触发也叫跳沿触发是指当外部中断引脚的电平发生变化时中断被触发。边沿触发方式可以选择上升沿触发或下降沿触发。在51单片机中由于“低电平有效”所以采用下降沿触发。当外部中断引脚检测到高电平下降为低电平时中断就会被触发处理器会跳转到外部中断的中断服务程序执行相应的操作。
两种触发方式各有利弊需要根据使用场景来选择。电平触发的中断响应速度更快并且对中断源的响应更灵敏。但是如果中断源的电平被保持时间过长那么中断服务程序可能会被频繁调用导致额外的中断处理负担而跳沿触发方式适合于以负脉冲形式输入的外部中断请求检测规律性的变化电平。
SCON SCON全称为串行口控制寄存器由于笔者所在专业对通信无过多要求这里只是简要介绍其功 能仅作为参考。 SM0/FE: 串口通信模式位/帧错误位。SM0和SM1位用于设置串口通信的工作模式而FE位用于指示接收到的数据帧是否有错误。SM1: 串口通信模式位。SM0和SM1位组合起来用于设置串口通信的工作模式。不同的SM0和SM1位组合可以实现不同的通信模式如8位单机通信模式、9位单机通信模式、多机通信模式等。SM2: 多机通信模式位。SM2位仅在SM0和SM1位为10时有效用于指示当前处于多机通信模式。在多机通信模式下可以通过地址识别不同的串口设备。REN: 接收使能位。REN位用于控制串口接收器的启用和禁用。当REN位为1时接收器处于启用状态可以接收数据当REN位为0时接收器处于禁用状态不接收数据。TB8/RB8: 发送/接收的第8位。TB8位用于指示发送的数据帧的第8位而RB8位用于指示接收到的数据帧的第8位。TI: 发送中断标志位。TI位用于指示发送操作是否完成当发送操作完成后TI位将置1。可以通过检测TI位来判断是否可以发送下一个数据。RI: 接收中断标志位。RI位用于指示接收操作是否完成当接收到数据后RI位将置1。可以通过检测RI位来读取接收到的数据。
通过设置和操作SCON寄存器的不同位可以实现对串口通信相关功能的控制和操作实现单片机与外部设备的串口通信。
IE IE全称为中断允许控制寄存器用于控制CPU对中断的开放或屏蔽、每个中断源是否允许中断。 地址A8HAFH/ / ACHABHAAHA8HA9H名称IEEA/ /ESET1EX1ET0EX0
EA: 总中断使能位用于控制总体中断的使能和禁止。当EA位为1时允许中断当EA位为0时禁止中断。
ET0: 定时器0中断使能位用于控制定时器0中断的使能和禁止。当ET0位为1时允许定时器0中断当ET0位为0时禁止定时器0中断。ET1: 定时器1中断使能位同理。
EX0: 外部中断0使能位用于控制外部中断0的使能和禁止。当EX0位为1时允许外部中断0当EX0位为0时禁止外部中断0。EX1: 外部中断1使能位同理。
ES: 串口中断使能位用于控制串口中断的使能和禁止。当ES位为1时允许串口中断当ES位为0时禁止串口中断。
通过设置和操作IE寄存器的不同位可以控制不同中断的允许和禁止。同时通过设置EA位可以一次性控制所有中断的允许和禁止。
IP IP全称为中断优先级控制寄存器作用是设定各中断源的优先级别IP的每一位均可以由软件来置1或清0。 地址B8H/ / / BCHBBHBAHB9HB8H名称IP///PSPT1PX1PT0PX0 PX0: 外部中断0的优先级位。当PX0位为1时外部中断0的优先级为高优先级当PX0位为0时外部中断0的优先级为低优先级。
PT0: 定时器0中断的优先级位。当PT0位为1时定时器0中断的优先级为高优先级当PT0位为0时定时器0中断的优先级为低优先级。
PX1: 外部中断1的优先级位。当PX1位为1时外部中断1的优先级为高优先级当PX1位为0时外部中断1的优先级为低优先级。
PT1: 定时器1中断的优先级位。当PT1位为1时定时器1中断的优先级为高优先级当PT1位为0时定时器1中断的优先级为低优先级。
PS: 串口中断的优先级位。当PS位为1时串口中断的优先级为高优先级当PS位为0时串口中断的优先级为低优先级。
IP寄存器中的位设置可以决定不同中断的优先级高优先级的中断会优先被处理。当多个中断同时到达时优先级高的中断会先被响应。需要注意IP寄存器的设置需要与IE寄存器的设置相配合才能正确地实现中断的优先级控制。
这里补充一点优先级的设定单片机共有三个优先级优先顺序分别是高优先级中断低优先级中断普通程序普通程序可以有多个中断源在无说明的情况下默认为低优先级也就是5个而高优先级需要在IP中设定且只能有一个。正在执行低优先级的中断服务程序可被高优先级的中断源所中断但不能被同级或低级别的中断源所中断 正在执行的高优先级的中断服务程序不能被任何中断源所中断。
另外中断源还存在着自然优先级如果几个同一优先级别的中断源同时向CPU请求中断CPU将通过单片机内部的硬件查询逻辑首先响应自然优先级较高的中断源的中断请求。自然优先级由电路规定如图所示 今天我们一同学习了中断的基础概念和系统组成之后会为大家介绍中断服务函数的使用。