jk8-1.asm

来自「微机原理课程 所有讲义PPT 课程全实验(包括代码程序设计实验报告) 习」· 汇编 代码 · 共 79 行

ASM
79
字号
CN_PORT	EQU	0E100H
ST_PORT	EQU	0E100H
A_PORT	EQU	0E101H
B_PORT	EQU	0E102H
C_PORT	EQU	0E103H
TL_PORT	EQU	0E104H
TH_PORT	EQU	0E105H
BUFFER	EQU	40H
	ORG	0000H
MAIN:	MOV	SP,#50H
	MOV	PSW,#00H
MONITOR:LCALL	DISKEY
	SJMP	MONITOR
ORG	1000H
DISKEY:	SETB	RS0
	MOV	DPTR,#CN_PORT
	MOV	A,#03H
	MOVX	@DPTR,A
KEYIN:	MOV	R7,#0FFH
	LCALL	TSTKEY
	JNZ	KEYPRES
	SJMP	KEYIN
KEYPRES:	LCALL	DELAY
	MOV	R7,#0FFH
	LCALL	TSTKEY
	JNZ	KEYDOMN
	SJMP	KEYIN
KEYDOMN:MOV	R7,#01H
SCANKEY:LCALL	TSTKEY
	JNZ	FINDKEY
NXTSCAN:MOV	A,R7
	RL	A
	JNB	ACC.6,KPSCAN
	MOV	A,#01H
KPSCAN:	MOV	R7,A
	SJMP	SCANKEY
FINDKEY:	ACALL	FINDADD
	MOV	R6,A
	MOV	A,R7
	ACALL	FINDADD
	MOV	R7,A
	MOV	A,R6
	MOV	B,#6
	MUL	AB
	ADD	A,R7
	PUSH	ACC
WAITUP:	MOV	R7,#0FFH
	LCALL	TSTKEY
	JNZ	WAITUP
	POP	ACC
BK_PT:	CLR	RS0
	RET

FINDADD:	MOV	B,#0
FINDNXT:	RRC	A
	JC	FOUND
	INC	B
	SJMP	FINDNXT
FOUND:	MOV	A,B
	RET

TSTKEY:	MOV	DPTR,#B_PORT
	MOV	A,R7
	MOVX	@DPTR,A
	MOV	DPTR,#C_PORT
	MOVX	A,@DPTR
	CPL	A
	ANL	A,#0FH
	RET
DELAY:MOV	R3,#200
DIMS:	MOV	R2,#02H
DL:	MOV	R5,#0FFH
DL1:	DJNZ	R5,DL1
	DJNZ	R2,DL
	DJNZ	R3,DIMS
	RET	
	END

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?