导航:首页 > 操作系统 > 单片机冒泡流程图

单片机冒泡流程图

发布时间:2022-06-11 04:45:53

A. C51单片机“冒泡法”排序实例

用keil调试下,就可以知道结果了。
感觉楼主的分析是正确的……
只是不清楚这个程序段的意图是对数组a[]的全部数据进行排序还是仅对其前9个数据排序。
printf("the unsorted numbers:\n");
for(i=0;i<9;i++)
printf("%bx",a[i]);
printf("\n");

printf("the sorted number:\n");
for(i=0;i<=10;i++)
printf("%bx",a[i]);
按常理,这两段应该是对应的,判断条件下面的那个更合理,按分析前面那段只打印未排序前的a[0]~a[8];后面那段却将11个数全部打印出来了。 (实际还应以调试结果为准)

B. 一个单片机程序流程图讲解

程序思路是:
如果key1按下那么scale加1
如果scale=1,当key2按下时最大值加;当key3按下时最大值减。
如果scale=2,当key2按下时最小值加;当key3按下时最小值减。
如果scale=3,那么复位scale=0,程序结束。
如果key1未按且key2按下和key3同时按下,那么
z1加1(有些看不清),如果key2释放,这继续加,否则结束。
如果所有键都未按,这结束。

C. 单片机程序设计流程图

LED_BIT_1 EQU 30H ; 存放8位数码管的段码

LED_BIT_2 EQU 31H

LED_BIT_3 EQU 32H

LED_BIT_4 EQU 33H

LED_BIT_5 EQU 34H

LED_BIT_6 EQU 35H

LED_BIT_7 EQU 36H

LED_BIT_8 EQU 37H ; 存放初始密码

SECOND EQU 60H

MINUTE EQU 61H

HOUR EQU 62H

TCNT EQU 63H

ORG 00H ;初始化程序 ,设置初始密码

SJMP START

ORG 0BH

LJMP INT_T0

START:
MOV DPTR,#TABLE
MOV HOUR,#0
MOV MINUTE,#0

MOV TCNT,#0

MOV TMOD,#01H

MOV TH0,#03ch ;定时50毫秒

MOV TL0,#03ch

MOV IE,#082H

SETB TR0

MOV LED_BIT_1,#00H ;段码存储区清0

MOV LED_BIT_2,#00H

MOV LED_BIT_3,#00H

MOV LED_BIT_4,#00H

MOV LED_BIT_5,#00H

MOV LED_BIT_6,#00H

MOV LED_BIT_7,#79H

MOV LED_BIT_8,#73H

MOV TMOD,#01H

MOV TH0,#0fdh

MOV TL0,#0fdh
MOV IE,#82H

A1:
LCALL DISPLAY ;调用时间显示

JNB P1.0,S1

JNB P1.1,S2

JNB P1.2,S3
JNB P1.3,S4

LJMP A1

S1: LCALL DLY_S ;去抖动

JB P1.0,A1
INC HOUR ;秒值加1

MOV A, HOUR

CJNE A,#24,J00 ;判断是否加到60秒

MOV HOUR,#0

LJMP A1

S2: LCALL DLY_S

JB P1.1,A1
K01: DEC HOUR ;SHI-

MOV A,HOUR

CJNE A,#0,J01 ;判断是否-0分

MOV HOUR,#24
LJMP A1

S3: LCALL DLY_S

JB P1.2,A1
K02: INC MINUTE ;小时值加1

MOV A,MINUTE

CJNE A,#60,J02 ;判断是否加到24小时
MOV MINUTE,#0

LJMP A1

S4: LCALL DLY_S

JB P1.3,A1
K03: DEC MINUTE ;小时值加1

MOV A,MINUTE

CJNE A,#0,J03 ;判断是否加到24小时
MOV MINUTE,#59

LJMP A1

J00: JB P1.0,A1 ;等待按键抬起

LCALL DISPLAY

SJMP J00

J01: JB P1.1,A1

LCALL DISPLAY

SJMP J01

J02: JB P1.2,A1

LCALL DISPLAY

SJMP J02
J03: JB P1.3,A1

LCALL DISPLAY

SJMP J03

INT_T0: MOV TH0,#3ch ;定时器中断服务程序

MOV TL0,#3ch ;对秒,分钟和小时的计数

INC TCNT

MOV A,TCNT

CJNE A,#20,RETUNE ;计时1秒

INC SECOND

MOV TCNT,#0

MOV A,SECOND

CJNE A,#60,RETUNE

INC MINUTE

MOV SECOND,#0

MOV A,MINUTE

CJNE A,#60,RETUNE

INC HOUR

MOV MINUTE,#0

MOV A,HOUR

CJNE A,#24,RETUNE

MOV HOUR,#0

MOV MINUTE,#0

MOV SECOND,#0

