教学材料《AVR单片机》-第二章_第1页
教学材料《AVR单片机》-第二章_第2页
教学材料《AVR单片机》-第二章_第3页
教学材料《AVR单片机》-第二章_第4页
教学材料《AVR单片机》-第二章_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一节AVR开发环境的组成一个AVR单片机的开发环境由以下几个部分组成:(1)PC机。PC机是AVR单片机设计开发的主要工具之一。一般来说,拥有一台能够运行Windows98/2000/XP、有串口和并口的PC机就可以了。

(2)AVR软件开发平台。一般需要选择一个或两AVR软件开发平台。如果采用汇编语言来开发AVR的系统程序,则首选ATMEL公司免费提供的AVRStudio。采用高级语言开发系统程序的,可以选取C或BASIC;语言的开发平台。为了便于入门,本书选择了C语言的开发平台

(3)AVR实验开发板。

(4)其他辅助工具、设备和软件。返回第二节AVR高级语言开发平台本书选用了ccc作为c语言编译器一、GCC编译器

GCC可编译多种语言,日前支持的语言有C,C++、Ohjective—C,Fortran,java和Ada。通过其前端(front-end)和后端(hack-end)设计,GCC很容易的支持多种处理器,而且很幸运的,AVR也得到了GCC的支持,它也是日前GCC支持的唯一一种8位处理器不仅如此,我们还可以在WINDOWS平台上安装WINAVR程序包来使用GCC的AVRC/C++编译程序。下一页返回第二节AVR高级语言开发平台二、WINAVR的安装及使用WINAVR的安装非常简单,用户只需要执行WinAVR-20090313一install.exe文件,就可以按照安装向导的提示进行WINAVR的安装了,值得一提的是在如图2一1所示的步骤设置目标路径时,尽量不要修改默认的目标路径,即便需要修改也请确保路径中不包含中文字符和空格,以避免可能的“莫名其妙”的问题WINAVR安装后,我们来看一个简单的例子,通过它了解一段C语言程序的编译、连接过程。用纯文本编辑器输入以下测试程序,并以demol.c保存该文件,注意文件名要包括扩展名“·c”·上一页下一页返回第二节AVR高级语言开发平台#include<avr/io.h>intmaimvoid){whi工e(1);}现在单击菜单开始、运行,在弹出对话框中输入“cmd",来打开控制台窗口,利用cd命令进入到保存demol.。所在文件夹下后,在命令行输入:avr-gcc-mmcu=atmega48-cdemol.c上一页下一页返回第二节AVR高级语言开发平台在这行命令中,通过命令行选项-mmcu指定了MCU的类型为tmega48,-c。选项告诉编译器只编译不连接。编译完成后,在当前工作目录生成了一个文件:demol.c,它是编译得到的目标文件,对该文件再使用连接器可得到在器件上执行的二进制代码。命令为:avr-gcc-mmcu=atmega48-odemol.elfriemol.o

该命令得到打一展名为“.elf'’的ELF格式文件riemol.elf,该文件包含了程序的可执行二进制代码和一些调试信息,最后借助一个有用的工具。avr-hjcopy来提取单片机程序存储器内容。上一页下一页返回第二节AVR高级语言开发平台在命令行输入:avr一objcopy一7·text一7.data一Oibexriemol.elfriemol.hexCWC把不同类型的数据分到不同的段落,程序中的代码和数据分别被放到段.text和.dat。中,命令中用一J指定了要提取的段。-0指定了输出文件的格式为ibex(IntelHEXfile,附录中详细描述了该文件的格式)。最终得到了demol.hex,这就是要下载到单片机的结果文件。完整的操作过程可参见图2一2上一页返回第三节AVRStudio集成开发环境在这里主要介绍如何使用AVRStudio一、安装AVRStudio本书使用的是AVRStudio4.16SP1版。该版本包含两个文件AvrStudio416Setup.exe。和AVRStudio4.16SP1.exe。依次执行这两个文件,并按照提示就可以完成AVRStudio系统的安装,按照提示,我们将集成开发环境的系统文件安装在目录C:\ProgramFiles\Atmel\AVRTools\下。下一页返回第三节AVRStudio集成开发环境二、WINAVR+AVRStudio的使用

1.新建一个工程

AVRStudio采用Project工程项目管理文件(.APS)保存、记录、管理用户在系统软件开发中所使用和生成的各种文件,以及保存用户的开发环境配置参数和设置情况等。

