51 单片机定时器
51 单片机定时器
声明:本文以 STC89C52 单片机为例
定时器作用
主要有三个作用
1、用于计时系统,可实现软件计时,使程序每隔一段时间完成一项操作
2、替代长时间的delay,提到CPU的运行效率和处理速度
3、实现多个任务的切换执行
定时器的工作模式
51单片机的定时器工作模式有四种
模式0:13位定时器/计数器
模式1:16位定时器/计数器(常用)
模式2:8位自动重装模式
模式3:两个八位计数器
模式1(常用)
定时器有三个部分构成:时钟、计数单元、中断
以下为51单片机 定时器的模式1的内部电路图
如图所示,红色部分分别是他的时钟源和中断,剩下部分则是他的计数单元。
原理:可以看到图中的TL0和TL1各占8个bit,时钟源每来一个脉冲,TL0则+1,当TL0计满,则溢出给TH0,两个计数器一共16个bit,则可以计数2的16次方个数,即0~65535,当加到最大值时,就将TF0(TimerFlag)置为1,就申请中断,TL0和TH0置为0。
定时器时钟源
时钟有两种,一种为系统时钟,一种是外部时钟(T0 Pin)。
SYSclk:系统时钟,也就是晶振周期。不同芯片的晶振频率不同,51单片机的晶振频率为12MHz,那他的时钟周期就是晶振频率的倒数,也就是1/12 us;
晶振:通电后会产生固定频率的内部元件;
外部时钟:芯片的 T0 引脚连接到的外部晶振单元;
C/T:C为counter(计数器),T为Timer(定时器),字母头上一横指的是,低电平生效,简单地说,此处是一个寄存器,当给这个寄存器配置为 1 时,实现计数器功能,配置为 0 ,实现定时器功能。
从上图可以看到,系统时钟有两种模式,一种是?12,一种?6,也就是分频,可以粗浅地理解为降低它的晶振频率,?12则频率变为1MHz,每产生一个脉冲就是1 us,同理?6则是2 us,每来一个脉冲就计一个数。
中断系统
CPU能够对外界紧急事件的实时处理的系统。
当触发紧急事件时,CPU暂停当前工作去处理这个紧急事件,处理完之后再回到原本被中断的地方继续工作。
同时发生多个中断请求时,所以中断会有优先级,不同的CPU优先级个数不同,高优先级的中断能中断低优先级的中断,这个过程也叫中断嵌套。
定时器寄存器
图中为51单片机的相关寄存器,每个寄存器详细配置暂时按下不表,详细请看芯片手册。
补充
此处补充一点模电知识,还是以定时器模式1的电路图为例:
可以看到我图中使用了三个颜色的框圈出了三个不同东西。
红色框为 非门
蓝色框为 或门
绿色框为 与门
实际使用
我们都知道,寄存器是连接软硬件的媒介,具体使用时,对照相应芯片手册配置寄存器就好了。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!