80C51中断系统和定时器(堪称经典必看)

合集下载

80c51单片机定时器计数器工作原理

80c51单片机定时器计数器工作原理

80c51单片机定时器计数器工作原理80C51单片机是一种常用的微控制器,其定时器/计数器(Timer/Counter)是实现定时和计数功能的重要组件。

以下简要介绍80C51单片机定时器/计数器的工作原理:1. 结构:定时器/计数器由一个16位的加法器构成,可以自动加0xFFFF(即65535)。

定时器/计数器的输入时钟可以来自系统时钟或外部时钟源。

2. 工作模式:定时模式:当定时器/计数器的输入时钟源驱动加法器不断计数时,可以在达到一定时间后产生中断或产生其他操作。

计数模式:当外部事件(如电平变化)发生时,定时器/计数器的输入引脚可以接收信号,使加法器产生一个增量,从而计数外部事件发生的次数。

3. 定时常数:在定时模式下,定时常数(即定时时间)由预分频器和定时器/计数器的初值共同决定。

例如,如果预分频器设置为1,定时器/计数器的初值为X,那么实际的定时时间 = (65535 - X) 预分频系数输入时钟周期。

在计数模式下,定时常数由外部事件发生的时间间隔决定。

4. 溢出和中断:当加法器达到65535(即0xFFFF)时,会产生溢出,并触发中断或其他操作。

中断处理程序可以用于执行特定的任务或重置定时器/计数器的值。

5. 控制寄存器:定时器/计数器的操作可以通过设置相关的控制寄存器来控制,如启动/停止定时器、设置预分频系数等。

6. 应用:定时器/计数器在许多应用中都很有用,如时间延迟、频率测量、事件计数等。

为了充分利用80C51单片机的定时器/计数器功能,通常需要根据实际应用需求配置和控制相应的寄存器,并编写适当的软件来处理定时器和计数器的操作。

80C51中断汇总

80C51中断汇总

80C51有5个中断源,2个优先级。

80C52有6个中断源。

要用中断按下步骤设置:1、开CPU总中断:EA=1;2、开要用的中断源:如片内定时器T0,ET0=1;3、第一步:中断允许控制CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。

EX0(IE.0),外部中断0允许位;ET0(IE.1),定时/计数器T0中断允许位;EX1(IE.2),外部中断1允许位;ET1(IE.3),定时/计数器T1中断允许位;ES(IE.4),串行口中断允许位;EA (IE.7),CPU中断允许(总允许)位。

第二步:控制寄存器TCONTCON的低4位用于控制外部中断, TCON的高4位用于控制定时/计数器的启动和中断申请。

其格式如下:TF1(TCON.7):T1溢出中断请求标志位。

T1计数溢出时由硬件自动置TF1为1。

CPU响应中断后TF1由硬件自动清0。

T1工作时,CPU可随时查询TF1的状态。

所以,TF1可用作查询测试的标志。

TF1也可以用软件置1或清0,同硬件置1或清0的效果一样。

TR1(TCON.6):T1运行控制位。

TR1置1时,T1开始工作;TR1置0时,T1停止工作。

TR1由软件置1或清0。

所以,用软件可控制定时/计数器的启动与停止。

TF0(TCON.5):T0溢出中断请求标志位,其功能与TF1类同。

TR0(TCON.4):T0运行控制位,其功能与TR1类同。

1、P3.2脚(INT0-外部中断0):由IT0(TCON.0)选择其为低电平有效还是下降沿有效。

当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.1)置1,向CPU 申请中断。

(1)IT0(TCON.0),外部中断0触发方式控制位。

当IT0=0时,为电平触发方式。

当IT0=1时,为边沿触发方式(下降沿有效)。

(2)IE0(TCON.1),外部中断0中断请求标志位。

2、P3.3脚(INT1-外部中断1):由IT1(TCON.2)选择其为低电平有效还是下降沿有效。

第5章80C51的中断系统及定时计数器

