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

合集下载

单片机原理及应用 第06章定时计数器

单片机原理及应用  第06章定时计数器

20
6.5 定时器/计数器的编程
初始化
1 根据要求给方式寄存器TMOD送一个方式控制 字,以设定定时器的工作方式; 2 根据需要给TH和TL选送初值,以确定需要的 定时时间或计数的初值; 3 根据需要给中断允许寄存器IE送中断控制字, 以开放相应的中断和设定中断优先级;
也可用查询方式来响应定时器。
JBC TF1,RP1 SJMP DEL2
30
6.6.4 长定时时间的产生
例 假设系统时钟为6MHz,编写定时器T0产生 1秒定时的程序。 (1)T0工作方式的确定 定时时间较长,采用哪一种工作方式? 由各种工作方式的特性,可计算出: 方式0最长可定时16.384ms;
方式1最长可定时131.072ms; 方式2最长可定时512μs。 选方式1,每隔100ms中断一次,中断10次为1s。
8
6.3 定时/计数器的4种工作方式 方式0、方式1(13位、16位定时计数方式)
T1工作于方式0的等效框图(M1M0=00、01)
GATE=0、A=1、TR1=1 GATE=1、INT1=1、TR1=1。注意定时器初值与定时时间的不同
9
6.3.1 方式0、方式1的说明 定时/计数器T1工作在方式0时,为13位的计数器,由TL1 的低5位和TH1的8位所构成。TL1低5位溢出向TH1进 位,TH1计数溢出置位TCON中的溢出标志位TF1。 GATE位的状态决定定时/计数器运行控制取决于TR1 一个条件还是TR1和INT1引脚这两个条件。 当GATE=0时,A点电位恒为1,则只要TR1被置为1,B 点电位即为1,定时/计数器被控制为允许计数(定时/计 数器的计数控制仅由TR1的状态确定,TR1=1计数, TR1=0停止计数)。 当GATE=1时,B点电位由INT1输入的电平和TR1的状 态确定,当TR1=1,且INT1=1时,B点电平才为1,才 允许定时器/计数器计数(计数控制由TR1和INT1二个条 件控制)。 方式1时,TL1的8位都参与计数,因而属于16位 定时/计数器。其控制方式,等效电路与方式0完全相 10 同。

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

第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最新单片机内部设有几个定时计数器?它们是由哪些专用[整理]

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 μ的方波,试编程实现。

51单片机定时器计数器详解

51单片机定时器计数器详解

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 。

MCS-51单片机的定时器-计数器

MCS-51单片机的定时器-计数器
1.3 工方式
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的计数器)。

单片机原理及其接口技术--第6章 MCS-51单片机定时器计数器

单片机原理及其接口技术--第6章 MCS-51单片机定时器计数器

单片机原理及其接口技术
T/C方式2的逻辑结构图
1
TH1/TH0
T8
T7
T6
T5
T4
T3
T2
T1
寄存器 计数器

TL1/TL0
T8
T7
T6
T5
T4
T3
T2
T1
主目录
上一页
下一页

单片机原理及其接口技术
4、方式3 M1M0=11 T0和T1有不同的工作方式
C/T0:
TH0和TL0被拆成2个独立的8位计数器。
28),向CPU申请中断,标志位TF1自动置位,若中
断是开放的,则CPU响应定时器中断。当CPU响应
中断转向中断服务程序时,由硬件自动将该位清0。
&
加1计数器 & 1
主目录
上一页
下一页


EA
ET1
单片机原理及其接口技术
2个模拟的位开关,前者决定了T/C的工作状态:当1单片机有2个特殊功能寄存器TCON和TMOD: TCON:用于控制定时器的启动与停止,中断标志。 TMOD:用于设置T/C的工作方式。
主目录
上一页
下一页


