单片机复习自用(六)

1.定时/计数器的基本原理

定时器的本质是计数器(对时钟脉冲计数),计数器则是对外来脉冲计数.

基本工作原理:

        t = (计数器最大空间-计数初值) × 机器周期 = (2^n-a)×12/fosc  (μs)

        计数值N = (计数器满计数值 - 计数初值)  =  (2^n – a )

        t与n、a、fosc三个因素有关,N与n、a两个因素有关

2.定时/计数器的结构

        2个16位计数器T0 (TH0、TL0)和T1 (TH1、TL1)——加1计数器

        2个外部引脚T0(P3.4)和T1(P3.5)——接入外部脉冲

        2个控制寄存器TCON和TMOD——管理计数器的运行

3.定时器/计数器的控制(重重重点)【背住】

(1)

(2)定时器控制寄存器——TCON

系统上电默认值为TCON = 0,则默认状态应为:TR0和TR1均为关闭状态、电平中断触发方式、没有外部中断请求

(3)定时器方式寄存器—TMOD

例 :     设置T0为定时器方式1,允许TR0启动;T1为计数器方式0,允许INT1启动。

则        TMOD = 1100 0001B =0xc1

系统上电默认值为TMOD = 0,则默认状态应为:T0和TI均为定时器方式0,允许TR0、TR1启动。

4.定时/计数器的工作方式(重点)

T0有4种工作方式,每种工作方式都有定时和计数2种方式。

T1只有3种工作方式(T0的方式3中占用了T1的部分资源)。

(1)方式1(01)——使用16位定时/计数器(THx+TLx)

定时时间:t = (2^16- a)×12/fosc  (μs)

最大定时时间(a=0,fosc =12MHz):t = 216(s) = 65536 (μs)

计数值:  N =   (2^16 – a )

最大计数值:N = 65536 (脉冲)

        实例1 设单片机的fosc=12MHz,采用T0定时方式1在P1.0脚上输出周期为2ms的方波。

        TH0高八位;TL0低八位

(2)方式2(10)——8位计数器

         延时时间 t = (2^8-a)×12/fosc  (微秒) → 12MHz时的最大定时量为256μs

        可自动重装载计数初值(TLx溢出后, THx数值可自动装入TLx)

        实例2 采用T0定时方式2在P1.0口输出周期为0.5ms的方波(设fosc=12MHz)

(3)方式0——13位定时/计数器(THi7-0+TLi4-0)

定时时间 t = (2^13 - a)×12/fosc (μs)

计数初值 a = 2^13 - t×fosc/12

12MHz时的最大定时量t=2^13μs = 8.192ms

(4)方式3

搞懂

使用定时/计数器的步骤

(1)设置TMOD——确定定时/计数器的工作状态

(2)计算计数初值——产生期望的定时间隔

                计数初值 a = 216- t×fosc/12   (t ≤65536 μs)

                装载计数初值:THx =  a  / 256         TLx =  a  % 256

(3)确定采用何种方式处理溢出结果

(4)启动定时器:TR0 = 1 或 TR1= 1

(5)进行定时或计数结束后的其它工作

(6)为下次定时/计数做准备(清TFx标志+重装载计数初值)      

         若是中断方式,则无需软件清TFx标志位;

         若是查询方式,需要软件清除TFx标志位。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值