标题：Atmega8
具体介绍
ATmega8 是ATMEL公司在2002年第一季度推出的一款新型AVR高档单片机。在AVR家族中，ATmega8是一种非常特殊的单片机，它的芯片内部集成了较大 容量的存储器和丰富强大的硬件接口电路，具备AVR高档单片机MEGE系列的全部性能和特点。但由于采用了小引脚封装（为DIP 28和TQFP/MLF32），所以其价格仅与低档单片机相当，再加上AVR单片机的系统内可编程特性，使得无需购买昂贵的仿真器和编程器也可进行单片机 嵌入式系统的设计和开发，同时也为单片机的初学者提供了非常方便和简捷的学习开发环境。
ATmega8的这些特点，使其成为一款具有极高性能价格比的单片机，深受广大单片机用户的喜爱，在产品应用市场上极具竞争力，被很多家用电器厂商和仪器仪表行业看中，从而使ATmega8迅速进入大批量的应用领域。
ATmega系列单片机属于AVR中的高档产品，它承袭了AT90所具有的特点，并在AT90（如 AT9058515、AT9058535）的基础上，增加了更多的接口功能，而且在省电性能。稳定性、抗干扰性以及灵活性方面考虑得更加周全和完善。
ATmega8 是一款采用低功耗CMOS工艺生产的基于AVR RISC结构的8位单片机。AVR单片机的核心是将32个工作寄存器和丰富的指令集联结在一起，所有的工作寄存器都与ALU（算术逻辑单元）直接相连，实 现了在一个时钟周期内执行的一条指令同时访问（读写）两个独立寄存器的操作。这种结构提高了代码效率，使得大部分指令的执行时间仅为一个时钟周期。因此， ATmega8可以达到接近1MIPS/MHz的性能，运行速度比普通CISC单片机高出10倍。
主要特性
内部特点： 
·高性能、低功耗的8位AVR微处理器。
·先进的RISC 结构。
·130 条指令—— 大多数指令执行时间为单个时钟周期。
·32个8 位通用工作寄存器。
·全静态工作。
·工作于16 MHz 时性能高达16 MIPS。 
·只需两个时钟周期的硬件乘法器。
·非易失性程序和数据存储器。
·8K 字节的系统内可编程Flash。 
·擦写寿命：10,000 次。
·具有独立锁定位的可选Boot代码区。 
·通过片上Boot 程序实现系统内编程。
·真正的同时读写操作。
·512字节的EEPROM。
·1K字节的片内SRAM。
·可以对锁定位进行编程以实现用户程序的加密 。 
外设特点： 
·2个具有比较模式的带预分频器（ Separate Prescale）的 8位定时/计数器。
·1个带预分频器（SeParat Prescale），具有比较和捕获模式的 16位定时/计数器。
·1个具有独立振荡器的异步实时时钟（RTC）。 
·3个PWM通道，可实现任意<16位、相位和频率可调的PWM脉宽调制输出。
·8通道 A/D转换（TQFP、MLF封装），6路10位 A/D+2路8位A/D。
·6通道 A/D转换（PDIP封装），4路10位A/D+2路8位A/D。
·1个I2C的串行接口，支持主/从、收/发四种工作方式，支持自动总线仲裁。
·1个可编程的串行USART接口，支持同步、异步以及多机通信自动地址识别。
·1个支持主/从（Master/Slave）、收/发的SPI同步串行接口。
·带片内RC振荡器的可编程看门狗定时器。
·片内模拟比较器。
特殊的处理器特点 
·上电复位以及可编程的欠电压检测电路。
·内部集成了可选择频率（l/2/4/8MHZ）、可校准的RC振荡器。
·外部和内部的中断源18个。
·5种睡眠模式: 五种睡眠模式：空闲模式（Idle）、ADC噪声抑制模式（ADC Noise Reduction）、 省电模式（Power－save）、掉电模式（Power－down）、待命模式（Standby）。
I/O 和封装 
·最多23个可编程I/O口，可任意定义I/O的输入/输出方向；输出时为推挽输出，驱动能力强，可直接驱动LED等大电流负载：输入口可定义为三态输入，可以设定带内部上拉电阻，省去外接上拉电阻。
·28脚PDIP封装，32脚TQFP封装和 32脚MLF封装。
· 工作电压 

