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

  1. 1、本文档共6页,可阅读全部内容。
  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文档。上传文档
查看更多
实验二、指令系统及应用电气工程及其自动化2班李钦豪 18号源程序要求:把寄存器R0~R29置0xFF,把SRAM 0x60 ~ 0x6F单元清0,把0x70~0x7F单元置0xFF,0x80~0x8F单元分别设置为0~F。把SRAM地址为$0060开始的256个单元内容依次复制到地址为$0100开始的单元(注意两数据区有部分重叠)。把Flash中地址为0x003开始的10个字单元内容传送到SRAM(先低字节,后高字节)。用I/O引脚驱动若干个LED,编写跑马灯程序(画电路图、编程、调试、Proteus仿真、下载到实验板进行验证) 。实验要求:运用符号常数或变量,例如 LDI R16, LOW(data1);其中data1的具体数值用伪指令定义。主程序中一定要初始化堆栈指针。延时采用子程序调用的方式。调试方法:单步执行(Step Into)、单步越过子程序(Step Over)、跳出子程序(Step Out)、设断点执行、运行到光标处等。观察窗口:寄存器(Register)窗口、存储器(Memory)窗口、处理器(Processor)窗口。留意每条指令执行后PC值、运行时间、相关寄存器或存储器的内容,特别注意调用子程序及子程序返回时PC、SP及堆栈区的内容。实验源程序及调试结果1.;把寄存器R0~R29置0xFF.include m8def.incldi r29,0xff;r29先赋值0xffwrite_to_general_register:st Z+,r29;把r0~r28看成sram,将r29的内容写到r0~r29cpi r30,29;判断是否写到r28,是则跳出循环brne write_to_general_registerhere:rjmp here调试结果如下:;把SRAM 0x60 ~ 0x6F单元清0.include m8def.incldi r31,0ldi r30,0x60ldi r16,0write_to_sram1:st Z+,r16cpi r30,0x70brne write_to_sram1here:rjmp here调试结果如下:;把sram 0x70~0x7F单元置0xFF.include m8def.incldi r31,0ldi r30,0x70ldi r16,0xffwrite_to_sram2:st Z+,r16cpi r30,0x80brne write_to_sram2here:rjmp here调试结果如下:;把sram 0x80~0x8F单元分别设置为0~F.include m8def.incldi r31,0ldi r30,0x80ldi r16,0write_to_sram3:st Z+,r16inc r16cpi r30,0x90brne write_to_sram3here:rjmp here调试结果如下:2.;把SRAM地址为$0060开始的256个单元内容依次复制到地址为$0100开始的单元.include m8def.inc;先复制后面的数据,以防数据在未复制之前就被修改ldi r31,1ldi r30,$60ldi r29,2ldi r28,0ldi r17,0ldi r18,1sts $015f,r17st z,r18;便于查看,将最后的单元置0,将下一个单元置1copy:ld r16,-Zst -Y,r16add r17,r18;没有加立即数的指令,如果用inc指令不影响C位brcc copyhere:rjmp here调试结果如下:由调试结果可知,sram数据段的复制顺利完成,既没有少复制,也没有多复制。3.;把Flash中地址为0x003开始的10个字单元内容传送到SRAM(先低字节,后高字节).include m8def.incrjmp main.org $003.db 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20.equ flash_adr=$003.equ len=20.equ sram_adr=$60main:ldi zl,low(flash_adr*2)ldi zh,high(flash_adr*2)ldi yl,low(sram_adr)ldi yh,high(sram_adr)ldi r16,lenreadflash:lpm r0,z+st y+,r0dec r16brne readflashhere:rjmp here调试结果如下:4.;用I/O引脚驱动若干个LED,编写跑马灯程序.include m8def.incldi r16,$5fout spl,r16ldi r16,$04out sph,r16;堆栈要设置好,因为后面用到了子程序,如果没设置返回时会出错ldi r16,8ldi

文档评论(0)

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

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

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档