80C51中断系统和定时器(堪称经典必看)
- 格式:ppt
- 大小:640.00 KB
- 文档页数:41
80c51单片机定时器计数器工作原理80C51单片机是一种常用的微控制器,其定时器/计数器(Timer/Counter)是实现定时和计数功能的重要组件。
以下简要介绍80C51单片机定时器/计数器的工作原理:1. 结构:定时器/计数器由一个16位的加法器构成,可以自动加0xFFFF(即65535)。
定时器/计数器的输入时钟可以来自系统时钟或外部时钟源。
2. 工作模式:定时模式:当定时器/计数器的输入时钟源驱动加法器不断计数时,可以在达到一定时间后产生中断或产生其他操作。
计数模式:当外部事件(如电平变化)发生时,定时器/计数器的输入引脚可以接收信号,使加法器产生一个增量,从而计数外部事件发生的次数。
3. 定时常数:在定时模式下,定时常数(即定时时间)由预分频器和定时器/计数器的初值共同决定。
例如,如果预分频器设置为1,定时器/计数器的初值为X,那么实际的定时时间 = (65535 - X) 预分频系数输入时钟周期。
在计数模式下,定时常数由外部事件发生的时间间隔决定。
4. 溢出和中断:当加法器达到65535(即0xFFFF)时,会产生溢出,并触发中断或其他操作。
中断处理程序可以用于执行特定的任务或重置定时器/计数器的值。
5. 控制寄存器:定时器/计数器的操作可以通过设置相关的控制寄存器来控制,如启动/停止定时器、设置预分频系数等。
6. 应用:定时器/计数器在许多应用中都很有用,如时间延迟、频率测量、事件计数等。
为了充分利用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)选择其为低电平有效还是下降沿有效。
中断控制寄存器软件置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输出。