微机原理及应用实验报告标准化文件发布号:(9312-EUATWW-MWUB-WUNN-INNUL-DQQTY-
微机原理及应用实验报告
班级:
姓名:
学号:
中南大学
机电工程学院精密测控实验室
实验二软件程序设计
1.实验目的:
1、掌握MCS-51单片机指令系统及用汇编语言编程技巧;
2、了解和熟悉用MCS-51单片机仿真开发机调试程序的方法。
2.实验内容:
1、编写排序程序并上机调试通过。
已知8031内部RAM60H~69H单元中,依次存放了
FFH,99H,77H,CCH,33H,DDH,88H,BBH,44H,EEH,它们均为无符号数,编程
将它们按递减次序排序,即最大数放在60H中,最小数放在69H中。
2.、编写多字节加法程序并上机调试通过。
8031内部RAM20H~22H单元中,存放了3字节被加数(低字节在前),在2AH~2CH单元中存放3字节加数(低字节在前),求两数之和,并将结
果存入以20H为起始地址的区域中(低字节在前)。
3.实验设备名称、型号:
4.画出软件程序流程图,写出上机调试通过的汇编语言程序清单:
程序1、编写排序程序并上机调试通过。
已知8031内部RAM60H~69H单元中,依次存放了
FFH,99H,77H,CCH,33H,DDH,88H,BBH,44H,EEH,它们均为无符号数,编程
将它们按递减次序排序,即最大数放在60H中,最小数放在69H中。
解:本设计采用冒泡排序法,使用双重循环,并在内循环中进行比较如果合乎从大到小的顺序则不动,否则两两交换,这样比较下去,比较9次
后,最小的那个数就会沉底,在下一次比较时将减少一次比较次数。如
果一次比较完毕,没有发生交换,说明已经按照从大到小的顺序排列
了。则可以退出循环,结束程序。
程序结构框图和程序代码如下:
ORG 1000H
TEM DATA 50H MOV R7 , #9
MOV 60H , #0FFH MOV 61H , #99H MOV 62H , #77H MOV 63H , #0CCH MOV 64H , #33H MOV 65H , #0DDH MOV 66H , #88H MOV 67H , #0BBH MOV 68H , #44H MOV 69H , #0EEH LOOP0: CLR F0 MOV A , R7
MOV R6, A
MOV R0 , #60H MOV R1, #60H
INC R1
LOOP1: MOV A , @R0 MOV TEM , A
MOV A , @R1 CJNE A ,TEM , NEXT SJMP NOCHA NEXT: JC NOCHA SETB F0