单片机原理及其接口技术
1.定时器控制寄存器TCON
88H TCON
位地址
D7
D6
D5
D4
D3
D2
D1
D0
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 8F 8E 8D 8C 8B 8A 89 88
过实时计算求得对应的转速。
主目录 上一页 下一页 结 束
单片机原理及其接口技术 对于定时/计数器来说,不管是独立的定时器芯片还是单

单片机原理及应用教程(C语言版)-第6章 MCS-51单片机的定时器计数器

单片机原理及应用教程(C语言版)-第6章 MCS-51单片机的定时器计数器

6.1.1 单片机定时器/计数器的结构
MCS-51单片机定时器/计数器的原理结构图
T0(P3.4) 定时器0 定时器1 T1(P3.5) 定时器2 T2EX(P1.1)
T2(P1.0)
TH0
溢 出 控 制
TL0
模 式 溢 出
TH1
控 制
TL1
模 式 溢 出
TH2
TL2
重装 捕获
RCAP 2H
RCAP 2L
6.2.2 T0、T1的工作模式
信号源 C/T设为1,为计数器,用P3.4引脚脉冲 C/T设为0,为定时器,用内部脉冲 运行控制 GATE=1,由外部信号控制运行 此时应该设置TR0=1 P3.2引脚为高电平,T0运行 GATE=0, 由内部控制运行 TR0设置为1,T0运行
6.2.2 T0、T1的工作模式
6.2.3 T0、T1的使用方法
例6-1 对89C52单片机编程,使用定时器/计 数器T0以模式1定时,以中断方式实现从P1.0引 脚产生周期为1000µ s的方波。设单片机的振荡频 率为12MHz。 分析与计算 (1)方波产生原理 将T0设为定时器,计算出合适的初值,定 时到了之后对P1.0引脚取反即可。 (2)选择工作模式 计算计数值N
6.2.1 T0、T1的特殊功能寄存器
TR1、TR0:T1、T0启停控制位。 置1,启动定时器; 清0,关闭定时器。
注意: GATE=1 ,TRx与P3.2(P3.3)的配合控制。
IE1、IE0:外部中断1、0请求标志位 IT1、IT0:外部中断1、0触发方式选择位
6.2.2 T0、T1的工作模式
6.2.1 T0、T1的特殊功能寄存器
GATE=0,禁止外部信号控制定时器/计数器。 C/T——定时或计数方式选择位 C/T=0,为定时器;C/T=1,为计数器 计数采样:CPU在每机器周期的S5P2期间,对 计数脉冲输入引脚进行采样。

第六章 MCS-51单片机内部定时器

第六章 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。为了确保给定电平在变化前至少被 采样一次,外部计数脉冲的高低电平均需保持 一个机器周期以上。(占空比没有限制)

单片机课件5MCS-51单片机定时器计数器

单片机课件5MCS-51单片机定时器计数器

定时器的示例代码
基于MCS-51单片机和定时器 计数器,实现控制蜂鸣器的 状态或LED的闪烁频率。
实践演示
控制蜂鸣器的状态
借助定时器计数器,设置蜂鸣器的开关状态以及背 景灯。
控制LED的闪烁频率
基于定时器计数器,利用MCS-51单片机来控制LED 灯的闪烁速率。
总结
1
重要性和应用
定时器计数器是单片机非常重要的组件之一,其应用非常广泛。
5MCS-51单片机定时器计 数器
本课件将介绍单片机中定时器计数器的作用、类型、寄存器、应用以及示例 代码,展现出单片机学习与应用的魅力。
什么是定时器计数器
1 时间的记录器
定时器计数器是一种可编 程的时间计算器,可用于 各种计时和计数任务。
2 核心组件
作为单片机的核心之一, 定时器计数器可以用来控 制其它模块的工作。
3 可编程
可以通过设置定时器的各 个寄存器来控制计时或计 数的周期、频率和模式。
MCS-51单片机的定时器计数器
定时器模块的功能
以MCS-51单片机为例,定时器计数器可以控制脉 冲的发生和周期、计数等。
定时器的类型
MCS-51单片机的定时器分为两种类型:定时器0和 定时器1,每种定时器都具有其特定的应用场景。
2
对单片机的学习和应用的帮助
通过学习单片机和定时器计数器,可以帮助我们更好地理解单片机的工作原理和应用场景。
3
接下来的拓展用,如机器人、智能家居等领域。
定时器的寄存器
MCS-51单片机的定时器计数器有多个寄存器,包 括计数器寄存器、模式寄存器和数据寄存器。
定时器的应用
定时器的使用方法
通过编程初始化各个寄存器, 设置定时器的模式、计数周 期和计数方式等,以达到所 需的计时或计数效果。

