定时计数器讲解.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
定时计数器讲解

第九章. 8535单片机定时器/计数器 有3个通用加1定时器/计数器: §9.1定时器/计数器0和1的预定比例器 定时器/计数器0和1的时钟来源 §9.2 定时器/计数器0(T/C0) 二、T/C0有关的I/O寄存器 与T/C 0中断有关的I/O寄存器位 三、T/C 0的使用方法 三、T/C 0的使用方法… 三、T/C 0的使用方法… §9.3 定时器/计数器0应用举例-1 例1.T/C0作计数-编程 例1.T/C0作计数-编程…. 例1.T/C0作计数-编程…. 例1.T/C0作计数-编程…. 例2 -T/C0作定时器 例2 -T/C0作定时器…编程..主程序 T/C0溢出中断服务子程序 例3.T/C0溢出中断动态扫描五位数码管显示 例3.T/C0溢出中断动态扫描五位数码管显示 * 另外有一个看门狗定时器(WDT): 用于程序的抗干扰。 其中2个8位的(T/C0和T/C2);1个16位的(T/C1)。 基本功能是: 内部定时 外部脉冲计数 有些还具有特殊功能:输入捕获、比较匹配、PWM脉宽调制输出。 时钟源选择:可软件编程设定。 通过设置I/O寄存器的相应位 主频 外部引脚 停止 时钟来源 例如:若主频8MHz,256分频,则计数一个脉冲为: 32us 时钟源可通过I/O寄存器中CSX2, CSX1, CSX0位编程设定。 2 、内部定时时: 用主晶振(主频)的1、8、64、256、1024分频作基准时间来计数,达到定时的目的。 1、外计数时: 或 计一个数。 3 、停止定时/计数。 一、T/C0的特点和作用 为8位加1计数器,从00开始计数,计数到$FF后再来一个脉冲计数器回零则溢出。可用作定时和外部脉冲计数。可以产生溢出中断请求。 外计数说明 8535 T0(PB0) 可选择上升沿或下降沿计数 单片机内部时钟的上升沿采样一次引脚T0,因此外部脉冲的高、低电平都应至少持续一个CPU时钟周期。 1、8位计数器0: TCNT0 地址:$32 ( $52 );可读可写;初值$00 - - - - - CS02 CS01 CS00 2、T/C0控制寄存器---TCCR0-- $33($53) 0 0 0 停止 0 0 1 CK 0 1 0 CK/8 0 1 1 CK/64 1 0 0 CK/256 1 0 1 CK/1024 1 1 0 T1脚下降沿计数 1 1 1 T1脚上升沿计数 可读可写; 初值$00 作用: 设定T/C0的时钟源 OCIE2 TOIE2 TICIE1 OCIE1A OCIE1B TOIE1 ---- TOIE0 3、T/C中断屏蔽寄存器---TIMSK-- $39($59) OCF2 TOV2 ICF1 OCF1A OCF1B TOV1 ---- TOV0 4、T/C中断标志寄存器---TIFR-- $38($58) TOV0: T/C0溢出中断标志 TOIE0 : T/C0溢出中断允许,1:允许,0:禁止。 T/C0溢出时置1 TOV0位。 TOV0 TOIE0 T/C0向CPU发出中断请求。 3和4的初值为00,可读可写 1、计数、定时方式的选择,设定。 外部计数:(上升沿或下降沿可选) 定时:根据定时时间与主频选择适 当的分频系数。 停止 TCCR0 控制字 2、确定或计算T/C 0 的时间常数。还有分频系数。 即:TCNT0的赋值;注意:可以定时的时间是非连续的。 例1:要求T/C 0 每计数100个发出中断请求。确定时间常数。….. TCNT0 =? …. 例2:已知主频8MHz,要求定时16ms。分频系数=? TCNT0 =? …. 。 3、 若用T/C0溢出中断 TIFR中TOV0: T/C0溢出中断标志. T/C0溢出时置1 TOV0位。 TIMSK 中TOIE0 : T/C0溢出中断允许,1:允许。 TOV0 TOIE0 T/C0向CPU发出中断请求。 CPU响应的条件? 是CPU开中断,即设定SREG中I位=1。用SEI指令实现。 即: 4、 T/C 0的时间常数不能自动再装入。 对于需要多次中断的场合,必须在其中断服务子程序中将时间常数(计数的初值)重新赋给TCNT0。因此有时难以实现精确定时。 注意:与定时器/计数器有关的I/O寄存器的直接地址大于$1f,不属于前32个,不能用CBI,SBI指令进行操作。 例如: 将TIMSK中TOIE0 置1, 即设置T/C0溢出中断允许。 LDI R16, 01 OUT TIMSK, R16 例1.T/C0 作计数 脉冲信号从PB0(T0)引

文档评论(0)

asd522513656 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档