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

📄 sunliang11.asm

📁 电子报警器源程序,包含键盘程序,动态扫描
💻 ASM
字号:
;40H、41H、42H、43H为总里程计数,44H、45H分别为计百米、米单元。
;50H、51H、52H、53H、54H、55H、56H、57H为总里程显示单元。
;62H、63H均为速度里程计数,64H、65H、66H、67H为辅助计算单元,68H、69H为显示用延时。
;60H、61H为速度显示单元。
;R4、R5、R6、R7为计算用单元。
;每20个脉冲为一米里程。
        ORG   0000H
        LJMP  START
        ORG   000BH
        LJMP  TS
        ORG   0013H
        LJMP  SERVE
        ORG   0200H
START:  MOV   SP,#08H
        MOV   IE,#86H
        MOV   IP,#80H
        MOV   TMOD,#09H
        CLR   A
        MOV   63H,A
        MOV   R4,#14H
        MOV   TH0,#03CH
        MOV   TL0,#0B0H
        SETB  TR0
XS:     LCALL HS
        LCALL DISUP
        LJMP  XS

        ORG   0300H
HS:     MOV   A,40H
        LCALL HSS
        MOV   50H,R6
        MOV   51H,R7
        MOV   A,41H
        LCALL HSS
        MOV   52H,R6
        MOV   53H,R7
        MOV   A,42H
        LCALL HSS
        MOV   54H,R6
        MOV   55H,R7
        MOV   A,43H
        LCALL HSS
        MOV   56H,R6
        MOV   57H,R7
HS1:    MOV   A,63H
        MOV   B,#24H
        MUL   AB
        MOV   64H,B
        MOV   65H,A
        LCALL DV
        MOV   A,66H
        LCALL HSS
        MOV   61H,R6
        MOV   60H,R7
        RET

HSS:    MOV   B,#0AH
        DIV   AB
        MOV   R6,A
        MOV   R7,B
        RET

DV:     CLR   C
        MOV   A,64H
        SUBB  A,#0C8H
        JC    DV0
        SETB  OV
        MOV   66H,#00H
        LJMP  DV4
DV0:    MOV   R5,#8
DV1:    MOV   A,65H
        RLC   A
        MOV   65H,A
        MOV   A,64H
        RLC   A
        MOV   64H,A
        MOV   F0,C
        CLR   C
        SUBB  A,#0C8H
        ANL   C,/F0
        JC    DV2
        MOV   64H,A
DV2:    CPL   C
        MOV   A,66H
        RLC   A
        MOV   66H,A
        DJNZ  R5,DV1
        MOV   A,64H ;四舍五入
        ADD   A,64H
        JC    DV3
        SUBB  A,#0C8H
        JC    DV4
DV3:    INC   66H
DV4:    CLR   OV
        RET

        ORG   0600H
DISUP:  MOV   DPTR,#TAB            ;显示子程序
        MOV   A,50H
        MOVC  A,@A+DPTR
        MOV   P2,A
        CLR   P0.0
        LCALL DELAY
        SETB  P0.0
        MOV   DPTR,#TAB
        MOV   A,51H
        MOVC  A,@A+DPTR
        MOV   P2,A
        CLR   P0.1
        LCALL DELAY
        SETB  P0.1
        MOV   A,52H
        MOVC  A,@A+DPTR
        MOV   P2,A
        CLR   P0.2
        LCALL DELAY
        SETB  P0.2
        MOV   A,53H
        MOVC  A,@A+DPTR
        MOV   P2,A
        CLR   P0.3
        LCALL DELAY
        SETB  P0.3
        MOV   A,54H
        MOVC  A,@A+DPTR
        MOV   P2,A
        CLR   P0.4
        LCALL DELAY
        SETB  P0.4
        MOV   A,55H
        MOVC  A,@A+DPTR
        MOV   P2,A
        SETB  P2.7
        CLR   P0.5
        LCALL DELAY
        SETB  P0.5
        CLR   P2.7
        MOV   A,56H
        MOVC  A,@A+DPTR
        MOV   P2,A
        CLR   P0.6
        LCALL DELAY
        SETB  P0.6
        MOV   A,57H
        MOVC  A,@A+DPTR
        MOV   P2,A
        CLR   P0.7
        LCALL DELAY
        SETB  P0.7
        MOV   A,60H
        MOVC  A,@A+DPTR
        MOV   P2,A
        CLR   P1.0
        LCALL DELAY
        SETB  P1.0
        MOV   A,61H
        MOVC  A,@A+DPTR
        MOV   P2,A
        CLR   P1.1
        LCALL DELAY
        SETB  P1.1
        RET

        ORG   0800H
DELE:   MOV   68H,#4       ;延时程序
LOOP1:  MOV   69H,#100
LOOP2:  NOP
        NOP
        NOP
        DJNZ  69H,LOOP2
        DJNZ  68H,LOOP1
        RET
DELAY:  LCALL DELE
        RET

        ORG   0900H
TS:     PUSH  PSW
        PUSH  A
        PUSH  B
        DJNZ  R4,TSO
        MOV   R4,#14H
        MOV   63H,62H
        MOV   62H,#00H
TSO:    MOV   TH0,#03CH
        MOV   TL0,#0B0H
        POP   B
        POP   A
        POP   PSW
        RETI

        ORG   0A00H
SERVE:  PUSH  PSW
        PUSH  A
        PUSH  B
SERVE1: SETB  C
        INC   62H
        INC   45H
        XCH   A,45H
        CJNE  A,#14H,CK0
        LJMP  CHUL0
CK0:    JC    QUIT
CHUL0:  SETB  C
        INC   44H
        CLR   A
        XCH   A,45H
        XCH   A,44H
        CJNE  A,#64H,CK1
        LJMP  CHUL1
CK1:    JC    QUIT
CHUL1:  SETB  C
        INC   43H
        CLR   A
        XCH   A,44H
        XCH   A,43H
        CJNE  A,#64H,CK2
        LJMP  CHUL2
CK2:    JC    QUIT
CHUL2:  SETB  C
        INC   42H
        CLR   A
        XCH   A,43H
        XCH   A,42H
        CJNE  A,#64H,CK3
        LJMP  CHUL3
CK3:    JC    QUIT
CHUL3:  SETB  C
        INC   41H
        CLR   A
        XCH   A,42H
        XCH   A,41H
        CJNE  A,#64H,CK4
        LJMP  CHUL4
CK4:    JC    QUIT
CHUL4:  SETB  C
        INC   40H
        CLR   A
        XCH   A,41H
QUIT:   POP   B
        POP   A
        POP   PSW
        RETI

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

⌨️ 快捷键说明

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