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