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

下载本文档

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

文档简介

1、 单片机的中断系统单片机的中断系统 单片机的可编程定时单片机的可编程定时/计数器计数器 计算机在执行程序的过 程中,由于CPU以外的原因, CPU中止当前程序的执行, 转去执行相应的处理程序, 待处理结束后,再回来继续 执行被中止的原程序,这种 情况称为中断。 第一部分第一部分 中中 断断 系系 统统 返回 中断申请 主程序 中断中断 服务服务 程序程序 中断的发生是由CPU外部因素决定 的,无法在程序中事先安排,调 用中断服务子程序的过程是由硬 件自动完成的。 中断系统的功能中断系统的功能 计算机系统中,用于实现中断功能的硬件和 软件的集合,称为。 学习中要思考中断系统是如何解决如下问题学习

2、中要思考中断系统是如何解决如下问题: 1. 中断请求信号的产生; 2. CPU如何响应? 3. 中断优先权问题; 4. 中断的具体服务; 5. 中断服务完毕,如何返回原程序? 二.MCS-51单片机的中断系统 8031/8051/8751有5个中断源; 2个中断优先级; 与中断有关的特殊功能寄存器: TF0 1 IE0 1 0 1 0 INT 1 IE1 1 0 1 1 INT 1 IT 0 IT TF1 0 T 1 T 1RI/TI 1 0 1 0 1 0 1 0 1 0 中断源中断源 中断源中断源 高级中断高级中断 请求请求 低级中断低级中断 请求请求 中断入口中断入口 中断入口中断入口

3、0 EX 1 EX 1 ET 0 ET ES EA 0 PX 1 PX 1 PT 0 PT PS 中断源中断源中断标志中断标志中断源允许中断源允许 全局全局 中断允许中断允许 中断优先级中断优先级 寄存器寄存器 查询电路查询电路 中断允许寄存器中断允许寄存器 TI RI 由/INT0 (P3.2) 端口线引入。 有两种触发方式,由TCON的IT0位确定: IT0=0 ,为电平触发,/INT0脚出现低电平向CPU 提中断; IT0=1 ,为跳变触发,/INT0脚出现负跳变使IE0置 1,向CPU提中断;CPU响应中断后硬件 自动清IE0。 To:中断结构图 由/INT1 (P3.3) 端口线引入

4、。 有两种触发方式,由TCON的IT1位确定: IT1=0 ,为电平触发,/INT1脚出现低电平向CPU提 中断; IT1=1 ,为跳变触发,/INT1脚出现负跳变使IE1置1, 向CPU提中断;CPU响应中断后硬件自动 清IE1。 To:中断结构图 定时定时/计数器计数器0中断中断 定时定时/计数器计数器1中断中断 定时/计数器0计数溢出(回零)时,硬件置 TF0=1,提中断; CPU响应中断后,硬件自动清TF0 定时/计数器1计数溢出(回零)时,硬件置 TF1=1,提中断; CPU响应中断后,硬件自动清TF1 中断结构图 51单片机有两个中断优先级,每个中断源可以通 过编程确定为高优先级或

5、低优先级; IP用来锁存各中断源优先级的控制位; IP在特殊功能寄存器中,字节地址为B8H,位地 址分别是B8HBFH。 To:中断结构图 PS PT1 PX1 PT0 PX0 中断 0:低优先级 优先级控制 1:高优先级 中断 0:低优先级 优先级控制 1:高优先级 中断 0:低优先级 优先级控制 1:高优先级 中断 0:低优先级 优先级控制 1:高优先级 串行口中断 0:低优先级 优先级控制 1:高优先级 0 INT 0 T 1 INT 1 T IP 各中断源的优先权级别由IP确定; 同一个优先级中的中断源,如同时申请中断,其 自然优先级由硬件形成,各中断源的级别由高到低 的顺序是: 外中

6、断0-T0-外中断1-T1-串行口 各中断源优先级各中断源优先级顺序是怎样确定的?顺序是怎样确定的? #8051复位后,复位后,IP低低5位全部清位全部清0,将所有中断源设置为低优先,将所有中断源设置为低优先 级中断。级中断。 2. 2.中断优先权三原则中断优先权三原则: 1. 正在进行的中断不能被新的同级或低优先 级的中断请求中断; 2. 正在进行的低优先级中断服务程序能被高 优先级的中断请求中断(中断嵌套); 3. CPU同时收到几个中断请求时,首先响应优 先权最高的请求中断。 EA ES ET1 EX1 ET0 EX0 0:关关 中断中断 1:开开 中断中断 0:关关 中断中断 1:开开