第6讲 定时器与计数器

第6讲 定时器与计数器
≥1
TMOD T0引脚 0 M0 1 M1 C/T 0 机器周期 GATE M0 1 INT0引脚 M1 C/T GATE D7 D0
工作方式2结构
定时器T0工作方式2结构
溢出 申请 中断 申请 中断 TCON TF1 TR1 TF0 TR0 溢出 TH0 8位 T0引脚 1 TL0 8位 &
≥1
四、定时计数器控制寄存器
1、工作方式控制寄存器TMOD
C/T用于选择定时或计数方式,定时计数器4种工作方式 可通过TMOD中的M1、M0进行选择。
MCS-51单片机将门控位GATE、定时计数方式选择位C/T、
工作方式选择位M1、M0组合在工作方式控制寄存器TMOD 中,TMOD是特殊功能寄存器,字节地址为89H。TMOD共8位, 低4位用于T0的工作方式选择,高4位用于T1的工作方式选择。 各位定义如下:
每个计数脉冲使加1计数器加1。(f< fosc/24 ,)
4. 加1计数器
加1计数器由特殊功能寄存器TH0与TL0组成,工作前应
先将TH0与TL0置初值Count。然后由定时或计数脉冲使加1计
数器加1,当加1计数器加到FFFFH后再加1时,发生溢出回零,
硬件自动将中断标志TF0置1,并以此向CPU发中断请求。 溢出回零后硬件要完成以下几项工作: ① 将溢出标志TF0置1。 ② 以TF0=1为标志向CPU发中断请求信号。 ③ 若CPU响应,则在响应过程中由硬件将TF0清零。并转入中断 处理程序执行定时或计数任务。
工作方式
00; 01; M1M0 = 10; 11;
加1计数器位数
13位 16位
加1计数器
TH15~8,TL4~0 TH15~8,TL7~0
方式0 方式1 方式2 方式3

MCS51单片机的定时器计数器

MCS51单片机的定时器计数器
用于测量领 域
脉冲宽度测量应用
简介:脉冲宽度测量是定时器计数器在MCS51单片机中的一个重要应用, 通过定时器计数器可以精确测量脉冲信号的宽度。
工作原理:利用定时器计数器对输入的脉冲信号进行定时计数,根据计数 值和定时器计数器的时钟频率,可以计算出脉冲信号的宽度。
应用场景:在电机控制、通信、测量等领域中,需要精确测量脉冲信号的 宽度,例如在电机控制中,需要测量电机的占空比,以实现精确控制。
MCS51单片机的应用领域
工业控制 智能仪表 家电产品 通讯设备
MCS51单片机的定时器计数器功能
定时器/计数器:用于时间延迟和计数 工作模式:四种模式可选,包括模式0、模式1、模式2和模式3 计数范围:16位计数,可计数0-65535 定时器溢出标志:当定时器溢出时,会设置溢出标志位,可产生中断或溢出处理
定时器计数器在 串行通信中的工 作原理:通过定 时器和计数器来 控制数据传输的 速率和同步
定时器计数于产生精确的时间延迟或定时,实现定时器计数器的最基本功能。
计数功能:用于对外部事件进行计数,例如计数脉冲信号的个数。
事件触发:可以用于产生中断,用于处理特定事件,如时间到达或计数达到预设值。
THANK YOU
汇报人:
停止方式:通过编程设置定时器计数器的停止方式,如手动停止或自动停 止
启动条件:定时器计数器在满足一定条件时自动启动,如达到预设时间或 外部事件触发
停止条件:定时器计数器在满足一定条件时自动停止,如达到预设时间或 外部事件触发
定时器计数器的读写操作
读取当前计数值:通过读取相应的寄存器,可以获取定时器/计数器的当前计数值。
优势:使用定时器计数器进行脉冲宽度测量具有精度高、可靠性好等优点, 可以满足各种应用需求。

