中断与定时计数 复习课件_第1页
中断与定时计数 复习课件_第2页
中断与定时计数 复习课件_第3页
中断与定时计数 复习课件_第4页
中断与定时计数 复习课件_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

复习内容单片机的中断系统单片机的可编程定时/一.中断的概念:计算机在执行程序的过程中,由于CPU以外的原因,CPU中止当前程序的执行,转去执行相应的处理程序,待处理结束后,再回来继续执行被中止的原程序,这种情况称为中断。第一部分中断系统返回中断申请主程序中断服务程序中断示意图#中断的发生是由CPU外部因素决定的,无法在程序中事先安排,调用中断服务子程序的过程是由硬件自动完成的。这不同于程序设计中的“调用程序”!二.MCS-51单片机的中断系统8031/8051/8751有5个中断源;2个中断优先级;与中断有关的特殊功能寄存器:

中断允许控制寄存器IE;中断优先级控制寄存器IP;定时器/计数器控制寄存器TCON。图1MCS-51单片机中断系统结构TF01IE0

1011IE1

101TF1

1RI/TI1010101010

中断源

中断源高级中断请求低级中断请求中断入口中断入口中断源中断标志中断源允许全局中断允许中断优先级寄存器查询电路中断允许寄存器TIRI

外部中断0(/INT0)

由/INT0(P3.2)端口线引入。有两种触发方式,由TCON的IT0位确定:IT0=0,为电平触发,/INT0脚出现低电平向CPU 提中断;IT0=1,为跳变触发,/INT0脚出现负跳变使IE0置 1,向CPU提中断;CPU响应中断后硬件 自动清IE0。To:中断结构图三.中断源外部中断1(/INT1)由/INT1(P3.3)端口线引入。有两种触发方式,由TCON的IT1位确定:IT1=0,为电平触发,/INT1脚出现低电平向CPU提 中断;IT1=1,为跳变触发,/INT1脚出现负跳变使IE1置1, 向CPU提中断;CPU响应中断后硬件自动 清IE1。To:中断结构图1.中断优先寄存器IP(B8H)51单片机有两个中断优先级,每个中断源可以通过编程确定为高优先级或低优先级;IP用来锁存各中断源优先级的控制位;IP在特殊功能寄存器中,字节地址为B8H,位地址分别是B8H~BFH。To:中断结构图

四.

中断优先级

各中断源的优先权级别由IP确定;同一个优先级中的中断源,如同时申请中断,其自然优先级由硬件形成,各中断源的级别由高到低的顺序是:

外中断0---T0---外中断1---T1---串行口问题:各中断源优先级顺序是怎样确定的?解答#8051复位后,IP低5位全部清0,将所有中断源设置为低优先级中断。中断允许寄存器IEEA

ES

ET1

EX1

ET0

EX00:关中断1:开中断0:关中断1:开中断0:关中断1:开中断0:关中断1:开中断0:关串行口中断1:开串行口中断0:关所有中断1:开所有中断

IETo:中断结构图3.中断响应的条件1)中断源有请求2)单片机开放中断(EA=1)3)中断源对应的中断屏蔽寄存器IE相应位置1,即没有被屏蔽注意:#8051复位后,

IE中各中断源允许位均清0,即禁止所有中断。下列任何一种情况存在,中断申请将被封锁:1)CPU正在执行一个同级或高一级的中断服务程序;2)当前正在执行的那条指令还未执行完;3)当前正在执行的指令是RETI或对IE,IP寄存器进行读/写指令,执行这些指令后至少再执行一条指令才会响应中断。

4.CPU响应中断后,由硬件执行以下功能:自动清除相应中断标志(IE0/IE1/TF0/TF1);保留断点(将PC内容压入堆栈);根据中断源优先级的高低,使相应优先级状态触发器置1;将对应的中断矢量装入PC,使程序转向中断矢量地址单元中去执行相应的中断服务程序。执行RETI指令:1)清相应中断优先级状态触发器;2)返回断点(弹出栈顶的两个字节到PC)中断服务程序的最后一条指令为什么不能是RET指令?中断服务程序的最后一条指令必须为RETI。思考四.中断系统应用

中断系统应用要解决的问题包括电路连接和应用程序设计两部分。

对于外部中断,要合理设计外设发生的中断请求信号与引脚之间的连接电路,使其电平高低和持续时间符合要求程序设计

1)主程序部分1.给堆栈指针SP赋值2.如为外部中断,定义触发方式3.定义中断优先级(给IP赋值)4.给IE赋值,开放中断5.安排好等待中断过程中主程序应做的操作若规定外部中断0为电平触发方式,高优先级,试写出有关的初始化程序。解:

SETBEA;开中断

SETBEX0;允许外中断0中断

SETBPX0;外中断0定为高优先级

CLRIT0;电平触发例5.1

