第六章 定时器计数器
单片机讲义1(第六章定时器计数器)
脚与T0的逻辑关系框图如下图所示。
定时器/计数器T0分为2 个独立的8位计数器:TL0和 TH0。 TL0使用T0的状态控制位 C/ T GATE、TR0、 INT0 ,而TH0被 固定为1个8位定时器(不能 为外部计数模式),并使用 定时器T1的状态控制位TR1 和TF1,同时占用定时器T1 的中断请求源TF1。
6.2.2 方式1
6.2.3 方式 2
6.2.4 方式 3
在方式3下,T1只作 波特率发生器。在这样 情况下,T1将TF1、TR1 资源出借给T0使用。因 此,在方式3下,T0可以 构成两个独立的计数器 结构,如图6-6(a)和 图6-6(b)所示。
TL0构成一个完整的8 位定时器/计数器,而 TH0则是一个仅能对 fOSC/12脉冲计数的8位 定时器。
(l)计算初值 初值的计算公式为: X 2 n
设:需要装入T0的初值为X,则有:
t f
osc
12
16
其中:n=13、16、8 (由计数器的的工作方 式来决定n 的取值)
∵X= 2
n
t . f osc 现 n 16 12
t 1 ms
f osc 6 M Hz
∴X= 2
∵ X= 2
n
t . f osc 12
现 n 16 f osc 6 M Hz t 100 ms
所以:X=15 536=3CB0H 因此:TH0=3CH, TL0=B0H
(3)10次计数的实现 对于中断10次计数,可使T0工作在定时方式,采用循环程序的方法实现。 (4)程序设计 ORG 0000H RESET:LJMP MAIN ;上电,转主程序入口MAIN 0RG 000BH ;T0的中断入口地址 LJMP IT0P ;转T0中断处理程序ITOP ORG 1000H MAIN: MOV SP,#60H ;设堆栈指针 M0V B,#0AH ;设循环次数10次
单片机原理及应用 第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 同。
单片机第六章定时器
这种方式下,计数寄存器由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输出一个低电平脉冲信号(简化的打包 操作)。
第6章1 定时器和计数器PPT课件
那么计数器是如何作为定时器来用的呢?
一个闹钟,定时在 1个小时后闹响,换言之,也 可以说是秒针走了( 3600 )次,所以时间就转化 为秒针走的次数的,也就是计数的次数了,那么它们 的关系是什么呢?那就是秒针每一次走动的时间正好 是1秒。所以,只要计数脉冲的间隔相等,则计数值 就代表了时间的流逝 。
(3)计数初值寄存器
TH0
TL0
T0计数初值寄存器
TH1
TL1
T1计数初值寄存器
6.3 定时/计数器的工作方式 (1) 方式1 M0 M1为01——16位定时/计数器
震荡器
12
T1(P3.5)脚
TR1 GATE
C/T=0 C/T=1
1 2
K
控 制
3
TL1 TH1 (8位) (8位)
TF1
中断
INT1脚
main ()
{
TMOD = 0x01; //设置T0定时方式1(0000 0001B)
TR0=1;
//启动T0
for(;;){
TH0 = 0xfc; //装载计数初值
TL0 = 0x18;
do{ } while(!TF0); //等待TF0溢出
P1_0 =!P1_0; //定时时间到P1.0反相
TF0 = 0;
注意:方式0的TL0高3位未用,可填0 ,因此
a= 0110 0011 0001 1000 = 6318H
6
3
1
8H
01 10 0 0 1 1 0001 1 0 00
TH0
TL0
编程时将此初值装载到Tx中,例如: TH0 = 0x63; TL0 = 0x18;
(4)方式3
TH0+TF1+TR1组成的8位定时器 TL0+TF0+TR0组成的8位定时/计数器 T1组成的无中断功能的定时器 特点:方式3下T0可有2个具有中断功能的8位定时器 在定时器T0用作方式3时,T1仍可设置为方式0~2。
第6章 单片机的定时器计数器
T0(P 3.4)
T0 (8CH) (8AH)
TH0(8位) TL0 (8位)
7 0 7 0
T1 (8DH) (8BH)
TH1(8位) TL1 (8位)
7
0
7
0
CPU
溢 启 出 动 溢 出
启 动
工作方式 TMOD(89H)
工 作 方 式
TCON(88H)
定时/计数器逻辑结构
T0
2个16位T/C分别由8位计数器TH0、TL0、 TH1、TL1组成 “+1” 计数器 T1 控制寄存器TCON:控制T/C的启停、中断等
第6章 单片机的定时器/计数器
6.1 定时/计数器的结构与工作原理
6.2 定时器/计数器的控制
6.3 定时/计数器的工作方式
6.4 定时/计数器的编程和应用
实现定时一般有三种方法: 利用软件实现(延时程序); 优点:简单,控制方便;缺点:CPU效率低。 硬件实现,专门设计一个单稳态定时器: 优点:CPU效率高;缺点:修改参数麻烦。 利用计数器实现 1us 输入脉冲 计算机一般利用第三种方法实现 8位 计数器 预置数 256us 溢出
控制T0
GATE C/T M1 M0 0 0 0 1
查 询 方 式
#include <reg51.h> sbit P1_0=P1^0; void main (void) { TMOD=0x01; //定时器0方式1 TR0=1; for( ; ; ) { TH0=(65536-1000)/256; //置计数初值 TL0=(65536-1000)%256; while(!TF0); //查询等待TF0复位 P1_0=!P1_0; //定时时间到P1.0反相 TF0=0; //软件清TF0 } }
电气控制与S7-300 PLC编程技术第6章 定时器计数器指令
定时器是PLC的重要编程元件,它的作用与继电器控制线 路中的时间继电器基本相似,用于实现或监控时间序列。
定时器是一种由位和字组成的复合单元,定时器的触点
由位表示,其定时时间值存储在字存储器中。
在CPU的存储器中留出了定时器区域,该区域用于存储 定时器的定时时间值。每个定时器为2 B,称为定时字。 在S7-300中,定时器区为512 B,因此最多允许使用256个 定时器。定时器地址:T<地址号>,如T1…
时 基 10 ms 100 ms 1s 10s
时基的二进制 分辨率 代码 0 0 0 1 1 0 1 1 0.01 s 0.1 s 1s 10 s
定 时 范 围 10MS 至 9S_990MS 100MS 至 1M_39S_900MS 1S 至 16M_39S 10S 至 2H_46M_30S
例:定时值-127s。
取值范围为1~999。 – L S5T#aH_bbM_ccS_dddMS :S5时间表示法
S5中的时间表示法装入定时数值, a:小时,bb:分钟,cc: 秒,ddd:毫秒,范围:10MS到2H_46M_30S;此时,时基是自 动选择的,原则是根据定时时间选择能满足定时范围要求的 最小时基。
• S7-300提供了5种形式的定时器:
• S7中定时时间由时基和定时值两部分组成 ,定时时间等于时基与 定时值的乘积。当定时器运行时,定时值不断减 1,直至减到0,
减到0表示定时时间到。定时时间到后会引起定时器触点的动作。
0,01s <-0,1s <-1s <-10s <--
0 0 1 1
0 1 0 1
时间值: 0 . . . 999
– S_PULSE脉冲定时器SP。
定时器计数器讲解
TR1位(或TR0位)=1,启动定时器工作的必要条件。 TR1位(或TR0位)=0,停止定时器工作。 该位可由软件置“1”或清“0”。
10
6.2 定时器/计数器的4种工作方式 4种工作方式分别介绍如下。
6.2.1 方式0 当M1、M0为00时,定时器/计数器被设置为工作方式0,
这时定时器/计数器的等效逻辑结构框图如图6-4所示(以定 时器/计数器T1为例,TMOD.5、TMOD.4 = 00)。
(1)GATE=0时,A点(见图6-4)电位恒为1,B点电位仅 取决于TRx状态。TRx = 1,B点为高电平,控制端控制电子 开关闭合,允许T1(或T0)对脉冲计数。TRx = 0,B点为低 电平,电子开关断开,禁止T1(或T0)计数。
(2)GATE=1时,B点电位由INTX*(x = 0,1)的输入电 平和TRx的状态两个条件来定。当TRx=1,且INTX*=1时,B 点才为1,控制端控制电子开关闭合,允许T1(或T0)计数。 故这种情况下计数器是否计数是由TRx和INTX*两个条件来共 同控制。
图6-1 AT89S51单片机的定时器/计数器结构框图
4
只不过计数信号的来源不同。 计数器模式是对加在T0(P3.4)和T1(P3.5)两个引脚上
的外部脉冲进行计数(见图6-1) 定时器模式是对单片机的系统时钟信号经片内12分频后的
内部脉冲信号(机器周期)计数。由于时钟频率是定值,所 以可根据对内部脉冲信号的计数值可计算出定时时间。
本例由于采用定时器T0中断,因此需将IE寄存器中的EA、 ET0位置1。 (4)启动和停止定时器T0
单片机原理及其接口技术--第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
过实时计算求得对应的转速。
主目录 上一页 下一页 结 束
单片机原理及其接口技术 对于定时/计数器来说,不管是独立的定时器芯片还是单
接口技术06定时器计数器8253-5
0
0
0
1
1
0
传送方式
写入计数器0的初始值 写入计数器1的初始值 写入计数器2的初始值 写入控制寄存器控制字
读自计数器0的OL 读自计数器1的OL 读自计数器2的OL
五、8253 的控制字格式:
D7
D6
D5
D4
D3
D2
D1 D0
SC1 SC0 RW1 RW0 M2
M1
M0 BCD
计数器选 择
工作方式
计数初值开始工作,见图6.5所示③。21组1
CLK
WR ① GATE
OUT
n=4
43
0 21
②
GATE OUT
0
4
4321
WR ③
n=3
GATE
OUT2 工作在1方式,进行8位二进制计数, 并设计 数 初值的低8位为BYTEL。
其初始化程序段为
MOV DX,307H
计数器:
在时钟信号作用下,进行减“1”计数,计数次数到 (减“1”计数回零),从输出端输出一个脉冲信号。
计数举例: •①对零件和产品的计数; •②对大桥和高速公路上车流量的统计,等等。
Intel8253在微机系统中可用作定时器和计数 器。定时时间与计数次数是由用户事 先设定。
2、 8253 定时与计数器与CPU的关系 8253 定时与计数操作过程与CPU相互独立,
计数器 2
GATE2 OUT2
定时器/计数器的内部结构:
①数据总线缓冲器。它是一个三态、双向 8位寄存器,用于将8253与系统数据总线 D0~D7 相连。 ②读/写逻辑。 ③控制命令寄存器。它接受CPU送来的控 制字。 ④计数器。8253有3个独立的计数器(计 数通道),其内部结构完全相同,
第六章定时器及应用
定时时间为: t=计数值×机器周期 =(216-T0初值)×振荡周期×12
(二)模式 1 工作特点
当C/ T =1时,T0对外部输入计数。计数长度为: L=(216-T0初值)(个外部脉冲)
T 1初 值 2 16
T 1初 值 2
16
20ms
t
振 荡 周 期 12
10m s 1 12 6 6 10
T 1初值 60536 EC78H
∴(TH1)=ECH,(TL1)=78H
解:2)确定工作模式寄存器TMOD的值 ∵ 定时器T1工作于模式1的定时器工作方式, ∴ 高四位: GATE=0,C/T=0,M1M0=01 ,低四位:取0。 ∴ (TMOD)=0001 0000 B = 10H
因此:(TL0)=0B0H
(TH0)=3CH
源程序清单(使发光二极管闪烁,每1S闪烁1次) #include<at89x51.h> unsigned char temp=5; main() void timer_0( )interrupt 1 { { TMOD=0x01; TH0=0X3C; TL0=0XB0; TH0=0X3C; temp--; TL0=0XB0; if(temp==0) ET0=1; { EA=1; temp=5; TR0=1; P1_0=~P1_0; P1_0=1; } while(1); } }
3)编程(定时器溢出中断方式) #include <at89x51.h> 思考:设定时器T0用于定 void main() { 时10ms,晶振为6MHz。 TMOD=0x10; 编程实现:P1.0输出周期 TH1=0xec; TL1=0x78; 为40ms,高电平宽为10ms, ET1=1; EA=1; TR1=1; 低电平宽为30ms的矩形波。 P1_1=1; 如何编程? while(1); } void timer_1() interrupt 3 { TH1=0xec; TL1=0x78; P1_1=~P1_1; }
第6章 定时器计数器
期间,计数器加1。由于确认一次负跳变要花 个机器周期, 确认一次负跳变要花2个机器周期 确认一次负跳变要花 因此外部输入的计数脉冲的最高频率为系统振荡器频率的 外部输入的计数脉冲的最高频率为系统振荡器频率的 外部输入的计数脉冲的最高频率 1/24。 例如,选用6MHz频率的晶体,允许输入的脉冲频率最高为 250kHz。如果选用12MHz频率的晶体,则可输入最高频 率为500kHz的外部脉冲。 对于外部输入信号的占空比并没有什么限制,但为了确保某 占空比并没有什么限制 占空比并没有什么限制 一给定电平在变化之前能被采样一次,则这一电平至少要 至少要 保持一个机器周期。 保持一个机器周期
T 、GATE、TR0、
22
TF0 ,而TH0被固定为一个 位定时器 固定为一个8位定时器 固定为一个 位定时器(不能作为外部计数 模式),并使用定时器T1的状态控制位TR1和TF1,同时 占用定时器T1的中断请求源TF1。 2.T0工作在方式 时T1的各种工作方式 . 工作在方式 工作在方式3时 的各种工作方式 一般情况下,当T1用作串行口的波特率发生器时,T0才工 当 用作串行口的波特率发生器时 用作串行口的波特率发生器时, 才工 作在方式3。 作在方式 。T0处于工作方式3时,T1可定为方式0、方式 1和方式2,用来作为串行口的波特率发生器,或不需要中 断的场合。
18
定时器/计数器的方式 为自动恢复初值 方式2为自动恢复初值 方式 为自动恢复初值(初值自动装入)的 8位定时器/计数器 位定时器 计数器 计数器。 TLx(x = 0,1)作为常数缓冲器,当TLx计数溢出时,在溢出 自动将THx中的初值送至 中的初值送至TLx, 标志TFx置“1”的同时,还自动将 自动将 中的初值送至 使TLx从初值开始重新计数。定时器/计数器的方式2工作 过程如图6-7所示。
单片机定时器,计数器
第六章定时器/计数器第一节概述8051内部提供两个十六位的定时器/计数器T0和T1,它们既可以用作硬件定时,也可以对外部脉冲计数。
1.计数功能:所谓计数功能是指对外部脉冲进行计数。
外部事件的发生以输入脉冲下降沿有效,从单片机芯片T0(P3.4)和T1(P3.5)两个引脚输入,最高计数脉冲频率为晶振频率的1/24。
2.定时功能:以定时方式工作时,每个机器周期使计数器加1,由于一个机器周期等于12个振荡脉冲周期,因此如单片机采用12MHz晶振,则计数频率为12MHz/12=1MHz。
即每微秒计数器加1。
这样就可以根据计数器中设置的初值计算出定时时间。
第二节定时器/计数器的基本结构、工作方式及应用一、定时器/计数器基本结构定时器/计数器的基本结构如图6-1。
T0由TH0和TL0两个八位二进制加法计数器组成十六位二进制加法计数器;T1由TH1和TL1两个八位二进制加法计数器组成十六位二进制加法计数器。
图6-1 定时器/计数器基本组成110二、定时器/计数器控制寄存器1.定时器方式控制寄存器TMOD定时器方式控制寄存器地址89H,不可位寻址。
TMOD寄存器中高4位定义T1,低4位定义T0。
其中M1,M0用来确定所选工作方式如表6—1:定时/计数器T1 定时/计数器T0111定时器控制寄存器TCON地址88H,可以位寻址,TCON主要用于控制定时器的操作及中断控制。
有关中断内容在第四章已说明。
此处只对定时控制功能加以介绍。
表6—2给出了TCON有关控制位功能:系统复位时,TMOD和TCON寄存器的每一位都清零。
112113三、工作方式及应用用户可通过编程对专用寄存器TMOD 中的M1,M0位的设置,选择四种操作方式。
(一)方式0(以T0为例)在此方式中,定时寄存器由TH0的8位和TL0的5位(其余位不用)组成一个13位计数器。
当GATE=0时,只要TCON 中的TR0为1,13位计数器就开始计;当GATE=1以及TR0=1时,13位计数器是否计数取决于INT0引脚信号,当INT0由0变1时开始计数,当INT0由1变为0时停止计数。
第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, 以便增加一个定时器。
单片机原理及应用教程c语言版第6章mcs51单片机的定时器计数器
方波周期T
定时时间t:
周期为1000µs的方波要求 t =周期/2 = 1000/2 = 500(µs)
定时时间t
对应计数值:N = t/机器周期 = 500/1 = 500
N=500>256,所以选择模式1。
模式字:
TMOD=0000 0001B = 0x01 (3)计算初值X
X = 65536 – N = 65036 = 0xfe0c
6.1.2 MCS-51单片机定时器/计数器的工作原理
• 控制信号TRx=1时,定时器启动。 • 当定时器由全1加到全0时计满溢出,TFx=1,
向CPU申请中断;同时,定时器从0开始继续 计数。
6.2 定时器/计数器T0、T1
主要内容
6.2.1 T0、T1的特殊功能寄存器 6.2.2 T0、T1的工作模式 6.2.3 T0、T1的使用方法
计数信号由片内振荡电路提供,振荡脉冲n分 频送给计数器,每个机器周期计数器值增1。 • C/T =1 ,为计数器
计数信号由Tx引脚、和P1.0)输入,每输入一有 效信号,相应的计数器中的内容进行加1
计数器的最高计数频率为:fosc/24 1)每1个输入脉冲的下降沿使计数器计1个数 2)每1个机器周期对引脚采样1次,当上1个机器 周期采样为高、本机器周期采样为低为1个下降沿。
6.2.2 T0、T1的工作模式
信号源
振荡器 12分频 C/T=0
0
T0(P3.4)
TR0 GATE (P3.2)
C/T=1 1
& +
运行控制
TL0 TH0 (8位) (8位)
计数器
TF0 中断
溢出中断
图6-6 T0模式1原理结构
6.2.2 T0、T1的工作模式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
T1脚(P3.5) TR1
GATE /INT1脚
+
A
TH1
5
•模式3(M1M0=1 1)仅限于T0
TL0和TH0为两个独立的8位计数器。
振荡器
12
C/T=0 C/T=1 控制器 B
(8位) TL0 TF0 中断
T0脚(P3.4) TR0 GATE
A
/INT0
振荡器
+ 12
TR1
TH0 TF1
中断
IT1——外部中断1触发控制位。0为电平触发,低有效。1为边沿触发,下 降沿有效。
IE0,IT0——外部中断0请求标志(/INT0,P3.2)和触发控制位。
3Hale Waihona Puke 注意:计数器为增1计数器。
(四)、定时器/计数器的工作模式(T1)
• 模式0:(M1 M0=0 0) 13位计数器方式
振荡器
12
(5位) (8位) C/T=0 C/T=1
ORG 000BH LJMP TINT ORG 0300H TINT: CPL P0.7 MOV TH0,#0F0H MOV TL0,#0CH MOV IE,#82H RETI
12
第六章
单片机内部定时器/计数器
P3.5(T1) P3.4(T0)
(一)、结构
TH1(8D)
TL1(8B)
TH0(8C)
TL0(8A)
CPU
TCON(88) TMOD(89)
1
(二)、定时器工作方式控制寄存器TMOD
• 方式字(TMOD)
D7
D6
D5
M1
D4
M0
D3
GATE0
D2
C/T0
D1
M1
D0
T1脚(P3.5) TR1 GATE /INT1脚
TL1 TH1 控制器 B
TF1
中断
+
A
4
•模式1
(M1 M0=0 1) 16位计数器方式
结构图同模式0,TL1和 TH1都是8位
• 模式2(M1 M0=1 0)自动恢复初值的8位计数器
振荡器
12
C/T=0
C/T=1 控制器 B
(8位)
中断
TL1 TF1
8
例题一:使用T0定时,使得由P0.7输出周 期为2ms的方波。设单片机时钟为6MHz。 使用方式0和方式1分别实现。请编制程 序。 分析:2ms的方波,即1ms高电位,1ms低 电位。可以这样实现:定时1ms中断一次, 在中断中使得P0.7状态反相。
9
1)计算定时器初值X。 定时器计数脉冲周期是时钟的12倍。计时 1ms需要计数1000/2=500个脉冲。即 N=500。 若用方式0,13位计数器,则有: X= 213 — 500 = 8192—500 = 7692 换算成16进制数为1E0CH 用高八位和低五位表示(TH0、TL0): F00CH
10
2)编制初始化程序: T0工作在方式0,方式控制字为00H, TH0=F0H,TL0=0CH 编程: ORG 0200H
MOV TMOD,#00H MOV TH0,#0F0H MOV TL0,#0CH MOV IE,#82H SETB TR0 WAIT:SJMP WAIT
11
3)编制中断程序:
M0
GATE1 C/T1
• 方式选择
M1 0 M0 0 功 能 说 明 方式0,为13位定时/计数器,TH8位,TL低5位。
0
1 1
1
0 1
方式1,为16位定时/计数器。
方式2,为常数自动重新装入的8位定时/计数器。 方式3,仅适用于T0,分为两个8位计数器,对T1停
止计数。
2
(三)、定时器/计数器控制寄存器TCON
• 字节地址为88H(TCON) D7
TF1
D6
TR1
D5
TF0
D4
TR0
D3
IE1
D2
IT1
D1
IE0
D0
IT0
TF1,TF0——定时器的溢出标志位。最高位产生溢出时置1,并请求中断。 用于标志T0和T1计数器是否产生了溢出中断请求。 TR1,TR0——定时器的运行控制位1允许计数,0停止计数。
IE1——外部中断1请求标志(/INT1,P3.3)(测到低电平或高低脉冲,则 认为中断请求有效。
6
(五)、定时器工作举例
• 定时器编程流程: 1、确定工作模式,确定工作方式控制字(TMOD) 。 2、确定计数或定时值,计算计数初值(TL和TH 值)。 3、确定中断优先级和中断控制字。 4、用MOV指令将有关控制字和参数写入相关的寄存 器中。 用以启停T/C的运行。
7
计数初值的计算
计数器以增一的方式计数,溢出时申请中断。 1、根据定时值计算出所需要的计数时钟周期数N。 t=Tc*N N=t /Tc Tc——计数时钟周期=振荡周期X12 2、根据选择的工作方式,计算计数器溢出所需的计数初值X 13 方式0:(13位)X= 2 — N 16 方式1:(16位)X= 2 — N 8 方式2:(8位) X= 2 — N n 定时时间=振荡周期*12*( 2 — X) n n X= 2 — t/(Tc*12)= 2 — t * f /12 3、将X化为16进制数装入TH和TL中