1、MINRES100R100欧姆电阻3LED-GREEN绿色发光二极管4POWER电源2在计算机上打开“WAVE6000集成调试环境”,界面如下图所示:3建立新程序(如果程序已编好,直接跳到第5步)选择菜单文件 | 新建文件功能。出现一个文件名为NONAME1的源程序窗口,在此窗口中输入以下程序ORG 0 MOV P1,#0 ;熄灭发光二极管LOOP: INC P1 CALL Delay SJMP LOOPDelay: MOV R2,#3 ;延时程序 MOV R1,#0 MOV R0,#0DLP: DJNZ R0,DLP DJNZ R1,DLP DJNZ R2,DLP RET END4保存程序选
2、择菜单文件 | 保存文件或文件 | 另存为 功能。给出文件所要保存的位置,例如:C:WAVE6000SAMPLES文件夹,再给出文件名MY1.ASM。保存文件。文件保存后,程序窗口上文件名变成了:WAVE6000SAMPLESMY1.ASM5建立新的项目选择菜单文件 | 新建项目功能。 新建项目会自动分三步走。(1)加入模块文件。在加入模块文 件的对话框中选择刚才保存的文件MY1.ASM,按打开键。如果你是多模块项目,可以同时选择多个文件再打开。(2)加入包含文件。在加入包含文件对话框中,选择所要加入的包含文件(可多选)。如果没有包含文件,按取消键。(3)保存项目。在保存项目对话框中输入项目名
3、称。MY1无须加后缀。软件会自动将后缀设成“.PRJ”。按保存键将项目存在与你的源程序相同的文件夹下。项目保存好后,如果项目窗口是打开的,可以看到项目中的“模块文件”已有一个模块“MY1.ASM”,如果项目窗口没有打开,可以选择菜单窗口 | 项目窗口功能来打开。6设置项目选择菜单设置 | 仿真器设置或双击项目窗口的第一行来打开“仿真器设置”对话框。在“仿真器”栏中,选择仿真器类型和配置的仿真头以及所要仿真的单片机。在“语言”栏中,“编译器选择”根据本例的程序选择为“伟福汇编器”。如果你的程序是C语言或INTEL格式的汇编语言,可根据你安装的Keil 编译器版本选择“Keil C”。在“通信设置
4、”进行端口选择,并测试。按“好”键确定。如果仿真器和仿真头设置正确,就会显示如图的硬件仿真确认对话框。即完成仿真器设置。如果仿真器初始化过程中有错,软件就会再次出现仿真器设置对话框,这时你应检查仿真器等选择是否有错,检查纠正错误后,再次确认。直至显示硬件仿真确认对话框完成仿真器设置。7编译程序选择菜单项目 | 编译功能或按编译快捷图标或按F9键,编译项目。在编译过程中,如果有错可以在信息窗口中显示出来。双击错误信息,可以在源程序中定位所在行。纠正错误后,再次编译直到没有错误。在编译之前,软件会自动将项目和程序存盘。在编译没有错误后,就可以执行、调试程序了。8执行、调试程序有四种方法执行程序:全
5、速执行、程序单步跟踪、执行到光标处和设置断点。(1)全速执行按图所示方式执行程序,观察结果(直接从实验箱观察或参见12(5),如果程序与预想的结果不符,可按以下三种方式调试程序。(2)程序单步跟踪选择执行 | 跟踪功能或按跟踪快捷图标或按F7键进行单步跟踪调试程序。单步跟踪就一条指令一条指令地执行程序,若有子程序调用,也会跟踪到子程序中去。你可以观察程序每步执行的结果,“=”所指的就是下次将要执行的指令。由于条件编译或高级语言优化的原因,不是所有的源程序都能产生机器指令。源程序窗口最左边的“o”代表此行为有效程序,即产生了可以执行的机器码。到“Delay”延时子程序中,在程序行“DJNZ R0
6、,DLP”指令中的“R0”符号上单击就可以观察“R0”的值,观察一下“R0”的值,可以看到“R0”在逐渐减少。因为当前指令要执行256次才到下一步,整个延时程序要单步执行3256256次才能完成。(3)执行到光标处将光标移到程序想要暂停的地方,本例中为延时程序返回后的“SJMP LOOP”行。选择菜单执行 | 执行到光标处或按F4键。程序全速执行到光标所在行。如果想下次不想单步调试“Delay”延时程序里的内容,可以按F8键单步执行但不会跟踪到子程序内部。(4)设置断点点击执行|设置/取消断点或用Ctrl+F8组合键设置断点。如果断点有效图标为“红圆红底”,无效断点的图标为“红圆绿底”。 断点
7、设置好后,就可以用全速执行的功能,全速执行程序,当程序执行到断点时,会暂停下来,这时可以观察程序中各变量的值,及各端口的状态,判断程序是否正确。(5)观察各变量值的方法A 点击窗口|项目窗口或窗口|CPU窗口可观察到SFR、REG、WATCH(如果设置有观察项)的值,自动跟踪程序执行。例如点击SFR中的P1可观察本例中P1口各位的变化,如图所示。B点击窗口|数据窗口|DATA 可观察片内数据区的变化。C点击窗口|数据窗口|CODE可观察代码存储区的内容。D点击窗口|数据窗口|XDATA 可观察片外数据区的变化。(与CODE是同一个窗口,注意:有切换按钮,突起的为有效。)E点击窗口|数据窗口|B
8、IT 可观察片内数据区中位数据区的变化。五、思考题1改写实验程序实现流水灯功能。写出源程序。2在执行调试程序过程中,遇到了哪些问题?你是如何解决的?教师签字 日 期 一、实验目的1学习WINDOWS平台下的编辑、编译、排错、调试方法。2学习修改和观察变量的方法;综合使用单步、断点调试的方法。3了解数据排序的简单算法。二、实验内容编写并调试一个排序子程序,其功能为用冒泡法将外部RAM(2040H2049H)中10个单字节无符号数,按从大到小的次序重新排列,并把结果放在外部RAM(2050H2059H)区域。三、实验器材安装了WAVE6000集成调试环境软件的计算机1台。四、实验说明本程序采用的是
9、“冒泡排序”法。算法是将一个数与后面的数相比较,如果比后面的数小,则交换,如此将所有的数比较一遍后,最小的数就会在数列的最后面。再进行下一轮比较,找出第二小数据,直到全部数据有序。五、程序框图(排序部分)六、实验步骤1打开WAVE6000调试环境,打开“仿真器设置”对话框,选择好仿真器,并选择使用伟福软件模拟器。2根据流程图编写程序,并编译通过。程序清单:ORG 0 LJMP 0030H ORG 0030HSTART:MOV DPTR, MOV R0,#40H MOV R7, LOOP0:MOVX A,DPTR MOV R0,A INC DPTR INC R0 R7,LOOP0 MOV PSW
10、,#00H MOV R2, LOOP1:MOV R0,#40H MOV R1,#41H MOV 03H,R2 7FH LOOP2:MOV A,R0 MOV 30H,A MOV A,R1 CJNE A,30H,LOOP3 SJMP L1LOOP3:JC L1 XCH A,30H MOV R1,A 7FHL1: INC R1 DJNZ R3,LOOP2 JNB 7FH,LOOP4 DJNZ R2,LOOP1LOOP4:LOOP5:MOV A,R0 MOVX DPTR,A DJNZ R7, END3打开XDATA数据窗口,在弹出的XDATA窗口中从2040H开始的单元中输入10个不同数。4打开DAT
11、A数据窗口,把打开的窗口进行并排,单步或跟踪运行程序,观察DATA数据窗口40H开始的单元和XDATA窗口2050H开始的单元内容的变化。七、思考题1补全程序。2在排序前,程序对片外数据做了什么工作?排序后,对结果又进行了什么处理?并在源程序中标明。3编一程序把片内50H-59H中内容按从小到大的顺序排列。一、实验目的:掌握MCS-51单片机中断原理及编程使用方法。1G2200/2100 实验平台 1 台 2仿真器/ 仿真板 1 台 3连线 若干 根 4计算机 1 台三、实验内容: 在实验一的基础上,增加中断功能。如果中断请求得到响应,用L0-L7实现从右到左逐个点亮,直至中断请求撤消,中断返
12、回。四、连线方案五、实验源程序LJMP 0030HORG LJMP INT10ORG 0030HMOV PSW,#00HORL IE, ORL IP,#04HMOV SP,#30HMOV P1,#0 ;CALL DelaySJMP LOOP MOV R2,#3 ;延时程序MOV R1,#0MOV R0,#0 DJNZ R0,DLPDJNZ R1,DLPDJNZ R2,DLPRETINT10: PUSH PSWPUSH P1MOV PSW,#08HMOV A,#01HMOV R3,#16MOV P1,A ADJNZ R3,LOOP1POP P1POP PSWRETIEND1按连线方案连线。注意:
13、拨动开关K0置为高电位(打在上方)。2打开WAVE6000调试环境,打开“仿真器设置”对话框,设置好仿真器。3输入源程序,并编译通过。4执行程序。在执行程序的过程中,将K0置为低电位(打在下方),表示有故障发生,再将K0置为高电位,观察现象。2在执行中断服务程序过程中,如果K0没有及时返回高电平,观察到什么现象?如果K0及时返回高电平,又观察到什么现象?解释原因。3如果希望用L0-L7实现从左到右逐个点亮,该改哪条指令,请写出原指令及更改后的指令。4分别去掉下列三组指令(已在原程序中标示出),执行程序时会发生什么现象?请解释原因。(1)MOV SP,#30H(2)PUSH P1: POP P1
14、(3)MOV PSW,#08H(基于PROTEUS软件)1掌握MCS-51单片机串行口方式0、方式1的工作原理;2了解方式0时的应用,即通过串行口扩展并行口,进行静态显示的方法;3掌握串行移位寄存器芯片74LS164的工作原理;4熟悉并掌握PROTEUS软件的使用方法。利用串行口的工作方式0,将单片机的串口通过74LS164芯片转换成并口并驱动数码管循环依次显示0-9。在PROTEUS软件中设计出相应的电路,并进行仿真。装有PROTEUS软件的计算机一台。四、实验原理图 五、示范程序1方式0示范程序MAIN: MOV SCON,#0 MAIN1: MOV B,#0FFH MOV R0,#0AH
15、 LP: INC B LCALL DSPLY LCALL DL1S DJNZ R0,LPLJMP MAIN1 DSPLY: MOV DPTR,#TABLE MOV A,B MOVC A,A+DPTR MOV SBUF,A LP1: JNB TI,LP1 CLR TITABLE: DB 0C0H,0F9H,0A4H DB 0B0H,99H,92H DB 82H,0F8H,80H,90HDL1S: MOV R7,#10DL1: MOV R6,#200DL2: MOV R5,#250DL3: DJNZ R5,DL3 DJNZ R6,DL2 DJNZ R7,DL1 1在PROTEUS软件中设计相应的电路图。 2编写相应的软件,并调试成功,生成.HEX文件。3将软件分别下载到相应的单片机中并运行,观察现象,直至仿真成功。1你在实验中是否采用了示范程序?在做实验过程中遇到了哪些问题?如何解决的?2如果在方式0的实验中想实现74LS164级联(即带多个数码管),如何实现?你的实验是否做成功?在实验过程中遇到了哪些问题?是如何解决的?
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1