单片机实验一冒泡法排序

实验一:冒泡法排序实验

实验要求

实验目的:掌握控转移指令的功能,以及冒泡法排序的原理。

实验原理

循环嵌套结构。循环程序的设计方法和一样的,要分别考虑重循环的控制条件。内循环外循环重的具体处理部分。在嵌套中,不各个相互交叉,不从外循环跳入内循环,否则编译时会出错。注意每次通过外循环进入内循环式,内循环的初始条件需要重置。程序流程图

1 冒泡法流程图

2、程序代码N EQU 10

TAB EQU 30H

ORG 0000H

MOV 30H, #1 ;在30H中输入10个随机数

MOV 31H, #3

MOV 32H, #2

MOV 33H, #4

MOV 34H, #6

MOV 35H, #8

MOV 36H, #7

MOV 37H, #11

MOV 38H, #9

MOV 39H, #10

SORT:MOV R4, #N-1

LOOP1: MOV A,R4 ;冒泡法循环

MOV R3, A

MOV @R0, #TAB

LOOP2: MOV A, @R0

MOV B, A

INC R0

MOV A, @R0

CLR C

MOV R2, A

SUBB A, B

JNC UNEXCH

MOV A, R2

UNEXCH: DJNZ R3, LOOP2 ;如果A

DJNZ R4, LOOP1

LJMP SWITCH

EXCH:DEC R0 ;如果A>B,则A,B调换位置

XCH A, @R0

INC R0

MOV @R0, A

SWITCH: MOV R0, #30H

MOV R1, #50H

MOV R2, #N

PAIXU:MOV A, @R0;将30H中排好的数移动到50H中

MOV @R1, A

INC R0

INC R1

DEC R2

CJNE R2, #0, PAIXU

SJMP $

END

四、程序验证

在30H中输入10个数,显示如下:

图 2 30H单元中存储的数

图 3 对30H中数排序后的结果

图 4 30H中数转移到H之后的结果JNC UNEXH

此时A=(A)-(B)-(cy),存储器A中的值已经改变,不再是30H中的某个数。下面算法EXCH中交换A、B的值得到的结果必然是错误的。应在比较完A、B的值后,把A还原到比较前的值。

4、算法中39H中的数据“丢失”问题还需进一步思考解决。

单片机里如何使用冒泡法实现数据从大到小排列_单片机实验一冒泡法排序.doc...相关推荐

  1. C语言:使用冒泡算法将数组中的数据从大到小进行排序

    /*使用冒泡算法将数组中的数据从大到小进行排序*/ #include<stdio.h> #define N 5 int main() {int a[N];int i,j,t;printf( ...

  2. 【hive】数据倾斜-大表小表join优化mapjoin

    真正让你明白Hive调优系列3:笛卡尔乘积,小表join大表,Mapjoin等问题 0.Hive中的优化分类    真正想要掌握Hive的优化,要熟悉相关的MapReduce,Yarn,hdfs底层源 ...

  3. qtablewidget 数据量大效率很低_让大牛带你走进大数据分析:R基础及应用的潮流尖端,享受RHadoop...

    走进R,走进大数据时代数据分析的潮流尖端,掌握R语言,熟悉大数据的基础概念和R与Hadoop结合进行大数据的处理分析. 大数据时代, R以其强大的数据分析挖掘.可视化绘图等功能,越来越受到社会各个领域 ...

  4. python 怎么让列表里的数从大到小排列_Python实现把列表里的数字按从小到大的顺序排列...

    一.自己造轮子 第一种方式的思路: 拿出列表里的第0个元素,把它赋给一个叫做"最小值"的变量,然后用这个变量去跟后面的每个数字一一对比,如果碰到比它小的,就把那个新发现的小数字赋给 ...

  5. python 怎么让列表里的数从大到小排列,python中如何给列表排序

    这篇文章主要介绍了Python中对列表排序实例,需要的朋友可以参考下 很多时候,我们需要对List进行排序,Python提供了两个方法,对给定的List L进行排序: 方法1.用List的成员函数so ...

  6. 大数据可视化大屏图表设计经验,教给你

     前言   自从跟大家分享第一篇<大数据可视化大屏设计经验,教给你!>,很多小伙伴都会问我一些相关的问题,看了小伙伴给我发的视觉稿,整体都还不错,但是发现图表的设计都有一些问题,大家可能对 ...

  7. 冒泡排序 实现数据的由大到小排序

    操作要求 定义长度为6的整数数组 编写冒泡排序算法,实现数据由大到小的排序

  8. python列表的小东西_小谈python里 列表 的几种常用用法

    在python中列表的常用方法主要包括增加,删除,查看和修改.下面以举例子的方法具体说明,首先我们创建两个列表,列表是用[ ]表示的,里面的元素用逗号隔开. a=['hello',78,15.6,'你 ...

  9. c语言 算术平均滤波法_单片机数字滤波的算法

    单片机主要作用是控制外围的器件,并实现一定的通信和数据处理.但在某些特定场合,不可避免地要用到数学运算,尽管单片机并不擅长实现算法和进行复杂的运算.下面主要是介绍如何用单片机实现数字滤波. 在单片机进 ...

最新文章

  1. C#new出来的结构体内存分配在堆上
  2. 游客显示的html代码,html5游客总数柱状图代码
  3. 阿里云专家赵伟教你在CDN边缘节点上构建多层纵深防护体系
  4. @程序员,这门编程语言不输 C/C++!
  5. Json.Net 使用属性定义日期的序列化格式
  6. 离线发布bolg----使用Windows live writer客户端来发布CSDN的博客文章
  7. Ceph添加、删除osd及故障硬盘更换
  8. 无法启动此程序因为计算机丢失uplay,Uplay登录不上咋办?Uplay登录不上的解决方法...
  9. Kali虚拟机安装,设置中文等详细教程,Linux最新免镜像版
  10. 基于K-近邻算法的手写数字识别研究
  11. 图像融合之Poisson融合及其改进
  12. logstash grok mysql_logstash -grok插件语法介绍
  13. 北京大学可视化发展前沿研究生暑期学校第三讲
  14. 为什么要用Linux系统
  15. hdu_5620_KK's Steel(水题)
  16. 热乎的滴滴前端面经「现在实习生面试也不简单呀」
  17. struts2漏洞监测_struts2 漏洞 测试方案 与 解决方案
  18. 验证括号的匹配(艾伦图灵的栈操作)
  19. 人工智能专业英语——术语与概念
  20. Python控制安卓手机自动刷短视频实现金币收益

热门文章

  1. win7安装sql2000安装界面不能弹出
  2. js 时间转东八区_dayjs处理utc转换
  3. 运动规划中C空间的理解
  4. Codeforces Round #742 (Div. 2)
  5. Perspective Efex 光学畸变修复滤镜
  6. 手机型号大全资料_商务社交礼仪培训视频大全
  7. 硬件基础-锁相放大器详解
  8. docker创建镜像并打包成tar
  9. 锁定计算机禁用,“关闭计算机锁定”的解决方案
  10. 更新日志 150930 - 视频时代