一.中断
1.中断技术概述。
中断技术主要用于实时监测,及单片机及时的响应中断请求源提出的服务请求,作出快速响应并及时处理。
2.中断请求源
51单片机有五个中断源,分别是外部中断源(INT0引脚取低电平有效,INT1引脚取低电平有效)。定时器/计数器中断源(T0与T1),串行口中断(中断请求标志为寄存器SCON中的发送中断T1与接收中断R1,T1与R1属于一个中断源。)
52单片机要注意比51单片机多出一个定时器/计数器中断源(T2)
3.中断请求标志寄存器
中断源是否有中断请求,是由中断请求标志来表示的。6个中断请求源的的中断请求标志分别由特殊功能寄存器TCON,SCON,和T2CON的相应位锁存。
3.1 TCON寄存器
TCON | TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0 |
位地址 | 8FH | —— | 8DH | —— | 8BH | 8AH | 89H | 88H |
具体哪一位是哪一个中断源的中断请求标志,看上表“单片机的中断系统结构”。
3.2 SCON寄存器
SCON | - | - | - | - | - | - | TI | RI |
位地址 | - | - | - | - | - | - | 99H | 98H |
4.中断允许寄存器IE
IE | EA | - | ET2 | ES | ET1 | EX1 | ET0 | EX0 |
位地址 | AFH | - | ADH | ACH | ABH | AAH | A9H | A8H |
5. 电平触发与边沿触发
外部中断有两种工作模式,拿INT0低电平有效端口举例。当IT0位 = 0时,为电平触发模式。低电平有效(适用于快频率的检测,因为一般来讲,高低电平持续的时间较长容易被检测到。)当IT0位 = 1时,为跳沿触发模式,加到引脚INT0低电平有效上的外部中断请求把输入信号从高到低的负跳变算作有效,并把IE0置1,转向终端服务程序时,则由硬件自动把IE0清0.(具体请参照上述中断结构系统图)。
对于跳沿触发模式,经常会捕获不到,为解决这个问题,设计了一个硬件电路记录跳沿的存在,具体原理是当在一个机器周期检测到引脚高电平,下一个机器周期检测到引脚低电平时,则记录一次跳沿。为了保证按键之后能被系统记录下。这种模式低电平持续时间需要超过两个机器周期。
一个机器周期等于12个时钟周期。比如一款芯片晶振频率为f = 12Mhz,则时钟频率 = 。
6.自然优先级
8051系列单片机有三个优先级,分别是普通级,优先级,高优先级,五个中断源都属于优先级,但是五个中断源只能有一个是高优先级。
五个/六个中断源的自然优先级排序从上到下依次是:
PX0 | INT0低电平有效 | 外部中断0 |
PT0 | T0 | 定时器0 |
PX1 | INT1低电平有效 | 外部中断1 |
PT1 | T1 | 定时器1 |
PS | TX RX | 串口中断 |
PT2 | T2EX | 定时器2 |