第六章:定时计数器B
【大学课件】定时计数器PPT-精品文档

定时时间为:TC=XTu。其中,Tu为单位时间间隔,TC为定时时间。 STC12C5410AD单片机的定时器/计数器0或1是对脉冲进行不断加1 进行计数的,因此,不能直接将实际的计数值作为计数初值送入计数寄 存器THX、TLX中,而必须将实际计数值以28、213、216为模求补,以补 码作为计数初值设置THX和TLX。即应装入计数/定时器的初值为:
$include ORG LJMP ORG LJMP ORG MAIN: MOV MOV MOV SETB SETB SETB HERE: LJMP T0_ISR: MOV RETI END (STC12.INC) ;包含STC12C5410AD单片机寄存器定义文件 0000H MAIN ;转主程序 000BH ;定时器T0中断服务程序入口地址 T0_ISR ;转中断服务程序 0100H ;主程序的存放起始地址 MOV SP,#60H ;给栈指针赋初值 TMOD,#06H ;定时器T0工作于方式2 TL0,#0FFH ;送时间常数 TH0,#0FFH ET0 ;允许T0中断 EA ;CPU开中断 TR0 ;启动T0计数器 HERE ;等待 DEC A ;T0中断服务程序 P1,A ;累加器A内容减1送P1口
13/49
单片机应用技术
【例8-l】 设计利用定时/计数器T0、T1端作为外部中断源输入线进行外部中断源扩充 的程序。 解:为了扩充外部中断源,可以利用定时/计数器工作于计数状态时,T0(P3.4) 或T1(P3.5)引脚上发生负跳变,计数器增1这一特性,把P3.4、P3.5作为外部中断源 请求输入线,使计数器的计数值为-1(即0FFH),则外部T0、T1输入一个脉冲即计数溢 出,从而置位相应的中断请求标志,以此来申请中断,则相当于扩充了一根/INT线。 编程时,将T0置为方式2计数,计数初值0FFH,计数输入端T0(P3.4)发生一次负 跳变,计数器加1并产生溢出标志向CPU申请中断,中断处理程序使累加器A内容减1,送 P1口,然后返回主程序。汇编语言程序清单如下:
单片机第六章定时器

这种方式下,计数寄存器由13位组成,即THx高八位(作计数器)
和TLx的低5位构成。TLx的高3位未用。
计数时,TLx的低5位溢出后向THx进位,THx溢出后 将TFx置位,并向CPU申请中断。
用软件控制,置 l时,启动 T1;清0时,停止 T1。
TF0(TCON.5)——T0的溢出标志。
TR0(TCON.4)——T0的运行控制位。
用软件控制,置1时,启动T0;清 0时,停止 T0。
• IE1(TCON.3)——外部中断1中断请求标志位。
• IE0(TCON.1)——外部中断0中断请求标志位。
器之外,还可用作串行接口的波特率发生器。
6.2
定时器/计数器T0、T1
T0、T1 的内部结构简图示于图6-1中。从图中 可以看出,T0、T1由以下几部分组成:
• 计数器TH0、TL0和TH1、TL1;
•
•
特殊功能寄存器TMOD、TCON;
时钟分频器;
•
输入引脚T0、T1。
6.2.1 与定时器/计数器T0、T1有关的 特殊功能寄存器
⑵定时器/计数器T1
T0方式3时,T1可以工作在方式0、1、2三种方式 T1的结构如图6–6所示。 由于T0占用了原来T1的启动位TR1和溢出标志TF1, 所以此时T1溢出时不能置位溢出标志,不能申请中断, 其溢出信号送给串行口,此时T1作为波特率发生器。
T1的启停由写入方式字控制,当写入方式0/1/2 时,T1立即启动,写入方式3 时,立即停止工作。
分析:设置T0工作在方式2,计数功能,每记满100个外 部脉冲,从P1.0输出一个低电平脉冲信号(简化的打包 操作)。
第六章单片微机的定时器计数器原理及应用

