第2章 AVR单片机的基本结构.docx
- 文档编号:24605033
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:53
- 大小:535.27KB
第2章 AVR单片机的基本结构.docx
《第2章 AVR单片机的基本结构.docx》由会员分享,可在线阅读,更多相关《第2章 AVR单片机的基本结构.docx(53页珍藏版)》请在冰豆网上搜索。
第2章AVR单片机的基本结构
第2章AVR单片机的基本结构
单片机是构成单片机嵌入式系统的核心器件。
本章首先将介绍一般单片机的基本结构和组成,使大家对单片机芯片的内部硬件有基本了解和认识。
掌握了单片机的基本结构和组成,对学习、了解任何一种类型单片机的工作原理,编写单片机的系统软件以及和设计外围电路都是非常重要的。
AVR是美国ATMEL公司推出的一款采用RISC指令的8位高速单片机。
本章将以ATmega16为主线,介绍和讲述AVR单片机内核的基本结构、引脚功能、工作方式等。
深入的理解和掌握AVR的基本结构,对后续章节的学习、以及对实际的应用AVR单片机都是非常重要的。
2.1单片机的基本组成
2.1.1单片机的基本组成结构
单片机嵌入式系统的核心部件是单片机,其结构特征是将组成计算机的基本部件集成在一块晶体芯片上,构成一片具有特定功能的单芯片计算机—单片机。
一片典型单片机芯片内部的基本组成结构如图2-1所示。
从单片机的基本组成可以看出,在一片(单片机)芯片中,集成了构成一个计算机系统的最基本的单元:
如CPU、程序(指令)存储器、数据存储器、各种类型的输入/输出接口等。
CPU同各基本单元通过芯片内的内部总线(包括数据总线、地址总线和控制总线)连接。
一般情况下,内部总线中的数据总线宽度(或指CPU的字长)也是标定该单片机等级的一个重要指标。
一般讲,低档单片机的内部数据总线宽度为4位(4位机),普通和中档单片机的内部数据总线宽度一般为8位(8位机),高档单片机内部数据总线宽度为16或32位。
内部数据总线宽度越宽,单片机的处理速度也相应的提高,功能也越强。
2.1.2单片机基本单元与作用
下面分别对单片机芯片中所集成的各个组成部分予以简要介绍。
1.MCU单元(MicrocontrollerUnit)
MCU单元部分包括了CPU、时钟系统、复位、总线控制逻辑等电路。
CPU是按照面向测控对象、嵌入式应用的要求设计的,其功能有进行算术、逻辑、比较等运算和操作,并将结果和状态信息与存储器以及状态寄存器进行交换(读/写)。
时钟和复位电路实现上电复位、信号控制复位,产生片内各种时钟及功耗管理等。
总线控制电路则产生各类控制逻辑信号,满足MCU对内部和外部总线的控制。
其中,内部总线用以实现片内各单元电路的协调操作和数据传输,而外部总线控制用于单片机外围扩展的操作管理。
2.片内存储器
单片机的存储器一般分成程序存储器和数据存储器,它们往往构成相互独立的两个存储空间,分别寻址,互不干扰。
在这一点上,与通用计算机系统的结构是不同的。
通用计算机系统通常采用“Von-Neumann”结构,在这种结构体系中采用了单一的数据总线用于指令和数据的存取,因此数据和指令是存放在同一个存储空间中的,CPU使用同一条数据总线与数据和程序进行交换,如在计算机原理课程中介绍的8086/8088。
而单片机的内部结构通常使用“Harvard”体系结构,在这种体系中采用分开的指令和数据总线,以及分开的指令和数据地址空间。
单片机采用Harvard双(多)总线结构的优点是,指令和数据空间完全分开,分别通过专用的总线同CPU交换,可以实现对程序和数据的同时访问,提高了CPU的执行速度和数据的吞吐率。
早期的单片机,如典型的8031单片机,在片内只集成少量的数据存储器RAM(128/256字节),没有程序存储器。
因此程序存储器和大容量的数据存储器需要进行片外的扩展,增加外围的存储芯片和电路,这给构成嵌入式系统带来了麻烦。
后期的单片机则在片内集成了相当数量的程序存储器,如与8031兼容的AT89S51、AT89S52在片内集成了4K/8K的Flash程序存储器。
而现在新型的单片机,则在片内集成了更多数量和更多类型的存储器。
如AVR系列的ATmega16在片内就集成了16K字节的Flash程序存储器,1K字节的RAM数据存储器,以及512字节的EEPROM数据存储器,这就大大方便了应用。
3.程序存储器
程序存储器用于存放嵌入式系统的应用程序。
由于单片机嵌入式系统的应用程序在开发调试完成后不需要经常改变,因此单片机的程序存储器多采用只读型ROM存储器,用于永久性的存储系统的应用程序。
为适应不同产品、用户和不同场合的需要,单片机的程序存储器有以下几种不同形式:
①ROMLess型。
该种形式的单片机片内没有集成程序存储器,使用时必须在单片机外部扩展一定容量的EPROM器件。
因此,使用这种类型的单片机就必须使用并行扩展总线,增加芯片,增加了硬件设计的工作量。
②EPROM型。
单片机片内集成了一定数量的EPROM存储器用于存放系统的应用程序。
这类单片机芯片的上部开有透明窗口,可通过约15分钟的紫外线照射来擦除存储器中的程序,再使用专用的写入装置写入程序代码和数据,写入次数一般为几十次。
③MaskROM型。
使用种类型的单片机时,用户要将调试好的应用程序代码交给单片机的生产厂家,生产商在单片机芯片制造过程的掩膜工艺阶段将程序代码掩膜到程序存储器中。
这种单片机便成为永久性专用的芯片,系统程序无法改动,适合于大批量产品的生产。
④OTPROM型。
这种类型的单片机与MaskROM型的单片机有相似的特点。
生产商提供新的单片机芯片中的程序存储器可由用户使用专用的写入装置一次性编程写入程序代码,写入后也无法改动了。
这种类型的单片机也是适用于大批量产品的生产。
⑤FlashROM型。
这是一种可供用户多次擦除和写入程序代码的单片机。
它的程序存储器采用快闪存储器(FlashMemory),现在可实现大于1万次的写入操作。
内部集成FlashROM型单片机的出现,以及随着Flash存储器价格的下降,使得使用FlashROM的单片机正在逐步淘汰使用其它类型程序存储器的单片机。
由于FlashROM可多次擦除(电擦除)和写入的特性,加上新型的单片机又采用了在线下载ISP技术(InSystemProgram--既无需将芯片从系统板上取下,直接在线将新的程序代码写入单片机的程序存储器中。
),不仅为用户在嵌入式系统的设计、开发和调试带来了极大的方便,而且也适用于大批量产品的生产,并为产品的更新换代提供了更广阔的空间。
4.数据存储器
单片机在片内集成的数据存储器一般有两类:
随机存储器RAM和电可擦除存储器EEPROM。
①随机存储器RAM。
在单片机中,随机存储器RAM是用来存储系统程序在运行期间的工作变量和临时数据的。
一般在单片机内部集成一定容量(32字节至512字节或更多)的RAM。
这些小容量的数据存储器以高速RAM的形式集成在单片机芯片内部,作为临时的工作存储器使用,可以提高单片机的运行速度。
在单片机中,常把内部寄存器(如工作寄存器、I/O寄存器等)在逻辑上也划分在RAM空间中,这样即可以使用专用的寄存器指令对寄存器进行操作,也可将寄存器当做RAM使用,为程序设计提供了方便和灵活性。
对一些需要使用大容量数据存储器的系统,就需要在外部扩展数据存储器。
这时,单片机就必须具备并行扩展总线的功能,同时外围也要增加RAM芯片和相应的地址锁存、地址译码等电路。
这不仅增加了硬件设计的工作量,产品的成本,同时降低了系统的可靠性。
目前许多新型单片机片内集成的RAM容量越来越大。
片内集成的RAM容量增加,不仅减少了在片外扩展RAM的必要性,提高了系统的可靠性,而且更重要的是,使得单片嵌入式系统的软件设计思想和方法有了许多的改变和发展,给编写系统程序带来很大的方便,更加有利于结构化、模块化的程序设计。
②电可擦除存储器EEPROM。
一些新型的单片机,在芯片中还集成了电可擦除存储器型EEPROM的数据存储器。
这类数据存储器用于存放一些永久或比较固定的系统参数,如放大倍率、电话号码、时间常数等。
EEPROM的寿命大于10万次,具有掉电后不丢失数据的特点,并且通过系统程序可以随时修改,这些特性都给用户设计开发产品带来极大的方便和想象空间。
5.输入/输出(I/O)端口
为了满足嵌入式系统“面向控制”的实际应用需要,单片机提供了数量众多、功能强、使用灵活的输入/输出端口,简称I/O。
端口的类型可分为以下几种类型:
1并行总线输入/输出端口(并型I/O口)。
用于外部扩展和扩充并行存储器芯片或并行I/O芯片等使用,包括数据总线、地址总线和读写控制信号等。
2通用数字I/O端口。
用于外部电路逻辑信号的输入和输出控制。
3片内功能单元的输入/输出端口。
如:
定时器/计数器的计数脉冲输入,外部中断源信号的输入等。
4串行I/O通信口。
用于系统之间或与采用专用串行协议的外围芯片之间的连接和交换数据。
如:
UART串行接口(RS-232),I2C串行接口,SPI串行接口,USB串行口等。
5其它专用接口。
一些新型的单片机还在片内集成了某些专用功能的模拟或数字的I/O端口,如A/D输入、D/A输出接口,模拟比较输入端口,脉宽调制(PWD)输出端口等。
更有的单片机还将LCD液晶显示器的接口也集成到单片机芯片中了。
为了减少芯片引脚的数量,又能提供更多性能的I/O端口给用户使用,大多数的单片机都采用了I/O端口复用技术,既某一端口,它即可作为一般通用的数字I/O端口使用,也可作为某个特殊功能的端口使用,用户可根据系统的实际需要来定义使用。
这样就为设计开发提供了方便,大大拓宽了单片机的应用范围。
6.操作管理寄存器。
操作管理寄存器也是单片机芯片中的重要组成部分之一。
它的功能是管理、协调、控制和操作单片机芯片中的各功能单元的使用和运行。
这类寄存器的种类有:
状态寄存器、控制寄存器、方式寄存器、数据寄存器等等。
各种寄存器的定义、功能、状态、相互之间的关系和应用相对比较复杂,而且往往同相应的功能单元的使用紧密相关,因此,用户应非常熟悉各个寄存器的作用以及如何与不同的功能单元的配合使用,这样才能通过程序指令对其编程操作,以实现对单片机芯片中各种功能的正确使用,充分发挥单片机的所有特点和性能,设计和开发出高性能、低成本的电子产品。
可以这样讲,当你对某个单片机芯片中各个操作管理寄存器的作用、功能、定义非常透彻的掌握了,那么你已经完全精通和能够熟练使用该单片机了。
2.2ATmega16单片机的组成
ATMEL公司的AVR单片机是一种基于增强RISC结构的、低功耗、CMOS技术、8位微控制器(EnhancedRISCMicrocontroller),目前有Tiny、Mega两个系列50多种型号。
它们的功能和外部的引脚各有不同,小到8-12个引脚,多到100个引脚,但它们内核的基本结构是一样的,指令系统相容。
本书将以性能适中的ATmega16为主线,介绍和讲述AVR单片机的组成,以及如何应用在嵌入式系统中。
在正式的产品开发与设计时,设计者可根据系统的实际需要选择合适型号的AVR单片机。
2.2.1AVR单片机的内核结构
图2-2AVR单片机的内核结构示意图
尽管AVR单片机系列有几十种的型号,但它们有着相同的内核结构,指令兼容。
图2-2为典型的AVR单片机的内核结构图。
为了提高MCU并行处理的运行效率,AVR单片机采用了程序存储器和数据存储器使用不同的存储空间和存取总线的Harvard结构。
算术逻辑单元(ALU)使用单级流水线操作方式对程序存储器进行访问,在执行当前一条指令的同时,也完成了从程序存储器中取出下一条将要执行指令的操作,因此执行一条指令仅需要一个时钟周期。
在AVR的内核中,由32个访问操作只需要一个时钟周期的8位通用工作寄存器组成了“快速访问寄存器组”。
“快速访问”意味着在一个时钟周期内执行一个完整的ALU操作。
这个ALU操作中包含三个过程:
从寄存器组中取出两个操作数,操作数被执行,将执行结果写回目的寄存器中。
这三个过程是在一个时钟周期内完成的,构成一个完整的ALU操作。
在32个通用工作寄存器中,有6个寄存器可以合并成为3个16位的,用于对数据存储器空间进行间接寻址的间接地址寄存器(存放地址指针),以实现高效的地址计算。
这3个16位的间接地址寄存器称为:
X寄存器,Y寄存器和Z寄存器。
其中Z寄存器还能作为间接寻址程序存储器空间的地址寄存器,用于在Flash程序存储器空间进行查表等操作。
AVR的算术逻辑单元(ALU)支持寄存器之间,立即数与寄存器之间的算术与逻辑运算功能,以及单一寄存器操作。
每一次运算操作的结果将影响和改变状态寄存器(SREG)的值。
使用条件转移、无条件转移和调用指令,可以直接访问全部Flash程序存储器空间以及控制程序的执行顺序。
大部分AVR指令为单一16位格式,只有少数指令为32位格式。
因此,AVR的程序存储器单元为16位,即每个程序地址(两字节地址)单元存放一条单一的16位指令字。
而一条32位的指令字,则要占据2个程序存储器单元。
ATmega16单片机的Flash程序存储器空间可以分成两段:
引导程序段(Bootprogramsection)和应用程序段(Applicationprogramsection)。
两个段的读写保护可以分别通过设置对应的锁定位(Lockbits)来实现。
在引导程序段内驻留的引导程序中,可以使用SPM指令,实现对应用程序段的写操作(实现在应用自编程IAP功能,使系统能够自己更新系统程序)。
在响应中断服务和子程序调用过程时,程序计数器PC中的返回地址将被存储于堆栈之中。
堆栈空间将占用数据存储器(SRAM)中一段连续的地址。
因此,堆栈空间的大小仅受到系统总的数据存储器(SRAM)的大小以及系统程序对SRAM的使用量的限制。
用户程序应在系统上电复位后,对一个16位的堆栈指针寄存器SP进行初始化设置(或在子程序和中断程序被执行之前)。
在AVR中,所有的存储器空间都是线性的。
数据存储器(SRAM)可以通过5种不同的寻址方式进行访问。
AVR的中断控制由I/O寄存器空间的中断控制寄存器和状态寄存器中的全局中断允许位组成。
每个中断都分别对应一个中断向量(中断入口地址)。
所有的中断向量构成了中断向量表,该中断向量表位于Flash程序存储器空间的最前面。
中断的中断向量地址越小,其中断的优先级越高。
I/O空间为连续的64个I/O寄存器空间,它们分别对应MCU各个外围功能的控制和数据寄存器地址,如控制寄存器、定时器/计数器、A/D转换器及其他的I/O功能等。
I/O寄存器空间可使用I/O寄存器访问指令直接访问,也可将其映射为通用工作寄存器组后的数据存储器空间,使用数据存储器访问指令进行操作。
I/O寄存器空间在数据存储器空间的映射地址为$020~$05F。
AVR单片机的性能非常强大,所以它的内部结构相对8031结构的单片机要复杂。
对于刚开始接触和学习单片机的人员,以及了解8051结构单片机的人来讲,在这里尽管不会马上理解AVR内核的全部特点,但通过以后的逐步学习,应逐渐深入的体会和掌握它的原理,这对于熟练的应用AVR设计开发产品,以及将来学习使用更新的单片机都会有很大的帮助。
技术是在不断的发展的。
2.2.2典型AVR芯片ATmega16特点
AVR系列单片机中比较典型的芯片是ATmega16。
这款芯片具备了AVR系列单片机的主要的特点和功能,不仅适合应用于产品设计,同时也方便初学入门。
其主要特点有:
(1)采用先进RISC结构的AVR内核
131条机器指令,且大多数指令的执行时间为单个系统时钟周期;
32个8位通用工作寄存器;
工作在16MHz时具有16MIPS的性能。
配备只需要2个时钟周期的硬件乘法器
(2)片内含有较大容量的非易失性的程序和数据存储器
16K字节在线可编程(ISP)Flash程序存储器(擦除次数>1万次),采用BootLoad技术支持IAP功能;
1K字节的片内SRAM数据存储器,可实现3级锁定的程序加密;
512个字节片内在线可编程EEPROM数据存储器(寿命>10万次);
(3)片内含JTAG接口
支持符合JTAG标准的边界扫描功能用于芯片检测;
支持扩展的片内在线调试功能
可通过JTAG口对片内的Flash、EEPROM、配置熔丝位和锁定加密位实施下载编程;
(4)外围接口
2个带有分别独立、可设置预分频器的8位定时器/计数器;
1个带有可设置预分频器、具有比较、捕捉功能的16位定时器/计数器;
片内含独立振荡器的实时时钟RTC;
4路PWM通道;
8路10位ADC
面向字节的两线接口TWI(兼容I2C硬件接口);
1个可编程的增强型全双工的,支持同步/异步通信的串行接口USART;
1个可工作于主机/从机模式的SPI串行接口(支持ISP程序下载);
片内模拟比较器;
内含可编程的,具有独立片内振荡器的看门狗定时器WDT;
(5)其它的特点
片内含上电复位电路以及可编程的掉电检测复位电路BOD;
片内含有1M/2M/4M/8M,经过标定的、可校正的RC振荡器,可作为系统时钟使用;
多达21个各种类型的内外部中断源;
有6种休眠模式支持省电方式工作;
(6)宽电压、高速度、低功耗
工作电压范围宽:
ATmega16L2.7—5.5v,ATmega164.5—5.5v;
运行速度:
ATmega16L0—8M,ATmega160—16M;
低功耗:
ATmega16L工作在1MHz、3v、25度时的典型功耗为,正常工作模式1.1mA,空闲工作模式0.35mA,掉电工作模式<1uA;
(7)芯片引脚和封装形式
ATmega16共有32个可编程的I/O口(脚),芯片封装形式有40引脚的PDIP、44引脚的TQFP和44引脚的MLF封装。
2.2.3外部引脚与封装
ATmega16单片机有三种形式的封装:
40脚双列直插PDIP、44脚方形的TQFP和MLF形式(贴片形式)。
其外部引脚封装如图2-3所示。
图2-3ATmage16外部引脚与封装示意图
其中,各个引脚的功能如下:
(1)电源、系统晶振、芯片复位引脚
Vcc:
芯片供电(片内数字电路电源)输入引脚,使用时连接到电源正极。
AVcc:
为端口A和片内ADC模拟电路电源输入引脚。
不使用ADC时,直接连接到电源正极;使用ADC时,应通过一个低通电源滤波器与Vcc连接。
AREF:
使用ADC时,可作为外部ADC参考源的输入引脚。
GND:
芯片接地引脚,使用时接地。
XTAL2:
片内反相振荡放大器的输出端。
XTAL1:
片内反相振荡放大器和内部时钟操作电路的输入端。
RESET:
RESET为芯片复位输入引脚。
在该引脚上施加(拉低)一个最小脉冲宽度为1.5us的低电平,将引起芯片的硬件复位(外部复位)。
(2)32根I/O引脚,分成PA、PB、PC和PD四个8位端口,他们全部是可编程控制的双(多)功能复用的I/O引脚(口)。
四个端口的第一功能是通用的双向数字输入/输出(I/O)口,其中每一位都可以由指令设置为独立的输入口,或输出口。
当I/O设置为输入时,引脚内部还配置有上拉电阻,这个内部的上拉电阻可通过编程设置为上拉有效或上拉无效。
如果AVR的I/O口设置为输出方式工作,当其输出高电平时,能够输出20mA的电流,而当其输出低电平时,可以吸收40mA的电流。
因此AVR的I/O口驱动能力非常强,能够直接驱动LED发光二极管、数码管等。
而早期单片机I/O口的驱动能力只有5mA,驱动LED时,还需要增加外部的驱动电路和器件。
芯片Reset复位后,所有I/O口的缺省状态为输入方式,上拉电阻无效,即I/O为输入高阻的三态状态。
以上我们简单介绍了ATmega16单片机的主要特性以及引脚封装。
可以看出,小小的一块芯片,其内部的组成结构却是相当复杂的。
也正式这种复杂,加上多样的程序,才使得单片机在实际应用中变化无穷。
下面,我们从ATmega16的内部结构出发,逐步的介绍它的工作原理和使用方法。
2.3ATmega16内部结构
图2-4ATmage16的结构框图
图2-4是ATmage16的结构框图。
它是在AVR内核(图2-3)的基础上,具体化的一个实例。
从图中可以看出,ATmega16内部的主要构成部分有:
●AVRCPU部分。
包括:
ALU运算逻辑单元、32个8位快速访问通用寄存器组(寄存器文件)、程序计数器PC、指令寄存器、指令译码器。
●程序存储器Flash。
●数据存储器RAM和EEPROM。
●各种功能的外围接口、I/O,以及与它们相关的数据、控制、状态寄存器等。
2.3.1AVR中央处理器CPU
AVRCPU是单片机的核心部分,它由运算逻辑单元ALU、程序计数器PC、指令寄存器、指令译码器等部件组成。
1.运算逻辑单元ALU
运算逻辑单元ALU的功能是进行算术运算和逻辑运算,可对半字节(4位)、单字节等数据进行操作。
如能完成加、减、自动加1、自动减1、比较等算术运算和与、或、异或、求补、循环移位等逻辑操作。
操作结果的状态,如产生进位、结果为零等状态信息将影响到状态寄存器SREG相应的标志位。
运算逻辑单元ALU还包含一个布尔处理器,用来处理位操作。
它可执行置位、清零、取反等操作。
ATmega16的ALU还能实现无符号数、有符号数以及浮点数的硬件乘法操作。
一次硬件乘法操作的时间为2个时钟周期。
2.程序计数器PC、指令寄存器和指令译码器
程序计数器PC用来存放下一条需要执行指令在程序存储器空间的地址(指向Flash空间)。
取出的指令存放在指令寄存器中,然后送入指令译码器产生各种控制信号,控制CPU的运行(执行指令)。
AVR一条指令的长度大多数为16位,还有少部分为32位,因此AVR的程序存储器结构实际上是以字(16位)为一个存储单元的。
ATmega16的程序计数器为13位,正好满足了对片内8K字(即手册上的16K字节)的Flash程序存储器空间直接寻址的需要,因此就不能(不支持)在外部扩展更多的程序存储器。
AVRCPU在译码执行一条指令的同时,就将PC中指定的Flash单元中的指令取出,放入指令寄存器中(图中的InstructionRegister),构成了一级流水线运行方式。
AVR采用一级流水线技术,在当前指令执行的时候,就取出下一条将要执行的指令,加上大多数AVR指令的长度是一个字,就使得AVRCPU实现了一个时钟周期执行一条指令。
采用这种结构,减少了取指令的次数,大大提高了CPU的运行速度,同时也提高了取指令操作的(系统的)可靠性。
而在其它的CISC以及类似的RISC结构的单片机中,外部振荡器的时钟被分频降低到传统的内部指令执行周期,这种分频最大达12倍(例如,标准8031结构的单片机)。
三.通用工作寄存器组
在AVR中,由命名为R0~R31的32个8位通用工作寄存器构成一个“通用快速工作寄存器组”,图2-5为通用快速工作寄存器组的结构图。
AVRCPU中的ALU与这32个通用工作寄存器组直接相连,为了使ALU能够高效和灵活地对寄存器组进行访问操作,通用寄存器组提供和支持ALU使用4种不同的数据输入/输出的操作方式:
●提供一个8位源操作数,并保存的一个8位结果
●提供两个8位源操作数,并保存的一个8位结果
●提供两个8位源操作数,并保存的一个16位结果
●提供一个16位源操作数,并保存的一个16位结果
因此,AVR大多数操作工作寄存器组的指令都可以直接访问所有的寄存器,而且多数这样的指令的执行时间是一个时钟周期。
例如,从寄存器组中取出两个操作数,对操作数实施处理,处理结果回写到目的寄存器中。
这三个过程是在一个时钟周期内完成的,构成一个完整的ALU指令操作。
在传统的基于累加器结构的单片机中(如8051),则需要大量的程序代码来完成和实现在累加器和存储器之间的数据传送。
如上面所介绍的操作过程就需要三条指令来实现:
第一条完成从寄存器中取出源操作数;第二条完成对操作数实施处理;第三条将处理
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第2章 AVR单片机的基本结构 AVR 单片机 基本 结构