51单片机的计时/计数功能

来源:互联网 发布:假视频软件 编辑:程序博客网 时间:2024/06/08 06:29

- TMOD简介

TMOD可以理解为是给T0、T1设置边界和模式的。
TMOD
低四位用来控制T0,高四位用来控制T1。
GATE端口:

  • GATE是门控位
  • GATE=0,以运行控制位TR启动定时器
  • GATE=1,以外中断请求信号(INT1或INT0)启动定时器,这可以用于外部脉冲宽度测量
  • 在TMOD中GATE一般情况下都等于0

GATE端口控制
C/T端口:
C/T=0时为定时功能: 加1计数器对脉冲f进行计数,每来一个脉冲,计数器加1,直到计时器TFx满溢出;
C/T=1时为计数功能: 加1计数器对来自输入引脚T0(P3.4)和T1(P3.5)的外信号脉冲进行计数,每来一个脉冲,计数器加1,直到计时器TFx满溢出;
M1和M2端口:
M1M2


2. TCON简介

TCON的作用是控制定时器的启、停,标志定时器溢出和中断情况。
前四位用于中断,详情参见我的上一篇博文。
后四位用于定时/中断。
TCON寄存器

TF1:定时器1溢出标志位。当定时器1计满溢出时,由硬件使TF1置“1”,并且申请中断。进入中断服务程序后,由硬件自动清“0”,在查询方式下用软件清“0”。
TR1:定时器1运行控制位。由软件清“0”关闭定时器1。当GATE=1,且/INT1为高电平时,TR1置“1”启动定时器1;当GATE=0,TR1置“1”启动定时器1。
TF0:定时器0溢出标志。其功能及操作情况同TF1。
TR0:定时器0运行控制位。其功能及操作情况同TR1。


3.初始化过程

由于定时器/计数器的功能是由软件编程确定的,所以一般在使用定时/计数器前都要对其进行初始化,使其按设定的功能工作。初始化的步骤一般如下:
1、确定工作方式(即对TMOD赋值);
2、预置定时或计数的初值(可直接将初值写入TH0、TL0或TH1、TL1);
3、根据需要开放定时器/计数器的中断(直接对IE位赋值),IE位为外部中断请求标志位。
4、启动定时器/计数器(若已规定用软件启动,则可把TR0或TR1置“1”;若已规定由外中断引脚电平启动,则需给外引脚加启动电平。当实现了启动要求后,定时器即按规定的工作方式和初值开始计数或定时)。


技巧:
因为定时器/计数器是作“加1”计数,并在计数满溢出时产生中断,因此初值X可以这样计算:(M为最大值)
在计数方式下:X=M-计数值
在定时方式下:X=M-定时值/机器周期


关于IE位:
•EA (IE.7):EA=0时,所有中断禁止(即不产生中断);EA=1时,各中断的产生由个别的允许位决定
•- (IE.6):保留
•ET2(IE.5):定时2溢出中断充许(8052用)
•ES (IE.4):串行口中断充许(ES=1充许,ES=0禁止)
•ET1(IE.3):定时1中断充许
•EX1(IE.2):外中断INT1中断充许
•ET0(IE.1):定时器0中断充许
•EX0(IE.0):外部中断INT0的中断允许

关于中断函数后的级别

  • 中断0 外部中断0
  • 中断1 定时器1中断
  • 中断2 外部中断1
  • 中断3 定时器2中断
  • 中断4 串口中断
原创粉丝点击