详细参数
ATmega8 参数ATmega8存储器Flash ROM﻿8KBSRAM﻿1024BEEPROM﻿512BATmega8性能参数特性工作频率﻿0-8MHz (ATmega8L) ﻿0-16MHz (ATmega8)工作电压﻿2.7-5.5V (ATmega8L) ﻿4.5-5.5V (ATmega8)I/O口﻿23个16位定时器 / 计数器﻿18位定时器 / 计数器﻿2PWM﻿3RTC﻿YESSPI﻿1UART﻿1TWI﻿YES10位ADC﻿6（DIP）
8（TQFP / MLF）模拟比较器﻿1WDT﻿1（带独立片内振荡器）外部中断﻿2睡眠模式﻿5种硬件乘法器﻿YES片内振荡器﻿YES引脚电平中断/唤醒功能﻿NO掉电检测﻿YES上电复位﻿YESATmega8封装与引脚数PDIP﻿28PINQFP﻿32PINQFN / MLF﻿32PINATmega8编程与调试方式编程方式﻿ISP　IAP　H/PV仿真方式﻿仿真头接入，
模拟式仿真4 ATmega8(L)
2486N–AVR–07/04
AVR 内核具有丰富的指令集和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 高密度非易失性存储器技术生产的。片内ISP Flash 允许程序存储器通
过ISP 串行接口，或者通用编程器进行编程，也可以通过运行于AVR 内核之中的引导程
序进行编程。引导程序可以使用任意接口将应用程序下载到应用Flash存储区(Application
Flash Memory)。在更新应用Flash存储区时引导Flash区(Boot Flash Memory)的程序继续
运行，实现了RWW 操作。 通过将8 位RISC CPU 与系统内可编程的Flash 集成在一个
芯片内，ATmega8 成为一个功能强大的单片机，为许多嵌入式控制应用提供了灵活而低
成本的解决方案。
ATmega8 具有一整套的编程与系统开发工具，包括：C 语言编译器、宏汇编、 程序调试
器/ 软件仿真器、仿真器及评估板。
声明本数据手册的典型值来源于对器件的仿真，以及其他基于相同产生工艺的 AVR 微控制器
的标定特性。本器件经过特性化之后将给出实际的最大值和最小值。
5
ATmega8(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 的其他功能见P 55“ 端口B 的第二功能” 及P 22“ 系统时钟及时钟选项” 。
端口C(PC5..PC0) 端口C 为7 位双向I/O 口，具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特
性，可以输出和吸收大电流。作为输入使用时，若内部上拉电阻使能，端口被外部电路拉
低时将输出电流。在复位过程中，即使系统时钟还未起振，端口C 处于高阻状态。
PC6/RESET 若RSTDISBL 熔丝位编程， PC6 作为I/O 引脚使用。注意PC6 的电气特性与端口C 的
其他引脚不同
若RSTDISBL 熔丝位未编程，PC6 作为复位输入引脚。持续时间超过最小门限时间的低
电平将引起系统复位。门限时间见P 35Table 15 。持续时间小于门限时间的脉冲不能保
证可靠复位。
端口C 的其他功能见后。
端口D(PD7..PD0) 端口D 为8 位双向I/O 口，具有可编程的内部上拉电阻。其输出缓冲器具有对称的驱动特
性，可以输出和吸收大电流。作为输入使用时，若内部上拉电阻使能，则端口被外部电路
拉低时将输出电流。在复位过程中，即使系统时钟还未起振，端口D 处于高阻状态。
端口D 的其他功能见后。
RESET 复位输入引脚。持续时间超过最小门限时间的低电平将引起系统复位。门限时间见 P
35Table 15 。持续时间小于门限时间的脉冲不能保证可靠复位。
30 ATmega8(L)
2486N–AVR–07/04
电源管理及睡眠模式睡眠模式可以使应用程序关闭MCU 中没有使用的模块，从而降低功耗。AVR 具有不同
的睡眠模式，允许用户根据自己的应用要求实施剪裁。
进入睡眠模式的条件是置位寄存器MCUCR 的SE，然后执行SLEEP 指令。具体哪一种
模式( 空闲模式、ADC 噪声抑制模式、掉电模式、省电模式及Standby 模式) 由MCUCR
的SM2、SM1 和SM0 决定，如Table 13 所示。使能的中断可以将进入睡眠模式的MCU
唤醒。经过启动时间，外加4 个时钟周期后， MCU 就可以运行中断例程了。然后返回到
SLEEP的下一条指令。唤醒时不会改变寄存器文件和SRAM的内容。如果在睡眠过程中发
生了复位，则MCU 唤醒后从中断向量开始执行。
注意，由于TOSC 与XTAL 共用同一引脚，对于许多AVR MCU 中有的扩展Standby 模
式在ATmega8 中已删除。
P 22Figure 10 介绍了ATmega8不同的时钟系统及其分布。此图在选择合适的睡眠模式时
非常有用。
MCU 控制寄存器－ MCUCR MCU 控制寄存器包含了电源管理的控制位。
· Bit 7 – SE: 休眠使能
为了使MCU 在执行SLEEP 指令后进入休眠模式， SE 必须置位。为了确保进入休眠模
式是程序员的有意行为，建议仅在SLEEP 指令的前一条指令置位SE。MCU 一旦唤醒立
即清除SE。
· Bits 6..4 – SM2..0: 休眠模式选择位 2、1 和0
如 Table 13 所示，这些位用于选择具体的休眠模式。
Note: 1. 仅在使用外部晶体或谐振器时Standby 模式才可用。
Bit 7 6 5 4 3 2 1 0
SE SM2 SM1 SM0 ISC11 ISC10 ISC01 ISC00 MCUCR
读/ 写R/W R/W R/W R/W R/W R/W R/W R/W
初始值0 0 0 0 0 0 0 0
Table 13. 休眠模式选择
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) 模式