下载

5下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 AVR_studio_4教程

AVR_studio_4教程.pdf

AVR_studio_4教程

xiaozhou
2011-04-11 0人阅读 举报 0 0 暂无简介

简介:本文档为《AVR_studio_4教程pdf》,可适用于工程科技领域

ATMELAPPLICATIONSJOURNALNumberSummerwwwatmelcompage第三节:面向新手的AVR开发工具及基本知识互联网上下载AVRSTUDIO首先请放松我们首先要做的只是下载AVR开发软件和相关的资料。下载前确保这些软件有效下载的时间取决于你连接互联网的速度。下载以下文件到你的计算机中(如C:Temp)AVRSTUDIO(~MB)ThisfilecontainstheAVRStudioProgramThisprogramisacompletedevelopmentsuite,andcontainsaneditorandasimulatorthatwewillusetowriteourcode,andthenseehowitwillrunonanAVRdeviceAssemblySampleCode(~kB)ThisfilecontainstheAssemblySamplecodeyouwillneedtocompletethisguideATSDatasheet(~MB)ThisistheDatasheetfortheATSAVRMicrocontrollerThisisaconvenient"GettingStarted"deviceFornowyoudon'thavetoworryaboutthedifferenttypesofAVRmicrosYou'llseethattheyareverymuchalike,andifyoulearnhowtouseone(eg),youwillbeabletouseanyotherAVRwithoutanyproblemsInstructionSetManual(~MB)ThisistheInstructionSetManualThisdocumentisveryusefulifyouwantdetailedinformationaboutaspecificinstructionƒAVRSTUDIO:这个文件是一个完整的开发工具包括编辑、仿真功能利用这个工具我们可以编辑源代码并在AVR器件上运行。这个文件大概MB。ƒ代码实例:这是一个用于演示完整代码大概KB。ƒATS数据手册:这是ATS芯片的完整资料。ATS芯片是一款非常容易上手的AVR芯片。现在你不用担心AVR其他型号的产品以后你会发现AVR系列产品有非常大的相似性你掌握了一款芯片(比如说)学会其他芯片也非常容易。这个文件大概MB。ƒ指令说明:如果你要详细的了解各种指令的话这个文件非常有用。这个文件大概MB。如果以上的文件你都下载了下面的工作就是安装软件了。安装AVRStudioAVRStudio现在也提供版本不过版本将逐步替代版本。使用WindowsNTXP的用户请注意安装AVRStudio软件时必须使用管理员(Administrator)权限登陆这是Windows系统限定只有管理员才可以安装新器件。安装过程:双击AVRSTUDIOEXE文件。这是一个自解压文件双击后系统询问将文件解压到哪个目录底下一般情况下是放在系统默认临时目录下这个目录是隐藏在你的硬盘中的。为了记忆方便一般输入指定的目录如C:temp。当所有文件解压缩完成以后打开temp目录双击SETUPEXE文件。好了开始安装了推荐适用默认的ATMELAPPLICATIONSJOURNALNumberSummerwwwatmelcompage安装路径当然用户也可以设定自己的安装路径但是在指南中我们使用默认路径。好了开发工具安装好了就这么简单。现在你可以开始编写代码在AVR器件上运行了。注意将芯片资料和指令说明放在旁边这些资料以后经常用到。AVR器件的基本知识AVR系列产品是采用新架构生产的芯片整个系列都具有良好的相似性芯片结构也非常容易理解和掌握。好了现在我们就来开始看看AVR器件的基本知识吧。首先AVR系列产品可以分为大种类:ƒtinyAVR(简化版芯片)ƒAVR(常用芯片)ƒmegaAVR(增强型)这类器件的区分是很明显的譬如tiny芯片在管脚和功能上有所裁减。但是类器件都采用同样的结构和存储器管理方式如果将外围管脚以及一些特殊的模块除去每一个AVR芯片都具有相同的内核这样的性能保证升级芯片时非常的便利。有些适用于特殊领域的AVR器件带有SRAM、EEPROM、扩展SRAM接口、ADC、UART等等模块。选择合适的AVR芯片从上面的介绍来看类AVR芯片是有差别的我们可以从芯片的性能上去区分:高性能的megaAVR简化版本的tinyAVR在两者之间的标准AVR。开始学习编写AVR代码学习新的知识是非常有意思的当然也可能遇到一些小小的麻烦。对于学习AVR编程一个可行的办法是读完全部的资料但是这个方法在时间和对芯片的理解上可能有不小的问题。在这里我们通过一个简单的方法包括:ƒ找一些事先写好、可以工作的代码ƒ理解这些代码是如何工作的ƒ按照自己的需要修改代码在这次学习中我们采用ATS芯片现在开始花点时间把芯片的说明书看一下。学会看AVR的芯片说明书看AVR的芯片说明书可能是一件非常恐怖的事情因为AVR的芯片说明书有时长达页。将这样的说明书从头到尾读完并且记忆下来是十分长并痛苦的。现在你不需要这样做芯片说明书详细记录了芯片的技术资料你只是在需要了解某个方面的时候才需要翻阅相关的内容。打开AVR芯片的说明书你会发现说明书大体上分成以下几个部分ƒ第一页讲述关键信息和列表ƒ总体介绍芯片架构ƒ外围设备介绍ƒ存储器编程ƒ芯片性能ATMELAPPLICATIONSJOURNALNumberSummerwwwatmelcompageƒ寄存器介绍ƒ命令总结ƒ封装信息这样排列有非常大的便利当你熟悉适用ATS芯片说明书以后再看其他AVR产品的说明书也会觉得非常容易。在这次整个学习过程中你需要参看ATS芯片数据手册中有关架构介绍部分的内容(在说明书的开始)这段内容包含了非常重要的信息包括AVR芯片的存储器、地址以及其他信息。另外一个非常重要的部分是命令总结。如果你要自己编写AVR代码的话这部分的内容至关重要。如果你想深入了解命令的话那就参看芯片数据手册前面的内容。第四节:利用AVRSTUDIO进行开发好了现在你已经安装了开发软件也知道了AVR的基本知识也拥有了芯片数据手册下面我们就开始进行AVR芯片的开发吧。AVRStudio的界面提示:如果你还没有安装AVRStudio开发软件你可以参考前面的章节来安装软件。创建一个新的项目启动AVRStudio的方式如下:点击开始〉程序〉ATMELAVR工具。AVRStudio启动后你将看到一个对话框。我们需要创建一个新的项目点击“CreateNewProject”按钮。配置项目参数这个步骤包括选择我们要创建什么类型的项目设定名称以及存放的路径。这个过程包括五个步骤:()在对话框左边选中Assemblyprogram表明你要创建一个项目。()输入项目的名称。项目的名称可以随意定义在例子中我们用了“Leds”。()我们需要AVRStudio自动产生一个汇编文件在例子中我们用了“Leds”。ATMELAPPLICATIONSJOURNALNumberSummerwwwatmelcompage()选择你要存放项目的路径()确认所有的选项确认之后按“Next”按钮。选择调试平台AVRStudio软件可以让客户选择多种开发调试工具。()AVRStudio允许可以选择多种开发调试工具在这里我们选用带有仿真功能的AVRSimulator。()芯片我们选用ATS。编写你的第一行代码经过上面的步骤AVRStudio打开了一个空的文件文件的名字是Ledsasm。可能你注意到Ledsasm这个文件没有出现在左边的栏目中这是因为这个文件还没有保存过。现在在文件中输入:“MyVeryFirstAVRProject”“”的作用是注释在编译时分号以后的内容被忽略。ATMELAPPLICATIONSJOURNALNumberSummerwwwatmelcompage在File菜单中按下Save按钮文件被保存。同时文件也出现在左边栏目中。好了现在我们的AVRStudio可以工作了下面让我们再来关注AVRStudio的界面。AVRStudio的用户图形界面(GUI)让我们来自己观察一下AVRStudio的用户图形界面(GUI)。我们把用户图形界面划分成了个部分。在AVRStudio系统中包括了AVRStudio的帮助文件在这里我们着重介绍AVRStudio的框架和一些要注意的事项。()第一行是菜单栏。这与标准的Windows程序差不多包括打开保存文件、剪贴复制这个栏目还包含了Studio的一些特殊功能如仿真等。ATMELAPPLICATIONSJOURNALNumberSummerwwwatmelcompage()第二行是快捷方式栏这一栏存储了一些常用命令包括保存打开文件设置断点等等。()第三部分为工作台窗口在这里显示项目文件、IO状态以及项目选用AVR器件的信息()第四是编辑窗口。在这里可以编辑你的源代码。对于熟练的用户在这里也可以嵌入C代码()第五是输出窗口状态信息在这里显示()第六是系统状态条。这里显示AVRStudio软件工作的模式例如我们选用了ATS芯片在仿真模式下工作这些信息就会在系统状态条中显示。用户图形界面深层指南AVRStudio的用户图形界面制作的非常友好用户不需要太多的知识就可以使用。但是我们建议用户还是参看一下AVRStudio自带的HTML帮助文件。用户可以从AVRStudio软件的help>AVRStudioUserGuide打开帮助文件。编写你的第一个别AVR程序下面我们继续完成我们的第一个AVR程序。到目前为止我们安装了开发软件创建了“Leds”项目下面我们就开始编写AVR代码了。在AVRStudio的编辑窗口继续完成代码需要添加的代码如下(可以运用复制粘贴方式将代码复制到编辑窗口):MyVeryFirstAVRProjectinclude"definc"IncludesthedefinitionsfiledefTemp=RGives"Defines"RegisterRthenameTemporgxPlacesthefollowingcodefromaddressxrjmpRESETTakeaRelativeJumptotheRESETLabelRESET:ResetLabelldiTemp,xFFStoreinR(SincewehavedefinedR=Temp)outDDRB,TempStorethisvalueinThePORTBDatadirectionRegisterLoop:LoopLabeloutPORTB,TempWriteallhighs(decimal)toPORTBdecTempDecrementR(Temp)rjmpLoopTakearelativejumptotheLooplabel注意到在编辑窗口代码的颜色发生了变化。这是编辑窗口的语法高亮功能这个功能非常有利于增强代码的可读性能。代码输入完毕后按CTRLF或者是Project菜单〉BuildandRun。ATMELAPPLICATIONSJOURNALNumberSummerwwwatmelcompage在输出窗口中(在屏幕的左下角)你将会看到项目编译同时报告没有发现错误同时我们也看到我们的程序编译后代码包括个字(个Byte)。恭喜现在你已经编写了第一个AVR程序了下面我们着重研究这段代码。注意:如果你的代码不能编译请检查汇编文件。特别是你可能将引用文件“definc”放在了别的目录请在文件中加入完整路径如“include“c:completepathdefinc””。理解源代码理解源代码到目前为止我们编写的第一个程序编译没有问题这是非常大的成就。但是我们还是来看看这段代码的含义。完整的代码如下:MyVeryFirstAVRProjectinclude"definc"IncludesthedefinitionsfiledefTemp=RGives"Defines"RegisterRthenameTemporgxPlacesthefollowingcodefromaddressxrjmpRESETTakeaRelativeJumptotheRESETLabelRESET:ResetLabelldiTemp,xFFStoreinR(SincewehavedefinedR=Temp)outDDRB,TempStorethisvalueinThePORTBDatadirectionRegisterLoop:LoopLabeloutPORTB,TempWriteallhighs(decimal)toPORTBdecTempDecrementR(Temp)rjmpLoopTakearelativejumptotheLooplabelATMELAPPLICATIONSJOURNALNumberSummerwwwatmelcompage现在让我们一行一行来看这段代码MyVeryFirstAVRProject分号()开始的行是代码的注释。注释可以加在任何行的后面如果注释超过了一行每一行注释都要以分号开头include"definc"不同的AVR器件还是有一些区别的比如说PORTB就对应着不同的存储地址inc文件存储这种信息在应用了这个文件以后就可以把PORTB标号和具体的存储地址相对应(在ATS芯片中对应是OX)。defTemp=Rdef命令可以创建一个容易记忆的标号(如Temp)代替寄存器名称(如R)。在项目中使用大量通用寄存器的时候这个命令非常有效。(在芯片数据手册中有通用寄存器的介绍)orgx这个命令的作用是将下条指令定位在Flash存储器中地址为x的单元比如在这个例子中下条指令RJMP指令就定位在x地址(在Flash的开始)。这样做的原因在于芯片上电复位、复位信号有效后或是看门狗有效以后芯片从x开始执行指令。当然这里也可以存放中断跳转指令。在这个例子中我们没有利用中断所以就存放了RJMP指令。RjmpRESET前面我们介绍过了指令定位在x相对跳转指令(RJMP)指令就被存放在x单元中这条指令被首先执行。如果参看芯片说明书你会发现ATS不支持JMP指令芯片只有RJMP指令。这原因是我们不需要JMP指令。如果你比较JMP和RJMP指令会发现JMP指令更长这将使得器件执行速度变慢、代码变大而用RJMP也可以访问到所有的Flash存储器因此芯片不支持JMP指令。RESET:这个是标号。你可以把标号放在代码中任何地方。标号的作用在于区分跳转指令的不同分支。标号使用是必要及方便的在编译的时候编译器自动运算标号的正确地址。LdiTemp,xFF这是一个立即读取(LoadImmediate)指令这个命令将读取一个立即数写入指定的寄存器。在上面我们定义了Temp是R所以这条指令的动作是将立即数xff放入寄存器R。OutDDRB,Temp为什么我们不写成“LdiDDRB,Temp”?这是个好问题现在来让我们参看命令手册。找到LDI和OUT指令用户会发现LDI的语法是:“LDIRd,K”这就表明这个命令只能使用通用寄存器的R到R。参看OUT命令的语法:“OUTA,Rr”则表明这个命令可以使用R到R。执行了这条指令以后DDRB寄存器被置高。DDRB寄存器被置高表明PORTB管脚被定义成输出脚。ATMELAPPLICATIONSJOURNALNumberSummerwwwatmelcompageLoop:还是一个标号outPORTB,Temp现在我们把xFF写入PORTB如果现在有个真实的器件的话我们去测量芯片的PORTB会发现管脚为V。值得注意的是这个IO管脚是芯片经常使用的所以有必要在芯片说明书中参看这部分管脚的资料。从芯片说明书中我们可以看到PORTB包括个寄存器:PORTB、PINB和DDRB。PORTB为写入寄存器PINB为读入寄存器DDRB寄存器控制管脚是输入还是输出。DecTempDEC为减法指令这个指令表明对R寄存器减一操作经过这个指令Temp寄存器(也就是R寄存器)里面的内容为xFE。DEC是一条算术指令AVR芯片支持广泛的算术指令。完整的指令列表请参看芯片说明书中的指令列表。RjmpLoop通过这条指令我们将程序跳转到Loop标号处在每一次循环中都把Temp的数值赋给PORTB。到目前为止我猜想你已经知道这段程序大体的功能了:我们做了一个计数器这个计数器从递减到。那么到后会怎么样呢?仿真源代码仿真源代码AVRStudio可以在多种方式下工作刚才编写代码的时候我们是在编辑模式现在我们进入调试模式。先让我们着重看一下软件界面()注意到有一个黄色的箭头指向RLMP指令。这个箭头的作用是指向即将被执行的指令。()注意到工作台窗口显示项目IO信息。IO信息是项目开发中最经常使用的信息在下面我们将详细的介绍()在底部状态栏显示当前状态。在本项目中显示:ATSsimulatorAutoStopped。这里有一个黄色的图标。现在最好检查一下显示信息以确认选用的器件和仿真工具。展开IO信息我们编写的项目主要是对PORTB存储器操作所以我们将把IO信息展开以观察IO的详细信息。展开IO信息树将得到如图信息。ATMELAPPLICATIONSJOURNALNumberSummerwwwatmelcompage分段调试代码AVRStudio开发软件支持分段调试代码。软件支持运行到断点然后返回寄存器信息并在此等待也支持单步指令执行。按F进行单步指令执行。现在我们按一次F注意到黄色的箭头指向LDITemp,xFF这条指令表明这条指令即将被执行。再按一次FLDI指令执行完毕黄色箭头指向OUT指令。Temp寄存器的内容被赋值为xFF(如果你观察R寄存器你会发现R寄存器的内容也变成了xFF因为我们把Temp映射成R了)。ATMELAPPLICATIONSJOURNALNumberSummerwwwatmelcompage再按一次F如图所示DDRB寄存器的内容被赋值为xFF。在图中一个白的方块表示黑的方块表示。DDRB被设置成高电平表示所有的PORTB位设置为输出。再按一次FxFF写入PORTB寄存器黄色箭头指向DEC指令。注意到PORTB寄存器内容是xFF但是PINB寄存器内容仍然是x。再按一次FTemp的内容被减一变成xFE。同时注意到PINB寄存器内容变成了xFF。用户可能变得非常疑惑让我们来看芯片说明书中关于PORT的章节吧。数据首先锁存在输出管脚上在延迟一个时钟周期以后管脚上的数据锁存到PIN寄存器中。真如你所看到了模拟仿真如实的反映了真实器件的工作步骤。下一条指令是跳转指令按一次FRJMP指令被执行黄色箭头重新返回到OUTPORTB,Temp指令。按一次F新的Temp值再次赋予PORTB寄存器。一直按F你会发现PORTB寄存器的值可以一直递减到x如果我连续运行程序会有什么结果呢?小结:通过以上的步骤用户已经对编写、运行AVR程序有了初步的认识。就像我们以前提到那样最好的学习方法是寻找可以正常工作的代码实例理解这些代码是如何工作的。在这里推荐一个网站:wwwAVRfreaksnet在这里有大量收集好的应用例子值得你去学习。

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/11

AVR_studio_4教程

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利