導航:首頁 > 操作系統 > 單片機ALOOP

單片機ALOOP

發布時間:2022-06-22 05:54:42

單片機循環

程序沒有毛病,樓主希望得到什麼樣的結果?
------------------
程序沒有毛病,用proteus7中模擬的時候,速度太快了不行。
下面程序,只是把延時時間加大了,模擬就可以了。

org 0000h
ajmp main
main:
mov r5, #0h
loop:
call disp
call delay
ajmp loop

disp:
mov DPTR, #table
mov a, r5
movc A, @a+DPTR
mov p0, a
dec r5
cjne r5, #-1, dell
mov r5 , #9
dell:
ret

delay:
mov r4, #100
mov r7, #0x0a
LL1:
mov r6, #-1
djnz r6, $
djnz r7, LL1
djnz r4, LL1
ret

table:
db 3fh,06h,5bh,4fh,66h
db 6dh,7dh,07h,7fh,6fh
end

② 單片機問題,急急~

1.
ORG 0000H
AJMP START

ORG 0030H
START:
MOV DPTR,#0050H ;外部存儲器首地址
MOV R0,#9 ;計數器
MOV A,#0 ;A清零
LOOP:
MOVX @DPTR,A ;將A的內容(0)送到外部RAM
INC DPTR ;下一個地地址
DJNZ R0,LOOP ;沒有完成則繼續

SJMP $
END

2.
方法1:
演算法:11+12+13+……+50=(11+50)*20)
程序:

ORG 0000H
AJMP START

ORG 0030H
START:
MOV R2,#11 ;最小數
MOV R3,#50 ;最大數
MOV R4,#20 ;倍數
MOV A,R2 ;取最小數
ADD A,R3 ;求最小數與最大數之合
MOV B,R4 ;取倍數
MUL AB ;求所有數之合
MOV R0,A ;低位送R0
MOV R1,B ;高位送R1
SJMP $
END

方法1:
(演算法:一個一個加)
程序:

ORG 0000H
AJMP START

ORG 0030H

START:

MOV R2,#11 ;被加數(從11開始)
MOV R3,#40 ;個數
MOV A,#0 ;清除A
MOV B,#0 ;清除B
MOV R0,#0 ;清除R0

LOOP:
MOV A,R0 ;低位求和
ADD A,R2
MOV R0,A
MOV A,B ;高位求和
ADDC A,#0
MOV B,A
INC R2
DJNZ R3,LOOP ;沒有加完則繼續

MOV R1,B ;保存高位數據到R1
SJMP $
END

3.
;定時器選用T0
;工作方1
;時間常數計算公式:(1) T=(65536-X)*(12/fosc)
; (2) 12/fosc=12/12MHz=1us
; (3) T=2ms=2000us
;由(1)(2)(3)得到:(4)X=65536-2000=61536=0F060h
;TH0=0F0h,TL0=060h

程序:
ORG 0000H
AJMP INI ;程序入口
ORG 000BH
AJMP T0_INT ;T0中斷入口

ORG 0030H

;初始化
INI:
MOV TMOD,#01H ;設置定時器T0工作方式1
MOV TH0,#0F0h ;裝載時間常數
MOV TL0,#060H
SETB EA ;開啟中斷響應
SETB ET0
SETB TR0 ;啟動定時器T0

SJMP $

;定時器中斷程序
T0_INT:
MOV TH0,#0F0h ;重裝時間常數
MOV TL0,#060H
RETI
END

③ 單片機編程

亂寫的,湊合看吧:
ORG 2000H
CLR A
MOV R7,#0
MOV R6,#0
MOV R5,#30
MOV R4,#20
MOV R3,#50H
MOV R2,#20H
LOOP1: MOV A,@R4
JNB ACC.7,LOOP2 ;判斷符號數的正負
INC @R3
MOVX @R3,A ;負數存入外存中51H開始的單元中
INC @R7 ;負數個數 1
LOOP2: INC @R2
MOVX @R2,A ;正數存入外存中21H開始的單元中
INC @R6 ;正數個數 1
CJNE A,#64H,LOOP3
SJMP LOOP4
LOOP3: JNC LOOP4
MOV B,#0AH ;小於100的數改成壓縮BCD碼送還至原地址單元
DIV AB
SWAP A
ADD A,B
MOV @R4,A
LOOP4: MOV @R4,#0AAH ;不小於100的數改為AAH送還至原地址單元
INC @R4
DJNZ R5,LOOP1
MOV DPTR,#20H ;正數的個數存放至外存區20H單元中 MOV A,@R6
MOVX @DPTR,A
MOV DPTR,#50H ;負數的個數存放在外存區50H單元中
MOV A,@R7
MOVX @DPTR,A
SJMP $
上邊的幾個回答- -...此程序若還有錯誤請及時聯系我修改,謝謝先!
另:各位參考的童鞋切記要加相關注釋,多少做點改動,被老師認為雷同的渣就概不負責了哈。
So,建兄,渣就不多解釋了。

④ 單片機C語言編程

KEY4EQU30H

KEY2EQU31H

ORG0000H

LJMPMAIN

ORG0030H

MAIN:

CLREA

