- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机课件2
5.2 定时/计数器
51机内置了二个16位的定时/计数器,分别称为T0、T1(T2只在52机以上才有)。
5.2.2 定时/计数功能概述
其中,T2只有52以上机才有。每个定时/计数器均由两个独立的8位寄存器构成,分为高8位(H)和低8位(L)。他们可以通过CPU对工作方式寄存器TMOD设置为16位寄存器使用,最大计数值为FFFFH;也可独立作为8位寄存器使用,最大计数值为FFH。
工作方式寄存器TMOD(89H,不可位寻址)
TMOD上、下半字节对称,分别对应T0、T1的工作状态。以T0为例,各位的意义如下:
:此位为0,为定时模式,此位为1,为计数模式。
M1、M0:工作方式选择。该2位可组成00、01、10、11四种数字组合,对应为工作方式0、1、2、3。注意:T1没有工作方式3。
GATE——定时/计数器启动方式控制位。
控制字寄存器TCON (88H,可位寻址)
TF1:定时器1的溢出标志;
TF0:定时器0的溢出标志。CPU响应定时/计数器中断,标志自动清零;若CPU不响应此中断,则此标志需用软件清除。
TR0:定时器0运行控制位,靠软件置位或清除。置位时,定时/计数器0接通工作,TR0=0,定时器0停止工作。
TR1:是关于定时器1的,含义与TR0类似。
TCON的低四位与外部中断相关,待讨论。
4.定时/计数器T0、T1工作方式及内部结构
(1)工作方式0(13位定时/计数器,M1M0=00H)(少用)
当 =0时,计数脉冲来自CPU内部分频器,为定时,标准51计数脉冲频率是时钟信号的12分频(而STC系列有“6时钟/机器周期”和“12时钟/机器周期”两种模式,计数脉冲是系统时钟信号的6或12分频),当 =1时,计数脉冲来自T0或T1引脚,即处于计数方式。
工作方式1(16位定时/计数器,M1M0=01H) (常用)
方式2 (M1M0=10) (常用)此方式下,TLx作为可自动重装8位计数器,TLx的溢出不仅置位TFx,而且将THx的内容装入TLx。因此,THx的内容决定了定时/计数器的初值,称为重装常数。
方式3 (M1M0=11) (少用)
【例5-3】应用定时器T0产生1ms的定时,并使P1.0输出周期为2ms,占空比为1:1的方波。设晶振频率为6MHz,定时器/计数器工作于方式0。
解:通过P1.0输出周期为2ms、占空比为1:1的方波,可用定时器定时1ms,每次定时到,对P1.0的状态取反,但不要忘记装入时间常数。如此反复,即可达到目的。
第一步:定时器工作于方式0定时模式。本题与T1无关,所以TMOD的控制字定义为;
第二步:装入T0的常数。计数器每机器周期计数值加1,机器周期为:
或
设所需初值为x,则 解得:x = 7692 = 1E0CH = 1 1110 0000 1100B
根据13位定时器的特性,TH0放x的高8位,TL0放低5位,我们将x值重排如下:x = 1111 0000 0 1100,即得本任务的时间常数为:TH0 = F0H,TL0 = 0CH。
第三步:编写程序,参考程序清单如下:
ORG 0000H
AJMP MAIN
ORG 0050H
MAIN: MOV SP,#60H
ACALL PTM
TESTTF0: JNB TF0,TESTTF0
CLR TF0 ;软件清除T0溢出标志
CPL P1.0 ;P1.0求反,以输出方波
MOV TL0,#0CH;用指令重装时间常数
MOV TH0,#0F0H
SJMP TESTTF0 ;输出方波循环,将子程序隔开
PTM: MOV TMOD,#00H
MOV TL0,#0CH
MOV TH0,#0F0H
SETB TR0
RET
END
请注意CLR TF0这条指令的意义。
中断就是CPU在当前执行(主)程序中,插入一段特殊程序的运行过程。
中断源发出中断请求的外设或引起中断的内部原因称为中断源。标准51中断源有5个,按其优先级依次为外部中断0、定时器0、外部中断1、定时器1 溢出及串行口发送/接收中断。其中外部中断0、1为外部中断,其他三种为内部中断。外部中断是由单片机外部事件引发的中断;内部中断是由单片机芯片内部事件引发的中断。
中断向量是中断服务程序的入口地址。
5.3.2 中断控制1.中断允许与禁止
CPU响应中断的前提条件是要开放中断。51没有专用的开中断和关中断指令。中断开放或关闭是通过SFR的中断允许寄存器IE的各位来控制的。
原创力文档


文档评论(0)