atmega16寄存器笔记整理.docx

上传人:b****6 文档编号:16080141 上传时间:2023-07-10 格式:DOCX 页数:58 大小:87.21KB
下载 相关 举报
atmega16寄存器笔记整理.docx_第1页
第1页 / 共58页
atmega16寄存器笔记整理.docx_第2页
第2页 / 共58页
atmega16寄存器笔记整理.docx_第3页
第3页 / 共58页
atmega16寄存器笔记整理.docx_第4页
第4页 / 共58页
atmega16寄存器笔记整理.docx_第5页
第5页 / 共58页
atmega16寄存器笔记整理.docx_第6页
第6页 / 共58页
atmega16寄存器笔记整理.docx_第7页
第7页 / 共58页
atmega16寄存器笔记整理.docx_第8页
第8页 / 共58页
atmega16寄存器笔记整理.docx_第9页
第9页 / 共58页
atmega16寄存器笔记整理.docx_第10页
第10页 / 共58页
atmega16寄存器笔记整理.docx_第11页
第11页 / 共58页
atmega16寄存器笔记整理.docx_第12页
第12页 / 共58页
atmega16寄存器笔记整理.docx_第13页
第13页 / 共58页
atmega16寄存器笔记整理.docx_第14页
第14页 / 共58页
atmega16寄存器笔记整理.docx_第15页
第15页 / 共58页
atmega16寄存器笔记整理.docx_第16页
第16页 / 共58页
atmega16寄存器笔记整理.docx_第17页
第17页 / 共58页
atmega16寄存器笔记整理.docx_第18页
第18页 / 共58页
atmega16寄存器笔记整理.docx_第19页
第19页 / 共58页
atmega16寄存器笔记整理.docx_第20页
第20页 / 共58页
亲,该文档总共58页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

atmega16寄存器笔记整理.docx

《atmega16寄存器笔记整理.docx》由会员分享,可在线阅读,更多相关《atmega16寄存器笔记整理.docx(58页珍藏版)》请在冰点文库上搜索。

atmega16寄存器笔记整理.docx

atmega16寄存器笔记整理

、中断寄存器

中断

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

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事件捕捉n

7

0x0c

TIMER1COMPA

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

8

0x0e

TIMER1COMPB

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

9

0x10

TIMER1OVF

定时器/计数器1溢出1

10

0x12

TIMER0OVF

定时器/计数器0溢出

11

0x14

SPI,STC

SPI串行传输结束

12

0x16

USART,RXC

USARTRx结束

13

0x18

USART,UDRE

USART数据寄存器空

14

0x1a

USART,TXC

USARTTx结束

15

0x1c

ADC

ADC转换结束

16

0x1e

EERDY

EEPRO就绪

17

0x20

ANACOMP

模拟比较器

18

0x22

TWI

两线串行接口

19

0x24

INT2

外部中断请求2”

20

0x26

TIMER0COMP

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

21

0x28

SPMRDY

保存程序存储器内谷就绪

<一>全局中断控制位

1、状态寄存器SREG

bit7

bit6

bit5

bit4

bit3

bit2

bitl

bit0

I

T

H

S

V

N

Z

C

I:

全局中断使能位。

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

若I为0,则禁止中断。

<二>外部中断?

2.MCU控制寄存器MCUCR

bit7

bit6

bit5

bit4

bit3

bit2

bitl

bit0

SM2

pse

SM1:

SM0

ISC11

「ISC10

rISC01

iscoo:

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〜ISCOO:

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

ISCO1

ISCOO

INTO中断

O

O

低电平中断

O

1

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

1

O

:

下降沿中断

1

1

上升沿中断

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

bit7

bit6

bit5

bit4

bit3

bit2

bit1

bitO

INT1

rINTO

INT2n

-

-

-

IVSEL

IVCE

INT1:

使能外部中断请求1

INTO:

使能外部中断请求0

INT2:

使能外部中断请求2

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

bit7

bit6

bit5

bit4

bit3

bit2

bit1

bitO

INTF1

INTFO

INTF2

-

-

-

IVSEL

IVCE

INTF1:

外部中断标志

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

如果SREG的位I以及GICR

寄存器相应的中断使能位INT1为”1”,MCU即跳转到相应的中断向量。

进入中断服务程序之后该标志自

动清零。

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

INTFO:

外部中断标志

如果SREG的位I以及GICR

进入中断服务程序之后该标志自

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

寄存器相应的中断使能位INTO为”1”,MCU即跳转到相应的中断向量。

动清零。

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

INTF2:

外部中断标志

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

如果SREG的位I以及GICR寄存器相应

