Mega16寄存器Word格式文档下载.docx
- 文档编号:5100064
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:52
- 大小:1.58MB
Mega16寄存器Word格式文档下载.docx
《Mega16寄存器Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Mega16寄存器Word格式文档下载.docx(52页珍藏版)》请在冰点文库上搜索。
保留
保留位,读操作返回值为零。
•Bits8..0–EEAR8..0:
EEPROM地址
EEPROM地址寄存器–EEARH和EEARL指定了512字节的EEPROM空间。
EEPROM地
址是线性的,从0到511。
EEAR的初始值没有定义。
在访问EEPROM之前必须为其赋
予正确的数据。
EEPROM数据寄存器-EEDR
•Bits7..0–EEDR7.0:
EEPROM数据
对于EEPROM写操作,EEDR是需要写到EEAR单元的数据;
对于读操作,EEDR是
从地址EEAR读取的数据。
EEPROM控制寄存器-EECR
•Bits7..4–Res:
•Bit3–EERIE:
使能EEPROM准备好中断
若SREG的I为"
1"
,则置位EERIE将使能EEPROM准备好中断。
清零EERIE则禁止
此中断。
当EEWE清零时EEPROM准备好中断即可发生。
•Bit2–EEMWE:
EEPROM主机写使能
EEMWE决定了EEWE置位是否可以启动EEPROM写操作。
当EEMWE为"
时,在4个时
钟周期内置位EEWE将把数据写入EEPROM的指定地址;
若EEMWE为"
0“,则操作
EEWE不起作用。
EEMWE置位后4个周期,硬件对其清零。
见EEPROM写过程中对
EEWE位的描述。
•Bit1–EEWE:
EEPROM写使能
EEWE为EEPROM写操作的使能信号。
当EEPROM数据和地址设置好之后,需置位
EEWE以便将数据写入EEPROM。
此时EEMWE必须置位,否则EEPROM写操作将不会
发生。
写时序如下(第3步和第4步的次序并不重要):
1.等待EEWE位变为零
2.等待SPMCSR中的SPMEN位变为零
3.将新的EEPROM地址写入EEAR(可选)
4.将新的EEPROM数据写入EEDR(可选)
5.对EECR寄存器的EEMWE写"
,同时清零EEWE
6.在置位EEMWE的4个周期内,置位EEWE
在CPU写Flash存储器的时候不能对EEPROM进行编程。
在启动EEPROM写操作之
前软件必须检查Flash写操作是否已经完成。
步骤
(2)仅在软件包含引导程序并允许CPU
对Flash进行编程时才有用。
如果CPU永远都不会写Flash,步骤
(2)可省略。
请参见
P234“支持引导装入程序–在写的同时可以读(RWW,Read-While-Write)的自我编程能力
”。
注意:
如果在步骤5和6之间发生了中断,写操作将失败。
因为此时EEPROM写使能操
作将超时。
如果一个操作EEPROM的中断打断了另一个EEPROM操作,EEAR或EEDR
寄存器可能被修改,引起EEPROM操作失败。
建议此时关闭全局中断标志I。
经过写访问时间之后,EEWE硬件清零。
用户可以凭借这一位判断写时序是否已经完成。
EEWE置位后,CPU要停止两个时钟周期才会运行下一条指令。
•Bit0–EERE:
EEPROM读使能
EERE为EEPROM读操作的使能信号。
当EEPROM地址设置好之后,需置位EERE以便将
数据读入EEAR。
EEPROM数据的读取只需要一条指令,且无需等待。
读取EEPROM
后CPU要停止4个时钟周期才可以执行下一条指令。
用户在读取EEPROM时应该检测EEWE。
如果一个写操作正在进行,就无法读取
EEPROM,也无法改变寄存器EEAR。
经过校准的片内振荡器用于EEPROM定时。
Table1为CPU访问EEPROM的典型时间。
缺省时钟源器件出厂时CKSEL=“0010”,SUT=“10”。
这个缺省设置的时钟源是1MHz的内部RC
振荡器,启动时间为最长。
这种设置保证用户可以通过ISP或并行编程器得到所需的时钟
源。
振荡器标定寄存器-OSCCAL
•Bits7..0–CAL7..0:
振荡器标定数据
将标定数据写入这个地址可以对内部振荡器进行调节以消除由于生产工艺所带来的振荡
器频率偏差。
复位时1MHz的标定数据(标识数据的高字节,地址为0x00)自动加载到
OSCCAL寄存器。
如果需要内部RC振荡器工作于其他频率,标定数据必须人工加载:
首
先通过编程器读取标识数据,然后将标定数据保存到Flash或EEPROM之中。
这些数据
可以通过软件读取,然后加载到OSCCAL寄存器。
当OSCCAL为零时振荡器以最低频
率工作。
当对其写如不为零的数据时内部振荡器的频率将增长。
写入0xFF即得到最高频
率。
标定的振荡器用来为访问EEPROM和Flash定时。
有写EEPROM和Flash的操作
时不要将频率标定到超过标称频率的10%,否则写操作有可能失败。
要注意振荡器只对
1.0、2.0、4.0和8.0MHz这四种频率进行了标定,其他频率则无法保证。
MCU控制寄存器-MCUCR
MCU控制寄存器包含了电源管理的控制位。
•Bits7,5,4–SM2..0:
休眠模式选择位2、1和0
如Table13所示,这些位用于选择具体的休眠模式。
•Bit6–SE:
休眠使能
为了使MCU在执行SLEEP指令后进入休眠模式,SE必须置位。
为了确保进入休眠模
式是程序员的有意行为,建议仅在SLEEP指令的前一条指令置位SE。
MCU一旦唤醒立
即清除SE。
•Bit3,2–ISC11,ISC10:
中断触发方式控制1Bit1与Bit0
外部中断1由引脚INT1激发,如果SREG寄存器的I标志位和相应的中断屏蔽位置位的
话。
触发方式如Table34所示。
在检测边沿前MCU首先采样INT1引脚上的电平。
如果
选择了边沿触发方式或电平变化触发方式,那么持续时间大于一个时钟周期的脉冲将触
发中断,过短的脉冲则不能保证触发中断。
如果选择低电平触发方式,那么低电平必须保
持到当前指令执行完成。
•Bit1,0–ISC01,ISC00:
中断0触发方式控制Bit1与Bit0
外部中断0由引脚INT0激发,如果SREG寄存器的I标志位和相应的中断屏蔽位置位的
触发方式如Table35所示。
在检测边沿前MCU首先采样INT0引脚上的电平。
空闲模式当SM2..0为000时,SLEEP指令将使MCU进入空闲模式。
在此模式下,CPU停止运行,而LCD控制器、SPI、USART、模拟比较器、ADC、USI、定时器/计数器、看门狗和中断系统继续工作。
这个休眠模式只停止了clkCPU和clkFLASH,其他时钟则继续工作。
象定时器溢出与USART传输完成等内外部中断都可以唤醒MCU。
如果不需要从模拟比较器中断唤醒MCU,为了减少功耗,可以切断比较器的电源。
方法是置位模拟比较器控制和状态寄存器ACSR的ACD。
如果ADC使能,进入此模式后将自动启动一次转换。
ADC噪声抑制模式
当SM2..0为001时,SLEEP指令将使MCU进入噪声抑制模式。
在此模式下,CPU停止运行,而ADC、外部中断、两线接口地址配置、定时器/计数器0和看门狗继续工作。
这个睡眠模式只停止了clkI/O、clkCPU和clkFLASH,其他时钟则继续工作。
此模式提高了ADC的噪声环境,使得转换精度更高。
ADC使能的时候,进入此模式将自动启动一次AD转换。
ADC转换结束中断、外部复位、看门狗复位、BOD复位、两线接口地址匹配中断、定时器/计数器2中断、SPM/EEPROM准备好中断、外部中断INT0或INT1,或外部中断INT2可以将MCU从ADC噪声抑制模式唤醒。
掉电模式当SM2..0为010时,SLEEP指令将使MCU进入掉电模式。
在此模式下,外部晶体停振,而外部中断、
两线接口地址匹配及看门狗(如果使能的话)继续工作。
只有外部复位、看门狗复位、BOD复位、两线
口地址匹配中断、外部电平中断INT0或INT1,或外部中断INT2可以使MCU脱离掉电模式。
这个睡
眠模式停止了所有的时钟,只有异步模块可以继续工作。
当使用外部电平中断方式将MCU从掉电模式唤醒时,必须保持外部电平一定的时间。
具体请参见P65“外部中断”。
从施加掉电唤醒条件到真正唤醒有一个延迟时间,此时间用于时钟重新启动并稳定下来。
唤醒周期与由熔丝位CKSEL定义的复位周期是一样的,如P23“时钟源”所示。
省电模式当SM2..0为011时,SLEEP指令将使MCU进入省电模式。
这一模式与掉电模式只有一点不同:
如果定时器/计数器2为异步驱动,即寄存器ASSR的AS2置位,则定时器/计数器2在睡眠时继续运行。
除了掉电模式的唤醒方式,定时器/计数器2的溢出中断和比较匹配中断也可以将MCU从休眠方式唤醒,只要TIMSK使能了这些中断,而且SREG的全局中断使能位I置位。
如果异步定时器不是异步驱动的,建议使用掉电模式,而不是省电模式。
因为在省电模式下,若AS2为0,则MCU唤醒后异步定时器的寄存器数值是没有定义的。
这个睡眠模式停止了除clkASY以外所有的时钟,只有异步模块可以继续工作。
Standby模式当SM2..0为110时,SLEEP指令将使MCU进入Standby模式。
这一模式与掉电模式唯一的不同之处在于振荡器继续工作。
其唤醒时间只需要6个时钟周期。
扩展Standby模式当SM2..0为111时,SLEEP指令将使MCU进入扩展的Standby模式。
这一模式与省
掉电模式唯一的不同之处在于振荡器继续工作。
.
MCU控制和状态寄存器MCUCSR
•Bit7–JTD:
禁止JTAG接口
此位为0时,如果JTAGEN熔丝位被编程则JTAG接口使能。
如果这位为1,JTAG接口禁止。
为了避免无意的禁止或使能JTAG接口,必须通过一个时间序列来改变JTD位。
应用软件必须在四个时钟周期内将期望的数值两次写入JTD。
如果JTAG接口没有与其他JTAG电路连接,JTD应该置位。
这样做的原因是为了避免JTAG接口TDO引脚的静态电流。
•Bit6–ISC2:
中断2触发方式控制
异步外中断2由外部引脚INT2激活,如果SREG寄存器的I标志和GICR寄存器相应的中断屏蔽位置位的话。
若ISC2写0,INT2的下降沿激活中断。
若ISC2写1,INT2的上升沿激活中断。
INT2的边沿触发方式是异步的。
只要INT2引脚上产生宽度大于Table36所示数据的脉冲就会引发中断。
若选择了低电平中断,低电平必须保持到当前指令完成,然后才会产生中断。
而且只要将引脚拉低,就会引发中断请求。
改变ISC2时有可能发生中断。
因此建议首先在寄存器GICR里清除相应的中断使能位INT2,然后再改变ISC2。
最后,不要忘记在重新使能中断之前通过对GIFR寄存器的相应中断标志位INTF2写'
1’
使其清零。
•Bit4–JTRF:
JTAG复位标志
通过JTAG指令AVR_RESET可以使JTAG复位寄存器置位,并引发MCU复位,并使
JTRF置位。
上电复位将使其清零,也可以通过写”0”来清除。
通过JTAG指令AVR_RESET为JTAG复位寄存器置1可以复位芯片。
芯片复位后JTRF
置位。
上电复位或写入逻辑0将清零JTRF。
•Bit3–WDRF:
看门狗复位标志
看门狗复位发生时置位。
•Bit2–BORF:
掉电检测复位标志
掉电检测复位发生时置位。
•Bit1–EXTRF:
外部复位标志
外部复位发生时置位。
•Bit0–PORF:
上电复位标志
上电复位发生时置位。
只能通过写”0”来清除。
为了使用这些复位标志来识别复位条件,用户应该尽早读取此寄存器的数据,然后将其复
位。
如果在其他复位发生之前将此寄存器复位,则后续复位源可以通过检查复位标志来了
解。
看门狗定时器控制寄存器-WDTCR
•Bits7..5–Res:
保留位
ATmega16保留位,读操作返回值为零。
•Bit4–WDTOE:
看门狗修改使能
清零WDE时必须置位WDTOE,否则不能禁止看门狗。
一旦置位,硬件将在紧接的4个
时钟周期之后将其清零。
请参考有关WDE的说明来禁止看门狗。
•Bit3–WDE:
使能看门狗
WDE为"
1“时,看门狗使能,否则看门狗将被禁止。
只有在WDTOE为"
1“时WDE才能清
零。
以下为关闭看门狗的步骤:
1.在同一个指令内对WDTOE和WDE写"
1“,即使WDE已经为"
1“
2.在紧接的4个时钟周期之内对WDE写"
0”
•Bits2..0–WDP2,WDP1,WDP0:
看门狗定时器预分频器2,1和0
WDP2、WDP1和WDP0决定看门狗定时器的预分频器,如Table17所示。
通用中断控制寄存器-GICR
•Bit1–IVSEL:
中断向量选择
当IVSEL为"
0“时,中断向量位于Flash存储器的起始地址;
1“时,中断向
量转移到Boot区的起始地址。
实际的Boot区起始地址由熔丝位BOOTSZ确定。
具体请
参考P234“支持引导装入程序–在写的同时可以读(RWW,Read-While-Write)的自我编
程能力”。
为了防止无意识地改变中断向量表,修改IVSEL时需要遵照如下过程:
1.置位中断向量修改使能位IVCE
2.在紧接的4个时钟周期里将需要的数据写入IVSEL,同时对IVCE写”0”
执行上述序列时中断自动被禁止。
其实,在置位IVCE时中断就被禁止了,并一直保持到
写IVSEL操作之后的下一条语句。
如果没有IVSEL写操作,则中断在置位IVCE之后的
4个时钟周期保持禁止。
需要注意的是,虽然中断被自动禁止,但状态寄存器的位I的值并
不受此操作的影响。
Note:
若中断向量位于Boot区,且Boot锁定位BLB02被编程,则执行应用区的程序时中断被禁止
;
若中断向量位于应用区,且Boot锁定位BLB12被编程,则执行Boot区的程序时中断
被禁止。
有关Boot锁定位的细节请参见P234“支持引导装入程序–在写的同时可以读
(RWW,Read-While-Write)的自我编程能力”。
•Bit0–IVCE:
中断向量修改使能
改变IVSEL时IVCE必须置位。
在IVCE或IVSEL写操作之后4个时钟周期,IVCE被
硬件清零。
如前面所述,置位IVCE将禁止中断。
特殊功能I/O寄存器-SFIOR
•Bit7-5–ADTS2-0:
ADC自动触发源
若ADCSRA寄存器的ADATE置位,ADTS的值将确定触发ADC转换的触发源;
否则,
ADTS的设置没有意义。
被选中的中断标志在其上升沿触发ADC转换。
从一个中断标志清
零的触发源切换到中断标志置位的触发源会使触发信号产生一个上升沿。
如果此时ADCSRA寄存器的ADEN为1,ADC转换即被启动。
切换到连续运行模式(ADTS[2:
0]=0)
时,即使ADC中断标志已经置位也不会产生触发事件。
•Bit4–Res:
这一位保留。
为了与以后的器件相兼容,在写SFIOR时这一位应写0。
•Bit3–ACME:
模拟比较器多路复用器使能
当此位为逻辑"
1”,且ADC处于关闭状态(ADCSRA寄存器的ADEN为"
0”)时,ADC多
路复用器为模拟比较器选择负极输入。
当此位为"
0”时,AIN1连接到比较器的负极输入
端。
更详细描述的请参见P191“模拟比较器多工输入”。
•Bit2–PUD:
禁用上拉电阻
置位时,即使将寄存器DDxn和PORTxn配置为使能上拉电阻({DDxn,PORTxn}=
0b01),I/O端口的上拉电阻也被禁止。
请参见P49“配置引脚”。
•Bit1–PSR2:
预分频复位T/C2
当该位置1,T/C2预分频器复位。
操作完成后,该位被硬件清零。
该位写0无效。
若内
部CPU时钟作为T/C2时钟,该位读为0。
当T/C2工作在异步模式时,直到预分频器复
位该位保持为1。
•Bit0–PSR10:
T/C1与T/C0预分频器复位
置位时T/C1与T/C0的预分频器复位。
操作完成后这一位由硬件自动清零。
写入零时不
会引发任何动作。
T/C1与T/C0共用同一预分频器,且预分频器复位对两个定时器均有
影响。
该位总是读为0。
•Bit7–INT1:
使能外部中断请求1
当INT1为'
1’,而且状态寄存器SREG的I标志置位,相应的外部引脚中断就使能了。
MCU通用控制寄存器–MCUCR的中断敏感电平控制1位1/0(ISC11与ISC10)决定中断是
由上升沿、下降沿,还是INT1电平触发的。
只要使能,即使INT1引脚被配置为输出,
只要引脚电平发生了相应的变化,中断可将产生。
•Bit6–INT0:
使能外部中断请求0
当INT0为'
MCU通用控制寄存器–MCUCR的中断敏感电平控制0位1/0(ISC01与ISC00)决定中断是
由上升沿、下降沿,还是INT0电平触发的。
只要使能,即使INT0引脚被配置为输出,
•Bit5–INT2:
使能外部中断请求2
当INT2为'
MCU通用控制寄存器–MCUCR的中断敏感电平控制2位1/0(ISC2与ISC2)决定中断是由
上升沿、下降沿,还是INT2电平触发的。
只要使能,即使INT2引脚被配置为输出,只
要引脚电平发生了相应的变化,中断可将产生。
通用中断标志寄存器-GIFR
•Bit7–INTF1:
外部中断标志1
INT1引脚电平发生跳变时触发中断请求,并置位相应的中断标志INTF1。
如果SREG的位
I以及GICR寄存器相应的中断使能位INT1为”1”,MCU即跳转到相应的中断向量。
进入中
断服务程序之后该标志自动清零。
此外,标志位也可以通过写入”1”来清零。
•Bit6–INTF0:
外部中断标志0
INT0引脚电平发生跳变时触发中断请求,并置位相应的中断标志INTF0。
I以及GICR寄存器相应的中断使能位INT0为”1”,MCU即跳转到相应的中断向量。
•Bit5–INTF2:
外部中断标志2
INT2引脚电平发生跳变时触发中断请求,并置位相应的中断标志INTF2。
I以及GICR寄存器相应的中断使能位INT2为”1”,MCU即跳转到相应的中断向量。
注意,当
INT2中断禁用进入某些休眠模式时,该引脚的输入缓冲将禁用。
这会导致INTF2标志设置
信号的逻辑变化,详见P52“数字输入使能和休眠模式”。
T/C控制寄存器-TCCR0
•Bit7–FOC0:
强制输出比较
FOC0仅在WGM00指明非PWM模式时才有效。
但是,为了保证与未来器件的兼容性,在
使用PWM时,写TCCR0要对其清零。
对其写1后,波形发生器将立即进行比较操作。
比较匹配输出引脚OC0将按照COM01:
0的设置输出相应的电平。
要注意FOC0类似一
个锁存信号,真正对强制输出比较起作用的是COM01:
0的设置。
FOC0不会引发任何中断,也不会在利用OCR0作为TOP的CTC模式下对定时器进行清零
的操作。
读FOC0的返回值永远为0。
•Bit6,3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Mega16 寄存器