AVR studio4使用指南包括安装.docx

上传人:b****3 文档编号:4990646 上传时间:2023-05-07 格式:DOCX 页数:16 大小:432.79KB
下载 相关 举报
AVR studio4使用指南包括安装.docx_第1页
第1页 / 共16页
AVR studio4使用指南包括安装.docx_第2页
第2页 / 共16页
AVR studio4使用指南包括安装.docx_第3页
第3页 / 共16页
AVR studio4使用指南包括安装.docx_第4页
第4页 / 共16页
AVR studio4使用指南包括安装.docx_第5页
第5页 / 共16页
AVR studio4使用指南包括安装.docx_第6页
第6页 / 共16页
AVR studio4使用指南包括安装.docx_第7页
第7页 / 共16页
AVR studio4使用指南包括安装.docx_第8页
第8页 / 共16页
AVR studio4使用指南包括安装.docx_第9页
第9页 / 共16页
AVR studio4使用指南包括安装.docx_第10页
第10页 / 共16页
AVR studio4使用指南包括安装.docx_第11页
第11页 / 共16页
AVR studio4使用指南包括安装.docx_第12页
第12页 / 共16页
AVR studio4使用指南包括安装.docx_第13页
第13页 / 共16页
AVR studio4使用指南包括安装.docx_第14页
第14页 / 共16页
AVR studio4使用指南包括安装.docx_第15页
第15页 / 共16页
AVR studio4使用指南包括安装.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

AVR studio4使用指南包括安装.docx

《AVR studio4使用指南包括安装.docx》由会员分享,可在线阅读,更多相关《AVR studio4使用指南包括安装.docx(16页珍藏版)》请在冰点文库上搜索。

AVR studio4使用指南包括安装.docx

AVRstudio4使用指南包括安装

AVRSTUDIO4安装及其使用

首先,请放松,我们首先要做的只是下载AVR开发软件和相关的资料。

下载前确保这些软件有效,下载的时间取决于你连接互联网的速度。

下载以下文件到你的计算机中(如C:

\Temp)

AVRSTUDIO4:

这个文件是一个完整的开发工具,包括编辑、仿真功能,利用这个工具,我们可以编辑源代码,并在AVR器件上运行。

这个文件大概15MB。

代码实例:

这是一个用于演示完整代码,大概1KB。

AT90S8515数据手册:

这是AT90S8515芯片的完整资料。

AT90S8515芯片是一款非常容易上手的AVR芯片。

现在你不用担心AVR其他型号的产品,以后你会发现AVR系列产品有非常大的相似性,你掌握了一款芯片(比如说8515),学会其他芯片也非常容易。

这个文件大概4MB。

指令说明:

如果你要详细的了解各种指令的话,这个文件非常有用。

这个文件大概2MB。

  如果以上的文件你都下载了,下面的工作就是安装软件了。

1安装AVRStudio4

AVRStudio现在也提供版本3,不过版本4将逐步替代版本3。

使用WindowsNT/2000/XP的用户请注意,安装AVRStudio软件时,必须使用管理员(Administrator)权限登陆,这是Windows系统限定只有管理员才可以安装新器件。

安装过程:

1.双击文件。

这是一个自解压文件,双击后系统询问将文件解压到哪个目录底下,一般情况下是放在系统默认临时目录下,这个目录是隐藏在你的硬盘中的。

为了记忆方便,一般输入指定的目录,如C:

\temp。

2.当所有文件解压缩完成以后,打开temp目录,双击文件。

好了,开始安装了,推荐适用默认的安装路径,当然,用户也可以设定自己的安装路径,但是在指南中,我们使用默认路径。

好了,开发工具安装好了,就这么简单。

现在你可以开始编写代码,在AVR器件上运行了。

注意,将芯片资料和指令说明放在旁边,这些资料以后经常用到。

2AVR器件的基本知识

AVR系列产品是采用新架构生产的芯片,整个系列都具有良好的相似性,芯片结构也非常容易理解和掌握。

好了,现在我们就来开始看看AVR器件的基本知识吧。

首先,AVR系列产品可以分为3大种类:

tinyAVR(简化版芯片)

AVR(常用芯片)

megaAVR(增强型)

这3类器件的区分是很明显的,譬如tiny芯片在管脚和功能上有所裁减。

但是3类器件都采用同样的结构和存储器管理方式,如果将外围管脚以及一些特殊的模块除去,每一个AVR芯片都具有相同的内核,这样的性能保证升级芯片时非常的便利。

有些适用于特殊领域的AVR器件带有SRAM、EEPROM、扩展SRAM接口、ADC、UART等等模块。

选择合适的AVR芯片从上面的介绍来看3类AVR芯片是有差别的,我们可以从芯片的性能上去区分:

高性能的——megaAVR,简化版本的——tinyAVR,在两者之间的——标准AVR。

