单片机实验指导书——带答案 联系客服

发布时间 : 星期四 文章单片机实验指导书——带答案更新完毕开始阅读80c30ee882c4bb4cf7ec4afe04a1b0717ed5b318

10.设置项目 11.编译程序

选择菜单[项目 | 编译]功能或按编译快捷图标或按F9键,编译项目。

在编译过程中,如果有错可以在信息窗口中显示出来。双击错误信息,可以在源程序中定位所在行。纠正错误后,再次编译直到没有错误。在编译之前,软件会自动将项目和程序存盘。在编译没有错误后,就可以执行、调试程序了。 12.执行、调试程序

有四种方法执行程序:全速执行、程序单步跟踪、执行到光标处和设置断点。 (1)全速执行 (2)程序单步跟踪

选择[执行 | 跟踪]功能或按跟踪快捷图标或按F7键进行单步跟踪调试程序。 (3)执行到光标处 (4)设置断点

(5)观察各变量值的方法

六、思考题

1.改写实验程序实现流水灯功能。写出源程序。

ORG 0

MOV P1,#01H LOOP: MOV A, P1 RL A MOV P1,A 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

2.在执行调试程序过程中,遇到了哪些问题你是如何解决的 (根据调试的实际情况填写:)

(1) 指令写错: MOV R1,#0 中的R1写成了字母Rl (2) 程序编译不成功,没有加入源文件

实验二 程序调试

一、实验目的

1.学习WINDOWS平台下的编辑、编译、排错、调试方法。 2.学习修改和观察变量的方法;综合使用单步、断点调试的方法。 3.了解数据排序的简单算法。

二、实验内容

编写并调试一个排序子程序,其功能为用冒泡法将外部RAM(2040H—2049H)中10个单字节无符号数,按从大到小的次序重新排列,并把结果放在外部RAM(2050H—2059H)区域。

三、实验器材

安装了WAVE6000集成调试环境软件的计算机1台。

四、实验说明

本程序采用的是“冒泡排序”法。算法是将一个数与后面的数相比较,如果比后面的数小,则交换,如此将所有的数比较一遍后,最小的数就会在数列的最后面。再进行下一轮比较,找出第二小数据,直到全部数据有序。

五、程序框图(排序部分)

六、实验步骤

1.打开WAVE6000调试环境,打开“仿真器设置”对话框,选择好仿真器,并选择使用伟福软件模拟器。

2.根据流程图编写程序,并编译通过。 程序清单:

ORG 0 LJMP 0030H ORG 0030H START:MOV DPTR, #2040H MOV R0,#40H MOV R7, #10 LOOP0:MOVX A,@DPTR MOV @R0,A INC DPTR INC R0

DJNZ R7,LOOP0 MOV PSW,#00H MOV R2, #9 LOOP1:MOV R0,#40H MOV R1,#41H MOV 03H,R2 CLR 7FH LOOP2:MOV A,@R0 MOV 30H,A MOV A,@R1 CJNE A,30H,LOOP3

3.打开XDATA数据窗口,在弹出的XDATA窗口中从2040H开始的单元中输入10个不同数。

4.打开DATA数据窗口,把打开的窗口进行并排,单步或跟踪运行程序,观察DATA数据窗口40H开始的单元和XDATA窗口2050H开始的单元内容的变化。

SJMP L1 LOOP3:JC L1 MOV @R0,A XCH A,30H MOV @R1,A SETB 7FH L1: INC R0 INC R1 DJNZ R3,LOOP2 JNB 7FH,LOOP4 DJNZ R2,LOOP1 LOOP4:MOV DPTR, #2050H MOV R0,#40H MOV R7, #10 LOOP5:MOV A,@R0 MOVX @DPTR,A INC R0 INC DPTR

DJNZ R7, LOOP5 END

七、思考题

1.补全程序。

2.在排序前,程序对片外数据做了什么工作排序后,对结果又进行了什么处理并在源程序中标明。

在排序前,程序将片外数据存储器2040H开始的10个地址中的数据读到片内40h~49h