AVR
This presentation is the property of its rightful owner.
Sponsored Links
1 / 9

AVR 单片机软硬件设计教程 - 入门篇 —— 学单片机就要学 AVR ! PowerPoint PPT Presentation


  • 139 Views
  • Uploaded on
  • Presentation posted in: General

AVR 单片机软硬件设计教程 - 入门篇 —— 学单片机就要学 AVR !. 主 讲 : 尹延辉 策 划:张 勇 学习板: LT-Mini-M16 力天电子版权所有 技术交流 QQ 群: 31646346 www.lt430.com 2008年 9 月. 第六讲 中断与定时器. 本讲内容: 中断的概念 M16 的外部中断 定时器的概念 M16 的定时器 中断方式使用定时器. 中断的概念. 在程序运行期间,发生非预期的紧急事件 通常是为了避免查询方式的程序设计 用得最多的是外部中断与定时器中断 外部中断:按键程序

Download Presentation

AVR 单片机软硬件设计教程 - 入门篇 —— 学单片机就要学 AVR !

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Avr avr

AVR单片机软硬件设计教程-入门篇——学单片机就要学AVR!

主 讲: 尹延辉

策 划:张 勇

学习板:LT-Mini-M16

力天电子版权所有

技术交流QQ群:31646346

www.lt430.com

2008年9月


Avr avr

第六讲中断与定时器

  • 本讲内容:

  • 中断的概念

  • M16的外部中断

  • 定时器的概念

  • M16的定时器

  • 中断方式使用定时器


Avr avr

中断的概念

  • 在程序运行期间,发生非预期的紧急事件

  • 通常是为了避免查询方式的程序设计

  • 用得最多的是外部中断与定时器中断

  • 外部中断:按键程序

  • 定时器中断:定时与循环扫描等应用场合

  • 中断服务程序

  • 中断发生时,主程序暂停,跳转到中断服务程序,称为“响应中断”

  • 执行完毕后返回主程序继续运行


Avr avr

M16的外部中断

  • M16具有3个外部中断

  • INT0、INT1:

  • 支持4种触发模式,同步触发

  • INT2

  • 支持2种触发模式,异步触发

  • 中断相关库函数的头文件

  • avr/interrupt.h

  • 中断服务程序

    SIGNAL(SIG_INTERRUPT0)

    {

    //此处添加中断服务代码

    }

  • 中断有关的寄存器

  • MCUCR

  • MCUCSR

  • GICR


Avr avr

外部中断使用步骤

  • 第1步:包含头文件

  • #include <avr/interrupt.h>

  • 第2步:设置中断触发方式

  • 任意逻辑电平变化: MCUCR |= (1 << ISC10);

  • 下降沿触发:MCUCR |= (1 << ISC10)|(1 << ISC11);

  • 上升沿触发:MCUCR |= (1 << ISC11);

  • 第3步:使能响应相应外部中断

  • GICR |= (1 << INT0);

  • 第4步:使能全局中断

  • sei();

  • 第5步:编写中断服务程序

  • SIGNAL(SIG_INTERRUPT0){}


Avr avr

定时器的概念

  • 8位定时/计数器的模型

  • 1个8位长度计数寄存器,可以对其进行读写

  • 1个时钟输入端口,计数寄存器对时钟输入端口的时钟脉冲个数进行加1计数,即每来一个时钟脉冲,寄存器的数值自加1

  • 如何实现精确定时?

  • 给计数寄存器设定初值n0

  • 给时钟输入端口输入一个频率精确的方波方波周期为t0

  • 计数器计数到256时定时器溢出,时间间隔为:

    △T = (256 – n0) ×t0

  • 定时器溢出时可以产生中断


Avr avr

定时器溢出方式的应用

  • M16的定时器0

  • 8位定时器

  • 具有PWM功能

  • 定时器0相关寄存器

  • T/C 控制寄存器- TCCR0

  • 设置时钟源频率

  • T/C 寄存器- TCNT0

  • 计数寄存器

  • T/C 中断屏蔽寄存器- TIMSK

  • 需要使用溢出中断时

  • T/C 中断标志寄存器- TIFR

  • 查询是否溢出


Avr avr

定时器0溢出方式查询模式使用步骤

  • 第1步:设置TC寄存器初值

  • TCNT0 = 55;

  • 第2步:开启时钟,同时TC0启动

  • TCCR0 |= (1 << CS01);

  • 第3步:查询TIFR寄存器的TOV0位

  • while(!(TIFR & TOV0));


Avr avr

定时器0溢出方式中断模式使用步骤

  • 第1步:包含中断函数头文件

  • #include <avr/interrupt.h>

  • 第2步:设置TC寄存器初值

  • TCNT0 = 55;

  • 第3步:使能TC0溢出中断

  • TIMSK |= (1 << TOIE0);

  • 第4步:编写TC0溢出中断服务程序

    SIGNAL(SIG_SIG_OVERFLOW0)

    {//此处添加中断服务程序代码}

  • 第5步:开启时钟,同时TC0启动

  • TCCR0 |= (1 << CS01);

  • 第6步:使能全局中断

  • sei();


  • Login