2AVR单片机原理及应用▲2.1AVR单片机内部结构▲2.2AVR单片机时钟和复位▲2.3AVR单片机存储器组织▲2.4AVR单片机中断系统▲2.5AVR单片机的节电方式2AVR单片机原理及应用▲2.6AVR单片机定时器/计数器的使用▲2.7AVR单片机串行接口▲2.8AVR单片机模拟比较器▲2.9AVR单片机I/O端口▲2.10AVR单片机存储器编程2.3.3EEPROM数据存储器90系列单片机包括64~4K字节的EEPROM存储器。它被组织为一个分开的数据空间,这个数据空间用单字节可被读写。EEPROM的使用寿命至少为100000次写/擦循环。EEPROM的访问由地址寄存器、数据寄存器、控制寄存器决定。2.3.3EEPROM数据存储器2.3.3EEPROM数据存储器2.3.3EEPROM数据存储器2.3.3EEPROM数据存储器2.3.3EEPROM数据存储器2.3.3EEPROM数据存储器CodeVisionAVRC编译器中,可以用eeprom关键字将全局变量分配至EEPROM中,如:eeprominta;也可以在定义时对变量初始化,如:eeprominta=1;CodeVisionAVRC编译器中还可以将数组、字符串、结构体分配至EEPROM中,如:eepromchara[4]={0,1,2,3};//数组Chareeprom*ptr_to_eeprom=”thisisplacedinEEPROM”;//字符串Eepromstructa{charb;intc;chare[15];}f;在CodeVisionAVRC编译器中可以直接访问EEPROM中的全局变量,与访问SRAM中的数据方式相同。2.3.4存储器访问和指令执行时序AVRCPU由系统时钟Φ驱动,直接由芯片的外部时钟晶振触发,没有使用内部时钟分频。下图为Harvard结构和快速访问寄存器堆概念触发的并行指令存取和指令执行时序。这种基本的流水线概念目的是为了获得高达每1MIPS/MHz的效率。Harvard结构和冯.诺曼结构冯·诺依曼结构又称作普林斯顿体系结构(Princetionarchitecture)1945年,冯·诺依曼首先提出了“存储程序”的概念和二进制原理,后来,人们把利用这种概念和原理设计的电子计算机系统统称为“冯.诺曼型结构”计算机。冯.诺曼结构的处理器使用同一个存储器,经由同一个总线传输。结构如图所示。冯.诺曼结构处理器具有以下几个特点:必须有一个存储器;必须有一个控制器;必须有一个运算器,用于完成算术运算和逻辑运算;必须有输入和输出设备,用于进行人机通信。冯·诺依曼的主要贡献就是提出并实现了“存储程序”的概念。由于指令和数据都是二进制码,指令和操作数的地址又密切相关,因此,当初选择这种结构是自然的。但是,这种指令和数据共享同一总线的结构,使得信息流的传输成为限制计算机性能的瓶颈,影响了数据处理速度的提高。冯·诺依曼结构又称作普林斯顿体系结构(Princetionarchitecture)在典型情况下,完成一条指令需要3个步骤,即:取指令、指令译码和执行指令。从指令流的定时关系也可看出冯·诺依曼结构与哈佛结构处理方式的差别。举一个最简单的对存储器进行读写操作的指令,指令1至指令3均为存、取数指令,对冯.诺曼结构处理器,由于取指令和存取数据要从同一个存储空间存取,经由同一总线传输,因而它们无法重叠执行,只有一个完成后再进行下一个。Harvard结构和冯.诺曼结构Harvard结构数字信号处理一般需要较大的运算量和较高的运算速度,为了提高数据吞吐量,在数字信号处理器中大多采用哈佛结构,如下图所示Harvard结构和冯.诺曼结构与冯.诺曼结构处理器比较,哈佛结构处理器有两个明显的特点:1、使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存;2、使用独立的两条总线,分别作为CPU与每个存储器之间的专用通信路径,而这两条总线之间毫无关联。Harvard结构后来,又提出了改进的哈佛结构,如下图所示Harvard结构和冯.诺曼结构其结构特点为:1、使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存,以便实现并行处理;2、具有一条独立的地址总线和一条独立的数据总线,利用公用地址总线访问两个存储模块(程序存储模块和数据存储模块),公用数据总线则被用来完成程序存储模块或数据存储模块与CPU之间的数据传输;3、两条总线由程序存储器和数据存储器分时共用。Harvard结构和冯.诺曼结构Harvard结构如果采用哈佛结构处理以上同样的3条存取数指令,如下图所示,由于取指令和存取数据分别经由不同的存储空间和不同的总线,使得各条指令可以重叠执行,这样,也就克服了数据流传输的瓶颈,提高了运算速度。2.3.5I/O存储器在编写源文件时一定要写该器件的配置文件,作为源文件的文件头,如选用AT90S8515单片机,源文件的文件头为:#include90s8515.h//文件头就是该器件的I/O寄存器及位地址的定义文件,汇编时用到它。在编写源文件时可以打开器件配置文件(*.inc)查看一下,防止没有器件配置文件头汇编时出错,有了器件配置文件头,在编写源程序时就不必重复定义I/O口及位地址等。90系列单片机所有不同的I/O口和外围设备均在I/O空间中已经设置好。2.3.5I/O存储器2.3.5I/O存储器2.3.5I/O存储器不同I/O和外围设备的控制寄存器2.3.5I/O存储器不同I/O和外围设备的控制寄存器2.3.5I/O存储器不同I/O和外围设备的控制寄存器2.4AVR单片机中断系统2.4.1中断处理2.4.2外部中断2.4.3中断应答时间2.4.4MCU控制寄存器MCUCR2.4.1中断处理中断源是指任何引起单片机中断的事件。不同型号的AVR单片机,其中断源的数量是不同的。AT90S8515有12个中断源和1个复位中断。所有中断源都有独立的中断使能位,当相应的使能位和全局中断使能位都置1时,中断才可以发生,相应的中断服务程序才会执行。初学者可能对中断的理解有限,表中给出这些中断的目的是以后可以便于查询,并非要求记住每个中断源及其名称。AVR单片机对于中断的处理是通过相应的中断寄存器进行的。2.4.1中断处理2.4.1中断处理2.4.1中断处理2.4.1中断处理2.4.1中断处理2.4.1中断处理2.4.2外部中断2.4.3中断应答时间2.4.4MCU控制寄存器MCUCR2.4.4MCU控制寄存器MCUCR2.5AVR单片机的节电方式2.5AVR单片机的节电方式2.5AVR单片机的节电方式SLEEP语句应用2.6AVR单片机定时器/计数器的使用2.6AVR单片机定时器/计数器的使用2.6AVR单片机定时器/计数器的使用2.6AVR单片机定时器/计数器的使用定时器/计数器0的控制寄存器定时器/计数器0定时器/计数器1的2个控制寄存器定时器/计数器1定时器/计数器1的2个输出比较寄存器看门狗定时器设定看门狗定时器分频选择(溢出时间)