80C51单片机的定时计数器
第四章-80C51单片机的功能单元

第四章80C51单片机的功能单元4·1 80C51的四个I/O口在使用上有哪些分工和特点?试比较各分工的特点? 试比较各口的特点?何谓分时复用总线?P3口的第二变异功能有哪些?答:(1)80C51的四个I/O口在使用上的分工和特点①P0口: 可作通用I/O口用,也可作地址/数据线用。
作通用I/O口用时,输出级为开漏极电路,在驱动外部电路时应接上拉电阻;在接有外部存储器时,P0口作地址/数据线用,先输出低8位地址到外部地址锁存器,后输人指令代码或输人/输出数据。
②Pl口: 是一个8位准双向口,作通用I/O口用。
③P2口: 是一个8位准双向口,作通用I/O口用。
当外部接有存储器时,可用于输出高8位地址。
④P3口: 是一个多功能端口。
其基本功能仍然是通用I/O口,使用时与Pl、P2口类似。
其第二功能则是串行口、外部中断线、定时器/计数器的输入及外部数据存储器的选通信号等。
(2)分时复用总线分时复用总线是:在一组总线上,在不同的时间,有时输出地址,有时输人代码或输出/输人数据。
例如,P0口和P2口就组成了一组地址/数据复用总线。
(3)P3口的第二变异功能第一功能第二变异功能串行口:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)中断:P3.2 INT0外部中断0P3.3 INT1外部中断1定时器/计数器(T0、T1):P3.4 T0(定时器/计数器0的外部输入)P3.5 T1(定时器/计数器1的外部输入)数据存储器选通:P3.6 WR(外部存储器写选通,低电平有效,输出)P3.7 RD(外部存储器读选通,低电平有效,输出)4·2 80C51端口P0~P3作通用I/O 口时,在输入引脚数据时,应注意什么?答:p0~p3作通用I/O口在输入引脚数据时,应先用软件向口的输出锁存器写1。
4·3 "读一改一写"指令有何特点? 请至少列出五条不同操作的"读—改一写"指令。
80c51单片机定时器计数器工作原理

80c51单片机定时器计数器工作原理80C51单片机是一种常用的微控制器,其定时器/计数器(Timer/Counter)是实现定时和计数功能的重要组件。
以下简要介绍80C51单片机定时器/计数器的工作原理:1. 结构:定时器/计数器由一个16位的加法器构成,可以自动加0xFFFF(即65535)。
定时器/计数器的输入时钟可以来自系统时钟或外部时钟源。
2. 工作模式:定时模式:当定时器/计数器的输入时钟源驱动加法器不断计数时,可以在达到一定时间后产生中断或产生其他操作。
计数模式:当外部事件(如电平变化)发生时,定时器/计数器的输入引脚可以接收信号,使加法器产生一个增量,从而计数外部事件发生的次数。
3. 定时常数:在定时模式下,定时常数(即定时时间)由预分频器和定时器/计数器的初值共同决定。
例如,如果预分频器设置为1,定时器/计数器的初值为X,那么实际的定时时间 = (65535 - X) 预分频系数输入时钟周期。
在计数模式下,定时常数由外部事件发生的时间间隔决定。
4. 溢出和中断:当加法器达到65535(即0xFFFF)时,会产生溢出,并触发中断或其他操作。
中断处理程序可以用于执行特定的任务或重置定时器/计数器的值。
5. 控制寄存器:定时器/计数器的操作可以通过设置相关的控制寄存器来控制,如启动/停止定时器、设置预分频系数等。
6. 应用:定时器/计数器在许多应用中都很有用,如时间延迟、频率测量、事件计数等。
为了充分利用80C51单片机的定时器/计数器功能,通常需要根据实际应用需求配置和控制相应的寄存器,并编写适当的软件来处理定时器和计数器的操作。
80C51单片机的定时计数器

