【007】AVR单片机中断系统

AVR单片机的21个中断源

I/O端口的第二功能

AVR单片机共有单个定时器,定时/计数器1是16bit的,其余的定时/计数器0和定时/计数器2都是8bit的定时器。

定时器的工作模式

  • 普通模式
  • CTC模式
  • 快速PWM模式
  • 相位修正PWM模式
  • 相位频率修正PWM模式
  • 输入捕获模式

和51单片机的定时计数器类似,根据设定的时钟频率,每过一个时钟,计数寄存器数值加1。

用到的寄存器

T/C1控制寄存器B:(控制时钟的来源和频率)

后三位的设置,1表示定时器停止,2~6表示不同频率的内部时钟,7~8表示外部驱动。

计数寄存器

根据每次中断的时间要计算一个预装的值,然后开始数数,一直数到65535,产生溢出中断,刚好是我们要的时间。这个时间就是预装值到65536的计数时间。

具体的计算:
假设我们的中断时间是1秒,也就是说每隔1秒,要寄存器溢出一次,产生中断。
因为avr单片机的主频是8MHZ,也就是每秒有8M个时钟周期,即每秒能数数8M次。
再假设我们第一步选择的时钟选择位为001,也就是选择的时钟频率是:8M/256=31250
也就是每秒有31250个时钟周期,每个时钟周期用时(1/31250)s,也就是每隔(1/31250)s计数器加1。
则数数31250次就是1秒,所以寄存器的预装值是65535-31250=34285.
转换成16进制就是0x85EDH。然后把这个数的高低位分别装入到寄存器TCNT1的高低端。

中断屏蔽寄存器和总中断

TOIE1 = 1就是打开T/C1的中断屏蔽。

使用中断时必须先开启总中断SREG|=BIT(7)

时间: 2024-10-13 04:21:19

【007】AVR单片机中断系统的相关文章

51单片机中断系统

51中断系统 1.什么是中断 中断是CPU在执行程序是不需要管中断源的状态,当中断源满足中断触发条件时CPU再去进行终端处理 2.中断源 80C51共五个中断源分别是两个外部中断源:INT0.INT1,两个定时中断源T0.T1,一个串行口中断源 每个中断源对应着一个中断入口地址 中断源 入口地址 外部中断源INT0 0003H 定时器T0 000BH 外部中断源INT1 0013H 定时器T1 001BH 串行口中断 0023H 3.中断控制 3.1.     定时控制寄存器TCON 控制对象

单片机的中断系统

中断概念 正常的工作过程被外部的事件打断了,EX 你正在家中看书,突然电话铃响了,你放下书本,去接电话,和来电话的人交谈,然后放下电话,回来继续看你的书. 中断源 引起中断的事件称之为中断源,51中一共有5五个:两个外部中断,两个计数/定时器中断,一个串行口中断. 中断优先级与嵌套 当两个中断同时产生时,就要考虑优先级. 当一个中断已发生,又一个中断产生了,又要考虑另一种嵌套优先级. 中断的响应过程 保护断点:保存下面将要执行的指令地址送人堆栈,以便中断处理完之后回到原来地方继续执行 寻找中断入

AVR单片机教程——定时器中断

本文隶属于AVR单片机教程系列. ? 中断,是单片机的精华. 中断基础 当一个事件发生时,CPU会停止当前执行的代码,转而处理这个事件,这就是一个中断.触发中断的事件成为中断源,处理事件的函数称为中断服务程序(ISR). 中断在单片机开发中有着举足轻重的地位--没有中断,很多功能就无法实现.比如,在程序干别的事时接受UART总线上的输入,而uart_scan_char等函数只会接收调用该函数后的输入,先前的则会被忽略.利用中断,我们可以在每次接受到一个字节输入时把数据存放到缓冲区中,程序可以从缓

AVR单片机入门