的中断使能位INT2为”1”,MCU即跳转到相应的中断向量。

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

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

<三>定时器/计数器

AVR的三个定时/计数器。

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

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

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

如T/C0工作模式:

1、普通模式

2、CTC模式

3、快速PWM模式和

4、相位修正PWM模式

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

普通模式:

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

溢岀之后的

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

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

会自动清零。

CTC模式:

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

在普通模式,计数器会一直累加到最大值256,而在输岀

比较模式(CTC),另一寄存器(OCR0)可以决定最大值的大小。

在达到OCR0设定值后,还

能产生中断,触发改变相应管脚(PB3:

OC0)的逻辑电平。

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

形。

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

由于CTC模式没有双缓冲功能,在计数器以无预分频

器或很低的预分频器工作的时候将TOP更改为接近BOTTOM勺数值时要小心。

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

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

快速PWM模式:

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

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

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

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

相位修正PWM模式:

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

不同是,计数器从0X00到0XFF,然后从0XFF

到0X00计数,产生对称的双向斜波

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

⑴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后,波形发生器将立即进行比较操作。

比较匹配输出引脚OCO

照COM01:

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

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

是COM01:

0的设置。

FOCO不会引发任何中断,也不会在利用OCRO作为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中的一位或全部都置位,OCO以比较匹

1以使能输出驱动器。

注意:

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

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

效。

比较输出模式,相位修正PWM模式

COM01

COM00

说明

0

0

正常的端口操作,不与

OC0相连接

0

1

保留

1

0

在升序计数时发生比较匹配将清零

OC0,降序计数时

发生比较匹配将置位

OC0

1

1

在升序计数时发生比较匹配将置位

OC0,降序计数时

发生比较匹配将清零

OC0

注意:

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

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

