网站大量收购独家精品文档,联系QQ:2885784924

[工学]第12章 MCS-51的定时器-计数器.ppt

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]第12章 MCS-51的定时器-计数器

第 12 章 MCS-51的定时器/计数器 内容安排 一. 内部结构及工作原理 二. 定时器/计数器的控制 三. 工作方式 四. 初始化 五. 应用举例 §12.1 内部结构及工作原理 MCS-51内部提供2个16位可编程的定时器/计数器,可编程修改定时或计数的参数/方式 特点: T/C0和T/C1的内部结构基本相同,它们即可独立工作,也可相互组合工作 T/C0是一个16位加1计数器,也可以拆成两个8位的专用寄存器(TH0和TL0)独立使用,它们各自占一个端口地址TH0→8CH, TL0→ 8AH, TH1→8DH, TL1→ 8BH 16位加1计数器复位后初始值为0000H,用来存放定时或计数的初值 每来一个计数脉冲,计数器加1,加满后(FFFFH→ 0000H),将产生一个溢出脉冲,使标志位TF0置“1”,该标志位可产生一个中断请求,也可供CPU查询 启动计数后与CPU并行工作 T/C0可工作于定时模式或计数模式,工作方式有四种:方式0~3,由寄存器TMOD、TCON设定 1. 定时方式 计数固定周期的脉冲 §12.2 定时器/计数器的控制 定时器/计数器的工作模式及方式由SFR(TMOD、TCON)控制 (1)M1、M0:工作方式选择位 (2)C/T:计数/定时工作方式选择位 2. 控制寄存器TCON(88H) 功能:控制定时器的启动、停止以及定时器的溢出和中断情况 §12.3 工作方式 1. 工作方式0 TH0进位,TH0溢出(回零)→TF0标志进位(TF0=1) →CPU申请中断 通过查询TF0=1?判断TH0是否回零溢出 注意: 初值一次性有效,否则从0开始 再次计数,需通过软件重新装入初值 最大定时/计数值为213 2. 工作方式1 3. 工作方式2 工作过程: 注意: 初值多次有效,硬件自动完成初值赋值 通过软件修改初值 最大定时/计数值为28 4. 工作方式3 T/C1不工作于方式3,且只能按非中断的方式工作,常常利用它的定时功能作串行口波特率发生器 §12.4 初始化 1. 初始化步骤 2. 计数器初值的计算 计数/定时器工作于计数模式时,首先给计数器送初值到TH0/TL0、TH1/TL1中 计数器/定时器是加1计数,全“1”到全“0”溢出,置位TF0/TF1中断标志,向CPU提出中断请求 设需要计数器计数的个数为X,计数初值为C,则计算计数初值表达式: C = M - X 3. 定时器初值的计算 定时模式下,计数器对单片机振荡频率fosc经12分频后的机器周期进行加1计数 设X表示计数个数,M表示模,C表示定时初值,Tcy表示机器周期(Tcy =12/ fosc),则定时时间T的计算公式: T = X · Tcy =(M - C) Tcy 例12-1:设单片机主时钟fosc=12MHz,定时时间2ms,请编出初始化程序 解:① 设置工作方式控制字 (TMOD)(89H)= 0 0 0 0 0 0 0 0 = 00H (方式0) = 0 0 0 0 0 0 0 1 = 01H (方式1) §12.5 应用举例 1. 方式0的应用 (3)计算定时初值 Tcy = 12 / fosc=12/(12×106) s = 1 μs 计数个数: X = 1 ms / 1μs = 1000 定时初值: C = (213-X)= 8192 - 1000 = 7192 D = 1C18H = 11000B TH0初值为E0H,TL0初值为18H 主程序: ORG 1000H MAIN: MOV SP, #6FH MOV TMOD, #00H ;置T/C0的方式0,定时 MOV TH0, #0E0H ;送定时初值 MOV TL0, #18H SETB EA ;CPU开中断 SETB ET0 ;T/C0允许中断 SETB TR0 ;启动T/C0定时 HERE: SJMP HERE ;等待中断 查询方式 程序: ORG 0000H LJMP MAIN ;转到主程序MAIN ORG 1000H MAIN: MOV SP, #6FH MOV TMOD, #00H ;置T/C0的方式0,定时 MOV TH0, #0E0H ;送定时初值 M

文档评论(0)

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

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

1亿VIP精品文档

相关文档