若规定外部中断1为边沿触发方式,低优先级,在中断服务程序中将寄存器B的内容左环移一位,B的初值设为01H。试编写主程序与中断服务程序。例5.2设在某8031单片机应用系统中,允许外部中断源和产生中断,并要求为高优先级中断,为低优先级中断。请写出该应用程序的基本结构。分析:需将设置为高优先级中断,而将设置为低优先级中断,即IP寄存器中的PX1=1、PX0=0为了实现中断嵌套,中断服务程序中应注意保护有关寄存器例5.3

ORG0000HAJMPMAIN ;转主程序ORG0003HLJMPEXINT0 ;转INT0中断服务程序ORG0013HLJMPEXINT1 ;转INT1中断服务程序MAIN:MOVSP,#60H ;设置堆栈指针MOVTCON,#05H ;置INT0、INT1为边沿触发方式SETBPX1 ;设置INT1为高优先级,INT0上电复位时被置为低优先级

SETBEX0 ;允许INT0中断

SETBEX1 ;允许INT1中断SETBEA ;CPU开放中断… ;主程序参考程序(结构)EXINT0:PUSHPSW;保护现场PUSHAccPUSHDPLPUSHDPH…;INT0中断处理POPDPH;恢复现场POPDPLPOPAccPOPPSWRETIINT0中断服务程序第二部分定时/计数器概述单片机内有两个可编程定时/计数器T0和T1每个T均可编程为定时器或计数器使用每个T均有4种工作方式定时/计数器的作用用作实时时钟实现定时检测定时控制用于外部事件的计数定时/计数器的应用检测、控制及智能仪器等

一.定时/计数器的结构及工作原理结构如下图所示,它由加法计数器、TMOD寄存器、TCON寄存器组成。图2单片机定时/计数器结构框图加法计数器加法计数器为16位,用TH表示高8位,TL表示低8位作计数器用,加法计数器对芯片T0、T1脚上输入脉冲计数,每输入一个脉冲,加法计数器加1作定时器用,加法计数器通过机器周期Tcy计数间接实现定时,每经过一个Tcy,加法计数器自动加1加法计数器初值可由程序设定,初值不同,计数或定时值不同加法计数器工作过程中,内容可用程序读回CPU方式选择寄存器TMOD功能选择定时/计数器0、1的工作方式

二.定时/计数器的方式和控制寄存器格式定时/计数器1定时/计数器0C/T功能选择位,C/T=1计数,C/T=0定时

M1、M0工作方式选择位,见下表

M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7GATE门控制位

GATE=1,定时/计数器0工作受引脚INT0控制,定时/计数器1受引脚INT1控制GATE=0,定时/计数器工作与INT0、INT1无关一般情况下GATE=0控制寄存器TCON功能高4位控制定时/计数器0、1的运行低4位控制外部中断。格式TR1运行控制位

TR1=1,启动定时/计数器1工作TR1=0,停止定时/计数器1工作TF1溢出中断标志位

定时/计数器1溢出时,TF1=1,在中断允许条件下,向CPU发出中断请求,CPU响应后,TF1=0,在中断屏蔽条件下,TF1可作查询方式,TF1可由程序置位或清零TR0与TR1功能相似,TF0与TF1功能相似。三.定时/计数器的工作方式1)方式0定时/计数器1工作方式0结构图如下图所示(定时/计数器0工作方式0结构图一样)。振荡器÷12&≥11TL15位TH18位TF1中断“1”闭合INT1引脚GATETR1T1引脚TcyS1S2定时器/计数器1工作方式0结构图C/T=0C/T=11.构成13位定时/计数器2.计数值N=8192-X,X为初值,范围为1~8192

3.计数时,外部计数脉冲频率应小于fosc/244.定时时间T=(8192-X)Tcy特点:5.定时/计数器1的启动或停止由TR1控制GATE=0

GATE=1

软件置TR1=1,S2闭合,启动

软件置TR1=0,S2打开,停止

软件置TR1=1,外部INT1为高电平,启动

外部INT1为低电平,停止

这种门控方式可用来测INT1引脚上的正脉冲宽度2)方式1工作方式1与工作方式0区别如下:(其他一样)

构成16位定时/计数器计数值为N=65536-X,范围为1-65536定时值为T=(65536-X)Tcy,范围为(1-65536)Tcy3)方式2定时/计数器1工作方式2结构图如下图所示:(定时/计数器0工作方式2结构图一样)振荡器÷12&≥11TL18位TF1中断INT1引脚GATETR1T1引脚TcyS1S2C/T=0C/T=1定时器/计数器1工作方式2结构图TH18位1.构成一个8位具有自动重装初值功能的定时/计数器2.计数值N=256-X,范围为:1~2563.定时值为T=(256-X)Tcy,范围为(1~256)Tcy4.TL1为8位加法计数器,TH1为初值寄存器。TL1溢出时,TF1=1且发出重装载信号,三态门打开,将TH1中初值自动送入TL1中。TL1重新计数5.其他与工作方式0相同6.适应于定时控制,波特率发生器3)方式3工作方式3结构图如下图所示(仅对定时/计数器0有效)

