华佗小知识
您的当前位置:首页第2章 AVR单片机开发工具

第2章 AVR单片机开发工具

来源:华佗小知识
AVR单片机技术

目录

第2章

2.1 2.2

AVR单片机开发工具 .............................................................................................. 2-1 单片机系统开发过程 ............................................................................................... 2-1 单片机系统的开发工具与环境 ............................................................................... 2-2 2.2.1 单片机的程序设计语言 ............................................................................... 2-2 2.2.2 单片机应用系统的开发软件平台 ............................................................... 2-3 单片机应用系统的硬件开发工具 ........................................................................... 2-4 2.3.1 AVR单片机应用系统的软件开发平台 ...................................................... 2-7 2.3.2 AVR实验开发板 ......................................................................................... 2-11 2.3.3 自制ISP下载线 ..........................................................................................2-18 2.3.4 在ICCAVR、CVAVR、BASCOM-AVR中的使用 ..................................2-19 BASCOM-AVR与下载有关的设置: ...................................................................2-19 HHXX2.0实验板初次使用熔丝配置: ................................................................2-21 2.5.1 首次使用 ......................................................................................................2-21 2.5.2 AVR开发环境的建立 .................................................................................2-23 思考与练习 ..............................................................................................................2-24

2.3

2.4 2.5

2.6

第2章 AVR单片机开发工具

2.1 单片机系统开发过程

在一个具体的单片机嵌入式系统的设计时,一般需要作以下几个方面的考虑: 确定系统设计的任务

在进行系统设计之前,首先必须明确任务,确定系统的技术指标,包括系统必须具有那些功能等。这是系统设计的出发点,它将贯串于整个系统设计的全过程。

1. 系统方案设计

总体方案设计一般包括: (1)单片机芯片的选择。单片机芯片的选择应适合于应用系统的要求。不仅要考虑单片机芯片本身的性能是否能够满足系统的需要,如:执行速度、中断功能、I/O驱动能力与数量、系统功耗以及抗干扰性能等,同时还要考虑开发和使用是否方便、市场供应情况与价格、封装形式等其它因素。

(2)外围电路芯片和器件的选择。仅仅一片单片机芯片是不能构成一个完整的嵌入式系统的。一个典型的系统往往由输入部分(按键、A/D、各种类型的传感器与输入接口转换电路),输出部分(指示灯、LED显示、LCD显示、各种类型的传动控制部件),存储器(用于系统数据记录与保存),通信接口(用于向上位机交换数据、构成联网应用),电源供电等多个单元组成。这些不同的单元涉及到模拟、数字、弱电、强电以及它们相互之间的协调配合、转换、驱动、抗干扰等。因此,对于外围芯片和器件的选择,整个电路的设计,系统硬件机械结构的设计,接插件的选择,甚至产品结构、生产工艺等,都要进行全面和细致的考虑。任何一个忽视和不完善,都会给整个系统带来隐患,甚至造成系统设计和开发的失败。 (3)综合考虑软、硬件的分工与配合。单片机嵌入式系统中的硬件和软件具有一定的互

2-1

第2章 AVR单片机开发工具

换性,有些功能可以用硬件实现,也可以用软件来实现,因此,在方案设计阶段要认真考虑软、硬件的分工和配合。采用软件实现功能可以简化硬件结构,降低成本,但软件系统则相应的复杂化,增加了软件设计的工作量。而用硬件实现功能则可以缩短系统的开周期,使软件设计简单,相对提高了系统的可靠性,但可能提高了成本。在设计过程中,软、硬件的分工与配合需要取得协调,才能设计出好的应用系统。

(4)对某些没有充分把握譬如没有动手做过的电路和方案还要进行局部电路的实验验证和调试,以免后期返工。

2. 硬件系统设计

开发人员在选定能实现技术指标和全部功能的单片机芯片和相应的外围电路器件后,即可设计整个系统的电原理图。以及设计相应的印刷板(PCB)图。这个阶段常使用的软件平台是电子电路CAD软件,如PROTEL等。

3. 系统软件设计编写

在硬件系统设计的基础上,则要根据系统的功能要求和硬件电路的结构设计和编写系统软件。作为单片机系统软件设计人员,应该具备扎实的硬件功底,不仅是对系统的功能和要求有深入的了解,而且对实现的硬件系统、使用的芯片和外围电路的性能也要很好的掌握。这样才能设计出可靠的系统程序。

一个嵌入式系统的系统软件实际上就是该系统的监控程序。对于一些小型嵌入式系统的应用程序一般采用汇编语言编写。对于中、大型的嵌入式系统,常采用高级语言(如:C语言、Basic语言)来编写。软件设计和编写也是开发嵌入式系统过程中非常重要和困难的任务之一,因为它直接关系到实现系统的功能和系统的性能。

4. 系统调试

当硬件和软件设计好后,就可以进行系统调试了。硬件电路系统调试检查分为静态检查和动态检查。硬件的静态检查主要检查电路制作的正确性,如路线、焊接等。动态检查一般首先要使用仿真系统(对于采用ISP技术的系统可直接)输入各种单元部分的系统调试和诊断程序,检查系统的各个部分的功能是否能正常工作。硬件电路调试完成后可进行系统的软硬件联调。先将各功能模块程序分别调试完毕,然后组合,进行完整的系统运行程序调试。最后还要进行各种工业测试和现场测试,考验系统在实际应用环境中是否能正常可靠的工作,是否达到设计的性能和指标。

系统的调试往往要经过多次的反复。硬件系统设计的不足、软件程序中的漏洞,都可能是造成系统调试出现问题。系统调试要具备相当水平和实践经验,它全面反映了嵌入式系统设计开发者的水平和能力。

动手是关键。单片机的设计开发能力是不能够仅仅通过书本的理论学习就能够掌握的,要非常注重实际的动手过程,通过反复的学习-实践-学习-实践,只有这样才能真正的掌握这门技术。

2.2 单片机系统的开发工具与环境

2.2.1 单片机的程序设计语言

单片机的程序设计语言可分为三类:机器语言、汇编语言和高级语言。 1. 机器语言

机器语言是完全面向芯片的语言,由二进制码“0”和“1”组成。在单片机的程序存储器中存放就是以“0”和“1”构成的二进制序列指令字,它是单片机CPU直接识别和执行的

2-2

AVR单片机技术

语言。用机器语言表示的程序称为机器语言程序或目标程序。如下面一条AVR机器语言代码:

0000110000000001

就是将AVR单片机内部的寄存器单元R0和R1的内容相加,结果保存在R0中。

采用机器语言编程不仅难学、难记,而且也不易理解和调试,因此人们不直接使用机器语言来编写系统程序,往往使用汇编语言或高级语言编写程序。不过,无论使用汇编语言还是高级语言来编写系统程序,最终都需要使用相应的开发软件系统(一般在软件开发平台中的都提供编译软件系统)将其编译成机器语言,生成目标程序的二进制代码文件(.bin或.hex),然后再把目标代码写入(编程下载)单片机的程序存储器中,最后由单片机的CPU执行。

