keyint.asm

来自「51系列单片机实验课程:按键显示程序 (在数字键上按数字」· 汇编 代码 · 共 98 行

ASM
98
字号
	ORG	0000H
	AJMP	START
	ORG	0003H
	AJMP	X0INT
	ORG	0013H
	AJMP	X1INT
	ORG	0100H

DISBUF	EQU	30H
POSIT	EQU	38H

START:
	MOV	DISBUF, #2
	MOV	DISBUF+1, #9
	SETB	INT0
	SETB	INT1
	SETB	IT0
	SETB	IT1
	SETB	EX0
	SETB	EX1
	SETB	EA
LOOP:	
	LCALL	DISPLAY
	AJMP	LOOP

DISPLAY:
	
	MOV	R0, #DISBUF
	MOV	DPTR, #TABSEG
	MOV	A, @R0
	MOVC	A, @A+DPTR
	MOV	P0, A
	SETB	P1.3
	NOP
	CLR	P1.3
	MOV	P0, #1
	SETB	P1.2
	NOP	
	CLR	P1.2
	INC	R0
	MOV	P0, #0
	SETB	P1.2
	NOP	
	CLR	P1.2
	MOV	A, @R0
	MOVC	A, @A+DPTR
	MOV	P0, A
	SETB	P1.3
	NOP
	CLR	P1.3
	MOV	P0, #2
	SETB	P1.2
	NOP	
	CLR	P1.2
	MOV	P0, #0
	SETB	P1.2
	NOP	
	CLR	P1.2
	RET

X0INT:
	DJNZ	R2, $
	MOV	R3, DISBUF
	MOV	R4, DISBUF+1
	INC	R3
	CJNE	R3, #10, OUT1
	MOV	R3, #0
	INC	R4
	CJNE	R4, #10, OUT1
	MOV	R4, #0
OUT1:	MOV	DISBUF, R3
	MOV	DISBUF+1, R4
	RETI

X1INT:
	DJNZ	R2, $
	MOV	R3, DISBUF
	MOV	R4, DISBUF+1
	DEC	R3
	CJNE	R3, #255, OUT2
	MOV	R3, #9
	DEC	R4
	CJNE	R4, #255, OUT2
	MOV	R4, #9
OUT2:	MOV	DISBUF, R3
	MOV	DISBUF+1, R4
	RETI

TABSEG:  
	DB 	0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
	  ;	  0   1     2    3   4   5   6    7   8   9
	DB	88H,83H,0C6H,0A1H,86H,08EH,0BFH,0FFH,0F7H
          ;	 A   B    C   D    E    F   -    消隐  _
	
	END


⌨️ 快捷键说明

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