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微秒

相关推荐
Zevalin爱灰灰4 分钟前
编程技巧(基于STM32)第一章 定时器实现非阻塞式程序——按键控制LED灯闪烁模式
stm32·单片机·嵌入式硬件
红花与香菇2____1 小时前
【学习笔记】Cadence电子设计全流程(二)原理图库的创建与设计(上)
笔记·嵌入式硬件·学习·pcb设计·cadence·pcb工艺
Jerry.yl2 小时前
关于 BK3633 上电时受串口 UART2 影响而无法启动的问题说明
嵌入式硬件·物联网·bk3633
苏慕TRYACE3 小时前
RT-Thread+STM32L475VET6实现红外遥控实验
stm32·单片机·嵌入式硬件·rt-thread
小幽余生不加糖5 小时前
deepseek帮我设计物理量采集单片机口保护电路方案
单片机·嵌入式硬件
Ronin-Lotus6 小时前
蓝桥杯篇---IAP15F2K61S2串口
单片机·嵌入式硬件·职场和发展·蓝桥杯·c·iap15f2k61s2
xiaohai@Linux6 小时前
ESP32 在IDF_V5.3.1版本下实现AP无线热点模式!(带WIFI事件处理)
c语言·嵌入式硬件·tcp/ip·wifi·esp32
yyqzjw7 小时前
【STM32】外部时钟|红外反射光电开关
stm32·单片机·嵌入式硬件
charlie1145141917 小时前
(萌新入门)如何从起步阶段开始学习STM32 —— 0.碎碎念
c语言·stm32·单片机·嵌入式硬件·学习·教程
苏慕TRYACE7 小时前
RT-Thread+STM32L475VET6——ADC采集电压
stm32·单片机·嵌入式硬件·rt-thread