AVR单片机汇编语言编程实验报告.pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

AVR单片机汇编语言编程实验

学院:自动化专业:测控技术与仪器

一、实验名称:

AVR单片机汇编语言编程实验

二、实验目的:

熟悉并掌握AVR单片机指令系统、汇编语言常用伪指令,掌握单片机汇编语言编程

技术,编程实现指定功能,加深对计算机汇编指令的理解。

三、实验仪器:

计算机,VMware,Windows7虚拟机,AtmelStudio开发环境,Proteus仿真开发环

四、实验内容、实验过程及结果分析:

1.Flash单元赋值

创建汇编语言工程,目标机型选为Mega128。使用汇编语言伪指令进行编

程,

将下述32字节的常数数据存入首地址为$0160的连续flash存储单元照片中。数

据如下:

0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07

0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x7;

0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8

0x80,0x90,0x88,0x83,0xc6,0xa,0x86,0x8e;

前后16字节分别是字符0-F对应的共阴极和共阳极LED数码管的字形显

示段码。随后使用IDE自带的调试工具,进入debug调试。在调试过程中,在

Flash存储器映像中查找上述存入的数据块所对应的地址,记录Flash存储器映

像。

图1.1.0

如图1所示,数据3f的首地址为$002C0的内存单元中,为$的二倍,因此说

明数据成功存入该段存储单元

2.DATARAM内存块赋值

使用汇编语言指令,将上述存储在Flash中的32个字节单元的数据块依

次赋值给起始地址为$0230的SRAM内存块的相应内存单元,流程如图2.1.0

所示。

图2.1.0

寄存器初始状态如图2.2.0所示。将Z指针指向先前第一位数据的首地址,

并进行一个次数为16的循环,通过LPM指令将储存在Flash中16字节的数据拷

贝至起始地址为$0230的内存单元中,如图2.2.1所示,数据存储状态如2.2.3

所示。

图2.2.0图2.2.1

图2.2.3

R20寄存器状态

3.DATARAM内存块复制

使用汇编语言指令,将上述SRAM内存中起始地址为$0230的32个字节的数

据块整体复制到起始地址为$0320的内存块中,流程如图3.1.0所示。

图3.1.0

首先将X指针指向数据起始地址$0230,将Y指针指向地址$0320,寄存器状

态如图3.2.1所示。随后进行一个次数为16的循环,通过LD与ST指令,将上

述实验数据赋值至首地址为$032的存储单元中,寄存器状态去3.2.2所示,数

据存储状态如3.2.3所示。

图3.2.1图3.2.2

图3.2.3

5.500ms延时流水灯

在AtmelStudio中创建汇编语言工程,使用汇编语言编程,编译链接后,

将HEX文件下载至Proteus中的目标单片机中,驱动PORTA端口上的发光二

极管实现流水灯显示效果(8个发光二极管轮流点亮);观察程序运行效果,记

录流水灯相邻灯的点亮时间间隔;修改延时子程序,计算延时时间,实现流水灯

间隔500ms依次点亮,程序流

文档评论(0)

各类考试卷精编 + 关注
官方认证
内容提供者

各类考试卷、真题卷

认证主体社旗县兴中文具店(个体工商户)
IP属地河南
统一社会信用代码/组织机构代码
92411327MAD627N96D

1亿VIP精品文档

相关文档