第5章80C51的中断系统及定时计数器
IP D7 D6 D5 D4 PS S D3 PT1 T1 D2 PX1 INT1 D1 PT0 T0 D0 PX0 INT0
(B8H)
管理原则
★ 高优先级中断源可中断正在执行的低优先级中断
★ 同级或低优先级中断不能中断正在执行的中断
中断嵌套
主 程 序 转移 转移 高 级 中 断 程 序
断点
继 续 返回 返回
外部中断触发方式
TCON
(88H) D7 D6 D5 D4 D3 D2 D1 D0
TF1
TR1
TF0
TR0
IE1
IT1
INT1
IE0
IT0
INT0
ITX---Interrupt Trigger,外部中断触发方式控制位 外部中断有两种触发方式,通过设置IT0、IT1实现。 设置IT0=0时——电平触发方式,低电平有效。 设置IT0=1时——为边沿触发方式,下降沿有效。 ★ IT0=1时,下降沿触发,CPU响应中断,硬件自动清IE0=0
● 用4位放定时器T0、T1,外部中断INT0、INT1的
中断标志位。 ● TCON用来控制定时器的启/停和外部中断管理。 ● TCON可读可写,可位操作。
TCON (88H)
D7 TF1
D6 TR1
D5 TF0
D4 TR0
D3 IE1
D2 IT1
D1 IE0
D0 IT0
外部中断Interrupt 定时器Timer 高四位用于定时器,低四位用于外部中断 1)TF1—Timer Flowing,定时器T1溢出中断标志位 T1溢出,硬件自动置标志位TF1=1,CPU响应中断, 硬件自动清TF1=0。 2)TF0—定时器T0溢出中断标志位 3)IE1—Interrupt External,外部中断1中断标志位 若P3.3上有有效的中断信号,硬件置位IE1=1 4)IE0—外部中断0(P3.2)中断标志位 另外4位中,TR0、TR1用于定时器T0和T1的启/停控制 IT0、IT1用于设置外部中断的触发方式

第5章80C51的中断系统及定时计数器分析

第5章80C51的中断系统及定时计数器分析

5.1.2 80C51的中断源
一、中断源
能够向CPU发出中断申请的部件称为中断源。
80C51单片机有5个中断源。见下表
中断源
说明
外部中断 INT 0
定时器T0中断
从P3.2引脚引入的那 向外些C部P部中U件申断请可申中以请 定时器T0溢出时引断发呢中?断申请
外部中断 INT 1 从P3.3引脚引入的外部中断申请
中断响应
保护断点
继续看书——继续A的工作
中断返回
3
第5章 80C51的中断系统及定时、计数器
单片机原理及系统设计
先接电话,然 后再继续看书, 这样效率最高!
中断原因:
一个人不可能同时 完成两项任务。
单片机 只有一个CPU,一旦面临
多任务,它也会 中断吗?
4
第5章 80C51的中断系统及定时、计数器
定时器T1中断 定时器T1溢出时引发中断申请
串行口中断
一次串行发送或接收完成后,发出中断申 请
9
第5章 80C51的中断系统及定时、计数器
单片机原理及系统设计
ห้องสมุดไป่ตู้
二、 中断控制——中断的控制“工具”
单片机通过对4个特殊功能寄存器实施中断控制:
• 中断允许寄存器IE • 中断优先级寄存器IP • 定时/计数器及外部中断控制寄存器TCON • 串口控制寄存器SCON
学习重点和难点
➢定时/计数初值的计算 ➢能读懂教材中的控制实例,学会编写同等难度 的中断、定时/计数程序
1
第5章 80C51的中断系统及定时、计数器
单片机原理及系统设计
第五章 80C51的中断系统及定时/计数器
5.1 80C51的中断系统 5.2 80C51的中断处理过程 5.3 80C51的定时/计数器

第5章80C51的中断系统及定时计数器m

第5章80C51的中断系统及定时计数器m