2. 汇编语言

汇编语言是一种符号化的语言,它使用一些方便记忆特定的助记符(特定的英文字符)来代替机器指令。如“ADD”表示加,“MOV”表示传送等。上面的AVR机器指令用汇编语言表示为:ADD R0,R1

用汇编语言编写的程序称为汇编语言程序,显然,它比机器语言易学、易记。但是,汇编语言也是面向机器的,也属于低级语言。由于各种单片机的机器指令不同,每一类单片机的汇编语言也是不同的,如8051的汇编语言同AVR的汇编语言是完全不一样的。 传统开发单片机应用系统主要是用汇编语言编写系统程序。学习和采用汇编语言开发系统程序的优点是:能够全面和深入的理解单片机硬件的功能,充分发挥单片机的硬件特性。但由于汇编语言编写的程序可读性、可移植性(各种单片机的机器指令不同)和结构性都较差,因此采用汇编语言编来开发单片机应用系统程序的比较麻烦,调试和排错也比较困难,产品开发周期长,同时要求软件设计人员要具备相当高的能力和经验。

3. 高级语言

高级语言是一种“基本”不依赖硬件的程序设计语言。这里的“基本”是指编写在通用计算机系统上远行的系统软件。

由于高级语言具有面向问题或过程,其形式类似自然语言和数学公式,结构性、可读性、可移植好的特点,所以为了提高编写系统应用程序的效率,改善程序的可读性和可移植性,缩短产品的开发周期,采用高级语言来开发单片机系统已成为当前的发展趋势。

需要特别注意的是,在设计开发单片机应用系统的系统软件过程中,总是要同硬件打交道,而且关联是比较密切的,其软件设计有着自己独特技巧和方法。因此,那些纯软件出身的软件工程师,如果没有硬件的基础,没有经过一定的学习和实践,可能还写不好,甚至写不了单片机应用系统的系统软件。

不管是使用汇编语言还是高级语言来开发单片机系统程序,都需要一个专用的软件平台把软件设计人员编写的源程序“翻译”成二进制的机器指令代码,这个“翻译”过程对汇编语言来讲称为汇编,对高级语言来讲,它包括编译和连接两个过程。因此,一个性能优良的,专门用于开发单片机的软件平台和环境也是必不可少的开发工具。

2.2.2 单片机应用系统的开发软件平台

单片机应用系统的设计和开发需要一个好的软件开发平台的支持。一个好的单片机应用系统的开发软件通常具备以下几个重要的功能:

 单片机系统程序编写和运行代码的生成。(编辑、编译功能)

嵌入式系统开发平台支持用户采用专用汇编程序设计语言或高级程序设计语言(C、Basic等)编写嵌入式系统控制程序的源代码,并将源代码编译连接生成可在单片机中执行的二进制代码(Hex、Bin)。

2-3

第2章 AVR单片机开发工具

 软件模拟仿真。

提供一个纯软件的仿真环境,在此环境的支持下,单片机的系统程序可以进行模拟的运行,以实现第一步的软件调试和排错功能。  在线仿真功能。

与专用的仿真器配合,提供一个硬件在线的实时仿真调试环境(见下节在线仿真器)。用户将编写好的目标系统运行代码下载到仿真器中,通过开发系统软件控制仿真器中程序的运行,同时观察硬件系统的运行结果,分析、调试和排除系统中存在的问题。

 程序下载烧入功能。

与专用的编程器配合或使用ISP技术,将二进制运行代码写入到单片机的程序存储器中。

要熟练掌握和应用单片机来设计开发嵌入式系统,除了对所使用的单片机要有全面和深入的了解外,配备和使用一套好的开发环境和开发平台也是必不可缺的。在嵌入式系统的设计开发中,选用了好的开发工具和开发平台,往往能加速嵌入式应用系统的研制开发、调试、生产和维修,起到事半功倍的效果。

国内外许多公司根据不同单片机的性能和特点,研制推出了各种类型的用于开发单片机应用系统的单片机开发装置和软件开发平台。不同类型的单片机使用的开发系统是不同的。对同一类型的单片机来讲,也有多种类型和功能的开发装置和开发平台。价格便宜、性能适中的系统在几百元,高性能的开发系统则要数千元到上万元,甚至仅仅一套软件开发平台就要上万元。虽然设计开发一个嵌入式系统,你可以选用多家公司、多种类型的单片机,但你在决定学习和使用哪种单片机时,应对单片机的性能价格,开发装置和开发平台的性能价格,以及是否方便使用等,几方面做一个综合的评估。

2.3 单片机应用系统的硬件开发工具

在学习和应用单片机来设计开发嵌入式系统的过程中,一般应配备两种硬件设备:仿真器和编程烧入器。仿真器是用于对所设计嵌入式系统的硬软件进行调试的工具,而编程烧入器的作用则是将系统执行代码写入到目标系统中。现在更多的开发设备是将仿真器和编程烧入器合二为一了,同时具备了两者的功能。

调试(Debug)是系统开发过程中必不可少的环节。但是嵌入式系统开发的调试环境和方法同通用计算机系统的软件开发有着明显的差异。通用计算机系统的软件开发基本与硬件无关,而且调试器与被调试程序常常位于同一台计算机上(在相同的CPU上运行),如在Windows平台上利用VC、VB等语言开发在Windows上的运行的软件。而对于嵌入式系统的开发,由于开发主机和目标机处于不同的机器中(在不同的CPU上运行):系统程序在开发主机上进行开发,编译生成在另外机器上执行的代码文件,然后需要下装到目标机后才能运行,那么对嵌入式系统的调试方法和过程就比较麻烦和复杂。

目前在嵌入式系统开发过程中,经常采用的调试方法有三种方式:软件模拟仿真调试(Simulator)、实时在板仿真调试(On Board Debug)和实时在片仿真调试(On Chip Debug)。其中软件模拟仿真调试技术和实时在片仿真调试技术发展很快,逐渐成为调试嵌入式系统的主要手段。

1. 软件仿真器

软件仿真器也称为指令集模拟器(ISS),其原理是用软件来模拟CPU处理器硬件的执行过程,包括指令系统、中断、定时计数器、外部接口等等。用户开发的嵌入式系统软件,就像已经下装到目标系统硬件一样,载入到软件模拟器中运行,这样用户可以方便对程序运

2-4

AVR单片机技术

行进行控制,对运行过程进行监视,进而达到实现调试的目的。由于这种调试不是在真正的目标板系统上进行的,而是采用软件模拟方式实现的,所以它是一种非实时性的仿真调试手段。

