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

相关推荐
weixin_1122339 小时前
基于STM32闭环步进电机控制系统设计说明
stm32·单片机·嵌入式硬件
机器视觉知识推荐、就业指导9 小时前
STC89C52系列单片机简介
单片机·嵌入式硬件·51单片机
qq_259297247311 小时前
STM32
嵌入式硬件
沧海一笑-dj11 小时前
【嵌入式】51单片机学习笔记-Keil5软件安装教程
51单片机·嵌入式·keil·keil5·51·keil安装·keil5软件
qq_21513832711 小时前
【51单片机-B020】【protues仿真】基于51单片机智能晾衣架仿真
单片机·嵌入式硬件
小猪写代码12 小时前
STM32 GPIO的八种工作模式
stm32·单片机·嵌入式硬件·gpio
1+2单片机电子设计12 小时前
STM32 单片机的停车场管理系统设计与实现
stm32·单片机·嵌入式硬件·51单片机
如愿小李13 小时前
STM32之土壤湿度传感器模块
stm32·单片机·嵌入式硬件
weixin_5803820614 小时前
UART Hal库与寄存器比较
stm32·单片机·嵌入式硬件