MCS-51的定时计数器

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单片机的中断

第六章 MCS-51单片机的中断

TF1
T1 请求
TR1
T1 工作
TF0
T0 请求
TR0
T0 工作
IE1
INT1 请求
IT1
INT1 方式
IE0
INT0 请求
IT0
INT0 方式
有 /无
启 /停
有 /无
启 /停
有 /无
下沿/ 低
电平
有 /无
下沿/低
电平
2、在每条指令结束时,CPU检测各个中断标志位,若中断标志位置1,则认为有 中断请求。 3、外中断有2种触发方式:低电平和下降沿,由TCON中的IT0和 IT1决定。
PC
4.2.2 MCS-51中断处理全过程
返回
4.2.2 MCS-51中断处理全过程
1、中断请求
⑴ MCS51单片机内部的中断检测电路随时检测各个中断源,检测到有中断
申请后,将相应的中断标志位置1。
⑵ CPU在每条指令结束时,检测各个中断标志位,若中断标志位置1,则认 为有中断请求。
⑶ CPU读取IE和IP的内容,若中断允许且满足如下条件,则在下一个机器
返回
复位后IP=00H,说明各个中断源都处于低级。 注意: 1、当五个中断源在同一个优先级的情况下INT0优先权最高,串行口优先权最低。 在同一个优先级中,对五个中断源的优先次序安排如下: INT0→T0→INT1→T1→串口 (中断优先级从高到低) 2、对于外中断来说,可以用软件查询法和硬件排队电路法确定优先级。 3、通过对IP寄存器的编程,可以把五个中断源分别定义在两个优先级中,软件 可以随时对IP的各位清0或置1。 例如 某软件中对寄存器IE、IP设置如下:MOV IE,#10001111B MOV IP,#00000110B

第6章 单片机的定时器计数器题解

第6章 单片机的定时器计数器题解

第6章单片机的定时器/计数器习题1.MCS-51系列的8051单片机内有几个定时/计数器?每个定时/计数器有几种工作方式?如何选择?答:MCS-51系列的8051单片机内有2个定时/计数器,即T0和T1,每个都可以编程为定时器或计数器,T0有四种工作方式(方式0—13位、方式1—16位、方式2-可自动装入初值的8位、方式3-两个8位),T1有三种工作方式(与T0相同的前三种),通过对TMOD的设置选择,其高四位选择T1,低四位选择T0。

2.如果采用的晶振频率为3MHz,定时/计数器TO分别工作在方式0、1和2下,其最大的定时时间各为多少?答:如果采用的晶振频率为3MHz,机器周期为12×1/(3*106)=4us,由于定时/计数器TO工作在方式0、1和2时,其最大的计数次数为8192、65536和256所以,其最大定时时间分别是:方式0为8192×4us=32.768ms、方式1为65536×4us=262.144ms、方式2为256×4us=1024us。

3.定时/计数器TO作为计数器使用时,其计数频率不能超过晶振频率的多少?答:由于定时/计数器TO作为计数器使用时,是对外部引脚输入的脉冲进行计数,CPU在每个机器周期采样一次引脚,当前一次采样为高电平,后一次采样为低电平,则为一次有效计数脉冲,所以如果晶振频率为fosc,则其采样频率fosc/12,两次采样才能决定一次计数有效,所以计数频率不能超过fosc/24。