软件仿真器的一个优点是它可以使嵌入式系统的软件和硬件开发并行开展。只要硬件设计工作完成后,不管硬件实体如何,就可以进行软件程序的编写和调试了。应用程序在结构上、逻辑上的错误能够利用软件仿真器很快的发现和定位。有些与硬件相关的故障和错误也能在软件仿真器中被发现。使用软件仿真器不仅可以缩短产品开发周期,而且非常经济,不需要购买昂贵的实时仿真设备。同时软件仿真器也是学习和加深了解所使用处理器的内部结构和工作原理的最好工具。

使用软件仿真器的缺点是其模拟的运行速度比真正的硬件慢的多,一般要慢10~100倍。另外软件仿真器只能模拟仿真软件的正确性,仿真与时序有关,查找同硬件有关的错误比较困难。

目前推出的比较先进的单片机应用系统开发平台一般都内含软件仿真器,如ATMEL公司的AVR Studio中就包含一个功能非常强大的软件仿真器,能够实现汇编级和高级语言级的软仿真功能。一些针对AVR开发的平台,如IAR、BASCOM中也都包含自己的软件仿真器。值得一提的是BASCOM的软件仿真器提供了模拟实物图形化界面,将一些标准化的外围器件如字符LCD模块、键盘模块等作为实物显示在屏幕上,用户能够更加直观的看到系统运行的结果,使用非常方便。另外,目前在市场上有一些专用的软件模拟平台,如vmlab等,都可以实现对AVR的模拟仿真调试,但一般价格比较昂贵。

2. 实时在板仿真器(ICE)

实时在板仿真器通常称为在线仿真ICE(In Circuit Emulate),它是最早用于开发嵌入式系统的工具。ICE是实际是一个特殊的嵌入式系统,一般是由专业公司研制和生产。它的内部含有一个具有“透明性”和“可控性”的MCU,可以代替被开发系统(目标系统)中的MCU工作,既用ICE的资源来仿真目标机。因此,ICE实际上是内部电路仿真器,它是一个相对昂贵的设备,用于代替微处理器,并植入微处理器与总线之间的电路中,允许使用者监视和控制微处理器所有信号的进出。因此,这种仿真方式和设备,更准确的讲应该称为实时在板仿真(On Board Debug)器。

ICE仿真器一般使用串行口(COM口或USB接口)或并行口(打印机口)同PC机通信,并提供一个与目标机系统上的MCU芯片引脚相同的插接口(仿真口)。使用时,将目标机上的MCU取下,插上仿真器的仿真口,仿真器的通信口与PC连接(图2-1)。

MCU 插座 PC机 仿真器 目标系统 图2-1 仿真器的连接与使用示意图 仿真器上所提供的MCU称为仿真MCU,它与目标系统上使用的MCU是相同系列,或具备相同的功能和特性,其控制作用和工作过程与被仿真的MCU几乎完全一样。使用者将编写好

2-5

第2章 AVR单片机开发工具

的目标系统的软件下载到仿真器中,然后将目标机上的MCU取下,插上仿真器的仿真口,仿真器的通信口与PC连接(图2-1)。

在PC上需要安装与该仿真器配套使用的专用调试系统软件,用户在该调试系统中,就可以通过PC机来控制仿真器中程序的运行,同时观察系统外围器件和设备的运行结果,分析、调试和排除系统中存在的问题。这种运行调试方法称为在线(板)仿真。

为了能实现MCU的仿真功能,仿真开发系统通常具有的一些基本功能为:

 可控性。可以根据调试的需要,控制目标程序的运行方式,如单步、连续、带断点

等多种运行方式。

 透明性。能对MCU的各个部分进行监控,如查看和设置内存单元、寄存器、I/O的

数据。

仿真开发系统都必须配备一套在PC机上运行的专用仿真开发软件系统,用以配合和实现仿真器的在线仿真调试工作。因此嵌入式系统的开发人员,除了要掌握单片机和嵌入式系统的应用和设计能力,还应熟练地掌握和使用仿真器和仿真系统软件。

实时在板仿真器(ICE)虽然具备实时的跟踪能力,但它最大的缺点是价格昂贵(如ATMEL公司的AVR在线仿真调试器ICE50的价格为2.5万人民币左右),同时与目标板的对接比较困难。尤其面对采用贴片技术,高速的MCU构成的系统时,就显得非常不方便。所以ICE在过去一般用在低速系统中。

随着软件和芯片技术的发展,实时在板仿真器和相应的调试方法正在逐渐被软件仿真器、实时在片仿真调试(On Chip Debug)方法和实时在片仿真器等其它的形式所替代了。

3. 实时在片仿真器

为了解决实时仿真的困难,新型的芯片在片内集成了硬件调试接口。最常见的就是符合IEEE1149.1标准的JTAG硬件调试接口。JTAG硬件调试接口的基本原理,是采用了一种原应用于对集成电路芯片内部进行检测的“边界扫描”技术实现的。使用该技术,当芯片在工作时,可以将集成电路内部的各个部分的状态以及数据,组成一个串行的移位寄存器链,并通过引脚送到芯片的外部。所以通过JTAG硬件调试接口,用户就能了解芯片在实际工作过程中,各个单元的实际情况和变化,进而实现跟踪和调试。JTAG硬件调试接口采用4线的串行方式传送数据,占用MCU的引脚比较少。

与实时在板仿真器系统一样,采用JTAG硬件调试接口进行仿真调试也是实时的在线调试。不同的是,采用这种方式的调试不需要将芯片取下,用户得到的运行数据就是芯片本身运行的真实数据,所以这种调试手段和方式称为实时在片调试(On Chip Debug),并正在替代传统的实时再板仿真调试(On Board Debug)技术。

实现实时在片调试的首要条件,是芯片本身要具备硬件调试接口。除此之外,同实时再板仿真调试一样,也需要一个专用的实时在片仿真器(采用JTAG硬件调试口的,称为JTAG ICE),不过同实时再板仿真器相比,它的价格就便宜了。例如一台应用于AVR的JTAG仿真器JTAGICE mkII,其原装价格仅在两千元左右,而国内推出的JTAG ICE仅数百元。

使用实时在片仿真器进行系统调试时,其系统的组成和连接方式与使用实时再板仿真器类似,见图2-1。JTAG仿真器一般也是使用串行口(COM口或USB接口)或并行口(打印机口)同PC机通信,不同之处在于,另一端的接口是直接与目标机系统上MCU芯片的JTAG引脚连接,不需要将芯片从系统上取下。

在PC上也需要安装与相应的JTAG仿真器配套使用的专用调试系统软件。在目标板上的MCU运行时,用户可以通过PC机来读取和跟踪MCU的运行数据和过程,并通过仿真器控制MCU的运行,同时观察系统外围器件和设备的运行结果,分析、调试和排除系统中存在的问题。由于这种运行调试方法过程中,直接获得的为真实的MCU的数据和状态,所以称为实时在片仿真调试技术。

