TC0单次定时时间与系统时钟频率、预分频比及TCNT0初值密切相关,需要仔细考虑和计算,但向导程序可以很轻松地为我们解决这些问题。向导程序将为我们计算出合适的预分频比及定时器初值,并打开TC0中断,同时还给出了单次定时的误差。计数器溢出后本应自动从0开始计数,但在TC0中断服务程序中计数初值被更改为0x64,而且应该一进入中断服务程序立即被更改。......
2023-11-26
定时/计数器具有定时和计数两种功能,每种功能具有4种工作方式,TMOD控制寄存器通过对M0、M1的设置选择4种不同工作方式,把计数初始值写入TH和TL中控制计数长度;通过对TCON的有关位置数和清零启动定时器工作和停止计数。定时/计数器T1与定时/计数器T0的描述完全一致,下面以T0为例讨论4种工作方式。
1.工作方式0
当M1 M0=00时T0工作在工作方式0模式下,其工作方式0电路结构如图3-14所示,工作方式0是13位定时/计数器,其中TL0的高3位没有使用,计数器由TH0的高8位和TL0的低5位构成。当TL0低5位溢出时向TH0进位,TH0溢出向中断标志TF0进位,申请中断。关于T0计数溢出通过查询TF0是否置位或者产生定时器T0中断获得。
图3-14 T0工作方式0电路结构图
当C/T=0时,多路开关接通振荡脉冲的12分频输出,13位计数器依次进行计数。这就是定时工作方式。
当C/T=1时,多路开关与引脚(P3.4)相连,外部计数脉冲由引脚T0输入。当外部信号电平发生1到0跳变时,计数器加1,此时T0为外部事件计数器。
当GATE=0时,封锁或门输出常为1,使得引脚P3.2输入信号无效。TR0控制定时器T0开启和关闭,当TR0=1时,启动定时器T0,TR0=0则关闭控制开关停止计数。
当GATE=1且TR0=1时,或门与门全部打开,外部信号电平通过INT0开启或者关闭定时器计数,输入1电平时,计数工作,输入0电平时,停止计数。
(1)作为计数工作
计数范围:1~213
计数值计算公式:计数值=213-计数初值
针对T0定时器,其计数初值为TH0高8位和TL0低5位的初始值。
(2)作为定时器工作
定时范围:1~213机器周期
定时计算公式:定时时间=(213-定时初值)×机器周期
针对T0定时器,其定时初值为TH0高8位和TL0低5位的初始值。
机器周期时间=12/fosc,其中fosc为晶体振荡频率。
2.工作方式1
当M1 M0=01时,定时/计数器处于工作方式1,方式1和方式0工作模式几乎完全相同,区别就在于工作方式1定时器寄存器TH0和TL0是16位计数结构,定时/计数器电路结构如图3-15所示。
图3-15 定时/计数器工作方式1电路结构图
方式16位定时/计数器,TH0作为高8位,TL0为低8位,有关控制状态字(GATA、、TF0、TR0)和工作方式0相同。
(1)作为计数器工作
计数范围:1~216
计数值计算公式:计数值=216-计数初值
针对T0定时器,其计数初值为TH0高8位和TL0低8位的初始值。(www.chuimin.cn)
(2)作为定时器工作
定时范围:1~216机器周期
定时时间计算公式:定时时间=(216-定时初值)×机器周期
针对T0定时器,其定时初值为TH0高8位和TL0低8位的初始值。
机器周期时间=12/fosc,其中fosc为晶体振荡频率。
3.工作方式2
当M1 M0=10时,定时/计数器处于工作方式2。此时定时器寄存器TL0配置为可以自动重装载的8位计数器,TH0作为预置寄存器。TL0计数溢出时,TF0置1同时TH0中的内容重装载到TL0中,TH0的内容由软件预置,重装载后内容不变。电路结构如图3-16所示。
图3-16 定时/计数器工作方式2电路结构图
初始化时,TL0和TH0赋初值,当TL0计数溢出时,置位TF0的同时把预置寄存器TH0中的初值自动加载TL0,TL0重新计数。如此反复,这一过程省去了用户程序中重装指令,有利于提高定时精度,但这种工作模式计数值有限,最大只能到256。所以这种工作方式很适合于连续定时和计数应用。
(1)作为计数器工作
计数范围:1~28
计数值计算公式:计数值=28-计数初值
针对T0定时器,其计数初值为TH0高8位和TL0低8位的初始值。
(2)作为定时器工作
定时范围:1~216机器周期
定时时间计算公式:定时时间=(28-定时初值)×机器周期
针对T0定时器,其定时初值为TH0高8位和TL0低8位的初始值。
机器周期时间=12/fosc,其中fosc为晶体振荡频率。
4.工作方式3
当M1 M0=11时,定时/计数器处于工作方式3,此时T0分成两个独立的8位计数器TL0和TH0。其中TL0既可作计数器,也可作为定时器使用,前3种工作方式下,定时/计数器的使用完全相同,但是在工作方式3下,两个定时/计数器工作是不同的,电路结构如图3-17所示。
图3-17 定时/计数器工作方式3电路结构图
TH0规定只用作定时器,由T1控制位TR1和TF1控制,计数溢出置位TF1、TR1控制TH0定时的启动和停止。由于TL0既能作定时器也能作计数器使用,而TH0只能作定时器不能作计数器,因此在工作方式3模式下,定时/计数器0可以构成两个定时器或者一个定时器和一个计数器。
总之,若T0设置为工作方式3,T1只能设置为方式0、1、2,因为T0占据TR1和TF1,此时TF1作为串行口波特率发生器,计数溢出输入串行口,决定串行通信的速率。
经过上述对定时/计数器的讨论,对定时/计数器初始化,首先设定定时器工作方式,设置TMOD工作方式控制字,根据需要给赋初值确定定时时间或计数初值;设置中断允许寄存器IE控制字,开放中断和设定中断优先级;设置TCON启动或禁止运行。关于定时/计数器的实际应用在第10章单片机定时控制项目中重点介绍。
有关51单片机初级入门实战教程的文章
TC0单次定时时间与系统时钟频率、预分频比及TCNT0初值密切相关,需要仔细考虑和计算,但向导程序可以很轻松地为我们解决这些问题。向导程序将为我们计算出合适的预分频比及定时器初值,并打开TC0中断,同时还给出了单次定时的误差。计数器溢出后本应自动从0开始计数,但在TC0中断服务程序中计数初值被更改为0x64,而且应该一进入中断服务程序立即被更改。......
2023-11-26
8051单片机全双工串行口具有4种工作方式,可通过软件编程选择。方式1为波特率可变的10位异步通信接口方式。在串行口由硬件自动加入起始位和停止位,构成一个完整的帧格式,在移位脉冲作用下串行数据从TXD引脚输出。发送和接收的一帧信息为11位,即1个起始位,9个数据位和1个停止位。发送一帧信息后,置位中断标志TI,其过程与方式1相同。方式3为波特率可变的11位UART方式。......
2023-11-04
定时/计数器从电路上来讲是一个脉冲计数器,当计数脉冲来自单片机内部机器周期时,我们习惯上称其为定时器,而当计数脉冲来自单片机外部的输入信号时,则称其为计数器。图7-7 定时/计数器0的结构两个8位寄存器都是用来保存计数值的,其使用方法非常灵活。① 0:仅当TCON寄存器的TR0=1时启动定时/计数器0。定时/计数器0对来自单片机片内的机器周期进行计数,每个机器周期计数器的值都会加1。......
2023-11-17
工作方式1是16位定时器/计数器结构的工作方式,计数器由TH0全部8位和TL0全部8位构成,其逻辑电路和工作情况与方式0完全相同,所不同的只是组成计数器的位数。相关控制寄存器的设置TMOD的设置:定时器1工作在方式1下,则M1M0=01;为实现计数功能=1;由TR1启停控制位控制,GATE=0,因此TMOD的高四位为二进制0101。定时器/计数器0不用,所以保持其原来的控制位不变。程序设计定时器方式1例程说明......
2023-11-17
硬件设计一个嵌入式系统的硬件电路设计包括三部分内容:单片机芯片的选择、单片机系统扩展、系统配置。2)系统的扩展与外设配置的水平应充分满足应用系统当前的功能要求,并留有适当余地,便于以后进行功能的扩充。4)整个系统中相关的元器件要尽可能做到性能匹配。2)各功能程序实现模块化、系统化。4)运行状态实现标志化管理。软件抗干扰是计算机应用系统提高可靠性的有力措施。......
2023-10-28
AT89S51是单片机的一种型号,这种型号下有DIP、PLCC、TQFP等封装。DIP封装的芯片从芯片插座上插拔时应特别小心,以免损坏引脚。51单片机的DIP封装如图2-8所示。图2-8 51单片机的DIP封装a)器件外观 b)器件外观及尺寸图2-8 51单片机的DIP封装(续)c)电路符号 d)焊接剖面51单片机的PLCC封装如图2-9所示。4)芯片面积与封装面积之间的比值较小。......
2023-10-28
定时器只在STARTUP和RUN模式下运行。表4-25 SFB3的输入输出参数图4-15 SFB3的时序图操作系统会在冷启动期间重置SFB3“TP”的实例。表4-26为SFB0的输入输出参数,其中CU输入出现上升沿将使计数器递增1。如果计数值达到上限32767,将不再递增。CU输入出现任何后续上升沿都将不再起作用。不管CU输入的当前值是什么,R输入信号级别为1时将把计数器重置为0。......
2023-06-18
单片机的发展过程分为以下几个发展阶段。第四代单片机:1983年以后是16位单片机和8位高性能单片机并行发展的时代。随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计会有较大的发展。......
2023-11-04
相关推荐