7、 中断中断 0:关关 中断中断 1:开开 中断中断 0:关关 中断中断 1:开开 中断中断 0:关串行口中断关串行口中断 1:开串行口中断开串行口中断 0:关所有中断关所有中断 1:开所有中断开所有中断 0 INT 0 T 0 T 1 INT 1 T 1 T 0 INT 1 INT IE To:中断结构图 1)中断源有请求 2)单片机开放中断(EA=1) 3)中断源对应的中断屏蔽寄存器IE相应位 置1,即没有被屏蔽 注意:#8051复位后, IE中各中断源允许位均清0, 即禁止所有中断。 1)CPU正在执行一个同级或高一级的中断服 务程序; 2)当前正在执行的那条指令还未执行完; 3)当前正在

8、执行的指令是RETI或对IE,IP寄 存器进行读/写指令,执行这些指令后至少 再执行一条指令才会响应中断。 : 自动清除相应中断标志(IE0/IE1/TF0/TF1); 保留断点(将PC内容压入堆栈); 根据中断源优先级的高低,使相应优先级 状态触发器置1; 将对应的中断矢量装入PC,使程序转向中 断矢量地址单元 中去执行相应的中断服务 程序。 1)清相应中断优先级状态触发器; 2)返回断点(弹出栈顶的两个字节到PC) 中断服务程序的最后一条指令为什么不中断服务程序的最后一条指令为什么不 能是能是RET指令?指令? 中断服务程序的最后一条指令中断服务程序的最后一条指令必须为必须为RETI。 思

9、考 0023H串行口中断串行口中断 001BH 定时器定时器T1中断中断 0013H外部中断外部中断1 000BH 定时器定时器T0中断中断 0003H外部中断外部中断0 入口地址入口地址 中断源中断源 To:中断结构图 n1.给堆栈指针SP赋值 n2.如为外部中断,定义触发方式 n3.定义中断优先级(给IP赋值) n4.给IE赋值,开放中断 n5.安排好等待中断过程中主程序应做的操作 n 1. 在中断入口地址单元设置跳转指令,使程 序转移到中断服务程序的实际入口 n 2. 保护现场。 n 3. 若为电平触发的外部中断,应有中断信号 撤除操作 n 4. 中断服务操作 n 5. 恢复现场 n 6

10、. 中断返回 例例 5.1 INT0INT1INT1 INT0 INT1INT0 例例 5.3 第二部分 定时/计数器 概述概述 单片机内有两个可编程定时/计数器T0和T1 每个T均可编程为定时器或计数器使用 每个T均有4种工作方式 定时/计数器的作用 用作实时时钟 实现定时检测 定时控制 用于外部事件的计数 定时/计数器的应用 检测、控制及智能仪器等 结构如下图所示,它由加法计数器、 TMOD寄存器、TCON寄存器组成。 12345678 A B C D 87654321 D C B A Title NumberRevisionSize A2 Date:4-May-2004 Sheet of

11、 File:H:MyDesign1.ddbDrawn By: TH1TL1TH0TL0 TCON(88H)TMOD(89H) (8DH)(8BH)(8CH)(8AH) 定时器T1定时器T0 70077070 T1(P3.5)T0(P3.4) 中断 INT1 P(3.3) INT0 P(3.2) 内 部 总 线 溢 出 工 作 方 式 工 作 方 式 溢 出 启 动 CPU 加法计数器 加法计数器为16位,用TH表示高8位,TL表示 低8位 作计数器用,加法计数器对芯片T0、T1脚上 输入脉冲计数,每输入一个脉冲,加法计数 器加1 作定时器用,加法计数器通过机器周期Tcy计 数间接实现定时,每经

12、过一个Tcy,加法计数 器自动加1 加法计数器初值可由程序设定,初值不同, 计数或定时值不同 加法计数器工作过程中,内容可用程序读回 CPU 方式选择寄存器TMOD 功能 选择定时/计数器0、1的工作方式 格式 定时/计数器1定时/计数器0 C/T功能选择位,C/T1计数,C/T0定时 M1、M0工作方式选择位,见下表 M0M1C/TGATEM0M1C/TGATE D0D1D2D3D4D5D6D7 M1 M0工 作 方 式 0 0方式0:13位定时/计数器 0 1方式1:16位定时/计数器 1 0 方式2:具有自动重装初值的8位定时器/ 计数器 1 1 方式3:定时器/计数器0分为两个8位定