CS00CS01CS02时钟选择(用于选择定时计数器0工作的时钟源。

这也是AVR和51的不同之处,

51的定时计数器只能用机器周期的12分频来工作,而AVR可以任意设置分频。

用于选择T/C的时钟源

CS02

CS01

CS00

说明

0

0

0

无时钟,T/C不工作

0

0

11

clkl/O/1(没有预分频)

0

1

0

clkl/O/8(来自预分频器)

0

1

1

clkI/O/64(来自预分频器)H

1

0

0

clkI/O/256(来自预分频器)

1

0

1

clkI/O/1024(来自预分频器)

1

1

0

时钟由T0引脚输入,下降沿触发n

1

1

1

时钟由T0引脚输入,上升沿触发

如果T/C0使用外部时钟,即使T0被配置为输出,其上的电平变化仍然会驱动记数器。

利用这一特性可通过软件控

制记数。

⑵T/C寄存器TCNT0

(T/C0计数寄存器一TCNT0.T/C0工作时,就是此8位寄存器的值在不断的加1变化。

可对其进行读写操作。

bit7

bit6

bit5

bit4

bit3

bit2

bit1bit0

TCNT0[7:

0]

通过T/C寄存器可以直接对计数器的8位数据进行读写访问。

对TCNT0寄存器的写访问将在下一个时钟阻

止比较匹配。

在计数器运行的过程中修改

TCNT0的数值有可能丢失一次TCNT0和OCR0的比较匹配

⑶输出比较寄存器OCRO

(输出比较寄存器包含一个8位的数据,不间断地与计数器数值TCNT0进行比较。

匹配事件可以用来产生输出比较中断,或者用来在OC0引脚上产生波形。

8位寄存器,不断与TCNT0进行比较操作,在产生输出比较中断,改变OC0上的逻辑电平时,都要用到此寄存器)

⑷T/C中断屏蔽寄存器TIMSK

bit7

bit6

bit5

bit4

bit3

bit2

bit1

bit0

OCIE2

TOIE2

TICIE1

OCIE1A

OCIE1B

TOIE1

OCIE0

TOIE0

⑸T/C中断标志寄存器TIFR

bit7

bit6

bit5

bit4

bit3

bit2

bit1

bit0

OCF2

PTOV2

ICF1J

OCF1A

OCF1B

PTOV1

「OCF0:

TOV0

TOIEO:

——T/CO溢出中断使能

(当TOIE0和状态寄存器的全局中断使能位I都为”1”时,T/C0的溢出中断使能。

当T/C0发生溢出,

即TIFR中的TOV0位置位时,中断服务程序得以执行)。

OCIEO:

T/C0输出比较匹配中断使能

(当OCIEO和状态寄存器的全局中断使能位I都为”1”时,T/C0的输出比较匹配中断使能。

当T/C0的

比较匹配发生,即TIFR中的OCFO置位时,中断服务程序得以执行。

TOIE1:

――T/C1溢出中断使能

(当TOIE1和状态寄存器的全局中断使能位I都为”1”时,T/C1的溢出中断使能。

当T/C1发生溢出,

即TIFR中的TOV1位置位时,中断服务程序得以执行)

OCIE1B:

――T/C1输出比较B匹配中断使能

(当该位被设为"1”,且状态寄存器中的I位被设为"1”时,使能T/C1的输出比较B匹配中断使能。

一旦TIFR上的OCF1B置位,CPU即开始执行T/C1输出比较B匹配中断服务程序。

OCIE1A:

――输出比较A匹配中断使能

(当该位被设为"1”,且状态寄存器中的I位被设为"1”时,T/C1的输出比较A匹配中断使能。

一旦TIFR上的OCF1A置位,CPU即开始执行T/C1输出比较A匹配中断服务程序。

TICIE1:

――T/C1输入捕捉中断使能

(当该位被设为"1”,且状态寄存器中的I位被设为"1”时,T/C1的输入捕捉中断使能。

一旦TIFR的ICF1置位,CPU即开始执行T/C1输入捕捉中断服务程序。

TOIE2:

――T/C2溢出中断使能

(当TOIE2和状态寄存器的全局中断使能位I都为”1”时,T/C2的溢出中断使能。

当T/C2发生溢出,

即TIFR中的TOV2位置位时,中断服务程序得以执行。

OCIE2:

――T/C2输出比较匹配中断使能

(当OCIE2和状态寄存器的全局中断使能位I都为”1”时,T/C2的输出比较匹配中断使能。

当T/C2

的比较匹配发生,即TIFR中的OCF2置位时,中断服务程序得以执行。

OCF0:

――输出比较标志0

(当T/C0与OCRO(输出比较寄存器0)的值匹配时,OCFO置位。

此位在中断服务程序里硬件清零,也可以对其写1来清零。

当SREG中的位I、OCIEO(T/CO比较匹配中断使能)和OCFO都置位时,中

断服务程序得到执行。

TOVO:

——T/C0溢出标志

TOVO也可以通过

(当T/C0溢出时,TOVO置位。

执行相应的中断服务程序时此位硬件清零。

此外,

写1来清零。

当SREG中的位I、TOIEO(T/CO溢出中断使能)和TOVO都置位时,中断服务程序得到执行。

在相位修正PWM模式中,当T/C0在0x00改变记数方向时,TOVO置位。

T0V1:

——T/C1溢出标志

(该位的设置与T/C1的工作方式有关。

工作于普通模式和CTC模式时,T/C1溢出时T0V1置位。

工作在其它模式下的T0V1标志位置位)

0CF1B:

――T/C1输出比较B匹配标志位

(当TCNT1与0CR1B匹配成功时,该位被设为"1”。

强制输出比较(F0C1B)不会置位0CF1B。

执行强制输出比较匹配B中断服务程序时0CF1B自动清零。

也可以对其写入逻辑"1”来清除该标志位。

0CF1A:

――T/C1输出比较A匹配标志位

(当TCNT1与0CR1A匹配成功时,该位被设为"1”。

强制输出比较(F0C1A)不会置位0CF1A。

执行强制输出比较匹配A中断服务程序时0CF1A自动清零。

也可以对其写入逻辑"1”来清除该标志位。

ICF1:

――T/C1输入捕捉标志位

(外部引脚ICP1出现捕捉事件时ICF1置位。

此外,当ICR1作为计数器的T0P值时,一旦计数器值达到T0P,ICF1也置位。

执行输入捕捉中断服务程序时ICF1自动清零。

也可以对其写入逻辑"1”来

清除该标志位。

0CF2:

――输出比较标志2

(当T/C0与0CRO(输出比较寄存器0)的值匹配时,0CFO置位。

此位在中断服务程序里硬件清零,也可以对其写1来清零。

当SREG中的位I、0CIE0(T/C0比较匹配中断使能)和0CF0都置位时,中

断服务程序得到执行。

T0V2:

――T/C2溢出标志

(当T/C2溢出时,T0V2置位。

执行相应的中断服务程序时此位硬件清零。

此外,T0V2也可以通过

写1来清零。

当SREG中的位I、T0IE2(T/C2溢出中断使能)和T0V2都置位时,中断服务程序得到

执行。

在相位修正PWM模式中,当T/C2在0x00改变记数方向时,T0V2置位。

(6)特殊功能I0寄存器SFI0R

bit7

bit6

bit5

bit4

bit3

bit2

bit1

bit0

ADTS2

ADTS1

ADTS0

ACME

PUD

PSR2

PSR10

PSR10置位时T/C1,T/C0的预分频器复位,操作完后,这一位由硬件自动清零,该位写0无效,T/C1,T/C0共用同一预分频器,预分频器复位对两个定时器都有影响,该位总是读为0

PSR2当该位置1,T/C2预分频器复位。

操作完成后,该位被硬件清零。

该位写0无效。

若内部CPU时钟作

为T/C2时钟,该位读为0。

当T/C2工作在异步模式时,直到预分频器复位该位保持为1。

2、定时器1

(1)T/C1控制寄存器A(TCCR1A)

bit7

bit6

bit5

bit4

bit3

bit2

bit1

bit0

COM1A1

COM1A0

COM1B1

COM1B0

FOC1A

FOC1B

WGM11

WGM10

C0M1A1,COM1AO通道A的比较输出模式

C0M1B1,COM1BO通道B的比较输出模式

C0M1A1,COM1A0与C0M1B1,COM1B0分别控制0C1A与0C1B状态。

如果

C0M1A1:

0(C0M1B1:

0)的一位或两位被写入"1”,0C1AQC1B)输出功能将取代I/O端口功能。

此时

0C1A(0C1B)相应的输出引脚数据方向控制必须置位以使能输出驱动器。

0C1AQC1B)与物理引脚相连时,COM1x1:

0的功能由WGM13:

0的设置决定

比较输出模式,非PWM

COM1A1/COM1B1

C0M1A0/C0M1B0

说明

0

0

普通端口操作,非OC1A/OC1B功能

0

1

比较匹配时OC1A/OC1B电平取反

1

0

比较匹配时清零OC1A/OC1B(输出低电平)

1

1

比较匹配时置位OC1A/OC1B(输出高电平)

 

比较输出模式,快速PWM

COM1A1/COM1B1

C0M1A0/C0M1B0

说明

0

0

普通端口操作,非OC1A/OC1B功能

0

1

WGM13:

0=15:

比较匹配时OC1A取反,OC1B不占用物理引脚。

WGM13:

0为其它值时为普通端

口操作,非OC1A/OC1B功能

1

0

比较匹配时清零OC1A/OC1B,OC1A/OC1B在

TOP时置位

1

1

比较匹配时置位OC1A/OC1B,OC1A/OC1B在

TOP时清零

注意:

当0CR1A/0CR1等于TO且COM1A1/COM1置位时,比较匹配被忽略,OC1A/OC1B勺置位/清零操作有效。

比较输出模式,相位修正及相频修正PWM模式

COM1A1/COM1B1

C0M1A0/C0M1B0

说明

0

0

普通端口操作,非OC1A/OC1B功能

0

1

WGM13:

0=9或14:

比较匹配时OC1A取反,

OC1B不占用物理引脚。

WGM13:

0为其它值时

为普通端口操作,非OC1A/OC1B功能

1

0

升序记数时比较匹配将清零OC1A/OC1B,降

序记数时比较匹配将置位OC1A/OC1B

1

1

升序记数时比较匹配将置位OC1A/OC1B,降序

记数时比较匹配将清零OC1A/OC1B

注意:

OCR1A/OCR1B等于TOP且COM1A1/COM1B置位是一个特殊情况

FOC1A:

诵道A强制输出比较

F0C1B:

通道B强制输出比较

F0C1A/F0C1B只有当WGM13:

0指定为非PWM模式时被激活。

为与未来器件兼容,工作在PWM模式下对TCCR1A写入时,这两位必须清零。

当F0C1A/F0C1B位置1,立即强制波形产生单元进行比较匹配。

COM1x1:

0的设置改变0C1A/0C1B的输出。

注意F0C1A/F0C1B位作为选通信号。

C0M1x1:

0位的值

决定强制比较的效果。

在CTC模式下使用0CR1A作为T0P值,F0C1A/F0C1B选通即不会产生中断也

不好清除定时器,F0C1A/F0C1B位总是读为0

WGM11,WGM11波形发生模式

这两位与位于TCCR1B寄存器的WGM13:

2相结合,用于控制计数器的计数序列一一计数器计数的上限值和确

定波形发生器的工作模式。

T/C支持的工作模式有:

普通模式(计数器),比较匹配时清零定时器(CTC)模式,及

三种脉宽调制(PWM)模式。

波形产生的位描述

模式

WGM1

3

WGM1

2

WGM1

1

WGM

10

定时器/计数器工作模

计数

上限值

TOP

OCR1x更

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2