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

📄 mcu89c51hoter.asm

📁 这是用8951开发的便携式心电监护仪
💻 ASM
📖 第 1 页 / 共 5 页
字号:
start:  NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        LJMP  BEGIN
ORG     0BH
INTV:   LJMP    INTP
ORG     20H
        DB      64H
        DB      3CH
ORG     050H
FINIS:  MOV     A,77H
        JZ      FO1
        LCALL   HRN
FO1:    MOV   A, 40H
        JZ      FO2
        DEC     A
        JZ      FO2
        LCALL   TAEE
FO2:    MOV   A, 58H
        JZ      FO3
        MOV   A, #255
        LCALL   STN1
FO3:    MOV     PSW,#0
        MOV     DPTR,#0FF0H
        MOV     R0,#15
        MOV     R1,#6
PT10:   MOV     A,@R0
        MOVX    @DPTR,A
        DEC     R0
        INC     DPTR
        DJNZ    R1,PT10
        RET
;============================
ORG     0090H
PRINT:  LCALL   SIO0
        SETB    P3.0
        SETB    P3.1
PLL1:   MOV     A,68H
        LCALL   DIS1
        CLR     P1.5
        MOV     R0,#7FH
PDD1:   DJNZ    R1,PDD1
        DJNZ    R0,PDD1
        MOV     A,#0AH
        LCALL   SSI1
        JNC     PCONT
        SETB    P1.5
        MOV     A,#0FFH
        LCALL   DIS1
        MOV     R0,#7FH
PDD2:   DJNZ    R1,PDD2
        DJNZ    R0,PDD2
        SJMP    PLL1
PCONT:  LCALL   FINIS
PRTB:   MOV     DPTR,#LIBX0
        MOV     R0,#36
        LCALL   SIO5
        LCALL   TX0
        LCALL   TX1
        LCALL   TX2
        LCALL   TX3
        LCALL   tx4
        LCALL   TX5
        LCALL   PECG
        LCALL   PEVT
        MOV   DPTR, #LB1
        MOV   R0, #11
        LCALL   SIO5
PDD3:   LCALL   KSEK
        INC     A
        JZ      PDD3
        SJMP    PRTB
ORG     100H
BEGIN:  MOV   SP, #31
        CLR     P3.1
        MOV   PSW, #0
        LCALL   CRAM
        MOV     P1, #0
        MOV     R0, #64
        MOV     R1, #64
        MOV     A, #0
PRL1:   MOV     @R0, A
        INC     R0
        DJNZ    R1, PRL1
        LCALL   VDC
        LCALL   CLT
        LCALL   OTAB
        LCALL   SMT1
        LCALL   TTM
        LCALL   PTAB
        lcall   CLPTB
        MOV     DPTR, #20H
        MOV     A, #0
        MOVC    A, @A+DPTR
        MOV     62H, A
        MOV     A, #1
        MOVC    A, @A+DPTR
        MOV     63H, A
        LCALL   CTC
        LJMP    KRTN
;============================
CLPTB:  MOV     6EH,#0
        MOV     6FH,#0
        MOV     70H,#0
        MOV     71H,#0
        MOV     72H,#0
        MOV     73H,#0
        RET
ORG     0180H
PWF:    MOV     R0, #48
PWL:    MOV     A, PCON
        ORL     A, #1H
        MOV     PCON, A
        DJNZ    R0,PWL
        Ret
TX0:    MOV     A,#52H
        LCALL   SIO1
        MOV     A,54H
        LCALL   SIO4
        MOV     A,#0DH
        LCALL   SIO1
        MOV     A,#0AH
        LJMP    SIO1
;============================
;ERROR process program .

;---------------------------------------
ERRD:   MOV     DPTR,#0D00H
        LCALL   DSTU
        MOV     A,R1
        JZ      DOWN
        INC     A
        JZ      OVER
        SUBB    A,#10
        JC      DOWN
        SUBB    A,#220
        JNC     OVER
        MOV     A,R1
        CLR     C
        ADD     A,#9
        MOV     R0,A
        MOV     R1,#20
        MOV     R2,#0
EL1:    MOVX    A,@R0
        ADD     A,R2
        JC      NECG
        XCH     A,R2
        DEC     R0
        DJNZ    R1,EL1
        MOV     A,R2
        SUBB    A,#75
        JNC     NECG
NOIS:   MOV     A,#2
        RET
