符合学术规范的学术服务

简介51单片机的定时器/计数器

分类:科技论文 时间:2019-10-18

  单片机被大量使用在工作生活的各个领域,而定时器/计数器是单片机芯片内集成的一个重要的功能模块。本文对单片机内部定时器/计数器的工作原理及工作模式做了简单介绍,通过例子说明了单片机的设置和应用。

简介51单片机的定时器/计数器

  1引言

  基于单片机体积小、性能稳定、价格便宜的优点,它具有良好的市场占有率,被广泛使用于多种现场控制领域,与人们的工作生活息息相关。顾名思义,单片机是集成到一个芯片上的计算机(Single Chip Micro-computer,SCM),随着技术的发展和更新,现在的单片机是把整个计算机和部分功能部件都集成到一块芯片上的微控制器(Micro-Controller Unit,MCU)。例如,对于基本的a051系列单片机,在芯片上除了包含计算器、控制器、存储器和输入输出设备这些计算机的基本结构组件外,还集成了中断控制器、定时器/计数器、以及串行通信接口这些功能部件。单片机在自动控制系统设计中的应用,比如:定时器/it数器对时间进行精准控制,并且能对外部事件进行检测和计数,是单片机非常重要的一个组成部分。

  2定时器/计数器工作原理

  单片计内部集成的定时器/计数器在本质上是计数器。计数器是对脉冲进行计数,分为加法计数器和减法计数器两种。当每经过一个脉冲进行一次加一运算的计数器为加法计数器,而每经过一个脉冲做一次减一运算的计数器为减法计数器。8051系统单片机芯片内部集成了2个16位的加法计数器,分别记作To和TI.

  2.1 计数器与定时器的区别

  TO和TI有两种工作形式:计数器和定时器,这是由计数脉冲的来源确定的。

  当计数脉冲来自芯片外部时,它们是计数器,每来一个下降沿脉冲,此计数器会做一次加一的运算。其中T接收外部计数脉冲的引牌是P3.4,TI接收外部计数脉冲的引脚是P3.5,单片机每个机器周期会对这两引脚的输入电平进行采样检测.如果前一个机器周期的采样值为1,后一个机器周期的采样值为0,则意味这是一个下降沿,就会触发对应的计数器做一次加一的运算。由此可知,单片机要确定一个计数脉冲,至少需要2个机器周期,所以一个计数脉冲的持续时间必须大于2个机器周期,而单片机的一个机器周期为12个时钟周期,即意味着单片机可采用的计数脉冲的最高频率为单片机时钟频率的124,如果单片机的时钟频率是12 MHz,此系统能接受的最高的外部计数频率为500 kHz.

  如果TO和TI的计数脉冲来自芯片内部,它们被称之为定时器。因为此时的计数脉冲是一个频率固定的信号,通过此固定频率,计数器就可以和时间建立联系,实现时间的精准控制。来自片内的计数脉冲是由单片机的时钟振荡器经12分频产生,所以此计数信号的周期为12个时钟周期,正好等于单片机的一个机器周期。这样就决定了单片机的定时器是以其机器周期为基本单位来进行计时的,即定时器能够实现定时的最小时间为1个机器周期。

  2.2计数器/定时器的设置

  单片机对To,T1的控制是通过对特殊功能寄存器的设置来进行的,起主要控制作用的是TMOD,特殊功能寄存器TMOD决定TTD和T的工作方式。除了可以设置它们为计数器或定时器外,还能决定它们的工作模式。定时器/数器有4种工作模式:模式0-模式3。模式0为13位的定时器/计数器;模式1为16位的定时器/计数器;模式2为8位的,可自动重载的定时器/计数器;模式3只有To才具有,当TO工作在模式3时,是1个独立的8位定时器八计数器和1个独立的8位定时器。其中定时器/i数器的位数决定了它们所能承载的最大数值,如果超过这个数值就会溢出。在8051系列单片机中,每一个定时器/计数器溢出都会触发一个中断请求,会有对应的中断服务程序为其服务,所以对定时器/计数器我们的关注点在其溢出值。通过对特殊功能寄存器TMOD设置好定时器/i计数器的工作方式后,我们就可以根据具体要求来设置它的初值。因为:初值+计数值-溢出值,所以我们可以通过对初值的设定来实现要求的计数值。其中,溢出值是由工作模式决定的,n位的计数器,它的溢出值就是2的n次方。而对于定时器,我们需要把定时的时间转换成计数的次数才能使用上述表达式。由前述可知,单片机的定时器每一个机器周期做一次加一的运算,它计时的基本单位是机器周期,所以用要求定时的时间除以机器周期就可以把定时时间转换成计数的次数。

  3计数器/定时器应用

  3.1计数器应用

  假设一个系统中,需要对下降沿脉冲

  (此脉冲频率小于5000 H2)进行统计每100个脉冲做一次报警,为了现这个要求,我们可以选择TO充当计数器来工作。在硬件设计上,我们需要把待测脉冲信号接在单片机的P3.4(TO)引脚上。为了符合要求,需要对TMOD进行设置,选择合适的工作模式。首先,要把To设置成计数器的工作形式,其次是对工作模式的选择。本例子中需要计数的大小为100,小于8位计数器溢出值(2,256),所以工作模式0-模式3均可选择,我们这里可选择模式2。因为模式2可自动重载初值,设置时只需进行第一次初值赋值即可。接着对工作在模式2的计数器To进行初值的设置。初值应为256-100-160,因为对于模式2,溢出值为256,所以把初值设置成160,则计数100次就可溢出,系统就可执行对应的溢出中断服务程序进行报警。

  3.2定时器应用

  如果要求单片机实现1ms的定时,此时我们需要采用定时器的工作形式。同样的,需要在TMOD特殊功能寄存器中选择一定时器/i数器,确定其定时器的工作形式和工作模式。假设我们单片机的时钟频率为12 MHz,则一个周期为12个时钟周期,正好1 us。如果选择模式2,此时定时器所能定时的最大值为256个机器周期,即256 Ls,小于要求的1ms,所以我们可选择计数范围最大的工作模式1(16位)。当定时器工作在模式时时,溢出值为65536(2"),即可定时的最大范围为6556个机器周期,大约为65ms,可实现我们的要求。当我们设定好工作模式1后,需要对定时初值进行设置。在本例中,定时时间为1 ms,一个机器周期为1us,所以需要的计数次数为1ms/l us.正好为1000次;所以,定时初值就应该为65536-1000而模式1的定时初值赋值时需要把它拆分为高八位和低八位,其中高八位赋给TH,低八位赋给TL。在C语言中可以用此初值对256做一次除法运算,商即是高八位;同理,用此初值对256做一次求余运算,结果应该就是低八位。

  4 结语

  当今社会,单片机被广泛应用于生产生活的各个领域,而定时器/计数器是集成在单片机芯片上的一个重要的功能部件。本文介绍了8051系列单片机片内集成的定时器/计数器的工作原理和其设置应用的注意事项。

全学科期刊推荐 中英文发表指导

* 稍后学术顾问联系您

学术顾问回访> 详细沟通需求> 确定服务项目> 支付服务金> 完成服务内容

SCI期刊

国际英文期刊

核心期刊

国外书号出书

国内纸质出书

2023最新分区查询