4.简单说明定时/计数器在不同工作模式下的特点。

答:方式0为13位的定时/计数器,由THx的8位和TLx的低5位构成、方式1为16位的定时/计数器,由THx的8位和TLx的8位构成,方式2为8位的定时/计数器,TLx为加1计数器,THx为计数初值寄存器。

方式3只能用于T0,是将T0的低8位用作一个独立的定时/计数器,而高8位的TH0用作一个独立的定时器,并借用T1的TR1和TF1作为高8位定时器的启停控制位和溢出标志位。

MCS51的片内接口及定时器计数器

MCS51的片内接口及定时器计数器

参考程序如下:
ORG 0000H LJMP MAIN
ORG 0100H MAIN:
MOV TMOD,#09H MOV TH0,#00H MOV TL0,#00H BACK1: JB P3.2,BACK1 SETB TR0
BACK2: JNB P3.2,BACK2
BACK3: JB P3.2,BACK3 CLR TR0 MOV 70H,TL0 MOV 71H,TH0 SJMP $
P1=~K;} Return; }
5.2 MCS-51定时/计数器及其应用
51系列内部有2个16位的定时/计数器T0、T1
52系列内部有3个16位的定时/计数器T0、T1、T2
功能:
定时 计数
可编程 串行口的波特率发生器
定时/计数器的可编程特性:
⑴ 确定其工作方式是定时还是计数
⑵ 预置定时或计数初值
回目录 上页 下页
计数初值X的计算方法: 计数方式:
N= 2n-X(X即为要求计数的次数)
定时方式: (2n - X)×T = 定时值
∴ X = 2n -定时值 / T 其中T为机器周期,时钟的12分频, 若晶振为6MHz,则T = 2µs, 若晶振为12MHz,则T = 1µs
回目录 上页 下页
BACK:
MOV A,P0 ;读P0口开关状态,并送入累加器A
CPL A
;对累加器A求反
MOV P1,A
;从P1口输出
SJMP BACK ;循环执行
C51参考程序如下: Sfr P0=0x80; Sfr P1=0x90; Void main(){ Volatile unsigned char k; P0=0xff; P1=0; While(1) { K=P0;

MCS-51单片机的定时器计数器

MCS-51单片机的定时器计数器
器工作方式。 (2)预置定时计数器中计数的初值——直接写入TH和
TL; 如:任务中的MOV TH0,#00H 两条指令,设定计数初
值。 MOV TL0,#00H
Copyright 2006
(3)根据需要开放定时器/计数器的中断——对IE位赋值; (4)启动定时器/计数器; 如:任务中的SETB TR0 指令 初值的计算方法 X=M-计数值 M是定时器的最大计数值。视工作方式不同而不同。
判断中 断的次 数

CPL P1.0
;定时到,输出取反

NO:RETI
;中断返回
END
注意:此程序的#20和#60这两个立即数后面没 有加H表示是十进制数。
思考:能否利用定时器来实现一个电子钟?
Copyright 2006
测量每1秒钟之内的按键按下次数
工作方式0: 13位定时/计数方式,因此,最多可以计到2的13 次方,也就是8192次。
工作方式1: 16位定时/计数方式,因此,最多可以计到2的16 次方,也就是65536次。
工作方式2和工作方式3:都是8位的定时/计数方式,因此, 最多可以计到2的8次方,也说是256次。
Copyright 2006
;开中断 ;开T0中断 ;运行T0 ;等待中断 ;定时到,输出取反 ;重新加载初战值
;中断返回
中断程序的主 程序和中断服 务程序的布局
定时器初始化
开定时器中断
Copyright 2006
实例二:利用方式1定时
题目:用定时器T1,使用工作方式1,在单片机的P1.0输出一个周期为2分钟、占 空比为1:1的方波信号。
Copyright 2006
MCS-51单片机的定时器/计数器(二)

MCS-51_第06章 MCS-51的定时器计数器

MCS-51_第06章 MCS-51的定时器计数器

四、 方式 3 的应用 定时器 T0 工作在方式 3 时是 2 个 8 位定时器 /计数器。 且TH0 借用了定时器 T1 的溢出中断标志TF1和运行控制位 TR1。 例 3 假设有一个用户系统中已使用了两个外部中断源, 并置定时器 T1 于方式 2, 作串行口波特率发生器用, 现要求 再增加一个外部中断源, 并由 P1.0 口输出一个 5kHz的方波 (假设晶振频率为 6 MHz(机器周期为2μs))。
注意:外部输入的计数脉冲的最高频率为振荡频率的1/24。
6.4 定时器/计数器应用举例
一、 方式 0 的应用
例 1 利用定时器输出周期为2ms的方波, 设单片机晶振频 率为 6 MHz。
选用定时器/计数器T0作定时器, 输出为P1.0引脚, 2 ms 的 方波可由间隔1ms的高低电平相间而成, 因而只要每隔1ms对 P1.0 取反一次即可得到这个方波。 定时 1 ms的初值: 因为 机器周期=12÷6 MHz= 2 μs
装入计数器的初值可由下式算得:
(216-X)×10-6=10-2 因而:X=45536=0B1E0H
MOV TMOD,#01H SETB TR0 LOOP: MOV TH0, #0B1H MOV TL0, #0E0H
LOOP1:JNB TF0, LOOP1
CLR CPL TF0 P1.0
SJMP LOOP
0
1 1
1
0 1
1
2 3
16 位定时器/计数器
自动重装入初值的 8 位计数器 T0 分成两个独立的 8 位计数器, T1 在方式 3 时停止 工作
2. C/T 定时器方式或计数器方式选择位 若C/T=1时, 为计数器方式; C/T = 0时, 为定时器方式。 3. GATE 定时器/计数器运行门控标志位 当 GATE=1 时 , 只 有 INT0 ( 或 INT1) 引 脚 为 高 电 平 且 TR0(或TR1 )置 1 时, 相应的定时器 /计数器才被选通工作, 这时可用于测量在INTx端出现的正脉冲的宽度。若GATE=0, 则只要 TR0 (或 TR1)置 1, 定时器 /计数器就被选通, 而不管 INT0 (或 INT1)的电平是高还是低。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


C51系列有2个定时/计数器(T0、T1) C52系列有3个定时/计数器(T0、T1、T2) 通过编程设置,每个定时器/计数器可以根据系统 时钟实现定时,也可以对外部信号计数(T0/P3.4、 T1/P3.5) 每个定时器/计数器都有多种工作方式 每个定时器/计数器都会在预设定时计数时间到时 产生溢出,可以通过查询或中断方式处理
一般情况下GATE=0
定时/计数器的控制寄存器TCON
用于控制定时/计数器的启动与溢出 TF1——溢出标志 TR1——启动位(=1:启动 =0:停止) TF0——溢出标志 TR0——启动位(=1:启动 =0:停止) D7 TF1 D6 D5 TR1 TF0 D4 D3 TR0 IE1 D2 IT1 D1 IE0 D0 IT0
MOV P3, #28H ; 置P3.5,P3.3为输入状态 SETB TR1 SETB ET1 SETB EA MAIN: LCALL DISP … SJMP $ ORG 0A00H T1INT: INC R0 ; 需要保护怎么办? MOV TH1, #0FFH; MOV TL1, #0FFH; RETI DISP: … RET END
8位计数初值自动重装,TL(7--0) ; TH(7--0) T0运行,而T1停止工作,8位定时/计数。

2.定时/计数器控制寄存器(TCON)
位 位符号
D7 TF1
D6 TR1
D5 TF0
D4 TR0
D3 IE1
D2 IT1
D1 IE0
D0 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类似。
(2)TMOD初始化 把定时/计数器1设定为方式0,则M1M0=00。为实现 定时功能应使C/T=0,为实现定时器启动应使GATE=0, 因此设定工作方式控制寄存器TMOD=00H。 (3)由TR1启动和停止定时器 TR1=1为启动,TR1=0为停止 参考程序如下:
ORG 1000H START:MOV TCON,#00H MOV TMOD,#00H MOV TH1,#0FBH MOV TL1,#0AH
例6-5 利用T1的方式2对外部信号计数,要求每计满 100个数, 将P1.0取反。 (PROTEUS仿真—学生) 本例是方式2计数模式的应用。
(1)选择工作方式
外部信号由T1(P3.5) 脚输入,每发生一次负跳变计数器加1, 每输入100个脉冲,计数器产生溢出中断,在中断服务程序 中将P1.0取反一次。 T1 方式2的控制字为TMOD=60H。不使用T0时,TMOD的低4位可 任取,但不能使T0进入方式3,这里取全0。
外部中断控制
定时器/计数器的控制寄存器

1.工作方式控制寄存器(TMOD)
位 D7 D6 D5 D4 D3 D2 D1 D0
位符号
GATE
C/
T
M1
M0
GATE
C/
T
M1
ห้องสมุดไป่ตู้M0
←T1方式字段→
←T0方式字段→
GATE:门控位。= 0 启动不受 /INT0或 /INT1的控制;GATE = 1 受 /INT0 或 /INT1 的控制。





51单片机定时器有几种工作方式 用来设置工作方式的标志位是什么 工作方式0和工作方式1有什么区别 在工作方式1下,晶振时钟为12MHZ,如果 设置TH0=0FFH,TL0=0F0H,则经过多少时 间产生定时中断 控制定时器0启动和停止的标志位是什么 定时器1溢出的标志位是什么
3.工作方式2的应用 定时器T0以方式2产生200微秒定时,在P1.7 输出 周期为400微秒的连续方波。已知晶振频率fosc=6MHz。 (1)计算计数初值 (256-N)×2×10-6=200×10-6 N=156=9CH (2)TMOD初始化 工作方式2,M1M0=10,实现定时功能C/T=0,GATE=0。 定时器1不用,无关位设定为0,可得TMOD=02H。 参考程序如下: ORG 0000H LJMP START ORG 000BH LJMP LOOP0 ORG 0200H
方式选择——TMOD 初值设置——TH0、TL0( TH1、TL1 ) 中断允许——EA、ET0( ET1 ) 启动操作——TR0(TR1)
定时/计数器的方式寄存器TMOD

定义两个定时/计数器的工作方式
D7
GATE
D6
C/T
D5
M1
D4
M0
D3
GATE
D2
C/T
D1
M1
D0
M0
定时器1
工作方式 0 1 2 3
;清TCON ;工作方式设定 ;计数初值设定
MOV IE,#00H SETB TR1 LOOP0: JBC TF1, LOOP1 SJMP LOOP0 LOOP1: MOV TH1,#0FBH MOV TL1, #0AH CPL P1.7 SJMP LOOP0 END
;关中断 ;启动TR1 ;查询是否溢出
T1工作方式0(或1)
C/T=0
12分频
OSC T1(P3.5)
C/T=1
12分频
OSC
T1(P3.5)
串行口
TL1 (8位)
C/T=1
TH1 (8位)
T1工作方式2
方式3下的T1作为波特率发生器等效电路
定时/计数器应用举例
在使用定时/计数器时,应做好四件事:
设置TMOD以选择工作方式; 计算并设置计数初值THX,TLX; 设置IE、IP以规定中断的开放/禁止及优先级; 设置TCON以启动/停止定时/计数器的工作。
C/ T : 外部计数器 / 定时器方式选择位。C/ T = 0 定时方式;C/ T = 1 计数方式。 M1M0:工作模式选择位。
M1 M0 0 0 模式 0 说明 13位定时/计数器,高八位TH(7--0)+ 低五位TL(4--0)
0
1 1
1
0 1
1
2 3
16位定时/计数器,TH(7--0)+ TL(7--0)
参考程序如下:
ORG 0000H
AJMP START
ORG 001BH AJMP T1INT
ORG 0100H
START: MOV SP, #60H MOV TCON, #00H MOV TMOD, #0D0H MOV TH1, #0FFH MOV TL1, #0FFH MOV R0, #00H
图6-7:产品传送带原理图
3.定时/计数器工作方式2 M1,M0=10时 自动重装载功能,即自动加载计数初值 ,TL0为计数 器,以TH0作为预置寄存器 ,当计数溢出时,TH以硬 件方法自动给计数器TL0重新加载 。


工作在方式2下,计数器的计数值由下式确定: N=28 -X= 256 - X 计数范围为: 1~256 定时器的定时值由下式确定: T=N * Tcy = (256-X) * Tcy
定时器/计数器的工作方式

1工作方式0
13位计数结构,由TH 8位和TL低5位构成,TL高3位没用。 当C/T=0时,接通振荡脉冲的12分频输出,13位计数器:即定时 工作方式。 当C/T=1时,接通计数引脚,外部计数脉冲T0输入。当计数脉冲 发生负跳变时,计数器加1,即计数工作方式。

在工作方式0下,计数器的计数值由下式确定:
N=213 – X = 8192 - X
计数值范围是: 1~8192(213) 定时器的定时值由下式确定:
T=N*Tcy = (8192-X) * Tcy
2. 定时/计数器工作方式1
M1,M0=01时,工作方式1 方式0和方式1的区别在于计数器位数不同,方式0 为13位;方式1则为16位,TH0作高8位,TL0低8位, 有关控制状态字与方式0相同。只需将工作方式0计算 公式中213改为216就可得到工作方式1的计数值和定时 时间。
定时器0
方式说明 13 位定时/计数器 16 位定时/计数器 8 位自动重置定时/计数器 两个8 位定时/计数器(仅T0有此方式)
M1 0 0 1 1
M0 0 1 0 1
定时/计数器的方式寄存器TMOD




C/T=1 计数方式 C/T=0 定时方式 GATE —— 控制定时/计数器的启动是否 受外部中断请求信号的影响 GATE=1 —— 外部中断请求高电平启动计 数 GATE=0 —— 定时/计数器启动与外部中 断请求无关
第 6 章
Single Chip Microcomputer 本章内容
定 时 / 记 数 器
1.
2.
3.
定时/计数器的结构 定时/计数器的工作方式 定时/计数器的应用
概述
通常采用以下三种方法来实现定时或计数:
1.硬件法
硬件定时功能完全由硬件电路完成,不占用 CPU时间。但当要求改变定时时间时,只能通过改 变电路中的元件参数来实现,很不灵活。 2.软件法 软件定时是执行一段循环程序来进行时间延时, 优点是无额外的硬件开销,时间比较精确。但牺牲 了CPU的时间。 3.可编程定时器/计数器
(2)计算T1的初值
X=28-100=156=9CH 因此,TL1的初值为9CH,重装初值寄存器TH1=9CH
(3)程序设计 ORG LJMP ORG CPL RETI ORG MAIN: MOV MOV MOV SETB SETB SETB HERE: AJMP 0000H MAIN 001BH ;T1中断服务程序入口 P1.0 ;P1.0位取反 0100H TMOD,#60H ;设T1为方式2计数 TL1,#9CH ;T0置初值 TH1,#9CH ET1 ;开中断 EA TR1 ;启动T1 HERE
相关文档
最新文档