OVER:   MOV     A,#1
        RET
DOWN:   MOV     A,#3
        RET
NECG:   MOV     A,#4
        RET
ER2P:   MOV     DPTR,#ERR2
        MOV     R0,#6
        LCALL   SIO5
APP:    MOV     DPTR,#0D00H
        MOV     R0,#2
        MOV     R1,#230
        LCALL   DRAWC
        RET
ER4P:   MOV     DPTR,#ERR4
        MOV     R0,#7
        LCALL   SIO5
        SJMP    APP
ER1P:   MOV     DPTR,#ERR1
        MOV     R0,#9
        LCALL   SIO5
        SJMP    APP
ER3P:   MOV     DPTR,#ERR3
        MOV     R0,#9
        LCALL   SIO5
        SJMP    APP
;-------------------------------------------
ERRM:   LCALL   SIO0
        LCALL   ERRD
ERRL:   LCALL   FLAS2
        PUSH    ACC
        DEC     A
        JNZ     EOM2
        LCALL   ER1P
        POP     ACC
        SJMP    ERRL
EOM2:   DEC     A
        JNZ     EOM3
        LCALL   ER2P
        POP     ACC
        SJMP    ERRL
EOM3:   DEC     A
        JNZ     EOM4
        LCALL   ER3P
        POP     ACC
        SJMP    ERRL
EOM4:   LCALL   ER4P
        POP     ACC
        SJMP    ERRL
;-----------------------
ORG     0300H
BS1:    MOV   C, ACC.7
        JNC     BO1
BO0:    PUSH  ACC
        MOV   A, #45
        LCALL   SIO1
        POP   ACC
        CPL   A
        INC   A
BO1:    MOV   B, #100
        DIV   AB
        JZ      BO2
        ORL   A, #30H
        LCALL   SIO1
BO2:    MOV   A, B
        MOV   B, #10
        DIV   AB
        JZ      BO3
        ORL   A, #30H
        LCALL   SIO1
BO3:    MOV   A, B
        ORL   A, #30H
        LCALL   SIO1
        RET
;=======================
DRAS:   MOV   A, #74
        LCALL   sio1
        MOV   A, R0
        LCALL   BS1
        MOV   A, #44
        LCALL SIO1
        MOV   A, R1
        LCALL BS1
        MOV   A, #13
        LCALL   SIO1
        RET
;================================
ORG     0370H
LIBX0:  DB      1BH,61H
        DB      1BH,3FH,64H
        DB      1BH,30H
        DB      20H,20H,41H,6DH,62H,75H,6CH,61H,74H,6FH,72H,79H
        DB      20H,45H,43H,47H
        DB      20H,4DH,6FH,6EH,69H,74H,6FH,72H,0DH
        DB      1BH,3FH,62H,0DH
LIBX1:  DB      48H,0DH
        DB      1BH,61H,20H,20H,0DH
        DB      1BH,33H,0DH
LC11:   DB      58H,3AH,20H,32H,35H,6DH,6DH,2FH
        DB      53H,65H,63H,20H,20H,59H,3AH,20H
        DB      31H,30H,6DH,6DH,2FH,31H,6DH,76H
        DB      20H,20H,20H,0DH,0DH
LIBX2:  DB      64H,72H,6FH,70H,20H,20H,20H,20H
        DB      20H,20H,74H,69H,6DH,65H,73H,3AH
LIBX3:  DB      50H,72H,65H,6DH,61H,74H,75H,72H,65H
        DB      20H,74H,69H,6DH,65H,73H,3AH
LIBX4:  DB      53H,2DH,54H,20H,6CH,65H,76H,65H,6CH
        DB      20H,6CH,69H,6DH,69H,74H,3AH
        DB      20H,2DH,30H,2EH,32H,6DH,76H,0DH
ERR1:   DB      'o','v','e','r','f','l','o','w',0dh
ERR2:   DB      'n','o','i','s','e',0dh
ERR3:   DB      'd','o','w','n','f','l','o','w',0dh
ERR4:   DB      'n','o',' ','E','C','G',0dh
;==========================
ORG   041EH             ;
PEN:    PUSH  ACC       
        MOV   A, #27
        LCALL   SIO1
        POP   ACC
        LCALL   SIO1
        MOV   A, #13
        LJMP    SIO1
