avr单片机实验-avr单片机实验报告三.docxVIP

avr单片机实验-avr单片机实验报告三.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
AVR单片机试验报告实验目的:学习应用AVRStudio软件调试汇编程序2.实验要求: 1)主程序中一定要初始化堆栈指针 2)求绝对值、代码转换、延时采用子程序调用的方式 4)调试方法:单步执行(Step Into)、单步越过子程序(Step Over)、跳出子程序(Step Out)、设断点执行、运行到光标处等 5)观察:寄存器(Register)窗口、存储器(Memory)窗口、处理器(Processor)窗口。留意每条指令执行后PC值、运行时间、相关寄存器或存储器的内容,特别注意调用子程序及子程序返回时PC、SP及堆栈区的内容。(数码管显示实验中,Proteus电路图应与实验板接线一致,以便对比)3.源程序要求:(1)把Flash中地址为0x003开始的20个字单元内的代码作为20个16位二进制符号数,将它们分别取绝对值后存储到SRAM中,要求低字节在前,高字节在后。.INCLUDEM8DEF.INC.ORG 0X0003TAB:.DW-131,-432,-112,-314,-332,-562,-776,-612,-365,-203,-678,-11,23,31,-51,-4,-9,-7,-5,-3,1;先存入符号数,调试用.ORG 0X002AMAIN:LDI R16,LOW(RAMEND)OUT SPL,R16LDI R16,HIGH(RAMEND)OUT SPH,R16//设置堆栈指针LDI ZL,0X06LDI ZH,0X00LDI XL,0X60LDI XH,0X00//设置XZ指针初始位置A:LPM R16,Z+LPM R17,Z+MOV R18,R17LSL R18BRCS B//判断正负D:ST X+,R16ST X+,R17//存入数据到SRAM(0X60)中CPI R30,0X2E//判断20字单元是否完成扫描BRNE AHERE:RJMP HERE//停止扫描B: RCALL C//调用子程序RJMP D//返回DC:COM R16COM R17LDI R18,1ADD R16,R18CLR R18ADC R17,R18//取绝对值...另一种方法:SUBI R16,1;SBCI R17,0;COM R16;COM R17RET.EXIT(2)设SRAM中有个起始地址为$0061的数据块(块长放在$0060单元),数据块内每个存储单元含有两个十六进制数(高4位和低4位),试分别求出这些十六进制数的ASCII码,放在SRAM中以$0163为起始地址的存储区,要求低4位数的ASCII码在前,高4位数的ASCII码在后。.INCLUDEM8DEF.INC.SET HEX=0X0061.SET ASC=0X0163.SET LEN=0X0060.ORG$000RJMP MAIN.ORG 0X002AMAIN:LDI XL,LOW(HEX)LDI XH,HIGH(HEX)//初始化X指针LDI YL,LOW(ASC)LDI YH,HIGH(ASC)//初始化Y指针LDI R16,0X10STS LEN,R16LDI R16,0X0FA:ST X+,R16INC R16CPI R16,0X1FBRNE A //调试,定义块长,数据量LDI XL,LOW(HEX)LDI XH,HIGH(HEX)//初始化X指针LDS R20,LENLDI R16,HEXADD R20,R16//计算块长终止位置LOOP:LDI ZL,LOW(ASCTAB*2)LDI ZH,HIGH(ASCTAB*2)//初始化Z指针LD R16,X+MOV R17,R16ANDI R16,0B1111ADD ZL,R16CLR R16ADC ZH,R16LPM R16,ZST Y+,R16//低四位转化为ASCⅡ并且存入Y指针相应位置LDI ZL,LOW(ASCTAB*2)LDI ZH,HIGH(ASCTAB*2)//初始化Z指针SWAP R17ANDI R17,0B1111ADD ZL,R17CLR R17ADC ZH,R17LPM R17,ZST Y+,R17//高四位转化为ASCⅡ并且存入Y指针相应位置CP XL,R20//循环条件BRNE LOOPHERE:RJMP HEREASCTAB:.DB$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$41,$42,$43,$44,$45,$46(3)指令应用课件例子中如将“求最大值”改为“求最小值”(分别考虑符号数和无符号数),程序如何修改?/*无符号数取最小值*/.INCLUDEM8DEF.INC.SET LEN=$0061.SET ADDR=$0062.SET MAX=$0060.ORG $000

文档评论(0)

1243595614 + 关注
实名认证
文档贡献者

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档