⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 抢答器.asm

📁 A six people s rushing replies an implement, use some s switches in toggle switch K0 ~ K5 is that ON
💻 ASM
字号:
        DIG   EQU  30H
        SEG   EQU  31H
        STATUS EQU 32H
        CHANGE EQU 33H
        ROTATE EQU 34H
        BFREQ EQU  35H
	WaJ   EQU  36H
        WANG  EQU  66H
        COUNT EQU  37H
        WAIT  EQU  38H
        TEMP  EQU  3DH
        TEMP1 EQU  3EH
        TEMP2 EQU  3FH

        FLAG  BIT  00H

	ORG   0000H
        AJMP  MAIN
        ORG   000BH
        AJMP  T0_INT
        ORG   001BH
        AJMP  T1_INT

T0_INT: DJNZ  COUNT,T0_RING
        CLR   ET0
        SETB  ET1
T0_RING:CPL  P1.0
        MOV   TH0,#0FEH
        MOV   TL0,#0CH
        RETI

T1_INT: DJNZ  WAIT,RING
        CLR   ET1
        SETB  ET0
RING:   MOV   TH1,#0FEH
        MOV   TL1,#0CH
        RETI

        ORG   0050H
MAIN:   MOV   DIG,#2
        MOV   SEG,#1
        MOV   DPTR,#TAB
START:  MOV   A,SEG
        MOVC  A,@A+DPTR
        MOV   P2,A
        MOV   P1,DIG
        ACALL DELAY1
        MOV   A,DIG
        RL    A
        MOV   DIG,A
        INC   SEG
        MOV   A,SEG
        CJNE  A,#7,START
        MOV   DIG,#02
        MOV   SEG,#01
        AJMP  START

IF_ON:  MOV   TMOD,#11H
        MOV   TH0,#0FEH
        MOV   TL0,#0CH
        MOV   TH1,#0FEH
        MOV   TL1,#0CH
        SETB  EA
        SETB  TR0
        SETB  TR1
        SETB  ET0
        MOV   COUNT,#255
        MOV   WAIT,#255
        MOV   WaJ,#0
NUM:    RRC   A
        INC   WaJ
        JC    NUM
        MOV   WANG,WaJ
        ACALL GET_STA
        SETB  FLAG
        MOV   CHANGE,#0FFH
        MOV   ROTATE,#18
DISPLAY:MOV   A,WaJ
        MOVC  A,@A+DPTR
        MOV   P2,A
        MOV   P1,STATUS
        ACALL DELAY2
        DEC   WANG
        MOV   A,WANG
        JZ    NO_RING
        DEC   ROTATE
        MOV   A,ROTATE
        JZ    NO_QUIVER
        CPL   FLAG
        JB    FLAG,DISPLAY
        MOV   A,STATUS
        MOV   STATUS,CHANGE
        MOV   CHANGE,A
        AJMP  DISPLAY

NO_RING:CLR   EA
        MOV   A,WaJ
        MOVC  A,@A+DPTR
        MOV   P2,A
        MOV   P1,STATUS
        ACALL DELAY2
        DEC   ROTATE
        MOV   A,ROTATE
        JZ    NO_QUIVER
        CPL   FLAG
        JB    FLAG,DISPLAY
        MOV   A,STATUS
        MOV   STATUS,CHANGE
        MOV   CHANGE,A
        AJMP  DISPLAY

NO_QUIVER:
        CLR   EA
NO_LOOP:MOV   A,WaJ
        MOVC  A,@A+DPTR
        MOV   P2,A
        MOV   P1,STATUS
        ACALL DELAY2
        AJMP  NO_LOOP

GET_STA:MOV   A,#0FFH
        MOV   R0,WaJ
GET_LP: RLC   A
        DJNZ  R0,GET_LP
        RL    A
        MOV   STATUS,A
        RET

IF_ON_TEMP:LJMP IF_ON

IF_OFF: POP   TEMP1
        POP   TEMP2
        CLR   EA
        AJMP  CONT1

DELAY1: MOV   R4,#100
LOOP12: MOV   R5,#07DH
LOOP11: MOV   P0,#0FFH
        MOV   A,P0
        INC   A
        JZ    CONT1
        ACALL DELAY
        MOV   P0,#0FFH
        MOV   A,P0
        CJNE  A,#0FFH,IF_ON_TEMP
CONT1:  DJNZ  R5,LOOP1
        DJNZ  R4,LOOP2
        RET

DELAY2: MOV   R6,#100
LOOP22: MOV   R7,#07DH
LOOP21: MOV   P0,#0FFH
        MOV   A,P0
        INC   A
        JNZ   CONT2
        ACALL DELAY
        MOV   P0,#0FFH
        MOV   A,P0
        INC   A
        JZ    IF_OFF
CONT2:  DJNZ  R7,LOOP1
        DJNZ  R6,LOOP2
        RET

DELAY:  MOV   R2,#20
LOOP2:  MOV   R3,#0FAH
LOOP1:  NOP
        NOP
        DJNZ  R3,LOOP1
        DJNZ  R2,LOOP2
        RET

D500:   MOV   R2,#2
D500_LP:MOV   BFREQ,#250
        DJNZ  BFREQ,$
        DJNZ  R2,D500_LP
        RET


TAB:    DB  3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH

⌨️ 快捷键说明

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