中断矢量001BH
⑴T0方式3下的T0
在方式3情况下,T0被拆成二个独立的8位计数器TH0、TL0。 ▲ TL0:8位定时/计数器,使用T0原有的控制寄存器资 源:TF0,TR0,GATE,C/T,INT0,中断矢量等; ▲ TH0:8位定时器,占用T1的中断溢出标志TF1,运行控 制开关TR1,中断矢量001BH,只能对片内机器周期脉冲计数
复位后,两个寄存器全部清零。
6.3.2 定时器/计数器T2的工作方式
T2的工作方式用控制位CP/RL2(T2CON.0)和RCLK +TCLK来选择。T2有3种工作方式,如表6-2所示:捕获方式、 自动重装载方式和波特率发生器方式。
⒈ 捕获方式
在一定条件下,自动将计数器TH2和TL2的数据读入捕获寄存器 RCAP2H和RCAP2L,亦即TH2和TL2内容的捕获是通过捕获寄 存器RCAP2H和RCAP2L来实现的。其工作原理可参见图6-7。
当CP/RL2=0时,选择自动重装载方式。 若T2的中断是被允许的,则无论发生TF2=1还是EXF2 =1,CPU都会响应中断,此中断向量的地址为002BH。响应 中断后,应用软件撤除中断申请。TF2 和EXF2都是直接可寻 址位,可采用CLR TF2和CLR EXF2指令实现撤除中断申请的 功能。
触发 方式
89H IE0
中断 标志
88H IT0
触发 方式
⒊ T0、T1 的数据寄存器——TH1、TL1,TH0、TL0 ⒋ 定时器/计数器中断
⑴ 中断允许寄存器IE
⑵ 中断矢量 ⑶ 中断优先级寄存器IP
6.2.2 定时器/计数器T0、T1 的工作方式
T0:有4种工作方式可选(方式0,1,2,3)
当CP/RL2=l时,选择捕获方式。
定时计数器B讲义课件

定时计数器重要参数
定时时间
指定时计数器可以设定的最大时间 间隔,通常以微秒或毫秒为单位。
分辨率
指定时计数器能够分辨的最小时间 间隔,通常取决于计数器的位数和
时钟频率。
精度
指定时计数器的实际计时结果与设 定值之间的误差范围。
触发方式
指定时计数器在达到设定时间间隔 后触发信号的方式,可以是电平触 发或边沿触发。
案例三:基于单片机的定时计数器应用
• 总结词:单片机是一种集成了一定数量外围设备和CPU的微控 制器,具有体积小、价格低、易于编程等优点。基于单片机的 定时计数器应用适用于各种小型嵌入式系统。
案例三:基于单片机的定时计数器应用
• 详细描述 • 单片机的选择:选择具有合适逻辑单元、内存容量和I/O引脚数量的单片机,
驱动程序开发流程
开发定时计数器驱动程序的主要流程包括:初始化、配置 、中断处理、读写操作以及关闭等环节。
定时计数器应用程序开发
应用程序接口
应用程序通过操作系统提供的API 接口来访问和控制定时计数器。 这些API通常包括开启/关闭定时 计数器、设置参数、读取状态以 及处理中断等。
应用程序主要功能
应用程序主要实现了以下功能:通 过调用API接口来控制定时计数器 的开启/关闭、设置参数、读取状 态以及处理中断等。
应用程序开发流程
开发定时计数器应用程序的主要流 程包括:初始化、配置、运行和关 闭等环节。
定时计数器测试与调试
01
测试环境搭建
为了确保定时计数器软件设计的正确性和稳定性,我们需要搭建一个专
门的测试环境来进行测试和调试。测试环境通常包括硬件设备(如定时
计数器芯片)、驱动程序和应用程序等。
02
最新MCS-51的定时计数器

M C S-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单片机内部定时器

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

