Atmega8的具体介绍
在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倍。
Atmega8的详细参数
ATmega8 参数 ATmega8存储器 Flash ROM 8KB SRAM 1024B EEPROM 512B ATmega8性能参数特性 工作频率 0-8MHz (ATmega8L) 0-16MHz (ATmega8) 工作电压 2.7-5.5V (ATmega8L) 4.5-5.5V (ATmega8) I/O口 23个 16位定时器 / 计数器 1 8位定时器 / 计数器 2 PWM 3 RTC YES SPI 1 UART 1 TWI YES 10位ADC 6(DIP)8(TQFP / MLF) 模拟比较器 1 WDT 1(带独立片内振荡器) 外部中断 2 睡眠模式 5种 硬件乘法器 YES 片内振荡器 YES 引脚电平中断/唤醒功能 NO 掉电检测 YES 上电复位 YES ATmega8封装与引脚数 PDIP 28PIN QFP 32PIN QFN / MLF 32PIN ATmega8编程与调试方式 编程方式 ISP IAP H/PV 仿真方式 仿真头接入,模拟式仿真 4 ATmega8(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 高密度非易失性存储器技术生产的。片内ISP Flash 允许程序存储器通过ISP 串行接口,或者通用编程器进行编程,也可以通过运行于AVR 内核之中的引导程序进行编程。引导程序可以使用任意接口将应用程序下载到应用Flash存储区(ApplicationFlash Memory)。在更新应用Flash存储区时引导Flash区(Boot Flash Memory)的程序继续运行,实现了RWW 操作。 通过将8 位RISC CPU 与系统内可编程的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 的其他功能见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 复位输入引脚。持续时间超过最小门限时间的低电平将引起系统复位。门限时间见 P35Table 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 0SE 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 0Table 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) 模式
atmega48单片机
ICC的有些部分如ADC之类的自动生成是有问题的,在傻孩子的《深入浅出AVR单片机——从ATmega48/88/168开始》中有讲过,应该版本是6.31A吧,这个版本破解的很多但是BUG也不少。7.0就好很多了,至于pwm怎么会不对,估计是你算错了吧,有空可以交流哦,我叫呆猫一号,我有个呆猫一号吧你可以去看看,点下面我的名字也可以看到我以前回答的一些问题,呵呵对你的单片机之旅有所帮助哦