MCS51单片机中的定时器
第06章 MCS-51单片机定时计数器

10
2 8位计数初值自动重装,TL(7 ~ 0)
TH(7 ~ 0)
11
3 T0运行,而T1停止工作,8位定时/计数。
▪ 2.定时/计数器控制寄存器(TCON)
位
D7 D6 D5 D4 D3 D2 D1 D0
位符号 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
TR0:定时 / 计数器0运行控制位。软件置位,软件复位。与GATE有关, 分两种情况:
GATE = 0 时:若TR0 = 1,开启T0计数工作;若TR0 = 0,停止T0计 数。
GATE = 1 时:若TR0 = 1 且/INT0 = 1时,开启T0计数; 若TR0 = 1 但 /INT0 = 0,则不能开启T0计数。 若TR0 = 0, 停止T0计数。
TR1:定时 / 计数器1运行控制位。用法与TR0类似。
▪ (1)计算计数初值。欲产生周期为1000μs的等宽方波脉冲, 只需在P1.7端交替输出500μs的高低电平即可,因此定时 时间应为500μs。设计数初值为X,则有:
▪ (216-X)×1×10-6=500×10-6
▪ X=65536-500=65036=FE0CH
▪ 将X的低8位0CH写入TL1,将X的高8位FEH写入TH1。
;清TCON,定时器中断标志清
▪
MOV TMOD,#10H
;工作方式1设定
▪
MOV TH1,#0FEH
;计数1初值设定
▪
MOV TL1,#0CH
▪
MOV IE,#00H
;关中断
▪
SETB TR1
;启动计数器1
▪ LOOP0:JBC TF1,LOOP1 ;查询是否溢出
▪
MCS-51最新单片机内部设有几个定时计数器?它们是由哪些专用[整理]
![MCS-51最新单片机内部设有几个定时计数器?它们是由哪些专用[整理]](https://img.taocdn.com/s3/m/03d82613cd1755270722192e453610661ed95a6c.png)
1.MCS-51单片机内部设有几个定时/计数器?它们是由哪些专用寄存器组成?答:MCS-51单片机内部设有2个定时/计数器。
他们由两个8位的特殊功能寄存器TCOM和TMOD,两个16位的特殊功能寄存器T0和T1构成。
2.MCS-51单片机的定时/计数器有哪几种操作模式?各有什么特点?答:MCS-51单片机的定时/计数器有4种操作模式。
方式0:13位计数/定时器。
13位由TLi的低五位和THi构成,手动重载入时间常数,软件启动/停止计数/定时器。
方式1:16位计数/定时器。
16位由TLi和THi构成,手动重载入时间常数,软件启动/停止计数/定时器。
方式2:8位计数/定时器。
TLi被定义为加1计数器,THi被定义为赋值寄存器,自动重载入时间常数,软件启动/停止计数/定时器。
方式3:T0 被用作两个独立的8位计数/定时器,手动重载入时间常数,软件启动/停止计数/定时器。
T1常被用作波特率发生器。
3.80C51定时器作定时或计数时其计数脉冲分别由谁提供?当用作定时器时,其定时时间与哪些因素有关?用作计数器时,对外界计数脉冲频率有何限制?答:80C51定时器作定时时其计数脉冲由内部振荡器经12分频后的输出,即机器周期的脉冲提供;80C51定时器作计数时其计数脉冲由外部输入脉冲提供。
当用作定时器时,其定时时间与内部振荡器频率、时间常数和定时器工作方式有关。
当用作计数器时,外界计数脉冲频率应低于振荡频率的1/24。
4. 80C51定时器的门控信号GATE 设置为1时,定时器如何启动?答:80C51定时器的门控信号GATE 设置为1时,定时器启动需要同时满足INTi 引脚为高电平和Tri 置位这两个条件,即通过满足这两个条件来启动定时器。
5. 已知80C51单片机的MHz f osc 6=,请利用T0和P1.0输出矩形波。
其矩形波高电平宽度50s μ,低电平宽度300s μ。
答:源程序如下:ORG 0000HLJMP STARTORG 0100HSTART: MOV TMOD, #02H ;定时器工作方式2MOV TH0, #0E7H ;设定初值MOV TL0, #0E7HSETB TR0 ;启动计数器SETB P1.0 ;高电平HERE1: JBC TF0, NEXT ;判断中断标志位是否置位LJMP HERE1 ;未,重复执行NEXT: MOV TH0, #6AH ;设定高电平时初值MOV TL0, #6AHCLR P1.0 ;输出低电平HERE2: JBC TF0, START ;判断中断标志位是否置位,若置位则回到开始LJMP HERE2 ;未,重复执行END6. 已知80C51单片机的MHz f osc 12=,用T1定时,由P1.0和P1.1分别输出周期为2ms和500s μ的方波,试编程实现。
MCS-51单片机的定时器计数器

1. 定时器T0/T1 中断申请过程
(1)在已经开放T0/T1中断允许且已被启动的前提下, T0/T1加1计满溢出时 TF0/TF1标志位自动置“1” ;
(2)CPU 检测到TCON中TF0/TF1变“1”后,将产生指 令:LCALL 000BH/LCALL 001BH 执行中断服务程序;
(3)TF0/TF1标志位由硬件自动清“0”,以备下次中断申
郑州大学
docin/sundae_meng
(3)工作方式寄存器TMOD
T1
T2
GATE C / T M1 M0 GATE C / T M1 M0
M1,M0:工作方式选择位 。
=00:13位定时器/计数器; =01:16位定时器/计数器(常用); =10:可自动重装的8位定时器/计数器(常用); =11:T0 分为2个8位定时器/计数器;仅适用于T0。 C/T :定时方式/计数方式选择位。 = 1:选择计数器工作方式,对T0/T1引脚输入的外部事件 的负脉冲计数; = 0 :选择定时器工作方式,对机器周期脉冲计数定时。 如下页图所示。
CPL P1.0 MOV TH0,#15H MOV TL0,#0A0H
START:MOV SP,#60H MOV P1,#0FFH
SETB TR0 POP PSW
MOV TMOD,#01H MOV TH0,#15H MOV TL0,#0A0H
POP ACC RETI END
SETB EA
Байду номын сангаас
SETB ET0
定时器/计数器0采用工作方式1,其初值为:
21650ms/1s=6553650000=15536=3CB0H
电路图如下:
郑州大学
docin/sundae_meng
MCS-51单片机的定时器-计数器

MCS-51的定时器/计数器共有四种工作方式。工作在方式0、方 式1和方式2时,定时器/计数器0和定时器/计数器1的工作原理完全 一样,现以定时器/计数器0为例介绍前三种工作方式。
1. 方式0(M1M0=00) (1)电路逻辑结构
方式0是13位计数结构的工作方式,其计数器由TH0全部8位 和TL0的低5位构成。TL0高三位弃之不用。图6.4 是定时器/计数 器0工作在方式0的逻辑结构。
分析:题目的要求可用下图来表示。
。
P1.0
8051 250 s 250 s
由上图可以看出只要使 的电位每隔250 取一次反即可。所 以定时时间应取250 。
1)计算计数初值 设计数初值为x,由定时计算公式知:
2)专用寄存器的初始化
D7
D6 D5 D4
D3
D2 D1
D0
GATE
GATE
所以,TMOD应设置为:10H 开放定时器/计数器1中断,所以IE应设置为:88H
当GATE=1时,只有TR0和 同时为高电平,定时器/计数 器 才工作,否则,定时器/计数器不工作。
(2)定时和计数的应用 计数范围:1~213 计数计算公式:计数值=213-计数初值 定时范围:1机器周期~213机器周期 定时计算公式:定时时间=(213-定时初值)×机器周期 如果晶振频率为6MHz ,则最大定时时间为: 213×1/6MHz×12=214( )
单片机原理及应用
MCS-5单片机内部共有两个16位可编程的定时器/计数器,即 定时器T0和定时器T1它们既有定时功能又有计数功能。
1.1 结构
定时器/计数器的基本结构如图6.3所示。基本部件是两个8位计 数器(其中TH1和TL1是T1的计数器,TH0和TL0是T0的计数器)。
2-MCS51单片机原理-定时器解析