13、时器/计数器,定时器/计数器1在此方式 无使用意义 GATE 门控制位 GATE=1,定时/计数器0工作受引脚INT0控制 ,定时/计数器1受引脚INT1控制 GATE=0, 定时/计数器工作与INT0、INT1无关 一般情况下GATE=0 控制寄存器TCON 功能 高4位控制定时/计数器0、1的运行 低4位控制外部中断。 格式 D7D6D5D4D3D2D1D0 TF1 TR1 TF0 TR0IE1IT1 IE0 IT0 TR1 运行控制位 TR1=1,启动定时/计数器1工作 TR1=0, 停止定时/计数器1工作 TF1 溢出中断标志位 定时/计数器1溢出时,TF11,在中断允许 条件下,向C

14、PU发出中断请求,CPU响应后, TF10,在中断屏蔽条件下,TF1可作查询 方式,TF1可由程序置位或清零 TR0 与TR1功能相似,TF0与TF1功能相似。 1)方式0 定时/计数器1工作方式0结构图如下图所 示(定时/计数器0工作方式0结构图一 样)。 振荡器12 & 11 TL1 5位 TH1 8位 TF1 中断 “1”闭合 INT1引脚 GATE TR1 T1引脚 Tcy S1 S2 定时器/计数器1工作方式0结构图 C/T=0 C/T=1 1.构成13位定时/计数器 2.计数值N=8192-X,X为初值,范围为18192 3.计数时,外部计数脉冲频率应小于fosc/24 4.定时时

15、间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区别如下:(其他一样) u构成构成16位定时位定时/计数器计数器 u计数值为计数值为N=65536-X,范围为范围为165536 u定时值为定时值为T=(65536-X)Tcy,范围为,范围为(1 65536)Tcy 3)方式2 定时/计数器1工作方式2结

16、构图如下图所示: (定时/计数器0工作方式2结构图一样) 振荡器12 & 11 TL1 8位 TF1 中断 INT1引脚 GATE TR1 T1引脚 Tcy S1 S2C/T=0 C/T=1 定时器/计数器1工作方式2结构图 TH1 8位 1.构成一个8位具有自动重装初值功能的定时/计数器 2.计数值N=256-X,范围为:1256 3.定时值为T=(256-X)Tcy,范围为(1256)Tcy 4. TL1为8位加法计数器,TH1为初值寄存器。TL1 溢出时,TF1=1且发出重装载信号,三态门打开, 将TH1中初值自动送入TL1中。TL1重新计数 5.其他与工作方式0相同 6.适应于定时控制

17、,波特率发生器 3)方式3 工作方式3结构图如下图所示 (仅对定时/计数器0有效) 振荡器12 & 11 TL0 8位 TF0 中断 INT0引脚 GATE TR0 T0引脚 Tcy S1 S2C/T=0 C/T=1 定时器/计数器0工作方式3结构图 Tcy TH0 8位 TF1 中断 Tcy TR1 1.构成两个独立的8位定时/计数器 2.计数值为N=256-X,范围为1256 3.定时值为T=(256-X)Tcy, 范围为(1256)Tcy 4. TH0、TL0为两个独立加法计数器 TL0使用定时/计数器0的C/T、GATE、TR0及 INT0,工作情况与方式0相似 TH0只能工位于非控方

18、式,借用了定时/ 计数器1的TR1、TF1 5.将定时/计数器1设为工作方式3,相当于 TR00,停止 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) 启动定时/计数器

19、将控制寄存器TCON 的TR1或TR0 置位 设计数器的最大值为M,若要求计数X个 外部脉冲后计数器溢出,计数初值为C,则: X+C=M C=MX=M+(-X)=(X)求补 方法一: 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, 要求定时100s。 机器周期Tcy=12/时钟频率=12/12=1s 初值C为: 方式0: C=M-t/T=8192-100/1=

20、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取反一次即可。 确定TMOD内容 根据题意,定时功能,C/T=0,选用工作方式0。 定时/计数器1无关,TMOD高4位为随意值“X” D7D6D5D4D3D2D1D0 0000 若取“X”0,则TMOD=00H. 机器周期Tcy=12/6MHz=2s 定时初值C C=M-t/Tcy=213-1000/2=8192-500=7692=1E0CH =0001 1110 0000 1100B TH0=1111 0000B=0F0H TL0=01100B=0CH。 确定TH0,TL0 (用查询(用查询TF0的状态来控制的状态来控制P1.0输出)输出) MOV TMOD,#00H ;置;置T0为方式为方式0,定时,定时 MOV TL0,#0

温馨提示

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

评论

0/150

提交评论