2-6

AVR单片机技术

在AVR中,大部分Mage系列芯片都支持JTAG硬件调试口。而对于引脚数少的tiny芯片,则使用了一种新的单线硬件调试接口技术,“debug-ware”。顾名思义,它只使用了一根线,就能将芯片内部各个部件的工作状态和数据传送到外部,比JTAG使用了更少的接口引脚。

4. 编程烧入器

编程烧入器也称为程序烧入器或编程器,它的作用是将开发人员编写生成的嵌入式系统的二进制运行代码下载(写入)到单片机的程序存储器中。高档的编程器一般称作万用编程器,它不仅可以下载运行代码到多种类型和型号的单片机中,还可以对EPROM、PAL、GAL等多种器件进行编程。

目前,性能较好的仿真器也都具备了对其可仿真的MCU的编程功能,这样就可以不用专门购置编程器设备。当单片机芯片具备ISP功能时,程序的下载更加简单了,一般通过PC的串行口或并行口,使用简单的软件就可将编译生成的嵌入式系统的运行代码直接下载到MCU中。

现在一些新型的单片机内部集成了一种标准的串行接口JTAG,专门用于在线仿真调试和程序下载。使用JTAG,可以简化仿真器(无需使用专用的仿真MCU)和编程器的结构,甚至可以淘汰专用仿真器和编程器,而将PC直接同系统板连接(一般经过简单的隔离),利用系统板上的MCU直接实现在线的仿真调试,这为嵌入式系统的设计提供了更为有效和方便的开发手段和方法。当系统使用贴片封装或BGA封装的小体积芯片和器件时,它的优点尤为突出。

2.3.1 AVR单片机应用系统的软件开发平台

