[信息与通信]AVR单片机9.ppt

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

单片机设计技术 AVR单片机应用设计 陈渊睿 小灵通E-mail: ep02@163.com 华南理工大学电力学院 第九章 定时器/计数器及其应用 AT90S8535(及mega8535等) 单片机有 3 个通用定时器/计数器,即两个 8 位的定时器/计数器 (T/C0和T/C2)、一个16位的定时器/计数器(T/C1) 定时器/计数器0(T/C0)和定时器/计数器1(T/C1)从同一个 10 位的预分频定时器取得预分频时钟(但有独立的预分频选择)。 定时器/计数器2(T/C2)有自己的预分频器。定时器/计数器2(T/C2)可以选择异步外部振荡器,如在引脚PC6,PC7接32768Hz的表振做实时时钟(RTC) 定时器/计数器常用作带内部时钟时基的定时器或用作外部引脚上的脉冲计数器,其中有些还具有输入捕获、比较匹配、PWM脉宽调制输出等功能 AT90S8535 单片机还有一个看门狗定时器 WDT 用于程序的抗干扰 9.1 T/C0和T/C1的预定比例器 两个定时器/计数器的时钟可选CK或四种不同的预定比例CK/8,CK/64,CK/256和CK/1024;还可选外部源(脉冲)或定时器/计数器停止不用 9.2 定时器/计数器0 (T/C0) 9.2.1 T/C0的结构特点和作用 8位加1计数器。由$00开始计数,计到$ff后再来一时钟则溢出,计数器清0。可用作定时和计数 用作定时,时钟来自晶振时钟CK或其四种分频,由于时钟频率准确,溢出的时间间隔是准确的;用作外计数时,外部引脚T0(PB0)输入信号,可选上升沿或下降沿计数;T/C0还可以停止不用 T/C0的控制寄存器TCCR0控制T/C0的工作方式。溢出状态标志位在定时器/计数器中断标志寄存器TIFR中。T/C0的中断使能/禁止位设置在定时器/计数器中断控制屏蔽寄存器TIMSK中。 当T/C0用T0引脚外计数时,为了确保CPU对外部信号获取正确的采样,外部信号两种电平转换之间的最少时间必须维持一个内部CPU的时钟周期。外部时钟信号是在内部CPU时钟的上升沿被采样的 9.2.2 T/C0有关的I/O寄存器 1、T/C0控制寄存器TCCR0 位7~3: Res 保留位, 总读为0 位2,1,0: CS02,CS01,CS00 时钟选择0, 位2,1和0 时钟选择0的位2,1和0定义T/C0的预定比例源(prescaling source) 1、T/C0控制寄存器TCCR0 停止条件可使能/禁止定时器 预比例模式直接来自振荡器时钟的分频 如果使用外部引脚模式,则相应的数据方向控制寄存器一般应设为输入(对于T0即PB0引脚,DDRB中的DDB0位应清零)。对于mega8535,即使PB0设为输出,其状态转换也可作为时钟源,允许软件控制计数 2、T/C0的计数寄存器TCNT0 用于存放T/C0的(当前)计数值,可读写访问 若TCNT0被写入, 同时存在时钟源,则T/C0在写入操作之后继续计数 8位增量计数器,计到 $ff 后再来一时钟则溢出,TCNT0清0。T/C0溢出后,定时器/计数器中断标志寄存器TIFR中的 TOV0 位置1,若此时定时器/计数器中断屏蔽寄存器TIMSK中的T/C0溢出中断使能位TOIE0为1,且SREG中的 I 位为1,则可产生T/C0 溢出中断(转去执行相应的中断例程) 9.3 定时器/计数器0应用举例 1、T/C0作计数器 (无中断) 脉冲信号从PB0(T0)引脚输入,T/C0作计数器,计数结果由 PC 口以二进制从发光二极管显示输出 .include 8535def.inc .org $000 rjmp main main: ldi r16,low(ramend) ;栈指针置初值 out spl,r16 ldi r16,high(ramend) out spH,r16 ldi r16,$07 部T0上升沿计数 out tccr0,r16 ldi r16,0 ;T/C0 置初值 0 out tcnt0,r16 ldi r16,$ff ;PC 口作输出 out ddrc,r16 loop: in r16,tcnt0 ;PC口实时指示计数值 out portc,r16 rjmp loop 2、T/C0作定时器(溢出中断) T/C0 作定时器,8MHz晶振,1024分频,128?s 计1个数。T/C0初值为131,每计125个数(16ms),T/C0溢出1次。其中断服务子程序使PC0改变方向,产生周期为32ms的方波信号 .include 8535def

文档评论(0)

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

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

1亿VIP精品文档

相关文档