AVR教程系列一(12):ATmega16 简介(六)_第1页
AVR教程系列一(12):ATmega16 简介(六)_第2页
AVR教程系列一(12):ATmega16 简介(六)_第3页
AVR教程系列一(12):ATmega16 简介(六)_第4页
AVR教程系列一(12):ATmega16 简介(六)_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、ATmega16 简介(六)ATmega16 控制和状态寄存器MCUCSRAVR 控制和状态寄存器提供了有关引起AVR复位的复位源的信息。? Bit 44 JTTRF: JJTAG 复复位标志通过过JTAG 指令AVRR_RESEET 可以使使JTAG 复位寄存器器置位,并引引发MCU 复位,并使使JTRF 置位。上电电复位将使其其清零,也可可以通过写”00” 来清除除。? Biit 3 WDRFF: 看门狗狗复位标志看看门狗复位发发生时置位。上上电复位将使使其清零,也也可以通过写写”0” 来来清除。? Bit 22 BOORF: 掉掉电检测复位位标志掉电检检测复位发生生时置位。上上电复位将使

2、使其清零,也也可以通过写写”0” 来来清除。? Bit 11 EXXTRF: 外部复位标标志外部复位位发生时置位位。上电复位位将使其清零零,也可以通通过写”0” 来清除。? Bit 0 PPORF: 上电复位标标志上电复位位发生时置位位。只能通过过写”0” 来清除。为为了使用这些些复位标志来来识别复位条条件,用户应应该尽早读取取此寄存器的的数据,然后后将其复位。如如果在其他复复位发生之前前将此寄存器器复位,则后后续复位源可可以通过检查查复位标志来来了解。 ATmega116 基准电电压使能信号号和启动时间间ATmega116 具有片片内能隙基准准源,用于掉掉电检测,或或者是作为模模拟比较器或或

3、ADC的输输入。ADCC 的2.556V 基准准电压由此片片内能隙基准准源产生。电电压基准的启启动时间可能能影响其工作作方式。启动动时间列于TTable 16。为了了降低功耗,可可以控制基准准源仅在如下下情况打开:1. BOOD 使能 ( 熔丝位位BODENN 被编程)2. 能隙隙基准源连接接到模拟比较较器(ACSSR 寄存器器的ACBGG 置位)33. ADCC 使能因此此,当BODD 被禁止时时,置位ACCBG 或使使能ADC 后要启动基基准源。为了了降低掉电模模式的功耗,用用户可以禁止止上述三种条条件,并在进进入掉电模式式之前关闭基基准源。ATmega116 看门狗狗定时器看门狗定时器由

4、由独立的1 Mhz 片片内振荡器驱驱动。这是VVCC = 5V 时的的典型值。请请参见特性数数据以了解其其他VCC 电平下的典典型值。通过过设置看门狗狗定时器的预预分频器可以以调节看门狗狗复位的时间间间隔,如PP41Tabble 177 所示。看看门狗复位指指令WDR 用来复位看看门狗定时器器。此外,禁禁止看门狗定定时器或发生生复位时定时时器也被复位位。复位时间间有8 个选选项。如果没没有及时复位位定时器,一一旦时间超过过复位周期, ATmegga16 就就复位,并执执行复位向量量指向的程序序。具体的看看门狗复位时时序在P399 有说明。为了防止无意之间禁止看门狗定时器,在看门狗禁用后必须跟一

5、个特定的修改序列。详见看门狗定时器控制寄存器。看门狗定时器控控制寄存器WDTCRR ? Bits 7.5 Ress: 保留位位ATmegga16 保保留位,读操操作返回值为为零。? BBit 4 WDTTOE: 看看门狗修改使使能清零WDDE 时必须须置位WDTTOE,否则则不能禁止看看门狗。一旦旦置位,硬件件将在紧接的的4 个时钟钟周期之后将将其清零。请请参考有关WWDE 的说说明来禁止看看门狗。? Bit 33 WDDE: 使能能看门狗WDDE为1“ 时,看门狗狗使能,否则则看门狗将被被禁止。只有有在WDTOOE为1“ 时WDE 才能清零。以以下为关闭看看门狗的步骤骤:1. 在在同一个指令

6、令内对WDTTOE 和WWDE 写1“,即使使WDE 已已经为1“2. 在紧接的4 个时钟周期之内对WDE 写0”? Bits 2.0 WDP2, WDP1, WDP0: 看门狗定时器预分频器2, 1 和 0WDP2、WDP1 和WDP0 决定看门狗定时器的预分频器,如Table 17 所示。下面的例子分别别用汇编和CC 语言实现现了关闭WDDT 的操作作。在此假定定中断处于用用户控制之下下 ( 比如禁禁止全局中断断) ,因而在在执行下面程程序时中断不不会发生。 汇编代码例例程WDT_off:; WDT 复位WDR; 置位 WDTTOE 和 WDEinn r16, WDTCCRori r16,

