精atmega寄存器笔记整理.doc

上传人:b****2 文档编号:337709 上传时间:2022-10-09 格式:DOC 页数:35 大小:488KB
下载 相关 举报
精atmega寄存器笔记整理.doc_第1页
第1页 / 共35页
精atmega寄存器笔记整理.doc_第2页
第2页 / 共35页
精atmega寄存器笔记整理.doc_第3页
第3页 / 共35页
精atmega寄存器笔记整理.doc_第4页
第4页 / 共35页
精atmega寄存器笔记整理.doc_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

精atmega寄存器笔记整理.doc

《精atmega寄存器笔记整理.doc》由会员分享,可在线阅读,更多相关《精atmega寄存器笔记整理.doc(35页珍藏版)》请在冰豆网上搜索。

精atmega寄存器笔记整理.doc

一、中断寄存器

中断

是指微处理器在程序执行期间响应外部的事务请求,暂停当前的处理器工作转而处理外部事件,外部事件处理完成之后返回原来工作暂停的地方继续执行程序。

Atmega16具有21个中断源,每个中断源都有独立的中断向量作为中断服务程序的入口地址,而且所有的中断源都有自己独立的使能位。

如果中断位I和中断向量使能位都置位,则中断发生,中断标志位置位,并执行中断服务程序。

中断向量表见表2,处于越低地址的中断具有更高优先级。

表2中断向量表向量号

程序地址

中断源

描述

1

0x00

RESET

外部引脚电平引发的复位,上电复位,掉电

检测复位,看门狗复位,以及JTAGAVR复位

2

0x02

INT0

外部中断请求0

3

0x04

INT1

外部中断请求1

4

0x06

TIMER2COMP

定时器/计数器2比较匹配

5

0x08

TIMER2OVF

定时器/计数器2溢出

6

0x0a

TIMER1CAPT

定时器/计数器1事件捕捉

7

0x0c

TIMER1COMPA

定时器/计数器1比较匹配A

8

0x0e

TIMER1COMPB

定时器/计数器1比较匹配B

9

0x10

TIMER1OVF

定时器/计数器1溢出

10

0x12

TIMER0OVF

定时器/计数器0溢出

11

0x14

SPI,STC

SPI串行传输结束

12

0x16

USART,RXC

USART,Rx结束

13

0x18

USART,UDRE

USART数据寄存器空

14

0x1a

USART,TXC

USART,Tx结束

15

0x1c

ADC

ADC转换结束

16

0x1e

EE_RDY

EEPROM就绪

17

0x20

ANA_COMP

模拟比较器

18

0x22

TWI

两线串行接口

19

0x24

INT2

外部中断请求2

20

0x26

TIMER0COMP

定时器/计数器0比较匹配

21

0x28

SPM_RDY

保存程序存储器内容就绪

<一>全局中断控制位

1、状态寄存器SREG

bit7

bit6

bit5

bit4

bit3

bit2

bit1

bit0

I

T

H

S

V

N

Z

C

I:

全局中断使能位。

在I置位后,单独的中断使能由不同的中断寄存器控制。

若I为0,则禁止中断。

<二>外部中断?

2.MCU控制寄存器MCUCR

bit7

bit6

bit5

bit4

bit3

bit2

bit1

bit0

SM2

SE

SM1

SM0

ISC11

ISC10

ISC01

ISC00

SE:

MCU休眠使能位

SM1~SM0:

MCU休眠模式选择

SM2

SM1

SM0

休眠模式

0

0

0

空闲

0

0

1

ADC噪声抑制模式

0

1

0

掉电模式

0

1

1

省电模式

1

0

0

保留

1

0

1

保留

1

1

0

Standby

(1)模式

1

1

1

扩展Standby

(1)模式

ISC11~ISC10:

外部中断INT1的中断检测方式

ISC11

ISC10

INT1中断

0

0

低电平中断

0

1

INT1引脚上任意的逻辑电平变化都将引发中断

1

0

下降沿中断

1

1

上升沿中断

ISC01~ISC00:

外部中断INT0的中断检测方式

ISC01

ISC00

INT0中断

0

0

低电平中断

0

1

INT1引脚上任意的逻辑电平变化都将引发中断

1

0

下降沿中断

1

1

上升沿中断

3.通用中断屏蔽寄存器GICR

bit7

bit6

bit5

bit4

bit3

bit2

bit1

bit0

INT1

INT0

INT2

-

-

-

IVSEL

IVCE

INT1:

使能外部中断请求1

INT0:

使能外部中断请求0

INT2:

使能外部中断请求2

4.通用中断标志寄存器GIFR

bit7

bit6

bit5

bit4

bit3

bit2

bit1

bit0

INTF1

INTF0

INTF2

-

-

-

IVSEL

IVCE

INTF1:

外部中断标志

INT1引脚电平发生跳变时触发中断请求,并置位相应的中断标志INTF1。

如果SREG的位I以及GICR寄存器相应的中断使能位INT1为”1”,MCU即跳转到相应的中断向量。

进入中断服务程序之后该标志自动清零。

此外,标志位也可以通过写入”1”来清零。

INTF0:

外部中断标志

INT0引脚电平发生跳变时触发中断请求,并置位相应的中断标志INTF0。

如果SREG的位I以及GICR寄存器相应的中断使能位INT0为”1”,MCU即跳转到相应的中断向量。

进入中断服务程序之后该标志自动清零。

此外,标志位也可以通过写入”1”来清零。

