实验一 系统认识实验
一、实验目的
1.掌握SICElab-G2200实验/仿真系统的结构与使用方法; 2.熟悉单片机系统开发软件WAVE6000。
二、实验设备
1.G2200/2100 实验平台 1 台 2.仿真器/ 仿真板 1 台 3.连线 若干 根 4.计算机 1 台
三、实验内容
P1端口接发光二极管,加1点亮。
四、连线方案:
实验箱内部已连好
五、实验步骤
1.连接Lab51CPU板。(已由实验师连好) 2.仿真器与实验平台的连接
将Lab51板的DC34芯插座与G6W仿真器上的DC34插座用扁平电缆连接起来。(已由实验师连好)
3.仿真器与计算机的连接
用随机配带的串口通讯电缆,将仿真器与计算机连接起来,串口1、串口2均可。
特别注意:在仿真器与计算机连接串口电缆时,两台机器必须都断电,否则易损坏计算机和仿真器。 4.实验连线
按连线方案,用随机配带的实验连线插入孔后, 轻轻转动一下锁紧插头, 保证良好接触。拆线时,应先回转一下,不要硬拨, 以免损坏线路板。 不管是拆线还是插线,都应在
断电的情况下进行。实验中“连线方案”的粗线即为需用户动手接连的线。
5.检查接线是否有误,确信没有接错后,接上电源,打开电源开关。 6.在计算机上打开“WAVE6000集成调试环境”,界面如下图所示:
7.建立新程序(如果程序已编好,直接跳到第9步)
选择菜单[文件 | 新建文件]功能。
出现一个文件名为NONAME1的源程序窗口,在此窗口中输入以下程序
ORG 0
MOV P1,#0 ;熄灭发光二极管 LOOP: INC P1 CALL Delay SJMP LOOP
Delay: MOV R2,#3 ;延时程序 MOV R1,#0 MOV R0,#0 DLP: DJNZ R0,DLP DJNZ R1,DLP DJNZ R2,DLP RET END
8.保存程序
选择菜单[文件 | 保存文件]或[文件 | 另存为 ]功能。 给出文件所要保存的位置,例如:C:\\WAVE6000\\SAMPLES文件夹,再给出文件名MY1.ASM。保存文件。文件保存后,程序窗口上文件名变成了:C:\\WAVE6000\\SAMPLES\\MY1.ASM
保存文件所在路径 文件名,后缀为ASM
9.建立新的项目
选择菜单[文件 | 新建项目]功能。 新建项目会自动分三步走。
(1)加入模块文件。在加入模块文 件的对话框中选择刚才保存的文件MY1.ASM,按打开键。如果你是多模块项目,可以同时选择多个文件再打开。
(2)加入包含文件。在加入包含文件对话框中,选择所要加入的包含文件(可多选)。如果没有包含文件,按取消键。
(3)保存项目。在保存项目对话框中输入项目名称。MY1无须加后缀。软件会自动将后缀设成“.PRJ”。按保存键将项目存在与你的源程序相同的文件夹下。
项目保存好后,如果项目窗口是打开的,可以看到项目中的“模块文件”已有一个模块“MY1.ASM”,如果项目窗口没有
打开,可以选择菜单[窗口 | 项目窗口]功能来打开。
10.设置项目
选择菜单[设置 | 仿真器设置]或双击项目窗口的第一行来打开“仿真器设置”对话框。在“仿真器”栏中,选择仿真器类型和配置的仿真头以及所要仿真的单片机。在“语言”栏中,“编译器选择”根据本例的程序选择为“伟福汇编器”。如果你的程序是C语言或INTEL格式的汇编语言,可根据你安装的Keil 编译器版本选择“Keil C”。在“通信设置”进行端口选择,并测试。按“好”键确定。
如果仿真器和仿真头设置正确,就会显示如图的硬件仿真确认对话框。按“好”键确定。即完成仿真器设置。
如果使用硬件环境,需取消选中标志
如果仿真器初始化过程中有错,软件就会再次出现仿真器设置对话框,这时你应检查仿真器等选择是否有错,检查纠正错误后,再次确认。直至显示硬件仿真确认对话框完成仿真器设置。
11.编译程序
选择菜单[项目 | 编译]功能或按编译快捷图标或按F9键,编译项目。
在编译过程中,如果有错可以在信息窗口中显示出来。双击错误信息,可以在源程序中定位所在行。纠正错误后,再次编译直到没有错误。在编译之前,软件会自动将项目和程序存盘。在编译没有错误后,就可以执行、调试程序了。
12.执行、调试程序
有四种方法执行程序:全速执行、程序单步跟踪、执行到光标处和设置断点。 (1)全速执行
点击[执行|全速执行] 或点击快捷按钮 按图所示方式执行程序,观察结果(直接从实验箱观察或参见12(5)),如果程序与预想的结果不符,可按以下三种方式调试程序。 (2)程序单步跟踪
选择[执行 | 跟踪]功能或按跟踪快捷图
跟踪快捷键 当前程序指针 标或按F7键进行单步跟踪调试程序。
单步跟踪就一条指令一条指令地执行程有效程序行 序,若有子程序调用,也会跟踪到子程序中去。你可以观察程序每步执行的结果,“=>”所指的就是下次将要执行的指令。由于条件编译或高级语言优化的原因,不是所有的源程序都能产生机器指令。源程序窗口最左边的“o”代表此行为有效程序,即产生了可以执行的机器码。
到“Delay”延时子程序中,在程序行“DJNZ R0,DLP”指令中的“R0”符号上单击就可以观察“R0”的值,观察一下“R0”的值,可以看到“R0”在逐渐减少。因为当前指令要执行256次才到下一步,整个延时程序要单步执行3×256×256次才能完成。 (3)执行到光标处
将光标移到程序想要暂停的地方,本例中为延时程序返回后的“SJMP LOOP”行。选择菜单[执行 | 执行到光标处]或按F4键。程序全速执行到光标所在行。如果想下次不想单步调试“Delay”延时程序里的内容,可以按F8键单步执行但不会跟踪到子程序内部。
(4)设置断点
点击[执行|设置/取消断点]或用Ctrl+F8组合键设置断点。如果断点有效图标为“红圆红底”,无效断点的图标为“红圆绿底”。 断点设置好后,就可以用全速执行的功能,全速执行程序,当程序执行到断点时,会暂停下来,这时可以观察程序中各变量的值,及各端口的状态,判断程序是否正确。 (5)观察各变量值的方法
A. 点击[窗口|项目窗口]或[窗口|CPU窗口]可观察到SFR、REG、WATCH(如果设置有观察项)的值,自动跟踪程序执行。
例如点击SFR中的P1可观察本例中P1口各位的变化,如图所示。
B.点击[窗口|数据窗口|DATA] 可观察片内数据区的变化。 C.点击[窗口|数据窗口|CODE]可观察代码存储区的内容。
D.点击[窗口|数据窗口|XDATA] 可观察片外数据区的变化。(与CODE是同一个窗口,注意:有切换按钮,突起的为有效。)
E.点击[窗口|数据窗口|BIT] 可观察片内数据区中位数据区的变化。
六、思考题
1.改写实验程序实现流水灯功能。写出源程序。
2.在执行调试程序过程中,遇到了哪些问题?你是如何解决的?