7、 (1WWDTOE)|(1WDE)oout WDDTCR, r16; 关闭WDTldii r16, (0WDE)oout WDDTCR, r16reetC 代码例程程void WDT_ooff(vooid)/* WDDT 复位*/_WDRR();/* 置位 WDTTOE 和 WDE*/WDTCCR |= (1WWDTOE) | (11WDEE);/* 关闭WDT */WDTTCR = 0 x00;ATmega116 中断向向量本节描述ATmmega166的中断处理理。Table 119给出了不不同的BOOOTRST/IVSELL设置下的复复位和中断向向量的位置。如如果程序永远远不使能中断断,中

8、断向量量就没有意义义。用户可以以在此直接写写程序。同样样,如果复位位向量位于应应用区,而其其他中断向量量位于Booot 区,则则复位向量之之后可以直接接写程序。反反过来亦是如如此。 ATmega116 典型的的复位和中断断设置如下:地址符号代码说说明$0000 jmp RESETT ; 复位位中断向量$002 jjmp EXXT_INTT0 ; IIRQ0 中中断向量$0004 jmmp EXTT_INT11 ; IRRQ1 中断断向量$0006 jmpp TIM22_COMPP ; Tiimer2 比较中断向向量$0088 jmp TIM2_OVF ; Timeer2 溢出出中断向量$00A

9、 jjmp TIIM1_CAAPT ; Timerr1 捕捉中中断向量$000C jmmp TIMM1_COMMPA ; Timerr1 比较A 中断向量量$00E jmp TTIM1_CCOMPB ; Timmer1 比比较B 中断向量量$010 jmp TTIM1_OOVF ; Timerr1 溢出中中断向量$0012 jmmp TIMM0_OVFF ; Tiimer0 溢出中断向向量$0144 jmp SPI_SSTC ; SPI 传传输结束中断断向量$0116 jmpp USARRT_RXCC ; USSART RRX 结束中中断向量$0018 jmmp USAART_UDDRE ;

10、UDR 空空中断向量$01A jjmp USSART_TTXC ; USARTT TX 结结束中断向量量$01C jmp AADC ; ADC 转转换结束中断断向量$011E jmpp EE_RRDY ; EEPROOM 就绪中中断向量$0020 jmmp ANAA_COMPP ; 模拟拟比较器中断断向量$0222 jmpp TWSII ; 两线线串行接口中中断向量$0024 jmmp EXTT_INT22 ; IRRQ2 中断断向量$0226 jmpp TIM00_COMPP ; 定时时器0 比较中断断向量$0228 jmpp SPM_RDY ; SPM 就绪中断向向量;$02A RESET

11、T: ldii r16,high(RAMENND) ; 主程序$022B outt SPH,r16 ; 设置堆栈栈指针为RAAM 的顶部部$02C ldi rr16,loow(RAMMEND)$02D oout SPPL,r166$02E sei ; 使能中断断$02F xxxx. . .当熔丝丝位BOOTTRST 未未编程,Booot 区为为 2K 字节节,且寄存器器GICR 的IVSELL 置位时,典典型的复位和和中断设置如如下:地址符符号代码说明明$000 RESETT: ldii r16,high(RAMENND) ; 主程序$0001 outt SPH,r16 ; 设置堆栈栈指针为R

12、AAM 的顶部部$002 ldi rr16,loow(RAMMEND)$003 oout SPPL,r166$004 sei ; 使能中断断$005 xxxx;.org $1C022$1C022 jmp EXT_IINT0 ; IRQ00 中断向量量$1C044 jmp EXT_IINT1 ; IRQ11 中断向量量. . . ;$11C28 jjmp SPPM_RDYY ; SPPM 就绪中中断向量当熔熔丝位BOOOTRST 已编程,且且Boot 区为 2K 字节时,典典型的复位和和中断设置如如下:地址符符号代码说明明.org $002$002 jjmp EXXT_INTT0 ; IIRQ0

13、 中中断向量$0004 jmmp EXTT_INT11 ; IRRQ1 中断断向量. . . ;$028 jmp SSPM_RDDY ; SSPM 就绪绪中断向量;.org $1C000$1C000 RESEET: lddi r166,highh(RAMEEND) ; 主程序$1CC01 ouut SPHH,r16 ; 设置堆堆栈指针为RRAM 的顶顶部$1C002 ldii r16,low(RRAMENDD)$1C003 outt SPL,r16$11C04 ssei ; 使能中断$11C05 xxxx当熔丝位BOOOTRSTT 已编程,Booot 区为为2K 字节,且且寄存器GIICR 的

