2486N–AVR–07/04产品特性•高性能、低功耗的8位AVR®微处理器•先进的RISC结构–130条指令–大多数指令执行时间为单个时钟周期–32个8位通用工作寄存器–全静态工作–工作于16MHz时性能高达16MIPS–只需两个时钟周期的硬件乘法器•非易失性程序和数据存储器–8K字节的系统内可编程Flash擦写寿命:10,000次–具有独立锁定位的可选Boot代码区通过片上Boot程序实现系统内编程真正的同时读写操作–512字节的EEPROM擦写寿命:100,000次–1K字节的片内SRAM–可以对锁定位进行编程以实现用户程序的加密•外设特点–两个具有独立预分频器8位定时器/计数器,其中之一有比较功能–一个具有预分频器、比较功能和捕捉功能的16位定时器/计数器–具有独立振荡器的实时计数器RTC–三通道PWM–TQFP与MLF封装的8路ADC8路10位ADC–PDIP封装的6路ADC8路10位ADC–面向字节的两线接口–两个可编程的串行USART–可工作于主机/从机模式的SPI串行接口–具有独立片内振荡器的可编程看门狗定时器–片内模拟比较器•特殊的处理器特点–上电复位以及可编程的掉电检测–片内经过标定的RC振荡器–片内/片外中断源–5种睡眠模式:空闲模式、ADC噪声抑制模式、省电模式、掉电模式及Standby模式•I/O和封装–23个可编程的I/O口–28引脚PDIP封装,32引脚TQFP封装,32引脚MLF封装•工作电压–2.7-5.5V(ATmega8L)–4.5-5.5V(ATmega8)•速度等级–0-8MHz(ATmega8L)–0-16MHz(ATmega8)•4Mhz时功耗,3V,25°C–工作模式:3.6mA–空闲模式:1.0mA–掉电模式:0.5µA具有8KB系统内可编程Flash的8位微控制器ATmega8ATmega8L2ATmega8(L)2486N–AVR–07/04引脚配置123456782423222120191817(INT1)PD3(XCK/T0)PD4GNDVCCGNDVCC(XTAL1/TOSC1)PB6(XTAL2/TOSC2)PB7PC1(ADC1)PC0(ADC0)ADC7GNDAREFADC6AVCCPB5(SCK)3231302928272625910111213141516(T1)PD5(AIN0)PD6(AIN1)PD7(ICP1)PB0(OC1A)PB1(SS/OC1B)PB2(MOSI/OC2)PB3(MISO)PB4PD2(INT0)PD1(TXD)PD0(RXD)PC6(RESET)PC5(ADC5/SCL)PC4(ADC4/SDA)PC3(ADC3)PC2(ADC2)TQFPTopView12345678910111213142827262524232221201918171615(RESET)PC6(RXD)PD0(TXD)PD1(INT0)PD2(INT1)PD3(XCK/T0)PD4VCCGND(XTAL1/TOSC1)PB6(XTAL2/TOSC2)PB7(T1)PD5(AIN0)PD6(AIN1)PD7(ICP1)PB0PC5(ADC5/SCL)PC4(ADC4/SDA)PC3(ADC3)PC2(ADC2)PC1(ADC1)PC0(ADC0)GNDAREFAVCCPB5(SCK)PB4(MISO)PB3(MOSI/OC2)PB2(SS/OC1B)PB1(OC1A)PDIP1234567824232221201918173231302928272625910111213141516MLFTopView(INT1)PD3(XCK/T0)PD4GNDVCCGNDVCC(XTAL1/TOSC1)PB6(XTAL2/TOSC2)PB7PC1(ADC1)PC0(ADC0)ADC7GNDAREFADC6AVCCPB5(SCK)(T1)PD5(AIN0)PD6(AIN1)PD7(ICP1)PB0(OC1A)PB1(SS/OC1B)PB2(MOSI/OC2)PB3(MISO)PB4PD2(INT0)PD1(TXD)PD0(RXD)PC6(RESET)PC5(ADC5/SCL)PC4(ADC4/SDA)PC3(ADC3)PC2(ADC2)NOTE:ThelargecenterpadunderneaththeMLFpackagesismadeofmetalandinternallyconnectedtoGND.ItshouldbesolderedorgluedtothePCBtoensuregoodmechanicalstability.Ifthecenterpadisleftunconneted,thepackagemightloosenfromthePCB.3ATmega8(L)2486N–AVR–07/04综述ATmega8是基于增强的AVRRISC结构的低功耗8位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATmega8的数据吞吐率高达1MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。方框图Figure1.结构框图INTERNALOSCILLATOROSCILLATORWATCHDOGTIMERMCUCTRL.&TIMINGOSCILLATORTIMERS/COUNTERSINTERRUPTUNITSTACKPOINTEREEPROMSRAMSTATUSREGISTERUSARTPROGRAMCOUNTERPROGRAMFLASHINSTRUCTIONREGISTERINSTRUCTIONDECODERPROGRAMMINGLOGICSPIADCINTERFACECOMP.INTERFACEPORTCDRIVERS/BUFFERSPORTCDIGITALINTERFACEGENERALPURPOSEREGISTERSXYZALU+-PORTBDRIVERS/BUFFERSPORTBDIGITALINTERFACEPORTDDIGITALINTERFACEPORTDDRIVERS/BUFFERSXTAL1XTAL2CONTROLLINESVCCGNDMUX&ADCAGNDAREFPC0-PC6PB0-PB7PD0-PD7AVRCPUTWIRESET4ATmega8(L)2486N–AVR–07/04AVR内核具有丰富的指令集和32个通用工作寄存器。所有的寄存器都直接与算逻单元(ALU)相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的CISC微控制器昀高至10倍的数据吞吐率。ATmega8有如下特点:8K字节的系统内可编程Flash(具有同时读写的能力,即RWW),512字节EEPROM,1K字节SRAM,32个通用I/O口线,32个通用工作寄存器,三个具有比较模式的灵活的定时器/计数器(T/C),片内/外中断,可编程串行USART,面向字节的两线串行接口,10位6路(8路为TQFP与MLF封装)ADC,具有片内振荡器的可编程看门狗定时器,一个SPI串行端口,以及五种可以通过软件进行选择的省电模式。工作于空闲模式时CPU停止工作,而SRAM、T/C、SPI端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功能模块处于休眠状态;ADC噪声抑制模式时终止CPU和除了异步定时器与ADC以外所有I/O模块的工作,以降低ADC转换时的开关噪声;Standby模式下只有晶体或谐振振荡器运行,其余功能模块处于休眠状态,使得器件只消耗极少的电流,同时具有快速启动能力。本芯片是以Atmel高密度非易失性存储器技术生产的。片内ISPFlash允许程序存储器通过ISP串行接口,或者通用编程器进行编程,也可以通过运行于AVR内核之中的引导程序进行编程。引导程序可以使用任意接口将应用程序下载到应用Flash存储区(ApplicationFlashMemory)。在更新应用Flash存储区时引导Flash区(BootFlashMemory)的程序继续运行,实现了RWW操作。通过将8位RISCCPU与系统内可编程的Flash集成在一个芯片内,ATmega8成为一个功能强大的单片机,为许多嵌入式控制应用提供了灵活而低成本的解决方案。ATmega8具有一整套的编程与系统开发工具,包括:C语言编译器、宏汇编、程序调试器/软件仿真器、仿真器及评估板。声明本数据手册的典型值来源于对器件的仿真,以及其他基于相同产生工艺的AVR微控制器的标定特性。本器件经过特性化之后将给出实际的昀大值和昀小值。5ATmega8(L)2486N–AVR–07/04引脚说明VCC数字电路的电源。GND地。端口B(PB7..PB0)XTAL1/XTAL2/TOSC1/TOSC2端口B为8位双向I/O口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口B处于高阻状态。通过时钟选择熔丝位的设置,PB6可作为反向振荡放大器或时钟操作电路的输入端。通过时钟选择熔丝位的设置PB7可作为反向振荡放大器的输出端。若将片内标定RC振荡器作为芯片时钟源,且ASSR寄存器的AS2位设置,PB7..6作为异步T/C2的TOSC2..1输入端。端口B的其他功能见P55“端口B的第二功能”及P22“系统时钟及时钟选项”。端口C(PC5..PC0)端口C为7位双向I/O口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口C处于高阻状态。PC6/RESET若RSTDISBL熔丝位编程,PC6作为I/O引脚使用。注意PC6的电气特性与端口C的其他引脚不同若RSTDISBL熔丝位未编程,PC6作为复位输入引脚。持续时间超过昀小门限时间的低电平将引起系统复位。门限时间见P35Table15。持续时间小于门限时间的脉冲不能保证可靠复位。端口C的其他功能见后。端口D(PD7..PD0)端口D为8位双向I/O口,具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。在复位过程中,即使系统时钟还未起振,端口D处于高阻状态。端口D的其他功能见后。RESET复位输入引脚。持续时间超过昀小门限时间的低电平将引起系统复位。门限时间见P35Table15。持续时间小于门限时间的脉冲不能保证可靠复位。6ATmega8(L)2486N–AVR–07/04AVCCAVCC是A/D转换器、端口C(3..0)及ADC(7..6)的电源。不使用ADC时,该引脚应直接与VCC连接。使用ADC时应通过一个低通滤波器与VCC连接。注意,端口C(5..4)为数字电源,VCC。AREFA/D的模拟基准输入引脚。ADC7..6(TQFP与MLF封装)TQFP与MLF封装的ADC7..6作为A/D转换器的模拟输入。为模拟电源且作为10位ADC通道。代码例子本数据手册包含了一些简单的代码例子以说明如何使用芯片各个不同的功能模块。这些例子都假定在编译之前已经包含了正确的头文件。有些C编译器在头文件里并没有包含位定义,而且各个C编译器对中断处理有自己不同的处理方式。请注意查阅相关文档以获取具体的信息。7ATmega8(L)2486N–AVR–07/04AVRCPU内核介绍本节从总体上讨论AVR内核的结构。CPU的主要任务是保证程序的正确执行。因此它必须能够访问存储器、执行运算、控制外设以及处理中断。结构综述Figure2.AVRMCU结构的方框图为了获得昀高的性能以及并行性,AVR采用了Harvard结构,具有独立的数据和程序总