80C51中断系统和定时器(堪称经典必看)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.1 中断系统
4.1.3 中断控制 2.中断优先级寄存器IP 功能: 对80C51单片机进行高级别或低级别中断的设置 IP的字节地址: B8H 格式和每位的含义如下:
4.1 中断系统
4.1.3 中断控制
2.中断优先级寄存器IP
例:令串行口为高优先级中断,外部中断0为低优先级中断。 设置方法: 法1: MOV IE,#10010001B ;开中断 MOV IP,#00010000B ;设优先级 法2: MOV IE,#10010001B SETB PS ;假设单片机之前进行了初始化 说明:此时串口的优先级高于外部中断0的优先级
3.中断系统 为实现中断功能而配置的硬件和编写的软件就是中断系统。
4.1 中断系统
4.1.2 中断源 能够向CPU发出中断申请的部件称为中断源。80C51单片机有5 个中断源。见下表
中断源
说明
外部中断
INT 0
从P3.2引脚引入的外部中断申请
定时器T0溢出时引发中断申请 从P3.3引脚引入的外部中断申请
4.2.3 定时器/计数器基本原理 定时/计数器溢出后标志位TF0(或TF1)由0变1,由此能够引 发定时中断。如果采用12MHz的晶振,对应的脉冲周期是1微秒, 计满65536个脉冲所对应的时间就是65.536ms。 思考:如何设置指定时间的定时?--预设初值 在主频为12MHz的情况下,每个时钟脉冲是1微秒,则计满5536 个脉冲需65.536毫秒,如要定时10毫秒则存入初值55536,(10毫 秒是10000微秒,需计数10000个脉冲)。可见,定时器的定时时间 长短与系统时钟和定时器初值有关。 说明 1. 当定时/计数器用作计数器时,通过引脚P3.4(P3.5)对外 部输入脉冲计数。 2. 定时/计数器T0(T1)启动运行后,会按设定的工作方式独 立进行计数,不再占用CPU时间。当计数器T0(T1)计满溢出时, TF0(TF1)置1,向CPU发出中断请求信号。
定 时 / 计 数 控 制
TF0
8DH
定时/计数器T0溢出中断请求位 T0定时或计数完成时TF0=1,同时 申请中断 CPU响应该中断时, TF0=0
TR1=1:启动定时/计数器T1 TR1=0:停止定时/计数器T1 定时/计数器T1溢出中断请求位 T1定时或计数完成时TF1=1,同时 申请中断CPU响应该中断时, TF1 =0
4.2 定时器/计数器
4.2.4 定时器/计数器控制
4.2 定时器/计数器
4.2.4 定时器/计数器控制
4.2 定时器/计数器
4.2.4 定时器/计数器控制 2.定时/计数器控制寄存器TCON TCON的低4位用于控制外部中断,高4位用于控制定时/计数器的 启动和中断申请。 当计数溢出时,TF0(或TF1)会自动由0变1,告诉我们计数已 满,我们可以通过查询TF0(或TF1)位的状态来判断计时时间是否已 到; 如果采用定时中断方式,则TF0(或TF1)由0变1时,能自动引 发中断。
4.2 定时器/计数器
4.2.4 定时器/计数器控制 由右图可知,只有当TR0(或 TR1)为1时,开关1才能闭合, 计数脉冲才能进入计数器, 故TR0(或TR1)称为运行控制 位,可用指令“SETB TR0(或TR1)”来置位以启动 定时/计数器运行;或用指 令“CLR TR0(或TR1)”来关 闭定时/计数器的工作,一 切全靠编程人员控制。
;开INT0中断 ;INT0下降沿触发 ;设初值 ;设定左移八次 ;将CY清0 ;带进位位循环左移一位 ;送P1口,P1.0灯亮 ;延时0.2秒 ;判断是否左移8次 ;移动7次 ;带进位位循环右移
4.1 中断系统
MOV P1,A ACALL DELAY DJNZ R0,L3 AJMP L1 DELAY:MOV R5,#4 D1:MOV R6,#200 D2:MOV R7,#123 NOP DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET INT0: PUSH PSW PUSH ACC MOV A,#00H MOV R2,#6 L4:MOV P1,A ;送P1口 ;是否右移7次? ;重新开始 ;延时0.2秒
4.1 中断系统
4.1.3 中断控制 1.中断允许寄存器IE 功能: 控制单片机是否接受中断申请,以及接受哪一种中断申请 字节地址: A8H 其格式和每位的含义如下(位操作指令实现):
4.1 中断系统
4.1.3 中断控制
1.中断允许寄存器IE
例:同时打开外部中断0和串行口中断,可设置为: 方法1:MOV IE,#10010001B 方法2:SETB EA SETB SETB 方法3:ORL ES EX0 IE,#10010001B
能读懂教材中的控制实例,学会编写同等难度的中断、 定时/计数程序
4.1 中断系统
4.1.1 中断系统的基本概念
1.中断的概念 CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理 (中断发生或中断请求); CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服 务); 待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继 续处理事件A(中断返回)。 中断过程
IT0
88H
中 断 控 制
IE0
89H
IT1
8AH
IE1
8BH
外部中断1的中断请求标志位 CPU采样到外部中断1的中断请求时, IE1=1 CPU响应该中断时, IE1=0
IE1的状态由单 片机自动设置
4.1 中断系统
4.1.3 中断控制
3.定时/计数器及外部中断控制寄存器TCON
形式 符号 TR0 位地址 8CH 功 能 说 明 TR0=1:启动定时/计数器T0 TR0=0:停止定时/计数器T0 TR0的状态由用户 通过初始化程序定 义
4.1 中断系统
4.1.3 中断控制
2.中断优先级寄存器IP
如果几个相同级别的中断源同时申请中断,则根据以下自然 顺序响应:
4.1 中断系统
4.1.3 中断控制
3.定时/计数器及外部中断控制寄存器TCON
功能: 可设置外部中断申请的形式:低电平触发还是下降沿触发,控 制定时/计数器的计时开始或停止,是各中断源(串口中断除外)是 否申请中断的标志位 TCON的字节地址: 88H 格式和每位的含义如下: D7 TF1 D6 TR1 D5 TF0 D4 TR0 D3 IE1 D2 IT1 D1 IE0 D0 IT0
T来自百度文库ON
4.1 中断系统
4.1.3 中断控制
3.定时/计数器及外部中断控制寄存器TCON
形式 符号 位地址 功 外部中断0的触发控制位 IT0=0:低电平触发 IT0=1:下降沿触发 外部中断0请求标志位。 CPU采样到外部中断0的中断请求时, IE0=1 CPU响应该中断时, IE0=0 外部中断1的触发控制位 IT1=0:低电平触发 IT1=1:下降沿触发 能 说 明 IT0的状态由用 户通过初始化程 序定义 IE0的状态由单 片机自动设置 IT1的状态由用 户通过初始化程 序定义
TF0的状态由单片 机自动设置
TR1
8EH
TR1的状态由用户 通过初始化程序定 义 TF1的状态由单片 机自动设置
TF1
8FH
4.1 中断系统
4.1.3 中断控制
4.串口控制寄存器SCON 功能: 只有D1和D0位用于中断,作为串口中断请求标志,即串口中断 请求寄存器 TCON的字节地址: 98H 格式和每位的含义如下: RI为接收中断请求标志位:当串口接收完一帧串行数据时,RI自动 置1;CPU响应中断后,用软件对RI清0; TI为发送中断请求标志:当串口发送完一帧串行数据时,TI自动置1, 请求中断。CPU响应中断后,由软件对TI清零。
4.2 定时器/计数器
4.2.1定时器计数器概述 1. 日常生活中定时、计数的例子: 如闹钟、画“正”统计选票、家用水表对水量的计数。 2. 单片机应用系统中定时计数的需求: 如用单片机控制的打铃器、空调的定时开关、啤酒自动生产线 上对酒瓶的计数装置等。 3. 80C51单片机片内的定时/计数器: 两个16位可编程的定时/计数器:T0和T1,都能定时和对外 部事件进行计数。 此外,T1还可以作为串行接口的波特率发生器。 4. 如何理解定时和计数的概念? 单片机中的定时器和计数器其实是一个器件: 计数器:是对外部发生的事件进行计数; 定时器:是对单片机内部的标准时钟(fosc/12)脉冲进行计数。
定时器T0中断 外部中断 INT1
定时器T1中断 定时器T1溢出时引发中断申请 串行口中断TI、RI 一次串行发送或接收完成后,发出中断申请
4.1 中断系统
4.1.3 中断控制
单片机通过对4个特殊功能寄存器实施中断控制:
1.中断允许寄存器IE 2.中断优先级寄存器IP 3.定时/计数器及外部中断控制寄存器TCON 4.串口控制寄存器SCON
4.1 中断系统
4.1.4 中断响应(现场保护与恢复)
4.1 中断系统
4.1.4 中断响应(二级中断嵌套)
4.1 中断系统
编程实例 软件构成:主程序+中断服务程序 程序编制的关键点: 要对题目要求进行精确分析,明确哪些环节应该安排在主程序 中,哪些环节应该安排在中断服务程序中,再分别编制主程序和中 断服务程序。 例:在程序正常运行时P1口的8个LED灯作单灯左移8次而后单灯右 移7次,如此循环;中断时(即按键按下)则P1口的8个LED闪烁3次 (即全亮全灭3次)。 1.中断程序的设计主要涉及开中断、设定优先级,外中断还涉及 触发方式的设定。 2.在软件设计中,首先要对主程序和中断服务程序所完成的任务 进行划分。根据该课题提出的要求,在主程序中应该完成的任务是 8个LED循环左移右移;在中断服务程序中应该完成的功能是8个LED 闪烁3次。
;保护PSW,ACC值
;使8个LED全亮 ;闪烁3次(全亮全灭各3次) ;A值送出
4.1 中断系统
LCALL DELAY CPL A DJNZ R2,L4 POP ACC POP PSW RETI END ;延时0.2秒 ;A值取反 ;闪烁3次? ;恢复保护的A值 ;恢复保护的PSW值 ;返回主程序
4.2 定时器/计数器
4.2.4 定时器/计数器控制 在单片机中有两个特殊功能寄存器与定时/计数有关,它们就 是TMOD和TCON,定时/计数器T0、T1就由它们来控制: TMOD用于设置工作方式; TCON用于控制其启动、停止和中断申请。 1.定时器工作方式寄存器TMOD TMOD用于设置T0和T1的工作方式,字节地址为89H,不能按位 寻址。其格式和各位的含义如下:
4.1 中断系统
4.1 中断系统
ORG LJMP ORG LJMP ORG START:MOV MOV SETB L1:MOV MOV CLR L2:RLC MOV ACALL DJNZ MOV L3:RRC 0000H START 0003H INT0 0100H SP,#60H IE,#81H IT0 A,#0FFH R0,#8 C A P1,A DELAY R0,L2 R0,#7 A
第2章 单片机的指令系统 第四章 80C51中断系统和定时器
本章学习目标 : 理解中断概念,能正确描绘单片机中断响应过程 熟记80C51单片机的5个中断源及其中断入口地址 能按要求正确设置特殊功能寄存器IE、IP、TCON、SCON 和TMOD 熟悉中断优先控制的方法 能正确描绘定时/计数器的4种工作方式,重点掌握方式1、 方式2的应用 学会定时/计数初值的计算
4.2 定时器/计数器
4.2.2 定时器/计数器的结构 单片机内部的16位定时/计数器由高8位和低8位两个寄存器 组成: T0由TH0和TL0组成; T1由TH1和TL1组成; 定时/计数器的计数值就存放在这里面; 定时/计数器T1的结构与T0相同。
定时/计数器T0的结构示意图
4.2 定时器/计数器
中断请求→中断响应→中断服务→中断返回
4.1 中断系统
4.1.1 中断系统的基本概念
2.中断技术的应用 并行处理 CPU可以与多台外设并行工作,并分时与他们进行信息交换,提 高了CPU的工作效率。 实时控制 单片机应用系统可能随机请求CPU提供服务。有了中断系统, CPU就可以立即响应并予以处理。 故障处理 单片机系统在工作时可能会出现一些突发故障,如电源断电, 存储器出错,程序执行错误(如除数为0)等,一旦出现故障,CPU 就可及时转去执行故障处理程序,而不必停机。