单片机定时器工作方式二实现精确定时.ppt

单片机定时器工作方式二实现精确定时.ppt

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
The end,thank you! * 单片机第二次讨论课 ——用单片机定时器工作方式二实现精确定时 通信工程一班二组 功能:实现定时、计数,并对定时、计数的结果进行控制。 1、计数工作模式:对外来脉冲进行计数 2、定时工作模式:对来自单片机内部的脉冲进行计数,根据计数值计算定时时间 结构:MCS-51内部有两个16位可编程的定时器/计数器T0和T1。T0(T1)由两个8位寄存器TH0(TH1)和TL0(TL1)拼装而成。其中TH0(TH1)为高8位,TL1(TH1)为低8位。 MCS-51系列单片机定时器/计数器 MCS-51定时器、计数器结构图 TH1、TL1 、TH0、TL0为四个八位特殊功能寄存器。 单片机复位时,寄存器的所有位都被清0。 工作方式寄存器TMOD 选择计数器/定时器的工作模式和工作方式。 门控位 0:TRX=1启动定时器/计数器运行; 1:TRX=1,终断引脚高电平启动定时器/计数器运行 工作方式选择位M1、M0 00:工作方式0 01:工作方式1 10:工作方式2 11:工作方式3 计时器模式和定时器模式选择位 0:定时模式 1:计数模式 定时器/计数器控制寄存器TCON 控制定时器/计数器的启动和停止计数,包含其状态 计数运行控制位1:启动定时器/计数器工作 0:停止定时器/计数器工作 计数溢出标志位 中断允许位 中断请求触发方式控制位 定时器/计数器的四种工作方式 方式1:M1 、M0=01,13位计数器 工作方式0逻辑结构图 决定工作方式 0:定时器模式,时钟周期/12为计数信号 1:计数器模式,P3.4、P3.5外部输入脉冲为技术脉冲,引脚信号跳变,计数器加一 ●定时器/计数器T0和T1在方式0下的工作情况完全相同。此时的计数寄存器为13位,构成如下: ●方式0下的计数溢出值为8192(2的13次方)。 ●计数次数=8192-计数初值 ●定时时间=(8192-计数初值)×机器周期 ●机器周期=12/时钟周期 方式1:M1 、M0=01,16位计数器 工作方式1逻辑结构图 ●定时器/计数器T0和T1在方式0下的工作情况完全相同。此时的计数寄存器为16位,构成如下: ●方式1下的计数溢出值为65536(2的16次方) ●计数次数=65536-计数初值 ●定时时间=(65536-计数初值)×机器周期 ●机器周期=12/时钟周期 方式2:M1 、M0=10,8位计数器 工作方式2逻辑结构图 方式二工作过程 TLX作为常数缓冲器,当TLX计数溢出时,在置“1”溢出标志TFX的同时,还自动的将THX中的初值送至TLX,使TLX从初值开始重新计数。 方式2下的计数溢出值为256。则: ●计数次数=256-计数初值 ●定时时间=(256-计数初值)×机器周期 工作方式2与工作方式0、1的比较 每次定时/计数之后计数寄存器的内容为0,在下一次定时/计数后都要进行初值重载。 ●在方式0和方式1中,初值重载是由软件实现的。如果需要多次进行定时/计数,则需占用较多CPU时间。影响技术精度且程序设计麻烦 ●在方式2下可由硬件实现初值重载,简化初值计算,可用于精确计时。 方式3:M1 、M0=11,8位计数器 只适用于T0,T1不可工作于方式三。 方式3状态下,T1相当于TR1=0,停止计数 TH0被固定为一个8位计数器,相当于有三个定时器/计数器 T0工作于方式三时,T1可工作于方式一、方式二、方式三。 利用方式二进行精确定时 ●时钟频率为6MHZ,产生1ms的方波 1、计数初值计算 机器周期=12/晶振频率= 设计数初值为X,则: 解得:X=6=06H 2、程序设计 ORG 000H LJMP MAIN ORG 001BH LJMP IT1P ORG 0100H MAIN: MOV SP , #60H ;主程序入口,设堆栈指针 MOV TMOD, #20H MOV TCON,#00H MOV TL1,#06H ;T1置初值 MOV TH1,#06H SETB TR1 ;启动T1 SETB ET1 ;允许T1中断 SETB EA ;CPU开中断 HERE: LJMP HERE IT1P: MOV TL1,#

文档评论(0)

junjun37473 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档