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

📄 keyrec.asm

📁 本系统以Atmel的AT89c52单片机为主控制器
💻 ASM
字号:
        STH0    EQU 41H
        STL0    EQU 42H
        TEMP    EQU 43H
        T1_BUF1 EQU 44H
        T1_BUF2 EQU 45H
	SIO_BUF	EQU 46H
	RPLAY_FLAG	BIT	00H
	SIO_FLAG	BIT	01H
	ORG     0000H
        LJMP    MAIN
        ORG     000BH
        LJMP    INT_T0
        ORG     0023H
          LJMP    SIO
        ORG     0030H
MAIN:
        MOV     SP,#60H
        MOV     SCON,#50H
        MOV     TMOD,#21H
        SETB    TR1
        MOV     TH1,#0FDH
        MOV     TL1,#0FDH
        MOV     PCON,#00H
        SETB    ES
        SETB    EA
	SETB	ET0
        MOV     R5,#00H
        MOV     R1,#80H
        MOV     R0,#40H
	MOV	20H,#00H
LOOP:	JBC	SIO_FLAG,TAN
	JBC	RPLAY_FLAG,RPLAY
        SJMP    LOOP
TAN:	MOV	A,SIO_BUF
	LCALL	PLAY
	SJMP	LOOP

RPLAY:   CLR	ES
         MOV    30H,#80H
RPLAY3:  MOV    A,R1
         CJNE   A,30H,RPLAY1
  	  CLR	RI
	 SETB	ES
	 LJMP	LOOP
RPLAY1:  MOV    R0,30H
         MOV	A,@R0
	ANL	A,#0FH
	LCALL	PLAY
	MOV    A,@R0
         SWAP   A
         ANL    A,#0FH
         MOV    B,#05H
         MUL    AB
         MOV    31H,A

RPLAY2:  LCALL	DELAY
         DJNZ   31H,RPLAY2
         INC    30H
         CLR    TR0
         SJMP   RPLAY3




PLAY:   RL      A
        MOV     B,A
        MOV     DPTR,#TABLE1
        MOVC    A,@A+DPTR
        MOV     TH0,A
        MOV     STH0,A
        MOV     A,B
        INC     A
        MOVC    A,@A+DPTR
        MOV     TL0,A
        MOV     STL0,A
        SETB    TR0
        RET



SIO:    PUSH    ACC
        PUSH    B
        CLR     RI
        CJNE    R5,#00H,RECE1
        MOV     A,SBUF
        CJNE    A,#0EBH,RECE_ERR
        INC     R5
        SJMP    SIO_EXIT
RECE1:  CJNE    R5,#01H,RECE_ERR
        MOV     A,SBUF
        MOV     B,A   ;-----------------
        CJNE    A,#0CH,RECE2
        MOV     R1,#80H
        LJMP    RECE4
RECE2:  CJNE    A,#0DH,RECE3
        SETB	RPLAY_FLAG
	LJMP    RECE4
RECE3:  ANL     A,#0FH
        CJNE    A,#0FH,RECE5
        ANL     B,#0F0H
        MOV     A,@R1
        ORL     A,B
        MOV     @R1,A
        CLR	TR0

        INC     R1
        CJNE    R1,#0C0H,RECE4
        MOV     R1,#80H
RECE4:
        MOV     R5,#00H
SIO_EXIT:POP     B
        POP     ACC
        RETI
RECE_ERR:MOV    A,#0EH
        SJMP    RECE4
RECE5:  MOV     A,SBUF
        CJNE    A,#0CH,RECE6
RECE6:  JNC      RECE_ERR
        MOV      @R1,A
        MOV	SIO_BUF,A
	SETB	SIO_FLAG
	SJMP     RECE4



INT_T0:
        MOV     TH0,STH0
        MOV     TL0,STL0
        CPL     P2.0
        RETI



TABLE1: DW 63742,63843,64029,64195
        DW 64342,64409,64533,64644
        DW 64695,64787,64870,64943
        








DELAY:  MOV     R7,#100
        MOV     R6,#0
DE1:    DJNZ    R6,$
        DJNZ    R7,DE1
        RET
        END

⌨️ 快捷键说明

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