80C51单片机的定时计数器定时计数器的控制寄存器<>定时器/计数器的工作方式1.定时器/计数器的工作方式0<1)电路逻辑结构当图6-7中的计数器=13位<TH的8位与TL低5位)即得方式0的逻辑电路图。
<2)工作方式0的特点①两个定时器/计数器T0、T1均可在方式0下工作;②是13位的计数结构,其计数器由TH全部8位和TL的低5位构成<高3位不用);③当产生计数溢出时,由硬件自动给计数溢出标志位TF0<TF1)置1,由软件给TH,TL重新置计数初值。
应说明的是,方式0采用13位计数器是为了与早期的产品兼容,计数初值的高8位和低5位的确定比较麻烦,所以在实际应用中常由16位的方式1取代。
2.定时器/计数器的工作方式1<1)电路逻辑结构方式1是16位计数结构的工作方式,计数器由TH全部8位和TL全部8位构成。
其逻辑电路如图6-11所示。
<2)工作方式1的特点①两个定时器/计数器均可在方式1下工作;②是16位的计数结构,其计数器由TH的全部8位和TL的全部8位构成;③当产生计数溢出时,由硬件自动给计数溢出标志位TF0<TF1)置1,由软件给TH,TL重新置计数初值。
<3)计数/定时的范围在方式1下,当为计数工作方式时,由于是16位的计数结构,所以计数范围是:1~65536。
当为定时工作时,其定时时间=<216-计数初值)×机器周期,例如:设单片机的晶振频率f=12MHz,则机器周期为1μs,从而定时范围:1μs~65536μs。
因为80C51单片机的定时计数器是可编程的。
因此,在利用定时/计数器进行定时计数之前,先要通过软件对他进行初始化,初始化一般应进行如下工作:①设置工作方式,即设置TMOD中的各位GATE、C/T、M1M0。
②计算加1计数器的计数初值COUNT,并将计数初值COUNT 送入TH、TL中。
计数方式:计数值 = 2n – COUNT ,计数初值:COUNT= 2n –计数值。
定时器计数器答案

定时器/计数器6·1 80C51单片机内部有几个定时器/计数器?它们就是由哪些专用寄存器组成? 答:80C51单片机内部设有两个16位的可编程定时器/计数器,简称为定时器0(T0)与定时器l(Tl)。
在定时器/计数器中的两个16位的计数器就是由两个8位专用寄存器TH0、TL0, THl、TLl组成。
6·2 80C51单片机的定时器/计数器有哪几种工作方式?各有什么特点?答:80C51单片机的定时器/计数器有4种工作方式。
下面介绍4种工作方式的特点。
方式0就是一个13位的定时器/计数器。
当TL0的低5位溢出时向TH0进位,而TH0溢出时向中断标志TF0进位(称硬件置位TF0),并申请中断。
定时器0计数溢出与否,可通过查询TF0就是否置位或产生定时器0中断。
在方式1中,定时器/计数器的结构与操作几乎与方式0完全相同,惟一的差别就是:定时器就是以全16位二进制数参与操作。
方式2就是能重置初值的8位定时器/计数器。
其具有自动恢复初值(初值自动再装人)功;能,非常适合用做较精确的定时脉冲信号发生器。
方式3 只适用于定时器T0。
定时器T0在方式3T被拆成两个独立的8位计数器TL0: 与TH0。
其中TL0用原T0的控制位、引脚与中断源,即:C/T、GATE、TR0、TF0与T0 (P3、4)引脚、INTO(P3、2)引脚。
除了仅用8位寄存器TL0外,其功能与操作与方式0、方式1完全相同,可定时亦可计数。
此时TH0只可用做简单的内部定时功能。
它占用原定时器Tl 的控制位TRl与TFl,同时占用Tl的中断源,其启动与关闭仅受TRl置1与清0控制。
6·3 定时器/计数器用做定时方式时,其定时时间与哪些因素有关?作计数时,对外界计数频率有何限制?答: 定时器/计数器用做定时方式时,其定时时间与时钟周期、计数器的长度(如8位、13位、16位等)、定时初值等因素有关。
作计数时,外部事件的最高计数频率为振荡频率(即时钟周期)的1/24。
定时计数器详解

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。
单片机原理及应用 第四章 80C51单片机的功能单元

