AVR单片机入门详细介绍2749.pptx
恭喜你:选择了正确的恭喜你:选择了正确的AVR学习资料学习资料AVR单片机系统设计与开发工具单片机系统设计与开发工具 本章将在介绍单片机嵌入式系统设计开发基础知识之后,本章将在介绍单片机嵌入式系统设计开发基础知识之后,重点介绍和讲述本书推荐和使用的一套采用重点介绍和讲述本书推荐和使用的一套采用ATMEL公司的公司的AVR Studio配合配合C高级语言的软件开发平台高级语言的软件开发平台-CodeVisionAVR(简称(简称CVAVR)所构成的开发软件环境,以)所构成的开发软件环境,以及一套简易、开放的,集下载编程、实验和开发一体的多功及一套简易、开放的,集下载编程、实验和开发一体的多功能能AVR-51实验板。实验板。单片机嵌入式系统开发过程单片机嵌入式系统开发过程 1.确定系统设计的任务确定系统设计的任务 要充分了解对系统的技术要求、使用的环境状况以及使用要充分了解对系统的技术要求、使用的环境状况以及使用人员的技术水平。明确任务,确定系统的技术指标,包括系统人员的技术水平。明确任务,确定系统的技术指标,包括系统必须具有那些功能等。这是系统设计的出发点,它将贯串于整必须具有那些功能等。这是系统设计的出发点,它将贯串于整个系统设计的全过程,也是产品设计开发工作成败、好坏的关个系统设计的全过程,也是产品设计开发工作成败、好坏的关键,因此必须认真做好这项工作。键,因此必须认真做好这项工作。2.系统方案设计系统方案设计单片机芯片的选择。单片机芯片的选择。外围电路芯片和器件的选择。外围电路芯片和器件的选择。综合考虑软、硬件的分工与配合。综合考虑软、硬件的分工与配合。3.硬件系统设计硬件系统设计4.系统软件设计编写系统软件设计编写5.系统调试系统调试 通常在编制程序前应对系统要实现的功能、硬件系统的通常在编制程序前应对系统要实现的功能、硬件系统的结构和电路、系统中使用的单片机和外围器件进行全面仔细和结构和电路、系统中使用的单片机和外围器件进行全面仔细和深入的了解,对系统软件的结构进行全面和完整的设计,编制深入的了解,对系统软件的结构进行全面和完整的设计,编制程序流程图。系统程序的设计应实现结构化、模块化、子程序程序流程图。系统程序的设计应实现结构化、模块化、子程序化,这不仅便于调试,还便于修改。化,这不仅便于调试,还便于修改。要特别注意的是,设计编写嵌入式系统的软件同编写其要特别注意的是,设计编写嵌入式系统的软件同编写其它类型的软件程序有较大的区别。由于嵌入式系统是直接面对它类型的软件程序有较大的区别。由于嵌入式系统是直接面对硬件、控制对象的,因此,设计编写嵌入式系统的程序需要考硬件、控制对象的,因此,设计编写嵌入式系统的程序需要考虑更多的硬件细节,要掌握和使用很多软件技巧,要多学习、虑更多的硬件细节,要掌握和使用很多软件技巧,要多学习、多实践。如,嵌入式系统程序的设计要仔细地考虑和划分程序多实践。如,嵌入式系统程序的设计要仔细地考虑和划分程序存储器、数据存储器;合理定义、安排和使用各种变量;尽量存储器、数据存储器;合理定义、安排和使用各种变量;尽量使用字节变量和位标志变量,优化程序,节省内存容量;估算使用字节变量和位标志变量,优化程序,节省内存容量;估算子程序调用和嵌套的最大级数,预留出足够的堆栈的空间等等。子程序调用和嵌套的最大级数,预留出足够的堆栈的空间等等。单片嵌入式系统的开发工具与环境单片嵌入式系统的开发工具与环境 一、单片嵌入式系统的程序设计语言一、单片嵌入式系统的程序设计语言单片机嵌入式系统所用的程序设计语言可分为三类:单片机嵌入式系统所用的程序设计语言可分为三类:机器语言、汇编语言和高级语言机器语言、汇编语言和高级语言。1.机器语言机器语言机器语言是完全面向芯片的语言,由二进制码机器语言是完全面向芯片的语言,由二进制码“0”和和“1”组成。组成。二进制代码文件(二进制代码文件(.bin或或.hex).汇编语言汇编语言 汇编语言是一种符号化的语言,它使用一些方便记忆特定的汇编语言是一种符号化的语言,它使用一些方便记忆特定的助记符(特定的英文字符)来代替机器指令。助记符(特定的英文字符)来代替机器指令。采用汇编语言开发系统程序的优点:采用汇编语言开发系统程序的优点:能够全面和深入的理解能够全面和深入的理解单片机硬件的功能,充分发挥单片机的硬件特性。汇编语言编写单片机硬件的功能,充分发挥单片机的硬件特性。汇编语言编写的程序可读性、可移植性和结构性都较差。采用汇编语言编开发的程序可读性、可移植性和结构性都较差。采用汇编语言编开发单片机应用系统程序比较麻烦,调试和排错也比较困难,产品开单片机应用系统程序比较麻烦,调试和排错也比较困难,产品开发周期长,同时要求软件设计人员要具备相当高的能力和经验。发周期长,同时要求软件设计人员要具备相当高的能力和经验。.高级语言高级语言高级语言是一种高级语言是一种“基本基本”不依赖硬件的程序设计语言。不依赖硬件的程序设计语言。由于高级语言具有面向问题或过程,其形式类似自然语言和由于高级语言具有面向问题或过程,其形式类似自然语言和数学公式,结构性、可读性、可移植好的特点,所以为了提高数学公式,结构性、可读性、可移植好的特点,所以为了提高编写系统应用程序的效率,改善程序的可读性和可移植性,缩编写系统应用程序的效率,改善程序的可读性和可移植性,缩短产品的开发周期,采用高级语言来开发单片机系统已成为当短产品的开发周期,采用高级语言来开发单片机系统已成为当前的发展趋势。前的发展趋势。在设计开发单片嵌入式系统的系统软件过程中,总是要同硬件在设计开发单片嵌入式系统的系统软件过程中,总是要同硬件打交道,而且关联是比较密切的,其软件设计有着自己独特技打交道,而且关联是比较密切的,其软件设计有着自己独特技巧和方法。因此,那些纯软件出身的软件工程师,如果没有硬巧和方法。因此,那些纯软件出身的软件工程师,如果没有硬件的基础,没有经过一定的学习和实践,可能还写不好,甚至件的基础,没有经过一定的学习和实践,可能还写不好,甚至写不了单片嵌入式系统的系统软件。写不了单片嵌入式系统的系统软件。作为一个有经验的单片嵌入式系统开发人员,应能同时掌作为一个有经验的单片嵌入式系统开发人员,应能同时掌握和使用汇编语言和高级语言设计系统程序。握和使用汇编语言和高级语言设计系统程序。概括起来说,基于高级语言开发单片机系统具有语言简洁,概括起来说,基于高级语言开发单片机系统具有语言简洁,使用方便灵活,可移植性好,表达能力强,可进行结构化程序设使用方便灵活,可移植性好,表达能力强,可进行结构化程序设计等优点。对于开发大型和复杂的嵌入式系统来讲,采用高级程计等优点。对于开发大型和复杂的嵌入式系统来讲,采用高级程序设计语言进行系统开发的效率比使用汇编语言高几倍甚至几十序设计语言进行系统开发的效率比使用汇编语言高几倍甚至几十倍。但对于小型、简易的系统,或倍。但对于小型、简易的系统,或有定时精确,高测量精度要求有定时精确,高测量精度要求的系统的系统,使用汇编语言则具有优势。在许多情况下,使用汇编语言则具有优势。在许多情况下,采用高级语采用高级语言嵌入汇编程序的软件设计技术往往是最有效的方法。言嵌入汇编程序的软件设计技术往往是最有效的方法。如果你对单片机的内部结构和汇编语言根本不了解,请先如果你对单片机的内部结构和汇编语言根本不了解,请先不要用不要用C语言编程。语言编程。如果你对单片机的内部结构和汇编语言根本不了解,也写如果你对单片机的内部结构和汇编语言根本不了解,也写不出好的单片机的不出好的单片机的C程序。程序。二二.单片嵌入式系统的开发软件平台单片嵌入式系统的开发软件平台好的单片嵌入式系统的开发软件通常具备以下几个重要的功能:好的单片嵌入式系统的开发软件通常具备以下几个重要的功能:单片机系统程序编写和运行代码的生成。(编辑、编译功能)单片机系统程序编写和运行代码的生成。(编辑、编译功能)嵌入式系统开发平台支持用户采用专用汇编程序设计语言嵌入式系统开发平台支持用户采用专用汇编程序设计语言或高级程序设计语言(或高级程序设计语言(C、Basic等)编写嵌入式系统控制程等)编写嵌入式系统控制程序的源代码,并将源代码编译连接生成可在单片机中执行的序的源代码,并将源代码编译连接生成可在单片机中执行的二进制代码(二进制代码(Hex、Bin)。)。软件模拟仿真软件模拟仿真 提供一个纯软件的仿真环境,在此环境的支持下提供一个纯软件的仿真环境,在此环境的支持下,单片机的系统程单片机的系统程序可以进行模拟的运行序可以进行模拟的运行,以实现第一步的软件调试和排错功能。以实现第一步的软件调试和排错功能。在线仿真功能在线仿真功能 与专用的仿真器配合与专用的仿真器配合,提供一个硬件在线的实时仿真调试环境。提供一个硬件在线的实时仿真调试环境。用户将编写好的目标系统运行代码下载到仿真器中,通过开发系用户将编写好的目标系统运行代码下载到仿真器中,通过开发系统软件控制仿真器中程序的运行统软件控制仿真器中程序的运行,同时观察硬件系统的运行结果同时观察硬件系统的运行结果,分析、调试和排除系统中存在的问题。分析、调试和排除系统中存在的问题。程序下载烧入功能程序下载烧入功能 与专用的编程器配合或使用与专用的编程器配合或使用ISP技术,将二进制运行代码技术,将二进制运行代码写入到单片机的程序存储器中写入到单片机的程序存储器中 要熟练掌握和应用单片机来设计开发嵌入式系统,除了对要熟练掌握和应用单片机来设计开发嵌入式系统,除了对所使用的单片机要有全面和深入的了解外,配备和使用一套好所使用的单片机要有全面和深入的了解外,配备和使用一套好的开发环境和开发平台也是必不可缺的。在嵌入式系统的设计的开发环境和开发平台也是必不可缺的。在嵌入式系统的设计开发中,选用了好的开发工具和开发平台,往往能加速嵌入式开发中,选用了好的开发工具和开发平台,往往能加速嵌入式应用系统的研制开发、调试、生产和维修,起到事半功倍的效应用系统的研制开发、调试、生产和维修,起到事半功倍的效果。果。单片嵌入式系统的硬件开发工具单片嵌入式系统的硬件开发工具 单片机来设计开发嵌入式系统的过程中,应配备两种硬件设备:单片机来设计开发嵌入式系统的过程中,应配备两种硬件设备:仿真器仿真器是用于对所设计嵌入式系统的硬软件进行调试的工具。是用于对所设计嵌入式系统的硬软件进行调试的工具。编程烧入器编程烧入器的作用则是将系统执行代码写入到目标系统中。的作用则是将系统执行代码写入到目标系统中。调试(调试(Debug)是系统开发过程中必不可少的环节)是系统开发过程中必不可少的环节。在嵌入式系统开发过程中,经常采用的调试方法有三种方式:在嵌入式系统开发过程中,经常采用的调试方法有三种方式:软件模拟仿真调试(软件模拟仿真调试(Simulator)实时在板仿真调试(实时在板仿真调试(On Board Debug)实时在片仿真调试(实时在片仿真调试(On Chip Debug)1.软件仿真器软件仿真器软件仿真器也称为指令集模拟器(软件仿真器也称为指令集模拟器(ISS),其原理是用软件来),其原理是用软件来模拟模拟CPU处理器硬件的执行过程,包括指令系统、中断、定时计处理器硬件的执行过程,包括指令系统、中断、定时计数器、外部接口等等数器、外部接口等等。用户开发的嵌入式系统软件,就像已经下装到目标系统硬件用户开发的嵌入式系统软件,就像已经下装到目标系统硬件一样,载入到软件模拟器中运行,这样用户可以方便对程序运行一样,载入到软件模拟器中运行,这样用户可以方便对程序运行进行控制,对运行过程进行监视,进而达到实现调试的目的。进行控制,对运行过程进行监视,进而达到实现调试的目的。是是一种非实时性的仿真调试手段。一种非实时性的仿真调试手段。软件仿真器的优点:软件仿真器的优点:是它可使嵌入式系统的软件和硬件开发是它可使嵌入式系统的软件和硬件开发并行开展。只要硬件设计工作完成后,不管硬件实体如何,就可并行开展。只要硬件设计工作完成后,不管硬件实体如何,就可以进行软件程序的编写和调试了。应用程序在结构上、逻辑上的以进行软件程序的编写和调试了。应用程序在结构上、逻辑上的错误能够利用软件仿真器很快的发现和定位。有些与硬件相关的错误能够利用软件仿真器很快的发现和定位。有些与硬件相关的故障和错误也能在软件仿真器中被发现。使用软件仿真器不仅可故障和错误也能在软件仿真器中被发现。使用软件仿真器不仅可以缩短产品开发周期,而且非常经济,不需要购买昂贵的实时仿以缩短产品开发周期,而且非常经济,不需要购买昂贵的实时仿真设备。真设备。使用软件仿真器的缺点使用软件仿真器的缺点:其模拟的运行速度比真正的硬件慢的:其模拟的运行速度比真正的硬件慢的多,一般要慢多,一般要慢10100倍。另外软件仿真器只能模拟仿真软件的正倍。另外软件仿真器只能模拟仿真软件的正确性,仿真与时序有关,查找同硬件有关的错误比较困难。确性,仿真与时序有关,查找同硬件有关的错误比较困难。AVR Studio中就包含一个功能非常强大的软件仿真器。中就包含一个功能非常强大的软件仿真器。能够实现汇编级和高级语言级的软仿真功能。能够实现汇编级和高级语言级的软仿真功能。一些针对一些针对AVR开发的平台,如开发的平台,如IAR、BASCOM中也都中也都包含自己的软件仿真器。包含自己的软件仿真器。BASCOM的软件仿真器提供了模拟实物图形化界面,将的软件仿真器提供了模拟实物图形化界面,将一些标准化的外围器件如字符一些标准化的外围器件如字符LCD模块、键盘模块等作为实物模块、键盘模块等作为实物显示在屏幕上,用户能够更加直观的看到系统运行的结果,使显示在屏幕上,用户能够更加直观的看到系统运行的结果,使用非常方便。用非常方便。.实时在板仿真器(实时在板仿真器(ICE)实时在板仿真器通常称为在线仿真实时在板仿真器通常称为在线仿真ICE(In Circuit Emulate),它是最早用于开发嵌入式系统的工具。),它是最早用于开发嵌入式系统的工具。ICE是实际是实际是一个特殊的嵌入式系统,一般是由专业公司研制和生产。它是一个特殊的嵌入式系统,一般是由专业公司研制和生产。它的内部含有一个具有的内部含有一个具有“透明性透明性”和和“可控性可控性”的的MCU,可以代,可以代替被开发系统(目标系统)中的替被开发系统(目标系统)中的MCU工作,既用工作,既用ICE的资源来的资源来仿真目标机。因此,仿真目标机。因此,ICE实际上是内部电路仿真器,它是一个相实际上是内部电路仿真器,它是一个相对昂贵的设备,用于代替微处理器,并植入微处理器与总线之对昂贵的设备,用于代替微处理器,并植入微处理器与总线之间的电路中,允许使用者监视和控制微处理器所有信号的进出。间的电路中,允许使用者监视和控制微处理器所有信号的进出。因此,这种仿真方式和设备,更准确的讲应该称为实时在板仿因此,这种仿真方式和设备,更准确的讲应该称为实时在板仿真(真(On Board Debug)器。)器。ICE仿真器一般使用串行口(仿真器一般使用串行口(COM口或口或USB接口)或并行接口)或并行口(打印机口)同口(打印机口)同PC机通信,并提供一个与目标机系统上的机通信,并提供一个与目标机系统上的MCU芯片引脚相同的插接口(仿真口)。使用时,将目标机上芯片引脚相同的插接口(仿真口)。使用时,将目标机上的的MCU取下,插上仿真器的仿真口,仿真器的通信口与取下,插上仿真器的仿真口,仿真器的通信口与PC连接连接 在在PC上需要安装与该仿真器配套使用的专用调试系统软件,上需要安装与该仿真器配套使用的专用调试系统软件,用户在该调试系统中,就可以通过用户在该调试系统中,就可以通过PC机来控制仿真器中程序的运机来控制仿真器中程序的运行,同时观察系统外围器件和设备的运行结果,分析、调试和排行,同时观察系统外围器件和设备的运行结果,分析、调试和排除系统中存在的问题。这种运行调试方法称为在线(板)仿真。除系统中存在的问题。这种运行调试方法称为在线(板)仿真。仿真开发系统通常具有的一些基本功能为:仿真开发系统通常具有的一些基本功能为:可控性。可控性。可以根据调试的需要,控制目标程序的运行方式,如可以根据调试的需要,控制目标程序的运行方式,如单步、连续、带断点等多种运行方式单步、连续、带断点等多种运行方式 透明性。透明性。能对能对MCU的各个部分进行监控,如查看和设置内存单的各个部分进行监控,如查看和设置内存单元、寄存器、元、寄存器、I/O的数据。的数据。仿真开发系统都必须配备一套在仿真开发系统都必须配备一套在PC机上运行的专用仿真开机上运行的专用仿真开发软件系统,用以配合和实现仿真器的在线仿真调试工作。因发软件系统,用以配合和实现仿真器的在线仿真调试工作。因此嵌入式系统的开发人员,除了要掌握单片机和嵌入式系统的此嵌入式系统的开发人员,除了要掌握单片机和嵌入式系统的应用和设计能力应用和设计能力,还应熟练地掌握和使用仿真器和仿真系统软,还应熟练地掌握和使用仿真器和仿真系统软件。件。3.实时在片仿真器实时在片仿真器新型的芯片在片内集成了硬件调试接口。新型的芯片在片内集成了硬件调试接口。(IEEE1149.1标准的标准的JTAG)JTAG硬件调试接口的基本原理硬件调试接口的基本原理:采用了一种原应用于对集成电路芯片内部进行检测的采用了一种原应用于对集成电路芯片内部进行检测的“边界边界扫描扫描”技术实现的。使用该技术,当芯片在工作时,可以将集技术实现的。使用该技术,当芯片在工作时,可以将集成电路内部的各个部分的状态以及数据,组成一个串行的移位成电路内部的各个部分的状态以及数据,组成一个串行的移位寄存器链,并通过引脚送到芯片的外部。所以通过寄存器链,并通过引脚送到芯片的外部。所以通过JTAG硬件调硬件调试接口,用户就能了解芯片在实际工作过程中,各个单元的实试接口,用户就能了解芯片在实际工作过程中,各个单元的实际情况和变化,进而实现跟踪和调试。际情况和变化,进而实现跟踪和调试。JTAG硬件调试接口采用硬件调试接口采用4线的串行方式传送数据,占用线的串行方式传送数据,占用MCU的引脚比较少。的引脚比较少。采用采用JTAG硬件调试接口进行仿真调试也是实时的在线调硬件调试接口进行仿真调试也是实时的在线调试。不同的是,采用这种方式的调试不需要将芯片取下,用户试。不同的是,采用这种方式的调试不需要将芯片取下,用户得到的运行数据就是芯片本身运行的真实数据,所以这种调试得到的运行数据就是芯片本身运行的真实数据,所以这种调试手段和方式称为实时在片调试(手段和方式称为实时在片调试(On Chip Debug),并正在替),并正在替代传统的实时再板仿真调试(代传统的实时再板仿真调试(On Board Debug)技术。)技术。实现实时在片调试的首要条件,是芯片本身要具备硬件调实现实时在片调试的首要条件,是芯片本身要具备硬件调试接口。除此之外,同实时再板仿真调试一样,也需要一个专试接口。除此之外,同实时再板仿真调试一样,也需要一个专用的实时在片仿真器(采用用的实时在片仿真器(采用JTAG硬件调试口的,称为硬件调试口的,称为JTAG ICE),不过同实时再板仿真器相比,它的价格就便宜。),不过同实时再板仿真器相比,它的价格就便宜。使用实时在片仿真器进行系统调试时,其系统的组成和连接使用实时在片仿真器进行系统调试时,其系统的组成和连接方式与使用实时再板仿真器类似。方式与使用实时再板仿真器类似。JTAG仿真器一般也是使用串仿真器一般也是使用串行口(行口(COM口或口或USB接口)或并行口(打印机口)同接口)或并行口(打印机口)同PC机通信,机通信,不同之处在于,另一端的接口是直接与目标机系统上不同之处在于,另一端的接口是直接与目标机系统上MCU芯片芯片的的JTAG引脚连接,不需要将芯片从系统上取下。引脚连接,不需要将芯片从系统上取下。4.编程烧入器编程烧入器 编程烧入器也称为程序烧入器或编程器,它的作用是将开编程烧入器也称为程序烧入器或编程器,它的作用是将开发人员编写生成的嵌入式系统的二进制运行代码下载(写入)发人员编写生成的嵌入式系统的二进制运行代码下载(写入)到单片机的程序存储器中。到单片机的程序存储器中。万用编程器万用编程器,它不仅可以下载运行代码到多种类型和型号的单,它不仅可以下载运行代码到多种类型和型号的单片机中,还可以对片机中,还可以对EPROM、PAL、GAL等多种器件进行编程。等多种器件进行编程。AVR单片嵌入式系统的软件开发平台单片嵌入式系统的软件开发平台 1.汇编语言开发平台汇编语言开发平台 ATMEL ATMEL 公司提供免费的公司提供免费的AVRAVR汇编语言编译器。在汇编语言编译器。在AVR STUDIOAVR STUDIO中中已经将已经将AVRAVR汇编语言编译器集成在一起,你可以在汇编语言编译器集成在一起,你可以在AVR STUDIO AVR STUDIO 中完成中完成AVRAVR汇编代码的编辑,编译和连接,生成可下载的运行代汇编代码的编辑,编译和连接,生成可下载的运行代码。码。由于由于AVR 的指令与的指令与C 语言有很强的对应性,再加上语言有很强的对应性,再加上AVR 汇汇编语言编译器有强大的预编译能力,如宏,表达式计算能力等,编语言编译器有强大的预编译能力,如宏,表达式计算能力等,所以使用所以使用AVR汇编语言写出的代码可读性也是很强的。汇编语言写出的代码可读性也是很强的。部分第三方的高级语言开发平台不具备软件模拟仿真环境部分第三方的高级语言开发平台不具备软件模拟仿真环境和在线实时仿真的功能,但他们都能够生成在和在线实时仿真的功能,但他们都能够生成在AVR STUDIO中中可以使用的,用于仿真的文件,这样高级语言的开发平台与可以使用的,用于仿真的文件,这样高级语言的开发平台与AVR STUDIO配合使用,就能构成和实现一个基于高级语言的配合使用,就能构成和实现一个基于高级语言的软仿真和在线实时仿真调试的开发环境。软仿真和在线实时仿真调试的开发环境。2 高级语言开发台高级语言开发台 根据高级语言的种类,根据高级语言的种类,AVR有有C、BASIC、PASCAL,ADA等多种语言的开发平台。等多种语言的开发平台。几种高级语言编译器和开发软件平台几种高级语言编译器和开发软件平台(1)IAR Systems的的Embedded Workbench 编译器编译器 C编译器和汇编编译器支持几乎所有编译器和汇编编译器支持几乎所有AVR芯片,具备以下特点:芯片,具备以下特点:(2)IMAGE CRAFT的的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位和位和64位的位的IEEE兼容的浮点运算。兼容的浮点运算。扩展的扩展的C和和EC+的函数库,并对数学和浮点运算。的函数库,并对数学和浮点运算。(4)GNU GCC AVRGCCAVR的特点为:的特点为:(5)几种)几种C语言开发平台的对比语言开发平台的对比(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微控制器微微控制器微中运行。中运行。为标准为标准LCD显示器,显示器,I2C 芯片和单总线协议芯片等扩充了大量芯片和单总线协议芯片等扩充了大量的专用语句。的专用语句。内置模拟终端和程序下载功能。内置模拟终端和程序下载功能。自带内置的图形软件仿真平台,并同时支持和采用自带内置的图形软件仿真平台,并同时支持和采用AVR STUDIO作为其软件模拟仿真器。作为其软件模拟仿真器。完善的连机帮助功能和大量的例程。完善的连机帮助功能和大量的例程。1.AVR_XQV1.2开发板开发板 LCD12864接口接口8位位LED数码管数码管液晶背液晶背光选择光选择AD参考参考电压电压电电源源芯芯片片电电源源接接口口电源电源开关开关RS-232接口接口RS-232芯片芯片USB接口接口USB芯片芯片三路三路PWM输出输出ISP下下 载载 接接口口JTAG仿真接口仿真接口TLC5615DA芯片芯片拨码拨码开关开关引引 出出 32个个I/O复位复位按键按键两个中两个中断按键断按键4*4矩阵矩阵键盘键盘蜂鸣器蜂鸣器液液晶晶对对比比度度调调节节液晶串液晶串并选择并选择温度传温度传感器感器8个个LED发光管发光管实时时实时时钟芯片钟芯片时钟微时钟微调电容调电容时钟供时钟供电电池电电池DA参参 考考 电电压压 mega系列单片机属于系列单片机属于AVR中的高档产品,本开发板主要中的高档产品,本开发板主要针对针对40脚的脚的ATmega16单片机,属于单片机,属于mega系列的一个子集,指系列的一个子集,指令系统完全兼容,所以学会令系统完全兼容,所以学会ATmega16单片机的应用,掌握其单片机的应用,掌握其它它mega系列单片机就会驾轻就熟。系列单片机就会驾轻就熟。具有具有ISP编程功能以及编程功能以及JTAG仿真接口,仿真接口,(标准接口的标准接口的JTAG仿真器,极大方便了程序的调试仿真器,极大方便了程序的调试)对于对于AVR单片机所有的基本功能和单元实验,如:单片机所有的基本功能和单元实验,如:I/O使用、使用、AD、时钟、中断、时钟、中断、PWM,键盘、按键、,键盘、按键、LED、LED数码、数码、LCD显示、测频率、测周期(利用板上的显示、测频率、测周期(利用板上的125Hz-128K的方波源)、功率驱动、蜂鸣器、的方波源)、功率驱动、蜂鸣器、RS-232等,都等,都可以在板上实现可以在板上实现。单片机系统具有单片机系统具有“硬件决定软件,程序基于硬件硬件决定软件,程序基于硬件”的特点。的特点。AVR_XQV1.2开发板开发板 主要完成以下接口的扩展:主要完成以下接口的扩展:位数码显示位数码显示4 3矩阵键盘矩阵键盘 个独立按键。用于按键输入、外部中断输入等个独立按键。用于按键输入、外部中断输入等DS1802数字温度传感器数字温度传感器 PCF8563 IC接口的时钟芯片驱动,显示当前时间。接口的时钟芯片驱动,显示当前时间。USART 串口扩展串口扩展SPI总线的总线的10位位DA转换器转换器TLC5615 显示显示LCD12864液晶显示器接口,带字库的字符图形液晶屏液晶显示器接口,带字库的字符图形液晶屏 片上资源的应用:片上资源的应用:定时器中断输出脉冲定时器中断输出脉冲、三路、三路PWM同时输出同时输出、编写中断、编写中断程序、自带程序、自带AD模块程序、看门狗程序设计等模块程序、看门狗程序设计等 AVR开发环境的建立开发环境的建立 本培训中采用的本培训中采用的AVR单片机实验开发环境的建立单片机实验开发环境的建立