广州大学学生实验报告开课学院及实验室:计算机科学与教育软件学院软件工程室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保存。xdataunsignedcharBuffer[256]_at_0x4000;voidmain(){unsignedintindex;unsignedcharxdata*ptr;ptr=&Buffer;//起始地址for(index=0;index=255;index++){*ptr++=0;//清0,地址加一}}步骤4.执行“文件”下拉菜单中,执行“新建项目”命令,建立新项目。在弹出的“加入模块文件”窗口,确定实验程序所在路径,选择实验源程序,并“打开”。在弹出的“加入包含文件”窗口,选择“取消”。在弹出的“保存项目”窗口,建立项目文件名,选择“保存”。项目文件名一般与程序名同。完成以上新建项目后,窗口的“模块文件”项下,应有实验源程序一项。步骤5.执行“项目”下拉菜单中,执行“编译”命令,对输入的源程序进行编译。步骤6.在“窗口”下拉菜单中,(1)执行“项目窗口——SFR”命令,观察特殊功能寄存器值的变化。(2)执行“CPU窗口”命令,观察相应寄存器值的变化。(3)执行“数据窗口——DATA”命令,按下表设置单片机内部RAM相应单元的值,并观察这些单元在程序执行过程中的变化。存储单元及数据运行结果单元50H51H52H53H54H55HR3R4数据54HF6H39H20H04HB2H以上窗口命令也可用相应的工具按钮实现。步骤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值,然后在循环处修改,indexX-1,(从0开始算起)。3.说明若存放数据的单元地址变化,应修改程序哪部分?答:应该修改定义部分,例:“Buffer【3】_at_0x4000;”,修改“0X4000”.