INRET:POP ACC
POP PSW RETI DV1: … … AJMP INRET
…… DV4: … …
AJMP INRET
;XI1中断服务程序 ;XI4中断服务程序
特点:速度慢,优 先级低的中断源响 应速度慢,可以采 用硬件排队电路 74LS148优先权编 码器。
2019/7/13
17
5.3 80C51单片机的定时/计数器
CPU进行工作A时发生了事件B,请求CPU马上处理 CPU暂时中断当前工作A,转去处理事件B 事件B处理完后,回到工作A被中断的地方继续处理A工作
主程序A 断点
……
响应
返回
RETI 中断服务程序B
中中断断的源优点 中利断用请率求高 中实断时响性应强 中可断靠服性务好
中断返回
中断系统
2019/7/13
第5章 80C51的中断系统及定时/计数器
5.1 80C51单片机的中断系统 5.2 80C51单片机的中断处理过程 5.3 80C51单片机的定时/计数器 5.4 80C52的定时/计数器T2(不讲)
2019/7/13
1
5.1 80C51单片机的中断系统
5.1.1 80C51中断系统的结构
中断的概念
TRx:Tx运行控制位。置1时开始工作;清0时停止工作。 TRx要由软件置1或清0(即启动与停止要由软件控制)。
2019/7/13
22
5.3.3 定时/计数器的工作方式
T0有方式0、1、2、3;T1有方式0、1、2。以T0为例说明。
方式0:13位方式
TCON
TF1 D7
申请 中断
TR1
溢出
TF0
TH0 TL0

定时器中断程序和单片机AT80c51写全亮全灭交替的led灯程序

定时器中断程序和单片机AT80c51写全亮全灭交替的led灯程序

