导航:首页 > 编程语言 > 单片机排序程序

单片机排序程序

发布时间:2024-11-08 07:05:51

『壹』 51单片机汇编语言-请编写程序将内部RAM 40H到4FH 中的16个数据按从小到大顺序重新排列。 尽量简单一点的

冒泡排序程序如下:

ORG 0000H
LCALL SORT ; 跳转到排序程序

SORT: ; 数据冒泡排序程序
MOV R6, #16 ;参加排序数据的总个数
DEC R6 ; 比较次数 比 数据总数 少 1

L1:
MOV R0, #40H ; 把数据的起始地址40h付给R0
MOV A, R6 ;调整比较次数
MOV R7, A
CLR F0 ; 清交换标志

L2: ;比较
MOV A, @R0 ; 取前一个数
INC R0
MOV B, @R0 ; 取后一个数
CJNE A, B, L3 ; 前面的数 与 后面的数 比较, 前-后

L3: ;判断、处理
JC N_JH ; 后面的数 大于 前面的数,不交换
XCH A,B ; 否则前后两数交换存放
MOV @R0,A
DEC R0
MOV @R0,B
INC R0
SETB F0 ; 设交换标志

N_JH:
DJNZ R7, L2 ; 没有比较完,就继续
JNB F0, L_END ; 没有交换过,就结束
DJNZ R6, L1

L_END:
SJMP $ ; 排序完成。

;结果是:
;40H中存放着最小的数;
;4FH中存放着最大的数。

『贰』 使用单片机汇编语言冒泡法排序

一、实验要求
给出一组随机数,将此组数据排序,使之成为有序数列
二、实验目的
1.了解数据排序的简单算法。
2.了解数列的有序和无序概念
三、实验说明
有序的数列更有利于查找。本程序用的是“冒泡排序”法,算法是将一个数与后面的
数相比较,如果比后面的数大,则交换,如此将所有的数比较一遍后,最大的数就会在
数列的最后面。再进行下一轮比较,找出第二大数据,直到全部数据有序。
四、程序框图

Size equ 10 ; 数据个数
Array equ 50h ; 数据起始地址
Change equ 0 ; 交换标志

Sort:
mov r0, #Array
mov r7, #Size-1
clr Change
Goon:
mov a, @r0
mov r2, a
inc r0

mov B, @r0
cjne a, B, NotEqual
sjmp Next
NotEqual:
jc Next ; 前小后大, 不交换

setb Change ; 前大后小, 置交换标志
xch a, @r0 ; 交换
dec r0
xch a, @r0
inc r0
Next:
djnz r7, Goon
jb Change, Sort
ljmp $

end
引自:伟福单片机开发平台软件实验

『叁』 编写简单的单片机c语言程序 1、指定数组找最大值 2、排序

就是一般的排序算法,与查找算法一样,这个的都不会吗
float
a[3],max=0;
for(i=0;i<=2;i++)
{
printf("册毕Please
enter
the
mark:");
scanf("%f"敬姿纳,&a[i]);
if(max<a[i])
{
max=a[i];maxnum=i+1;}
}
printf("the
number
of
the
highest
is
%d\n",maxnum);
for(i=0;i<=2;i++)
if(max==a[i])
if(i+1!=maxnum)
printf("the
number
of
the
highest
is
%d\n",i+1);
排序
#include<stdio.h>
int
sort(int
num[5]);
void
main()
{
int
numm[5],i,a;
for
(i=0;i<5;i++)
scanf("%d",&numm[i]);
sort(numm);
//亮没调用排序
for
(i=0;i<5;i++)
printf("%d
",numm[i]);
}
int
sort(int
num[5])
{
int
m,n,t;
for
(m=0;m<4;m++)
for(n=m+1;n<5;n++)//冒泡排序
{
if
(num[m]<num[n])
{
t=num[n];
num[n]=num[m];
num[m]=t;
}
}
return
1;
}

阅读全文

与单片机排序程序相关的资料

热点内容
零基础学编程看什么书籍好 浏览:333
word如何设置页面横向 浏览:871
深圳哪里有教少儿编程 浏览:549
360极速浏览器临时文件夹 浏览:409
怎么用网络接收信息 浏览:338
暗黑2怎么升级到113 浏览:624
蓝臻一段在哪些app可以买 浏览:153
腾讯网络交易平台 浏览:217
cad如何学会数控编程 浏览:754
手机pdf格式的文件 浏览:390
小短片的网站有哪些 浏览:129
关机命令linux 浏览:561
数控坐标偏置如何编程 浏览:644
php仿qq空间网页源码 浏览:398
先进的网站有哪些 浏览:802
ksearchexe损坏文件 浏览:659
编写阶乘相加的程序 浏览:222
popsub代码 浏览:857
kpl编程可以做什么工作 浏览:808
连接wifi一直让输密码 浏览:191

友情链接