• 51单片机系列-单片机定时器


    🌈个人主页:会编辑的果子君 

    💫个人格言:“成为自己未来的主人~”  

    软件延时的缺点

    延时过程中,CPU时间被占用,无法进行其他任务,导致系统效率降低,延时时间越长,该缺点就越明显,因此软件延时只适用于短暂延时或简单项目。

    定时/计数器

    单片机中有多个小闹钟,可以帮助我们实现延时,这些小闹钟就是“定时器”

    1T单片机最多支持4个16位定时器,2个和传统51单片机完全一致,为T0,T1,另外2通道捕获/比较单元(PWM/PCA/CCP),也可用来在实现两个定时器

    我们只讲T0,每个定时/计数器既可以实现定时功能,也可以实现计数功能

    定时/计数器0的工作原理

    在定时方式1下,定时/计数器0的核心是一个16位宽的由计数脉冲触发的按递增规律(即累加方式)工作的循环累加计数器(TH0+TL0),从预先设定的初始值开始,每来一个计数脉冲就+1,当加到计数器为全1时,再输入一个脉冲,就会发生溢出现象,计数器回零,同时产生溢出中断请求信号(TF0置1),如果定时/计数器工作于定时模式,则表示定时时间已到

    1T的8051单片机,为了兼容传统8051,定时器0和定时器1复位后是传统8051的速度,即12分频,也就是每12个震荡周期产生一个计数脉冲

    定时器溢出

    什么是溢出?

    任何一个计数范围有限的系统,均存在溢出现象,系统的可表达数的个数,成为模

    定时器溢出时会导致定时器溢出中断请求,和该中断是否使能无关

    80C51的定时/计数器

    实现定时功能,比较方便的办法是利用单片机内部的定时/计数器,也可以采用下面三种方法

    软件定时 

    软件定时不占用硬件资源,但占用了CPU时间,降低了CPU的利用率

    采用基电路定时:

    例如采用555电路,外接必要的元器件(电阻和电容),即可构成硬件定时电路,但在硬件连接号以后,定时值与定时范围不能由软件进行控制和修改,即不可编程

    采用可编程芯片定时

    这种定时芯片的定时值及定时范围很容易用软件来确定和修改,此种芯片定时功能强,使用灵活,在单片机的定时/计数器不够用时,可以考虑进行拓展

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

    定时/计数器的结构

    定时/计数器的是指加1计数器(16位),由高8位和低8位两个寄存器组成,TMOD是定时/计数器的工作方式寄存器,确定工作方式和功能:TCON是控制寄存器,控制T0,T1的启动和停止及设置溢出标志

    加1计数器输入的计数脉冲有两个来源,一个是由系统的时钟振荡器输出脉冲经12分频后送来:一个是T0或T1引脚输入的外部脉冲源,每来一个脉冲计数器加一,当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使TCON中TF0或TF1置1,向CPU发出中断请求(定时/计数器中断允许时)。如果定时/计数器工作于定时模式,则表示定时时间已到,如果工作于计数模式,则表示计数值已满

    可见,由溢出时计数器的值减去计数初值才是加1计数器的计数值

    设置为定时器模式时,加一计数器是对内部机器周期计数(一个机器周期等于12个震荡周几,即计数频率为晶振频率的1/12)。计数值N乘以机器周期Tcy就是定时时间t

    设置为计数器模式,外部事件计数脉冲由T0或T1引脚输入到计数器,在每个机器周期的S5P2期间采样T0,T1引脚电平,当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加一,更新的计数值在下一个机器周期的S3P1期间装入计数器,由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少需要维持一个机器周期,当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2微秒

     

  • 相关阅读:
    opencv改变像素点的颜色---------c++
    Spring Security整合企业微信的扫码登录,企微的API震惊到我了
    C#学习 - 类型、变量、方法
    CentOS7.6升级内核到5.11及build RPM包
    2023年中国石油催化裂化剂行业供需、竞争格局及市场规模分析[图]
    网络性能优化
    一文速通Nginx网关与gateway网关区分
    微服务实战系列之Sentinel
    Linux quota
    一些可以参考的文档集合6
  • 原文地址:https://blog.csdn.net/in_seattle/article/details/136692295