14、IVSELL 置位时,典典型的复位和和中断设置如如下:地址符符号代码说明明.org $1C000$1C000 jmp RESETT ; Reeset 中中断向量$11C02 jjmp EXXT_INTT0 ; IIRQ0 中中断向量$11C04 jjmp EXXT_INTT1 ; IIRQ1 中中断向量. . . ;$1C228 jmpp SPM_RDY ; SPM 就绪中断向向量;$1C2AA RESEET: lddi r166,highh(RAMEEND) ; 主程序$1CC2B ouut SPHH,r16 ; 设置堆堆栈指针为RRAM 的顶顶部$1C22C ldii r16,low(RR

15、AMENDD)$1C22D outt SPL,r16$11C2E ssei ; 使能中断$11C2F xxxx在应用区和和Boot 区之间移动动中断向量 通用中断控控制寄存器决决定中断向量量表的放置地地址通用中断断控制寄存器器 GICCR? Biit 1 IVSEEL: 中断断向量选择当当IVSELL 为0“ 时,中中断向量位于于Flashh 存储器的的起始地址;当IVSEEL 为1“ 时,中中断向量转移移到Boott 区的起始始地址。实际际的Boott 区起始地地址由熔丝位位BOOTSSZ 确定。具具体请参考PP234“ 支持引导装装入程序 在写的同同时可以读(RWW, Read-While

16、e-Writte) 的自自我编程能力力” 。为了防止无无意识地改变变中断向量表表,修改IVVSEL 时时需要遵照如如下过程:11. 置位中中断向量修改改使能位IVVCE2. 在紧接的4 个时钟周期期里将需要的的数据写入IIVSEL,同同时对IVCCE 写”0”执行上上述序列时中中断自动被禁禁止。其实,在在置位IVCCE 时中断断就被禁止了了,并一直保保持到写IVVSEL 操操作之后的下下一条语句。如如果没有IVVSEL 写写操作,则中中断在置位IIVCE 之之后的4 个时钟周周期保持禁止止。需要注意意的是,虽然然中断被自动动禁止,但状状态寄存器的的位I 的值并不不受此操作的的影响。Noote:

17、 若若中断向量位位于Boott区,且Booot锁定位BLBB02被编程程,则执行应应用区的程序序时中断被禁禁止;若中断断向量位于应应用区,且BBoot 锁锁定位BLBB12 被编编程,则执行Booot 区的程程序时中断被被禁止。有关关Boot 锁定位的细细节请参见PP234“ 支持引导装装入程序 在写的同同时可以读(RWW, Read-Whilee-Writte) 的自自我编程能力力” 。? Bitt 0 IVCE: 中断向量量修改使能改改变IVSEEL 时IVCE 必须置位。在在IVCE 或IVSELL 写操作之之后4 个时钟周周期, IVVCE 被硬硬件清零。如如前面所述,置置位IVCEE

18、 将禁止中中断。代码如如下:汇编代代码例程:MMove_iinterrrupts:; 使能中断断向量的修改改ldi rr16, (1IVVCE)ouut GICCR, r116; 将中断向向量转移到bboot 区区ldi rr16, (1IVVSEL)oout GIICR, rr16rettC 代码例程程void Move_interrruptss(voidd)/* 使能中中断向量的修修改*/GICRR = (11IVCCE);/* 将中断向向量转移到bboot 区区 */GICCR = (1IVVSEL); ATmega116 通用中中断控制寄存存器GICRR ? Bit 11 IVVSEL

19、: 中断向量选选择当IVSSEL 为0“ 时,中中断向量位于于Flashh 存储器的的起始地址;当IVSEEL 为11“ 时,中中断向量转移移到Boott 区的起始始地址。实际际的Boott 区起始地地址由熔丝位位BOOTSSZ 确定。具具体请参考PP234“ 支持引导装装入程序 在写的同同时可以读(RWW, Read-Whilee-Writte) 的自自我编程能力力” 。 为为了防止无意意识地改变中中断向量表,修修改IVSEEL 时需要要遵照如下过过程:1. 置位中断向向量修改使能能位IVCEE2. 在紧紧接的4 个个时钟周期里里将需要的数数据写入IVVSEL,同同时对IVCCE 写”00”执行上述述序列时中断断自动被禁止止。其实,在在置位IVCCE 时中断断就被禁止了了,并一直保保持到写IVVSEL 操操作之后的下下一条语句。如如果没有IVVSEL 写写操作,则中中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论