{
; //主程序在这里就不断自循环,实际应用中,这里是做主要工作
}
}
//定时器0中断
timer0() interrupt 1 // 定时器0中断是1号
{
TH0=0x00; //写入定时器0初始值0x0005
sbit P10 = P1^0; //要控制的LED灯
sbit K1= P3^2; //按键K1
//用定时器中断闪烁LED
void main(void) //主程序
{
TMOD=0x01; //定时器0,16位工作方式
【例1】这是一个简单的定时器程序,由一个循环组成,在点亮接在P1.0 口的LED之后,延时一段时间,再灭掉LED,又延时一段时间,之后循环到前面。按全速运行,可以看到P1.0口上接的LED 灯不断地闪烁。
#include <reg52.h> //包括一个52标准内核的头文件
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
tt++;
if(tt==100)
{
P0=0x00;
}
if(tt>=200)
{
tt=0;
P0=0xff;
}
}
void init()
{
TMOD=0x01;
sbit P13 = P1^3;
bit ldelay=0; //长定时溢出标记,预置是0
//定时器中断方式的跑马灯
void main(void) //主程序
{
unsigned char code ledp[4]={0xfe,0xfd,0xfb,0xf7};//预定的写入P1的值

第5章80C51的中断系统及定时计数器(2)定时计数器概要

第5章80C51的中断系统及定时计数器(2)定时计数器概要
ORG LJMP ORG LJMP ORG MAIN:MOV MOV MOV SETB SETB SETB SJMP
2018/11/2
数数源程序的 数数中断的四 四要素 要素
0000H MAIN 000BH DVT0 0100H TMOD,#01H ;置T0方式1 TH0,#0D8H;装入计数初值 TL0,#0F0H ET0 ;T0开中断 EA ;CPU开中断 TR0 ;启动T0 $ ;等待中断
求计数初值X: N=24 X=256-24=232=E8H 应将E8H送入TH0和TL0中
2018/11/2
20
主程序
ORG 0000H LJMP MAIN ORG 000BH LJMP DVT0 ORG 0100H 中断服务程序 MAIN:MOV TMOD,#06H ;置T0计数方式2 MOV TH0,#0E8H;装入计数初值 DVT0:SETB P1.0 MOV TL0,#0E8H NOP SETB ET0 ;T0开中断 NOP SETB EA ;CPU开中断 CLR P1.0 SETB TR0 ;启动T0 RETI SJMP $ ;等待中断 END
2018/11/2 21
定时应用
系统时钟为6MHz时,各种方式下的最长定时的计算: 由最长定时=2n×Tcp
,而Tcp=
2s
方式0最长可定时16.384ms; 方式1最长可定时131.072ms; 方式2最长可定时512s。 晶振为12 MHz时,Tcy为1µS。最长可定时65ms 定时时间较小时(小于65ms)。可直接采用方式1完成定 时任务。 两种方式对溢出作出反应:查询、中断
计数范围:1~65536
计数初值要分成2个字节分别送入TH0、TL0
13
2018/11/2

单片机原理及应用:第5章 80C51的中断系统及定时计数器

单片机原理及应用:第5章 80C51的中断系统及定时计数器

5.2.3 中断返回
RETI的功能: 将压入堆栈的断点地址从栈顶弹回PC 将优先级状态触发器清0
注意: 不能用RET指令代替RETI指令。 中断服务程序中PUSH与POP须成对使用
5.2.4 中断程序举例
例5-1:单外部中断源。系统上电,发光管由左至右依次亮灭, 形成循环,间隔时间为0.5s。按键采用中断方式接入,每按 一次按键K,流水方向改变一次。
低优先级中断服务,能被高优先级中断
有2个优先级状态触发器: 高优先级状态触发器 低优先级状态触发器
5.2 80C51单片机中断处理过程
5.2.1 中断响应条件和时间
中断响应条件 有中断请求; 对应中断允许位为1; 开中断(即EA=1)。 同时满足时,才可能响应中断。
中断服务的进入:
每个周期的S5P2,采样各中断源。采样 值在下一个周期按优先级和内部顺序查询。
受阻未得到响应的中断,若条件消失时该中 断标志已不再有效,该中断将不被响应。
中断响应时间
M1
M2
M3
M4
M5
S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6
中断 ε 标志
void t0() interrupt 1 {
if(Flag0) Flag0=0; } void Ex1Isr() interrupt 2 {
if(!Flag0) Flag0=1; }
例 5个外部中断源系统
INT0
1 +5V
XI0
INT1
1
XI1
1
XI2
1
XI3

80C51的中断系统及定时计数器

80C51的中断系统及定时计数器
80C51的中断系统有5个中断源(8052有6个),2个优 先级,可实现二级中断嵌套 。
中断源 外部中断0(INT0) 外部中断1(INT1) T0溢出中断(TF0) T1溢出中断(TF1) 串行口中断(RI或TI)
2019/12/24
8
1、外部中断0(P3.2),可由IT0(TCON.0)选择其 为低电平有效还是下降沿有效。当CPU检测到P3.2 引脚上出现有效的中断信号时,中断标志 IE0(TCON.1)置1,向CPU申请中断。
5个中断源、2个优先级
TCON
IE
INT0 IT0 1
01
T0 INT1 IT1 1
01
T1
RX TX
EX0 1 EA 1 IE0
ET0 1 TF0
EX1 1 IE1
ET1 1 TF1
RI
TI
≥1
SCON
ES 1
2019/12/24
23
IP
PX0 1 0
PT0 1 0
PX1 1 0
PT1 1 0
PS 1 0
编写中断服务程序注意
中断服务程序入口存放指令LJMP或AJMP 现场保护与现场恢复
2019/12/24
26
中断服务子程序: INITT0:PUSH ACC PUSH DPH PUSH DPL PUSH PSW 中断源服务 POP PSW POP DPL POP DPH POP ACC RETI
2019/12/24
2019/12/24
9
4、TF1(TCON.7),片内定时/计数器T1溢出中 断请求标志。当定时/计数器T1发生溢出时,置位 TF1,并向CPU申请中断。
5、RI(SCON.0)或TI(SCON.1),串行口中断请 求标志。当串行口接收完一帧串行数据时置位RI 或当串行口发送完一帧串行数据时置位TI,向CPU 申请中断。

第5章 80C51单片机的中断与定时

第5章 80C51单片机的中断与定时

中断控制寄存器软件置1:中断总允许,具体中断是否被允许受其具体中断位是否为1控制软件清0:中断总禁止,禁止所有中断,无论其它具体中断位是1还是0EX0(EX1)—外部中断允许控制位软件置1:允许外部中断0、外部中断1产生中断软件清0:禁止外部中断0、外部中断1产生中断EX0(EX1)—外部中断允许控制位软件置1:允许外部中断0、外部中断1产生中断软件清0:禁止外部中断0、外部中断1产生中断ET0(ET1)—定时/计数器中断允许控制位软件置1:允许定时/计数器0、定时/计数器1产生中断软件清0:禁止定时/计数器0、定时/计数器1产生中断ES—串行中断允许控制位软件置1:允许串行中断产生中断软件清0:禁止串行中断产生中断2、定时器控制寄存器(TCON)—可位寻址的寄存器01硬件置1:当采样到INT 0(INT 1)端出现有效中断请求时,硬件自动置1 硬件清0:成功响应中断请求转入中断服务程序时,硬件自动清0IT0(IT1)—外部中断请求信号方式控制位软件置1:代表的是脉冲触发方式,脉冲下降沿时产生中断软件清0:代表的是电平触发方式,低电平时产生中断TF0(TF1)—计数溢出标志位工作于中断方式时:作中断请求位硬件置1:计数器溢出时,硬件自动置1硬件清0:成功响应中断请求转入中断服务程序时,硬件自动清0 工作于查询方式时:作查询状态位硬件置1:计数器溢出时,硬件自动置1软件清0:查询有效后要用软件清0硬件置1:发送完一桢串行数据后,硬件自动置1硬件清0:成功响应中断请求转入中断服务程序时,硬件自动清0RI —串行口接收中断请求标志位硬件置1:接收完一桢串行数据后,硬件自动置1硬件清0:成功响应中断请求转入中断服务程序时,硬件自动清0查询中断中断向量中断 向量PX0—外部中断0优先级别设置位PX1—外部中断1优先级别设置位PT0—定时/计数器0优先级别设置位PT1—定时/计数器1优先级别设置位PS —串行中断优先级别设置位定时/计数器的控制寄存器01工作于中断方式时:作中断请求位硬件置1:计数器溢出时,硬件自动置1硬件清0:成功响应中断请求转入中断服务程序时,硬件自动清0 工作于查询方式时:作查询状态位硬件置1:计数器溢出时,硬件自动置1软件清0:查询有效后要用软件清0TR0(TR1)—定时器运行控制位软件置1:启动定时/计数器工作软件清0:停止定时/计数器工作GATE —门控位软件置1:以外部中断请求信号INT0(INT 1)和运行控制位TR 0(TR 1)联合启动定时器(通常使用于脉冲宽度的检测)软件清0:以运行控制位TR 0(TR 1)启动定时器(正常应用)C/T —定时方式/计数方式选择位软件置1:工作在计数方式 软件清0:工作在定时方式M 1 M 0—工作方式选择位M 1 M 0=00:方式0 M 1 M 0=01:方式1 M 1 M0=10:方式2 M 1 M 0=11:方式33、中断允许控制寄存器(IE )—可位寻址的寄存器 软件置1:中断总允许,具体中断是否被允许受其具体中断位是否为1控制 软件清0:中断总禁止,禁止所有中断,无论其它具体中断位是1还是0ET 0(ET 1)—定时/计数器中断允许控制位软件置1:允许定时/计数器0、定时/计数器1产生中断 软件清0:禁止定时/计数器0、定时/计数器1产生中断五、工作方式0-3的举例1 方式0例:设单片机晶振频率Fosc=6MHz ,使用定时器1以方式0产生周期为500us 的等宽正方波脉冲,并由P1.0输出。

80C51的定时、计数器

80C51的定时、计数器

工作方式3将 分成为两个独立的 位计数器TL0和TH0 。 分成为两个独立的8位计数器 工作方式 将T0分成为两个独立的 位计数器 和
5.3.4 定时 计数器用于外部中断扩展 定时/计数器用于外部中断扩展
扩展方法是,将定时 计数器设置为计数器方式 计数器设置为计数器方式, 扩展方法是,将定时/计数器设置为计数器方式,计数初值 设定为满程,将待扩展的外部中断源接到定时/计数器的外部 设定为满程,将待扩展的外部中断源接到定时 计数器的外部 计数引脚。从该引脚输入一个下降沿信号,计数器加1后便产 计数引脚。从该引脚输入一个下降沿信号,计数器加 后便产 生定时/计数器溢出中断 计数器溢出中断。 生定时 计数器溢出中断。 例如,利用 扩展一个外部中断源 扩展一个外部中断源。 例如,利用T0扩展一个外部中断源。将T0设置为计数器方 设置为计数器方 按方式2工作 工作, 的初值均为0FFH,T0允许中 式,按方式 工作,TH0、TL0的初值均为 、 的初值均为 , 允许中 开放中断。 断,CPU开放中断。其初始化程序如下: 开放中断 其初始化程序如下: MOV TMOD,#06H 为计数器方式2 , ;置T0为计数器方式 为计数器方式 MOV TL0,#0FFH , ;置计数初值 MOV TH0,#0FFH , SETB TR0 启动T0工作 ;启动 工作 SETB EA ;CPU开中断 开中断 SETB ET0 允许T0中断 ;允许 中断
GATE:门控位。GATE=0时,只要用软件使 :门控位。 = 时 只要用软件使TCON中的 中的 TR0或TR1为1,就可以启动定时 计数器工作;GATA=1时, 计数器工作; 或 为 ,就可以启动定时/计数器工作 = 时 要用软件使TR0或TR1为1,同时外部中断引脚或也为高电 要用软件使 或 为 , 平时,才能启动定时/计数器工作 计数器工作。 平时,才能启动定时 计数器工作。即此时定时器的启动条 加上了或引脚为高电平这一条件。 件,加上了或引脚为高电平这一条件。 :定时 计数模式选择位。 定时/计数模式选择位 为定时模式; 定时 计数模式选择位。 =0为定时模式; =1 为定时模式 C/T C /T C /T 为计数模式。 为计数模式。 M1M0:工作方式设置位。定时 计数器有四种工作方式, 计数器有四种工作方式, :工作方式设置位。定时/计数器有四种工作方式 进行设置。 由M1M0进行设置。 进行设置

第五章 80C51的中断系统及定时计数器解析

第五章  80C51的中断系统及定时计数器解析

TF1、TR1、TF0和TR0位用于定时器/计数器; IE1、IT1、IE0、IT0位用于外部中断。
外部中断标志IE1、IE0(用IEx表示) 外部中断触发方式设置IT1、IT0(用ITx表示)
电平触发方式(ITx=0),INTx引脚低电平时IEx=1(向CPU请求中 断),响应中断后IEx不自动清0(INTx引脚状态)。 边沿触发方式(ITx=1),INTx引脚负跳变时IEx=1 (向CPU请求中 断),响应中断后IEx自动清0。
2020/10/25
7
5.1 80C51单片机的中断系统
两种触发方式比较:
电平方式时, INTx低电平必须保持到获得响应时,否则 就会漏掉;在中断服务结束前,INTx低电平必须撤除,否则 中断返回之后将再次产生中断。
边沿方式时,采样到有效下降沿后,在IEx中将锁存一个1。 若CPU暂时不能响应,申请标志也不会丢失,直到响应时才 清0。
PX0:外中断0优先级 PT0:T0中断优先级 PX1:外中断1优先级
PT1:T1中断优先级 PS :串口中断优先级
2020/10/25
11
5.1 80C51单片机的中断系统
中断的优先级
中断源 外部中断0 定时/计数器0 外部中断1 定时/计数器1
串行口
中断标志 IE0 TF0 IE1 TF1
R1或T1
2
5.1 80C51单片机的中断系统
CPU进行工作A时发生了事件B,请求CPU马上处理 CPU暂时中断当前工作A,转去处理事件B 事件B处理完后,回到工作A被中断的地方继续处理A工作
主程序A 断点
……
响应
返回
RETI 中断服务程序B
2020/10/25
3

第5章80C51单片机的中断与定时

第5章80C51单片机的中断与定时

位符号 EA /
/ ES ET1 EX1 ET0 EX0
与中断控制有关的控制位共有6位: (a)EA:中断允许总控制位
EA=0:中断总禁止; EA=1:中断总允许; (b)EX0、EX1:外部中断允许控制位 EX0、EX1=0:禁止外中断; EX0、EX1=1:允许外中断; (c)ET0、ET1:定时器/计数器中断允许控制位 ET0、ET1=0,禁止定时(或计数)中断; ET0、ET1=1,允许定时(或计数)中断; (d)ES:串行中断允许控制位 ES=0,禁止串行中断;
1)采用中断方式时,作中断请求标志位使用; 2)采用查询方式时,作查询状态位来使用;
无论采用何种方式,都必须利用软件对该位清0。
(3)中断允许控制寄存器(IE) IE的功能:中断系统的开关。
IE的字节地址:0A8H;位地址:0AFH~0A8H。 IE的内容及格式如下:
位地址 AFH AEH ADH ACH ABH AAH A9H A8H
第5章 80C51单片机的中断与定时
教学基本要求: (1)、了解单片机系统有关中断的概念; (2)、了解单片机定时器/计数器的功能; (3)、熟悉与中断控制有关的控制寄存器的功能及用法; (4)、熟悉与定时/计数控制有关的控制寄存器功能及用法; (5)、掌握单片机中断系统的应用方法; (6)、掌握单片机定时器/计数器的应用方法;
(b)IT0、IT1:外中断请求触发方式控制位 IT0(IT1)=1,脉冲方式(后沿负跳有效); IT0(IT1)=0,电平方式(低电平有效); 由软件置1或清0,即人工编程。 例: SETB IT0;或CLR IT0;
(C)TF0、TF1:计数溢出标志位 当计数结构产生溢出时,由硬件电路对该位自动置1; 当转向中断服务时,再由硬件电路对该位自动清0。 计数溢出标志位的使用有两种情况: 1)采用中断方式时,作中断请求标志位使用; 2)采用查询方式时,作查询状态位来使用,必须利用软件