INTF2:

外部中断标志

INT2引脚电平发生跳变时触发中断请求,并置位相应的中断标志INTF1。

如果SREG的位I以及GICR寄存器相应的中断使能位INT2为”1”,MCU即跳转到相应的中断向量。

进入中断服务程序之后该标志自动清零。

此外,标志位也可以通过写入”1”来清零。

<三>定时器/计数器

AVR的三个定时/计数器。

他们分别是T/C0、T/C1、T/C2,其中

T/C0和T/C2是8位定时/计数器,

T/C1是16位定时/计数器。

如T/C0工作模式:

1、普通模式

2、CTC模式

3、快速PWM模式和

4、相位修正PWM模式

这4种工作模式,每种模式分别对应相应的功能。

普通模式:

这是较为简单的模式,在此模式中,计数器不停的累加,直到计数器溢出(0xff)。

溢出之后的下一个指令周期里,计数器会回到最小值(0x00)开始累加,计数器标志位(TOV0)置位。

此时的TOV0不会自动清零,只有在总中断和T/C0中断开启,进入中断服务子函数时,TOV0才会自动清零。

CTC模式:

所谓CTC模式也就是输出比较模式。

在普通模式,计数器会一直累加到最大值256,而在输出比较模式(CTC),另一寄存器(OCR0)可以决定最大值的大小。

在达到OCR0设定值后,还能产生中断,触发改变相应管脚(PB3:

OC0)的逻辑电平。

利用这一特点,多用来产生需要的波形。

后面会编写一个方波产生的例子来说明。

由于CTC模式没有双缓冲功能,在计数器以无预分频器或很低的预分频器工作的时候将TOP 更改为接近BOTTOM的数值时要小心。

如果写入的OCR0数值小于当前TCNT0的数值,计数器将丢失一次比较匹配。

多小才要注意,要看代码的效率决定。

快速PWM模式:

PWM翻译过来就是"脉宽调制模式"。

此模式同样用于生成波形。

与输出比较模式区别的是:

在输出比较模式中,当TCNT0到达OCR0时,TCNT0清零,相应管脚逻辑电平改变,从而产生波形变化;在PWM模式中,TCNT0的值是从0X00到0XFF,管脚逻辑电平变化的地方是TCNT0的值与OCR0相等时,但此时并不对TCNT0进行清0操作。

相位修正PWM模式:

和"快速PWM模式"作用相似。

不同是,计数器从0X00到0XFF,然后从0XFF到0X00计数,产生对称的双向斜波。

1.定时器0以及定时器共同相关寄存器

(1)T/C控制寄存器TCCR0(主要作用:

确定工作模式)

bit7

bit6

bit5

bit4

bit3

bit2

bit1

bit0

FOC0

WGM00

COM01

COM00

WGM01

CS02

CS01

CS00

FOC0:

强制输出比较位

FOC0仅在WGM00指明非PWM模式时才有效。

但是,为了保证与未来器件的兼容性,在使用PWM时,写TCCR0要对其清零。

对其写1后,波形发生器将立即进行比较操作。

比较匹配输出引脚OC0将按照COM01:

0的设置输出相应的电平。

要注意FOC0类似一个锁存信号,真正对强制输出比较起作用的是COM01:

0的设置。

FOC0不会引发任何中断,也不会在利用OCR0作为TOP的CTC模式下对定时器进行清零的操作。

读FOC0的返回值永远为0。

WGM01WGM01波形产生模式

这几位控制计数器的计数序列,计数器的最大值TOP,以及产生何种波形。

T/C支持的模式有:

普通模式,比较匹配发生时清除计数器模式(CTC),以及两种PWM模式。

模式

WGM01

WGM00

T/C的工作模式

TOP

OCR0的更新时间

TOV0的置位时刻

0

0

0

普通

0xFF

立即更新

MAX

1

0

1

相位修正PWM

0xFF

TOP

BOTTOM

2

1

0

CTC

OCR0

立即更新

MAX

3

1

1

快速PWM

0xFF

TOP

MAX

COM01COM00比较匹配输出模式(位5和位4—COM:

比较匹配输出模式。

这决定了比较匹配发生时,输出管脚OC0的电平。

当然,管脚首先要配置为输出。

触发电平除了和下表的配置有关外,还和WGM确定的工作模式相关。

这些位决定了比较匹配发生时输出引脚OC0的电平。

如果COM01:

0中的一位或全部都置位,OC0以比较匹配输出的方式进行工作。

同时其方向控制位要设置为1以使能输出驱动器。

当OC0连接到物理引脚上时,COM01:

0的功能依赖于WGM01:

0的设置。

下表给出了当WGM01:

0设置为普通模式或CTC模式时COM01:

0的功能。

比较输出模式,非PWM模式

COM01

COM00

说明

0

0

正常的端口操作,不与OC0相连接

0

1

比较匹配发生时OC0取反

1

0

比较匹配发生时OC0清零

1

1

比较匹配发生时OC0置位

比较输出模式,快速PWM模式

COM01

COM00

说明

0

0

正常的端口操作,不与OC0相连接

0

1

保留

1

0

比较匹配发生时OC0A清零,计数到TOP时OC0置位

1

1

比较匹配发生时OC0A置位,计数到TOP时OC0清零

注意:

一个特殊情况是OCR0等于TOP,且COM01置位。

此时比较匹配将被忽略,而计数到TOP时OC0的动作继续有效。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1