单片机实验2数据排序1

  • 格式:doc
  • 大小:15.00 KB
  • 文档页数:2

实验二数据排序
一、实验目的
1.了解数据排序的简单算法。

2.了解数列的有序和无序概念。

二、实验内容
八个随机无符号数存于内部RAM的30H为起始地址的八个单元,将此组数据排序,使之成为有序数列。

编写程序进行调试
三、实验说明
有序的数列更有利于查找。

本程序用的是“冒泡排序”法,算法是将一个数与后面的数相比较,如果比后面的数大,则交换,如此将所有的数比较一遍后,最大的数就会在数列的最后面。

再进行下一轮比较,找出第二大数据,直到全部数据有序。

四、实验仪器和设备
PC机、MedWin软件。

五、参考程序
ORG 0000H
LJMP 0030H
ORG 0030H
MOV R0, #30H
MOV A, R0
MOV R1, A
MOV @R1, #06H
INC R1
MOV @R1, #04H
INC R1
MOV @R1, #01H
INC R1
MOV @R1, #02H
INC R1
MOV @R1, #05H
INC R1
MOV @R1, #07H
INC R1
MOV @R1, #03H
SORT: MOV A, R0
MOV R1, A
MOV R2, #07H
MOV A, R2
MOV R5, A
CLR F0
DEC R5
MOV A, @R1
LOOP: MOV R3, A
INC R1
CLR C
MOV A, @R1
SUBB A, R3
JNC LOOP1
SETB F0
MOV A, R3;
XCH A, @R1
DEC R1
XCH A, @R1
INC R1
LOOP1: MOV A, @R1
DJNZ R5,LOOP
JB F0, SORT
END
六、结果
排序前:06 04 01 02 05 07 03
排序后:01 02 03 04 05 06 07
七、心得体会
这次试验是一个数据的排序,通过学习,我进一步明白了利用汇编语言编程,收获了很多,希望能通过试验明白更多,对编程有更多的体会。