第4章 MCS51单片机定时_计数器.ppt.Convertor
51单片机定时器 66页PPT文档
当且仅当TRx=1且INTx=1(高电平)时,计数启动; 否则,计数停止。
返回
27
5.3 定时器的工作方式——方式1
5.3.2 方式1
M1、M0=01,为16位的计数器,除位数外,其他与方式0相同。
缺点: 只有8位计数器,定时时间短、计数范 围小。其定时时间为: (28-初值)×振荡周期×12
若晶振频率为12MHz,则最长的定时时间为 (28-0)×(1/12)×12us=0.256ms
方式2工作过程图 (x=0, 1) 。
30
5.3 定时器的工作方式——方式3
5.3.4 方式3 只适用于定时器/计数器T0。T1不能工作在方式3。 如果将T1置为方式3,则相当于TR1=0,停止计数 (此时T1 可用来作串行口波特率产生器) 。
5.3.1 方式0 5.3.2 方式1 5.3.3 方式2 5.3.4 方式3
5.4 定时器的编程和应用
5
第5章 定时器/计数器及其应用
5.1 定时器的结构及工作原理
6
5.1 定时器的结构及工作原理
8051
内 部 结定 构时 框器 图
组成:两个16位的定时器T0和T1,以及他们的工作方式寄存器 TMOD和控制寄存器TCON等组成。内部通过总线与CPU相连。
当TL1的低5位计数溢出时,向TH1进位。而TH1计 数溢出时,则向中断标志位TF1进位(即硬件将TF1 置1),并请求中断。
可通过查询TF1是否置“1”或考察中断是否发生来判 定定时器T1的操作完成与否。
25
5.3 定时器的工作方式——方式0
51单片机 定时器与计数器课件
(2) 方式1
M1M0=01工作原理
16位的定时计数器,由TH1的8位和TL1的8位组成 (以T1为例,T0原理相同) 震荡器 T1(P 3.5) TR1 GATE INT1 ÷12
C/T=0 C/T=1 1 K TL1 TH1 8位 8位 控制 16位计数器 TF1 中 断
定时/计数器方式1逻辑图
;设置工作模式 ;T0送初值high(-1000) ;开放CPU中断 ;开放T0中断 ;启动计数器 ;等待计数器溢出中断
TH0,#0FCH ;T0送初值 TL0,#18H P1.0 ;P1.0取反产生方波
查询方式 ORG
AJMP ORG - MAIN:MOV SETB - LOOP:MOV MOV JNB CPL CLR SJMP END
定时/计数器的计数方向、初值计算及溢出处理
计数方向
- 加计数:每个脉冲计数器加1 - 减计数:每个脉冲计数器减1。
计数器的容量:
- 计数器有一定的计数范围(脉冲计数的最大个数),由 计数器的位宽度决定。
-
2n=X初值+要求(计数或定时) X初值= 2n —要求(计数或定时)
计数器的溢出:
定时计数的概念---假 如 有 一 个 水 容 器
一个定时/计数的形象实例
1000滴水刚好装满 问:还需滴入多少滴水才能将其 装满?
答:还需滴入500滴水才能将其 装满,501滴溢出。 这就是“计数” 初始时已经装入500滴水
这就是“计数初值”
问:如果每秒滴入1滴水,还需多 长时间才能将其装满? 这就是“定时” 答:还需500秒时间才能将其装 满,501秒溢出。
定时与计数的关系
定时/计数器:
对电脉冲进行计数的单元电路。 用计数器为周期性脉冲计数,产生定时。 定时和计数是同一个概念,本质上定时只是 计数的一个特例。
片机课件5MCS51单片机定时器计数器
定时器/计数器在外部事件(如电平变 化或脉冲信号)的驱动下,对外部事 件进行计数,当计数值达到预置值时 ,输出比较器输出信号。
定时器/计数器的计数范围
• 定时器/计数器的计数范围取决于其位数和时钟频率。例如,一个8位的定时器/计数器在1MHz的时钟频率下,其最大计数 值为255。
03
定时器/计数器的使用方 法
中断优先级和嵌套
根据实际需求设置中断优先级和嵌 套关系,以满足不同的应用需求。
04
定时器/计数器的应用实 例
定时器的应用实例
01
02
03
04
频率测量
利用定时器测量输入信号的频 率,如测量音频信号的频率。
时间间隔测量
利用定时器测量两个事件之间 的时间间隔,如测量按键按下
到松开的时间。
延时控制
利用定时器实现精确的延时控 制,如控制LED的闪烁频率。
利用计数器和定时器结合测量两个事 件之间的时间间隔,如测量按键按下 到松开的时间。
定时器/计数器的综合应用实例
01
02
03
电机控制
利用定时器和计数器实现 电机的速度控制和位置控 制,如步进电机或伺服电 机。
数字信号处理
利用定时器和计数器实现 数字信号的处理和分析, 如滤波、频谱分析等。
事件触发和计数
谢谢观看
定时器/计数器的初始化
初始化寄存器
启动定时器/计数器
在开始使用定时器/计数器之前,需要 先初始化其相关寄存器,包括设置工 作模式、预分频值、计数值等。
在完成初始化后,通过相应的控制位 启动定时器/计数器开始计数。
配置时钟源
选择合适的时钟源,如系统时钟或外 部时钟,以确保定时器/计数器正常工 作。
最新单片机原理MCS 51定时器计数器教学PPT
单片机原理MCS 51定时器计数器教学PPT 电子邮件:[电子邮件保护]电话:85191952地址:实验大楼B208,第6章MCS-51定时器/计数器,2,1-1定时器/计数器结构和工作模式,1-2定时器/计数器示例,3,1-1定时器/计数器结构和工作模式,定时器/计数器是MCS-51单片机的重要功能模块之一。
在检测、控制和智能仪器等应用中,定时器通常用作实时时钟,以实现定时检测、定时控制。
计时器也可以用来产生毫秒宽度的脉冲来驱动电机,如步进电机。
计数器主要用于计数外部事件。
在MCS-51单片机中有三个定时器/计数器T0、T1和T2。
本章主要介绍MCS-51结构、原理、工作模式及应用。
8051芯片上有两个16位定时器/计数器:定时器0 (T0)和定时器(T1)。
、5、、1、模式寄存器TMOD特殊功能寄存器TMOD是T0和T1的工作模式寄存器,其格式如下:TMOD的低4位T0的模式字段和高4位T1的模式字段具有相同的含义。
,6,7,定时和外部事件计数模式选择位C/T 0:定时模式。
1:外部计时法。
GATE 1:定时器计数由外部引脚输入电平0控制:定时器计数不受外部引脚输入电平控制。
,8,,2、控制寄存器TCON特殊功能寄存器TCON的高4位存储定时器的操作控制位和溢出标志位,低4位存储外部中断的触发模式控制位并锁存外部中断请求源。
TCON格式如下:定时器T0运行控制位TR0溢出标志位TF0定时器T1运行控制位TR1溢出标志位TF1,9,,3、定时器运行模式MCS-51的定时器T0有四种工作模式:模式0、模式1、模式2和模式3;定时器T1有三种工作模式:模式0、模式1、模式2。
10、模式0、模式0是一个13位计数器,由TL1的低5位和TH1的8位组成。
如果这个计数器加上一个计数器,从计算初始值到溢出的时间是:,11,例1:在某个时间写T0初始化程序1毫秒,12。
模式1、模式1和模式0之间的区别仅在于计数器中的位数不同。
MCS51定时计数器
求得X=8067
对应二进制X=0001111110000011。高8位放入TH1,即TH1=11111100=FCH;
低5位放入TL1,即TL1=00011=03H。
(2) 寄存器初始化
包括定时器初始化和中断系统初始化,主要对IP、IE、TCON、TMOD的相 应位进行正确的设置,并将时间常数送入定时器。本例中,IE、TCON、TMOD 均应初始化为00H。
C/T:定时/计数选择,由定时器工作方式特殊功能寄存器TMOD的位设置选择 C/T=0,T1为定时器,计数器对机器周期进行计数实现定时 C/T =1,T1为计数器,计数来自引脚T1的外部脉冲数
定时器/计数器是否启动受TR1、GATE和 /INT1 引脚的控制,GATE和TR1由定时器 工作方式控制寄存器TMOD和控制寄存TCON中相应的位状态确定。由图中的逻辑电路可 知:要启动定时/计数器,必须TR1=1,同时GATE=0或 /INT1 引脚=1。 通常设置GATE=0,用TR1的状态控制T1的工作。
5 – 3 定时/计数器的使用
一、定时器/计数器的初始化
初始化步骤 MCS-51内部定时器/计数器是可编程的,其工作方式和
工作过程均可由MCS-51通过程序对它进行设定和控制。 因此,MCS-51在定时器/计数器工作前必须先对它进行初 始化。初始化步骤为: (1) 根据题目要求先给定时器方式寄存器TMOD送一个方式控 制字,以设定定时器/计数器的相应工作方式。 (2) 根据实际需要给定时器/计数器选送定时器初值或计数器 初值,以确定需要定时的时间和需要计数的初值。 (3) 根据需要给中断允许寄存器IE选送中断控制字和给中断优 先级寄存器IP选送中断优先级字,以开放相应中断和设定 中断优先级。 (4) 给定时器控制寄存器TCON送命令字,以启动或禁止定时 器/计数器的运行。
MCS-51定时计数器的应用.
方案选择: (1)怎样实现较长时间的定时?
上一个实验已经讨论了单片机定时器的最大时间间 隔,采用定时器与计数器相结合的方法解决了较长时 间定时的问题
这里还可用另一种方法解决:用T1作定时器,用软件 对定时时间到计数,这样可节省一个定时器作其它用
如果设T1为定时方式0,定时间隔选为10ms,那么要想 达到2秒的定时,软件计数的次数应该是200次。
第四章 MCS-51定时/计数器的应用 定时/计数器是单片机应用中的重要部件,
其工作方式的灵活应用对提高编程技巧, 减轻CPU的负担和简化外围电路有很大益 处。本章通过两个实验说明定时/计数器的 基本用法,通过应用实例,使读者掌握定 时/计数器的软件设计技巧。
1
一、定时/计数器的基本用法
【实验1】利用T0定时,T1计数 二者复合的方法,实现较长 时间的定时间隔。 实验要求:如图所示,在 P1.7 端 接 有 一 个 发 光 二 极 管 , 要 利 用 定 时 控 制 使 LED 亮一秒停一秒,周而复始。
注意:T0与T1都是加1计数器,所以初值应按补码 计算。实际计算方法是:假定初值为X,若定时间隔 100ms,应该有
(216-X) ·2μ S=100ms ∴x=15536=3CB0H 3CH装入TH0,B0H装入TL0 T1 计 数 器 在 方 式 2 下 是 8 位 的 , 计 数 5 次 的 初 值 的 是 (256-5)=251=FBH,同时装入TH1与TL1。
=216·2μ S=131.07ms 3
而实验要求定时间隔为1秒,这三种方式都不能 满足。对于较长的定时间隔应采取复合的办法。 例如,可将T0设成定时间隔为100ms(只能用方式1), 当定时时间到,将P1.0的输出反相,再加到T1端作 计数脉冲,需要定时两次才构成一个完整的计数脉 冲,因此设T1计数5次,就能完成1秒的定时:
MCS51定时器计数器PPT课件
启动控制 B=TR1•A =TR1•(INT1+GATE )
GATE
TRx
INTx 启动情况
0
0
X
停止
0
1
X
启动定时/计数
1
0
X
停止
1
1
启动定时/计数
1
1
停止
其中: 1 表示高电平,0表示低电平,X表示任意状态
举例:利用GATE位测正脉冲的宽度
方式1
方式1是一个16为定时器/计数器,见图6-7。 方式1的结构几乎与方式0完全一样,唯一的差别是:方式1 中的TH1(TH0)和TL1(TL0) 均是8位的,构成16位计数器。
ห้องสมุดไป่ตู้
表示定时时间到 。
已达预期个数。
f=12MHz,
最高计数频率为振荡频率
一个机器周期是1 μs
的1/24。即计数周期=2机器
周期。
6.2.1 定时器/计数器的控制
定时器/计数器的工作由TCON和TMOD控制 由软件把控制字写入TCON和TMOD,用来设置T/C0和 T/C1的工作方式和控制功能。 当8051系统复位时,TCON和TMOD所有位都被清0。 一、工作模式寄存器TMOD(89H) TMOD用于控制T/C0和T/C1的工作模式,其各位的定义 格式如下:
MCS-51定时器/计数器
重点内容
1、定时/计数器结构特点及控制 2、定时/计数器及中断系统综合应用
6.2 MCS-51的定时器/计数器
在单片机实时应用系统中,需要定时和对外部事件计数的功能 。 定时:对周期已知的脉冲信号计数 计数:对外部事件计数,对周期未知的外来脉冲信号计数 定时方法:
采用软件延时占用CPU的时间,降低了CPU的使用效率; 定时或计数方法:
MCS-51终端系统教学课件PPT单片机中断定时器计数器
2.中断优先级寄存器IP ——中断优先级控制
•内部自然优先级: 入口地址
•
INT0 高 0003H
•
T0
000BH
•
INT1
0013H
•
T1
001BH
•
TI/RI 底 0023H
三、响应中断的条件及过程
中断处理过程一般分为三个阶段,即中断响应、中断处理和中断返回。
1.中断响应 (1)中断响应的条件
1)有中断源发出请求信号 2)中断是开放的(总允许、源允许) 3)没有封锁(受阻),受阻情况是:
①CPU正在执行同级或高一级的中断服务程序; ②现行机器周期不是正在执行的指令的最后一个机器周期,即现 行指令完成前.不响应任何中断请求; ③当前正在执行的是中断返回指令RETI或访问专用寄存器IE或IP 的指令。也就是说,在执行RETI或是访问IE、IP的指令后,至少需要 再执行—条其他指令,才会响应中断请求。
1.方式0
加1计数器为13位, 高8位溢出置位TF
定时器启、停控制
方式0下的逻辑结构图
方式0下工作时: (1)C/T=1为计数工作方式,计数脉冲由T1引脚输入。计数个 数
N=( 213—初值x)
(2)C/T=0为定时工作方式,计数脉冲为时钟频率fosc/12。
定时时间t=(213—初值x)*时钟周期*12 X = 213-定时时间t/时钟周期*12
注意:采用边沿触发的外部中断标志IE0或IEl和定时器中断标志TF0或 TFl,CPU响应中断后能用硬件自动情除。
但在电平触发时,IE0或IEl受外部引脚中断信号(或)的直接控制,CPU 无法控制IE0或IEl,需要另外考虑撤除中断请求信号的措施,如通过 外加硬件电路,并配合软件来解决;串行口中断请求标志TI和RI也不 能由硬件自动清除,需要在中断服务程序中,用软件来清除相应的中 断请求标志 。
MCS-51单片机的定时、计数器
M1 0 0
M0 0 1
工作方式 0 1
方式说明 13位定时器/计数器 16位定时器/计数器 具有自动重装初值的8位定时器 /计数器
1
1
0
1
2
3
3.定时器/计数器控制寄存器TCON TCON控制寄存器各位定义如下:
D7
TCON
TF1
D6
TR1
D5
TF0
D4
TR0
D3
IE1
D2
IT1
D1
IE0
D0
IT0 字节 地址 88H
计数器的高8位和低8位。
作计数器用时,加法计数器对芯片引脚T0(P3.4)或T1(P3.5)
上的输入脉冲计数。每输入一个脉冲,加法计数器增加1。加法
计数溢出时可向CPU发出中断请求信号。
作定时器用时,加法计数器对内部机器周期脉冲Tcy计数。 由于机器周期是定值,所以对Tcy的计数就是定时,如Tcy=1 μs,计数值100,相当于定时100 μs。 加法计数器的初值可以由程序设定,设置的初值不同,计 数值或定时时间就不同。在定时器/计数器的工作过程中,加 法计数器的内容可用程序读回CPU。
≥1 S TH1 (8 位 ) TF 1
1
图 2 .1 6 定 时 器 / 计 数 器 方 式 3 的 逻 辑 结 构
图2.16 定时器/计数器方式3的逻辑结构
ELSE:
;此处可写定时1分钟到后的处理程序
AJMP REPEAT ORG 001BH SETB F0 RETI ;定时器/计数器T1的中断服务程序入口地址 ;建立定时1分钟到的用户标志
用定时器控制信号灯
问题的提出 ① “MOV TMOD,#01H”指令是将01H送 给寄存器TMOD,为什么是01H?
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第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,直到产生溢出为止。
4.2 定时/计数器的控制寄存器定时/计数器在开始使用前,必须设置相应的寄存器,以设定其工作方式等。
1. 定时/计数器的方式寄存器(TMOD)特殊功能寄存器TMOD中每位的定义如下图所示。
高4位用于定时/计数器1,低4位用于定时/计数器0。
特殊功能寄存器TMOD只能按字节寻址,不能按位寻址。
GA TE:门控位。
用来确定对应的外部中断请求引脚是否参与T0或T1的操作控制。
当GATE=0时,只要定时/计数器控制寄存器(TCON)中的TR0或TR1被置位时,T0或T1被允许开始计数;当GATE=1时,不仅要TCON中的TR0或TR1置位,还需要P3口的/INT0或/INT1脚为高电平,才允许开始计数。
后一种情况下一般用于测量外部脉冲的宽度。
定时器1定时器0: 定时器方式或计数器方式选择位。
时,为定时方式,其计数器输入为晶振的12分频,即对机器周期计数。
时,为计数方式,计数器的输入来自T0(P3.4)和T1(P3.5)端的外部脉冲。
2. 定时/计数器控制寄存器TCON特殊功能寄存器TCON用于控制定时器的操作及对定时器中断的控制。
特殊功能寄存器TCON既能按字节寻址(88H),又能按位寻址。
TF1:T1的溢出标志。
当T1计数溢出时由硬件则自动置1;在CPU响应中断处理时由硬件清0。
也可由程序查询后清零(非中断方式)。
TR1:T1的运行控制位。
该位置1或清0用来实现启动或停止定时/计数器。
TF0:T0的溢出标志;TR0:T0的运行控制位。
TMOD和TCON寄存器在复位时其每一位均清0。
TCON(88H)其各位定义如下图所示。
其中低4位与外部中断有关。
M1、M0 :定时/计数器的四种工作方式选择。
4.3 定时/计数器的工作方式1.方式0当M1M0设置为00时,定时/计数器选定为方式0工作。
在这种方式下,计数器由THx中的8位和TLx中的低5位组成长度为13位的计数器。
TLx中的高3位未用。
它的计数范围为0~8191(213=8192)。
这主要是与MCS-48系列单片机保持一致,满足兼容性。
当GATE=0时,只要TCON中的TRx为1,TLx和THx组成的13位计数器就开始计数;当GATE=1时,不仅要TCON中的TRx为1,还要/INTx引脚为1才能使计数器开始计数。
当13位计数器加到全1以后,再加1就产生溢出。
这时,置TCON的TFx位为1,同时把计数器变为全0。
若要定时/计数器继续按方式0工作,则应按要求重赋初始值。
2.方式1方式1和方式0的工作相同,唯一的差别是THx和TLx组成一个16位计数器。
它的计数范围为0~65535(216=65536)。
3.方式2方式2把TLx配置成一个可以自动装载计数初值(计数初值自动恢复)的8位计数器,THx 作为赋值寄存器。
THx由软件设置初值。
当TLx产生溢出时,CPU一方面使溢出标志TFx置1,同时把THx 中的8位数据重新装入TLx中。
方式2常用于精确定时控制和产生串行通信用的波特率。
但它的缺点是定时位数较少(最多只能定时256个周期)。
4.方式3方式3只适用于定时计数器T0。
T1不能工作在方式3,若将定时计数器T1定义成方式3,T1将停止工作。
方式3使MCS-51具有三个定时/计数器。
当T0定义为方式3时,将使TL0和TH0分成两个相互独立的8位计数器。
TL0可用于计数器也可用于计时器。
TH0只用作定时器。
由于TL0利用了T0本身的一些控制位,它的操作与方式0和方式1类似,可用于计数也可用于计时。
而TH0被规定为只用作定时器功能,对机器周期计数,并借用了T1的控制位TR1和TF1。
在这种情况下TH0占用了T1的中断。
此时T1还可以设置为方式0~2中的任意一种,用于任何不需要中断控制的场合,或用作串行口的波特率发生器。
通常,当T1用作串行口波特率发生器时,才将T0定义为方式3,以增加一个8位计数器。
4.4 定时/计数器的应用举例4.4.1计数初值的计算由于计数器是加1计数并在溢出时产生中断请求,因此不能直接将计数值直接置入计数器,而应送计数值的补码。
设计数器最大计数值为M,则不同的工作方式,最大计数值M不同。
方式0:M=213=8192方式1:M=216=65536方式2、3:M=28=256置入计数初值X的计算公式如下:1.计数器方式:X=M-计数值2.定时器方式:(M-X)×T=定时值故,X=M - 定时值/ T其中T为计数周期,是单片机时钟的12分频,即单片机机器周期。
当晶振为6 MHz时,T=2us,当晶振为12 MHz时,T=1us。
【例4-1】单片机晶振为12MHZ,要求T0产生500µs定时,计算计数初值X。
解:由于计数周期T=1µs,产生500µs定时,则需要“+1”计数500次,定时器方能产生溢出。
(1)如果采用方式0:X=213-500=7692=1E0CH但在方式0中TL0高三位不用,都设为“0”,则1E0CH应写成:这样,只要将0F0H装入TH1,0CH装入TL1即可。
(2)如果采用方式1:X=216-500=65036=FE0CH;只要将0FEH装入TH1,0CH装入TL1即可。
采用方式1时,装入计数初值的程序段如下:MOV TH1, 0FEHMOV TL1, 0CH4.4.2定时/计数器的初始化由于定时/计数器是可编程的,因此在定时或计数之前要用程序进行初始化,初始化一般有以下几个步骤:①确定工作方式----对方式寄存器TMOD赋值。
②预置定时或计数初值----直接将初值写入TH0、TL0或TH1、TL1中。
③根据需要对中断允许寄存器有关位赋值,以开放或禁止定时/计数器中断。
④启动定时/计数器,使TCON中的TR1或TR0置1,计数器即按确定的工作方式和初值开始计数或定时。
4.4.3应用举例1.定时器方式0的应用例4-2:设单片机主频为12 MHz,利用定时器T1定时,使P1.0输出周期为2ms的对称方波。
解:用P1.0输出方波,周期为2ms。
即每1ms改变一次电平,故定时值应为1ms,可作1000次“+1”运算,使T1作定时器工作在方式0。
即采用13位计数器。
定时初值:X=M-计数次数=213-1000=7192=1C18H。
由于TL1的高3位不用,1C18H写成1110,0000,0001,1000B=0E018H。
TH1 的初值为0E0H,TL1的初值为18H。
方式寄存器TMOD:部分程序如下:ORG 0000HMOV TMOD,#00H ;设置T1工作方式(3字节)MOV TH1,#0E0H ;计数初值送计数器(3字节)MOV TL1,#18H ;计数初值送计数器(3字节)SETB EA ;CPU开中断(2字节)SETB ET1 ;T1开中断(2字节)SETB TR1 ;启动T1(2字节)SJMP $ ;主程序部分,可在此写其它的程序(2字节);主程序共17Byte2.定时器方式1的应用例4-3:要求同例4-2,采用查询方式工作,查询标志位TF1。
解:若定时器T1采用方式1工作,即16位计数器,则定时初值:X = M - 计数初值= 216 –1000 = 64536 = 0FC18HTH1 的初值为0FC H,TL1的初值为18 H。
由于不采用中断方式,TF1置1后不会自动清0,因此要用指令使TF1清0。
部分程序如下:ORG 0000HMOV TMOD,#00H ;设置T1工作方式SETB TR1 ;启动T1LOOP:MOV TH0,#0 FCH ;装入T1的初值MOV TL0,#18H ;装入T1的初值JNB TF1,$ ;若TF1=0,则继续查询CPL P1.0 ;输出方波CLR TF1 ;TF1清0SJMP LOOP ;重复下一次查询程序很简单,但CPU的效率不高。
3.计数器方式的应用举例【例4-6】用T1来计数,工作于方式2,要求每计满100次,将P1.0端取反。
解:T1工作于计数方式,外部计数脉冲由T1(P3.5引脚)引入,每来一个由1至0的跳变计数器加1,由程序查询TF1的状态。
计数初值X=28-100=156=9CHTH1=TL1=9CH,TMOD=60H(设置T1计数方式,方式2)源程序如下:ORG 0000HLJMP MAINORG 8000HMAIN: MOV TMOD, #60H ;T1工作方式2,计数方式MOV TH1, #9CH ;T1计数初值MOV TL1, #9CHSETB TR1 ;启动T1LOOP: JBC TF1, REP;如果TF1=1跳转至REP,并把TF1清零SJMP LOOP ;否则等待REP: CPL P1.0 ;P1.0取反输出CLR TF1SJMP LOOPEND【例6-7】已知一个方波信号的频率为4MHz,编程对该信号进行分频以获得500kHz的方波信号。