① 51單片機匯編語言程序設計:
ORG0000H
LJMPMAIN
ORG0030H
MAIN:
CLR00H
START:
MOV30H,#0FEH
MOV31H,#0FFH
MOVR2,#12
LOOP:
JBP3.2,LOOP1
JNBP3.2,$
CPL00H
SJMPSTART
LOOP1:
JB00H,LOOPR
MOVP0,30H
MOVP1,31H
MOVA,30H
RLCA
PUSHACC
XCHA,31H
RLCA
MOV31H,A
MOVC,ACC.4
POPACC
MOVACC.0,C
MOV30H,A
LCALLDELAY
DJNZR2,LOOP
SJMPSTART
LOOPR:
JBP3.2,LOOPR1
JNBP3.2,$
CPL00H
LJMPSTART
LOOPR1:
MOVP0,30H
MOVP1,31H
MOVA,31H
RRCA
PUSHACC
XCHA,30H
RRCA
MOV30H,A
POPACC
MOVACC.3,C
MOV31H,A
LCALLDELAY
DJNZR2,LOOPR
LJMPSTART
DELAY:
MOVR3,#200
DLY:
MOVR4,#250
DJNZR4,$
DJNZR3,DLY
RET
END
② 求51單片機按鍵點燈匯編程序,按一下按鍵燈亮(一直亮),再按一下滅
;以下為一個按鍵控制一個燈的程序!!!
ORG 0000H
SETB P1.0
START:
JB P1.0,NEXT ;設按鍵為低電平有效。
JNB P1.0,$
CPL P3.0
NEXT:
SJMP START
END
③ 51單片機用計數器中斷實現100以內的按鍵計數,匯編語言程序
試試下列程序:
ORG 0000H
JMP START
ORG 000BH
JMP T0_INT
;------------------------------
START:
MOV TMOD, #06H
MOV TH0, #255
MOV TL0, #255
MOV IE, #82H
SETB TR0
MOV R2, #0
MOV R3, #0
MOV DPTR, #TAB
;------------------------------
M_LOOP:
MOV A, R3
MOVC A, @A + DPTR
MOV P2, A
MOV A, R2
MOVC A, @A + DPTR
MOV P0, A
SJMP M_LOOP
;------------------------------
T0_INT:
JNB P3.4, T0_INT
INC R3
CJNE R3, #10, T0_END
MOV R3, #0
INC R2
CJNE R2, #10, T0_END
MOV R2, #0
T0_END:
RETI
;------------------------------
TAB: DB 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f
;------------------------------
END
④ 51單片機鍵盤匯編程序
KEYVAL EQU 30H
KEYSCAN EQU 31H
KEYTM EQU 32H
KEYSEL:
MOV KEYVAL,#0
MOV KEYSCAN,#0EFH
LCALL GETKEY
MOV A,KEYTM
JZ KEYS1
MOV KEYVAL,A
SJMP KEYRTN
KEYS1:
MOV KEYSCAN,#0DFH
LCALL GETKEY
MOV A,KEYTM
JZ KEYS2
CLR C
ADD A,#4
MOV KEYVAL,A
SJMP KEYRTN
KEYS2:
MOV KEYSCAN,#0BFH
LCALL GETKEY
MOV A,KEYTM
JZ KEYS3
CLR C
ADD A,#8
MOV KEYVAL,A
SJMP KEYRTN
KEYS3:
MOV KEYSCAN,#7FH
LCALL GETKEY
MOV A,KEYTM
JZ KEYRTN
CLR C
ADD A,#12
MOV KEYVAL,A
KEYRTN:
RET
;--------------------
GETKEY:
MOV KEYTM,#0
MOV A,KEYSCAN
MOV P3,A
NOP
MOV A,P3
ANL A,#0FH
XRL A,#0FH
JZ NOKEY
MOV R2,#10
LCALL DELAY
MOV A,P3
ANL A,#0FH
XRL A,#0FH
JZ NOKEY
MOV A,P3
ANL A,#0FH
MOV R7,A
SF:
MOV A,P3
ANL A,#0FH
XRL A,#0FH
JNZ SF
MOV A,R7
CJNE A,#0EH,NK1
MOV KEYTM,#1
SJMP NOKEY
NK1:
CJNE A,#0DH,NK2
MOV KEYTM,#2
SJMP NOKEY
NK2:
CJNE A,#0BH,NK3
MOV KEYTM,#3
SJMP NOKEY
NK3:
CJNE A,#07H,NOKEY
MOV KEYTM,#4
NOKEY: RET
⑤ 51 單片機 鍵盤掃描 匯編程序
矩陣就是送高低電平來確定你按下的是哪一個按鍵,基本就是給高四位送高,低四位送設低,讀出在哪一行(或列),然後反轉再確認在那一列(或行),這不就確定了第幾行,第幾列的按鍵被按下了。
⑥ 急求,51單片機走馬燈+按鍵暫停這個用匯編語言編一個程序,圖
ORG0000H
LJMPMAIN
ORG0030H
MAIN:
JBP1.0,MAIN1
JNBP1.0,$
MOVP0,#0FCH
SJMPMAIN
MAIN1:
JBP1.1,MAIN2
JNBP1.1,$
MOVP0,#0F3H
SJMPMAIN
MAIN2:
JBP1.2,MAIN3
JNBP1.2,$
MOVP0,#0CFH
SJMPMAIN
MAIN3:
JBP1.3,MAIN
JNBP1,3,$
MOVP0,#3FH
SJMPMAIN
END
⑦ 51單片機匯編語言編程獨立按鍵
四個按鍵,定義如下:
KEY1 BIT P3.0
KEY2 BIT P3.1
KEY3 BIT P3.2
KEY4 BIT P3.3
按鍵處理程序:
;-----------------------------------
READ_KEY:
JB KEY1, K2
CALL DELAY
JB KEY1, K2
JNB KEY1, $
PUSH ACC
INC 75H
MOV A, 75H
CJNE A, #10, ZINT01
MOV 75H, #0
ZINT01:
POP ACC
JMP K_EXIT
;---------------
K2: JB KEY2, K3
CALL DELAY
JB KEY2, K3
JNB KEY2, $
PUSH ACC
INC 76H
MOV A, 76H
CJNE A, #10, ZINT01
MOV 76H, #0
ZINT01:
POP ACC
JMP K_EXIT
;---------------
K3: JB KEY3, K4
CALL DELAY
JB KEY3, K4
JNB KEY3, $
PUSH ACC
DEC 75H
MOV A, 75H
CJNE A, #255, ZINT03
MOV 75H, #9
ZINT03:
POP ACC
JMP K_EXIT
;---------------
K4: JB KEY4, K_EXIT
CALL DELAY
JB KEY4, K_EXIT
JNB KEY4, $
PUSH ACC
DEC 76H
MOV A, 76H
CJNE A, #255, ZINT04
MOV 76H, #9
ZINT04:
POP ACC
K_EXIT:
RET
;---------------
DELAY:
DJNZ R7, $
DJNZ R7, $
RET
;-----------------------------------
⑧ 51單片機匯編語言按鍵如何編程
編程時,要把整個程序,分解成一個一個模塊。
一個模塊,只包括一個功能。
那麼,KEY 模塊:
讀出按鍵、消除抖動、讀取鍵值,返回鍵值。
鍵值包括:00H、08H... 20H,FFH(無鍵)。
這個 KEY 模塊,到這就完了。
按鍵如何處理,則是另外的模塊。
樓主流程圖,包羅萬象,好像是個主程序。不好弄。
⑨ 51單片機匯編語言編程
這么簡單的要求,不用大動干戈。 看看下面的程序,是不是最簡單: ORG 0000H SETB TR0 ;啟動T0 MOV R2, #250 ;定時計數初值 LOOP: MOV TH0, #(8192 - 8000) / 32 ;
⑩ 51單片機用匯編語言編製程序
數碼管顯示XX,並保持...
----
顯示 XX ?