3开始学习编写AVR代码

学习新的知识是非常有意思的,当然,也可能遇到一些小小的麻烦。

对于学习AVR编程,一个可行的办法是读完全部的资料,但是这个方法在时间和对芯片的理解上可能有不小的问题。

在这里,我们通过一个简单的方法,包括:

找一些事先写好、可以工作的代码

理解这些代码是如何工作的

按照自己的需要修改代码

在这次学习中,我们采用AT90S8515芯片,现在开始花点时间把芯片的说明书看一下。

4学会看AVR的芯片说明书

看AVR的芯片说明书可能是一件非常恐怖的事情,因为AVR的芯片说明书有时长达350页。

将这样的说明书从头到尾读完并且记忆下来是十分长并痛苦的。

现在你不需要这样做,芯片说明书详细记录了芯片的技术资料,你只是在需要了解某个方面的时候才需要翻阅相关的内容。

打开AVR芯片的说明书,你会发现说明书大体上分成以下几个部分

 第一页讲述关键信息和列表

 总体介绍芯片架构

 外围设备介绍

 存储器编程

 芯片性能

 寄存器介绍

 命令总结

 封装信息

这样排列有非常大的便利,当你熟悉适用AT90S8515芯片说明书以后,再看其他AVR产品的说明书也会觉得非常容易。

在这次整个学习过程中,你需要参看AT90S8515芯片数据手册中有关架构介绍部分的内容(在说明书的开始),这段内容包含了非常重要的信息,包括AVR芯片的存储器、地址以及其他信息。

另外一个非常重要的部分是命令总结。

如果你要自己编写AVR代码的话,这部分的内容至关重要。

如果你想深入了解命令的话,那就参看芯片数据手册前面的内容。

第四节:

利用AVRSTUDIO4进行开发

好了,现在你已经安装了开发软件,也知道了AVR的基本知识,也拥有了芯片数据手册,下面,我们就开始进行AVR芯片的开发吧。

 

AVRStudio4的界面

提示:

如果你还没有安装AVRStudio4开发软件,你可以参考前面的章节来安装软件。

 

创建一个新的项目

启动AVRStudio4的方式如下:

点击开始-〉程序-〉ATMELAVR工具。

AVRStudio启动后,你将看到一个对话框。

我们需要创建一个新的项目,点击“CreateNewProject”按钮。

配置项目参数

这个步骤包括选择我们要创建什么类型的项目,设定名称以及存放的路径。

这个过程包括五个步骤:

(1)在对话框左边选中Assemblyprogram,表明你要创建一个项目。

(2)输入项目的名称。

项目的名称可以随意定义,在例子中我们用了“Leds”。

(3)我们需要AVRStudio自动产生一个汇编文件,在例子中,我们用了“Leds”。

(4)选择你要存放项目的路径

(5)确认所有的选项,确认之后,按“Next”按钮。

选择调试平台

AVRStudio4软件可以让客户选择多种开发调试工具。

(1)AVRStudio4允许可以选择多种开发调试工具,在这里我们选用带有仿真功能的AVRSimulator。

(2)芯片我们选用AT90S8515。

编写你的第一行代码

经过上面的步骤,AVRStudio打开了一个空的文件,文件的名字是。

可能你注意到这个文件没有出现在左边的栏目中,这是因为这个文件还没有保存过。

现在在文件中输入:

“;MyVeryFirstAVRProject”,“;”的作用是注释,在编译时,分号以后的内容被忽略。

在File菜单中按下Save按钮,文件被保存。

同时,文件也出现在左边栏目中。

好了,现在我们的AVRStudio可以工作了,下面让我们再来关注AVRStudio4的界面。

AVRStudio4的用户图形界面(GUI)

让我们来自己观察一下AVRStudio4的用户图形界面(GUI)。

我们把用户图形界面划分成了6个部分。

在AVRStudio4系统中包括了AVRStudio的帮助文件,在这里,我们着重介绍AVRStudio4的框架和一些要注意的事项。

(1)第一行是菜单栏。

这与标准的Windows程序差不多,包括打开/保存文件、剪贴/复制,这个栏目还包含了Studio的一些特殊功能,如仿真等。

(2)第二行是快捷方式栏,这一栏存储了一些常用命令,包括保存/打开文件,设置断点等等。

(3)第三部分为工作台窗口,在这里显示项目文件、IO状态以及项目选用AVR器件的信息

(4)第四是编辑窗口。

在这里可以编辑你的源代码。

对于熟练的用户,在这里也可以嵌入C代码

(5)第五是输出窗口,状态信息在这里显示

(6)第六是系统状态条。

这里显示AVRStudio软件工作的模式,例如我们选用了AT90S8515芯片在仿真模式下工作,这些信息就会在系统状态条中显示。