Vcc
R (上拉电阻)
P1·X 引脚
1
读引脚
输入缓冲器
驱动能力:P1、P2、P3可驱动4个LSTTL负载 P0可驱动8个LSTTL负载
2、用作输入口 两种工作方式:
读锁存器 读引脚
1)读锁存器
将端口锁存器的内容读入内部总线,经过运算和变换,再 写回到端口锁存器。
称为 读—修改—写指令
例:ANL P1,#0FH
1、用作输出口 可直接与外设相连,不必外加字锁节存寻器址
输出指令:
MOV P1,A MOV P1,#data
;MOV P1,Rn ;MOV P1,@Ri
MOV P1,direct 位操作
MOV P1.X , C
P1·0位
读锁存器
内部总线 1
写锁存器
例: MOV P1,#0FH
输入缓冲器
1 D P1·X Q CL 锁存器 Q 0
4、作为双向口使用 准双向口
80C51的4个I/O口在进行数据的输入输出操作时, 均可作为双向口使用。即,同一口线既作为输入 口,又用作输出口。
操作方法:以P1口为例 MOV P1, A
;直接使用输出指令
··· ··· MOV P1,#0FFH MOV A,P1
;锁存器置1 ;输入指令
80C51的P1由输出口转为输入口时,需先将锁 存器置1,然后使用输入指令。
P1、P2、P3口: 4个TTL负载
五、80C51的外部总线
4.2 定时/计数器
单片微机系统特点:面向测控系统
要求单片微机能够提供实时功能,以实现定时、 延时或实时时钟;也常要求计数功能,以实现 对外部事件计数
80C51系列单片微机提供2个(8051型)或3个 (8052型)16位的定时/计数器,可程控为4种 工作方式
51单片机定时计数器的工作原理

51单片机定时计数器的工作原理
51单片机是一种常用的微控制器,它具有多个定时计数器,其中包括定时器0和定时器1。
这些定时计数器是通过内部时
钟源提供的脉冲进行计数的。
定时器0和定时器1是独立的计数器,它们可以用于不同
的应用。
这里我们将主要关注定时器0的工作原理。
定时器0
由一个八位计数器和一个控制寄存器组成。
当定时器0启动时,它会根据时钟源提供的脉冲进行计数,每个脉冲会使计数器的值增加1。
定时器0的计数范围为0-255,即八位二进制数。
通过控制寄存器,我们可以设置定时器0的工作模式、计
数器的初始值以及时钟源的频率。
定时器0可以以不同的方式工作,包括定时模式和计数模式。
在定时模式下,我们可以设置一个初始值,并在每次计数
器增加到该值时产生一个中断。
这样就可以实现精确的定时功能。
定时器0的中断服务程序可以完成各种操作,例如控制其他外设、延时等。
在计数模式下,定时器0将简单地计数外部触发信号的脉
冲次数。
这可以用于测量外部事件的时间间隔或频率。
需要注意的是,定时器0的工作需要通过编程来完成。
我
们可以使用汇编语言或C语言来配置定时器0的寄存器,并
设计相应的中断服务程序。
51单片机定时器的工作原理是通过定时器0和定时器1实
现计数功能。
定时器0可以在定时模式或计数模式下工作,通过设置计数值和时钟源频率,实现精确的定时功能或测量外部
事件的时间间隔或频率。
编程则是必不可少的,通过配置寄存器和编写中断服务程序来实现定时器的工作。
c51单片机计数器触发机制