Copyright Reserved By Ni Jing
6.2
定时/计数器的控制方法
4、定时/计数器初值的确定方法
现假设最大计数值为M,那么各方式下的M值如下: –方式0:M=213=8192 –方式1:M=216=65536 –方式2:M=28=256 –方式3:T0分成两个8位计数器,则两个M均为256 根据定时/计数器是做“加1”计数,并在计满溢出时产生 中断,则初值X计算如下: X = M - 计数值 例: 80C51时钟频率为6MHz,要求产生1ms的定时,计算 X值。
–可查询TF0判断T0是否溢出 –定时时间计算
T=(65536-T0初值)*Tosc*12
–外部计数
• 外部计数由T0引脚引入 • 下降沿触发,计数频率<=fosc/24
–门控说明
• GATE=“0”:屏蔽INT0,T0由TR0控制on/off • GATE=“1”:打开INT0,T0由TR0控制on/off
0 1
1
1 0
1
方式1 方式2
方式3
16位计数器 自动再装入8位计数器
定 时 器 0: 分 成 两 个 8 位 计 数 器 定时器1:只能工作在方式0、1、2
Copyright Reserved By Ni Jing
6.2
定时/计数器的控制方法
关于TMOD的说明
–M0,M1是方式选择位 –C/T为T0的功能选择位:
3、WDT组成
– 14 (13 for 8952)位计数器 – 复位寄存器WDTRST (A6H),write only
4、WDT工作原理
– 启动WDT:顺序往WDTRST中写01EH,0E1H – 计数与溢出:每机器周期增1,直到计满溢出,触发系统复位 – WDT清零:正常运行时由软件时刻清零 – 死机复位过程:死机—WDT无法软件清零—WDT计满—溢出—触发RST引脚 脉冲—单片机复位—WDT停止计数
第6章 定时计数器件组件及其应用(三版)习题及答案

定时计数器结构及工作原理ppt课件

;p1.0清0 ;启动定时500us ;查询溢出标志,定时到TF0=1转移,且TF0=0.
SJMP LOOP2
4. 方式3:仅对定时/计数器0有效
T0 TH0+TL0
5.
对定时/计数器1,停顿计数。
将定时/计数器0分成两个独立的8位计数器TH0、TL0。
① TL0除仅用8位Reg 外,其他同方式0、 1。 可任务在定时或计数 方式。
MOV TL0 , #131 ;TL0装入时间常数(256-125)
CPL P1.1
;P1.1口得到方波
RETI
ORG 001BH ;T1中断处置程序首地址
MOV TH0 , #06H ;TH0装入时间常数(256-250)
CPL P1.2
;P1.2口得到方波
RETI MAIN: MOV TMOD , #03H ;T0任务于方式3、定时
ORG 000BH ;到中断效力程序
ORG 0100H
MAIN: MOV SP ,#60H MOV TMOD ,#00 ;
方式0 方式1 MOV TM0D ,#01H
MOV TL0,#0CH ;
MOV TL0 , #0CH
MOV TH0 ,#0F0H ;
MOV TH0 , #0FEH
SETB EA
TX才被允许计数。
利用GATE的这一功能②,可测③试INTX 引脚上正脉冲的宽度
〔机对器T0周初期始数化〕编。程其方法如下图: GATE=1. ① T0从0开场计数
T0停顿计数 ④ 读T0的值。 INTXX
程序: ORG 4000H MOV TMOD,#09H
; T0 初始化 ; T0任务于方式1, 定时,
300Ω
P1.7
第6章定时计数器2015(共39张PPT)

3. 方式2
TMOD--M1M0=10:定时器工作(gōngzuò)在方式2。 方式2是8位的可自动重装载的定时计数方式。
TL0用作8位计数器, TH0用以保持计数初值。 当TL0计数溢出,置位TF0,TH0中的初值自动装入TL0,继续 计数,循环重复计数。 用于计数工作方式时,最大计数值为:
SJMP AGAI SHI:RL A
SJMP NEXT
共三十九页
②中断方式 ORG 0000H LJMP MAIN
;单片机复位(fù wèi)后从0000H开始执行
ORG 001BH
AJMP IV1
;转移到IV1
ORG 0030H
;主程序
MAIN:MOV A,#01H
MOV P1,A ;置第一个LED亮
T0由2个8位持殊功能寄存器TH0和TL0构成, T1由2个8位持殊功能寄存TH1和TL1构成。 每个定时器都可由软件设置(shèzhì)为定时工作方式或
计数工作方式。 T0和T1受特殊功能寄存器TMOD和TCON控制。
共三十九页
1. 定时 工作方式 (dìnɡ shí)
定时器计数的脉冲是由51单片机片内振荡器经12分 频后产生的。
2 .方式 1 (fāngshì)
TMOD: M1M0=01----定时计数器工作在方式1。
该模式是一个16位定时/计数方式。 寄存器TH0和TL0是以全16位参与操作, 计数方式时最大计数 216=65536(个外部脉冲)
用于定时工作方式时,定时时间为:
t=(216一T0初值) ×时钟周期×12 16位寄存器(THX和TLX) 中THX提供高8位、TLX提供低8位计 数初值
TH0只可用作定时功能,占用定时器T1的控制位TR1和T1 的中断标志位TF1,其启动和关闭仅受TRl的控制。 定时器T1无模式 3, 可工作于方式0、1、2,但不能使用中 断方式。 只有将T1用做串行口的波特率发生器时,T0才工作在方式3, 以便增加一个定时器。
定时计数器-PPT精品