ATMEL公司为开发使用AVR单片机提供了一套免费的集成开发平台:AVR Studio(http://www.atmel.com)。该软件平台支持AVR汇编程序的编辑、编译、连接以及生成目标代码。同时该软件还内嵌AVR GCC高级语言接口,内含AVR软件模拟器,其仿真调试平台还可以配合ATMEL公司设计推出的多种类型的仿真器,如实时在板仿真器ICE40、ICE50,实时在片仿真器JTAG ICE、JTAGICE mkII等,以实现系统的在线的硬件仿真调试功能和目标代码的下载功能。

此外,一些第三方公司也推出了许多采用高级语言编程的开发平台,用于AVR单片机系统的开发。

采用高级程序语言C的开发平台有:

 ICCAVR(http://www.imagecraft.com/software)  CodeVision AVR(http://www.hpinfotech.ro)  IAR Systems(http://www.iar.com)  AVR GCC(http://www.avrfreaks.net) 采用高级程序语言BASIC的开发平台有:

 BASIC AVR(http://www.digimok.com)  FastAVR Basic(http://www.fastavr.com)  BASCOM-AVR(http://www.mcselec.com)。 其中AVR Studio和AVR GCC是完全免费的软件,而ICCAVR、CodeVision AVR、IAR System、BASCOM-AVR等均为商业软件,但它们都有提供给用户试用的DEMO版软件(在功能上、时间或代码量上有),可以从网上免费下载。在学习单片机嵌入式开发的起步阶段,完全可以使用这些DEMO版的开发平台。

采用高级程序设计语言开发单片机系统已成为当前的发展趋势。

2-7

第2章 AVR单片机开发工具

本书将简单介绍ATMEL公司提供的AVR Studio 4.12的使用,简单介绍以高级程序设计语言C为设计手段的CodeVision AVR(简称CVAVR)的使用,并以适合入门学习,易学易用、开发效率极高的BASIC语言设计平台BASCOM-AVR作为本书使用的开发软件。

由于AVR单片机具有ISP性能,其程序存储器可多次编程、在线下载的优点;加上采用高级程序设计语言来开发单片机系统具有语言简洁,使用方便灵活,表达能力强,可进行结构化程序设计等优点;再配合软件模拟仿真调试;使得我们可以不必购买价格在几千元的仿真器和编程器,就能够很好的学习和掌握AVR单片机嵌入式系统的设计和开发。 1. 汇编语言开发平台

ATMEL 公司提供免费的AVR汇编语言编译器。在AVR STUDIO中已经将AVR汇编语言编译器集成在一起,你可以在AVR STUDIO 中完成AVR汇编代码的编辑,编译和连接,生成可下载的运行代码。

由于AVR 的指令与C 语言有很强的对应性,再加上AVR 汇编语言编译器有强大的预编译能力,如宏,表达式计算能力等,所以使用AVR汇编语言写出的代码可读性也是很强的。如果你不想话很多的钱在您的编译工具上的话,AVR STUDIO是一个不错的选择。

另外在AVR STUDIO中还提供一个纯软件的软件模拟仿真环境,在此软件环境的支持下,单片机的系统程序可以在PC上进行模拟的运行(完全脱离硬件环境),以实现第一步的软件调试和排错功能。

2. 高级语言开发平台

由于AVR单片机自身的优势,吸引了大量的第三方厂商为AVR单片机编写开发出各种各样的AVR高级语言编译器和开发软件平台。很少有一个8位单片机能有这么众多的编译器以及开发平台可供选择。根据高级语言的种类,AVR有C、BASIC、PASCAL,ADA等多种语言的开发平台。如果您对其中的一种语言比较熟悉的话,那您就不必重新学习另一种语言,而直接选择您熟悉的进行开发。而且这些编译器的厂商在其网站上都提供了免费试用版本的下载,用户可以在试用了一段时间,在比较其之间的优缺点之后,选择购买。

下面就对其中的几种高级语言编译器和开发软件平台进行一个简略的介绍。 (1) IAR Systems的Embedded Workbench 编译器

IAR Systems是非常著名的嵌入式系统的编译工具的提供商。如果您访问其网站,您就会发现它几乎为所有的8位、16位、32位的单片机和微处理器提供C编译器,由此可见也其在业界的地位。正因为如此,当初ATMEL在开发和设计AVR时,决定咨询IAR Systems的编译器设计工程师,商讨如何设计AVR的结构,使其对使用高级语言时的编译效率更高。此后,IAR Systems与ATMEL一直保持着良好的而又紧密的合作关系,这使其设计出来的编译器的编译效率也是同类中最高的。但是价格较高。

IAR Systems的Embedded Workbench集成了一个集成环境包括编译器和图形化的调试工具,能够完成系统的设计,测试和文档工作。您可以在其中完全无缝的完成新建项目,编辑源文件,编译,链接和调试等工作。可以同时打开多个项目。很容易扩展集成诸如代码分析等外部工具。

其C编译器和汇编编译器支持几乎所有AVR芯片,具备以下特点:

 C编译器支持ISO/ANSI C的标准C和可选的Embedded C++编译器。  所有代码都可重入。

 有多种存储器模型和指针类型,以充分利用存储器。

 内建针对AVR优化的选项,多重的代码大小和执行速度的优化控制。  针对AVR的语言扩展以适应嵌入式编程。  新增的强大全局优化器。

2-8

AVR单片机技术

 可以直接在C/C++中写快速易用的中断处理函数。  高效的32位和位的IEEE兼容的浮点运算。  扩展的C和EC++的函数库,并对数学和浮点运算。 IAR Systems的网站地址为http://www.iar.com。 (2) IMAGE CRAFT的ICCAVR编译器

这是IMAGE CRAFT 提供一款低成本高性能的C语言编译器,其包括了C 编译器和IDE集成编译环境,简称ICCAVR。

其支持除AT90S1200外的所有AT90系列和ATmega系列,Tiny26和AT94KFPSLIC器件,自动生成对I/O寄存器操作的I/O指令。其编译器是对LCC通用C编译器的移植,完全支持标准的ANSI C,支持32位的长整数和32位的单精度浮点数运算,支持在线汇编,同时也能和单独的汇编模块进行接口。拥有包括printf,存储器分配,字符串和数学函数的ANSI C库函数的子集库函数和针对特定目标访问片上EEPROM和各种片上外设的库函数。可以生成用于AVR STUDIO源码级调试的目标文件。在其IDE中包含了对项目的管理,源文件的编辑,编译和链接源选的设置,还有内嵌的ISP编程界面。

但是由于其源自通用C编译器,其几乎完全不支持位寻址。 ImageCraft的网站地址为http://www.imagecraft.com,提供30天的试用版下载。国内广州双龙公司是ICCAVR的代理商。

(3) HP Info Tech的CodeVision AVR编译器

CodeVision AVR是HP Info Tech专门为AVR设计的一款低成本的C语言编译器,它产生的代码非常严密,效率很高。它不仅包括了AVR C 编译器,同时也是一个集成IDE的AVR开发平台,简称CVAVR。

CVAVR支持所有片内含有RAM的AVR芯片,具备以下特点:

 支持bit、char、short、int、long、float以及指针等多种数据类型,充分利用

存储器。

 内建针对AVR优化的多种选项。  支持内嵌汇编。

 扩展的一些标准的外部器件支持和接口函数,如:标准字符LCD显示器、I2C接口、

SPI接口、延时、BCD码与格雷码转换等。

 可以直接在C/C++中写快速易用的中断处理函数。  高效的32位和位的IEEE兼容的浮点运算。  扩展的C和EC++的函数库,并对数学和浮点运算。

HP Info Tech的网站地址为http://www.hpinfotech.ro,提供试用板(2K代码)的下载。清华大学出版社出版的《嵌入式C编程与Atmel AVR》一书中,对CVAVR的使用和程序设计给出了全面和详细的介绍。

(4) GNU GCC AVR

GNU GCC AVR 是著名的自由软件编译器的GNU GCC 的AVR 平台的移植。其包括两部分,编译和链接的命令行程序包和针对AVR Libc 函数库。如同其他GNU协议下的软件一样,所有这些都是以源程序的形式发布,用户可以根据其自身的计算机平台进行配置编译,生成适合用户自身计算机平台的可执行版本的GNU GCC AVR。对于WINDOWS用户,也有已经预先编译好的二进制版本可供下载。

GCCAVR的特点为:

 所有源代码都是向用户开放,完全免费。  GCCAVR本身支持ANSI C/C++/EMBEDDED C++。

 GCCAVR本身的编译效率和稳定性,编译后代码执行效率仅次于IAR Systems的

2-9

第2章 AVR单片机开发工具

Embedded Workbench。

 支持几乎所有的AVR器件。

 包括兼容ANSI C的部分标准函数库和针对AVR的各个外设的函数库。  缺乏专业的技术支持,缺乏图形的集成编辑环境(IDE),所有程序都是命令行执行

的。

用户可以在http://www.avrfreaks.net上获得最新的GNU GCC AVR软件包。 (5)几种C语言开发平台的对比

表4.1给出上述4种C语言开发平台的性能价格对比。

表2.1 AVR四种C语言开发平台的比较

代码效率 价格 易用性 与AVR Studio集成度 技术支持 IAR +++ $$ ++ ++ + ImageCraft CodeVision ++ $ +++ +++ +++ ++ $ +++ +++ +++ GNU GCC ++ Free + ++ -

(6) BASCOM-AVR

BASCOM-AVR是荷兰MCS Electronics公司设计的一款针对AVR系列单片机的BASIC编译器,其软件包由BACIS编译器和IDE集成编辑环境组成。IDE集成编辑环境支持对源代码的高亮显示,提供上下文提示,以提高编码效率。IDE集成编辑环境还包含了一系列工具,图形化的模拟仿真环境,无需连结硬件,你就可以通过它对LCD,LED,UART,和PIO端口进行仿真。此外,你还可以在IDE集成环境中对目标板进行ISP编程。其主要特点有:

 采用可带语句标示符的结构型BASIC高级程序设计语言编程,程序语句和

Microsoft VB/QB高度兼容。

 结构化的IF-THEN-ELSE-ENDIF、DO-LOOP、WHILE-WEND、SELECT-CASE程序设计。  变量名和语句标示符长达32个字符。  支持位(Bit)、字节(Byte)、整型(Integer)、字(Word)、长型(Long),字符串(String)

多种类型的变量。  支持内嵌汇编。

 编译产生的运行代码可在所有带内部存储器的AVR微控制器微中运行。

2

 为标准字符LCD显示器,图形LCD显示器,IC 芯片,单总线协议芯片,SPI通讯,

矩阵键盘,标准AT键盘甚至TCP/IP硬件协议栈芯片等扩充了大量的专用语句。  内置模拟终端和程序下载功能。

 自带内置的图形软件仿真平台,并同时支持和采用AVR STUDIO作为其软件模拟仿

真器。

 完善的连机帮助功能和大量的例程。

BSACOM-AVR是采用结构型BASIC作为程序设计语言,简单易学,尤其适合入门学习,在开发AVR单片机应用系统时效率很高,其它语言需要几天开发的软件采用BASCOM-AVR可能只要几小时就能完成,BASCOM-AVR还对AVR单片机内含的外围设备和单片机常用外围扩充器件如字符型液晶显示器、图形液晶显示器、各种串行总线接口器件、标准键盘甚至一些TCP/IP硬件协议栈器件提供支持,大大方便了使用。

BASCOM-AVR对PC机要求不高,奔腾以上的PC机都能运行这个软件,BASCOM-AVR可以通过多种硬件设备把程序下载到单片机里,最简单的是通过打印机口用

2-10

AVR单片机技术

一条简单的下载电缆(下载线)与单片机ISP接口连接就可以下载程序,这条电缆只有6条连线和数个电阻器组成,考究一点增加一片74HC244做缓冲隔离,AVR单片机内部的可编程Flash(程序存储器)编程次数达万次,有这些硬件条件做基础,单片机的程序开发就非常方便了,目前通常做法是:1,用下载线连接PC机和单片机应用电路板;2,在IDE中用BASIC语言编写应用程序;3,按下编译快捷键形成目标程序,若编译不能通过则IDE给出提示并指出错误所在;4,按下载快捷键程序就下载到了单片机里并运行。如此重复直至满意为止,由于编译和下载只需要数秒至数十秒,次数又不受,因此可以让程序在实际电路中运行来调试程序,例如,用实际的硬件资源逐块调试各个子程序、过程和自定义函数、通过硬件资源观察程序运行中变量的变化来发现问题和修改程序等。这些手段不仅给开发带来极大方便,也使学习单片机技术的过程大大简化。

2.3.2 AVR实验开发板

2.3.2.1 STK500系列开发板

STK500系列开发板是ATMEL公司推出的一套基于90系列和mega系列的AVR开发评估板和相应的适配板,以使用户能快速入门和了解使用AVR芯片。用户在产品设计过程也可以在这些开发板上完成初步的验证,而免去了自己制板的成本与风险。STK500系列评估板包括STK500主板和STK501、STK502、STK503、STK504、STK505、STK520等子板。

STK500是ATMEL推出的主要针对40脚及40脚以下的DIP封装的90系列和mega系列单片机的评估开发板。其具有高压并行和ISP编程功能以及JTAG仿真接口,同时还配备了一些LED和按键,它们可以通过扁平线和单片机的端口连接,用于观察端口的电平变化或者手动触发端口电平的变化,这在没有仿真的情况下是非常有用的。在板上除了一个用于和下载程序的RS232接口外,还有一个RS232接口,通过跳线可以和单片机的UART连接,完成与PC机进行通信的任务。另外,板上还有一个振荡电路,您可以根据自己的需求选择不同的时钟源驱动您的单片机。图2-2所示为STK500开发板。

2-11

第2章 AVR单片机开发工具

图2-2 STK500开发板

由于许多AVR芯片采用TQFP的贴片封装,不能直接在STK500上使用,所以STK500还配有多种不同形式的顶置模块子板,以适合各种封装形式的AVR使用。图2-3为顶置模块子板STK501,专门应用于TQFP脚的AVR(ATmega103/ATmega/ATmega128)使用。

图2-3 STK501子板

STK501作为STK500的子板,配有安装ATmega103/ATmega128的ZIF插座和PCB封装。它需要安装在STK500上才能完成对ATmega128开发功能(如图2-4)。此外,由于ATmega128有两个USART口,所以在STK501上还扩展了一个额外的RS232口,以及32kHz的RTC振荡器。

图2-4 使用STK500 + STK501开发ATmega128

2-12

AVR单片机技术

STK500配备的顶置模块子板有STK501、STK502、STK503、STK504、STK505、STK520等。它们都必须与STK500配合,以适合各种封装形式和不同型号的AVR使用。用户在AVR Studio软件环境的的在线帮助中,可以了解到它们的具体特点和使用方法。

2.3.2.2 HHXX2.0单片机实验板

HHXX2.0AVR单片机实验板是根据教学需要自行开发的低成本AVR单片机实验板,用计算机USB接口供电,方便学生在课外进行实验,全部教学例题和单片机实验课的实验项目均可在实验板上完成,针对应用物理专业学科特点,还设有温度、霍尔等传感器电路,全部电

2

路在80*150CM的双面PCB板上,结构简单方便自制,套件成本约数十元。

HXX-2.0单片机实验板电原理图:

2-13

第2章 AVR单片机开发工具

PCB印刷电路板布局:

2-14

AVR单片机技术

实物照片:

HHXX2.0实验板各功能的端口分配一览表: 功能 6位LED共阴数码管 1623A液晶显示器 段:a~g,p 位:Q1~Q6 DB4~DB9 RS EN 端口名称 PC0~PC6,PC7 PA2~PA7 PA4~PA7 PA3 PA2 PD7 PD6 PD5 PD4 PD1 PD0 功能 4位LED发光管 讯响器 扫描方式4按键输入 中断方式2按键输入 开关霍尔44E(T1,INT2) 线性霍尔3503(AD1) 0~5V模拟电压(AD0) 18B20温度传感器 端口名称 PD4~PD7 PB3 PB4~PB7 PD2,PD3 PB1,PB2 PA1 PA0 PB0 步进电机 A A B B TXD RXD RS232通讯 说明: 2-15

第2章 AVR单片机开发工具

 LCD和LED共享PA2~PA7口驱动,4路LED发光二极管和步进电机驱动共享PD4~PD7口,未外接步进电机时可用发光管模拟步进电机时序。  实验板左下角电位器AD用于调整AD0的0~5V模拟电压,右上方拨动开关KGN用于选择LED数码管Q1的共阴端连接方式,置于1,表示直接接地,作为单个数码管讲解数码管工作原理;置于6,表示与其它5个数码管组成6位动态扫描显示系统;  拨动开关KO作为外接步进电机和讯响器电源开关;拨动开关KB1作为外接饲服电机电源开关;

PCB板功能介绍:

参见HHXX-2.0单片机实验板电原理图和布局图。原理图分成若干区域,分别为不同功能的电路单元,左上方是该区域名称,每个区域内均用汉字做简要的功能说明。PCB板上每个区域也用丝网漏印的黄(白)线区分开,并用相同名称标记,且PCB板上该区域实际位置与原理图大致对应,每个部分的原理图和对应的PCB板元件相符,方便对照学习。

基本工作区有POWER电源区、RST复位区和CPU单片机区域,除此之外的区域若不进行有关实验可以去掉。实验板各区域功能介绍如下:

1) 用户布线区:位于左上方,用于给学生自行搭制电路。 2) HALL区:进行传感器实验,备有开关霍尔集成电路3144E,线性霍尔集成电路3503,

单总线数字温度传感器18B20,用于测量转速、周期、速度、磁场,位移、温度等物理量,其中:3144E输出的代表转速或线速度的数字信号同时送到至单片机T1计数端和INT2中断端,方便用计数方式或中断方式测量;3503输出的代表磁场或位移的模拟信号送到单片机PA1(AD1)端;18B20输出的单总线数字温度信号送到单片机的PB0端口,通过软件把PB0模拟成单总线输入端以接受18B20的信号。 3) RST 复位区:用于提供单片机上电复位信号,并提供RESET按键,按下按键即可

