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

📄 p89c58t.asm

📁 单片机RS232/RS485串行发送实验(双机通讯)。 实验步骤: (1)
💻 ASM
字号:
        ORG 0000H
        LJMP START
        TEN EQU P1.0
START:  MOV A,#43H
        MOV DPTR,#0FF20H
        MOVX @DPTR,A
        MOV TMOD,#21H
        MOV TL1,#0E8H ;F=11.0592,BPS=2400
        MOV TH1,#0E8H
        SETB TR1
        MOV 87H,#80H
        MOV SCON,#0D8H
L0:     MOV R0,#79H
        MOV A,#10H
LT1:    MOV @R0,A
        INC R0
        CJNE R0,#7EH,LT1
        MOV A,#11H
        MOV @R0,A
        MOV R0,#59H
        MOV A,#7EH
        MOVX @R0,A
L1:     LCALL X2
        CJNE A,#1FH,L3
        setb TEN
        LCALL SEND
        clr TEN
        SJMP L0
L3:     setb TEN
        LCALL SEND
        clr TEN
        LCALL X3
        DB 79H,7EH
        SJMP L1
;----- -------------------------
X3:     MOV R4,A
        MOV R0,#59H
        MOVX A,@R0
        MOV R1,A
        MOV A,R4
        MOV @R1,A
        mov b,a
        CLR A
        POP DPH
        POP DPL
        MOVC A,@A+DPTR
        INC DPTR
        CJNE A,01H,X30
        CLR A
        MOVC A,@A+DPTR
X31:    MOVX @R0,A
        INC DPTR
        PUSH DPL
        PUSH DPH
        RET
X30:    DEC R1
        MOV A,R1
        SJMP X31
;----------------------
X2:     MOV R6,#50H
X0:     ACALL XLE
        JNB ACC.5,XX0
        DJNZ R6,X0
        MOV R6,#20H
        MOV R0,#59H
        MOVX A,@R0
        MOV R0,A
        MOV A,@R0
        MOV R7,A
        MOV A,#10H
        MOV @R0,A
X1:     ACALL XLE
        JNB ACC.5,XX1
        DJNZ R6,X1
        MOV A,R7
        MOV @R0,A
        AJMP X2
XX1:    MOV R6,A
        MOV A,R7
        MOV @R0,A
        MOV A,R6
XX0:    RET
;-------------------------
XLE:    ACALL DIS
        LCALL KEY
        MOV R4,A
        MOV R1,#48H
        MOVX A,@R1
        MOV R2,A
        INC R1
        MOVX A,@R1
        MOV R3,A
        MOV A,R4
        XRL A,R3
        MOV R3,04H
        MOV R4,02H
        JZ X10
        MOV R2,#88H
        MOV R4,#88H
X10:    DEC R4
        MOV A,R4
        XRL A,#82H
        JZ X11
        MOV A,R4
        XRL A,#0EH
        JZ X11
        MOV A,R4
        ORL A,R4
        JZ X12    
        MOV R4,#20H
        DEC R2
        SJMP X13
X12:    MOV R4,#0FH
X11:    MOV R2,04H
        MOV R4,03H
X13:    MOV R1,#48H
        MOV A,R2
        MOVX @R1,A
        INC R1
        MOV A,R3
        MOVX @R1,A
        MOV A,R4
        RET
LS3:    DB 07H,04H,08H,05H,09H,06H,0AH
        DB 0BH,01H,00H,02H,0FH,03H,0EH
        DB 0CH,0DH
;-----------------------------------------
DIS:    PUSH DPH
        PUSH DPL
        SETB RS1
        MOV R0,#7EH
        MOV R2,#20H
        MOV R3,#00H
        MOV DPTR,#LS0
LS2:    MOV A,@R0
        MOVC A,@A+DPTR
        MOV R1,#22H
        MOVX @R1,A
        MOV A,R2
        DEC R1
        CPL A
        MOVX @R1,A
        CPL A
        DEC R0
LS1:    DJNZ R3,LS1
        CLR C
        RRC A
        MOV R2,A
        JNZ LS2
        INC R1
        MOV A,#0FFH
        MOVX @R1,A
        CLR RS1
        POP DPL
        POP DPH
        RET
LS0:    DB 0C0H,0F9H,0A4H,0B0H,99H,92H
        DB 82H,0F8H,80H,90H,88H,83H,0C6H
        DB 0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFH
;------------------------------------------
KEY:    SETB RS1
        MOV R2,#0FEH
        MOV R3,#08H
        MOV R0,#00H
LP1:    MOV A,R2
        MOV R1,#21H
        MOVX @R1,A
        RL A
        MOV R2,A
        MOV R1,#23H
        MOVX A,@R1
        CPL A
        ANL A,#0FH
        JNZ LP0
        INC R0
        DJNZ R3,LP1
        MOVX A,@R1
        JB ACC.4,XP33
        MOV A,#19H
        SJMP XP3
XP33:   MOV A,#20H
XP3:    CLR RS1
        RET
LP0:    CPL A
        JB ACC.0,XP0
        MOV A,#00H
        SJMP LPP
XP0:    JB ACC.1,XP1
        MOV A,#08H
        SJMP LPP
XP1:    JB ACC.2,XP2
        MOV A,#10H
        SJMP LPP
XP2:    JB ACC.3,XP33
        MOV A,#18H
LPP:    ADD A,R0
        CLR RS1
        CJNE A,#10H,LX0
LX0:    JNC XP35
        MOV DPTR,#LS3
        MOVC A,@A+DPTR
XP35:   RET
;--------------------------------
SEND:   MOV SBUF,A
YTXD1:  JBC TI,EXIT1
        SJMP YTXD1
EXIT1:  RET
YRXD:   JBC RI,YRXD1
        SJMP YRXD
YRXD1:  MOV A,SBUF
        RET
        END

⌨️ 快捷键说明

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