MOVSP,#5FH

MOVKEY2,#0

MOVKEY4,#0

LOOP:

JBP1.0,LOOP

MOVR7,#10

LCALLDELAY

JBP1.0,LOOP

JNBP1.0,$

MOVP3,#0C0H

LOOP0:

LCALLKEYDEAL

MOVA,KEY4

JNZLOOP41

MOVA,P3

ANLA,#0F0H

ORLA,#0EH

MOVP3,A

SJMPLOOP21

LOOP41:

DECA

JNZLOOP42

MOVA,P3

ANLA,#0F0H

ORLA,#0DH

MOVP3,A

SJMPLOOP21

LOOP42:

DECA

JNZLOOP43

MOVA,P3

ANLA,#0F0H

ORLA,#0BH

MOVP3,A

SJMPLOOP21

LOOP43:

DECA

JNZLOOP21

MOVA,P3

ANLA,#0F0H

ORLA,#07H

MOVP3,A

LOOP21:

MOVA,KEY2

JNZLOOP22

MOVA,P3

ANLA,#0FH

ORLA,#20H

MOVP3,A

SJMPLOOP3

LOOP22:

DECA

JNZLOOP3

MOVA,P3

ANLA,#0FH

ORLA,#10H

MOVP3,A

LOOP3:

LJMPLOOP0

;----------------------------

DELAY:

MOVR2,#2

DLY1:

MOVR3,#250

DJNZR3,$

DJNZR2,DLY1

DJNZR7,DELAY

RET

;-----------------------------

KEYDEAL:

JBP1.1,KEYEN1

MOVR7,#10

LCALLDELAY

JBP1.1,KEYEN1

JNBP1.1,$

INCKEY4

MOVA,KEY4

ANLA,#03H

MOVKEY4,A

KEYEN1:

JBP1.2,KEYEN2

MOVR7,#10

LCALLDELAY

JBP1.2,KEYEN2

JNBP1.2,$

INCKEY2

MOVA,KEY2

ANLA,#01H

MOVKEY2,A

KEYEN2:

RET

;-----------------------------

⑤ 單片機中的LOOP是什麼

一種循環的標示,由自己決定這個的標示(類似地名),比如我一個AJMP跳轉指令需要跳轉到一個地方,那我就自己定一個標示(LOOP是自己定義的,可以改成別的也行,必須和跳轉的那個程序一樣),然後跳轉的那個地方程序開頭就寫(LOOP:),這句後面就是跳轉後需要執行的程序了~!不知道這樣解釋對你有沒有幫助

⑥ 單片機 跑馬燈 代碼詳解

ORG
0000H
;開機上電主程序入口
AJMP
START
;系統一進來就轉到主程序
ORG
0030H
;主程序地址
START:
MOV
A,
#0FFH
;主程序開始,A中初始化成全1
CLR
C
;c清零
MOV
R2,
#08H
;R2左轉循環計數器
LOOP:
RLC
A
<<C+A+C<<帶進位循環左移,A中的內容在8此循環中從0位到7位依次變0
MOV
P2,
A
;送到P2,使P2從0位到7位依次點亮LED
CALL
DELAY
;單片機運行很快,為了能看到燈的變化,必須延遲,把速度降下來
DJNZ
R2,
LOOP
;R2每次減1後判斷是否=0,8次後=0程序才會下行,否則會跳回LOOP
MOV
R2,#07H
;R2右轉循環計數器
LOOP1:
RRC
A
>>C+A+C>>帶進位循環右移,A中的內容在8此循環中從7位到0位依次變0
MOV
P2,
A
;送到P2,使P2從7位到0位依次點亮LED
CALL
DELAY
;和上個循環一樣,延時
DJNZ
R2,
LOOP1
;R2每次減1後判斷是否=0,7次後=0程序才會下行,否則會跳回LOOP1
JMP
START
;跳回程序起始位置重復下一個循環
DELAY:
MOV
R3,
#20;延時子程序,這個應該不用解釋了吧
D1:
MOV
R4,
#200
D2:
MOV
R5,
#248
DJNZ
R5,
$
DJNZ
R4,
D2
RET
END

閱讀全文

與單片機ALOOP相關的資料

熱點內容
精通編程入門 瀏覽:14
99單片機原理 瀏覽:59
linuxssh互信 瀏覽:288
支持128加密的瀏覽器 瀏覽:292
程序員下載器 瀏覽:48
退出雲伺服器代碼 瀏覽:900
軍狀如命令 瀏覽:263
如何安卓系統更新 瀏覽:74
linux命令在哪裡輸入 瀏覽:497
編程語言集合類怎麼選 瀏覽:93
如何將pdf轉化為word 瀏覽:11
邁克菲隔離區解壓密碼 瀏覽:785
怎麼用偉福編譯 瀏覽:867
計算機演算法專家 瀏覽:501
什麼app清理垃圾 瀏覽:643
android流媒體伺服器 瀏覽:183
各種演算法的時間復雜度是指 瀏覽:116
幫助高考生緩解壓力 瀏覽:850
自媒體聚合APP需要什麼資質 瀏覽:487
求標准體重的演算法 瀏覽:740