单片机_第6章 单片机的定时/计数器

建议配合本专栏的文章“单片机_第6章 实验”一起使用

目录

6.1 定时/计数器的结构与工作原理

定时/计数的三种方式(不重要)

6.1.1 定时/计数器的基本原理

6.1.2 定时/计数器的结构

6.2 定时器的控制

6.2.1 TMOD寄存器

6.2.2 TCON寄存器

6.3 定时/计数器的工作方式

工作方式​

6.3.1 方式1

6.3.2 方式2

6.3.3 方式0

6.3.4 方式3(仅T0有此方式)

6.4 定时/计数器的编程和应用

本章小结


6.1 定时/计数器的结构与工作原理

    定时/计数的三种方式(不重要)

        纯软件定时/计数方法
            定时——空循环预定周次,等待预定时间
            计数——读取I/O口电平,统计变化次数
            表示(左边的图是通过delay函数来实现软件定时/计数的,右边的图示通过main函数里面的if语句来进行定时/计数的。)
            3d0fdf44853146e3925934c5c3439faa.png
            基本思路:由CPU统计状态变化次数,待预定结果出现后结束统计。
            存在问题:占用过多CPU机时(因此时间不能很长,且在做这个的时候,CPU不能做其他的事情,也十分消耗CPU)

        纯硬件定时方法(没有计数)
            利用CD4060芯片,定时时长可以达到2.1~6小时,通过改变外面的电阻来改变定时的时间
5e37c7d294cd4ae18a925564442974a0.png
            AD8445B
5d8b737c2e13443fbbd4912c27ad7a0e.png
            XLT437定时器芯片
4e7de459660e4aff9044ba82b2482ec1.png

        单片机软硬件联合定时/计数方法
            图示
ababef15a8624692a2de2f850280c12d.png
定时/计数器的基本原理

            定时器的本质是计数器(对时钟脉冲计数),计数器则是对外来脉冲计数。
            通过上图,可以看出定时器是反应内部系统时钟脉冲,而计数器是反应外部信号脉冲的。

        几种定时方法比较
            (1)软件定时:时间精确,且不需要外加硬件电路;占用CPU开销,因此软件定时的时间不宜太长。 
            (2)硬件定时:定时功能全部由硬件电路完成,不占CPU时间,但需通过改变电路的元件参数来调节定时时间,在使用上不够灵活方便。
            (3)可编程定时器定时:通过对系统时钟脉冲的计数来实现的。计数值通过程序设定,改变计数值,也就改变了定时时间,使用起来既灵活有方便。


    6.1.1 定时/计数器的基本原理

        逻辑开关闭合后,脉冲信号将对加1计数器充值。
        若计数器的容量为2^n(n为整数),则当数值达到满计数值后将产生溢出,使中断请求标志TFx进位为1,同时加1计数器清零;如果在启动计数之前将TFx清零,并将一个称为计数初值a的整数先置入加1计数器,则当观察到TFx为1时表明已经加入了(2^n-a)个脉冲,如此便能计算出脉冲的到达数量了。
        定时器和计数器的实质都是计数器,差别仅在于脉冲信号的来源不同(定时器是反应内部系统时钟脉冲,而计数器是反应外部信号脉冲的)。

        基本工作原理
                (12分频 = 1个机器周期→1个计数脉冲) 
b91a6cb01b9244b19a3faa90c0e34b9c.png

3aeac9b56b964352ac5e17bfb26fd657.png

         计数器溢出空间 = 计数器最大空间 - 计数初值
88a7a1b2a3674f43960dc4f1b390e5d1.png

        定时时间计算(tnafosc三个因素有关)
                定时时间 t = (计数器最大空间 - 计数初值)×机器周期=(2^n-a)×12/fosc  (us)

        计数计算(Nna两个因素有关)
                定时计数值 N = (计数器最大空间 - 计数初值)  =  (2^n – a ) 

    6.1.2 定时/计数器的结构

        51单片机定时/计数器的结构
ba26f367fe664fcda608d160848155ef.png

        引脚
43ca087e94d64644a9b1126a5ea4bebe.png

        2个16位计数器T0 (TH0<字节地址8CH>、TL0<字节地址8AH&g

  • 4
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值