第5章 定时器-计数器及编程
第5章习题解答
第5章思考题及习题5参考答案一、填空1.如果采用晶振的频率为3MHz,定时器/计数器T x(x=0,1)工作在方式0、1、2下,其方式0的最大定时时间为,方式1的最大定时时间为,方式2的最大定时时间为。
答:32.768ms,262.144ms,1024µs2.定时器/计数器用作计数器模式时,外部输入的计数脉冲的最高频率为系统时钟频率的。
答:1/243.定时器/计数器用作定时器模式时,其计数脉冲由提供,定时时间与有关。
答:系统时钟信号12分频后,定时器初值4.定时器/计数器T1测量某正单脉冲的宽度,采用方式可得到最大量程?若时钟频率为6MHz,求允许测量的最大脉冲宽度为。
答:方式1定时,131.072ms。
5. 定时器T2 有3种工作方式:、和,可通过对寄存器中的相关位进行软件设置来选择。
答:捕捉,重新装载(增计数或减计数),波特率发生器,T2CON6. AT89S52单片机的晶振为6MHz,若利用定时器T1的方式1定时2ms,则(TH1)= ,(TL1)= 。
答:FCH,18H。
二、单选1.定时器T0工作在方式3时,定时器T1有种工作方式。
A.1种B.2种 C.3种D.4种答:C2. 定时器T0、T1工作于方式1时,其计数器为位。
A.8位B.16位C.14位D.13位答:B3. 定时器T0、T1的GATE x=1时,其计数器是否计数的条件。
A. 仅取决于TR x状态B. 仅取决于GATE位状态C. 是由TR x和INT x两个条件来共同控制D. 仅取决于INT x的状态答:C4. 定时器T2工作在自动重装载方式时,其计数器为位。
A.8位B. 13位C.14位D. 16位答:D5. 要想测量INT0引脚上的正单脉冲的宽度,特殊功能寄存器TMOD的内容应为。
A.87HB. 09HC.80HD. 00H答:B三、判断对错1.下列关于T0、T1的哪些说法是正确的。
A.特殊功能寄存器SCON,与定时器/计数器的控制无关。
单片机 第五章2 单片机的定时器计数器
若晶振频率为6MHz,1个机器周期为1/6 x 10-6 x12=2μs 则最小定时时间为:[213 –(213 -1)]x2μs=2μs 最大定时时间为:[213 –0] x2μs=16384μs =16.384ms
2、 方式1 (T1,T0) 当M1M0两位为 01时,定时 /计数器被选为工作方式 1,16位计数器,其逻辑结构 如图 所示。
8FH TCON TF1 8EH TR1 8DH TF0 8CH TR0 8BH IE1 8AH IT1 89H IE0 88H IT0
TF1(TCON.7, 8FH位)----定时器T1中断请求溢出标志位。 TF0(TCON.5, 8DH位)----定时器T0中断请求溢出标志位。 TR1(TCON.6, 8EH位)----T1运行控制位。 0:关闭T1;1:启动T1运行。只由软件置位或清零。 TR0(TCON.4, 8CH位)----T0运行控制位。 0:关闭T0;1:启动T0运行。只由软件置位或清零。
1、 方式0 (T1,T0)
当 M1M0两位为 00时,定时 /计数器被选为工作方式 0, 13位计数器,其逻辑结 构如图所示。
振荡器 ÷12 C/ T = 0 TL0 低5位 C/ T = 1 控制 T0 端 TR0 GATE INT0 端 TH0 高8 位 TF0 中断
+
在方式0下,计数工作方式时,计数值的范围是: 1~8192(213 ) 定时工作方式时,定时时间的计算公式为: (213一计数初值)×晶振周期×12 或(213一计数初值)×机器周期
例4:用定时器l 以工作方式2计数,每计100次进行累计器加1操作.
(1)计算计数初值. 28—100=156D=9CH TH1=9CH,TL1=9CH TMOD寄存器初始化:MlM0=10,C/T=1,GATE=0 因此 TMOD=60H (2)程序设计序设计
第5章AT89S52定时器计数器
图5-2 TMOD格式
8位分为两组,高4位控制T1,低4位控制T0。 TMOD各位的功能。 (1)GATE———门控位。
0:仅由运行控制位TRx(x = 0,1)来控制定时器/计数器运 行。
1:用外中断引脚( INT0*或 INT1*)上的电平与运行控制 位TRx共同来控制定时器/计数器运行。
9
5
5.1 定时器/计数器的结构 定时器/计数器T1、T0结构如图5-1所示,T0由特殊功能
寄存器TH0、TL0构成,T1由特殊功能寄存器TH1、TL1构成。
图5-1 定时器/计数器T0、T1结构框图
6
具有定时器和计数器2种工作模式,4种工作方式(方式0、 方式1、方式2和方式3)。属于增1计数器。
定时器/计数器T0分为两个独立的8位计数器TL0和TH0, TL0使用T0的状态控制位C/T*、GATE、TR0、TF0 ,而TH0
23
被固定为一个8位定时器(不能作为外部计数模式),并使用 定时器T1的状态控制位TR1和TF1,同时占用定时器T1的中断 请求源TF1。 2.T0工作在方式3时T1的各种工作方式
P1.0输出;T2OE=0,禁止定时时钟从P1.0输出。 DCEN(D0):计数方式选择。DCEN=1,T2的计数方式
由P1.1引脚状态决定。P1.1=1,T2减计数,P1.1=0,T2加 计数;DCEN=0,计数方式与P1.1无关,同T1和T0一样,采 用增1计数。
31
2. 特殊功能寄存器T2CON T2的功能选择由特殊功能控制寄存器T2CON来设定,
(2)M1、M0——工作方式选择位 M1、M0共有4种编码,对应于4种工作方式的选择,如
表6-1所示。
10
(3)C/T*—计数器模式和定时器模式选择位 0:为定时器工作模式,对单片机的晶体振荡器12分频后的
定时器计数器的功能
志TF0的同时,自动将TH0中所装的原初始常数送TL0,使TL0从
原初始常数开始重新计数。
FFFFH时 2μs
•.定时间初隔和始计数化的范时围:在以6TMHLZ晶0振、为例TH0中装入同样的初始常数,TH0即记忆了该
初MCPOLV始PT1.L0常, #数0CH,因; 此在中断服务程序中不必重装时间常数,省去了重装
T1
T0
GATE C/T M1 M0 GATE C/T M1 M0 字节地址89H
GATE:门控位
C/T: 1 计数 0 定时
M1 M0:00 方式0 01 方式1 10 方式2 11 方式3
3
2.定时器控制寄存器 TCON 字节地址88H 可位寻址
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
11110000 00001100 TH0=F0H TL0=0CH 即共加500次,每次耗费2μs,共耗费时间1ms
8
②讨论计数方式: 例如前述的啤酒生产线,计数24瓶中断转入装箱程序。 选T1方式0计数,TMOD的高4位为: 0 1 0 0 初始常数X的计算:
213 - X =24 X=8192 - 24=8168 8168=1FE8H 00011111 11101000B
T即H1 每= 9EH隔T1L12=/5f8H加1
T1
T0
MOV TH0, #0FAH
例如一啤酒生产线,如下图所示
首先计数器清零,在正脉冲开始时,
在正脉冲结束的下降
216 ×2×10-6 =65536 ×2×10-6 =131.
213 - X =24
1
关于定时器的小结与补充:
ORG 001BH
高电平1ms
11111111 00001000 TH1=FFH TL1=08H 加24次即溢出中断。程序如下:
电气控制与PLC实训章 (5)
辅助继电器的常开、常闭接点在PLC内可无限次使用。
第பைடு நூலகம்章
4) 状态器(S) 状态器S是构成状态转移图的重要器件,它与后述的步进顺 控指令配合使用。通常,状态器软件有下面五种类型: (1) 初始状态器S0~S9共10点。 (2) 回零状态器S10~S19共10点。 (3) 通用状态器S20~S499共480点。 (4) 保持状态器S500~S899共400点。 (5) 报警用状态器S900~S999共100点。这100个状态器器件 可用作外部故障诊断输出。 S0~S499没有断电保持功能,但是用程序可以将它们设定为 有断点保持功能的状态。状态器的常开、常闭接点在PLC内可以 使用,且使用次数不限。不用步进顺控指令时,状态器S可以作 辅助继电器M在程序中使用。此外,每一个状态继电器还提供一 个步进触点,称为STL触点,在步进控制的梯形图中使用。
第5章 图5.6 ANB指令使用说明(一)
第5章 图5.7 ANB指令使用说明(二)
第5章
6. 多重输出指令MPS、MPD、MPP (1) MPS:进栈指令; (2) MRD:读栈指令; (3) MPP:出栈指令。 PLC中有11个存储运算中间结果的存储器,称为栈存储器。 进栈MPS指令就是将运算中间结果存入栈存储器。使用一次MPS指 令,该时刻的运算结果就压入栈存储器第一级,再使用一次MPS 指令,此次的运算结果压入栈的第一级,上一次压入的数据依次 向栈的下一级移动。 使用出栈指令MPP就是将存入栈存储器的各数据依次上移, 最上级数据读出后就从栈内消失。
第5章
(3) 特殊辅助继电器M8000~M8255(256点)。PLC内有256个 特殊辅助继电器,这些特殊辅助继电器各自具有特定的功能,通 常分为下面两大类。
单片机习题答案
《单片机应用技术》习题答案第一章概述1. 什么是总线?总线主要有哪几部分组成?各部分的作用是什么?总线是连接计算机各部件之间的一组公共的信号线。
一般情况下,可分为系统总线和外总线。
系统总线应包括:地址总线(AB)控制总线(CB)数据总线(DB)地址总线(AB):CPU根据指令的功能需要访问某一存储器单元或外部设备时,其地址信息由地址总线输出,然后经地址译码单元处理。
地址总线为16位时,可寻址范围为216=64K,地址总线的位数决定了所寻址存储器容量或外设数量的范围。
在任一时刻,地址总线上的地址信息是惟一对应某一存储单元或外部设备。
控制总线(CB):由CPU产生的控制信号是通过控制总线向存储器或外部设备发出控制命令的,以使在传送信息时协调一致的工作。
CPU还可以接收由外部设备发来的中断请求信号和状态信号,所以控制总线可以是输入、输出或双向的。
数据总线(DB):CPU是通过数据总线与存储单元或外部设备交换数据信息的,故数据总线应为双向总线。
在CPU进行读操作时,存储单元或外设的数据信息通过数据总线传送给CPU;在CPU进行写操作时,CPU把数据通过数据总线传送给存储单元或外设2.什么是接口电路? CPU与接口电路连接一般应具有哪些信号线?外部设备与接口电路连接一般应具有哪些信号线?CPU通过接口电路与外部输入、输出设备交换信息,一般情况下,外部设备种类、数量较多,而且各种参量(如运行速度、数据格式及物理量)也不尽相同。
CPU为了实现选取目标外部设备并与其交换信息,必须借助接口电路。
一般情况下,接口电路通过地址总线、控制总线和数据总线与CPU连接;通过数据线(D)、控制线(C)和状态线(S)与外部设备连接。
3. 存储器的作用是什么?只读存储器和随机存储器有什么不同?存储器具有记忆功能,用来存放数据和程序。
计算机中的存储器主要有随机存储器(RAM)和只读存储器(ROM)两种。
随机存储器一般用来存放程序运行过程中的中间数据,计算机掉电时数据不再保存。
第5章 MCS-51的定时计数器
电气与信息工程学院
2011/3/26
安徽理工大学
5.2 工作方式
(1) 方式0 方式0
位和TL 的低5位组成13 13位计数器 由THX的8位和TLX的低5位组成13位计数器 13位计数加 到全“1”,再加 就产生溢出, 位计数加1到全 就产生溢出, 位计数加 到全“ ,再加1就产生溢出 位为1,同时计数器全变为“ 置TCON的TFX位为 ,同时计数器全变为“0” 的
电气与信息工程学院
2011/3/26
安徽理工大学
(2) 方式1 方式1
唯一的差别是TH 组成一个16位计数器。 16位计数器 唯一的差别是THX和TLX组成一个16位计数器。
振荡器 ÷12
C /T=0 C /T=1 T0 TR0 GATE INT0 1 > 1 & 控制
TL0 TH0 (8位)(8位)
TF0
中断
定时/计数方式1 定时/计数方式1时的逻辑电路结构图 上例中
第5章定时计数器 (2)
5.4 8XX51定时/计数器的应用程序设计
5.4.3 应用编程举例 例1 如图所示,
P1中接有八个发光二极管, 编程使八个管轮流点亮,每 个管亮100ms,设晶振为 6MHz。 分析利用T1完成100ms的定时、 当P1口线输出“1”时,发光二 极管亮,每隔100ms”1”左移一 次,采用定时方式1,先计算计 数初值: MC=2μs 100ms/2μs =50000=C350H C =10000H-C350H=3CB0H
★若将T0设置为模式3,TL0和TH0被分成为两个互相独立的8位计数器
TH0和 TL0 。
★TL0可工作为定时方式或计数方式。占用原T0的各控制位、引脚和 中断源。即C/T、GATE、TR0、TF0和T0 (P3.4)引脚、INT0 (P3.2) 引脚。 TH0只可用作定时功能,占用定时器T1的控制位TR1和T1的中断标 志位TF1,其启动和关闭仅受TRl的控制。
ORG 0000H
AJMP
AJMP
MAIN
;T0中断服务程序入口 ;主程序开始 ;T0定时100ms IP0
ORG 000BH ORG 0030H MAIN:CLR P1.7
MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H
SETB
SETB
ET0
EA
5.4 8XX51定时/计数器的应用程序设计
本章介绍的主要内容
★ ★
★
定时计数器结构和工作原理 定时计数器的控制寄存器
定时计数器的应用编程
5· 1 8XX51定时/计数器结构和工作原理
★51系列单片机片内有两个十六位定时/计数器:定时器0(T0) 和定时器1(T1)。 ★两个定时器都有定时或事件计数的功能,可用于定时控制、 延时、对外部事件计数和检测等场合。 ★定时/计数器实际上是16位加1计数器。 T0由2个8位持殊功能寄存器TH0和TL0构成, T1由2个8位持殊功能寄存器TH1和TL1构成。 ★每个定时器都可由软件设置为定时工作方式或 计数工作方式。
《单片机原理及应用》第5章 定时器及应用
计数工作方式
通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数。 当输入脉冲信号产生由1至0的下降沿时定时器的值加1。 CPU检测一个1至0的跳变需要两个机器周期,故最高计 数频率为振荡频率的1/24。 为了确保某个电平在变化之前被采样一次,要求电平保持 时间至少是一个完整的机器周期。 对输入脉冲信号的基本要求如图5-2所示。
外部事件
计数电路 时间单位脉冲 单片机 计数完成信号
5.2 89C51定时器概述
• 89C51有两个16位的定时器/计数器,即定时器0(T0)和 定时器1(T1)。它们实际上都是16位加1计数器。 • T0由两个8位特殊功能寄存器TH0和TL0构成;T1由TH1 和TL1构成。
• 每个定时器都可由软件设置为定时工作方式或计数工作方
• 例:当P3.4引脚上的电平发生负跳变时,从P1.0输出一个 500μs的同步脉冲。请编程序实现该功能。查询方式, fosc=6MHz。
解:(1)模式选择 选T0为模式2,外部事件计数方式。当P3.4引脚上的电平发生 负跳变时,T0计数器加1,溢出标志TF0置1;然后改变T0为 500μs定时工作方式,并使P1.0输出由1变为0。T0定时到产生 溢出,使P1.0输出恢复高电平,T0又恢复外部事件计数方式。
T0的低5位:01100B=0CH即(TL0)=0CH T0的高8位:11110000B=F0H即(TH0)=F0H
(2)计算最大定时时间T
T0的最大定时时间对应于初值为0. 则:T=213×1/6 × 10-6×12=16.384ms
例2:利用T0的工作模式0产生1ms定时,在P1.0引脚输出 周期为2ms的方波。设单片机晶振频率fosc=12MHz。编 程实现其功能。 解:要在P1.0引脚输出周期为2ms的方波,只要使P1.0每隔 1ms取反一次即可。 (1)选择工作模式 T0的模式字为TMOD=00H,即 M1M0=00,C/T=0,GATE=0,其余位为0。 (2)计算1ms定时时T0的初值
单片机原理第5章定时、计数器
5.2.2 控制寄存器 控制寄存器TCON
5,控制寄存器TCON初始化设置 ,控制寄存器 初始化设置
0
0 1
0
1 0 1
0
0
0
0
复位时, 的所有位被清0. 复位时,TCON的所有位被清 的所有位被清 要启动,关闭 , 要启动,关闭TI, T0,需对 ,需对TR1,TR0用 , 用 软件设置: 软件设置: SETB TRx;启动 ; CRL TRx;关闭 ; 也可以用传送指令 MOV TCON,#50H , 同时启动T0, 同时 同时启动 ,T1同时 使用电平触发方式. 使用电平触发方式.
时钟 振荡 ÷12
2,脉冲计数 , 每来1个脉冲,计 每来 个脉冲, 个脉冲 数器加1. 数器加 .
C P U
T0 TL0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0
溢 出 启动 TH0 工作 方式
TCON
TMOD
中断
5.1 定时器的结构及工作原理
1,计数脉冲来源 ,
(P3.4)
INT0(INTI)=1 指令 SETB TR0(TR1) 启动定时/计数器 启动定时 计数器T0(T1) 计数器
1
5.2.2 控制寄存器 控制寄存器TCON
1,溢出标志位 TFx
0 1
TFl(TCON.7):T1溢出标志位.当T1溢出时由硬 : 溢出标志位 溢出标志位. 溢出时由硬 件自动使中断触发器TFl置1,并向 申请中断. 件自动使中断触发器 置 ,并向CPU申请中断. 申请中断 响应进入中断服务程序后, 当CPU响应进入中断服务程序后,TFl又被硬件 响应进入中断服务程序后 又被硬件 自动清0. TFl也可以用软件清 . 自动清 . 也可以用软件清0. 也可以用软件清 TF0(TCON.5):T0溢出标志位.其功能和操作同 : 溢出标志位 其功能和操作同TFl 溢出标志位.
第五章 PLC基本指令系统----计数器+典型案例
1L
Q0.0 Q0.1
Q0.2
Q0.3
S7200 CPU 222
1M
I0.0
I0.1
M L+
DC 24V
停止按钮SB1 启动按钮SB2
脉冲的上升沿(由0到1)信号时,计数器的当前值减1。当计数器当前值等于或大于设定值 (PV)时,该计数器位被置1。当复位输入端(R)有效或用复位指令(R)对计数器执行复 位操作时,计数器被复位,即计数器位为0,且当前值清零。
《第5章 PLC基本指令系统》
五、S7-200 PLC的基本指令
11. 计数器指令
《第5章 PLC基本指令系统》
六、典型控制环节的PLC程序设计 2、大功率电动机的星-三角减压起动控制程序
输入信号
停止按 I0.0 钮SB1
起动按 I0.1 钮SB2
输出信号 接触器 Q 0.1 KM1
接触器 Q 0.2 KM2
接触器 Q 0.3 KM3
FR
KM1
KM2
KM3
~
KM3
KM2
1L
Q0.0 Q0.1
《第5章 PLC基本指令系统》
五、S7-200 PLC的基本指令
12. 比较指令
比较指令是将两个数值或字符串按指定条件进行比较,比较条件成立时,比较触点就闭合。 所以比较指令实际上也是一种位指令。
类型: 按两个操作数的数据类型分:字节比较、整数比较、双字整数比较和实数比较。 比较指令的运算符有6种: ==(等于)、>(大于)、>=(大于等于)、<(小于)、<=(小于等于) 和 <>(不等于)。
C21当前值 0
C21位
//计数值为0时接通Q0.0
第五章 定时器计数器8253
1方式----低电平输出(GATE信号上升沿重新计数) 可重复触发的单稳态触发器 1方式为可编程的单稳态工作方式。(平时gate无效) 情况一: (1)写入计数初值后,计数器并不立即开始工作; (2)门控信号GATE有效,才开始工作,使输出OUT变成低电平; (3)直到计数器值减到零后,输出才变高电平。见图6.5中①。 情况二: 21组16 在计数器工作期间,当GATE又出现一个上升沿时,计数器 重新装入原计数初值并重新开始计数,见图见图6.5中②。 21组17 如果工作期间对计数器写入新的计数初值,则要等到当前的 计数值计满回零且门控信号再次出现上升沿后,才按新写入的 计数初值开始工作,见图6.5所示③。21组1 2.
CLK WR
n=6
5 4 3 2 1 0
①
OUT
② ห้องสมุดไป่ตู้ATE
OUT
5
4
4
4
4
3
2
1
0
图6.8:8253的4方式时序波形
6. 5方式------单次负脉冲输出(硬件触发)
加1,计数脉冲是频率恒定的时钟脉冲
一次计数过程是指计数器从初值开始计数到0。
一段定时是指计数器从初值开始计数到0所经
历的时间段。
定时举例:
①计算机及电子系统中需要定时信号,如系统 的日历时钟,一天24小时的计时。动态存储器 的刷新,应用系统的定时中断、定时查询与检 测等称为日时钟。
②在监测系统中,对被测点的定时取样。 ③在读键盘时,为去抖,一般延迟10ms再读。
个字节),采用二进制计数。其初始化程序段为
MOV DX,43H
;命令口 ;2号计数器的初始化命令字 ;写入命令寄存器 ;2号计数器数据口
第5章 定时器计数器
后由硬件自动清0
(2)TR1、TR0——计数运行控制位
✓ TR1(或TR0)=1,启动定时器/计数器工作 ✓ TR1(或TR0)=0,停止定时器/计数器工作。 ✓ 该位可由软件置1或清0(位操作)
7
定时器/计数器T1、T0工作方式
22
✓ 当T2MOD的DCEN=0时,T2为增1型重新装载方式
EXEN2=0时,T2计满回0溢出,TF2置1;陷阱寄存器RCAP2L、 RCAP2H中预置的16位计数初值重新再装入TL2、TH2中,自动进 行下一轮计数。
EXEN2=1时,T2操作方式照旧,但当T2EX(P1.1)产生负跳变时 触发三态门将RCAP2L、RCAP2H陷阱寄存器中的计数初值自动装 载到TL2和TH2中重新开始计数,EXF2置1并发出中断请求。
9
✓ 方式2(M1 M0=10B) 方式2为自动恢复初值(初值自动装入)的8位定时器/计数器。
TLx(x = 0,1)作为常数缓冲器,当TLx计数溢出时,TFx置1且
自动将THx中的初值送至TLx,开始重新计数。
【注】方式2可省去用户软件中重装初值的指令执行时间,可以
相当精确地确定定时时间。
10
✓ 方式3(M1 M0=11B) 相当于增加了一个8位定时器/计数器。
(2)T1工作在方式1( M1 M0 =01B )
12
(3)T1工作在方式2( M1 M0 =10B )
(4)T1设置在方式3( M1 M0 =11B )
当T0设置在方式3,再把T1也设成方式3,此时T1停止计数。
13
定时/计数器初始化步骤
(1)方式控制字送TMOD MOV TMOD,#——
第5章 定时器计数器2(1)
2、模式1模式1(M1M0=01)除了使用了THn和TLn全部16位外,其它与模式0相同。
(1)计数工作方式由于定时器/计数器以加1方式计数,假定计数值为X,则应装入定时器/计数器的初值为:初值=216-计数值【216=初值+计数值】所以方式1的计数值围是:1~65536(216=65536),最大值为:65536(2)定时工作方式定时时间t的计算公式为:【t的时间单位为微秒(µs)】计数值=216-初值定时时间t=计数值×机器周期=(216-初值)×(1/晶体振荡频率)×12在模式1下的情况下,如果fosc=12MHz,最大定时时间为:t=(65536-初值)×(1/12)×12=65536-0=65.536ms在模式1下的情况下,如果fosc=6MHz,最大定时时间为:t=(65536-初值)×(1/6)×12=(65536-0)×2=131.072 ms。
【例如】:若晶体振荡为12MHz,要定时2.5ms,计算初值。
要定时2.5ms,也可以用模式1。
2500=(216-初值)×(1/12)×12初值=65536-2500=63036=32768+16384+8192+4096+1024+512+32+16+8+4=1111 0110 0011 1100――> THn =0xF6 和 TLn=0x3C在fosc=12MHz时,如果定时时间大于65.536ms,这时用一个定时/计数器直接处理不能实现,这时可用:1、2个定时/计数器共同处理;2、1个定时/计数器配合软件计数方式处理。
3、模式2方式0和方式1的最大特点是计数溢出后,计数器为全0。
因此在循环定时或循环计数应用时就存在用指令反复装入计数初值的问题。
这不仅影响定时精度,也给程序设计带来麻烦。
方式2就是针对此问题而设置的。
该方式可省去用户软件中重装初值的指令执行时间,简化定时初值的计算方法,可以相当精确地确定定时时间。
第5章 定时计数器
图4-11 定时/计数器T0方式0的逻辑结构示意图
2. 方式1 当M1M0=01时,定时/计数器工作于方式1。方式1的计 数位数是16位,由TL0作为低8位,TH0作为高8位共同构 成。其余操作同方式0。
2.定时/计数器控制寄存器TCON TCON的低4位用于控制外部中断,高4位用于控 制定时/计数器的启动和中断申请。 TF0(或TF1)
当计数溢出时,TF0(或TF1)会自动由0变1, 告诉我们计数已满,我们可以通过查询TF0(或TF1) 位的状态来判断计时时间是否已到;
如果采用定时中断方式,则 由0变1时,能自动引发中断。 TF0(或TF1)
16位定时/计数器的计数容量是65536
假设计满一小时需要100,000,000 滴,这称为水钟的计数容量
(2)定时 单片机内部的计数器用作定时器时,是对标准的 时钟进行了计数,每来一个时钟脉冲,计数器加1, 计数器如何能作为定时 只要保证计数脉冲的间隔相等,则计数值就代表了 器使用呢? 时间的流逝。 单片机中的定时器和计数器其实是一个器件: 计数器:是对外部发生的事件进行计数, 定时器:是对单片机内部的标准时钟脉冲进行 计数。
TR0(或TR1) 由图4-11 可知,只有 当TR0(或TR1)为1时,开 关1才能闭合,计数脉冲才 能进入计数器,故TR0(或 TR1)称为运行控制位,可 用指令“SETB TR0(或 TR1)”来置位以启动定时/ 计数器运行;或用指令 “CLR TR0(或TR1)”来关 闭定时/计数器的工作,一 切全靠编程人员控制。
2.初始化程序:
MOV MOV MOV MOV TMOD,#06H TH0,#0F4H TL0,#0F4H IE ,#00H ;T0作计数器,工作于方式2 ;装入时间常数初值 ;自动重装时间常数 ;用查询方式确定计满12盒? ;自动申请中断
第5章 MCS-51单片单片机内部 定时器计数器
LOOP:
例:由P1.0输出方波信号,周 期为2ms,设fosc=12MHz。 (中断方式)
2ms
解:每隔1ms改变一次P1.0的输出状态,即形成方波, 用T0非门控方式1定时。 计算时间常数:X = 216 - t/T = 216 –(1/1000)/10-6 = 65536-1000 = 64536 = FC18H
3 工作模式2 • 模式2把TL0(或TL1)设置成一个可以自动重 装载的8位定时器/计数器 。 用于需要重复定时和计数的场合。 最大计数值:256 (28) 最大定时时间(晶振12MHz时 T=1s): 256s 自动恢复初值8位定时/计数器。TLx为8位加1计 数器,THx为8位初值暂存器。
复位时,TMOD所有位均置0。 确定定时器工作方式指令: MOV TMOD,#方式字 例:设T0用方式2非门控定时,T1用方式1门控计数。 MOV TMOD,#0D2H ; 1101 0010 B
定时器控制寄存器TCON除可字节寻址外,各 位还可以位寻址。
位地址 位符号 8FH TF1 8EH 8DH 8CH TR1 TF0 TR0 8BH IE1 8AH 89H 88H IT1 IE0 IT0
解得:T0初值=7096=11011101 11000B,其中将高8位 11011101 B=DDH 赋给 TH0 ,低 5 位 11000B=18H 赋 给 TL0。
方法一:
采用查询工作方式,编程如下:
ORG AJMP 0000H MAIN
LOOP:JNB TF0,$;$为当前指令指 针地址 CLR SETB CLR MOV MOV TF0 P1.0 P1.0 TH0 , #0DDH ;重装载 ;产生2µ s正脉冲
ORG AJMP ORG AJMP ORG MAIN:MOV MOV MOV SETB SETB SETB HERE:SJMP PT0INT:MOV MOV CPL RETI
第05章 单片机定时计数器 习题解答
DIV AB
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV A,B
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P2,A
MOV TMOD,#02H;
SETB ET0
SETB EA
WT: JB SP1,WT;直接寻址位为1转移(按键按下时SP1为0)
MOV P0,A
MOV A,B
MOV DPTR,#TABLE;可以不要
MOVC A,@A+DPTR
MOV P2,A
MOV KEYCNT,#00H
DKN: JNB SP1,$;直接寻址为0转移
LJMP WT
DELY10MS:
MOV R6,#20
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
M1
M0
工作方式
方式说明
0
0
方式0
13位定时/计数器
0
1
方式1
16位定时/计数器
1
0
方式2
具有自动重装初值的8位定时/计数器
1
1
方式3
T0为两个独立的8位计数器,T1为波特率发生器
2.设MCS-51单片机的晶振频率fOSC=6MHz,分别讨论定时器/计数器0在各种工作方式下的最长定时时间。
答:由fosc =6MHz可知,一个机器周期T=2us,由于是加1计数,所以最长定时应是计数初值最小时(即为0时)的定时时间。
汇编语言参考程序如下:
ORG 0000H;在0000H单元存放转移指令
LJMPMAIN;转移到主程序
定时器、计数器简单电路编程及梯形图的经验设计法
TON T××,PT
TONR T××,PT
TOF T××,PT
2. 时基 按时基脉冲分,则有1ms、10ms、100ms 三种定时器。不同的时基标 准,定时精度、定时范围和定时器刷新的方式不同。 (1)定时精度和定时范围。 定时器的工作原理是:使能输入有效后,当前值PT对PLC内部的时基 脉冲增1计数,当计数值大于或等于定时器的预置值后,状态位置1。 其中,最小计时单位为时基脉冲的宽度,又为定时精度; 从定时器输入有效,到状态位输出有效,经过的时间为定时时间, 即:定时时间=Байду номын сангаас置值×时基。 当前值寄存器为16bit,最大计数值为32767,由此可推算不同分辨率 的定时器的设定时间范围。CPU 22X系列PLC的256个定时器分属TON (TOF)和TONR工作方式,以及3种时基标准,如表4-4所示。 可见时基越大,定时时间越长,但精度越差。
设: 输入信号:I0.0为故障信号;I0.1为消铃按钮;I0.2为试灯、 试铃按钮 输出信号:Q0.0为报警灯;Q0.1为报警电铃
设计小车自动往返运动的梯形图
正次品分拣机编程实训
控制要求 (1)用启动和停止按钮控制电动机M运行和停止。在电动机运行时, 被检测的产品(包括正次品)在皮带上运行。 (2)产品(包括正、次品)在皮带上运行时,S1(检测器)检测到 的次品,经过5s传送,到达次品剔除位置时,起动电磁铁Y驱动剔除 装置,剔除次品(电磁铁通电1s),检测器S2检测到的次品,经过 3s传送,起动Y,剔除次品;正品继续向前输送。正次品分拣操作流 程如图4-51所示。
表4-4 定时器的类型
工作方式
时基(ms) 1 TONR 10 最大定时范围(s) 32.767 327.67 定时器号 T0,T64 T1-T4,T65-T68
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例:利用Timer1的门控定时,测量施加在引脚T1CK上的正脉冲宽度
说明:主振荡器8MHz,PLL4倍频, 预分频系数=8,TMT1的计时分辨 率为0.5us。在Timer1的中断服务 程序中将TMR1送脉冲宽度存储单 元PulseT,并清零TMR1,为下一 个脉冲的测量作准备。
单片机及其应用
Int PulseT; //存储所测脉冲宽度,单位0.5us Int main(void) { TMR1=0; PR1=0xffff; //清TIMER1,置其周期寄存器为65535 SRbits.IPL=3; //CPU priority level IFSObits.T1IF=0; IPCObits.T1IP=4; //setup Timer1 interrupt priority level->4 IECOBIT.T1IE=1; //enable Timer1 interrupts T1CON=0X8050;//start Timer1:TON=1,TCS=0,TGATE=1,internal //instruction cycle, prescaler setting at 1:8 while(1){ SimPulseT( ); } //产生模拟脉冲,用于测试程序 } Void __attribute__((__interrupts__,no_auto_psv))__T1Interrupt(void) { PulseT=TMR1; //将所测脉冲宽度送PulseT单元 TMR1=0; //清Timer1计数器,准备下次测量 IFSObits.T1IF=0 ;//reset Timer1 interrupt flag and return from ISR
单片机及其应用
5.1 概述
C类定时器 大多数PIC24F器件中,如存在TIMER3和TIMER5,则他们是C类定时器。与 其他类型的定时器相比,C类定时器有下列独特的功能:
C类定时器可以和B类定时器相连形成32位定时器,C类定时器为32位 定时器的高16位。 在某个给定的器件上,至少有1个C类定时器能够触发A/D转换。 C类定时器无异步模式,它的工作总是与指令时钟同步。
单片机及其应用
5.3 工作模式
5.3.1 定时器模式(16位,非门控)
所有类型的定时器都可以工作于定时器模式。通过清零TCS控制位 (TxCON<1>)选择定时器模式。这时,定时器的输入时钟由内部系统时钟 (Fosc/2 )提供。 使能该模式时,对于1:1的预分频器设置,定时器的计数值在每个指令周 期都会递增。同步模式控制位TSYNC(TxCON<2>)在该模式下不起作用, 因为使用了系统时钟源作为定时器时钟。 设指令周期为Tcy,预分频系数为N,周期寄存器PRx赋值为X,则定时时间 为: T=Tcy×N×(X+1)
工作模式由各定时器模块的控制寄存器TxCON中的相应位控制: TCS(TxCON<1>):定时器时钟源控制位; TSYNC (TxCON<2>):定时器同步控制位(仅A类定时器有); TGATE(TxCON<6>):定时器门控控制位; TON(TxCON<15>):使能或禁止每个定时器模块 。
单片机及其应用
5.1 概述
B类定时器 大多数PIC24F器件中,如存在TIMER2和TIMER4,则他们是B类定时器。与 其他类型的定时器相比,B类定时器有下列独特的功能:
B类定时器的TxCON寄存器有一个T32控制位,若将位T32置为“1”,则 B类定时器和C类定时器相连形成32位定时器,B类定时器为32位定时器的 低16位。Timer2+Timer3; Timer4+Timer5。 B类定时器无异步模式,它的工作总是与指令时钟同步,在预分频逻 辑后执行。
单片机及其应用
Int main(void) { TMR1=0; PR1=1999; IFSObits.T1IF=0; SRbits.IPL=3; //Setup CPU priority level->3 IPCObits.T1IP=4; //setup Timer1 interrupt priority level->4 IECOBIT.T1IE=1; //enable Timer1 interrupts TRISD=0XFFFE; //Set RD0 as OUT T1CON=0X8010;//start Timer1:TON=1,TCS=0,TGATE=0,internal //instruction cycle, prescaler setting at 1:8 while(1){ ; } //recycle } Void __attribute__((__interrupts__,no_auto_psv))__T1Interrupt(void) { if(TD0) TD0=0; else TD0=1; IFSObits.T1IF=0 ;//reset Timer1 interrupt flag and return from ISR }
单片机及其应用
定时器模块的寄存器均是16位可读、可写寄存器。 TMRx /计数工作寄存器,它是增量型计数器,计数脉冲来源取决于控 工作在定时器方式时(TCS=“0”),若将控制寄存器 控制寄存器 PRx是定时 是周期寄存器,当 TxCON 中的TON TMRx 位控制定时器的运行 寄存器中的计数值与 /停止。将 PRx寄存器中值相同时(即 TxCON TON 中门控位 位置“1TGATE ”,启 制寄存器 TxCON中的TCS 位。 置为“ 动定时器工作;若将 “周期匹配”),中断标志位 1”,则定时器工作需同时满足 TON 位清“0 TXiF ”,则定时器停止工作, 置“ TON位为“ 1”,若允许该定时器中断,则向 1”和引脚TxCK TMRx为“ 寄存器保持其 1” 若TCS=“0”,则计数脉冲来源于片内的系统时钟 ,即指令周期 Tcy, 若TCS=“1”,则该定时器模块作计数器使用,计数脉冲来源于引脚 TxCLK (高电平)两个条件,且当引脚 原来的计数值。分频系数由控制寄存器 CPU申请中断。*产生周期匹配时 TxCK TMRx 由高电平变低电平时,即下跳沿,置 寄存器不会清零,而是在产生周期匹 TxCON中的fosc/2 TCKPS<1:0> 位设置。 信号,这时作为定时器使用。 在其信号上沿使 TMRx 寄存器加 1申请中断。这种方式为门控定时器模式。 ; 中断标志位 配后的下一时钟脉冲 TxIF为“ 1”,向 TMRx寄存器才清零。当周期寄存器 CPU PRx的值为0时,定 时器不能工作,周期匹配也不会产生定时器中断。
单片机及其应用
5.2 控制寄存器——定时器控制寄存器TxCON(A类)
单片机及其应用
5.2 控制寄存器——定时器控制寄存器TxCON(B类)
单片机及其应用
5.2 控制寄存器——定时器控制寄存器TxCON(C类)
单片机及其应用
5.3 工作模式
每个定时器模块均可工作在以下几种模式之一: 定时器模式; 同步计数器模式; 门控定时器模式; 异步计数器模式(TIMER1定时器)。
单片机及其应用
例:使用系统时钟的16位定时器的初始化代码 ——Enable Timer1 interrupts, load the Timer period register and start Timer1. T1CON=0x00; //stops the Timer1 and reset control register TMR1=0X00; //clear contents of the timer register PR1=0xFFFF; //load the period register with the value 0xffff IPCObits.T1IP=0x01; //setup Timer1 interrupt for desired //priority level- assigns level 1 priority IFSObits.T1IF=0; //clear the Timer1 interrupt status flag IECObits.T1IE=1; // Enable Timer1 interrupts T1CONbits.TON=1; //Start Timer1 with prescaler settings at 1:1 and clock //source set to the internal instruction cycle Void _ _attribute__((__interrupt__, __shadow__))_T1Interrupt(void) { /* Interrupt service routine code goes here */ IFSObits.T1IF=0; //Reset Timer1 interrupt flag and return from ISR }
大多数PIC24F芯片为5个16位的定时器,只有少数几种14pin、20pin和 28pin封装的KA系列(如PIC24F04KA201)为3个16位的定时器。而PIC24H 系列中有十几种型号的芯片有9个16位的定时器。
单片机及其应用
5.ቤተ መጻሕፍቲ ባይዱ 概述
PIC24系列的每个定时器模块都有3个16位可读/写的寄存器:TMRx、PRx 和TxCON。其中: TMRx:16位定时器寄存器,即工作寄存器(为“加”计数器)。 PRx: 定时器的16位周期寄存器。 TxCON:定时器的16位控制寄存器。
单片机及其应用
例:设主振荡器8MHz, PLL4倍频,利用Timer1定时,使端口RD的RD0输出周期 为2ms的方波,即每1ms改变一次RD0的电平 由条件:指令时钟Fcy=Fosc/2=32MHz/2=16MHz, 定时时间T=1ms=1000μs.设 TCKPS<1:0>=01(预分频系数=8),周期寄存器PR1所赋值为X,则 1000 = 1/16 * 8 * (X+1) X= 1000*16/8 – 1=1999 #include “P24fj64ga006.h” _CONFIG1(JTAGEN_OFF & GCP_OFF & GWRP_OFF & BKBUG_ON & COE_OFF & ICS_PGx1 & FWDTEN_OFF & FWPSA_PR32 & WDTPS_PS256) _CONFIG2(IESO_OFF & FNOSC_PRIPLL & FCKSM_CSDCMD &OSCIOFNC_OFF & POSCMOD_XT)