MOV TCNT,#0

RETUNE: RETI

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;DIS3闹铃设置子程序

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;DIS3
DISPLAY: ;显示时间控制子程序

MOV A,SECOND ;显示秒

MOV B,#10

DIV AB

CLR P2.6

MOVC A,@A+DPTR

MOV P0,A

LCALL DLY_S

SETB P2.6

MOV A,B

CLR P2.7

MOVC A,@A+DPTR

MOV P0,A

LCALL DLY_S

SETB P2.7

CLR P2.5

MOV P0,#40H ;显示分隔符

LCALL DLY_S

SETB P2.5

MOV A,MINUTE ;显示分钟

MOV B,#10

DIV AB

CLR P2.3

MOVC A,@A+DPTR

MOV P0,A

LCALL DLY_S

SETB P2.3

MOV A,B

CLR P2.4

MOVC A,@A+DPTR

MOV P0,A

LCALL DLY_S

SETB P2.4
CLR P2.2

MOV P0,#40H ;显示分隔符

LCALL DLY_S

SETB P2.2

MOV A,HOUR ;显示小时

MOV B,#10

DIV AB

CLR P2.0

MOVC A,@A+DPTR

MOV P0,A

LCALL DLY_S

SETB P2.0

MOV A,B

CLR P2.1

MOVC A,@A+DPTR

MOV P0,A

LCALL DLY_S

SETB P2.1

RET

TABLE: DB 3FH,06H,5BH,4FH,66H

DB 6DH,7DH,07H,7FH,6FH

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;延时

DLY_S: MOV R6,#5 ;延时程序

D1: MOV R7,#100

DJNZ R7,$

DJNZ R6,D1

RET

DLY_L: MOV R5,#50

D2: MOV R6,#100

D3: MOV R7,#100

DJNZ R7,$

DJNZ R6,D3

DJNZ R5,D2

RET

END
请采纳答案,支持我一下。

D. 单片机程序流程图,速求。只要流程图,不要太复杂,简单点最好。

1开机初始化
2串口中断接收
3当串口接收到 + 号 P1最低位 输出高 延时加5US --关P1最低位
4当串口接收到 - 号 P1最低位 输出高 延时减5US --关P1最低位
5重复3,4步骤

此处不能画图,只能这样描述

E. 使用单片机汇编语言冒泡法排序

一、实验要求
给出一组随机数,将此组数据排序,使之成为有序数列
二、实验目的
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
引自:伟福单片机开发平台软件实验

F. 关于单片机的程序流程图问题。。

这个很好理解的,程序肯定是用定时器来做了一个延时,也就是定时清除数据延时,当延时时间到后,延时标志应该是0,当检测到这个0时,程序会清楚数据,同时将延时标志置位。显然这个流程图中漏掉了这个清楚数据环节。

G. 单片机流程图

在word里画的,不太漂亮,凑合看下,这个程序就是开机后,1s蜂鸣器叫一下,等到30s时(包括之后的时间都是)蜂鸣器一直响~~给你画个图用了半个小时时间~~

H. 单片机流程图怎么画,题目如下

程序思路是:
如果key1按下那么scale加1
如果scale=1,当key2按下时最大值加;当key3按下时最大值减。
如果scale=2,当key2按下时最小值加;当key3按下时最小值减。
如果scale=3,那么复位scale=0,程序结束。
如果key1未按且key2按下和key3同时按下,那么
z1加1(有些看不清),如果key2释放,这继续加,否则结束。
如果所有键都未按,这结束。

I. 单片机程序及流程图(具体可以看图)

这些程序注释多么详细,你还需要怎么直白呢?还是自己稍微静心一会,仔细看看程序吧。别人再也无法给你更详细的注解了。至于流程图,你可以以主程序为主来绘制主程序流程图,也可以对关键子程序绘制功能模块的流程图。

阅读全文

与单片机冒泡流程图相关的资料

热点内容
解压视频白头小哥 浏览:748
cadq命令 浏览:956
python连接本地数据库报错 浏览:194
手机模拟加密禁卡操作 浏览:105
电荷数怎么算法 浏览:589
cad如何打开命令行 浏览:150
php图片限制大小 浏览:164
程序员一夜未归 浏览:593
苹果xsmaxapp怎么不显示更新 浏览:600
苹果app怎么清除角标 浏览:483
解压屁屁玩具脏了怎么办 浏览:670
算法识别自动折叠 浏览:9
dos命令遍历文件 浏览:456
翻译整个pdf 浏览:198
怎么给解压软件授权 浏览:622
怎么换手机桌面壁纸安卓 浏览:957
pdf转换阅读器 浏览:344
特斯拉怎么app预约充电 浏览:498
安卓怎么录像更清晰 浏览:919
怎么服务器输入命令没有显示出来 浏览:799