導航:首頁 > 操作系統 > 單片機冒泡流程圖

單片機冒泡流程圖

發布時間: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. 單片機程序及流程圖(具體可以看圖)

這些程序注釋多麼詳細,你還需要怎麼直白呢?還是自己稍微靜心一會,仔細看看程序吧。別人再也無法給你更詳細的註解了。至於流程圖,你可以以主程序為主來繪制主程序流程圖,也可以對關鍵子程序繪制功能模塊的流程圖。

閱讀全文

與單片機冒泡流程圖相關的資料

熱點內容
手機程序加密有什麼作用 瀏覽:178
求黑馬程序員python教程 瀏覽:528
androidmvvm優缺點 瀏覽:894
unix下編譯庫文件 瀏覽:633
程序員的u盤 瀏覽:237
android根據經緯度獲取城市 瀏覽:564
python使用解釋器還是編譯器 瀏覽:358
以下關於有加密演算法及密鑰描述 瀏覽:219
linuxgethostname 瀏覽:416
程序員多數有對象 瀏覽:131
單片機延時程序計算 瀏覽:444
編譯原理語法翻譯 瀏覽:504
pr編譯出錯渲染存在偏移 瀏覽:262
如何製作自家的app 瀏覽:199
推薦一個解壓軟體rar解壓幫手 瀏覽:210
wd文檔加密器 瀏覽:748
伺服器上傳壓縮包一般是什麼格式 瀏覽:333
發送加密文件密碼幾位數 瀏覽:160
樹洞app怎麼樣 瀏覽:175
vivo編譯時間可以改么 瀏覽:150