版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章定时器及应用
§6.1定时器概述
§6.2定时器的控制
§6.3定时器的四种模式及应用
§6.4思考题与习题
,BackJIQ
§6.1定时器概述
§6.1.18051定时器结构
§6.1.28051定时器功能
Back■一|上
§6.1.18051定时器结构
・8051定时器的结构如图6-1所示。
•有两个16位的定时器/计数器,即定时器0
(T0)和定时器1(Tl)o它们实际上都
是16位加1计数器。
•T0由两个8位特殊功能寄存器THO和TLO构
成;T1由TH1和TL1构成。
Back■一|上
图6-189c51定时器结构
§6.1.28051定时器功能
•每个定时器都可由软件设置为定时工作方式或
计数工作方式及其他灵活多样的可控功能方式。
这些功能由特殊功能寄存器TM0D和TC0N所控制。:
・定时器工作不占用CPU时间,除非定时器/计数
器溢出,才能中断CPU的当前操作。:
•每个定时器/计数器还有四种工作模式。其中模
式0-2对T0和T1是一样的,模式3对两者不同。
定时工作方式
定时器计数8051片内振荡器输出经12分
频后的脉冲,即每个机器周期使定时器(TO
或T1)的数值加1直至计满溢出。
当8051采用12MHz晶振时,一个机器周
期为Ips,计数频率为1MHz。
计数工作方式
•通过引脚TO(P3.4)和T1(P3,5)对外部脉冲信
号计数。当输入脉冲信号产生由1至。的下降沿时
定时器的值加1。
•CPU检测一个1至0的跳变需要两个机器周期,故
最高计数频率为振荡频率的1/24。
•为了确保某个电平在变化之前被采样一次,要求电
平保持时间至少是一个完整的机器周期。
•对输入脉冲信号的基本要求如图6・2所示。
Back>■5
图6-2对输入脉冲宽度的要求
■
§6.2定时器的控制
•§6.2.1工作模式寄存器TMOD
•§6.2.2控制器寄存器TCON
.酒飞:^酒,'酒飞一|上
§6.2.1工作模式寄存器TMOD
•TMOD用于控制TO和T1的工作模式。
•TMOD不能位寻址,只能用字节设置定时器的工作模
式,低半字节设置TO,高半字节设置T1。
•8051系统复位时,TMOD的所有位被清0。
•TMOD各位的定义格式如图6-3所示。
■TMOD各位的功能:W匚二>
•TMOD各位定义及具体的意义归纳如图6-4所示。.
图6-3工作模式寄存器TMOD的位定义
用于T1----------用于TO
TMODD7D6D5D4D3D2DIDO
(89H)GATEC/TMlMOGATEC/TMlMO
<1一受ZTT控制
选通控制
10—不受NTT控制00—模式0
01—模式1
匚工作模式10—模式2
11■—模式3
1一计数
功能选择V
0一定时
1一计数
功能选择
0—定时
00—模式0
模式'1一受而^控制
工作模式01—1选通控制<
10—模式2、0—不受NTU控制
11一停止
图6・4TMOD各位定义及具体的意义
TMOD各位的功能
①Ml和M0—操作模式控制位。
两位可形成四种编码,对应于四种模式。
见表6-1。
表6-1Ml,MO控制的四种工作模式
M1M0l:作模式功能描述
00模式013位计数器
01模式116位计数器
10模式2自动再装入8位计数器
定时器0:分成二个8位计数器
1j模式3
定时器1:停止计数
驯”Blip
TMOD各位的功能
②c/亍一计数器/定时器方式选择位。
C/T=O,设置为定时方式。定时器计数
8051片内脉冲,即对机器周期计
数。
C/T=l,设置为计数方式。计数器的输入
来自TO(P3.4)或T1(P3.5)端
的外部脉冲。
一|上
TMOD各位的功能
③GATE—门控位。
GATE=O,只要用软件使TRO(或TR1)置1就可以
启动定时器,而不•管乐TO(WNTD的
电平是高还是低。
GATE=1,只有TTO(或INTI)引脚为高电平且由
软件使TRO(或TR1)置1时,才能启动
定时器工作。
Back
§6.2.2控制器寄存器TCON
•TCON除可字节寻址外,各位还可位寻址。
•8051系统复位时,TCON的所有位被清0。
•TCON各位的定义格式如图6-5所示。
■TCON各位的功能:
•TCON各位定义及具体的意义归纳如图6-6所示。
号一|上
图6-5控制寄存器TCON的位定义
8FH8EH8DH8CH8BH8AH89H88H
TCON
TF1TRITFOTROIE1IT1IE0ITO
(88H)
Back
8FH8EH8DH8CH8BH8AH89H88H
TCON
(88H)TF1TR1TFOTR0用于外部中断
’1一启动
TO运行控制(软件)
、0—停止
T—溢出
TO溢出标志(硬件)
、0一未溢出
’1一启动
T1运行控制(软件)
、0—停止
’1—溢出
T1溢出标志(硬件)
,0一未溢出
图6・6TCON各位定义及具体的意义
TCON各位的功能
①TF1(TCON.7)—T1溢出标志位。
当T1溢出时,由硬件自动使中断触发器TF1置1,并
•CPU申请中断。
当CPU响应中断进入中断服务程序后,TF1由被硬件
自动清0。TF1也可以用软件清0。
②TFO(TCON.5)—T0溢出标志位。
其功能和操作情况同TF1。
TCON各位的功能
③TRI(TCON.6)—T1运行控制位。
可通过软件置1(或清0(TR1=0)来启动
或关闭“。
在程序中用指令“SETBTR1”使TR1位置1,定
时器T1便开始计数。
④TRO(TCON.4)—TO运行控制位。
其功能和操作情况同TR1。
一|上
TCON各位的功能
⑤IE1,IT1,IE0,ITO(TCON.3-TC0N.0)—
外部中断INTI,INTO请求及请求方式控制
位。前一章已经讲过。
Back■一|上
§6.3定时器的四种模式及应用
•§6.3.1模式0及其应用
•§6.3.2模式1及其应用
•§6.3.3模式2及其应用
•§6.3.4模式3及其应用
•§6.3.5综合应用举例
一|上
§6.3.1模式0及其应用
一、模式o的逻辑电路结构
二、模式o工作特点
三、模式0的应用举例
Back■一|上
•、模式0的逻辑电路结构
TO在模式0的逻辑电路结构如图所示。
(T1相同)
TO(或T1)模式0结构一13位计数器
二、模式。工作特点
•在这种模式下,16位寄存器(THO和TLO)只
用了13位。其中TLO的高3位未用,其余5位
为整个13位的低5为,THO占高8位。当TLO的
低5位溢出时,向THO进位;THO溢出时,向
中断标志TFO进位(硬件置位TFO),并申请
中断。
•定时时间为:
t=(2】3—TO初值)义振荡周期X12
三、模式。的应用举例(例6-1)
•例6-1:设定时器TO选择工作模式0,
定时时间为1ms,fosc=6MHz0试确
定TO初值,计算最大定时时间T。
三、模式0的应用举例(例6-1)
解:当TO处于工作模式0时,力口1计数器为13位。
(1)试确定TO初值
设TO的初值位X。
则:(213-X)X1/6X1O-6X12=1X1O3S
X=7692D=1111000001100B
TO的彳氐5位:01100B=0CH即(TLO)=OCH
TO的高8位:11110OOOB=FOHBP(THO)=FOH
(2)计算最大定时时间T
TO的最大定时时间对应于13位计数器TO的各位全为1,
即(TL0)=1FH,(THO)=FFH.
贝I:T=213X1Z6X106X12=16.384ms
^iBackJ,画IQ
三、模式。的应用举例(例6-2)
例6-2:设TO工作在模式0,定时时间
为1ms,fosc=6MHz0编程实现其定
时功能。定时时间到,P1.0取反。
三、模式0的应用举例(例6-2)
解:
(1)计算TO初值X
计算步骤见例6」。/
结果:(THO)=OFOH,(TLO)=OCHo
三、模式。的应用举例(例6-2)
(2)程序清单:
初始化引导程序
ORG0000H
RESET:AJMPMAIN;跳过中断服务程序区
ORGOOOBH;中断服务程序入口
AJMPITOP
HI,
三、模式。的应用举例(例6-2)
,主程序:
ORG0100H
MAIN:MOVSP,#60H;设堆栈指针
ACALLPTOMD
HERE:AJMPHERE;等待时间到,转入中断服务程序
PTOMD:MOVTMOD,#OOH;选择工作模式
MOVTL0,#0CH;送初值
MOVTH0,#0F0H
SETBTRO;启动定时
SETBETO;TO开中断
SETBEA;CPU开中断
RET
一|上
三、模式0的应用举例(例6-2)
中断服务程序
ORG0120H
ITOP:MOVTL0,#0CH;重新装如初值
MOVTH0,#0F0H
CPLP1.0;P1.0取反
RETI
三、模式。的应用举例(例6-3)
例6-3:利用TO的工作模式0产生1ms
定时,在P1.0引脚输出周期为2ms
的方波。设单片机晶振频率
台匕
fosc=12MHz0编程实现其功月匕O
三、模式。的应用举例(例6-3)
解:
要在P1.0引脚输出周期为2ms的方波,只要使P1.0每隔
1ms取反一次即可。
(1)选择工作模式
TO的模式字为TMOD=OOH,即
M1M0=00,C/T=0,GATE=0,其余位为0。
可,
三、模式。的应用举例(例6-3)
(2)计算1ms定时时TO的初值
⑵3—X)X1/12X10-6X12=1X10-3s
X=7193D=1110000011000B
TO的低5位:11000B=18H即(TL0)=18H
TO的高8位:11100000B=E0HBP(TH0)=E0H
可
模式0的应用举例(例6-3)
(3)采用查询方式的程序
程序清单:
MOVTMOD,#OOH;设置TO为模式0
MOVTL0,#18H;送初值
MOVTH0,#0E0H
SETBTRO;启动定时
LOOP:JBCTFO,NEXT;查询定时时间到否
SJMPLOOP
NEXT:MOVTL0,#18H;重装计数初值
MOVTH0,#0E0H
CPLP1.0;取反
SJMPLOOP;重复循环
HI,
三、模式0的应用举例(例6-3)
(4)采用定时器溢出中断方式的程序
程序清单:
主程序
ORG0000H
RESET:AJMPMAIN;跳过中断服务程序区
ORG0030H
MAIN:MOVTMOD,#OOH;设置TO为模式0
MOVTL0,#18H;送初值
MOVTH0,#0E0H
SETBEA;CPU开中断
SETBETO;TO中断允许
SETBTRO;启动定时
HERE:SJMPHERE;等待中断,虚拟主程序
一|上
三、模式0的应用举例(例6-3)
中断服务程序
ORGOOOBH
AJMPCTCO
ORG0120H
CTCO:MOVTL0,#18H;重新装如初值
MOVTH0,#0E0H
CPLP1.0;P1.0取反
RETI
g(BIS
§6.3.2模式1及其应用
一、模式1的逻辑电路结构
二、模式1工作特点
三、模式1的应用举例
Back■一|上
▲、模式1的逻辑电路结构
TO在模式1的逻辑电路结构如图在7所示。
(T1相同)
图6-7TO(或T1)模式1结构一16位计数器
^^BackjQQ
二、模式1工作特点
•该模式对应的是一个16位的定时器/计数器。
•用于定时工作方式时,定时时间为:
t=(2]6—TO初值)X振荡周期X12
•用于计数工作方式时,计数长度最大为:
216=65536(个外部脉冲)
三、模式1的应用举例(例6-4)
•例6-4:用定时器T1产生一个50Hz
的方波,由P1.1输出。,使用程
序查询方式,fosc=6MHz0
I_
V
三、模式1的应用举例(例6-4)
解:
丁方波周期丁二1/50=0・02s=20ms
•••用T1定时10ms
计数初值X为:
X=216-12X10X1000/12
=65536-10000=55536=D8F0H
BagKi.,
三、模式1的应用举例(例6-4)
源程序清单:
MOVTMOD,#10H;设置T1为模式1
SETBTR1;启动定时
LOOP:MOVTL1,#0D8H;送初值
MOVTH1,#0F0H
JNBTF1,$;查询定时时间到否
CLRTF1;产生溢出,清标志位
CPLP1.1;取反
SJMPLOOP;重复循环
BaW.0
§6.3.3模式2及其应用
一、模式2的逻辑电路结构
二、模式2工作特点
三、模式2的应用举例
Back■一|上
一、模式2的逻辑电路结构
•TO在模式2的逻辑电路结构如图6-8所示。(T1相同)
•TLO计数溢出时,不仅使溢出中断标志位TFO置1,而且还自
动把TH0中的内容重新装载到TLO中。
•TLO用作8位计数器,THO用以保存初值。
图6・8TO(或T1)模式2结构一8位计数器
二、模式2工作特点
•该模式把TLO(TL1)配置成一个可以自动重装载的8
位定时器/计数器C
•在程序初始化时,TLO和THO由软件赋予相同的初值。
•用于定时工作方式时,定时时间为:
t=(28-TH0初值)x振荡周期又12
・用于计数工作方式时,计数长度最大为:28=256
(个外部脉冲)
•该模式可省去软件中重装常数的语句,并可产生相
当精确的定时时间,适合于作串行口波特率发生器。
BaW.0
三、模式2的应用举例(例6-5)
•例6-5:当P3.4引脚上的电平发生
负跳变时,从P1.0输出一个
500ILLS的同步脉冲。请编程序实现
该功能。查询方*,fosc=6MHz0
三、模式2的应用举例(例6-5)
解:(1)模式选择
选TO为模式2,外部事件计数方式。
当P3.4引脚上的电平发生负跳变时,TO计数器加1,溢出标
志TFO置1;然后改变TO为500us定时工作方式,并使P1.0
输出由1变为0。T0定时到产生溢出,使PL0输出恢复高电
平,T0又恢复外部事件计数方式。
如图6-9所示。
P3.4-------------------------------------------------------------------------------------------------
P1.0-----------------------------------------------------
-----500—----►500pis——
夕卜部计数方式定时方式外部计数方式定时方式
图6・9功能描述B1E
三、模式2的应用举例(例6-5)
(2)计算初值
•TO工作在外部事件计数方式,当计数到28时,再
力口1计数器就会溢出。设计数初值为X,当再出现
一次外部事件时,计数器溢出。
贝上X+1=28
X=28-1=11111111B=OFFH
•TO工作在定时工作方式,设晶振频率为6MHz,
500ps相当于250个机器周期。因此,初值X为
(28-X)X2ps=500ps
X=6=06H
三、模式2的应用举例(例6-5)
(3)程序清单
START:MOVTMOD,#06H;设置TO为模式2,外部计数方式
MOVTL0,#0FFH;TO计数器初值
MOVTH0,#0FFH
SETBTRO;启动TO计数.
LOOP1:JBCTFO,PTFO1;查询TO溢出标志,
;TFO=1时转,且清TFO=O
SJMPLOOP1
三、模式2的应用举例(例6-5)
PTFO1:CLRTRO;停止计数
MOVTMOD,#02H;设置TO为模式2,定时方式
MOVTL0,#06H;送初值,定时500Hs
MOVTH0,#06H
CLRP1.0;P1.0清0
SETBTRO;启动定时500Ps
LOOP2:JBCTF0,PTFO2;查询TO溢出标志,
;TF0=1时转,且清TFO=O
;(第一个500Hs到否?)
SJMPLOOP2;等待中断,虚拟主程序
PTFO2:SETBP1.0;P1.0B1
CLRTRO;停止计数
SJMPSTART
三、模式2的应用举例(例6-6)
•例6-6:利用定时器T1的模式2对外
部信号计数。要求没计满100次,
将P1.0端取反。
三、模式2的应用举例(例6-6)
解:
(1)选择模式
外部信号由T1(P3.5)引脚输入,每发生一次负
,跳变计数器加1,每输入100个脉冲,计数器发生
溢出中断,中断服务程序将P1.0取反一次。
•T1计数工作方式模式2的模式字为
(TMOD)=60Ho
TO不用时,TMOD的低4位可任取,但不能进入模
式3,一般取0。
三、模式2的应用举例(例6-6)
(2)计算T1的计数初值
X=28—100=156二9cH
因此:TL1的初值为9CH,
重装初值寄存器THr9CH。
「I上
三、模式2的应用举例(例6-6)
(3)程序清单
MAIN:MOVTMOD,#60H;设置T1为模式2,外部计数方式
MOVTL1,#9CH;T1计数器初值
MOVTH1,#9CH
MOVIE,#88H;定时器开中断
SETBTR1;启动T1计数
HERE:SJMPHERE;等待中断
ORG001BH;中断服务程序入口
CPLP1.0
RETI
§6.3.4模式3及其应用
一、模式3的逻辑电路结构
二、模式3的应用举例
Back■一|上
一、模式3的逻辑电路结构
•工作模式3对TO和T1大不相同。
Q1、TO模式3的逻辑电路结构
o2、TO模式3下T1的逻辑电路结构
M2SU同0
1、TO模式3的逻辑电路结构
•TO模式3的逻辑电路结构如图6-10所示。
•T0设置为模式3,TLO和THO被分成两个相互独立的8
位计数器。
•TLO用原T0的各控制位、引脚和中断源,即C/T,
GATE,TRO,TFO,TO(P3.4)引脚,INTO(P3.2)
引脚。
•TLO可工作在定时器方式和计数器方式。其功能和
操作与模式0、模式1相同(只是8位)。
控制
图6・10TO模式3结构
可
1、TO模式3的逻辑电路结构
•它占用了定时器T1的控制位TR1和T1的中断标志TF1,
其启动和关闭仅受TR1的控制。
•THO只可用作简单的内部定时功能。
QBack」
「I上
2、TO模式3下T1的逻辑电路结构
・定时器T1无工作模式3状态。在TO用作模式3时,
T1仍可设置为模式0〜2。
・TO模式3下T1的逻辑电路结构如图6T2
所示。
•由于TR1和TF1被定时器TO占用,计数器开关K
已被接通,此时,仅用T1控制位,C/T切换其定
时或计数器工作方式就可使T1运行。当计数器
溢出时,只能将输出送入串行口或用于不需要
中断的场合。一般作波特率发生器
串
(a)Tl模式1(或模式0)(b)Tl模式2
图6・11TO模式3时T1结构
可
二、模式3的应用举例(例6-7)
•例6-7:设某用户系统已使用了两
个外部中断源,并置定时器T1工作
在模式2,作串行口波特率发生器
用。现要求再增加一个外部中断源
并由Pl.0引脚输出一个5kHz的方波。
Fosc=12MHz.
二、模式3的应用举例(例6-7)
解:
(1)工作模式
•可设置TO工作在模式3计数器方式,把TO的引脚
作附加的外部中断输入端,TLO的计数初值为FFH,
当检测到TO引脚电平出现由1至0的负跳变时,TLO
产生溢出,申请中断。
•TO模式3下,TLO作计数用,而THO用作8位的定
时器,定时控制PL0引脚输出5kHz的方波信号。
一|上
二、模式3的应用举例(例6-7)
(2)计算初值
•TLO的计数初值为FFH。
•THO的计数初值X为:
P1.0方波周期T=l/(5kHz)=0.2ms=200|js
用THO作定时100us时,
X=256-100X12/12=156
w
二、模式3的应用举例(例6-7)
(3)程序清单
MOVTMOD,#27H;TO为模式3,计数方式
;T1为模式2,定时方式
MOVTLO,#OFFH;TLO计数初值
MOVTH0,#156;TH0计数初值
MOVTL1,#data;data是根据波特率
;要求设置的常数(初值)
MOVTH1,#data
MOVTCON,#55H;外中断0,外中断1边沿触发,
;启动TO,T1
MOVIE,#9FH;开放全部中断
二、模式3的应用举例(例6-7)
TLO溢出中断服务程序(由OOOBH转来)
TLOINT:MOVTLO,#OFFH;TLO重赋初值
(中断处理)
RETI
TH0溢出
TH0溢出中断服务程序(由001BH转来)
THOINT:MOVTH0,#156;TH0重赋初值
CPLP1.0;P1.0取反输出
RETI
串行口及外部中断0,外部中断1的服务程序略。
§6.3.5综合应用举例(例6-8)
•例6-8:设时钟频率为6MHz。编写
利用TO产生1s定时的程序。
§6.3.5综合应用举例(例6-8)
解:
(1)定时器TO工作模式的确定
;模式0最长可定时16.384ms;
模式1最长可定时131.072ms;
1模式2最长可定时512口s;
•••定时1s,可选用模式1,每隔100ms中断一
次,中断10次为1s。
S^BackJ.,
§6.3.5综合应用举例(例6-8)
(2)求计数器初值X
V(216-X)x12/(6X106)=100X10-3S
••・X=15536=3CB0H
因止匕:(TLO)=OBOH
(TH0)=3CH
§6.3.5综合应用举例(例6-8)
(3)实现方法
对于中断10次计数,可使T0工作在计数方
式,也可用循环程序的方法实现。本例采
用循环程序法。
§6.3.5综合应用举例(例6-8)
(4)源程序清单
ORG0000H
AJMPMAIN;上电,转向主程序
ORGOOOBH;TO的中断服务程序入口地址
AJMPSERVE;转向中断服务程序
ORG2000H;主程序
§6.3.5综合应用举例(例6-8)
MAIN:MOVSP,#60H;设堆栈指针
MOVB,#0AH;设循环次数
MOVTMOD,#01H;设置TO工作于模式1
MOVTL0,#0B0H;装计数值低8位
MOVTH0,#3CH;装计数值高8位
SETBTR0;启动定时
SETBETO;TO开中断
SETBEA;CPU开中断
SJMP$;等待中断
一|上
§6.3.5综合应用举例(例6-8)
SERVE:MOVTL0,#0B0H;重新赋初值
MOVTH0,#3CH
DJNZB,LOOP;B・1不为0,继续定时
CLRTRO;1s定时到,停止TO工作
LOOP:RETI;中断返回
END
§6.3.5综合应用举例(例6-9)
•例6-9:设计实时时钟程序。时钟
就是以秒、分、时为单位进行计
时。用定时器与中断的联合应用。
§6.3.5综合应用举例(例6-9)
解:
(1)实现时钟计时的基本方法
①计算计数初值。
时钟计时的最小单位是秒,但使用单片机定时器/
,计数器进行定时,即使按方式1工作,其最大定时
时间也只能达131ms。因此,可把定时器的定时
时间定为100ms,计数溢出10次即得到时钟计时
的最小单位一秒;而10次计数可用软件方法实现。
可
§6.3.5综合应用举例(例6-9)
假定使用定时器TO,以工作模式1进行100ms的定
时。如fosc=6MHz,则计数初值X为:
6
?(2化一X)X12/(6x10)=100X10-3s
・•・X=15536=3CB0H
因此:
(TLO)=OBOH
(TH0)=3CH
■B
§6.3.5综合应用举例(例6-9)
②采用定时方式进行溢出次数的累计,计满
10次即得到秒计时。
§6.3.5综合应用举例(例6-9)
③从秒到分和从分到时的计时是通过累计和
数值比较实现的。
§6.3.5综合应用举例(例6-9)
④时钟显示即及显示缓冲区部分在这里略,
可自行设计。
§6.3.5综合应用举例(例6-9)
(2)程序流程及程序清单
①主程序(MAIN)的主要功能
;是进行定时器T1的初始化编程并启动T1,
然后通过反复调用显示子程序,等待100ms定时
中断的到来。其流程如图6・13所示。
一|上
§6.3.5综合应用举例(例6-9)
(2)程序流程及程序清单
②中断服务程序(PITO)的主要功能•
,是进行计时操作。程序开始先判断计数溢出
时候满了10次,不满表明还没达到最小计时单
位一秒,中断返回;如满10次则表示已达到最小
计时单位一秒,,程序继续向下运行,进行计时操
作。
要求满1秒则“秒位”32H单元内容加1,满
60s则“分位”31H单元内容加1,满60min则“时
位”30H单元内容加1,满24h贝)30H,31H,
332H单元内容全部清0。中断服务程序流程如图
6・14所示。
设T1歹模式1
1;图6-13时钟主程序流程
设中货次数
、f
清计时单元
开中断
启动T1
调用显可子程序
.....।等待定;寸中断
入口II
保护现场
(31H)JW0
赋计数初值
(30H)加1
N
(30H)=24?
(32H)加1Y
N(30H)清0
(32H尸60?>
恢复现场
(32H)清0
返回
(31同加1
图中断服务程序流程图
N6-14
丁(31H尸60?二>~
^SLJQJE
§6.3.5综合应用举例(例6-9)
③源程序如下:
ORG0000H
AJMPMAIN;上电,转向主程序
ORG001BH;T1的中断服务程序入口地址
AJMPSERVE;转向中断服务程序
§6.3.5综合应用举例(例6-9)
ORG2000H;主程序
MAIN:MOVSP,#60H;设堆栈指针
MOVTMOD,#10H;设置T1工作于模式1
MOV20H,#0AH;设循环次数
CLRA
MOV30H,A;时单元清0
MOV31H,A;分单元清0
MOV32H,A;秒单元清0
一|上
§6.3.5综合应用举例(例6-9)
SETBET1;T1开中断
SETBEA;CPU开中断
MOVTL1,#0B0H;装计数值低8位
MOVTH1,#3CH;装计数值高8位
SETBTR1;启动定时
SJMP$;等待中断(可反复调用显示子程序)
§6.3.5综合应用举例(例6-9)
SERVE:PUSHPSW;保护现场
PUSHACC
MOVTL1,#0B0H;重新赋初值
MOVTH1,#3CH
DJNZ20H,RETUNT;1s未至U,返回
MOV20H,#0AH;重置中断次数
w
§6.3.5综合应用举例(例6-9)
MOVA,#01H
ADDA,32H;“秒位”加1
DAA;转换为BCD码
MOV32H,A
CJNEA,#60H,RETUNT;未满60s,返回
MOV32H,#00H;计满60s,“秒位”清0
w
§6.3.5综合应用举例(例6-9)
MOVA,#01H
ADDA,31H;“分位”加11
DAA;转换为BCD码
MOV31H,A
CJNEA,#60H,RETUNT;未满60min,返回
MOV31H,#00H;计满60min,“分位”清0
w
§6.3.5综合应用举例(例6-9)
MOVA,#01H
ADDA,30H;“时位”力口1
DAA;转换为BCD码
MOV30H,A
CJNEA,#24H,RETUNT;未满24h,返回
MOV30H,#00H;计满24h,“时位”清0
RETUNT:POPACC;恢复现场
POPPSW
RETI;中断返回
END
《例6・9结束》
BaW.口
§6.4思考题与习题
1、定时器模式2有什么特点?适用于什么应用场合?
2、单片机用内部定时方法产生频率为lOOKHz等宽距
形波,假定单片机的晶振频率为12MHz。请编程
实现。「
3、8051定时器有哪几种工作模式?有何区别?
§6.4思考题与习题
4、8051单片机内部设有几个定时器/计数器?它们
是由哪些特殊功能寄存器组成?
5、定时器用作定时器时,其定时时间与哪些因素
有关?作计数器时,对外界计数频率有何限制?
6、简述定时器四种工作模式的特点,如何选择和
设定?
Back
§6.4思考题与习题
7、当定时器TO用作模式3时,由于TR1位已被TO占用,
如何控制定时器T1的开启和关闭?■:
8、以定时器/计数器1进行外部事件计数。每计数
1000个脉冲后,定时器T1转为定时工作方式。定
时10ms后,又转为计数方式,如此循环不止。假
定单片机晶振频率为6MHz,请使用模式1编程实•:
现。
§6.4思考题与习题
9、一个定时器的定时时间有限,如何实现两个定
时器的串行定时,以满足较长定时时间的要求?
10、使用一个定时器,如何通过软、硬件结合的方
法,实现较长时间的定时?
11、8051定时器作定时和计数时,其计数脉冲分别
由谁提供?
§6.4思考题与习题
12、8051定时器的门控制信号GATE设置为1时,定
时器如何启动?
13、已知8051单片机的fosc=6MHz,请利用TO和
PL0输出矩形波。矩形波高电平宽50us,低
电平宽300口s.
§6.4思考题与习题
14、已知8051单片机的fosc=12MHz,用T1定时。试
编程由PL0和PL1引脚分别输出周期为2ms和
500|Js的方波。
15、单片机8031的时钟频率为6MHz,若要求定时值分
别为0.1ms,1ms,10ms,定时器0工作在模式0、
模式1和模式2时,其定时器初值各应是多少?
§6.4思考题与习题
16、8051单片机的定时器在何种设置下可提供三个8
位计数器定时器?这时,定时器1可作为串行口
波特率发生器。若波特率按
9600b/s,4800b/s,2400b/s,1200b/s,600b/s,10
Ob/s来考虑,则此时可选用的波特率是多少
(允许存在一定误差)?设fosc=12MHz。
§6.4思考题与习题
17、试编制一段程序,功能为:当P1.2引脚的电平
上跳时,对PL1的输入脉冲进行计数;当PL2
引脚的电平下跳时,停止计数,并将计数值写
入R6,R7o
18、设fosc=6MHz。试编制一段程序,功能为:对
定时器TO初始化,使之工作在模式2,产生
200口s定时,并用查询TO溢出标志的方法,控
制PL0输出周期为2nls的方波。
SuccesswithMoneyandJoy
附落人生心语
•成功是一种观念
•致富是一种义务
•快乐是一种权利
•每个人都有能力、有义
务、有权利办到成功
致富快乐
附赠人生心语
成成功不是打败别人
功成功不是超越别人
成功不是名、利、权的获得
致拥有健康的身体
丰足的物质生活
富平衡的心理状态
又才能拥有成功
快SuccesswithMoneyandJoy
战胜自己
乐贡献自己
扮演好自己的历史角色
才能超越自己
融入成功里
附赠人生心语
知人者智,自知者明,胜人者力,自
胜者强。
——老子
附赠人生心语
•成功必须靠百分之九十八的辛勤血
汗,加上百分之二的天才灵感。
•世界上注定只有百分之二十的人会成
功。
附赠人生心语
成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年司法考试民诉真题及答案
- 8.2+法治政府课件高中政治统编版必修三政治与法治
- 2025年初中英语书面表达观点对比
- 2025年事业单位招聘考试综合类专业能力测试试卷(管理类)质量管理与控制试题及答案
- 2025年世界知识产权日知识竞赛试题(附完整答案)
- 2025年事业单位口腔医学口腔预防医学测试试卷及答案
- 【8物期中】安徽省合肥市中国科学技术大学附属中学2024-2025学年八年级下学期5月月考物理试题
- 2025新青少年“学宪法、讲宪法”知识竞赛题库及答案
- 2026年人工智能算法服务协议(图像识别)
- 医疗陪护服务外包合同
- 国企投后管理办法
- 数据需求管理办法
- 乳及乳制品的腐败变质食品微生物学09课件
- 海上油气开发装备国产化
- 肾弥漫性疾病超声诊断
- 工程项目绩效管理
- 2024联易融线上用印软件使用手册
- 中医药膳食疗的养生作用
- 2024年二级注册结构工程师专业考试试题及答案(上午卷)
- 典范英语7全文(1-18)
- 中职《劳动教育》课程标准
评论
0/150
提交评论