微机原理及单片机应用技术第8章 80C51的中断与定时计数器
- 格式:ppt
- 大小:3.76 MB
- 文档页数:89
80c51单片机定时器计数器工作原理80C51单片机是一种常用的微控制器,其定时器/计数器(Timer/Counter)是实现定时和计数功能的重要组件。
以下简要介绍80C51单片机定时器/计数器的工作原理:1. 结构:定时器/计数器由一个16位的加法器构成,可以自动加0xFFFF(即65535)。
定时器/计数器的输入时钟可以来自系统时钟或外部时钟源。
2. 工作模式:定时模式:当定时器/计数器的输入时钟源驱动加法器不断计数时,可以在达到一定时间后产生中断或产生其他操作。
计数模式:当外部事件(如电平变化)发生时,定时器/计数器的输入引脚可以接收信号,使加法器产生一个增量,从而计数外部事件发生的次数。
3. 定时常数:在定时模式下,定时常数(即定时时间)由预分频器和定时器/计数器的初值共同决定。
例如,如果预分频器设置为1,定时器/计数器的初值为X,那么实际的定时时间 = (65535 - X) 预分频系数输入时钟周期。
在计数模式下,定时常数由外部事件发生的时间间隔决定。
4. 溢出和中断:当加法器达到65535(即0xFFFF)时,会产生溢出,并触发中断或其他操作。
中断处理程序可以用于执行特定的任务或重置定时器/计数器的值。
5. 控制寄存器:定时器/计数器的操作可以通过设置相关的控制寄存器来控制,如启动/停止定时器、设置预分频系数等。
6. 应用:定时器/计数器在许多应用中都很有用,如时间延迟、频率测量、事件计数等。
为了充分利用80C51单片机的定时器/计数器功能,通常需要根据实际应用需求配置和控制相应的寄存器,并编写适当的软件来处理定时器和计数器的操作。
80C51单片机的定时计数器定时计数器的控制寄存器<>定时器/计数器的工作方式1.定时器/计数器的工作方式0(1)电路逻辑结构当图6-7中的计数器=13位(TH的8位与TL低5位)即得方式0的逻辑电路图。
(2)工作方式0的特点①两个定时器/计数器T0、T1均可在方式0下工作;②是13位的计数结构,其计数器由TH全部8位和TL的低5位构成(高3位不用);③当产生计数溢出时,由硬件自动给计数溢出标志位TF0(TF1)置1,由软件给TH,TL重新置计数初值。
应说明的是,方式0采用13位计数器是为了与早期的产品兼容,计数初值的高8位和低5位的确定比较麻烦,所以在实际应用中常由16位的方式1取代。
2.定时器/计数器的工作方式1(1)电路逻辑结构方式1是16位计数结构的工作方式,计数器由TH全部8位和TL全部8位构成。
其逻辑电路如图6-11所示。
(2)工作方式1的特点①两个定时器/计数器均可在方式1下工作;②是16位的计数结构,其计数器由TH的全部8位和TL的全部8位构成;③当产生计数溢出时,由硬件自动给计数溢出标志位TF0(TF1)置1,由软件给TH,TL重新置计数初值。
(3)计数/定时的范围在方式1下,当为计数工作方式时,由于是16位的计数结构,所以计数范围是:1~65536。
当为定时工作时,其定时时间=(216-计数初值)×机器周期,例如:设单片机的晶振频率f=12MHz,则机器周期为1μs,从而定时范围:1μs~65536μs。
因为80C51单片机的定时计数器是可编程的。
因此,在利用定时/计数器进行定时计数之前,先要通过软件对他进行初始化,初始化一般应进行如下工作:①设置工作方式,即设置TMOD中的各位GATE、C/T、M1M0。
②计算加1计数器的计数初值COUNT,并将计数初值COUNT 送入TH、TL中。
计数方式:计数值= 2n – COUNT ,计数初值:COUNT= 2n –计数值。
中断控制寄存器软件置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输出。