(1)启动AVRStudio后,将看到一个如图2-3所示的欢迎对话框。单击NewProject按钮,即可创建一个新的项目。另外,在主窗口选择Project一>ProjectWizard,也会出现如图2一3所示上一页下一页返回第三节AVRStudio集成开发环境

(2)进入新工程建立对话框(见图2一4),在对话框的Projecttype列表中选择AVRGCC,指明要创建一个AVRGCC工程项目;然后在Prjectname编辑框中输入项目的名称,本例中为Demo2,这样AVRStudio会为我们创建名为Demo2.ARP的项目文件;建议将(;reateinitialfile和(;reatefolde:两个选项勾上,让AVRStudio为我们的项目自动产生一个目录和空的名为Demo2.。的C语言源程序文件。然后选择新建项目的存放路径,本例中存放在D:\AVRBOOI}\Code\下。上一页下一页返回第三节AVRStudio集成开发环境(3)以上设置好后单击Next,进入调试平台和芯片型号选择对话框,见图2一5。从图中可知AVRStudio支持多种开发调试工具,这里选择软件模拟器AVRSimulator2,该列表中其他选择均为在线仿真功能的开发调试工具,需要相应的硬件设备配合;芯片选择ATmega48(4)检查所有选项无误后,单击Finish按钮即完成了新项目的创建2.熟悉AVRStudio开发环境项目完成后,我们就可以看到如图2-6所示AVRStudio的主界面。工程管理浏览器管理整个工程中所有的源文件和头文件等。上一页下一页返回第三节AVRStudio集成开发环境3.工程的设置和编辑源程序文件在编辑源程序之前,我们先对工程中一些重要属性进行设置,单击菜单Project一>Configuration得到如图2-7所示的工程属性设置对话框,在这里可以设置编译结果文件名、输出文件的路径、单片机的型号、单片机工作频率、优化选项等参数。我们将工作频率项设置为1000000Hz,并确保CreateHexFile选项选中。现在我们输入以下测试程序,编辑完成后,单击工程按钮栏上的保存按钮#include<avr/io.h>intmaimvoid){while(1);}上一页下一页返回第三节AVRStudio集成开发环境4.编译工程,得到目标文件单击工具栏上的编译当前工程按钮或单击菜单BuildRebuildAll,编译器将编译整个工程文件,如果编译正确,主窗口下方的编译信息窗口将给出当前工程的编译信息如图2-8所示,在编译信息中我们可以看到目标代码所占据的存储空间百分数;如果编译出现错误,则以红色提示出错的位置和错误信息,双击错误信息行,软件将自动带我们到出错的位置以方便修改。编译成功后,我们可以在工程文件夹下的default子目录找到与工程同名的HEX文件,该文件就是我们要下载到单片机中的最终程序文件。上一页返回第四节AVR单片机的最小系统

图2-9所示,为ATmega48单片机的最小系统原理图,图中只给出了保证单片机工作的最基本电路,包括单片机本身、电源电路、时钟电路、复位电路和ADC滤波电路一、电源电路AVR单片机最常用的是5V与3.3V两种电压。图2一10再次画出了最小系统电源部分,该线路利用了两个三端稳压芯片,可以分别得到5V和3.3V的电压。图中二极管D1防止用户插错电源极性,这部分电路本身很简单,不需要过多的解释,唯一需要注意的是对电源退藕电容的使用。下一页返回第四节AVR单片机的最小系统二、时钟电路

ATmega48已经内置RC振荡线路,可以产生1MHz,2MHz,4MHz,8MHz的振荡频率。在要求不高的时候,时钟部分可以不接任何线路,PB6,PB7可作通用I/O使用不过,内置的毕竟是RC振荡,它的温度稳定性不高,在一些要求较高的场合,比如要与RS232通信需要比较精确的波特率时,建议使用外部的晶振线路。外接晶振时需要注意对电容Cl,C2的选用,选用大小不合适将造成晶振起振困难。图2-11外部品振线路上一页下一页返回第四节AVR单片机的最小系统三、复位电路ATmega48内置了上电复位设计。并且在熔丝位里,可以控制复位时的额外延时时间,故AVR外部的复位线路在上电时,可以设计得很简单如图2一12所示当AVR在工作时,按下爪开关时,复位脚变成低电平,触发AVR芯片复位。实际应用时,如果你不需要复位按钮,复位脚可以不接任何的零件,AVR芯片也能稳定工作。即这部分不需要任何的外围零件。上一页下一页返回第四节AVR单片机的最小系统四、ADC滤波电路为减小AD转换的电源干扰,ATmega48芯片有独立的AD电源供电习惯上在AREF脚接一只0.1μF的电容到地(C3),如图2一13所示实际应用时,在要求不高的场合,如果想简化线路,以将AVcc:直接接到Vcc,AREF悬空。即这部分不需要任何的外围零件。下一页返回第五节构建自己的AVR实验板一、准备工作整个实验板由包括最小系统部分、电源部分等共计11个区域组成。所需元件清单如表2一1所示二、实验板的组装实验板的完整电路图请参考本书所附光盘,下面只是按照实验板电路原理图的分区,对每一个部分需要注意的部分进行说明,请注意它不一定是焊接的顺序。上一页返回第五节构建自己的AVR实验板1.电源区电源区电路原理在前面讲述最小系统部分时已做出介绍,电路如图2一14所示2.单片机最小系统因为最小系统的原理已在前面分析,这里就不再赘述。3.发光二极管区该部分电路如图2一15所示,为了焊接方便,限流电阻用了8位9针1kΩ的直插排阻。4.数码管区数码管区电路原理图如图2一16所示上一页下一页返回第五节构建自己的AVR实验板

5.I2C区

I2C区核心元件由AT24C02芯片组成,这一部分电路电阻RA1、RA2比较重要,它是I2C总线的上拉电阻。电路如图2一17所示,对该电路的调试我们将在第十章中介绍。

6.RS232区

RS232区部分的任务是完成在串口通信中5V数字电平和+/一10V左右的RS232电平之间的转换。电路原理图如图2一18所示上一页返回第六节AVR可执行代码的下载一、USBASP简介在学习、使用单片机的过程中,我们需要将编制好的单片机程序下载到单片机中,这需要称为下载线的工具来完成。本书使用USBASP完成程序的下载。该下载线可在Windows,Linux和MacOSX上工作,下载速度高达5KB/s,电路如图2一19所示下一页返回第六节AVR可执行代码的下载二、USBASP的制作本小节将同大家一起自制一个USBASP下载线,由于USBASP是一个很简单的电路,大家只要注意以下所述的装配注意事项,很容易就可以制作成功。自制USBASP下载线所需元件的清单如表2-2所示。上一页下一页返回第六节AVR可执行代码的下载三、使用USBASP1.USBASP的驱动第一次使用USBASP时,将该下载线插入电脑的USB端口,我们会看到Windows发现了新硬件,并弹出如图2-20所示的新硬件安装向导我们选择“从列表或指定位置安装(高级)”选项后,单击下一步,在新弹出“找到新的硬件向导”对话框中(如所图2一21示),设置驱动程序的搜索路径。单击“浏览”,选择如图2-22所示的文件夹(将USBASP网站下载回来的文件解压即可得到),单击“下一步”按钮短暂的时间后,就成功安装了USBASP的驱动程序。这时我们可以在计算机的硬件管理器中看到USBASP设备,如图2一23所示上一页下一页返回第六节AVR可执行代码的下载2.USBASP的跳线在USBASP的硬件电路中有三个功能选择的跳线。(1)SlowSCK跳线。(2)Supplytarget跳线。(3)SelfProgramming跳线。3.使用USBASP下载程序由于现在大家还没有接触到单片机编程的相关知识,因此我们为大家编写了一个测试用的程序,可以在本书光盘的“TestProject”文件夹下找到,文件名为“test.c",编译好的目标代码文件名为“test.hex",该目标代码可以直接下载打开智峰“PROGISP1.6.7”下载软件,照图2一24进行设置上一页下一页返回第六节AVR可执行代码的下载单击“调入Flash”按钮,在弹出“打开”文件对话框中,选中上面所说的tesy.hex文件,然后单击“自动”按钮,即可将程序写入到单片机中。在单击“自动”下载程序前,应该检查图2-24右下角中“编程熔丝”的选项是否处于选择状态,初始测试时,千万不要选中该选项,以防止对熔丝位的误操作。下载完成后,将单片机的PD端口与发光二极管的阴极连接起来,应该看到发光二极管在闪烁,这表明单片机可以正常的运行程序了。上一页下一页返回第六节AVR可执行代码的下载四、测试AVR实验板的外部石英晶体因为在后面的学习中,大多数的实例都是使用外部的石英晶体振荡电路作为单片机的时钟信号,所以我们需要确保石英晶体能够正常地起振,并将单片机的时钟源切换到“外部晶体模式”。按照图2一25所示,修改ATmega48

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论