资源描述:
《单片机实验报告册.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、单片机实验报告册河南理工大学电气学院专业班级学号姓名8目录实验一 系统认识实验2实验二 程序调试7实验三外部中断实验9实验四串行口实验(基于PROTEUS软件)11实验五秒表实验15实验六电子钟综合实验208实验一 系统认识实验一、实验目的1.掌握SICElab-G2200实验/仿真系统的结构与使用方法;2.熟悉单片机系统开发软件WAVE6000。二、实验设备1.G2200/2100实验平台1台2.仿真器/仿真板1台3.连线若干根4.计算机1台三、实验内容P1端口接发光二极管,加1点亮。四、连线方案:实验箱内部已连好五、实验步骤1.连接Lab51CPU板。(已由实验师连好)2.仿
2、真器与实验平台的连接将Lab51板的DC34芯插座与G6W仿真器上的DC34插座用扁平电缆连接起来。(已由实验师连好)3.仿真器与计算机的连接用随机配带的串口通讯电缆,将仿真器与计算机连接起来,串口1、串口2均可。特别注意:在仿真器与计算机连接串口电缆时,两台机器必须都断电,否则易损坏计算机和仿真器。4.实验连线按连线方案,用随机配带的实验连线插入孔后,轻轻转动一下锁紧插头,保证良好接触。拆线时,应先回转一下,不要硬拨,以免损坏线路板。8不管是拆线还是插线,都应在断电的情况下进行。实验中“连线方案”的粗线即为需用户动手接连的线。5.检查接线是否有误,确信没有接错后,接上电源,打开
3、电源开关。6.在计算机上打开“WAVE6000集成调试环境”,界面如下图所示:7.建立新程序(如果程序已编好,直接跳到第9步)选择菜单[文件
4、新建文件]功能。出现一个文件名为NONAME1的源程序窗口,在此窗口中输入以下程序ORG0MOVP1,#0;熄灭发光二极管LOOP:INCP1CALLDelaySJMPLOOPDelay:MOVR2,#3;延时程序MOVR1,#0MOVR0,#0DLP:DJNZR0,DLPDJNZR1,DLPDJNZR2,DLPRETEND8.保存程序选择菜单[文件
5、保存文件]或[文件
6、另存为]功能。给出文件所要保存的位置,例如:C:WAVE6000S
7、AMPLES文件夹,再给出文件名MY1.ASM。保存文件。文件保存后,程序窗口上文件名变成了:C:WAVE6000SAMPLESMY1.ASM保存文件所在路径文件名,后缀为ASM89.建立新的项目选择菜单[文件
8、新建项目]功能。新建项目会自动分三步走。(1)加入模块文件。在加入模块文件的对话框中选择刚才保存的文件MY1.ASM,按打开键。如果你是多模块项目,可以同时选择多个文件再打开。(2)加入包含文件。在加入包含文件对话框中,选择所要加入的包含文件(可多选)。如果没有包含文件,按取消键。(3)保存项目。在保存项目对话框中输入项目名称。MY1无须加后缀。软件会自动将后缀设成
9、“.PRJ”。按保存键将项目存在与你的源程序相同的文件夹下。项目保存好后,如果项目窗口是打开的,可以看到项目中的“模块文件”已有一个模块“MY1.ASM”,如果项目窗口没有打开,可以选择菜单[窗口
10、项目窗口]功能来打开。10.设置项目如果使用硬件环境,需取消选中标志选择菜单[设置
11、仿真器设置]或双击项目窗口的第一行来打开“仿真器设置”对话框。在“仿真器”栏中,选择仿真器类型和配置的仿真头以及所要仿真的单片机。在“语言”栏中,“编译器选择”根据本例的程序选择为“伟福汇编器”。如果你的程序是C语言或INTEL格式的汇编语言,可根据你安装的Keil编译器版本选择“KeilC”。在“通信
12、设置”进行端口选择,并测试。按“好”键确定。如果仿真器和仿真头设置正确,就会显示如图的硬件仿真确认对话框。按“好”键确定。即完成仿真器设置。如果仿真器初始化过程中有错,软件就会再次出现仿真器设置对话框,这时你应检查仿真器等选择是否有错,检查纠正错误后,再次确认。直至显示硬件仿真确认对话框完成仿真器设置。811.编译程序选择菜单[项目
13、编译]功能或按编译快捷图标或按F9键,编译项目。在编译过程中,如果有错可以在信息窗口中显示出来。双击错误信息,可以在源程序中定位所在行。纠正错误后,再次编译直到没有错误。在编译之前,软件会自动将项目和程序存盘。在编译没有错误后,就可以执行、调试程序了
14、。12.执行、调试程序有四种方法执行程序:全速执行、程序单步跟踪、执行到光标处和设置断点。(1)全速执行点击[执行
15、全速执行]或点击快捷按钮跟踪快捷键当前程序指针有效程序行按图所示方式执行程序,观察结果(直接从实验箱观察或参见12(5)),如果程序与预想的结果不符,可按以下三种方式调试程序。(2)程序单步跟踪选择[执行
16、跟踪]功能或按跟踪快捷图标或按F7键进行单步跟踪调试程序。单步跟踪就一条指令一条指令地执行程序,若有子程序调用,也会跟踪到子程序中去。你可以观察程序每步执行的结果