C51单片机的计数器是通过触发机制来工作的。
在C51单片机中,有两种常见的计数器类型:定时器和计数器/计时器。
1. 定时器(Timer):
定时器用于生成一定时间间隔的定时事件。
C51单片机中的定时器是基于内部或外部时钟源进行计数的。
当定时器达到设定的计数值时,会触发定时器中断,并执行相应的中断服务程序(ISR)。
可以使用定时器来生成精确的时间延迟、控制周期性任务等。
2. 计数器/计时器(Counter/Timer):
计数器/计时器可以用来计数外部事件的脉冲数量或测量时间间隔。
它可以根据外部事件的触发边沿(上升沿或下降沿)来触发计数动作。
当计数器达到设定的计数值时,也可以触发计数器中断,并执行相应的中断服务程序(ISR)。
计数器还可以被配置为计时器模式,用于测量时间间隔。
在C51单片机中,计数器的触发机制通常是通过设置相关的寄存器来实现的。
这些寄存器包括计数器的初始值、计数模式、计数触发边沿等。
通过配置这些寄存器,可以灵活地控制计数器的工作方式和触发条件。
需要注意的是,具体的计数器触发机制可能会因不同的单片机型号而有所差异。
因此,在编程时应参考相关的芯片手册或数据表,以了解具体的计数器触发机制及其相应的寄存器设置。
1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
27
2 产生方波信号(查询方式)
设置TMOD 设置计数器初值 启动计数
NO
TF=1? YES
TF=0 重装计数器初值 口线求反
查询方式参考程序:
MOV MOV MOV TMOD,#01H ;设置T0为方式1 TH0,#0FEH TL0,# 0CH ;启动T0计数 ;查TF0, ;若TF0 =1, 清除TF0,转NEXT SJMP LOOP CPL MOV MOV P1.0 TH0,#0FEH TL0,# 0CH ;若TF0 =0, 循环等待 ;P1.0的状态求反 ;T0置初值 ;T0置初值
返回结构图
TH0,TL0和T1三个计数器
返回
定时/计数器4种模式定时长度比较
模 式 模式0 模式1 模式2,3 模 式 计数模M 13位 16位 8位
返回
最大计数长度(单位:机器周期) T max=213=8192 T max=216=65536 T max=28=256 (fosc=12MHz)
M1 、M0 模式选择:确定四种工作模式。
M1、M0 0 0 0 1 1 0 1 1 工作模式 模式0(13位) 模式1(16位) 模式2(8位自动重装) 模式3(8位)
2 运行控制寄存器TCON (SFR地址:88H)
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
TF0 定时器T0的溢出标志: 当计数器发生溢出时硬件自动置位,TF0=1。
参考程序如下:
ORG 0000H ;主程序入口 ;转真正主程序入口 ;T0中断入口 ;转T0中断处理程序IT0P ;真正主程序入口 ;设堆栈指针 ;调用初始化子程序PT0M0
RESET: AJMP MAIN ORG 000BH
AJMP IT0P ORG 0100H MAIN: MOV SP,#60H ACALL PT0M0
80C51单片机定时/计数器逻辑模型
返回
6.1 定时/计数器的控制和状态寄存器
1 方式控制寄存器TMOD (SFR的地址:89H)
GATE
C/T
M1
M0
GATE
C/T
M1
M0
定时/计数器1
定时/计数器0
结构图 返回
GATE 门控位
GATE=0:TR=1,计数器开始工作。 内部启动模式/软件启动模式; GATE=1:/INT=TR=1时,计数器开始工作。 外部控制启动模式/ 硬件启动 可用于测量 /INT脚上的信号高电平脉冲的宽度。
累计,计满10次,即得秒计时。而计数10次可用循环程序 的方法实现。
片内RAM规定3个单元为秒、分、时单元: 42H:“秒”单元;41H:“分”单元;40H:“时”单 元 从秒到分,从分到时是通过软件累加并比较来实现: 每满1秒,则“秒”单元42H中的内容加1;“秒”单元满 60 ,则“分”单元 41H 中的内容加 1 ;“分”单元满 60 ,则 “时”单元40H中的内容加1;“时”单元满24,则将42H、 41H、40H的内容全部清“0”。
典型应用:产生一个符合某一要求的脉冲方波。
输出波形 80C51
20mS 40mS
P x.y
2 计数:
对外部的事件(脉冲)进行统计。
外部事件的发生是随机的,单片机可以进行统计。
当达到所要求的计数值时,单片机进行相应的操作。
80C51 T0 ( T1) 端口 外部脉冲 外部 设备
3. 定时/计数器的逻辑结构及工作原理:
IT0P: MOV TL0,#0CH ;中断子程序,T0重装初值
MOV TH0,#0FEH CPL P1.0 ;P1.0的状态取反
RETI
26
程序说明:
当单片机复位时,从程序入口0000H跳向主程序MAIN 处执行。其中调用了T0初始化子程序PT0M0。 PT0M0子 程序返回后,程序执行“AJMP HERE”指令,则循环等 待。 当T0定时溢出时,则跳向T0中断入口,再从T0中断入 口跳向IT0P标号处执行T0中断服务子程序。 当执行完中断返回的指令“RETI”后,又返回断点处继 续执行循环指令“AJMP HERE”。
C/T=0 C/T=1
控制 TL0 TF0 中断
T0 引脚
TR0
GATE
INT0 Fosc/12 TR1 控制 TH0 TF1
中断
模式3定时器T0的结构图
模式3时T0(TH0,TL0)及T1的各自特点:
1 TH0计数脉冲来自内部fosc,所以它只能处于”定时”方式;
2 TH0分别借用了定时器T1的TR1和TF1为自己服务,使TH0能象 TL0那样用TR1启动定时,并用TF1来作为TH0的溢出标志; 3 由于T1缺少了启动控制信号TR1和溢出中断标志TF1,那么在 模式3时,T1是如何启动和工作? 没有溢出标志TF1,则T1就不用中断方式工作(连查询也不行); 没有启动控制信号TR1,可以让它在模式3之前就开始工作,并 且让它事先设定为自动重装模式.
T1事先设定为模式2(串行口的波特率发生器)并启动起来。
返回结构图 返回
在模式3时T0,T1的电路结构图
TL0八位定时/计数器
TH0八位定时器
TF0
TF1
T0分解为两个计数器 TL0和TH0,其中TH0借 用了T1的TR1和TF1
T1(TL1,TH1)自动重装模式
T1已无TR1,TF1功能, 建议T1做波特率发生器
返回
2,模式1 :16位计数器模式(以T1为例).
启动控制 C/T=0
震荡器
1/12
16位加1计数器
TL1 C/T=1
T1 引脚 TR1 GATE
(8位)
TH1
(8位)
TF1
中断
INT1
注:计数器在每个机器周期采样一次从T1引脚进入的外部计数脉冲,由于检 测到一次从高到低的负跳变需要两个机器周期,所以外部计数脉冲的频率应 小于fosc/24
(1):如何控制实现定时功能或计数功能?
(2):何时控制启动计数器? (3):如何控制定时/计数的长短?
系统内部 震荡器fosc/12 C/T=0 定时/计数 控制C/T 外部脉冲 T0或T1引脚 C/T=1 启动控制 TR
计数脉冲 CP N位增量计数器
TF
计数器溢出 (置位溢出标志)
N位初值寄存器
MOV MOV LOOP0: JB
TL1,#00H TH1,#00H P3.3,LOOP0 ;等待 INT1 低 ;如 INT1 为低,启动T1
SETB TR1
32
LOOP1:JNB P3.3,LOOP1;等待 INT1 升高
LOOP2:JB P3.3,LOOP2 ; INT1 为高, 此时计数器计数, ;等待 INT1 降低 CLR MOV MOV …… END TR1 A,TL1 B,TH1 ;停止T1计数 ;T1计数值送A ;
计数模M 最大定时时间 TMAX 13位 16位
模式0 模式1
T max=213*1μЅ =8.192ms T max=216*1μЅ=65.536ms
模式2、3
8位
T max=28*1μЅ=0.256ms
6.3
定时器/计数器的编程和应用
【例6-1】假设系统时钟频率采用6MHz,在P1.0引脚上输出 一个周期为2ms的方波,如图6-13所示。
模式3 :拆分/组合扩展8位模式
震荡器 1/12
启动控制 C/T=0
C/T=1
13位加1计数器 TH1 TL1 (低5 GATE
INT1
1 模式0:13位计数器模式。
高三位弃用
13位计数器。在初值的基础上加1计数,溢出时,使TF1=1。
GATE=0时,TR1=1开始定时/计数; GATE=1时(门控方式), TR=1且/INT1=1时,开始工作。 此种方式主要用于测量加在/INT1脚上正脉冲的脉宽.
80C51单片机的定时/计数器
6.1 80C51定时/计数器的逻辑结构与控制寄存器
6.2 定时/计数器的四种工作模式
定时/计数器初始化
6.3 定时/计数器的应用
定时/计数器工作方式与原理
定时/计数器是一种应用非常广泛的硬
件逻辑电路, 本质是“计数器”。
1 定时:
产生一个标准的时间间隔:如20mS,100mS,1000mS。
执行以上程序,测得 INT1 引脚上出现的正脉冲宽度以
机器周期为单位。
33
日时钟的设计--定时器应用
1.实现日时钟的基本思想
最小计时单位是秒,如何获得1s的定时时间?
从定时/计数器4种模式定时长度比较知,时钟频率采用
6MHz,定时器方式1,最大定时时间也只能131ms。可将
定时器的定时时间定为100ms,中断方式进行溢出次数的
20
产生方波信号(中断方式)
设置TMOD 设置计数器初值
重装计数器初值
开中断
口线求反
启动计数
RETI
主程序流程图
中断处理子程序流程图
(1)主程序设计 初始化指令段
采用定时器中断方式工作。包括定时器初始化和中断系统初
始化,主要是对寄存器 IP、 IE、 TCON、 TMOD 的相应位进行 正确的设置,并将计数初值送入定时器中。
对外部输入信号的要求,图中,Tcy为机器周期。
对外部计数输入信号的要求
13
3,模式2 : 8位自动重装初值模式
由TL1做计数器,TH1做初值寄存器, 工作前TL1,TH1分别预置相同的初值
TL1计数时, 当产生溢出置位TF1的同时, 将TH1中的初值自动重装入TL1。 TL1继续计数,此模式主要用于做串行口波特率发生器。
上正脉冲的宽度。
P3.3 80C51
30
利用GATE位测量正脉冲的宽度
参考程序:
ORG 0000H ;复位入口转主程序