51单片机定时器工作方式
- 格式:docx
- 大小:12.83 KB
- 文档页数:2
151单片机定时器/计时器的使用步骤:1、 打开中断允许位:对IE 寄存器进行控制,IE 寄存器各位的信息如下图所示:EA : 为0时关所有中断;为1时开所有中断ET2:为0时关T2中断;为1时开T2中断,只有8032、8052、8752才有此中断 ES : 为0时关串口中断;为1时开串口中断 ET1:为0时关T1中断;为1时开T1中断 EX1:为0时关1时开 ET0:为0时关T0中断;为1时开T0中断 EX0:为0时关1时开2、 选择定时器/计时器的工作方式:定时器TMOD 格式CPU 在每个机器周期内对T0/T1检测一次,但只有在前一次检测为1和后一次检测为0时才会使计数器加1。
因此,计数器不是由外部时钟负边沿触发,而是在两次检测到负跳变存在时才进行计数的。
由于两次检测需要24个时钟脉冲,故T0/T1线上输入的0或1的持续时间不能少于一个机器周期。
通常,T0或T1输入线上的计数脉冲频率总小于100kHz 。
方式0:定时器/计时器按13位加1计数,这13位由TH 中的高8位和TL 中的低5位组成,其中TL 中的高3位弃之不用(与MCS-48兼容)。
13位计数器按加1计数器计数,计满为0时能自动向CPU 发出溢出中断请求,但要它再次计数,CPU 必须在其中断服务程序中为它重装初值。
方式1:16位加1计数器,由TH 和TL 组成,在方式1的工作情况和方式0的相同,只是计数器值是方式0的8倍。
2方式2:计数器被拆成一个8位寄存器TH 和一个8位计数器TL ,CPU 对它们初始化时必须送相同的定时初值。
当计数器启动后,TL 按8位加1计数,当它计满回零时,一方面向CPU 发送溢出中断请求,另一方面从TH 中重新获得初值并启动计数。
方式3:T0和T1工作方式不同,TH0和TL0按两个独立的8位计数器工作,T1只能按不需要中断的方式2工作。
在方式3下的TH0和TL0是有区别的:TL0可以设定为定时器/计时器或计数器模式工作,仍由TR0控制,并采用TF0作为溢出中断标志;TH0只能按定时器/计时器模式工作,它借用TR1和TF1来控制并存放溢出中断标志。
51单⽚机定时器计数器详解第六章定时器/计数器6.1 定时器的结构及⼯作原理6.2 定时器的控制6.3 定时器的⼯作模式及其应⽤第六章定时器/计数器实现定时⼀般有多种⽅法:1. 利⽤软件实现(延时程序)优点:简单,控制⽅便;缺点:CPU效率低。
2. 外部硬件实现:单稳态定时器、计数定时器优点:CPU效率⾼;缺点:修改参数⿇烦。
3. 利⽤计数器实现输⼊脉冲定时器/计数器作⽤主要包括产⽣各种时标间隔、记录外部事件的数量等,是单⽚机中最常⽤、最基本的部件之⼀。
外来脉冲定时计数定时器/计数器功能⽰意图6.1 定时器/计数器的结构及⼯作原理6.1.1 定时器/计数器的基本结构MCS-51单⽚机有⼆个定时器/计数器,每个定时器/计数器由⼏个专⽤寄存器组成。
TMOD(89H )⾼四位TMOD(89H )低四位⽅式寄存器TCON(88H)TCON(88H)控制寄存器*8DH 8BH 8CH 8AH TH1 TL1TH0 TL0数据寄存器(16位)定时器T1定时器T0定时器/计数器的结构如下图所⽰。
定时器/计数器的基本结构框图申请P3.5or P3.4or 8DH 8BH8CH 8AH6.1.2 定时器/计数器的⼯作原理定时器/计数器结构原理图INTx P3.YGATE :门控制位:定时/计数控制位TC/x=0,1Y=2,3Z=4,5⼀. 对外部输⼊信号的计数功能当T0或T1设置为计数⼯作⽅式时,计数器对来⾃输⼊引脚P3.4(T0)和P3.5(T1)的外部信号计数。
若前⼀个机器周期采样值为1,后⼀个机器周期采样值为0,则计数器加1。
所以计数器计数的频率最⾼为fosc 的1/24。
BDEHT H >1个机器周期T L >1个机器周期L⼆. 定时功能:定时器/计数器的定时功能也是通过计数实现的,它的计数脉冲是由单⽚机的⽚内振荡器输出经12分频后产⽣的信号,即为对机器周期计数。
INTx P3.Y例如:晶振频率=12MHz 机器周期=1us ,计数1次=1us ,计数频为=1MHz 。
51单片机定时器初值计算公式1.定时器工作模式:a.16位定时/计数模式:定时器以16位计数器的方式工作,当计数器溢出时产生中断或其他操作。
b.8位自动重装定时/计数模式:定时器以8位计数器的方式工作,当计数器溢出时自动重装初值。
2.时钟源:a.定时器0:可由外部输入脉冲(T0引脚)或计时器1的溢出脉冲提供。
时钟源可以是外部脉冲、系统时钟(OSC)、系统时钟的1/12(T1引脚)、系统时钟经2分频(T1引脚)等。
b.定时器1:可由外部输入脉冲(T1引脚)或系统时钟提供。
时钟源可以是外部脉冲、系统时钟(OSC)等。
以下是定时器初值计算公式的详细解释(以定时器0为例):1.16位定时/计数模式:定时器0的初值计算公式为:TH0=0xFF-(计数器溢出时间/机器周期)/12其中,TH0表示定时器的高8位初值。
机器周期是CPU时钟的倒数,通常为1/12倍的晶振频率。
若晶振频率为11.0592MHz,则机器周期为1/12*11.0592MHz=1.085μs。
计数器溢出时间是定时器溢出一次所需要的时间,可根据所需的延时时间或定时器中断频率计算得出。
以1ms的定时器中断频率为例:计数器溢出时间= 1ms / 16.7μs = 59.760初值计算为:TH0=0xFF-(59.760/1.085)/12≈0xFF-4.63≈0xFA2.8位自动重装定时/计数模式:定时器0的初值计算公式为:TH0=0xFF-(计数器溢出时间/机器周期)/48其中,TH0表示定时器的高8位初值。
机器周期和计数器溢出时间的计算方法同上。
初值计算为:TH0=0xFF-(59.760/1.085)/48≈0xFF-0.969≈0xFE请注意,以上计算公式仅适用于一个特定的晶振频率和所需的定时器中断频率或延时时间。
在不同的频率和精度要求下,初值计算的方式可能会不同。
mcs-51单片机计数器定时器详解【1】80C51单片机内部设有两个16位的可编程定时器/计数器。
可编程的意思是指其功能(如工作方式、定时时间、量程、启动方式等)均可由指令来确定和改变。
在定时器/计数器中除了有两个16位的计数器之外,还有两个特殊功能寄存器(控制寄存器和方式寄存器)。
:从上面定时器/计数器的结构图中我们可以看出,16位的定时/计数器分别由两个8位专用寄存器组成,即:T0由TH0和TL0构成;T1由TH1和TL1构成。
其访问地址依次为8AH-8DH。
每个寄存器均可单独访问。
这些寄存器是用于存放定时或计数初值的。
此外,其内部还有一个8位的定时器方式寄存器TMOD和一个8位的定时控制寄存器TCON。
这些寄存器之间是通过内部总线和控制逻辑电路连接起来的。
TMOD主要是用于选定定时器的工作方式;TCON主要是用于控制定时器的启动停止,此外TCON还可以保存T0、T1的溢出和中断标志。
当定时器工作在计数方式时,外部事件通过引脚T0(P3.4)和T1(P3.5)输入。
定时计数器的原理:16位的定时器/计数器实质上就是一个加1计数器,其控制电路受软件控制、切换。
当定时器/计数器为定时工作方式时,计数器的加1信号由振荡器的12分频信号产生,即每过一个机器周期,计数器加1,直至计满溢出为止。
显然,定时器的定时时间与系统的振荡频率有关。
因一个机器周期等于12个振荡周期,所以计数频率fcount=1/12osc。
如果晶振为12MHz,则计数周期为:T=1/(12×106)Hz×1/12=1μs这是最短的定时周期。
若要延长定时时间,则需要改变定时器的初值,并要适当选择定时器的长度(如8位、13位、16位等)。
当定时器/计数器为计数工作方式时,通过引脚T0和T1对外部信号计数,外部脉冲的下降沿将触发计数。
计数器在每个机器周期的S5P2期间采样引脚输入电平。
若一个机器周期采样值为1,下一个机器周期采样值为0,则计数器加1。
51单片机定时器实验实验内容:实验内容:(1)编写程序使定时器0或者定时器1工作在方式1,定时50ms触发蜂鸣器。
C语言程序#include<reg52.h>#define uint unsigned int#define ucahr unsigned charsbit FM=P0^0;void main(){TMOD=0x01;TH0=(65535-50000)/256;TH0=(65535-50000)%256;EA=1; //开总中断ET0=1; //开定时器0中断TR0=1;while(1);}void T0_time()interrupt 1 {TH0=(65535-50000)/256; TH0=(65535-50000)%256; FM=~FM;}汇编程序ORG 0000HJAMP MAINORG 000BHLJMP INT0_INTORG 0100HMIAN: SETB EASETB ET0AJMP $INT0_INT:MOV R2,#0FAHMOV R3,#0C8HDJNZ R3,$DJNZ R2,INT0_INTRETI(2)编写程序使定时器0或者定时器1工作在方式1,定时500ms使两位数码管从00、01、02……98、99每间隔500ms加1显示。
#include<reg52.h>#define uint unsigned int#define ucahr unsigned charuint num,num1;sbit FM=P0^7;int shi,ge,a;void delay(uint);void shumaguan();unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e}; //共阳极数码管0-F编码表void main(){TMOD=0x01;TH0=(65535-50000)/256; TH0=(65535-50000)%256; EA=1; //开总中断ET0=1; //开定时器0中断TR0=1;while(1){shumaguan();}}void T0_time()interrupt 1 {TH0=(65535-50000)/256; TH0=(65535-50000)%256;num1++;if(num1==10) {num1=0;num++;shi=num/10;ge=num%10;if(num==100) {num=0;}}}void shumaguan() {P3=0x01;P2=table[shi];delay(5);P3=0x02;P2=table[ge]; delay(5);void zuoyi(){a=~P3;a=a<<1;P3=~a;if(P3==0xfb){P3=0xfe;}}void delay(uint x) {int i,j;for(i=0;i<x;i++)for(j=0;j<110;j++);}(3)编写程序使定时器0或者定时器1工作在方式2,自动重装载模式,定时500ms 使两位数码管从00、01、02……98、99每间隔500ms加1显示。
51单片机定时时钟工作原理51单片机(也被称为8051微控制器)的定时器/计数器是一个非常有用的功能,它允许用户在特定的时间间隔内执行任务。
下面是其基本工作原理:1. 结构:8051单片机通常包含两个定时器/计数器,称为Timer0和Timer1。
每个定时器都有一个16位的计数器,可以用来跟踪经过的时间或事件。
2. 时钟源:定时器的核心是一个振荡器或外部时钟源,为计数器提供脉冲。
通常,这个时钟源可以是内部的,也可以是外部的。
内部时钟源通常基于系统时钟,而外部时钟源则直接从外部硬件输入。
3. 计数过程:每当振荡器产生一个脉冲,计数器就会增加(对于向上计数的定时器)或减少(对于向下计数的定时器)一个单位。
这取决于定时器的模式。
4. 溢出:当计数器达到其最大值(对于向上计数的定时器)或达到0(对于向下计数的定时器)时,会发生溢出事件。
这会导致一个中断,可以用来执行特定的任务或操作。
5. 分频:在某些模式下,计数器的输出可以用来分频系统时钟,从而产生更精确的定时器时钟。
6. 预分频器:预分频器允许用户设置一个值,该值决定了振荡器的输入脉冲被分频的次数。
这有助于控制计数器的速度,从而控制定时器的精度。
7. 工作模式:8051微控制器支持多种定时器模式,包括正常模式、自动重装载模式和比较模式。
每种模式都有其特定的应用和行为。
8. 中断:当定时器溢出时,可以产生一个中断。
这意味着微控制器可以暂时停止当前的任务,转而处理与定时器相关的特定任务。
通过合理配置和使用这些定时器/计数器,开发人员可以在8051单片机上实现精确的时间控制和事件调度。
这对于实现诸如延时、精确计时和脉冲生成等功能非常有用。
51单片机定时器设置51单片机,也被称为8051微控制器,是一种广泛应用的嵌入式系统。
它具有4个16位的定时器/计数器,可以用于实现定时、计数、脉冲生成等功能。
通过设置相应的控制位和计数初值,可以控制定时器的启动、停止和溢出等行为,从而实现精确的定时控制。
确定应用需求:首先需要明确应用的需求,包括需要定时的时间、计数的数量等。
根据需求选择合适的定时器型号和操作模式。
设置计数初值:根据需要的定时时间,计算出对应的计数初值。
计数初值需要根据定时器的位数和时钟频率进行计算。
设置控制位:控制位包括定时器控制寄存器(TCON)和中断控制寄存器(IE)。
通过设置控制位,可以控制定时器的启动、停止、溢出等行为,以及是否开启中断等功能。
编写程序代码:根据需求和应用场景,编写相应的程序代码。
程序代码需要包括初始化代码和主循环代码。
调试和测试:在完成设置和编程后,需要进行调试和测试。
可以通过观察定时器的状态和输出结果,检查定时器是否按照预期工作。
计数初值的计算要准确,否则会影响定时的精度。
控制位的设置要正确,否则会导致定时器无法正常工作。
需要考虑定时器的溢出情况,以及如何处理溢出中断。
需要考虑定时器的抗干扰能力,以及如何避免干扰对定时精度的影响。
需要根据具体应用场景进行优化,例如调整计数初值或控制位等,以达到更好的性能和精度。
51单片机的定时器是一个非常实用的功能模块,可以用于实现各种定时控制和计数操作。
在进行定时器设置时,需要注意计数初值的计算、控制位的设置、溢出处理以及抗干扰等问题。
同时需要根据具体应用场景进行优化,以达到更好的性能和精度。
在实际应用中,使用51单片机的定时器可以很方便地实现各种定时控制和计数操作,为嵌入式系统的开发提供了便利。
在嵌入式系统和微控制器领域,51单片机因其功能强大、使用广泛而备受。
其中,定时器中断功能是51单片机的重要特性之一,它为系统提供了高精度的定时和计数能力。
本文将详细介绍51单片机定时器中断的工作原理、配置和使用方法。
51单片机定时器工作原理在嵌入式系统中,定时器是一个非常重要的模块,它可以用来进行定时操作、计数操作等。
而在51单片机中,定时器也是一个核心的功能模块。
本文将介绍51单片机定时器的工作原理,希望能够帮助大家更好地理解和应用定时器功能。
首先,我们来看一下51单片机中定时器的基本结构。
51单片机中有定时器/计数器T0和T1两个,它们都是16位的定时器/计数器。
每个定时器/计数器都有一个相关的控制寄存器,用来设置定时器的工作模式、计数初值等。
此外,定时器还有一个相关的中断控制寄存器,用来允许或禁止定时器中断。
定时器的工作原理主要包括定时器的工作模式、工作时钟源以及定时器的中断功能。
定时器的工作模式有4种,分别是模式0、模式1、模式2和模式3。
在不同的工作模式下,定时器可以实现不同的功能,比如定时器功能、计数功能等。
工作时钟源可以是外部时钟源,也可以是内部时钟源。
通过设置相关的控制寄存器,可以选择合适的工作时钟源。
定时器的中断功能可以在定时器溢出时产生中断请求,通过设置中断控制寄存器,可以允许或禁止定时器中断。
接下来,我们将详细介绍51单片机定时器的工作模式。
模式0是最简单的工作模式,定时器工作在方式0下时,定时器每次溢出都会产生一个中断请求。
模式1是定时器的13位工作模式,定时器每次溢出都会产生一个中断请求。
模式2是定时器的8位自动重装载模式,定时器每次溢出都会重新装载初值,并产生一个中断请求。
模式3是定时器的两个8位计数器工作在方式3下时,定时器可以实现两个独立的计数功能。
此外,定时器的工作时钟源也是非常重要的。
在51单片机中,定时器的工作时钟源可以是系统时钟、外部时钟或者定时器自己的时钟。
通过设置相应的控制寄存器,可以选择合适的工作时钟源。
最后,我们来介绍一下定时器的中断功能。
在51单片机中,定时器的中断功能可以在定时器溢出时产生中断请求,通过设置中断控制寄存器,可以允许或禁止定时器中断。
定时器中断可以在定时器溢出时执行一段中断服务程序,实现定时操作。
51单片机定时器工作方式
51单片机的定时器有两种工作方式:。
1.定时计数器模式。
单片机定时器通过定时计数器模式实现定时功能,定时器会计数,当
计数到预设值时,定时器就会触发中断或者标志位,从而实现定时功能。
单片机的定时器可以通过外部晶振或者内部时钟源提供时钟信号进行计数,计数值可以根据不同的定时需求进行设置,比如毫秒级,微秒级等精度的
定时。
2.脉冲捕获模式。
单片机定时器通过脉冲捕获模式实现测量外部事件的时间,脉冲捕获
模式可以捕获外部脉冲的高低电平信号,并将捕获到的数值存入定时器计
数器中,从而实现对脉冲的测量功能。
脉冲捕获模式主要应用于测量高速
事件的脉冲信号,比如汽车发动机的转速测量,超声波传感器的距离测量等。
51单⽚机的定时器(⼀)⼀、结构51单⽚机有2个16位的定时器/计数器,它们有四种⼯作⽅式。
定时器系统的结构如下:定时器的⼯作⽅式由寄存器TMOD选择,TMOD如下:定时器的四种⼯作⽅式由M1,M0选择,对应如下:M1 M00 0 ⽅式00 1 ⽅式11 0 ⽅式21 1 ⽅式3C/T(⾮)则选择定时器/计数器是⼯作在计数⽅式还是定时⽅式。
1:counter 0:timerGATE为1时选择定时/计数器⼯作在门控⽅式定时器的的⼯作由寄存器TCON控制,TCON如下:TCON的⾼四位与定时/计数器有关,低四位与外部中断有关,TRX=1时开启定时/计数器,THX+TLX开始计数,当THX 和TLX溢出时,TFX 被置1.THX(X=0,1)和TLX(X=0,1)两个8位的寄存器共同组成16位的寄存器,⼀起记录定时/计数器的计数值。
⼆、四种⼯作⽅式:1.⼯作⽅式0当TMOD中的M0=0,M1=0时,定时/计数器⼯作在⽅式0.定时/计数器0(t0)在⼯作⽅式0时的结构图如下(t1与t0完全⼀样):暂时不管下半部分。
从图中可以看出,计数寄存器TH0的8位和TL0的低5位位组成13位计数器,TR0=1时(打开计数器----也和GATE有关,此时GATE=0),当C/T(⾮)=0时,计数时钟源接通晶振的的12分频,晶振每12个周期产⽣⼀个计数脉冲,计数寄存器+1,这时t0作定时器⽤;当C/T(⾮)=1时,计数时钟源接通外部引脚P3.4,外部输⼊⼀个脉冲,计数寄存器+1,这时t0作计数器。
当13位的计数寄存器溢出时,会把TF0位置1,如果设置了中断,则会产⽣定时中断。
书接上回,下⾯是定时器的其他⼯作⽅式。
⼀、⼯作⽅式1:(还是拿t0做说明)定时/ 计数器的⼯作⽅式1是⽤的⽐较多的,它的结构图如下:(图⽚遗失,转移的时候找不到链接了。
)TH0的⼋位和TL0的⼋位构成⼀个16位定时/计数器,可以定时时间最长在⼯作⽅式1下,计数器的计数值范围是:1—65536(216)当为定时⼯作⽅式1时,定时时间的计算公式为:(216—计数初值)╳晶振周期╳12或(216—计数初值)╳机器周期其时间单位与晶振周期或机器周期相同。
51单片机定时器工作方式
51单片机是一种非常常见的单片机,它具有多个定时器用来实现
各种定时任务。
下面我们就来详细介绍一下51单片机的定时器工作方式。
首先,51单片机的定时器可以分为两种类型:定时/计数器0(T0)和定时/计数器1(T1),它们分别有不同的工作方式和控制寄存器。
一、定时/计数器0(T0)工作方式:
定时/计数器0(T0)是一个8位的定时器/计数器,它可以进行定时或
计数操作。
在定时模式下,它可以作为定时器在规定的时间段内进行
计时;在计数模式下,它可以根据外部信号的脉冲计数。
在定时模式下,T0可以通过设置控制寄存器TCON的位4(TR0)
来启动或停止计时操作。
当TR0为1时,定时器开始计时;当TR0为0时,定时器停止计时。
定时器的工作频率可以通过控制寄存器TMOD的
位1和位0来设置。
在计数模式下,T0可以通过设置TCON的位5(CT0)来选择定时
器或计数器操作。
当CT0为0时,定时器工作,当CT0为1时,计数
器工作。
同时,在计数模式下,还需要通过设置控制寄存器TMOD的位
1和位0来设置计数器的工作频率。
定时/计数器0还可以使用中断功能,通过设置控制器IE的位4(ET0)来开启或关闭中断。
当ET0为1时,当定时器溢出时会产生中
断请求,可以在中断服务程序中处理相应的操作。
二、定时/计数器1(T1)工作方式:
定时/计数器1(T1)也是一个8位的定时器/计数器,它可以进行定时
或计数操作。
类似于T0,T1也可以在定时模式下作为定时器进行计时,或者在计数模式下根据外部信号的脉冲进行计数。
在定时模式下,T1可以通过设置TCON的位6(TR1)来启动或停
止计时操作。
当TR1为1时,定时器开始计时;当TR1为0时,定时
器停止计时。
定时器的工作频率可以通过设置TMOD的位3和位2来设置。
在计数模式下,T1可以通过设置TCON的位7(CT1)来选择定时
器或计数器操作。
当CT1为0时,定时器工作;当CT1为1时,计数
器工作。
同时,在计数模式下,还需要通过设置控制寄存器TMOD的位
3和位2来设置计数器的工作频率。
定时/计数器1也可以使用中断功能,通过设置控制器IE的位3(ET1)来开启或关闭中断。
当ET1为1时,当定时器溢出时会产生中
断请求,可以在中断服务程序中处理相应的操作。
总结起来,51单片机的定时器工作方式包括定时和计数两种模式,分别可以通过控制寄存器TMOD的位来设置工作频率。
定时/计数器0
和定时/计数器1可以通过控制寄存器TCON的不同位来启动、停止计
时操作,并且可以选择定时器或计数器的工作模式。
同时,定时/计数
器0和定时/计数器1还可以使用中断功能,通过控制器IE的位来开
启或关闭中断请求。
这些定时器的使用,为51单片机的定时任务提供
了非常便利的方式。