中断系统与定时计数器各个位的定义
- 格式:doc
- 大小:938.00 KB
- 文档页数:16
52单片机中断52单片机一共有6个中断源:INTO0--外部中断0,由P3.2端口线引入,低电平或下降沿引起。
INTO1--外部中断1,有P3.3端口线引入,低电平或下降沿引起。
T0--定时器/计数器0中断,由T0计数器计满回零引起。
T1--定时器/计数器1中断,由T1计数器计满回零引起。
T2--定时器/计数器2中断,由T2计数器计满回零引起。
TI/RI--串口中断,串行端口完成一帧字符发送/接收后引起。
52单片机的中断级别单片机在使用中断功能时,通常需要设置两个与中断有关的寄存器:①中断允许寄存器IE②中断优先级寄存器IP一,中断允许寄存器 IE功能:EA-- 全局中断允许位EA=1 打开全局中断控制,在此条件下,有各个中断控制位确定相应中断的打开或关闭EA=0 关闭全部中断ET2 定时器/计数器2中断允许位ET2=1 打开T2中断ET2=0 关闭T2中断ES 串行中断允许位ET1 定时器1中断允许位EX1 外部中断1允许位ET0 定时器/计数器0中断允许位EX0 外部中断允许位二,中断优先级寄存器IPPS 串行优先级控制位PS=1 串行口中断定义为高优先级中断PS=0 串行口中断定义为低优先级中断PT1 定时器/计数器1优先级控制位PX1 外部中断1中断优先级控制位PT0 定时器/计数器0优先级控制位PX0 外部中断0中断优先级控制位注意:定时器系统是单片机内部一个独立的硬件部分,它与CPU和晶振通过内部某些控制线连接并相互作用,CPU一旦设置开始启动定时功能后,定时器便在晶振的作用下自动开始计时,当定时器计数计满后,会产生中断,即通知CPU该如处理。
单片机在使用定时器/计数器功能时,通常需要设置两个与定时器有关的寄存器:①工作方式寄存器TMOD②控制计数器TCON一,工作方式寄存器TMODGATE 门控位GATE=0 定时器/计数器启动与停止仅受TCON寄存器中TRX(X=0,1)来控制GATE=1 定时器/计数器启动与停止由TCON寄存器中TRX(X=0,1)和外部中断引脚(INT0或INT1)上的电平状态来共同控制C/T 定时器模式和计数器模式选择位(1为计数器模式,0为定时器模式)M1M0 工作方式选择位每个定时器有4个工作方式,他们由M1M0设定二,定时器/计数器控制寄存器TCONIF1 定时器1溢出标志位TR1 定时器1运行控制位由软件清零关闭定时器1,当GATE=1,且INT1为高电平时,TR1置1启动定时器1;当GATE=0时,TR1置1启动定时器1IE1 外部中断1请求标志当IT0=1时为电平触发方式,每个机器周期的S5P2采样INT1引脚,若INT1脚为低电平。
mcs-51单片机计数器定时器详解【1】80C51单片机内部设有两个16位的可编程定时器/计数器。
可编程的意思是指其功能(如工作方式、定时时间、量程、启动方式等)均可由指令来确定和改变。
在定时器/计数器中除了有两个16位的计数器之外,还有两个特殊功能寄存器(控制寄存器和方式寄存器)。
:从上面定时器/计数器的结构图中我们可以看出,16位的定时/计数器分别由两个8位专用寄存器组成,即:T0由TH0和TL0构成;T1由TH1和TL1构成。
其访问地址依次为8AH-8DH。
每个寄存器均可单独访问。
这些寄存器是用于存放定时或计数初值的。
此外,其内部还有一个8位的定时器方式寄存器TMOD和一个8位的定时控制寄存器TCON。
这些寄存器之间是通过内部总线和控制逻辑电路连接起来的。
TMOD主要是用于选定定时器的工作方式;TCON主要是用于控制定时器的启动停止,此外TCON还可以保存T0、T1的溢出和中断标志。
当定时器工作在计数方式时,外部事件通过引脚T0(P3.4)和T1(P3.5)输入。
定时计数器的原理:16位的定时器/计数器实质上就是一个加1计数器,其控制电路受软件控制、切换。
当定时器/计数器为定时工作方式时,计数器的加1信号由振荡器的12分频信号产生,即每过一个机器周期,计数器加1,直至计满溢出为止。
显然,定时器的定时时间与系统的振荡频率有关。
因一个机器周期等于12个振荡周期,所以计数频率fcount=1/12osc。
如果晶振为12MHz,则计数周期为:T=1/(12×106)Hz×1/12=1μs这是最短的定时周期。
若要延长定时时间,则需要改变定时器的初值,并要适当选择定时器的长度(如8位、13位、16位等)。
当定时器/计数器为计数工作方式时,通过引脚T0和T1对外部信号计数,外部脉冲的下降沿将触发计数。
计数器在每个机器周期的S5P2期间采样引脚输入电平。
若一个机器周期采样值为1,下一个机器周期采样值为0,则计数器加1。
51单片机中断系统详解51 单片机中断系统详解(定时器、计数器)51 单片机中断级别中断源INT0---外部中断0/P3.2 T0---定时器/计数器0 中断/P3.4 INT1---外部中断1/P3.3 T1----定时器/计数器1 中断/P3.5 TX/RX---串行口中断T2---定时器/计数器 2 中断第5 最低4 5 默认中断级别最高第2 第3 第4 序号(C 语言用) 0 1 2 3 intrrupt 0中断允许寄存器IE位序号符号位EA/0 ------ET2/1 ES ET1 EX1 ET0 EX0 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 EA---全局中允许位。
EA=1,打开全局中断控制,在此条件下,由各个中断控制位确定相应中断的打开或关闭。
EA=0,关闭全部中断。
-------,无效位。
ET2---定时器/计数器2 中断允许位。
ET2=1, 打开T2 中断。
ET2=0,关闭T2 中断。
关,。
ES---串行口中断允许位。
关,。
ES=1,打开串行口中断。
关,。
ES=0,关闭串行口中断。
关,。
ET1---定时器/计数器1 中断允许位。
关,。
ET1=1,打开T1 中断。
ET1=0,关闭T1 中断。
EX1---外部中断1 中断允许位。
EX1=1,打开外部中断1 中断。
EX1=0,关闭外部中断1 中断。
ET0---定时器/计数器0 中断允许位。
ET0=1,打开T0 中断。
EA 总中断开关,置1 为开;EX0 为外部中断0 (INT0) 开关,。
ET0 为定时器/计数器0(T0)开EX1 为外部中断1(INT1)开ET1 为定时器/计数器1(T1)开ES 为串行口(TX/RX)中断开ET2 为定时器/计数器2(T2)开ET0=0,关闭T0 中断。
EX0---外部中断0 中断允许位。
EX0=1,打开外部中断0 中断。
EX0=0,关闭外部中断0 中断。
中断优先级寄存器IP位序号位地址------PS/0 PT1/0 PX1/0 PT0/0 PX0/0 DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 -------,无效位。
第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. 15.1.3 中断控制89C51通过对4个特殊功能寄存器TCON,SCON,IE和IP的设置来进行中断允许、中断申请方式和中断优先级的控制。
1.定时器/计数器及外部中断控制寄存器TCONTF1:定时器/计数器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.串行口控制寄存器SCONTI:串行口发送中断请求标志。
当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寄存器相应位的设置进行中断优先级的选择。
PSPT1:定时器/计数器T1中断优先控制位。
PX1:外部中断1优先级控制位。
PT0:定时器/计数器T0中断控制位。
PX0:外部中断0中断优先级控制位。
以上5个中断优先级控制位分别为“0”时,为低级中断,为“1”时为高级中断。
如果几个同一优先级的中断源同时向CPU申请中断,CPU通过内部顺序查询逻辑电路,按自然优先级顺序确定该响应哪个中断请求。
自然优先级由硬件形成,排列见表表5.1.4 中断响应1.响应中断的条件(1)有中断请求信号(2)中断允许开放即EA=1,且中断源对应的中断允许位置位。
(3)无同级或更高级中断正在服务。
(4)当前的指令周期已经结束。
(5)如果当前指令为RETI或访问IE和IP的指令,至少需要再执行完一条指令。
当满足以上5个条件时CPU将对中断请求进行响应。
2.中断响应过程如果中断响应条件满足,CPU就响应中断。
中断响应过程分为以下6个步骤:a)保护断点断点就是CPU响应中断时程序计数器PC的内容,它指示被中断程序的下一条指令的地址——断点地址。
CPU自动把断点地址压入堆栈,以备中断处理完毕后,自动从堆栈取出断点地址送入PC,然后返回主程序断点处,继续执行被中断的程序。
b)给出中断入口地址程序计数器PC自动装入中断入口地址(见表5. 2),执行相应的中断服务程序。
c)保护现场为了使中断处理不影响主程序的运行,需要把断点处有关寄存器的内容和标志位的状态压入堆栈区进行保护。
现场保护要在中断服务程序开始处通过编程实现。
d)中断服务执行相应的中断服务,进行必要的处理。
e)恢复现场在中断服务结束之后,返回主程序之前,把保存在堆栈区的现场数据从堆栈区中弹出,送回到原来的位置。
恢复现场也需要通过编程实现。
f)中断返回执行中断返回指令RETI,它将堆栈内容保存的断点地址弹给PC,程序则恢复到中断前的位置。
5.1.5 中断的嵌套MCS-51单片机有两个中断优先级。
当CPU正在执行中断服务程序,又有新的断源发出中断申请时,CPU要进行分析判断,决定是否响应新的中断。
若是同级中断源申请中断,CPU将不予理睬;若是高级中断源申请中断,CPU将转去响应新的中断请求,待高级中断服务程序执行完毕,CPU再转回低级中断服务程序。
这就是中断的嵌套。
二级中断嵌套程序执行过程如图图5.1.2 中断嵌套流程图5.1.6 中断系统应用实例例5-1:试利用MCS-51内部定时器以中断的方式通过P1.0输出只有两个状态电平的占空比相等的系列方波,该方波的周期为50mS,用示波器查看。
①:题意分析:该题目是以定时中断来实现的。
程序上分为主程序和中断程序。
主程序负责中断的初始化,并加载第一个中断的定时,以保证系列方波的完整性,因题目简单,除此不再做其它事情;中断程序负责定时改变输出端口的状态,它能自动重载相应的定时值。
中断的执行过程所造成在时间上的影响只有几个μS,同样相对25mS的方波半周期影响极小,可以忽略不计。
②:汇编语言源程序:ORG 0000HSJMP MAIN ;跳到主程序ORG 000BH ;中断程序ISSR:CPL P1.0 ;改变输出端口MOV TH0,#0A6H ;重载25mS定;时值图5.1.3 例5-1流程图MOV TL0,#00HRETI ;中断返回MAIN: MOV IE,#82H ;开放中断总控位及定时器T0中断MOV TMOD,#01H ;设置定时器T0为模式1MOV TH0,#0A6H ;加载25mS定时值MOV TL0,#00HSETB TR0 ;启动定时器SJMP $ ;主程序动态停止END5.2 89C51/80C51的定时/计数器定时/计数器作为89C51的基本结构单元,主要完成以89C51为核心的测控系统中常常需要的定时或延时控制;当需要对外界事件进行计数时,就理所当然地由计数器来完成。