复位单片机,使单片机从头开始执行程序。 4) AD区:进行AD转换实验,提供可调的0-5V模拟电压信号到单片机PA0(AD0)端,

供AD转换用。

5) POWER区:系统电源。通过USB连线从PC机USB口取5V电源作为整机工作的

电源。

6) ISP区:通过ISP下载线从PC机的开发环境平台或下载软件下载应用程序到单片

机内部的FLASHROM,供单片机运行,例如在BASICOM开发环境平台上通过BASIC语言编写的实验程序就是通过该区下载到单片机里运行。 7) CPU区:Mega16单片机及其外围电路。

8) LCD&LED区:该区提供6位LED数码管作为单片机输出显示,数码管段选用单

片机的PC口驱动,位选用PA2~PA7驱动,此外,PA2~PA7还提供外接1623A液晶显示器驱动,其中PA2驱动1623A的RS端, PA3驱动1623A的EN端,PA4~PA6驱动1623A的DB4~DB6数据端。1623A为点阵字符型通用液晶显示器,两行,每行16字符,每字符5X8点阵,1623A通过16孔插座1602外接。由于LCD和LED同时由PA口驱动,因此当其中之一正常工作时另一个可能出现乱码,此为正常现象,不影响使用。

9) KBD区:1)提供按键输入:可提供4个按查询方式工作的按键输入和两个按中断

