1. 單片機匯編語言流水燈程序延時0.5秒 一共四個燈循環
4隻LED為共陽極連接,即單片機輸出端為低電平時即可點亮LED。
;用最直接的方式實現流水燈
ORG 0000H
START:MOV P1,#01111111B ;最下面的LED點亮
LCALL DELAY ;延時60秒
LCALL DELAY ;延時60秒
MOV P1,#10111111B ;最下面第二個的LED點亮
LCALL DELAY ;延時60秒
LCALL DELAY ;延時60秒
MOV P1,#11011111B ;最下面第三個的LED點亮 (以下省略)
LCALL DELAY
LCALL DELAY ;延時60秒
MOV P1,#11101111B
LCALL DELAY
LCALL DELAY ;延時60秒
MOV P1,#11110111B
LCALL DELAY
LCALL DELAY ;延時60秒
MOV P1,#11111011B
LCALL DELAY ;延時60秒
LCALL DELAY ;延時60秒
LCALL DELAY ;延時60秒
LCALL DELAY ;延時60秒
LCALL DELAY ;完成第一次循環點亮,延時約0.25秒
AJMP START ;反復循環
;延時子程序,12M晶振延時約250毫秒
DELAY: ;大約值:2us*256*256*2=260ms,也可以認為為250ms
PUSH PSW ;現場保護指令(有時可以不加)
MOV R4,#240
L3: MOV R2 ,#00H
L1: MOV R3 ,#00H
L2: DJNZ R3 ,L2 ;最內層循環:(256次)2個周期指令(R3減一,如果比1大,則轉向L2)
DJNZ R2 ,L1 ; 中層循環:256次
DJNZ R4 ,L3 ;外層循環:240次
POP PSW
RET
END
2. 單片機匯編語言程序,我想寫一個循環點亮的LED,然後用外部中斷0接到一個按鍵上,怎麼寫我需要詳細的程序
循環點亮LED燈,也就是流水燈效果的控制,可以用定時器來控制,這樣做相對代碼量較少而時間比較精確,外部中斷0接以按鍵,可以控制動態效果的啟停。程序如下:
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP EXT0 ;外部中斷0,控制流水燈啟停
ORG 000BH
LJMP T0ISR ;定時0控制流水燈循環點亮
ORG 0030H
MAIN:
MOV TMOD,#01H ;設置定時器0工作模式
MOV TH0,#HIGH(65536-60000) ;60毫秒定時
MOV TL0,#LOW(65536-60000)
SETB ET0
SETB EA
MOV A,#0FEH ;LED等初始化
MOV P0,A
SJMP $
EXT0:
CPL TR0
RETI
T0ISR:
CLR TR0
MOV TH0,#HIGH(65536-60000)
MOV TL0,#LOW(65536-60000)
SETB ET0
RL A
MOV P0,A ;循環點亮LED燈
RETI
END
3. 各位單片機達人幫個忙 用匯編語言做一個 發光二極體循環點亮的程序 要求 使八隻發光二極體做循環點亮一次
發光二極體循環點亮
八隻發光二極體左循環點亮一次、然後右循環點亮一次。
循環。
模擬試驗成功。
4. 單片機用匯編寫兩個數碼管顯示0到99循環的程序
1、新建項目,做好准備。
5. 51單片機匯編語言如何用定時器中斷實現數碼管從0-F每秒進1且循環進行。
ORG0000H
JMPBEGIN
ORG000BH
LJMPT0ISR
ORG0030H
TABLE:;共陰極數碼管顯示代碼表
DB3FH,06H,5BH,4FH,66H;01234
DB6DH,7DH,07H,7FH,6fh;56789
;---------------------------------------
BEGIN:
MOVTMOD,#01H
MOVTH0,#HIGH(65536-50000)
MOVTL0,#LOW(65536-50000)
SETBTR0
SETBET0
SETBEA
MOVR2,#20
CLRA
LOOP:
MOVDPTR,#TABLE
PUSHACC
MOVCA,@A+DPTR
MOVP0,A
POPACC
SJMPLOOP
T0ISR:
CLRTR0
MOVTH0,#HIGH(65536-50000)
MOVTL0,#LOW(65536-50000)
SETBTR0
DJNZR2,T0E
INCA
ANLA,#0FH
T0E:
RETI
END
6. 單片機匯編語言程序的三種基本結構
匯編語言程序有順序程序、分支程序、循環程序三種。分支結構的執行是依據一定的條件選擇執行路徑,而不是嚴格按照語句出現的物理順序。
分支結構的程序設計方法的關鍵在於構造合適的分支條件和分析程序流程,根據不同的程序流程選擇適當的分支語句。
(6)單片機匯編語言循環擴展閱讀:
注意事項:
匯編指令不區分大小寫,目的操作數是存結果的,原操作數是被操作的。
二進制數後跟b,十六進制數後跟h,十進制數不需特殊標記。
匯編源程序中,數據不能以字母開頭,需要在前面加上0,如0a000h。
7. 用匯編語言編寫51單片機程序讓LED燈亮0.5秒,滅2秒無限循環
ORG 0000H
MOV SP,#60H
E: CLR P1.0 ; P1.0 LED亮
ACALL DEL_1S ; 0.5 秒
SETB P1.0 ; P1.0 LED滅
ACALL DEL_2S ;2秒
SJMP E ; 循環
DEL_1S: MOV R2,#10 ; 0.5秒
JMP DEL_2S+2
DEL_2S: MOV R2,#40 ; 2秒
SETB TR1
LOOP: JNB TF1,$
MOV TL1,#0B0H
MOV TH1,#3CH
CLR TF1
DJNZ R2,LOOP
CLR TR1
RET
END
8. 怎麼用匯編語言實現for循環
匯編語言實現for循環十分容易,比如51匯編,用DJNZ指令就可以了,舉例如下:
C語言:
for(i=0;i<10;i++)a=a+i;
匯編語言:
i equ 30h
m equ 31h
......
mov i,#0
mov m,#0
mov r2,#10
loop:
mov a,i
add a,m
mov m,a
djnz r2,loop
9. 單片機led左移然後右移循環亮滅的匯編語言
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV A,#0FEH
MOV R2,#8
LOOP1:
MOV P0,A
LCALL DELAY
RL A
DJNZ R2,LOOP1
MOV R2,#8
LOOP2:
MOV P0,A
LCALL DELAY
RR A
DJNZ R2,LOOP2
SJMP MAIN
DELAY:
MOV R2,#200
DLY:
MOV R3,#250
DJNZ R3,$
DJNZ R2,DLY
RET
END