振荡器÷12&≥11TL08位TF0中断INT0引脚GATETR0T0引脚TcyS1S2C/T=0C/T=1定时器/计数器0工作方式3结构图TcyTH08位TF1中断TcyTR11.构成两个独立的8位定时/计数器2.计数值为N=256-X,范围为1-2563.定时值为T=(256-X)Tcy,范围为(1~256)Tcy4.TH0、TL0为两个独立加法计数器★TL0使用定时/计数器0的C/T、GATE、TR0及INT0,工作情况与方式0相似★

TH0只能工位于非控方式,借用了定时/计数器1的TR1、TF15.将定时/计数器1设为工作方式3,相当于TR0=0,停止6.定时/计数器0工作方式3时,51子系列有3个定时/计数器,两个为8位,一个为16位。定时/计数器1可工作于方式0、1、2,但TR1、TF1被TH0借用,不能产生中断请求,只用作波特率发生器。四定时/计数器应用1)定时器/计数器的初始化编程初始化编程步骤:(1)确定工作方式和启动定时/计数方式——TMOD赋值。(2)置定时/计数器初值——写寄存器TH0、TL0或TH1、TL1。(3)根据需要开放定时器中断——对中断允许寄存器IE置初值。(4)启动定时/计数器——将控制寄存器TCON的TR1或TR0 置位

①计数方式设计数器的最大值为M,若要求计数X个外部脉冲后计数器溢出,计数初值为C,则:

X+C=MC=M—X=M+(-X)=(X)求补

T0运行于计数器状态并工作于方式1,要求T0引脚出现10个脉冲后,产生计数器溢出中断,求C:方法一:

C=M-X=65536-10=65526=FFF6H方法二:

C=(X)求补=(000AH)求补=(000AH)求反+1=FFF5H+1=FFF6H例②定时方式设定时t,则计数脉冲数为X=t/Tcy

初值C=M-X=M-t/T=(t/T)求补T0运行于定时器状态,时钟频率为12MHz,要求定时100μs。机器周期Tcy=12/时钟频率=12/12=1μs初值C为:方式0:

C=M-t/T=8192-100/1=8092=1F9CH方式1:

C=M-t/T=65536-100/1=65436=FF9CH方式2、3:C=M-t/T=256-100/1=156=9CH例工作方式0时的初值装入方法方式0的计数寄存器是13位,对于T0而言,高8位初值装入TH0,低5位初值装入TL0的低5位(TL0的高3位无效)。注意2)应用举例假设单片机的时钟频率为6MHz,要求在P1.0引脚上输出一个周期为2ms的方波,方波的周期用定时器T0来确定。分析:要在P1.0输出周期为2ms的方波,只要对P1.0每隔1ms取反一次即可。

例5.4确定TMOD内容根据题意,定时功能,C/T=0,选用工作方式0。定时/计数器1无关,TMOD高4位为随意值“X”若取“X”=0,则TMOD=00H.

机器周期Tcy=12/6MHz=2μs定时初值CC=M-t/Tcy=213-1000/2=8192-500=7692=1E0CH=0001111000001100B

TH0=11110000B=0F0HTL0=01100B=0CH。确定TH0,TL0初始化编程(用查询TF0的状态来控制P1.0输出)MOVTMOD,#00H;置T0为方式0,定时MOVTL0,#0CH;送定时初值MOVTH0,#0F0HSETBTR0;启动T0LOOP:JBCTF0,NEXT;查询定时时间到?SJMPLOOPNEXT:MOVTL0,#0CH;重装计数初值MOVTH0,#0F0HCPLP1.0;输出取反

SJMPLOOP定时/计数器0计数溢出(回零)时,硬件置

TF0=1,提中断;CPU响应中断后,硬件自动清TF0例5.5用定时溢出中断方式产生上例所要求的方波。参考程序ORG0000HAJMPMAIN;转主程序ORG000BHLJMPCTC0;转中断处理程序ORG0100HMAIN:MOVSP,#60HMOVTMOD,#00H;置T0为方式0,定时工作MOVTL0,#0CH;送定时初值MOVTH0,#0F0HSETBEA;CPU开中断SETBET0;T0中断允许SETBTR0;启动定时器T0HERE:SIMPHERE;等待中断,虚拟主程序中断处理程序CTC0:MOVTL0,#0CH;重装计数初值MOVTH0,#0F0HCPLP1.0;输出取反RET1;中断返回注意:中断服务程序中要对定时器重置定时初值;CPU响应中断后硬件自动将TF0清0,中断服务程序中不必用指令将TF0清0。

仍要求用定时器控制方波输出,但要求方波的周期2s。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论