TX3:    MOV   DPTR, #LIBX4
        MOV   R0, #24
        LCALL   SIO5
        RET
;===========================
S7S:    MOV   R4, #47
        CLR   C
s7l:    INC   R4
        MOV   A, R1
        SUBB  A, R3
        MOV   R1, A
        MOV   A, R0
        SUBB  A, R2
        MOV   R0, A
        JNC     S7L
        MOV   A, R1
        ADD   A, R3
        MOV   R1, A
        MOV   A, R0
        ADDC  A, R2
        MOV   R0, A
        MOV   A, R4
        LJMP    SIO1
;--------------------------
SIO7:   MOV     R2,#27H
        MOV   R3, #16
        LCALL   S7S
        MOV   R2, #3
        MOV   R3, #232
        LCALL   S7S
        MOV   R2, #0
        MOV   R3, #100
        LCALL   S7S
        MOV   R3, #10
        LCALL   S7S
        MOV   A, R1
        ORL   A, #30H
        LCALL   SIO1
        MOV   A, #13
        LJMP    SIO1
;=========================
TX5:    MOV   DPTR, #LIBX3
        MOV   R0, #16
        LCALL   SIO5
        MOV   R0, 78H
        MOV   R1, 79H
        LCALL   sio7
        MOV   DPTR, #LIBX2
        MOV   R0, #16
        LCALL   SIO5
        MOV   R0, 7AH
        MOV   R1, 7BH
        LJMP    SIO7
DIVR:   MOV   B, R0
        DIV   AB
        MOV   R7, A
        MOV   A, B
        ADD   A, ACC
        CLR   C
        SUBB  A, R0
        JC    T5E
        INC   R7
T5E:    RET
;==========================
MS1:    PUSH  DPH
        PUSH  DPL
        MOVX  A, @DPTR
        MOV   R1, A
        MOV   A, DPL
        ADD   A, R0
        MOV   DPL, A
        JNC   MO1
        INC   DPH
        ANL   DPH, #0FH
MO1:    MOVX  A, @DPTR
        CLR   C
        SUBB  A, R1
        JC      MO2
        LCALL   DIVR
        SJMP    MO3
MO2:    CPL   A
        INC   A
        LCALL   DIVR
        MOV   A, R7
        CPL   A
        INC   A
        MOV   R7, A
MO3:    POP   DPL
        POP   DPH
        MOV   R4, #0
        MOV   R5, #0
        MOV   A, R7
        JNZ     MO4
        RET
MO4:    MOVX  A, @DPTR
MSL:    ADD   A, R7
        MOV   R6, A
        INC   DPTR
        ANL   DPH, #0FH
        MOVX  A, @DPTR
        CLR   C
        SUBB  A, R6
        JC      MO6
        SUBB  A, R5
        JC      MO5
        ADD   A, R5
        MOV   R5, A
        MOV   A, R0
        MOV   R3, A
MO5:    MOV   A, R6
        DJNZ  R0,MSL
        RET
MO6:    CPL   A
        INC   A
        CLR   C
        SUBB  A, R4
        JC      MO5
        ADD   A, R4
        MOV   R4, A
        MOV   A, R0
        MOV   R2, A
        SJMP    MO5
;============;=======================
ORG     0520H
SX1:    MOVX  A, @DPTR          ;
        MOV   R0, A
        INC   DPTR
        MOVX  A, @DPTR
        MOV   DPL, A
        MOV   A, R0
        MOV   DPH, A
        MOVX  A, @DPTR
        PUSH  ACC
        LCALL   BLM
        POP   ACC
        CLR   C
        SUBB  A, R1
        JNC     sx11
        CPL   A
        INC   A
SX11:   XCH   A, R1
        RET
;=======================
RHC:    MOV   R0, #0
        MOVX  A, @R0
        MOV   DPTR, #2H
        MOV   R4, #0
        MOV   R5, #0
RHL:    PUSH  DPH
        PUSH  DPL
        PUSH  ACC
        MOVX  A, @DPTR
        MOV   R0, A
        INC   DPTR
        MOVX  A, @DPTR
        MOV   DPL, A
        MOV   A, R0
        MOV   DPH, A
        MOVX  A, @DPTR
        PUSH  ACC
        LCALL BLM
        POP   ACC
        CLR   C
        SUBB  A, R1
        JNC   R11
        CPL   A
        INC   A
