当前位置:首页 > 单片机实验报告 - 图文
6. 实验总结
这次试验,熟悉了单片机开发的基本流程,对于实验的两道题目 1)32H+41H+01H+56H+11H+03H=? 2)895H+02H+02H+44H+48H+12H=?
实验结果如上图所示50H~54H存放数据,第一道题计算出来是0x00DEH,第二道题目 计算出来是0x0137H,实验结果和预期相符,成功的完成了实验。 这次试验对硬件开发有了基本的认识,特别是对于单片机的存储器有了进一步的认识,在程序中把数据放入RAM中,结果存放在R3和R4中,实验时不知道R3和R4的地 址,后来了解到R3和R4可以直接用他的地址03H和04H,这样进一步深化了书本上 的知识。另外通过这次试验,对于51单片机的几种寻址方式也有了具体的认识。总之,还是要多动手虽然程序不是自己写的,但是阅读理解了还是有点收获的。
实验六.数据排序实验
1. 实验目的
(1)理解并掌握排序程序的设计方法。 (2)掌握减法指令的功能,并联系其使用。
(3)逐步提高调试程序的能力及编写程序的能力。
2. 试验设备
(1)ZY15MCU12BC2单片机实验开发装置一台。 (2)PC系列微机及相关软件。
3. 试验内容
(1)使用串行通讯电缆将实验开发装置与PC机相连。
(2)开启PC机及实验开发装置,启动Keil C51软件进入uVision2集成开发环境。
(3)编写程序,实现从平台连续输入六个数,数码管将马上从小到大的顺序显示这六个数。要求被排序的数放在70H到7FH单元中。 (4)编译连接源程序。
(5)调试程序,在存储器窗口输入被排序数放在70H到7FH单元中,全速运行程序,并检查程序员的运行结果,观察是否正确。
(5)若程序中出现错误,则可以采用单步分段调试,排除程序错误,直到正确为止。
4. 实验源程序
MAIN: LOP2: LOP1: LOP5:
ORG 0000H
LJMP MAIN ORG 0030H MOV R2,#70H MOV R3,#71H MOV R4,#0FH ACALL LOP1 DJNZ R4,LOP2 LJMP LOP6 MOV A,R2 MOV R0,A MOV A,R3 MOV R1,A MOV A,@R0 CLR C
SUBB A,@R1 JC LOP4 MOV A,@R0 XCH A,@R1
LOP4: LOP6:
MOV @R0,A INC R1 INC R0
MOV A,@R0
CJNE R1,#80H,LOP5 RET END
5. 实验结果截图
6. 实验总结
本次试验是在冒泡排序算法实现对70H~7FH中的数据进行排序,如上第一张图所示RAM中70H~7FH存放了数据,第二张图显示的是通过冒泡排序整理过的数据。成功完成了实验,收到了预期效果。
对于习惯了使用高级语言编程的我,看这些绕来绕去的汇编还是有些头大,觉得这个例子写的不太好,跳来跳去,程序层次不分明,可读性很差,冒泡不应该有内外两层吗,看书上有一个例子就写得很好,跟用高级语言写差不多,然而实验的这个好像是要考我们对各种跳转指令的了解,所以读起来晕头转向的。 从另一方面来说,通过这次试验,我也熟悉了汇编的跳转与分支指令。另外,所以ORG 0000H LJMP MAIN ORG 0030H,这三句ljmp这句跳到了main,那么还要后面一句干嘛。不甚理解。
总之,这次实验让我了解了各种分支与跳转,还是有所收获的。
共分享92篇相关文档