rstj.asm

来自「这是一个关于人数统计的程序」· 汇编 代码 · 共 55 行

ASM
55
字号
	ORG	0000H
	LJMP	START
	ORG	0100H
START:	MOV      A,P0	;查置数位P0.4
        ANL     A,#10H
        JNZ     START
	MOV	A,P1	;送初始座位数
TS:	PUSH	A	;当前座位数压栈
	MOV	P2,A	;送数码管显示
	CLR	P0.0
ZZ:	MOV	A,P0
	ANL	A,#20H
	JZ	Z1	;查增一位P0.5,为0则进入增一模块
	MOV	A,P0
	ANL	A,#40H
	JNZ	ZZ	;查减一位P0.6,为0则进入减一模块
J1:     JNB     P0.6,DELAY12	;减一模块
DELAY12:LCALL	DELAY	;延时
	POP	A
        PUSH    A
        ANL     A,#0FH	
        CLR     C
        SUBB    A,#00H
        JNZ     J11	;判断个位是否为0
        POP     A
        SUBB    A,#07H	;为0,减7
        SJMP    TS
J11:     POP     A
        DEC	A	;不为0,减1
	SJMP	TS
Z1:     JNB     P0.5,DELAY11	;增一模块
DELAY11:LCALL	DELAY	;延时
        POP	A
        PUSH    A
        ANL     A,#0FH
        CLR     C
        SUBB    A,#09H	;判断个位是否为9
        JNZ     Z11	;不为9,跳转
        POP     A
        ADDC    A,#07H	;为9,增7
        SJMP    TS
Z11:    POP     A
        INC	A
	SJMP	TS
DELAY:	MOV	R1,#250	;延时模块
DELAY1:	MOV 	R2,#220
DELAY2:	NOP
	NOP
	NOP
	DJNZ	R2,DELAY2
	DJNZ	R1,DELAY1
RET
END

⌨️ 快捷键说明

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