- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章定时器及其应用
第6章 定时器/计数器及其应用 * * §1 MCS-51的定时器/计数器 一 、定时器/计数器的组成 MCS-51单片机内部有2个16位的可编程的定时器、计数器,即定时器/计数器0(T/C0)和定时器/计数器1(T/C1),它们都有定时和对外部事件计数的功能。T/C0是由两个8位的特殊功能寄存器TH0(8CH)和TL0(8AH)组成的,T/C1是由TH1(8DH)和TL1(8BH)组成。通过对TH1、TL1、TH0和TL0的初始化编程来控制T/C0和T/C1的计数初值。 2 计数方式 T/C的功能是计来自引脚T0(P3.4)和T1(P3.5)的外部脉冲信号的个数。输入脉冲由1变0的下降沿时,计数器的值增加1直到回零产生溢出中断,表示计数已达预期个数。 1 定时方式 T/C记录8051内部振荡器输出经12分频后的脉冲(机器周期信号)个数。即每个机器周期使T/C0或T/C1的计数器增加1,直到计满回零后自动产生溢出中断请求,表示定时时间到。 二、定时器/计数器的控制 由软件把控制字写入TCON和TMOD,用来设置T/C0和T/C1的工作方式和控制功能。 1、工作模式寄存器TMOD(89H) TMOD用于控制T/C0和T/C1的工作模式 GATE C/T M1 M0 GATE C/T M1 M0 定时器T1 定时器T0 (1) M1和M0(工作方式选择位) M1M0 方式 功能描述 0 0 0 为13位定时器/计数器,TL低5位,TH高8位 0 1 1 为16位定时器/计数器 1 0 2 常数自动装入,8位定时器/计数器 1 1 3 仅适用于T/C0,两个8位定时器/计数器 (2)C/T (计数/定时选择位) C/T=0,设为定时方式,对机器周期计数,C/T=1,设为计数方式,对来自T0或T1引脚的外来脉冲计数。 (3)GATE(门控位) GATE=0时,T/C的启动只要用软件使TR0(TR1)置1即可,而不管INT0(INT1)的电平是高还是低。 GATE=1时,只有INT0(INT1)引脚为高电平且由软件使TR0(TR1)置1时,才启动T/C工作,也就是T/C的启动受双重控制。 TMOD不能位寻址,只能由字节设置T/C的工作方式,低半字节设定T/C0,高半字节设定T/C1。 2、控制寄存器TCON(88H) TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TF1:定时器/计数器T/C1的溢出中断请求标志位。T/C1被启动后,从初始值开始加1计数。当T/C1产生溢出中断(全“1”变为全“0”)时,TF1由硬件自动置位(置“1”),向CPU申请中断;当T/C1的溢出中断为CPU响应后,TF1由硬件自动复位(置“0”),中断申请撤除。 TF0:定时器/计数器T/C0的溢出中断请求标志位。作用和TF1类似。 TR1:T/C1运行控制位,由软件置位或复位,当GATE=0,TR1=1时,启动T/C1计数,TR1=0时,停止T/C1计数。 TR0:T/C0运行控制位,由软件置位或复位,当GATE=0,TR0=1时,启动T/C0计数,TR0=0时,停止T/C0计数。 三、定时器的四种工作方式 1、方式0 是选择T/C1或T/C0高8位和低5位的一个13位计数器的运行方式。在这种方式中,16位寄存器只用13位,其中TL1(TL0)的高3位未用,其余位占整个13位的低5位,TH1(TH0)占高8位。当TL1(TL0)的低5位溢出时,向TH1(TH0)进位,而TH1(TH0)溢出时向TF1(TF0)标志进位。 2、方式1 是一个16位定时器/计数器,TH1(TH0)和TL1(TL0)均是8位的,构成16位计数器。 3、方式2 T/C被拆成一个8位的寄存器TH1(TH0)和一个8位计数器TL1(TL0),两者构成可以自动装载的8位T/C。编程时必须TH1(TH0)和TL1(TL0)置入相同的初值。当T/C1(T/C0)启动后,TL1(TL0)按8位加1计数器计数。每当它计满回零时,一方面向CPU发出溢出中断申请,另一方面从TH1(TH0)中重新获得初值并启动计数。 4、方式3 TH0和TL0按两个独立的8位计数器工作,T/C1无方式3 四、T/C的初始化 1、初始化的步骤 ①确定工作方式,给TMOD送一个方式控制字; ②计算计数初值,并写入TH0、TL0或TH1、TL1; ③根据需要置位EA使CPU开放中断,同时置位ETX, 允许T/C中断; ④给TCON送命令控制字,即置位TRX启动T/C计数。 2、计数器初值的计算 设需要计数器计数的个数为X,计数初值为C,则 C=M-X M为计数器的模值,该值和计
文档评论(0)