方式工作的按键输入,查询方式的按键接至单片机PB4~PB7,中断方式的按键接至INT0和INT1,板上均有标示符号注明。2)提供饲服电机5V电源和相应电源开关,可以外接饲服电机或CPU风扇电机。

10) OUT区:提供4路LED发光二极管输出、4相步进电机驱动输出、声响器功率放

大输出三种输出功能,其中步进电机和声响器采用驱动放大器MC1413或ULN2003

2-16

AVR单片机技术

(可互相代用,管脚兼容)进行驱动放大,用拨动开关KO可开关步进电机和声响器电源。4路LED发光二极管和步进电机驱动信号同时由单片机的(PD4~PD7)提供,因此当其中之一正常工作时另一个可能出现误动作,此为正常现象,不影响使用。声响器由单片机PB3端口提供信号。

11) RS232区:用于进行RS232串行通讯原理和应用实验-单片机与pc机通讯实验。

利用片内RS232通讯接口,与上位机(PC机)通讯,把单片机内的数据(如模拟电压采集数据、步进电机转速、温度值、转速值等)送到上位机显示或处理。 2.3.2.3 HHXX-20实验板主要的实验项目一览

HHXX-2实验板可进行的单片机实验项目如下:(包括本讲义例题和课堂练习)

1, 单片机入门演示和编程平台介绍-秒节拍显示器实验:PD4口输出控制一个发光二极管

亮暗。汇编语言,C语言,BASIC语言编程。

2, 4路LED发光二极管控制实验:PD4-PD7口驱动LED发光管程序设定发光。

3, 通用IO接口基本结构与输出应用和LED数码管工作原理-单个LED数码管控制实验:

PC口接LED数码管输出0~F16个数字。

4, 通用IO接口基本结构与输出应用和LED扫描显示原理-6位LED数码管动态扫描控制

显示设计:PC口段驱动,PA2~PA7口位驱动,实现6位数字扫描显示。

5, 中断系统与基本应用-按键控制的一位LED数码管显示实验:PC口段驱动,按键输入:

INT0。

6, 两种按键输入实验:扫描方式4按键输入实验(PB4~PB7),中断方式按键输入

(INT0,INT1)。

7, ADC转换器应用-简易数字电压表实验:PA0(AD0)输入0-5V模拟电压信号,6位LED

数码管显示模拟电压值。

8, 定时计数器的结构与应用-石英倒计时定时器实验:两按键分别以上行、下行方式调整

倒计时时间的初始值。6位LED数码管显示分、秒、毫秒值(99分59秒99毫秒),计时完毕声响报警。 9, 电子音乐合成实验:由PB3输出程序合成的音频频率信号,经放大后驱动发声单元产生

音乐信号,BASIC语言编程。 10, 选做(1623A液晶显示器另购):1623A LCD液晶显示器应用-LCD液晶显示器的应

用实验:PA口,PA2-RS,PA3-EN,PA4~PA7-DB4~DB7,BASIC语言编程。 11, 步进电机控制实验:步进电机正转、逆转、加速、减速,6位LED数码管显示转速

值。 12, 霍尔传感器原理及应用-简易转速表实验:3144E开关霍尔集成电路以T1(计数

方式)或INT2(中断方式)测量风机转速,6位LED数码管显示转速值。 13, 霍尔传感器原理及应用-简易高斯计实验:CS3503线性霍尔集成电路测量磁场,

由PA1(AD1)输入到单片机,6位LED数码管显示磁场大小。 14, 18B20单总线数字温度传感器原理及应用实验:利用18B20和单总线协议实现温

度测量,18B20接至PB0口,6位LED数码管显示温度值,两按键分别以上行、下行方式输入温度上下限,温度超限声响报警。 15, RS232串行通讯原理和应用-单片机与pc机通讯实验:利用片内RS232通讯接口,

与上位机(PC机)通讯,把单片机内的数据(如模拟电压采集数据、步进电机转速、温度值、转速值等)送到上位机显示或处理,BASIC语言编程,上位机采用VB编程。

2-17

第2章 AVR单片机开发工具

2.3.3 自制ISP下载线

在本节中,我们将介绍一个与STK200/300兼容的ISP下载线。该下载线支持所有使用ISP技术的AVR芯片,同时也支持ATMEL公司51系列兼容芯片ATS51、ATS52、ATS53、S8252,可以在CVAVR和BASOCM-AVR平台上用于程序下载时。图2-5为AVR ISP下载电缆电原理图。

图2-5 AVR ISP下载电缆原理图

ISP编程的原理是使用PC机的并行口来驱动ISP编程所需的信号波形,实现对AVR的程序下载和熔丝位的配置编程。出于安全的考虑,为了防止使用中误操作而损坏PC机的并行口,图中使用高速器件74HC244作为缓冲,以保护计算机的并行口。74HC244由目标板供电,VTG经过D1(极性保护)和D2(5.1 V限压保护)使74HC244工作在+3~+5V。R1为MISO信号线的上拉电阻。

制作AVR ISP的成本非常低,采用贴片封装器件时整个电路板可以按装在一个普通DB25的接口盒中(图2-6)。配备这样一根下载电缆,一台配备了相应开发软件的PC机,再加上开发目标系统板,一套基本的AVR软硬件开发环境就建立起来了。接下来需要的,就是发挥你的聪明才智和锻炼你的实际动手能力了。

2-18

AVR单片机技术

图2-6 AVR ISP下载电缆实物图

要使用AVR ISP编程电缆下载程序还需要相应的编程软件支持。本节介绍的AVR ISP下载电缆与STK200/300完全兼容,在ICCAVR、CVAVR、BASCOM-AVR等开发平台的程序下载单元中,都直接支持使用STK200/300选项下载编程(可惜,ATMEL的AVR STUDIO不支持使用STK200/300下载电缆)。此外,也可以在网上下载一些专用的免费编程软件使用。

