b时器/计数器的四种 工作方式及应用 ■6.3.1定时器/计数器的初始化 6.3.2方式0及应用实例 6.3.3方式1及应用实例 ■6.3.4方式2及应用实例 6.3.5方式3 清华大学出版社⑨
http://www.wenyuan.com.cn/webnew/ 6.3 定时器/计数器的四种 工作方式及应用 ◼ 6.3.1 定时器/计数器的初始化 ◼ 6.3.2 方式0及应用实例 ◼ 6.3.3 方式1及应用实例 ◼ 6.3.4 方式2及应用实例 ◼ 6.3.5 方式3
6.31定时器/计数器的初始化 定时器/计数器的初始化步骤 定时器/计数器是一种可编程部件,在使用定时器/计数器 前,一般都要对其进行初始化,以确定其以特定的功能工 作。初始化的步骤如下。 (1)确定定时器/计数器的工作方式,确定方式控制字,并写入 TMOD。 (2)预置定时初值或计数初值,根据定时时间或计数次数,计 算定时初值或计数初值,并写入TH0、TL0或TH1、TL1。 (3)根据需要开放定时器/计数器的中断,给I中的相关位赋值。 (4)启动定时器/计数器,给TCON中的TR1或TR0置1。 清华大学出版社⑨
http://www.wenyuan.com.cn/webnew/ 6.3.1 定时器/计数器的初始化 1. 定时器/计数器的初始化步骤 定时器/计数器是一种可编程部件,在使用定时器/计数器 前,一般都要对其进行初始化,以确定其以特定的功能工 作。初始化的步骤如下。 (1) 确定定时器/计数器的工作方式,确定方式控制字,并写入 TMOD。 (2) 预置定时初值或计数初值,根据定时时间或计数次数,计 算定时初值或计数初值,并写入TH0、TL0或TH1、TL1。 (3) 根据需要开放定时器/计数器的中断,给IE中的相关位赋值。 (4) 启动定时器/计数器,给TCON中的TR1或TR0置1
6.31定时器/计数器的初始化 1010 2.定时初值或计数初值的计算方法 不同工作方式的定时初值或计数初值的计算方法如下表所 工作方式计数位数最大计数值最大定时时定时初值计算公计数初值计算公式 方式0 21=8192213×T机X=213-m机X=21-计数值 方式1 16 216=65536 X=216m7机X=216-计数值 方式2 28=256 X21x=2=计数值 表中7表示定时时间,表示机器周期。 清华大学, 出版社 nPswwwo-eunconswenewl
http://www.wenyuan.com.cn/webnew/ 6.3.1 定时器/计数器的初始化 2. 定时初值或计数初值的计算方法 不同工作方式的定时初值或计数初值的计算方法如下表所 示。 表中T 表示定时时间,T机表示机器周期。 工作方式 计数位数 最大计数值 最大定时时 间 定时初值计算公 式 计数初值计算公式 方式0 13 2 13=8192 2 13T机 X=213-T/T机 X=213-计数值 方式1 16 2 16=65536 2 16T机 X=216-T/T机 X=216-计数值 方式2 8 2 8=256 2 8T机 X=28-T/T机 X=28-计数值
s631定时器计数器的初始化 1010 【例1】用定时器0方式0,定时5ms,以中断方式工作,进行 程序初始化设计,晶振频率为6MHz。 解:用定时器0方式0时,定时器计数器方式寄存器TMOD低4 位中的MM0应取00;可设定为软件启动定时器,故GATE 取0;因用定时功能,C「取0;定时器方式寄存器TMOD高 4位为无关位,一般都取0,所以TMOD应为00H。 晶振频率为6MHZ,机=12/6c=12/(6×106)=2u5 定时初值X=213-7机=213-5×103/2=81922500=5692 163CH=1011000111100B 因TL0的高3位未用,对计算出的定时初值X要进行修正, 即在低5位前插入3个0,修正后的定时初值 X=1011000100011100B=B11 清华大学出版社⑨
http://www.wenyuan.com.cn/webnew/ 6.3.1 定时器/计数器的初始化 【例1】 用定时器0方式0,定时5ms,以中断方式工作,进行 程序初始化设计,晶振频率为6MHz。 解:用定时器0方式0时,定时器/计数器方式寄存器TMOD低4 位中的M1M0应取00;可设定为软件启动定时器,故GATE 取0;因用定时功能,C/T取0;定时器方式寄存器TMOD高 4位为无关位,一般都取0,所以TMOD应为00H。 晶振频率为6MHz,T机=12/fosc=12/(6106)=2s 定时初值X=213-T/T机=213-5103/2=8192-2500=5692 =163CH=1011000111100B 因TL0的高3位未用,对计算出的定时初值X要进行修正, 即在低5位前插入3个0,修正后的定时初值 X=1011000100011100B=B11CH
IISINGE 631定时器/计数器的初始化 1010 定时器以中断方式工作,故将中断总允许位EA和定时器0的 中断允许位E0置1 参考程序 758900 MOV TMOD,#OOH ;置定时器0为工作方式0 75 8C B1 MOV THO,#OB1H ;定时初值的高8位 75 8A 1C MOV TLO,#1CH ;定时初值的低8位 D2 AF SETB EA ;开放中断总允许位 D2 A9 SETB ETO ;开放定时器0的中断允许位 D2 8C SETB TRO ;启动定时器0 清华大学出版社⑨
http://www.wenyuan.com.cn/webnew/ 6.3.1 定时器/计数器的初始化 定时器以中断方式工作,故将中断总允许位EA和定时器0的 中断允许位ET0置1。 参考程序: 75 89 00 MOV TMOD,#00H ;置定时器0为工作方式0 75 8C B1 MOV TH0,#0B1H ;定时初值的高8位 75 8A 1C MOV TL0,#1CH ;定时初值的低8位 D2 AF SETB EA ;开放中断总允许位 D2 A9 SETB ET0 ;开放定时器0的中断允许位 D2 8C SETB TR0 ;启动定时器0