80C51中断系统和定时器堪称经典必看

80C51中断系统和定时器堪称经典必看
两个16位可编程的定时/计数器:T0和T1,都能定时和对外部 事件进行计数。
此外,T1还可以作为串行接口的波特率发生器。 4. 如何理解定时和计数的概念?
单片机中的定时器和计数器其实是一个器件: 计数器:是对外部发生的事件进行计数; 定时器:是对单片机内部的标准时钟(fosc/12)脉冲进行计数。
4.2 定时器/计数器
4.1 中断系统
4.1.3 中断控制 1.中断允许寄存器IE
例:同时打开外部中断0和串行口中断,可设置为: 方法1:MOV IE,#10010001B 方法2:SETB EA
SETB ES SETB EX0 方法3:ORL IE,#10010001B

4.1 中断系统
4.1.3 中断控制 2.中断优先级寄存器IP 功能:
TMOD和TCON,定时/计数器T0、T1就由它们来控制: TMOD用于设置工作方式; TCON用于控制其启动、停止和中断申请。
1.定时器工作方式寄存器TMOD TMOD用于设置T0和T1的工作方式,字节地址为89H,不能按
位寻址。其格式和各位的含义如下:
4.2 定时器/计数器
4.2.4 定时器/计数器控制
理解中断概念能正确描绘单片机中断响应过程熟记80c51单片机的5个中断源及其中断入口地址能按要求正确设置特殊功能寄存器ieiptconscon和tmod熟悉中断优先控制的方法能正确描绘定时计数器的4种工作方式重点掌握方式1方式2的应用学会定时计数初值的计算能读懂教材中的控制实例学会编写同等难度的中断定时计数程序第2章单片机的指令系统第四章80c51中断系统和定时器4
4.2 定时器/计数器
4.2 定时器/计数器
4.2.4 定时器/计数器控制
4.2 定时器/计数器
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

