中断系统与定时计数器各个位的定义
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第5章中断系统与定时/计数器
本章概要及学习目标
本章介绍单片机中断系统的概念及89C51三种中断类型的工作方式;介绍定时/计数器的结构、类型及控制方式。并通过实训介绍中断技术、定时/计数器的具体应用及中断服务子程序的基本编程方法。
通过对本章的学习,读者应掌握和了解以下知:
1.89C51中断系统的概念及中断系统的功能
2.特殊功能寄存器TCON、SCON、IE、IP、TH、TL和TMOD各控制位的功能及设置方法
3.定时/计数器的结构、两种工作方式、四种工作模式及应用
4.中断服务子程序的结构及基本编程方法
5.MCS-51单片机外部中断源的扩展方法
5.1 中断系统
中断系统是计算机的重要组成部分。实时控制、故障自动处理、计算机与外围设备间的数据传送往往采用中断系统。中断系统的应用大大提高了计算机的工作效率。中断技术的应用使计算机的功能更强,效率更高。
5.1.1 中断的概念
1.中断技术
中断是指CPU正在执行程序的过程中,CPU以外发生的某一事件(如芯片引脚一个电平的变化、一个脉冲沿的发生或定时/计数器的溢出等)向CPU发出中断请求信号,要求CPU暂时中断当前程序的执行而转去执行相应的处理程序,待处理程序执行完毕后,再继续执行原来被中断的程序。这种程序在执行过程中由于外界的原因而被中间打断的情况称为“中断”。例5.1中,50ms定时时间到则发生定时器0溢出,向CPU提出中断请求,CPU
响应中断请求,就暂时终止当前执行的程序,转去执行相应的处理程序ISSR(Interrupt Service Subroutine)。
“中断”之后所执行的相应的处理程序通常称之为中断服务或中断处理子程序,原来正常运行的程序称为主程序。主程序被断开的位置(或地址)称为“断点”。引起中断的原因或能发出中断申请的来源,称为“中断源”。中断源要求服务的请求称为“中断请求”(或中断申请)。例5.1中的中断服务子程序是ISSR程序,主程序中的断点(读者自行查找),中断源是定时器0,在50ms定时时间到后由硬件置位TCON寄存器中的TF0位,然后自动向CPU发出中断请求。
调用中断服务程序的过程类似于调用子程序,其区别在于调用子程序在程序中是事先安排好的,而何时调用中断服务程序事先无法确定,因为“中断”的发生是由外部因素随机决定的,程序中无法事先安排调用指令,因此,调用中断服务程序的过程是由硬件自动完成的。对这个中断全过程的分析,研究及实现方法称为中断技术。
2.中断技术的应用
采用中断技术能实现以下的功能:
(1)并行处理有了中断技术,就解决了快速的CPU与慢速外设之间的速度匹配问题,CPU可以与多台外设并行工作,CPU可分时与多台外设进行信息交换。CPU在启动外设后,便继续执行主程序;而外设被启动后,开始进行准备工作。当外设准备就绪时,就向CPU
发出中断请求,CPU响应该中断请求并为其服务完毕后,返回到原来的断点处继续执行主程序。外设在得到服务后,也继续进行自己的工作。CPU和外设并行工作。由于CPU与外设速度的悬殊差异,CPU可以使多个外设同时工作,并分时为多台外设提供服务。
(2)实时处理在单片机实时控制中,请求CPU提供服务是随机发生的。有了中断系统,CPU就可以立即响应并进行相应的处理。从而实现了实时处理。
(3)故障处理单片机系统工作时会出现一些突发故障,如电源断电、存储器出错、运算溢出等。有了中断系统,当出现故障时,CPU可及时转去执行故障处理程序,自行处理故障而不必停机。
在单片机应用系统中,为了实现上述中断功能而配置的软件与硬件,便称为中断系统。
5.1.2 中断系统的硬件结构和中断源
1.中断系统的硬件结构
中断过程是在硬件基础上再配以相应的软件而实现的,不同的计算机,其硬件结构和软件指令是不完全相同的,因此,中断系统也是不尽相同的。
89C51中断系统的结构示意图如图5. 1. 1所示。
图5. 1. 1 89C51中断系统的结构示意图
由图可知,89C51单片机有5个中断源,分别为外部中断0 INT0、外部中断1INT1、定时器0溢出中断请求TF0、定时器1溢出中断请求TF1和串行中断请求R I或TI,四个用于中断控制寄存器,分别为定时/计数器及外部中断控制寄存器TCON(用六位)、串行口控制寄存器SCON(用两位)、中断允许控制寄存器IE及中断优先级控制寄存器IP。5个中断源有两个优先级,每个中断源可以由中断优先级控制寄存器IP编程设置为高优先级或低优先级中断,同级中断源的中断先后由顺序查询逻辑电路决定。5个中断源分别对应5个固定的中断入口地址。
2.中断源
中断源是中断申请的来源。89C51单片机的5个中断源见表5. 1. 1
5.1.3 中断控制
89C51通过对4个特殊功能寄存器TCON,SCON,IE和IP的设置来进行中断允许、中断申请方式和中断优先级的控制。
1.定时器/计数器及外部中断控制寄存器TCON
TF1:定时器/计数器T1的溢出中断请求标志位。当启动T1计数后,T1从预先设置的初值
开始加1计数。当计数器最高位产生溢出时,由硬件使TF1置1,并向CPU发出中断请求。当CPU响应中断时,由硬件使TF1清零。
TF0:定时器/计数器T0的溢出中断请求标志位,含义与TF1相同。
IE1:外部中断1的中断请求标志。当检测到外部中断引脚P3.3上存在有效的中断请求信号时,由硬件使IE1置1。当CPU响应该中断请求时,由硬件使IE1清零。
IE0:外部中断0的中断请求标志位。其含义与IE1类同。
IT1:外部中断1的中断触发方式控制位。IT1为0时,外部中断1为电平触发方式,若外部中断1的引脚P3.3为低电平,则使IE1置1,请求中断。IT1为1时,外部中断1为边沿触发方式,若CPU检测到外部中断1的引脚P3.3有由高到低的负跳边沿时,则使IE1置1,请求中断。
IT0:外部中断0的中断触发方式控制位。其含义与IT1类同。
TR1:为1时启动定时器/计数器T1,为0时停止定时器/计数器T1。
TR0:为1时启动定时器/计数器T0,为0时停止定时器/计数器T0。
2.串行口控制寄存器SCON
TI:串行口发送中断请求标志。当CPU发送完一串行数据后,此时SBUF寄存器为空,硬件使TI置1,请求中断。CPU响应中断后,由软件对TI清零。
RI:串行口接收中断请求标志。当串行口接收完一帧串行数据时,此时SBUF寄存器为满,硬件使RI置1,请求中断。CPU响应中断后,用软件对RI清零。
其他几位的含义及用法见串行通信一章。
3. 中断允许控制寄存器IE。
EA:中断允许总控制位。EA=0,禁止所有中断;EA=1,开放所有中断。但是否允许各中断源的中断请求,还要取决于各中断源的中断允许控制位的状态。
ES:串行口的中断允许位。
ET1:定时器/计数器T1的中断允许位。
EX1:外部中断1 INT1 的中断允许位。
ET0:定时器/计数器T0的中断允许位。
EX0:外部中断0 INT0 的中断允许位。
以上5个中断允许控制位为0时,禁止中断,为1时允许中断。
4. 中断优先级控制寄存器IP。
89C51单片机设有两级中断优先级,通过对IP寄存器相应位的设置进行中断优先级的选择。
PS
PT1:定时器/计数器T1中断优先控制位。
PX1:外部中断1优先级控制位。
PT0:定时器/计数器T0中断控制位。