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