第5章中断系统与定时计数器Word文档下载推荐.docx
- 文档编号:16638777
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:24
- 大小:147.42KB
第5章中断系统与定时计数器Word文档下载推荐.docx
《第5章中断系统与定时计数器Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《第5章中断系统与定时计数器Word文档下载推荐.docx(24页珍藏版)》请在冰豆网上搜索。
MCS—51单片机的中断系统由中断允许寄存器IE、中断优先权寄存器IP、中断入口电路、优先查询逻辑电路、中断矢量发生电路等组成,逻辑结构如图5-1-1所示。
图5-1-1MCS-51中断系统逻辑结构
(1)外部中断源
2个外部中断源INT0(P3.2)和INT1(P3.3)均可定义为电平(低电平)触发方式输入或边沿(下降沿)触发方式。
外部中断申请信号经电平/边沿选择逻辑后送触发器IE0或IE1保存,等待CPU响应中断。
(2)3个内部中断源
MCS—51单片机内部有2个定时/计数器CT0、CT1和1个串行通信接口UART,这3个内部功能单元都可以定义为允许中断方式。
当定时/计数器CT0或CT1溢出时,溢出标志触发器TF0(TCN.5)或TF1(TCN.7)有效,如果这时的中断允许是开通的,则可以向CPU申请中断,进行相关处理。
串行通信接口UART可以同时发送和接收数据,发送或接收数据完毕时,置位发送结束标志触发器TI(SCON.1)或接收结束标志触发器RI(SCON.0),同样,如果这时的相关中断允许是开通的,就可以向CPU申请中断。
INT0、INT1的中断触发标志IE0、IE1以及CT0、CT1的溢出标志触发器TF0、TF1位于特殊功能寄存器TCON中,UART的发送和接收结束标志触发器TI、RI位于特殊功能寄存器SCON中。
如下所示
TCON:
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
SCON:
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
TCON称为定时/计数器状态寄存器,字节地址为88H,SCON称为串行口控制寄存器,字节地址为88H,以后的章节中将会作具体介绍。
如图5-1-1所示,内部中断触发标志TF0、TF1、TI或RI与外部中断触发标志IE0、IE1一起送中断排队逻辑,经过中断允许控制、中断优先级控制以及中断入口地址矢量控制等电路,等待CPU响应处理。
需要说明的是,52系列单片机比51系列单片机多1个定时/计数器2的内部中断源。
另外,一些变形的兼容51系列单片机可能还有一些其它独特的中断源,例如Philips公司的P87LPC76X单片机还提供有键盘中断。
2.MCS—51单片机的中断控制
MCS—51单片机内部有4个特殊功能寄存器与中断控制相关,它们分别是中断允许寄存器IE、中断优先权寄存器IP、定时/计数器状态寄存器TCON(用6位)和串行口状态寄存器SCON(用2位)。
(1)中断允许控制IE
MCS—51单片机的5个中断源都可以通过程序开通或关断。
实现中断开关控制的控制寄存器叫中断允许寄存器IE,字节地址为A8H。
EA
X
ET2
ES
ET1
EX1
ET0
EX0
INT0允许位,0-禁止,1-允许
CT0允许位,0-禁止,1-允许
INT1允许位,0-禁止,1-允许
CT1允许位,0-禁止,1-允许
UART允许位,0-禁止,1-允许
(CT2允许位,0-禁止,1-允许)
无效位
系统总允许位,0-禁止,1-允许
EA为系统中断总允许位。
EA=0,禁止向CPU申请中断,系统中断全部关闭;
EA=1,则系统中断开通,允许各中断源申请中断。
ES、ET1、EX1、ET0、EX0则分别是串行口UART、定时/计数器CT1、外部中断INT1、定时/计数器CT0、外部中断INT0的允许控制位,0—禁止,1—允许。
(2)中断优先级控制IP
MCS—51单片机有2个中断优先级,低优先级的中断可以被高优先级的中断所中断,反之不然。
同级中断相互间不能打断。
这就是说,可实现二级中断嵌套。
一个正在执行的低优先级中断能被高优先级中断所中断,但不能被另一个低优先级中断所中断,一直执行到遇到中断返回指令RETI后,返回主程序。
返回主程序后再执行一条指令才能响应新的中断请求,这一特性常被用来实现程序调试时的单步执行工作方式。
MCS—51单片机内部中断系统有两个不可寻址的“优先级有效”触发器。
其中一个指示某高优先级的中断正在执行,所有后来申请的中断都被阻止。
另一个触发器指示某低优先级的中断正在执行,所有的同级中断都被阻止,但不阻止高优先级的中断。
MCS—51单片机内有一个优先级控制寄存器IP,字节地址为B8H,只要用程序改变其内容,就可对各中断源的中断级别进行设置。
其格式如下:
PT2
PS
PT1
PX1
PT0
PX0
INT0,0-低优先级,1-高优先级
CT0,0-低优先级,1-高优先级
INT1,0-低优先级,1-高优先级
CT1,0-低优先级,1-高优先级
UART,0-低优先级,1-高优先级
(ET2,0-低优先级,1-高优先级)
优先级控制寄存器IP的低5位IP.4~IP.0分别代表了5个中断源的优先级别,0—低优先级,1—高优先级。
IP.5用于52系列单片机的定时/计数器CT2。
如果同时收到中断请求时,CPU首先响应高优先级中断源。
若同时收到的中断请求为同级别时,哪一个先得到服务,取决于中断系统内部的查询顺序。
这相当于在每个优先级内,还同时存在另一个辅助优先级结构。
系统开机默认的中断优先级为同级别,但是,尽管同级,也有一个默认的优先查询顺序:
中断源同级中断的优先顺序
外部中断0(INT0)高
定时/计数器0(CT0)
外部中断1(INT1)
定时/计数器1(CT1)
串行口(UART)
定时/计数器2(CT2)低
(3)外部中断的电平/边沿选择
外部中断INT0和INT1可以由程序设置为低电平触发或边沿触发方式,其控制位在TCON中,通过对定时/计数器状态寄存器TCON中IT0、IT1位的设置,可以实现对外部外部中断触发方式的选择。
定时器/计数器状态中断状态
IT0、IT1分别为外部中断INT0、INT1的类型控制位,靠编程人员软件置位或清除。
置1时,外部中断为下降沿触发方式;
清0时,外部中断为低电平触发方式。
若外部中断定义为电平触发方式,则外部中断请求触发器的状态随着CPU在每个机器周期采样到的外部中断输入线的电平的变化而变比。
外部中断设置为电平触发方式时,外部中断输入必须保持低电平,直到CPU响应该中断为止。
同时,在中断服务程序返回之前,外部中断输入必须为高电平,否则CPU返回后会再一次响应中断。
若定义为外部中断边沿触发方式,外部中断请求触发器能锁存外部中断输入线上的负跳变,即使CPU暂时不能响应,中断请求标志也不会丢失。
在这种方式里,如果相继连续两次采样,一个周期采样到外部中断输入为高电平,下一个周期采样列低电平,则置位中断请求触发器,直至CPU响应此中断时才清零。
这样不会丢失中断,但输入请求脉冲宽度至少保侍12个时钟周期才能被CPU采样到。
(4)中断的状态控制
TCON中的TF0和TF1是CT0和CT1的溢出标志位。
当CTi计数溢出(由全1再加1变为全0,则溢出)后使TFi置1,并申请中断。
系统响应中断服务后自动将该标志清0。
TCON中的IE0和IE1是外部中断INT0和INT1的请求标志位。
系统自动监控INTi引脚的电平或边沿,当出现低电平或下降沿时,系统自动使IEi置位,向系统申请中断,系统响应中断服务后自动将该标志清0。
3.中断响应
(1)中断响应条件
单片机响应中断的条件是:
◆中断源有请求
◆CPU允许中断,即EA=1;
◆中断源允许中断,即中断允许寄存器IE相应位置1。
在每个机器周期内,单片机对所有中断源都进行顺序检测,并可在任一个周期的S6状态期间,找到所有有效的中断请求,并对其进行优先级排队,只要满足下列条件:
◆无同级或高级中断正在服务;
◆现行指令执行到最后一个机器周期且已结束;
◆若现行指令为RETI或是访问特殊寄存器IE或IP的指令时,则需执行完该指令以及紧随其后的另一条指令。
以上条件满足后,单片机便在紧接着的下一个机器周期S1状态期间响应中断,否则将丢弃该中断查询的结果。
(2)中断响应入口
MCS—51单片机程序存储器中有7个地址单元留作特殊用途,分别用作复位和6个中断源的入口。
如表2-3-1所示,其中0003H、000BH、0013H、001BH、0023H、002BH分别是INT0、CT0、INT1、CT1、UART、CT2的中断的入口地址。
图5-1-1所示中断逻辑系统中有专门的中断入口矢量地址发生电路,当某中断源被CPU响应时,该电路负责将对应的中断源的中断入口地址提供给CPU的程序指针PC。
(3)中断响应时间
CPU不是在任何情况下都对中断请求立即响应,而且不同情况对中断响应的时间也不同,下面以外部中断为例,说明中断响应时间。
外部中断请求信号的电平在每个机器周期的S5P2期间,经反相后锁存到IE0或IE1标志位,CPU在下一个机器周期才会查询到这些值。
如果满足响应条件,CPU响应中断时,需执行一条两个机器周期的调用指令,以转到相应的中断服务入口。
这样,从外部中断请求有效到开始执行中断服务程序的第一条指令,至少需3个机器周期。
如果在申请中断时,CPU正在执行乘、除法指令,则至少需6个机器周期。
如果在申请中断时,CPU正在执行RETI或访问IE、IP指令,则至少需8个机器周期。
由以上的分析可见,系统中只有一个中断源时,响应时间为3~8个机器周期。
若还有其它中断源,则响应时间由其优先级别以及具体应用程序执行情况而定。
(4)中断响应过程
单片机一旦响应中断,首先置位相应低或高优先级有效触发器,然后执行一个硬件子程序调用,把断点地址(即现行程序指针PC的值)压入堆栈保护,然后将对应的中断入口地址装入程序计数器PC,使程序转向该中断入口地址,执行中断服务程序。
需要说明的是,单片机响应中断后,只保护断点而不保护现场。
保护断点PC的工作是硬件自动完成的,而对累加器A、程序状态字PSW、数据指针DPTR、乘法寄存器B、通用寄存器Rn等的现场保护则必须有软件在中断服务程序中完成。
(5)中断响应的返回
中断服务程序执行到RETI指令,则中断自动将堆栈中断点恢复到PC中,实现返回。
断点的恢复是硬件自动实现的,而现场的恢复则同样由软件完成。
这一点与子程序调用的过程相同。
4.中断请求的撤除
单片机响应中断后,定时/计数器中断申请标志TF0和TF1以及外部中断申请标志IE0和IE1是硬件自动清除的。
但是,串行口中断申请标志TI和RI则不能由硬件自动清除,这一点需要在应用程序设计中予以注意,需采用软件清除TI和RI标志。
图5-1-2外部中断撤除电路
另外,尽管系统硬件可以自动撤除外部中断申请标志IE0和IE1,但是,硬件无法清除外部中断INT0和INT1申请源信号。
因此,对于电平方式的外部中断,仍然存在对外部中断的重复响应的可能。
用户在编制中断服务程序时,一方面可以通过软件控制外部中断申请源复位,另一方面也应该采用诸如单稳态触发等方法对中断源进行预处理。
图5-1-2为一个典型的外部中断撤除电路,外部中断源使D触发器锁存0信号,申请中断,中断响应后,软件控制从P1.0口输出低电平0使D触发器置1,撤除外部中断申请。
5.1.3中断系统应用
例5-1-1:
在MCS—5l单片机的外部中断/INT0引脚上输入一个正脉冲实现单步执行方式,其硬件逻辑电路如图5-1-3所示。
图中/INT0引脚平时为低电平,每当用户按一次单步执行键时,单脉冲电路就输出一个正脉冲加到/INT0引脚上。
因此在没有按键时,CPU总是处于响应中断的状态。
利用/INT0实现单步运行控制的过程为:
首先进行初始化操作,设定外部中断/INT0为电平触发方式,高优先级中断,开/INT0中断。
由于外部中断/INT0引脚输入低电平,CPU在执行一条用户主程序指令后,立即响应中断,进入中断服务服务程序。
初始化程序为:
CLRIT0;
设INT0为电平中断方式
SETBPX0;
设INT0为高优先级
SETBEX0;
开INT0中断
SETBEA;
开系统中断
中断服务程序为:
ORG0003H
LJMPINT0-SUB;
中断入口
:
INT0-SUB:
…;
显示调试数据
LOOP1:
JNBP3.2,LOOP1;
等待INT0引脚为高电平
LOOP2:
JBP3.2,LOOP2;
等待INT0引脚为低电平
RETI
中断服务程序的主要任务是显示系统主要工作状态,例如,显示A、B、PSW、DPTR、SP、R0~R7等,这由程序设计决定。
显示完毕后,中断服务程序等待单步调试按键是否动作,直到有新的按键动作才退出服务。
中断服务程序执行完RETI指令后,至少要再执行一条指令才能响应新的中断请求,这就意味着每次按键CPU执行了一条用户程序指令。
重复以上过程,这样便实现单步执行用户程序指令的过程。
图5-1-3单步执行硬件逻辑电路
5.2MCS-51单片机的定时计数器
5.2.1基本结构与功能
1.基本组成
MCS—51单片机拥有两个相互独立的16位可编程定时/计数器CT0、CT1。
每个定时/计数器均可编程工作为定时或计数两种工作方式,并可编程工作于模式0、模式1、模式2、模式3四种工作模式。
定时/计数器基本结构如图5-2-1所示。
图5-2-1定时/计数器工作寄存器结构
与定时/计数器相关的寄存器包括:
◆CT0的时间常数寄存器TH0、TL0;
◆CT1的时间常数寄存器TH1、TL1;
◆工作模式控制寄存器TMOD;
◆工作状态寄存器TCON。
这些工作寄存器均位于MCS-51内部SFR存储体中。
其中,THi、TLi分别用于存放CTi的高8位、低8位时间常数。
TMOD又称为定时/计数器方式控制字,用于对两个定时/计数器CTi工作方式的控制。
TCON又称为定时/计数器状态控制字,反映了两个定时/计数器CTi的工作状态。
2.基本结构与功能
图5-2-2为定时/计数器CTi的内部结构。
由图可见,CTi的主体是一个加法计数器,通过相关控制位的操作,可对模拟开关进行切换,从而控制CTi实现以下不同功能:
◆计数器:
对引脚Ti上的脉冲数进行计数;
◆定时器:
以系统时钟Φ的1/12分频时序脉冲作为计数脉冲,计数器进行加法计数,也可将外部基准脉冲源通过Ti接入到计数器,从而实现更长时间定时。
外接基准信号源的最小频率不得小于1/12系统时钟;
◆脉宽测量:
可检测/INTi引脚的高电平宽度。
图5-2-2定时/计数器逻辑结构
5.2.2定时/计数器的方式控制与状态控制
MCS—51单片机内部的定时器/计数器是一种可编程的部件,在其工作之前必须将控制字写入方式寄存器TMOD和状态控制寄存器TCON,以确定其工作方式,即需要对定时器/计数器进行初始化。
1.方式控制(模式控制)
MCS—51内部RAM空间高128字节为SFR寄存器块,其中就包括定时器/计数器模式控制寄存器TMOD,其RAM地址为89H。
TMOD的定义如下:
GATE:
门控位。
GATE=1时,/INTi引脚=1并且TRi=1,则CTi工作;
若GATE=0,则只要TRi=1,CTi就工作,而不管INTi引脚是否为高电平。
C/T:
定时/计数方式选择位。
C/T=0时,CTi工作于定时方式,即对系统时钟Φ的1/12分频时序脉冲进行计数,由于是对固定周期的脉冲进行计数,从而可以实现定时功能;
C/T=1时,CTi工作于计数方式,对从Ti管脚接入的外部脉冲信号进行计数。
显然,从Ti管脚接入的外部脉冲信号可以是单脉冲也可以是连续脉冲,这时CTi实现的就是对外部脉冲事件的计数。
如果从Ti管脚接入的外部脉冲信号周期固定且是已知的,则也同样可以间接地实现定时功能。
M1、M0:
模式控制位。
用于设定CTi工作于模式0、模式1、模式2以及模式3等4种模式之一。
TMOD的高4位用于控制CT1,低4位用于控制CT0。
2.状态控制
定时/计数器的状态控制字TCON的字节地址为88H,其低4位用于中断控制,而高4位则反映了2个定时/计数器CT1和CT0的工作状态。
TFi:
溢出标志位。
计数器CTi溢出(由全1再加1变为全0时,则溢出)后使TFi=1,并申请中断。
系统响应中断服务后自动清除该标志。
TRi:
定时/计数启动控制位。
TRi由编程人员软件置1或清0,置1时,CTi启动工作;
清0时,CTi停止工作。
由图5-2-2可见,CTi是否工作还还取决于GATE和INTi的状态,因此,严格意义上来说,TRi还不能称为真正的启动位,因此,通常我们称TRi为允许工作控制位。
TMOD、SCON在系统复位时均自动清0。
对定时器/计数器进行初始化的过程就是对TMOD、SCON中相关位的设置过程,可以应用赋值指令(MOV类、逻辑类)对其进行设置,以实现对定时器/计数器工作方式的设置。
例如,以下两条指令均可将TMOD.6位置1。
需要注意的是,TMOD的位不能位寻址,编程时需要注意。
MOVTMOD,#40H
ORLTMOD,#40H
3.定时/计数器的4种工作模式
MCS—51单片机的2个16位的定时器/计数器具有定时和计数两种功能,每种功能包括4种工作方式,除了工作方式3以外,其他3种工作方式的基本原理都是一样的。
用户通过指令把方式字写入TMOD中来选择定时器/计数器的功能和工作方式,通过把计数的初始值写入THi和TLi中来控制计数长度,通过对TCON个相应位进行置1或0,来实现启动定时器工作或停止计数。
用户还可以读出THi、TLi、TCON中的内容来查询定时/计数器的工作状态。
定时器/计数器的工作模式控制由模式控制字TMOD中的M1、M0位来实现,如表5-2-1所示。
各种工作模式的结构原理如图5-2-3所示。
表5-2-1:
定时/计数器的4种工作模式
M1
M0
方式
说明
13位定时/计数器。
工作寄存器的低字节TLi的高3位无效。
最大计数值为213=8192。
1
16位定时/计数器。
最大计数值为216=65536。
2
8位可自动重装载的定时/计数器。
TLi溢出后,一方面使TFi为1申请中断,另一方面,将THi中的数据自动装载到TLi中,重新开始定时/计数,重装载后THi中的数据不变。
模式2主要应用于UART的波特率控制。
3
对于定时/计数器1而言,模式3相当于使TRi=0,即停止计数,保持原有计数值不变。
对于定时/计数器0而言,模式3将定时/计数器0分解为2个独立的8位定时/计数器。
模式3较少使用。
图5-2-3定时/计数器的4种工作方式
(1)模式0——13位定时/计数器
M1M0=00时,CTi工作于13位定时/计数器模式。
TLi的低5位计数满后向高8位THi进位,THi的8位计数满后置位TCON中的TFi位,产生溢出标志信号。
模式0最大计数值为213=8192。
以Φ=12MHZ为例,最大定时时间8192μs,约8ms。
(2)模式1——16位定时/计数器
M1M0=01时,CTi工作于16位定时/计数器模式。
TLi计数满后向THi进位,T
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中断 系统 定时 计数器