ATMEL公司有基于8051内核.基于AVR内核和基于ARM内核的三大系列单片机产品. 先进的EEPROM电可擦除和Flash ROM闪速存储器技术. 8051单片机采用复杂指令系统:CISC:由于CISC结构存在指令系统不等长,指令数多,CPU利用效率低,执行速度慢等缺陷:AVR单片机采用精简指令系统:RISC:RISC采用流水线操作(Pipelining),和等长指令体系结构. AVR单片机吸取了PIC及8051等单片机的优点,改进: 1.程序存储器为价格低廉.可擦写1万次以上.指令长度单元

单片机成长之路(avr基础篇)- 003 AVR单片机的BOOT区

BOOT区的由来基于一个简单的道理,即单片机的程序是保存在FLASH中的,要运行程序就必须不停的访问FLASH存储器.对于一般的FLASH存储器,数据的写入需要一定的时间来完成,在数据写入完成之前,存储器中所有的数据都是不可读的,这就在运行旧程序和写入新程序之间造成了一个矛盾. 使用BOOT区是解决这个矛盾的方法之一,它将FLASH存储器从物理上分为两个独立的区域,对其中的一个区的数据写入不会影响到另一个区的数据读取操作.我们可以让单片机的程序在其中一个区(通常是BOOT区)运行,而运行着的程序

【001】AVR单片机简介

概述: AVR单片机是1997年由ATMEL公司研发出的增强型内置Flash的RISC(Reduced Instruction Set CPU) 精简指令集高速8位单片机. AVR单片机内嵌高质量的Flash程序存储器,擦写方便,支持ISP和IAP,便于产品的调试.开发.生产.更新.内嵌长寿命的EEPROM可长期保存关键数据,避免断电丢失.片内大容量的RAM不仅能满足一般场合的使用,同时也更有效的支持使用高级语言开发系统程序,并可像MCS-51单片机那样扩展外部 RAM. AVR单片机的I/O线

单片机中断的IE和IP寄存器(摘抄)

收藏 评论(0) 分享到 微博 QQ 微信 LinkedIn 一.中断允许寄存器IE    CPU对中断源的开放或中断屏蔽的控制是通过中断允许寄存器IE设置的,IE既可按字节地址寻址(其字节地址为A8H),又可按位寻址.AT89S52单片机中的6个中断矢量都是可屏蔽中断,通过对IE的某些位置位和清0,允许或禁止某个中断,当对IE的EA位清0时,屏蔽全部中断源.IE中各标志位功能如表1所示: 例:开放外部中断0字节操作:MOV IE,#81H 或 MOV 0A8H,#81H位操作:SETB EA

用定时器中断,单片机中断处理时间大于定时器定时时间会怎样?

如果是不同的中断类型是可以根据优先级嵌套,如果是同一中断类型(如题), 有三种结果:1.马上进入新的中断处理(中断嵌套) 2.等待中断处理完再进入新的中断处理 3.出错. 单片机中断处理时间大于定时器定时时间,在下次中断时间到时,因为中断是同一类型.同一优先级,所以不会马上进入新的中断处理. 而是在本次中断处理结束后,单片机又马上进入新的定时器中断函数,主函数中的语句可能会没有机会运行下去,会影响后面中断的实时性.所以答案为2. 如果为了避免中断嵌套(同一优先级不会发生),在中断处理中人为的在进

嵌入式01 单片机最小系统

一.单片机最小系统一般包括以下几部分: 1.电源 2.中央处理器 3.时钟电路 4.复位电路 二.以下是自己画的51单片机教学板 1.电源电路 也就是为了提供板子所使用的5V和3.3V电压,这里我使用的是USB输入5V,然后通过AMS1117_3_3芯片电压转换芯片转换为3.3V,画原理图时注意把电源隔离开(使用0R电阻隔离,或者飞线),当调试电源没有问题之后然后将0R电阻焊上. 2.中央处理器 STC89C52:8位的CPU,片内带128B的数据存储器,4KB的内部程序存储器,寻址空间为64K