MOV TL0,#9CH ;T0置初值
MOV TH0,#9CH
SETB TR1 ;启动T1
HERE: AJMP HERE
方式3的应用
T0工作在方式3时,TL0和TH0被分成两个独立的8位
定时器/计数器。其中,TL0可作为8位的定时器/计
数器;而TH0只能作为8位的定时器。
33
当T1用作串行口波特率发生器时,T0才设置为方式3。 此时,常把T1设置为方式2,用作波特率发生器。
31
外部信号由T1(P3.5) 脚输入,每发生一次负跳变计数 器加1,每输入100个脉冲,计数器产生溢出中断, 在中断服务程序中将P1.0取反一次。
T1工作在方式2的控制字为TMOD=60H。不使用T0 时,TMOD的低4位可任取,但不能使T0进入方式 3,这里取全0。
(2)计算T1的初值
X=28-100=156=9CH
18
定时器/计数器的编程和应用 4种工作方式中,方式0与方式1基本相同,由于方式0
是为兼容MCS-48而设,其计数初值计算复杂,在 实际应用中,一般不用方式0,而采用方式1。 方式1应用 例1 假设系统时钟频率采用6MHz,要在P1.0上输出 一个周期为2ms的方波,如图所示。
19
方波的周期用T0来确定,让T0每隔1ms计数溢出1次, 既T0每隔1ms产生一次中断,CPU相应中断后, 在中断服务程序中对P1.0取反。
(2) C/T*——计数器模式和定时器模式选择位 0:定时器模式。 1:计数器模式。
6
(3) GATE——门控位 0:以运行控制位TRX(X=0,1)来启动 定时器/计数器运行。 1: 用 外 中 断 引 脚 ( INT0* 或 INT1* ) 上 的 高电平来启动定时器/计数器运行。
第4章 MCS51单片机定时_计数器.ppt.Convertor

