单片机软件实验报告.docxVIP

  1. 1、本文档共47页,可阅读全部内容。
  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文档。上传文档
查看更多
\ 实验一 内存操作 实验目的 ① 掌握数据传送指令; ② 掌握各种数据传送指令的寻址方式; ③ 熟练运用 keil 环境对汇编程序进行调试; ④ 掌握数据传送、复制等程序的设计与调试方法。 预习要求 ① ② ③ ④  理解数据传送指令和循环指令的使用; 理解如何对内部寄存器、内部 RAM 、外部 XRAM (外部数据存储器)的读写; 理解各种寻址方式,尤其是较为抽象的变址寻址及相对寻址的方式; 认真预习本实验内容,自行编写程序,填写实验报告。 实验设备 计算机 1 台; 4.基础型实验内容 : 下列程序的功能是给外部 XRAM 8000H ~ 80FFH 的 256 个单元的内容赋值,赋值的内容取决于程序中 A 的赋值。 在 Keil 环境运行该程序, 并观察寄存器及内存单元的变化。 ORG 0000H START EQU 8000H; MAIN: MOV DPTR,#START; ;起始地址 MOV R0,#0H; ;设置 256 字节计数值 MOV A,#1H; Loop: MOVX @DPTR,A; INC DPTR; ;指向下一个地址 DJNZ R0,Loop; ;计数值减 1 NOP; SJMP $; END 寄存器 A 为 1H, DPTR 递增到 8100H ,奇偶校验位由于 A 的内容是 1H,所以 p 也是 1. 2. 下列程序将外部 XRAM 3000H起始的 256 个字节存储块移动到外部 XRAM 4000H起始的 256 个字节存储块,在 Keil 环境运行如下程序,观察寄存器及存储单元的变化。 ORG 0000H MOV DPTR,#3000H MOV A,#01H MOV R5,#0H LOOP: MOVX @DPTR,A INC DPTR DJNZ R5,LOOP MOV R0,#30H MOV R1,#00H MOV R2,#40H MOV R3,#00H MOV R7,#0H LOOP1:MOV DPH,R0 MOV DPL,R1 MOVX A,@DPTR MOV DPH,R2 MOV DPL,R3 MOVX @DPTR,A INC R1 INC R3 DJNZ R7,LOOP1 SJMP $ END 实现了将 3000H 开始的 256 个单元的内容复制到以 4000H 开 头的外部 RAM 存储单元中。 R0 的值为 最大值亦为  30H;R2 的值变为 40H;寄存器 A 中赋值为 1H,对栈指针 07H ,DPTR 中最后递增到 40ffH , psw 中只有奇偶校验位  sp 初始化为 07H ,其 p 是 1H 3 在 Keil 环境运行如下程序,观察寄存器及内存单元的变化,将变化结果注释于右侧,并 说明程序完成什么功能?将程序中 MOV A,@R0 改成 MOVX 改成 MOVX @R1,A ,运行如下程序,观察寄存器及相应地址 内容的变化。  A,@R0 ,将 MOV @R1,A RAM 、XRAM 地址单元存储 1. ORG 0000H; 程序从 000H 开始 MOV R0,#30H; MOV R1,#50H MOV R2,#20H L1: MOV A,@R0 MOV @R1,A INC R0 INC R1 DJNZ R2,L1 SJMP $ END R0 的值递增到 50H, R1 的值递增到 70H ,A 中的值是 4FH 中的值,即 FFH( 程序运行前自己设定的 ) 该程序将内部 RAM 30H 开始的连续 20H 个存储单元中的内容复制到内部 RAM 50H 开始的连续 20H 个存储单元中。其中 30H 到 4FH 中的值在程序运行前自定 义。 2. 将程序中 MOV A,@R0 改成 MOVX A,@R0 ,将 MOV @R1,A 改成 MOVX @R1,A ORG 0000H MOV R0,#30H MOV R1,#50H MOV R2,#20H L1: MOVX A,@R0 MOVX @R1,A INC R0 INC R1 DJNZ R2,L1 SJMP $ END 寄存器 A 中的数值没有发生过任何变化, R0 和 R1 同未改变前一样, 一直递增到 50H 和 70H 虽然设定了外部  RAM 30H  到 4FH  中的值,但是并没有复制到  50H  到  6FH  存储单元中。 原因是初始化后P口都为#FFH,而使用  MOVX A  ,@Ri 要 求 P 2 口 为 # 0 0 H , 所 以 只 要 在 程 序 前 加 MOV P2,#00H 就能实现和原来一样的功能了 5.设计型实验 ① 在  keil  环境下,修改内部  RAM30H  ~ 3FH 的内容分别为

文档评论(0)

微传科技 + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体唐山市微传科技有限公司
IP属地河北
统一社会信用代码/组织机构代码
91130281MA0DTHX11W

1亿VIP精品文档

相关文档