① 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 ?