第4章定时/计数器本章要点定时/计数器的工作原理定时/计数器的控制寄存器和方式寄存器定时/计数器的工作方式、计数初值的设置以及各种工作方式下的应用编程4.1 定时/计数器的结构及工作原理MCS-51单片机内部由两个16位可编程的定时/计数器,即定时器T0和定时器T1,52系列单片机提供3个定时器,第三个定时器为T2。
它们既可以用作定时器,又可用作计数器。
我们主要讲51系列单片机的定时/计数器。
4.1.1 定时/计数器的结构定时/计数器的基本结构如图所示。
基本部件是两个8位的计数器。
由TH0和TL0组成T0,由TH1和TL1组成T1,它们都是以加1的方式完成计数。
特殊功能寄存器TMOD控制定时/计数器的工作方式,TCON控制定时/计数器的启动运行并记录T0、T1的溢出标志。
通过初始化编程,可以预置计数初值、指定其工作方式及控制其运行1.定时器的工作原理在作定时器使用时,输入的计数脉冲是由晶体振荡器的输出经12分频后得到的,所以定时器也可以看作对机器周期计数的计数器。
故其计数速率为晶体振荡频率的1/12。
如果晶振频率为12 MHz,则定时器每接收一个输入脉冲的时间为1us。
4.1.2 定时/计数器的工作原理2.计数器的工作原理当它用作计数器时,它对接到相应的外部引脚T0(P3.4) 或T1(P3.5)上的外部事件计数。
在这种情况下,当检测到输入引脚上的电平由高跳变到低时,计数器就加1。
计数器在每个机器周期采样外部输入,当采样值在这个机器周期为高,在下一个机器周期为低时,则计数器加1。
因此计数器需要两个机器周期来识别一个从高到低的跳变,故最高计数速率为晶振的1/24。
不管是定时还是计数工作方式,定时器在运行时不占用CPU的时间,除非产生溢出才可能中止CPU的当前操作。
可见,定时/计数器是单片机内部效率高且工作灵活的部件。
这里要强调一点,MCS-51系列单片机的定时/计数器采用的是加1计数方式。
即单片机内部的计数器从初值开始一直加1,直到产生溢出为止。
第六章 MCS-51单片机内部定时器
6.3.1 模式0及应用
在这种模式下,16位寄存器只用了13位。 其中,TL0的高3位未用,TH0占8位。当 TL0的低5位溢出时,向TH0进位。当TH0 溢出时,向中断标志位TF0进位,并申请中 断。 因此,可通过查询TF0 是否置位或考 察中断是否发生来判断定时器/计数器0的 操作完成与否。
(2)计算1ms定时T0的初值:
机器周期为(1/fOSC)×12=[1/(12×106)]×12=1μs, 设T0的 计数初值为X,则 (213-X)×1×10-6=1×10-3ms
X=213-1×10-3/(1×10) -6 =8192-1000=7192D=1110000011000
高8位: E0H 低5位: 18H
fosc=12MHz, 采用查询方式。
解:方波周期 T=1/100Hz=0.01s=10ms 用T1定时5ms 计数初值 X为: X=216-12×5×103/12=60536=EC78H 程序如下:
MOV TMOD, #10H ;T1模式1,定时方式
SETB TR1 LOOP:MOV TH1,#0ECH
例:晶振为12MHZ ,则计数周期为
T=12/(12*106)Hz =1微秒
最短的定时 周期
计数器工作方式:
当定时器/计数器为计数工作方式时,通过
引脚T0和T1对外部信号计数,外部脉冲的下降
沿触发计数
在每个机器周期的
采样过程:
S5P2期间采样引脚
当输入脉冲信号从1到0的负跳变时,计数器就 自动加1。 由于检测一个由1到0的跳变需要两 个机器周期,所以 计数的最高频率为振荡频 率的1/24。为了确保给定电平在变化前至少被 采样一次,外部计数脉冲的高低电平均需保持 一个机器周期以上。(占空比没有限制)
MCS_51单片机定时_计数器及应用(基于Proteus仿真)
MCS-51单片机定时/计数器及应用基于Proteus仿真前言:本文对MCS-51单片机的定时/计数器进行了简明扼要的总结和归纳,并在后面举了三个简单的例子,这样有助于更好地理解与掌握。
1、MCS-51单片机有T0和T1两个16位可编程定时/计数器。
其中T0由两个特殊功能寄存器TH0和TL0组成,T1由两个特殊功能寄存器TH1和TL1组成。
受MCS-51单片机内部工作机制的限制,最高的外部计数脉冲的频率不能超过时钟频率的1/24,并且要求外部脉冲的高电平和低电平的持续时间不能小于一个机器周期。
单片机中的定时/计数器不管是用于定时还是计数,本质上都是通过对脉冲的计数实现的,只不过定时功能是对内部固定频率的脉冲信号进行计数,而计数功能是对来自单片机外部引脚T0或T1上的脉冲信号进行计数。
定时/计数器的控制主要是通过两个特殊功能寄存器TCON和TMOD 实现的。
2、定时/计数器T0,T1控制寄存器TCON:中断请求标志都是当CPU检测到有相应中断发生后,由硬件将相应的标志置1,当CPU响应该中断转向相应的中断处理程序时,由硬件自动将相应的标志位清0.系统复位时,TCON每一位都清零。
在查询方式时,TF0,TF1可以由程序查询和清“0”。
IT0/IT1:外部中断0/1的触发类型控制位,IT0/IT1=1表示下降沿触发,IT0/IT1=0表示低电平触发,可以由软件来设置或清除。
IE0/IE1:外部中断0/1的中断请求标志位,当检测到INT0/INT1引脚上出现外部中断信号的下降沿时,由硬件置位,申请中断。
进入中断服务程序后被硬件自动清除。
TR0/TR1:T0/T1运行控制位,靠软件置位或清零,置位时T0/T1开始工作,清零时停止工作。
TF0/TF1:T0/T1中断请求标志位,当T0/T1计数溢出归零时,由内部硬件置1,当CPU 响应中断并进入中断服务程序后,TF0/TF1自动清零。
3、定时/计数器工作方式寄存器TMOD:TMOD用于确定定时/计数器的工作方式及功能,其中高四位用于控制T1,低四位用于控制T0,4、工作方式0及应用当TMOD中的M1M0=00时,定时/计数器工作在方式0,构成13位的定时/计数器,它由THi的8位和TLi的低5位组成。
MCS-51的定时计数器
第六章MCS-51的定时/计数器1.如果采用晶振的频率为3MHz,定时器/计数器工作方式0、1、2下,其最大的定时时间为多少?解答:因为机器周期,所以定时器/计数器工作方式0下,其最大定时时间为;同样可以求得方式1下的最大定时时间为262.144ms;方式2下的最大定时时间为1024ms。
2.定时/计数器用作定时器时,其计数脉冲由谁提供?定时时间与哪些因素有关?答:定时/计数器作定时时,其计数脉冲由系统振荡器产生的内部时钟信号12分频后提供。
定时时间与时钟频率和定时初值有关。
3.定时/计数器用作定时器时,对外界计数频率有何限制?答:由于确认1次负跳变要花2个机器周期,即24个振荡周期,因此外部输入的计数脉冲的最高频率为系统振荡器频率的1/24。
4.采用定时器/计数器T0对外部脉冲进行计数,每计数100个脉冲后,T0转为定时工作方式。
定时1ms后,又转为计数方式,如此循环不止。
假定MCS-51单片机的晶体振荡器的频率为6MHz,请使用方式1实现,要求编写出程序。
解答:定时器/计数器T0在计数和定时工作完成后,均采用中断方式工作。
除了第一次计数工作方式设置在主程序完成外,后面的定时或计数工作方式分别在中断程序完成,用一标志位识别下一轮定时器/计数器T0的工作方式。
编写程序如下:ORG 0000HLJMP MAINORG 000BHLJMP IT0PMAIN: MOV TMOD,#06H ;定时器/计数器T0为计数方式2MOV TL0,#156 ;计数100个脉冲的初值赋值MOV TH0,#156SETB GATE ;打开计数门SETB TR0 ;启动T0,开始计数SETB ET0 ;允许T0中断SETB EA ;CPU开中断CLR F0 ;设置下一轮为定时方式的标志位WAIT: AJMP WAITIT0P: CLR EA ;关中断JB F0,COUNT ;F0=1,转计数方式设置MOV TMOD,#00H ;定时器/计数器T0为定时方式0MOV TH0,#0FEH ;定时1ms初值赋值MOV TL0,#0CHSETB EARETICOUNT: MOV TMOD,#06HMOV TL0,#156SETB EARETI5. 定时器/计数器的工作方式2有什么特点?适用于哪些应用场合?答:定时器/计数器的工作方式2具有自动恢复初值的特点,适用于精确定时,比如波特率的产生。
简述mcs-51单片机中定时器方式0、方式1和方式2的工作特点。
MCS-51单片机中定时器的方式0、方式1和方式2具有不同的工作特点。
方式0是一个13位的定时器/计数器,其使用了16位寄存器(TH0和TL0)中的13位,包括TL0的低5位和TH0的8位,而TL0的高3位并未使用。
方式1是一个16位的定时器/计数器,TH0和TL0对应的16位全部参与计数运算。
当TH0和TL0计数满溢出时,硬件会自动将TF0置位并申请中断,同时16位加1计数器会从0开始继续计数。
在定时工作方式下,定时时间t对应的初值为X=216–t×fosc/12。
在计数工作方式下,计数长度最大为216=65536(个外部脉冲)。
方式2的特点是初值只需设置一次,每次溢出后,初值会自动从TH0加载到TL0或从TH1加载到TL1,但计数范围比方式1小。
在方式2中,只有TL0用作8位计数器参与脉冲计数工作,TH0不参与计数,只用来保存初值。
以上信息仅供参考,建议咨询专业计算机技术人员或者查阅专业书籍了解更多详细信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7
1.3
定时器/计数器的功能
定时器/计数器具有定时和计数两种功能,应用范围如下。 1. 定时与延时控制方面 可产生定时中断信号,以设计出各种不同频率的信号源; 产生定时扫描信号,对键盘进行扫描以获得控制信号,对 显示器进行扫描以不间断地显示数据。 2. 测量外部脉冲方面 对外部脉冲信号进行计数可测量脉冲信号的宽度、周期, 也可实现自动计数。 3. 监控系统工作方面 对系统进行定时扫描,当系统工作异常时,使系统自动复 位,重新启动以恢复正常工作。
振荡器 12 分频
TC/ =0 C/T TC/ =1 C/T
&
TH0 (8 位)
TL0 (5 位)
TF0
中断
T0(P3.4) TR0 GATE INT0(P3.2)
1
≥1
定时器/计数器0方式0逻辑结构
17
3.1 定时器/计数器的初始化
【例1】 用定时器0方式0,定时5ms,以中断方式工作,进行 程序初始化设计,晶振频率为6MHz。 解:用定时器0方式0时,定时器/计数器方式寄存器TMOD低4 位中的M1M0应取00;可设定为软件启动定时器,故 GATE取0;因用定时功能,C/T取0;定时器方式寄存器 TMOD高4位为无关位,一般都取0,所以TMOD应为00H。 晶振频率为6MHz,T机=12/fosc=12/(6106)=2s 定时初值X=213-T/T机=213-51000/2=8192-2500=5692 =163CH=1011000111100B 因TL0的高3位未用,对计算出的定时初值X要进行修正, 即在低5位前插入3个0,修正后的定时初值 X=1011000100011100B=B11CH
005DH
0060H 0062H 0065H 0068H
006AH
3.2 方式0及应用实例
【例3】 每隔1秒使P1.1输出取反一次同时使片内RAM区20H单 元中的内容加1,采用定时器0方式0设计程序,晶振频率 6MHz。 解:根据题意,定时时间为1s,因方式0最大计数值为8192, 机器周期为2s,则方式0的最大定时时间为16.384ms;因 而需另设软件计数器,即在硬件定时的基础上再加软件计 数。 设硬件定时时间10 ms,软件计数的次数则为100次。 定时初值 X=213-T/T机=213-10103/2=8192-5000 =3192=0C78H=0110001111000B 因TL0的高3位未用,对计算出的定时初值X要进行修正,即 在低5位前插入3个0,修正后的定时初值 22 X=0110001100011000B=6318H 定时器以中断方式工作。
21
75
D2 10 80 75 75 B2 80
8B
8E 8F FB 8D 8B 90 E4
0C
02 F1 0C LP1: LP2:
MOV
SETB JBC SJMP MOV MOV CPL SJMP END
TL1,#0CH
TR1 TF1,LP2 LP1 TH1,#0F0H TL1,#0CH P1.0 LP1
19
3.2 方式0及应用实例
【例2】 在P1.0输出周期为1 ms(频率1kHz)的方波,采用定时器1 方式0设计程序,晶振频率为12MHz。 解:根据题意,只要使P1.0每隔500s取反一次即可得到周期1 ms 的方波,因而T1的定时时间为500s。 用定时器1方式0时,定时器/计数器方式寄存器TMOD高4位中 的M1M0应取00;可设定为软件启动定时器,故GATE取0;因 为用定时功能,C/T取0;定时器方式寄存器TMOD低4位为无 关位,一般都取0,所以TMOD应为00H。 晶振频率为12MHz,T机=12/fosc=12/(12106)=1s 定时初值 X=213-T/T机=213-500/1=8192-500=7692 =1E0CH=1111000001100B 因TL1的高3位未用,对计算出的定时初值X要进行修正,即在 低5位前插入3个0,修正后的定时初值 X=1111000000001100B=F00CH
12
2.2 定时器控制寄存器TCON
各位的功能说明: (2) TR1(TCON.6):定时器1启停控制位。 GATE=0时,用软件使TR1置1即启动定时器1,若用软件 使TR1清0则停止定时器1。 GATE=1时,用软件使TR1置1的同时外部中断INT1的引脚 输入高电平才能启动定时器1。 (3) TF0(TCON.5):定时器0溢出标志位。其功能同TF1。 (4) TR0(TCON.4):定时器0启停控制位。其功能同TR1。 (5) IE1(TCON.3):外部中断1请求标志位。 (6) IT1(TCON.2):外部中断1触发方式选择位。 (7) IE0(TCON.1):外部中断0请求标志位。 (8) IT0(TCON.0):外部中断0触发方式选择位。
方式0 方式1 方式2
13 16 8
213=8192 216=65536 28=256
表中T 表示定时时间,T机表示机器周期。
16
3.1 定时器/计数器的初始化
在方式0下,以定时器0为例,定时器/计数器是一个由TH0中的8
位和TL0中的低5位组成的13位加1计数器(TL0中的高3位不用);若 TL0中的第5位有进位,直接进到TH0中的最低位。定时器/计数器0 方式0逻辑结构如下图所示。
11
2.2 定时器控制寄存器TCON
定时器控制寄存器TCON的作用是控制定时器的启动与 停止,并保存T0、T1的溢出和中断标志。 TCON的格式:
各位的功能说明: (1) TF1(TCON.7):定时器1溢出标志位。当定时器1计满 溢出时,由硬件自动使TF1置1,并申请中断。对该标志位 有两种处理方法,一种是以中断方式工作,即TF1置1并申 请中断,响应中断后,执行中断服务程序,并由硬件自动 使TF1清0;另一种以查询方式工作,即通过查询该位是否 为1来判断是否溢出,TF1置1后必须用软件使TF1清0。
第4章 MCS-51单片机内部接 口电路 (定时器)
1
1. 定时器/计数器的 结构与原理
1.1 定时器/计数器的结构 1.2 定时器/计数器的原理 1.3 定时器/计数器的功能
2
1.1 定时器/计数器的结构
8051单片机内部设有两个16位可编程定时器/计数器,简称 为定时器0(T0)和定时器1(T1)。 16位的定时器/计数器分别由两个8位寄存器组成,即:T0 由TH0和TL0构成,T1由TH1和TL1构成。每个寄存器均可 单独访问,这些寄存器是用于存放定时初值或计数初值的。 有一个8位的定时器方式寄存器TMOD和一个8位的定时器 控制寄存器TCON。这些寄存器之间是通过内部总线和控 制逻辑电路连接起来的,定时器/计数器的工作方式、定时 时间和启停控制通过由指令来确定这些寄存器的状态来实 现。TMOD主要用于设定定时器的工作方式,TCON主要 用于控制定时器的启动与停止,并保存T0、T1的溢出和中 断标志。
8
2 定时器/计数器的控制
2.1 定时器方式寄存器TMOD 2.2 定时器控制寄存器TCON
9
2.1 定时器方式寄存器TMOD
定时器方式寄存器TMOD的作用是设置T0、T1的工作方式。 TMOD的格式:
各位的功能说明: (1) GATE:门控位。 GATE=0:软件启动定时器,即用指令使TCON中的 TR1(TR0)置1即可启动定时器1(定时器0)。 GATE=1:软件和硬件共同启动定时器,即用指令使 TCON中的TR1(TR0)置1时,只有外部中断INT0(INT1)引 脚输入高电平时才能启动定时器1(定时器0)。
5
1.2 定时器/计数器的原理
定时器/计数器的定时功能。 计数器的加1信号由振荡器的12分频信号产生,即每过一 个机器周期,计数器加1,直至计满溢出。 定时器的定时时间与系统的时钟频率有关。因一个机器周 期等于12个时钟周期,所以计数频率应为系统时钟频率的 十二分之一。如果晶振频率为12MHz,则机器周期为1s。 通过改变定时器的定时初值,并适当选择定时器的长度(8 位、13位或16位),可以调整定时时间。
15
3.1 定时器/计数器的初始化
2. 定时初值或计数初值的计算方法 不同工作方式的定时初值或计数初值的计算方法如下表所示
工作方式 计数位数
最大计数值
最大定时时 定时初值计算公 计数初值计算公式 间 式 213T机 216T机 28T机 X=213-T/T机 X=216-T/T机 X=28-T/T机 X=213-计数值 X=216-计数值 X=28-计数值
18
3.1 定时器/计数器的初始化
定时器以中断方式工作,故将中断总允许位EA和定时器0的 中断允许位ET0置1。
参考程序:
75 75 75 D2 D2 D2 89 8C 8A AF A9 8C 00 B1 1C MOV MOV MOV SETB SETB SETB TMOD,#00H TH0,#0B1H TL0,#1CH EA ET0 TR0 ;置定时器0为工作方式0 ;定时初值的高8位 ;定时初值的低8位 ;开放中断总允许位 ;开放定时器0的中断允许位 ;启动定时器0
3
1.1 定时器/计数器的结构
定时器/计数器结构框图
4
1.2 定时器/计数器的原理质上是一个加l计数器,可实现定时 和计数两种功能,其功能由软件控制和切换。定时器属硬 件定时和计数,是单片机中效率高而且工作灵活的部件。 在定时器/计数器开始工作之前,CPU必须将一些命令(称为 控制字)写入定时器/计数器。将控制字写入定时器/计数器 的过程叫定时器/计数器的初始化。 在初始化程序中,要将工作方式控制字写入定时器方式寄 存器(TMOD),工作状态控制字(或相关位)写入定时器控制 寄存器(TCON),赋定时/计数初值给TH0(TH1)和TL0(TL1)。
13