广州大学学生实验报告 开课学院及实验室:计算机科学与教育软件学院软件工程室 2015 年 11 月 10 日 学院 计算机科学与教育软件学院 年级/专业专业/ 班 姓名 学号 实验课程名称实验课程名称 单片机原理与接口技术实验 成绩 实验项目名称实验项目名称 实验一: 系统认识实验 指导老师 一、 实验目的 1.掌握实验系统的使用方法。 2.掌握集成调试软件的操作与程序调试方法。 3.熟悉单片机指令系统,掌握在单片机开发系统上调试和执行程序的过程。 二、 实验设备 安装了 wave6000 的 Windows2003 系统的计算机 三、 实验内容 使用 wave6000 实现清零(为方便观察,将 0 改为 0x99) 四、 实验步骤 步骤 1.按要求进行实验系统的联接与启动。 用配套的串行通讯电缆联接实验系统上的“仿真器串口”和计算机串行口。 将实验系统的电源线与220V 电源相连(实验结束后应拔下)。打开实验系统电源开关,红色电源指示灯亮。仿真器初始化成功后,数码管会显示8051,表示仿真系统正常。 步骤 2.执行 WAVE 集成调试软件。 进入开发环境界面(见上图)后,在“仿真器”下拉菜单,选择“仿真器设置”项。 在弹出的“仿真器设置”窗口中,应作设置如下:  在“语言”标签窗口下, “编译器路径”为“C:\COMP86\”; “ASM命令行”勾选“使用伟福预定义符号”项; “编译器选择”点选“伟福汇编器”项; “缺省显示格式”点选“混合十、十六进制”项。  在“目标文件”标签窗口下,勾选: “缺省地址(由编译结果确定)”; “生成HEX文件”; “置未用程序存储器为00H”。  在“仿真器”标签窗口: 选择仿真器:Lab6000 通用微控制器实验系统; 选择仿真头:MCS51 实验; 选择CPU:8031/32; 去掉“使用伟福软件模拟器”选项。  在“通信设置”标签窗口,按实验系统与计算机的实际连接串口点选“端口选择”。步骤3.执行“建新文件”命令,在开发环境程序窗口中按汇编语言格式逐行输入汇编 语言源程序,并进行编辑。将程序文件名取为s1.c保存。 xdata unsigned char Buffer[256] _at_ 0x4000; void main() { unsigned int index; unsigned char xdata * ptr; ptr = &Buffer; // 起始地址 for (index = 0; index <= 255; index++) { *ptr++ = 0; // 清0, 地址加一 } } 步骤 4.执行“文件”下拉菜单中,执行“新建项目”命令,建立新项目。 在弹出的“加入模块文件”窗口,确定实验程序所在路径,选择实验源程序,并“打开”。 在弹出的“加入包含文件”窗口,选择“取消”。 在弹出的“保存项目”窗口,建立项目文件名,选择“保存”。项目文件名一般与程序名同。 完成以上新建项目后,窗口的“模块文件”项下,应有实验源程序一项。 步骤 5.执行“项目”下拉菜单中, 执行“编译”命令,对输入的源程序进行编译。 步骤 6.在“窗口”下拉菜单中, (1)执行“项目窗口——SFR”命令,观察特殊功能寄存器值的变化。 (2)执行“CPU 窗口”命令,观察相应寄存器值的变化。 (3)执行“数据窗口——DATA”命令, 按下表设置单片机内部 RAM 相应单元的值,并观察这些单元在程序执行过程中的变化。 存储单元及数据 运行结果 单元 50H 51H 52H 53H 54H 55H R3 R4 数据 54H F6H 39H 20H 04H B2H 以上窗口命令也可用相应的工具按钮实现。 步骤 7.在“执行”下拉菜单中,执行相应命令,或利用工具按钮,或利用快捷键, 运行调试程序: (1)全速执行——运行程序。 (2)跟踪——跟踪程序执行的每步,观察程序运行状态及结果。 (3)单步——单步执行程序。与“跟踪”不同的是,“跟踪”可以跟踪到函数(子程序)或过程的内部,而“单步”执行则不跟踪到程序内部。 (4)执行到光标处——程序从当前 PC 位置,全速执行到程序窗口中光标所在的行。如果光标所在行没有可执行代码,则提示“这行没有代码”。 (5)暂停——暂停正在全速执行的程序。 (6)复位——终止调试过程,将系统复位。如果程序正在全速执行,则应先执行“暂停”。 (7)设置 PC——将程序指针 PC,设置到程序窗口中光标所在行。程序将从光标所在行开始执行。 (8)自动单步跟踪/单步——模仿用户连续执行“跟踪”或“单步”命令来运行程序。 (9)在程序的适当位置,设置断点,全速执行程序到断点处,观察程序运行到断点时的运行结果。 有四种方法,可以在程序窗口光标所在的行处设置断点 1)将光标移到程序窗口内,行左边的空白处,光标变成“手指圆”箭头,单击鼠标左键, 可以设置/取消断点。 2)使用 Ctrl-F8 快捷键,可以在光标所在行设置/取消断点。 3)右击鼠标,在弹出的菜单中,选择“设置/取消断点”。 4)主菜单“执行”下拉菜单中,选择“设置/取消断点”。 步骤 8.记录程序运行结果。 五、 实验结果与分析 跟预期结果一直,从 4000h 开始的三个值均被改为了 99。 六、 实验心得 实验操作难度并不大,主要是软件的安装老是会出现问题,导致一些功能无法实现,所以实验只能在实验室完成。其余的主要是:用 c 语言来编制的话,有些时候会找不到修改的地址,采用汇编一般不会出现这种情况。 七、实验习题 1.通过程序调试,分析程序完成什么功能? 答:主要是将一个数值(0x99)放入到一个地址,来覆盖原来的数值。 2.说明若程序处理的数据不是 6 个,应修改程序的哪部分? 答:首先要在定义处修改,例:Buffer【X】,修改 X 值,然后在循环处修改,index