★用于定时工作方式时,定时时间为: t=(216一T0初值) ×时钟周期×12
★用于计数工作方式时,计数长度为216= 65536(个外部脉冲)
3.模式2
感谢您的关注
1. 工作模式寄存器TMOD(89H)
TMOD用于控制T0和T1的操作模式。其各 位的定义格式如下:
TMOD
定时器T1
D7 D6 D5 D4
定时器T0
D3 D2 D1 D0
(89H) GATE C/T M1 M0 GATE C/T M1 M0
1.1 M1 M0 工作模式选择位
共有四种工作模式
M1 M0 工作方式 功能描述
程序如下:
MOV MOV MOV JB SETB JNB JB CLR
TMOD,#90H TH1, #00H TL1, #00H P3.3, $ TR1 P3.3, $
P3.3, $ TR1
;定时器T1模式1、定时 ;设定初值
; ;等待INT1变低 ;启动T1 ; 等待INT1变高 ;开始计数,等待变低 ; 停止计数
1.模式0
★模式0是选择定时器(T0或T1)高8位加低5 位的—个13位定时器/计数器。
★在这种模式下,16寄存器(TH0和TL0)只 用13位,其中TL0的高3位末用,其余位 占整个13位的低5位,TH0占高8位。
★当TL0的低5位溢出时向TH0进位而TH0 溢出时向中断标志位TF0进位(硬件置位 TF0),并申请中断。
2. 控制寄存器TCON(88H)
TCON 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H (88H) TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
51单片机第六章 定时器与计数器

它重装初值。
6.3.2 方式1 方式1与方式0基本相同,只是方式1改用了16位计数器,即寄 存器TH的8位和TL的8位全部参与了操作。其逻辑电路结构如下图 所示(以T0为例)。
6.3.3 方式2 方式2把TL配置成一个可以自动重新装入初值的8位定时器/ 计数器,即把定时器/计数器看成一个8位寄存器TH和一个8位计 数器TL,其逻辑电路如下图所示。
6.4.3
定时器初值的计算
当C/ T = 0时,定时器/计数器T0或T1被 选为定时器。此时必须给定时器送定时初值, 这个初值也是送到 TH 和 TL 中的。 T0或T1在 该定时初值的基础上进行加法计数,并当计数 器从全“1”变为全“0”时自动产生定时溢出中 断请求。 在定时器方式下,计数器对机器周期进行计数。因此 ,定时器定时时间T的计算公式为: T=(M-X)T机器 式中,M为模值,和定时器的工作方式有关(同上);X为 定时初值 ; T机器是机器周期。
方式0:13为定时器/计数器
方式1:16为定时器/计数器 定时器/计数器的工作方式 方式2:可自动赋值的8位定时器/计数器
方式3: T0:两个独立的8为计数器。 T1:相当于TR1=0,T1不工作。
6.3.1
方式0
方式0是一个13位的定时器/计数器,由TH中的8位和TL中低5 位组成,其中TL中的高3位是弃之不用的。其逻辑电路结构如下图 所示(以T0为例)。
6.3.4 方式3 在前三种工作方式下,T0和T1功能是完全相同的,但在方 式3下T0和T1功能就不相同了。 若将T0设置为方式3,TL0和TH0被分成为两个互相独立的8 位计数器,如下图所示。
定时器T1无操作方式3状态,若将T1设置为方式3,就 会使T1立即停止计数,也就是保持原有的计数值,其作用 相当于使TR1=0,封锁与门,断开计数开关K。
单片机原理与应用(盛珣华)习题和思考题答案