用户图形界面深层指南

AVRStudio的用户图形界面制作的非常友好,用户不需要太多的知识就可以使用。

但是,我们建议用户还是参看一下AVRStudio自带的HTML帮助文件。

用户可以从AVRStudio软件的help->AVRStudioUserGuide打开帮助文件。

编写你的第一个别AVR程序

下面,我们继续完成我们的第一个AVR程序。

到目前为止,我们安装了开发软件,创建了“Leds”项目,下面,我们就开始编写AVR代码了。

在AVRStudio的编辑窗口,继续完成代码,需要添加的代码如下(可以运用复制/粘贴方式将代码复制到编辑窗口):

 

1.;My Very First AVR Project 

2..include "" ;Includes the 8515 definitions file 

3..def Temp = R16 ;Gives "Defines" RegisterR16 the name Temp 

4..org 0x0000 ;Places the following code from address 0x0000 

5.rjmp RESET ;Take a Relative Jump to the RESET Label 

6.RESET:

 ;Reset Label 

7.ldi Temp, 0xFF ;Store 255 in R16 (Since we have defined R16 = Temp) 

8.out DDRB, Temp ;Store this value in The PORTB Data direction 

9.Register  

10.Loop:

 ;Loop Label 

11.out PORTB, Temp ;Write all highs (255 decimal) to PORTB 

12.dec Temp ;Decrement R16 (Temp) 

13.rjmp Loop ;Take a relative jump to the Loop label 

注意到在编辑窗口,代码的颜色发生了变化。

这是编辑窗口的语法高亮功能,这个功能非常有利于增强代码的可读性能。

代码输入完毕后,按CTRL+F7或者是Project菜单-〉BuildandRun。

在输出窗口中(在屏幕的左下角),你将会看到项目编译,同时报告没有发现错误,同时,我们也看到我们的程序编译后代码包括6个字(12个Byte)。

恭喜,现在你已经编写了第一个AVR程序了,下面我们着重研究这段代码。

注意:

如果你的代码不能编译,请检查汇编文件。

特别是你可能将引用文件“”放在了别的目录,请在文件中加入完整路径,如“.include“c:

\completepath\””。

理解源代码

理解源代码

到目前为止,我们编写的第一个程序编译没有问题,这是非常大的成就。

但是我们还是来看看这段代码的含义。

完整的代码如下:

 

1.;My Very First AVR Project 

2..include "" ;Includes the 8515 definitions file 

3..def Temp = R16 ;Gives "Defines" RegisterR16 the name Temp 

4..org 0x0000 ;Places the following code from address 0x0000 

5.rjmp RESET ;Take a Relative Jump to the RESET Label 

6.RESET:

 ;Reset Label 

7.ldi Temp, 0xFF ;Store 255 in R16 (Since we have defined R16 = Temp) 

8.out DDRB, Temp ;Store this value in The PORTB Data direction 

9.Register  

10.Loop:

 ;Loop Label 

11.out PORTB, Temp ;Write all highs (255 decimal) to PORTB 

12.dec Temp ;Decrement R16 (Temp) 

13.rjmp Loop ;Take a relative jump to the Loop label 

现在,让我们一行一行来看这段代码 

;MyVeryFirstAVRProject

分号(;)开始的行是代码的注释。

注释可以加在任何行的后面,如果注释超过了一行,每一行注释都要以分号开头

.include""

不同的AVR器件还是有一些区别的,比如说PORTB就对应着不同的存储地址,.inc文件存储这种信息,在应用了这个文件以后,就可以把PORTB标号和具体的存储地址相对应(在AT90S8515芯片中,对应是OX18)。

.defTemp=R16

.def命令可以创建一个容易记忆的标号(如Temp)代替寄存器名称(如R16)。

在项目中使用大量通用寄存器的时候,这个命令非常有效。

(在芯片数据手册中有通用寄存器的介绍)

.org0x0000

这个命令的作用是将下条指令定位在Flash存储器中地址为0x0000的单元,比如在这个例子中,下条指令RJMP指令就定位在0x0000地址(在Flash的开始)。

这样做的原因在于芯片上电复位、复位信号有效后或是看门狗有效以后,芯片从0x0000开始执行指令。

当然,这里也可以存放中断跳转指令。

在这个例子中,我们没有利用中断,所以就存放了RJMP指令。

RjmpRESET

前面我们介绍过了指令定位在0x0000,相对跳转指令(RJMP)指令就被存放在0x0000单元中,这条指令被首先执行。

如果参看芯片说明书,你会发现AT90S8515不支持JMP指令,芯片只有RJMP指令。

这原因是我们不需要JMP指令。

如果你比较JMP和RJMP指令,会发现JMP指令更长,这将使得器件执行速度变慢、代码变大,而用RJMP也可以访问到所有的Flash存储器,因此,芯片不支持JMP指令。

