单片机实验一的实验报告
单片机实验报告 单片机实验报告是使用 Keil uVision5 开发环境和单片机汇编语言和 C 语言源程序编辑、编译、调试方式方法的实验报告。实验目的通过掌握 Keil uVision5 开发环境和单片机汇编语言和 C 语言源程序编辑、编译、调试方式方法,熟悉单片机汇编语言指令,掌握单片机内外存储器间数据传送的方法,用汇编语言和 C 语言编程实现单片机内外存储器存储数据。 一、实验目的 通过本次实验掌握 Keil uVision5 开发环境和单片机汇编语言和 C 语言源程序编辑、编译、调试方式方法,熟悉单片机汇编语言指令,掌握单片机内外存储器间数据传送的方法,用汇编语言和 C 语言编程实现单片机内外存储器存储数据。 二、实验原理 实验原理图如图 2-1 所示,图 2-2 片内数据区数据初始化子程序框图,图 2-3 片内数据传送到片外数据区子程序框图。 三、实验方案 (1)使用指针传送数据 使用指针传送数据的原理图如图 3-1 所示。设计思想首先用指针定位内部数据存储器和外部数据存储器,然后将指向内部数据存储器的指针初始化为 30H,指向外部数据存储器的指针初始化为 3000H,接着利用 for 循环将数据存储到内部数据存储器相应的地址中以及将内部数据存储器的数据通过指针的方式传输到外部数据存储器相应的地址中,最后将外部数据存储器中的数据传送给 P1 口。 实现步骤: 第一步:初始化指向内部数据存储器和外部数据存储器的指针 第二步:定义指针的变量 30H 和 3000H 第三步:使用 for 循环将数据 01H~10H 一一对应传送到 30H~3FH 第四步:将指向内部数据存储器的指针的变量复原为 30H 第五步:使用 for 循环将内部的数据赋值给对应的外部数据存储器中 第六步:将指向外部数据存储器的指针的变量复原为 3000H 第七步:将外部数据存储器中的数据传送给 P1 口 (2)使用 C51 运行库中预定宏 使用 C51 运行库中预定宏的原理图如图 3-2 所示。设计思想首先用 C51 有的预定宏对内部数据存储器和外部数据存储器进行初始化,然后用 for 循环给内部数据存储器赋值,接着将内部数据存储器的值赋给外部数据存储器,最后外部数据存储器的值传给 P1 口。 实现步骤: 第一步:输入预处理命令#include<absacc.h>,调用 absacc.h 头文件,后面就可以调用预定宏 第二步:利用定义宏对内部数据存储器和外部数据存储器进行初始化定义 第三步:使用 for 循环对内部数据存储器进行赋值 第四步:使用 for 循环将内部数据存储器的值赋给外部数据存储器 第五步:使用 for 循环将外部数据存储器的值传送给 P1 口 四、调试过程及实验结果 (1)使用指针传送数据 调试过程如图 4-1 所示,将代码编译完成后进入调试界面。可以按 step 按钮进行单步调试,也可以按 run 按钮让程序连贯运行。 调试结果如图 4-2 所示,在 Memory 的 Address 搜索框中输入 i:30H 就可以观察内部数据存储器30H~3FH 的数据从 01H~10H。通过单步调试可以看出,进入第一个 for 循环后,指针指向片内数据存储器的地址 30H 输入数据 01,然后指针+1 指向片内数据存储器的地址 31H 输入的数据也+1 也就是 02,直到输入的数据长度达到 16 结束。 (2)使用 C51 运行库中预定宏 调试过程如图 4-5 所示,将代码编译完成后进入调试界面。可以按 step 按钮进行单步调试,也可以按 run 按钮让程序连贯运行。 调试结果如图 4-6 所示,在 Memory 的 Address 搜索框中输入 i:30H 就可以观察内部数据存储器30H~3FH 的数据从 01H~10H。定义宏的传输方式与 C 语言的数组类似,通过单步调试可以看出,当第一个 for 循环进行后,从 0x30 开始传入 01,然后 i++,内部数据存储器的地址+1 也就是 31H,传送的数据也+1,也就是 02,直到输入的数据长度达到 16 结束。 本次实验报告通过使用 Keil uVision5 开发环境和单片机汇编语言和 C 语言源程序编辑、编译、调试方式方法,掌握了单片机内外存储器间数据传送的方法,用汇编语言和 C 语言编程实现单片机内外存储器存储数据。
- 粉丝: 40
- 资源: 6
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Java聊天室程序(java)130226.zip
- 运用SVG实现多个圆弧段旋转动画实例
- NC料号 明细(全量+成品+MOM料号).xlsx
- protoc-gen-go-grpc
- 高分项目,PID-温控类-51单片机温度PID控制程序(源代码+温控1602显示)
- Go语言网络层脚手架.rar
- 面向智慧内生的6G全服务化架构探讨.pptx
- 一键搞定!CloudflareDns记录批量删除助手(如何批量删除Cloudflare的DNS记录,支持多条件删除).zip
- 基于Java+mysql 实现的食品公司管理系统(进销存)课程设计(课程设计报告+报告PPT+源码)
- 大创项目-中医药知识图谱构建.rar