单片机导论实验讲义.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一章 单片机软件实验 实验一内存操作 实验目的 掌握数据传送指令; 掌握各种数据传送指令的寻址方式; 熟练运用keil环境对汇编程序进行调试; 掌握数据传送、复制等程序的设计与调试方法。 预习要求 理解数据传送指令和循环指令的使用; 理解如何对内部寄存器、内部 RAM、外部RAM的读写; 理解各种寻址方式,尤其是较为抽象的变址寻址及相对寻址的方式; 认真预习本实验内容,自行编写程序,填写实验报告。 实验设备 计算机 1台; 基础型实验内容 ① 下列程序的功能是给外部 RAM8000?80FFH的256个单元的内容赋值,赋值的内 容取决于程序中 A的赋值。在Keil环境运行该程序,并观察寄存器及内存单元的 变化。 ;起始地址 ;起始地址 ;设置256字节计数值 ORG 0000H START EQU 8000H MAIN: MOV DPTR , #START MOV RO , #0 MOV A , #1H Loop: MOVX @DPTR, A INC DPTR ;指向下一个地址 DJNZ RO , Loop ;计数值减 1 NOP SJMP $ END ② 下列程序将3000H起始的256个字节存储块移动到 4000H起始的256个字节存储块, 在Keil环境运行如下程序,观察寄存器及存储单元的变化。 ORG 0000H MOV DPTR,#3000H MOV A,#01H MOV R5,#O LOOP: MOVX @DPTR,A INC DPTR DJNZ R5,LOOP TOC \o 1-5 \h \z MOV R0 ,#30H MOV R1 ,#00H MOV R2 ,#40H MOV R3 ,#00H MOV R7 ,#0 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 设计型实验内容 在keil环境修改内部 RAM 30H?3FH的内容分别为#OOH-#OFH,设计程序实现将内 部RAM30H-3FH到40H-4FH的数据块拷贝。 在keil环境修改内部 RAM 30H?3FH的内容分别为#OOH-#OFH,设计程序实现将片 内30H?3FH单元的内容复制到片外 1030H?103FH中。 在keil环境修改内部 RAM 30H?3FH的内容分别为#OOH-#OFH,设计程序实现将内 部RAM30H?3FH内容逆序拷贝到外部数据 XRAM 0000H?000FH中。使用单步、 断点方式调试程序,查看特殊功能寄存器、内部数据 RAM外部数据空间的变化。 实验二数制及代码转换 实验目的 了解微机系统中的数制与代码表示方法; 掌握计算机中使用的各种代码转换方法; 掌握实现分支、循环的指令及其程序的编写方法; 预习要求 理解十进制数、十六进制数的数制表示方法; 理解BCD码、ASCII码编码方式; 如何实现十六进制数与 BCD码之间的转换; 如何实现ASCII码与BCD码之间的转换。 实验设备 计算机 1台。 基础型实验内容 以下程序完成单字节的 ASCII码到十六进制数转换,完成空白处程序填写,并在 Keil环境运行程序,观察寄存器及内存单元的变化。 RESULT EQU 30H ORG 0000H MOV A,#41H ; “A” 的 ASCII 码 CLR C SUBB A, - 转换为十六进制值 A MOV RESULT, A LJMP $ END 以下程序完成单字节的 BCD码到十六进制数转换,,在Keil环境运行程序,观察寄 存器及内存单元的变化。 RESULT EQU 30H ORG 0000H MOV A,#23H MOV R0,A ANL A,#0F0H SWAP A MOV B ,#0AH MUL AB MOV RESULT ,A ; 转换高位 MOV A , RO MOV B ,#0FH ADD A,RESULT MOV RESULT,A ; 转换低位 SJMP $ END 以下程序将单字节十六进制数 A的值转换为十进制数,存放在 30H?32H中,完成 空白处程序填写,并在 Keil环境运行程序,观察寄存器及内存单元的变化。 RESULT EQU 30H ORG 0000H MOV A , #7BH MOV B , # DIV AB MOV RESULT , A ; 除以100得百位数 MOV A , B MOV B , # MOV RESULT+1 , A ; 除以10得十位数 MOV RESULT+2 , B ; 余数为个位数 SJMP $ END 设计型实验内容 设一串字母的ASCII存

文档评论(0)

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

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

1亿VIP精品文档

相关文档