RESET:

这个是标号。

你可以把标号放在代码中任何地方。

标号的作用在于区分跳转指令的不同分支。

标号使用是必要及方便的,在编译的时候,编译器自动运算标号的正确地址。

LdiTemp,0xFF

这是一个立即读取(LoadImmediate)指令,这个命令将读取一个立即数,写入指定的寄存器。

在上面,我们定义了Temp是R16,所以这条指令的动作是将立即数0xff放入寄存器R16。

OutDDRB,Temp

为什么我们不写成“Ldi

DDRB,Temp”这是个好问题,现在来让我们参看命令手册。

找到LDI和OUT指令,用户会发现LDI的语法是:

“LDIRd,K”,这就表明这个命令只能使用通用寄存器的R16到R31。

参看OUT命令的语法:

“OUTA,Rr”,则表明这个命令可以使用R0到R31。

执行了这条指令以后,DDRB寄存器被置高。

DDRB寄存器被置高,表明PORTB管脚被定义成输出脚。

Loop:

还是一个标号

outPORTB,Temp

现在我们把0xFF写入PORTB,如果现在有个真实的器件的话,我们去测量芯片的PORTB,会发现管脚为5V。

值得注意的是这10个IO管脚是芯片经常使用的,所以有必要在芯片说明书中参看这部分管脚的资料。

从芯片说明书中我们可以看到PORTB包括3个寄存器:

PORTB、PINB和DDRB。

PORTB为写入寄存器,PINB为读入寄存器,DDRB寄存器控制管脚是输入还是输出。

DecTemp

DEC为减法指令,这个指令表明对R16寄存器减一操作,经过这个指令,Temp寄存器(也就是R16寄存器)里面的内容为0xFE。

DEC是一条算术指令,AVR芯片支持广泛的算术指令。

完整的指令列表请参看芯片说明书中的指令列表。

RjmpLoop

通过这条指令,我们将程序跳转到Loop标号处,在每一次循环中,都把Temp的数值赋给PORTB。

到目前为止,我猜想你已经知道这段程序大体的功能了:

我们做了一个计数器,这个计数器从255递减到0。

那么到0后会怎么样呢

仿真源代码

AVRStudio4可以在多种方式下工作,刚才编写代码的时候,我们是在编辑模式,现在我们进入调试模式。

先让我们着重看一下软件界面

(1)注意到有一个黄色的箭头指向RLMP指令。

这个箭头的作用是指向即将被执行的指令。

(2)注意到工作台窗口显示项目IO信息。

IO信息是项目开发中最经常使用的信息,在下面我们将详细的介绍

(3)在底部状态栏显示当前状态。

在本项目中显示:

AT90S8515simulator,Auto,Stopped。

这里有一个黄色的图

标。

现在,最好检查一下显示信息,以确认选用的器件和仿真工具。

展开IO信息

我们编写的项目主要是对PORTB存储器操作,所以我们将把IO信息展开,以观察IO的详细信息。

展开IO信息树,将得到如图信息。

分段调试代码

AVRStudio开发软件支持分段调试代码。

软件支持运行到断点,然后返回寄存器信息,并在此等待;也支持单步指令执行。

按F11进行单步指令执行。

现在我们按一次F11,注意到黄色的箭头指向LDITemp,0xFF这条指令,表明这条指令即将被执行。

再按一次F11,LDI指令执行完毕,黄色箭头指向OUT指令。

Temp寄存器的内容被赋值为0xFF(如果你观察R16寄存器,你会发现R16寄存器的内容也变成了0xFF,因为我们把Temp映射成R16了)。

再按一次F11,如图所示,DDRB寄存器的内容被赋值为0xFF。

在图中,一个白的方块表示0,黑的方块表示1。

DDRB被设置成高电平表示所有的PORTB位设置为输出。

再按一次F11,0xFF写入PORTB寄存器,黄色箭头指向DEC指令。

注意到PORTB寄存器内容是0xFF,但是PINB寄存器内容仍然是0x00。

再按一次F11,Temp的内容被减一,变成0xFE。

同时注意到PINB寄存器内容变成了0xFF。

用户可能变得非常疑惑,让我们来看芯片说明书中关于PORT的章节吧。

数据首先锁存在输出管脚上,在延迟一个时钟周期以后,管脚上的数据锁存到PIN寄存器中。

真如你所看到了,模拟仿真如实的反映了真实器件的工作步骤。

下一条指令是跳转指令,按一次F11,RJMP指令被执行,黄色箭头重新返回到OUTPORTB,Temp指令。

按一次F11,新的Temp值再次赋予PORTB寄存器。

一直按F11,你会发现PORTB寄存器的值可以一直递减到0x00,如果我连续运行程序,会有什么结果呢

完结。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2