2.3.4 在ICCAVR、CVAVR、BASCOM-AVR中的使用

在ICCAVR、CVAVR、BASCOM-AVR等AVR高级语言开发平台中,都有内置的程序编程下载功能模块,支持使用多种不同形式的ISP下载电缆(编程器)实现对AVR的编程操作。STK200/300是他们支持的下载电缆之一。在下载程序前,你只要在相应的Programmer的选项栏中选定使用STK200/300,就可在程序正确编译后直接将运行代码下载到AVR芯片中了,非常方便。

ICCAVR、CVACR的编程速度比BASCOM-AVR慢一些,而且在BASCOM-AVR中对AVR芯片熔丝位的编程配置界面更加体现了以人为本的原则,它提供简洁的说明选择,而其它编程软件对AVR芯片熔丝位的编程配置界面使用不方便,需要用户仔细查阅手册后作出选择。因此,建议用户对AVR芯片熔丝位进行编程配置时,使用BASCOM-AVR进行选择和操作。

2.4 BASCOM-AVR与下载有关的设置:

电脑通过LPT打印口和ISP下载线与单片机实验板相连,PC机和笔记本电脑均可,若操作系统和BASCOM-AVR有关连接的设置不正确不能下载程序,正确连接如下:

打印口设置为ECP模式,一般是默认模式,可在计算机BOIS里设置或专用软件设置:

记下打印口地址,如图地址为3BC :

2-19

第2章 AVR单片机开发工具

编程环境中指定编程器型号如下图:

LPT-address地址修改与打印口地址一致:

2-20

AVR单片机技术

设置完毕。点击OK退出即可。

2.5 HHXX2.0实验板初次使用熔丝配置:

2.5.1 首次使用

首次使用HHXX2.0实验板时,要根据时钟源和JTAG接口对ATmega16单片机的熔丝做两处修改:下面介绍使用BASCOM-AVR修改熔丝的方法。

1是时钟源修改,默认是单片机内部RC振荡器1MHz,修改为外部晶振≥4MHz模式:

2-21

第2章 AVR单片机开发工具

2是屏蔽JTAG功能:

修改好的界面:

2-22

AVR单片机技术

点击Refresh按键退出。

2.5.2 AVR开发环境的建立

一个AVR单片机的基本学习和开发环境由以下几部分组成: 1. PC机一台,运行Windows操作系统

个人电脑PC是AVR嵌入式系统设计开发的主要工具之一。一般的讲,奔腾以上,运行Windows98/Windows2000/Windows XP操作系统的个人电脑或手提电脑就可以了。 2. AVR软件开发平台

一般需要选择一个或两个AVR软件开发平台。如采用汇编语言来开发AVR的系统程序,则首选ATMEL公司免费提供的AVR Studio。喜欢和习惯采用高级语言开发系统程序,可以选取C或BASIC的开发平台。

3. AVR实验开发板(Developing Kit)

AVR实验开发板是系统实现的硬件环境。在开发板上,除了具有可供使用的AVR芯片,还提供电源,基本的外围器件(LED发光管、LED数码管、LCD显示器、按键„„),通信接口器件,通信连接线,用于执行代码程序下载的连接线等等。它方便用户实际动手学习、调试和检验自己的设计。因此,一块开发板对于学习是不可缺少的。本课程使用上面介绍的HHXX2.0单片机实验板作为AVR实验开发板。 4. 其它辅助工具、设备和软件 在AVR嵌入式系统的开发过程中,一些必要的辅助工具和设备有:万用表,示波器,信号源,频率计等。工具软件有:串口调试软件,执行代码程序的下载编程软件等。

以上我们没有提到AVR的在线实时仿真器。由于AVR单片机具备ISP功能,以及大多数的

2-23

第2章 AVR单片机开发工具

AVR软件开发平台都与AVR Studio配合,使用AVR Studio中的软件模拟仿真功能,因此对于学习以及开发一些普通的系统,基本可以不必购买价格比较昂贵的AVR在线仿真器。当然,在开发一个比较复杂的系统时,手头配备一台AVR在线仿真器也是有必要的。

在本书中,我们推荐和使用以下的软硬件环境作为开始学习和使用AVR单片机的手段和工具,开发环境有以下部分构成:

PC机一台,运行Windows 2K或Windows XP操作系统;

AVR Studio 4.12(http://www.atmel.com,Free)。汇编开发,软件模拟调试。 AVR高级C语言开发平台CVAVR(DEMO版)(http://www.hpinfotech.ro,Free )。 BASCOM-AVR(DEMO版)(http://www.mcselec.com,Free)。

串口调试精灵。用于PC机与单片机之间的RS-232通信,软件调试等。 HHXX2.0单片机实验板一套。

以上软件都是免费软件,用户可以网上下载,或从附带的光盘中获取。软件的安装都比较简单,用户可以根据安装提示进行安装。

2.6 思考与练习

1.学习单片机嵌入式系统的原理与应用开发,应具备和掌握哪些方面的基础知识和技能,为什么?

2.为什么仅通过书本和课堂是不能学好和掌握单片机嵌入式系统的原理与应用开发的? 3.简单讲述单片机嵌入式系统的开发过程和步骤,并说明在开发过程中要使用的主要硬件和软件工具是什么。

4.程序烧入器的作用是什么?

5.一个好的单片机软件开发平台应具备那些必要的功能?

6.使用汇编语言和高级程序设计语言编写系统程序各有何优点和不足?

7.通过网络、杂志与广告了解国内外主要的单片机生产商,它们的单片机产品型号,以及相应的开发系统和工具的名称和价格。

8.本书推荐的学习AVR嵌入式系统开发的实验开发环境包含哪些硬件与软件?有何特点? 9.建立一个学习AVR嵌入式系统开发的实验开发环境,熟悉HHXX20单片机实验版的硬件电路图与实际的连接,下载和安装软件开发系统和工具软件。

10. 仔细阅读各个软件的使用说明,熟悉软件的使用环境和主要功能。

11. 在本书附带的光盘中有AVR Studio、CVAVR等软件使用参考的中文翻译电子文档,可以

作为辅助参考资料。但最好阅读英文原文,可以得到更详细和准确的帮助。

本章参考文献: 1.《AVR Studio在线帮助》(中文,CDROM),ATMEL,www.atmel.com 2.《CVAVR应用入门》(英文,CDROM) 3.《CVAVR使用手册》(英文,CDROM) 4.《BASCOM-AVR使用手册》(英文,CDROM) 5.《BASCOM-AVR在线帮助》(英文,CDROM)

2-24

AVR单片机技术

2-25

因篇幅问题不能全部显示,请点此查看更多更全内容