习题和思考题答案第一章单片机概述1. 第一台电子数字计算机发明的年代和名称。
1946年、ENIAC。
2. 根据冯·诺依曼提出的经典结构,计算机由哪几部分组成?运算器、控制器、存储器、输入设备和输出设备组成。
3. 微型计算机机从20世纪70年代初问世以来,经历了哪四代的变化?经历了4位、8位、16位、32位四代的变化。
4. 微型计算机有哪些应用形式?系统机、单板机、单片机。
5. 什么叫单片机?其主要特点有哪些?单片机就是在一片半导体硅片上,集成了中央处理单元(CPU)、存储器(RAM、ROM)、并行I/O、串行I/O、定时器/计数器、中断系统、系统时钟电路及系统总线的用于测控领域的微型计算机,简称单片机。
单片机技术易于掌握和普及、功能齐全,应用广泛、发展迅速,前景广阔、嵌入容易,可靠性高。
6. 举例说明单片机的应用?略7. 当前单片机的主要产品有哪些?各自有何特点?MCS是Intel公司生产的单片机的系列符号,MCS-51系列单片机是Intel公司在MCS-48系列的基础上于20世纪80年代初发展起来的,是最早进入我国,并在我国应用最为广泛的单片机机型之一,也是单片机应用的主流品种。
其它型号的单片机:PIC单片机、TI公司单片机、A VR系列单片机。
8. 简述单片机应用系统的开发过程。
(1)根据应用系统的要求进行总体设计总体设计的目标是明确任务、需求分析和拟定设计方案,确定软硬件各自完成的任务等。
总体设计对应用系统是否能顺利完成起着重要的作用。
(2)硬件设计根据总体设计要求设计并制作硬件电路板(即目标系统),制作前可先用仿真软件(如Proteus软件)进行仿真,仿真通过后再用硬件实现并进行功能检测。
(3)软件设计软件编程并调试,目前一般用keil软件进行设计调试。
调试成功后将程序写入目标单片机芯片中。
(4)综合调试进行硬软件综合调试,检测应用系统是否达到设计的功能。
9. 说明单片机开发中仿真仪的作用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
补充: 定时器/计数器应用举例
一、 方式 0 例 1 利用定时器T0产生1ms定时,并使P1.0输出周期为 2 ms的方波, 设单片机晶振频率为 6 MHz。 选用定时器 /计数器T0 作定时器, 输出为P1.0 引脚, 2 ms 的方波可由间隔 1 ms的高低电平相间而成, 因而只要每隔 1 ms对 P1.0 取反一次即可得到这个方波。 定时 1 ms的初值: 因为 机器周期=12÷6 MHz= 2 μs
高位
TMOD
GATE C/T M1 M0 GATE C/T M1
低位
M0
定时/计数器1
定时/计数器0
TMOD的高4位控制定时/计数器1,低4位控制定时/计数0。 其中M1、M0定义定时/计数器的工作方式。
1)定时器方式寄存器TMOD
D7
GATE
D6
C/T
D5
M1
D4
M0
D3
GATE
D2
C/T
D1
M1
余码均计入高 8 位TH0 的初值, 则 T0
TH0=0F0H, TL0=0CH TMOD初始化: TMOD=00000000B=00H (GATE=0, C/T=0, M1=0, M0=0) TCON初始化: 启动TR0=1 IE初始化: 开放中断EA=1, 定时器T0 中断允许ET0=1
补充: 定时器/计数器应用举例
2)方式1 (16位计数器)
方式1和方式0的工作原理基本相同,唯一不同是T0和T1工作 在方式1时是16位的计数/定时器 方式1时的计数长度M是2的16次方。16位的初值直接拆成高 低字节,分别送入THx和TLx即可。
3)方式2 (8位计数器,初始值自动重装)
作为计数器
保存计数初值
工作方式0和工作方式1的最大特点就是计数溢出后,计数器为 全0,因而循环定时或循环计数应用时就存在反复设置初值的问 题,这给程序设计带来许多不便,同时也会影响计时精度。
定时/计数器的应用
生产线上产品计数。每个产品通过得到一个脉冲信号, 计数器记录脉冲个数,当计数值与设定值相等,启动包装 机器。
检测转速。电机转动一圈发出一个脉冲,计数器记录一
秒时间内脉冲个数,显示转速。
定时/计数器的作用:
(1)获取一定的时间间隔信号(即定时),或
对外部的脉冲个数进行计数。采用专用的硬件定时
•
对外部脉冲进行计数,计数值根据要求确定。X:初值,N: 计数器位数,则 N
X 2 计数值
2
定时器/计数器的4种工作方式
SFR: 定时器方式寄存器TMOD
TMOD用于定义工作方式以及操作方式。其格式为:
高位 TMOD
GATE C/T M1 M0 GATE C/T M1
低位
M0
定时/计数器1
/计数器(而不是用延时程序来获得定时),减轻 了CPU的负担。 (2)定时和计数的本质是一样的。当计数器所 计的脉冲是频率不变的信号时,通过计数值就可以 知道时间长短,这时计数器就成了定时器。
MCS51单片机的定时/计数器资源
有2个(8052有3个)16位的定时/计数器,均为加1计数; 4种工作方式(16位/13位/8位/波特率),由TMOD控 制寄存器中的M1、M0位来控制 两个SFR:TMOD定义工作方式,TCON控制有关功 能 定时器的实质为对MCU片内机器周期计数,而计数器 对芯片外部引脚T0、T1上的脉冲信号个数计数。
4)方式3 (两个独立8位计数器,仅限T0)
TH0、TL0 被拆作于不 同用途
定时 器模 式 独立!
在工作方式3模式下,定时/计数器0被拆成两个独立的8位计数器TL0和 TH0。其中TL0既可以作计数器使用,也可以作为定时器使用,定时/计 数器0的各控制位和引脚信号全归它使用。其功能和操作与方式0或方式 1完全相同。 TH0就没有那么多“资源”可利用了,只能作为简单的内部定时器使用, 而且由于定时/计数器0的控制位已被TL0占用,因此只能借用定时/计数 器1的控制位TR1和TF1,也就是以计数溢出去置位TF1,TR1则负责控 制TH0定时的启动和停止。 由于TL0既能作定时器也能作计数器使用,而TH0只能作定时器使用而 不能作计数器使用,因此在方式3模式下,定时/计数器0可以构成二个 定时器或者一个定时器和一个计数器。 T0工作于方式3时,T1的工作方式就不可避免受到一定的限制,因为 自己的一些控制位已被定时/计数器0借用,只能工作在方式0、方式1或 方式2下,不同的是定时/计数器1不能使用溢出标志和中断!
定时/计数器的工作原理
定时 / 计数器中的核心部件为可预置初值计数器。预 置初值后开始计数,直至计数值归 0 或产生溢出,可申 请中断。 计数器有加 1 计数或减1计数两种形式。
内部时钟脉冲 (定时)
K1
K2 计数脉冲 可预置初值计数器
溢出信号 中断 请求
外部输入脉冲
(计数)
功能
选择
启动 控制
(1)T1工作在方式0
(2)T1工作在方式1
振荡器
1/12
C/T=0 C/T=1
TL1 TH1 (8位) (8位)
串行口
T1(P3.5)
(3)T1工作在方式2
(3) 定时/计数器的初始化
由于定时/计数器是可编程的,因此在进行定时或计数之前要把程 序进行初始化。初始化一般包括以下几个步骤: S1.确定工作方式—TMOD寄存器赋值。 S2.置定时/计数器的初值—直接将初值写入寄存器TH0、TL0和 TH1、TL1。 S3.根据需要,开放中断—对寄存器IE置初值。 S4.启动—使TCON寄存器中的TR1或TR0置位,置位后,加1计 数器按规定的工作方式和初值开始计数。 初值N的计算可以通过下式求得: 计数方式:N=M-计数值 定时方式时:N=M-定时值×(fosc/12)。 其中:M为加1计数器的最大值(在不同的工作方式中,M可以为 213、216或28),fosc为振荡器频率(即主振频率)。
2)定时器控制寄存器TCON
SETB TR0;启动 定时器0
软件控制
用于外部中断(中 断系统中已介绍)
使用中断方式,作为中断请求标志位, 进入中断服务程序后硬件自动清零
3)定时器初值的确定? 加法计数器是计满溢出时才申请中断, 所以在给 定时器/计数器赋初值时, 不能直接输入所需的计数值, 而应输入的是计数器计数的最大值与这一计数值的 差值, 设最大值为 M, 初值为 X, 则 X的计算方法如 下:
当定时/计数器工作于定时功能且选为方式0时,应 按照定时的时间选择一个时间常数作为计数器的初值, 需要连续定时时,应在每次溢出产生中断后,在程序 (ISR)中为TL和TH 装入初值。
方式0的计数长度M为2的13次方。初值也是13位二进 制数,但要注意是高8位赋值给THx,低5位前面补足 3 个 0 凑成 8 位赋给TLx。 举例:如要求T0的计数值为1000,则初值为 x=M-1000=8192-1000 =1C18H=1 1100 0001 1000B 则赋初值时, TH0= 1 1100 000B=0E0H, TL0= 0001 1000B =18H。
D0
M0
T1
T0
C/T:定时/计数器功能选择位。 1:计数器功能(对外部脉冲即负跳变计数,允许的最高计数 频率为晶振频率的1/24); 0:定时器功能 GATE:门控制位,用于控制定时/计数器的(启动×)计数是否 受外部中断输入引脚(INT0、INT1脚)电平的影响。 GATE=0,与外部中断无关,以运行控制位TRX来启动; GATE=1,只有在没有外部中断请求信号情况下(即外部中断 引脚INTx=1),才允许计数。 M1、M0:工作方式选择
单片机与控制技术
电气学院:王欣
第6章:MCS-51的定时器/计数器
RE:
硬件编程结构及引脚[已介绍] CPU主要部件与特殊功能寄存器(SFR)[已介绍] 片内外存储器的组织结构和编址[已介绍] 并行I/O口[已介绍] 中断及中断系统[已介绍] 定时/计数器(外设) 【本次课内容!】 串行口(外设)
计数状态: X=M-计数值
定时状态: X=M-定时时间/Tcy 而 Tcy=12÷
•
每一种工作方式对应的最大计数值:
方式0 方式1 方式2 13位计数器 16位计数器 8位计数器
方式3
•
8位计数器
213 8192 216 65536 28 256 28 256
定时初值: 对机器周期进行计数。T:定时时间,X:初值,N:计数 器位数,f osc:系统时钟(晶振)频率,则: 12 N (2 X ) T f osc X 2N fosc /12 T 计数初值:
工作方式2就针对这个问题而设置,它具有自动重装载功能,即自 动加载计数初值,所以也称为自动重加载工作方式。 在这种工作方式中,16位计数器分为两部分,即以TL0为计数器, 以TH0作为预置寄存器,初始化时把计数初值分别加载至TL0和 TH0中,当计数溢出时,不再象方式0和方式1那样需要“人工干 预”,由软件重新赋值,而是由预置寄存器TH以硬件方法自动给 计数器TL0重新加载。源自1定时/计数器的结构
T1
T0
TF1
TF0
设定4种工作状态
图6-1 MCS-51定时器/计数器逻辑结构框图
51系列单片机中有两个特殊功能寄存器(TMOD/TCON),用于 定义定时/计数器的工作方式和控制定时/计数器的有关功能.
1)定时器方式寄存器TMOD(只能按字节地址访问!) TMOD用于定义工作方式以及操作方式。其格式为:
计数初值
说明: ①当用作定时器功能时,加1计数器每经过一个机器周 期的时间加1 ,所以定时器可看作计算机器周期的计数器。 由于每个机器周期包含12个振荡信号周期,所以加1计数 器的计数脉冲频率为振荡器信号的1/12,当振荡器频率为 6MHz时计数脉冲的最高频率为500KHz,或周期为2µs。