能读懂教材中的控制实例,学会编写同等难度的中断、 定时/计数程序
4.1 中断系统
4.1.1 中断系统的基本概念
1.中断的概念 CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理 (中断发生或中断请求); CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服 务); 待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继 续处理事件A(中断返回)。 中断过程
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发出中断请求信号。
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次。
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.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
4.2 定时器/计数器
4.2.1定时器计数器概述 1. 日常生活中定时、计数的例子: 如闹钟、画“正”统计选票、家用水表对水量的计数。 2. 单片机应用系统中定时计数的需求: 如用单片机控制的打铃器、空调的定时开关、啤酒自动生产线 上对酒瓶的计数装置等。 3. 80C51单片机片内的定时/计数器: 两个16位可编程的定时/计数器:T0和T1,都能定时和对外 部事件进行计数。 此外,T1还可以作为串行接口的波特率发生器。 4. 如何理解定时和计数的概念? 单片机中的定时器和计数器其实是一个器件: 计数器:是对外部发生的事件进行计数; 定时器:是对单片机内部的标准时钟(fosc/12)脉冲进行计数。
TCON
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的状态由用 户通过初始化程 序定义
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的状态由用户 通过初始化程序定 义
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清零。
;开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秒
;保护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.1 中断系统的基本概念
2.中断技术的应用 并行处理 CPU可以与多台外设并行工作,并分时与他们进行信息交换,提 高了CPU的工作效率。 实时控制 单片机应用系统可能随机请求CPU提供服务。有了中断系统, CPU就可以立即响应并予以处理。 故障处理 单片机系统在工作时可能会出现一些突发故障,如电源断电, 存储器出错,程序执行错误(如除数为0)等,一旦出现故障,CPU 就可及时转去执行故障处理程序,而不必停机。
第2章 单片机的指令系统 第四章 80C51中断系统和定时器
本章学习目标 : 理解中断概念,能正确描绘单片机中断响应过程 熟记80C51单片机的5个中断源及其中断入口地址 能按要求正确设置特殊功能寄存器IE、IP、TCON、SCON 和TMOD 熟悉中断优先控制的方法 能正确描绘定时/计数器的4种工作方式,重点掌握方式1、 方式2的应用 学会定时/计数初值的计算
3.中断系统 为实现中断功能而配置的硬件和编写的软件就是中断系统。
4.1 中断系统
4.1.2 中断源 能够向CPU发出中断申请的部件称为中断源。80C51单片机有5 个中断源。见下表
中断源
说明
外部中断
INT 0
从P3.2引脚引入的外部中断申请
定时器T0溢出时引发中断申请 从P3.3引脚引入的外部中断申请
4.2 定时器/计数器
4.2.2 定时器/计数器的结构 单片机内部的16位定时/计数器由高8位和低8位两个寄存器 组成: T0由TH0和TL0组成; T1由TH1和TL1组成; 定时/计数器的计数值就存放在这里面; 定时/计数器T1的结构与T0相同。
定时/计数器T0的结构示意图
4.2 定时器/计数器
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的优先级
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
相关文档
最新文档