R11:    ADD   A, R5
        XCH   A, R5
        JNC   R12
        INC   R4
R12:    POP   ACC
        POP   DPL
        POP   DPH
        INC   DPTR
        INC   DPTR
        DEC   A
        JNZ   RHL
        MOV   R0, #0
        MOVX  A, @R0
        MOV   R0, A
        MOV   A, R5
        MOV   R1, A
        MOV   A, R4
        LCALL DIVB
        MOV   54H, R1
        RET
;==============================
BLM:    MOV   A, DPL     
        CLR   C
        SUBB  A, #15
        MOV   DPL, A
        JNC   BLO1
        DEC   DPH
        ANL   DPH, #0FH
BLO1:   MOV   A, #0
        MOV   R0, #4
        MOV   R1, #0
        MOV   R2, #0
BLL1:   MOVX  A, @DPTR
        ADD   A, R1
        JNC   BLO2
        INC   R2
BLO2:   XCH   A, R1
        INC   DPTR
        ANL   DPH, #0FH
        DJNZ  R0, BLL1
        MOV   R0, #2
BLL2:   CLR   C
        XCH   A, R2
        RRC   A
        XCH   A, R2
        XCH   A, R1
        RRC   A
        XCH   A, R1
        DJNZ  R0, BLL2  ;
        RET
;=========================
TTMH:   MOV     A,IE    ;
        MOV     IE,#0
        PUSH    ACC
        MOV     DPTR,#13FAH
        MOV     R0,#0FH
        MOV     R1,#6
TTL:    MOV     A,@R0
        MOVX    @DPTR,A
        INC     DPTR
        DEC     R0
        DJNZ    R1,TTL
        POP     IE
        RET
;===========================
PTABH:  PUSH    0H
        MOV     A,6AH
        MOV     DPL,A
        ADD     A,#18
        MOV     6AH,A
        MOV     A,69H
        MOV     DPH,A
        ADDC    A,#0
        MOV     69H,A
        INC     68H
        MOV     R0,#6
        MOV     R4,#13H
        MOV     R5,#0FAH
PHL:    MOV     A,DPH
        MOV     DPH,R4
        MOV     R4,A
        MOV     A,DPL
        MOV     DPL,R5
        MOV     R5,A
        MOVX    A,@DPTR
        INC     DPTR
        PUSH    DPH
        MOV     DPH,R4
        POP     04H
        PUSH    DPL
        MOV     DPL,R5
        POP     05H
        MOVX    @DPTR,A
        INC     DPTR
        DJNZ    R0,PHL
        POP     ACC
        MOVX    @DPTR,A
        INC     DPTR
        MOV     A,64H
        MOVX    @DPTR,A
        INC     DPTR
        MOV     A,DPL
        ADD     A,#4
        MOV     6FH,A
        MOV     A,DPH
        ADDC    A,#0
        MOV     6EH,A
        RET
;=========================
PFO3:   MOV     PSW,#0
        PUSH    IE
        MOV     IE,#0
        MOV     DPTR,#13FAH
        MOV     R0,#0FH
        MOV     R1,#6
PFL:    MOV     A,@R0
        MOVX    @DPTR,A
        INC     DPTR
        DEC     R0
        DJNZ    R1,PFL
        POP     IE
        RET
;========================================
PSTOP:  MOV     A,6AH
        MOV     DPL,A
        ADD     A,#18
        MOV     6AH,A
        MOV     A,69H
        MOV     DPH,A
        ADDC    A,#0
        MOV     69H,A
        INC     68H
        MOV     R0,#6
        MOV     R4,#13H
        MOV     R5,#0FAH
PSL1:   MOV     A,DPH
        MOV     DPH,R4
        MOV     R4,A
        MOV     A,DPL
        MOV     DPL,R5
        MOV     R5,A
        MOVX    A,@DPTR
        INC     DPTR
        PUSH    DPH
        MOV     DPH,R4
        POP     04H
        PUSH    DPL
        MOV     DPL,R5
        POP     05H
        MOVX    @DPTR,A
        INC     DPTR
        DJNZ    R0,PSL1
        MOV     A,#128
        MOVX    @DPTR,A
        INC     DPTR
        MOV     A,64H
        MOVX    @DPTR,A
        INC     DPTR
        INC     DPTR
        INC     DPTR
        INC     DPTR
        INC     DPTR
        PUSH    IE

⌨️ 快捷键说明

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