8255_1_2.asm
来自「我学单片机89C51时编的大部分程序都在里面」· 汇编 代码 · 共 42 行
ASM
42 行
ORG 0000H
LJMP START
ORG 0030H
START: MOV DPTR,#7FFFH ;送控制字
MOV A,#90H ;A口为输入,B口、C口为输出
MOVX @DPTR,A
;读A口,消抖
MOV DPTR,#7FFCH
MOVX A,@DPTR
CPL A
ANL A,#0FH
JZ START
LCALL D10MS
MOVX A,@DPTR
CPL A
ANL A,#0FFH
JZ START
MOV B,A
KEY: MOVX A,@DPTR
CPL A
ANL A,#0FFH
JNZ KEY ;判断是那个键按下,并执行相应操作
LCALL D10MS
MOV A,B
JZ NEXT
MOV DPTR,#7FFDH ;写B口,LED输出
MOV A,#0FFH
MOVX @DPTR,A
MOV DPTR,#7FFEH ;写C口,蜂鸣
MOV A,#00H
MOVX @DPTR,A
NEXT: LJMP START
SJMP $
D10MS: MOV R7,#10 ;10MS延时程序
DS11: MOV R6,#50
DS22: DJNZ R6,DS22
DJNZ R7,DS11
RET
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?