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

📄 biao.asm

📁 单相电子式预付费电度表 自动抄表的设计与实现
💻 ASM
📖 第 1 页 / 共 4 页
字号:
              ADDC   A,R2
              DA     A
              MOV    R2,A
              DJNZ   R7,SBCDT1
              MOV    A,R2
              ANL    A,#0FH
              MOV    SEE16,A
              MOV    A,R2
              SWAP   A
              ANL    A ,#0FH
              MOV    SEE17,A
              MOV    A ,R3
              ANL    A,#0FH
              MOV    SEE14,A
              MOV    A,R3
              SWAP   A
              ANL    A,#0FH
              MOV    SEE15,A
              MOV    A,R4
              ANL    A,#0FH
              MOV    SEE12,A
              MOV    A,R4
              SWAP   A
              ANL    A,#0FH
              MOV    SEE13,A
              MOV    A,R5
              ANL    A,#0FH
              MOV    SEE10,A
              MOV    A,R5
              SWAP   A
              ANL    A,#0FH
              MOV    SEE11,A
              RET


;--------------------------------------------------------------
;外中断0初始化程序-----------
DDJCRST:      SETB   IT0
              SETB   EA
              SETB   EX0
              RET


;--------------------------------------------------------------
;外中断0服务程序
DDJC:         PUSH   A
              PUSH   B
              PUSH   DPL
              PUSH   DPH
              PUSH   00H
              PUSH   01H
              PUSH   02H
              PUSH   03H
              PUSH   04H
              PUSH   05H
              PUSH   06H
              PUSH   07H
              MOV    JWW,C
              MOV    MTD1,YDL1
              MOV    MTD2,YDL2
              MOV    MTD3,YDL3
              MOV    MTD4,YDL4
              MOV    MTD5,SDL1
              MOV    MTD6,SDL2
              MOV    MTD7,SDL3
              MOV    MTD,#00H
              MOV    NUMBYT,#8
              MOV    SLA,#0A0H
              LCALL  WRNBYT
              MOV    C,JWW
              POP    07H
              POP    06H
              POP    05H
              POP    04H
              POP    03H
              POP    02H
              POP    01H
              POP    00H
              POP    DPH
              POP    DPL
              POP    B
              POP    A
              RETI

;----------------------------------------------------------------
;键盘复位程序
KEYRST:       SETB   S1
              MOV    KEYW,#01H
              MOV    SEER,#0FFH
              MOV    SEE,#00H
              RET

;-----------------------------------------------------------------
; 键扫描程序
KEY:          JB     S1,KEY4
              MOV    DEL,#26
              LCALL  DELY
              JB     S1,KEY4
              MOV    A,KEYW
              RL     A
              MOV    KEYW,A
              JNB    KEYW.03H,KEY1
              SETB   KEYW.00H
              CLR    KEYW.03H
KEY1:         JNB    KEYW.00H,KEY2
              MOV    SEE,#0
KEY2:         JNB    KEYW.01H,KEY3
              MOV    SEE,#1
KEY3:         JNB    KEYW.02H,KEY4
              MOV    SEE,#2
KEY4:         RET


DELY:         PUSH   DEL
DELY1:        PUSH   DEL
DELY2:        PUSH   DEL
DELY3:        DJNZ   DEL,DELY3
              POP    DEL
              DJNZ   DEL,DELY2
              POP    DEL
              DJNZ   DEL,DELY1
              POP    DEL
              DJNZ   DEL,DELY
              RET

;--------------------------------------------------------------
; E2PROM复位程序
AT24RST:      MOV    SLA,#00H
              MOV    NUMBYT,#00H
              MOV    MTD,#00H
              MOV    MTD1,#00H
              MOV    MTD2,#00H
              MOV    MTD3,#00H
              MOV    MTD4,#00H
              MOV    MTD5,#00H
              MOV    MTD6,#00H
              MOV    MTD7,#00H
              MOV    MTD8,#00H
              MOV    MRD,#00H
              MOV    MRD1,#00H
            MOV    MRD2,#00H
              MOV    MRD3,#00H
              MOV    MRD4,#00H
              MOV    MRD5,#00H
              MOV    MRD6,#00H
              MOV    MRD7,#00H
              MOV    MRD8,#00H
              RET

WRNBYT:       NOP
              NOP
              LCALL  STA
              NOP
              NOP
              MOV    A,SLA
              NOP
              NOP
              LCALL  WRB
              NOP
              NOP
              LCALL  CACK
              NOP
              NOP
              JB     F0,WRNBYT
              MOV    R0,#MTD
              MOV    R5,NUMBYT
WRDA:         MOV    A,@R0
              LCALL  WRB
              NOP
              NOP
              LCALL  CACK
              NOP
              NOP
              JB     F0,WRNBYT
              INC    R0
              DJNZ   R5,WRDA
              LCALL  STOP
              RET

RDNBYT:       NOP
              NOP
              LCALL  STA
              NOP
              NOP
              MOV    A,SLA
              LCALL  WRB
              NOP
              NOP
              LCALL  CACK
              NOP
              NOP
              JB     F0,RDNBYT
              MOV    A,MRD
              NOP
              NOP
              LCALL  WRB
              NOP
              NOP
              LCALL  CACK
              NOP
              NOP
              JB     F0,RDNBYT
              NOP
              NOP
              LCALL  STA
              MOV    A,SLA
              SETB   ACC.0
              LCALL  WRB
              NOP
              NOP
              LCALL  CACK
              NOP
              NOP
              JB     F0,RDNBYT
              MOV    R1,#MRD1
GO_ON:        LCALL  RDB
              MOV    @R1,A
              DJNZ   NUMBYT,ACK
              LCALL  MNACK
              NOP
              NOP
              LCALL  STOP
              RET
ACK:          LCALL  MACK
              INC    R1
              AJMP   GO_ON

STA:          SETB   SDA
              SETB   SCL
              NOP
              NOP
              NOP
              NOP
              NOP
              CLR    SDA
              NOP
              NOP
              NOP
              NOP
              NOP
              CLR    SCL
              RET

STOP:         CLR    SDA
              SETB   SCL
              NOP
              NOP
              NOP
              NOP
              NOP
              SETB   SDA
              NOP
              NOP
              NOP
              NOP
              NOP
              CLR    SDA
              RET

WRB:          MOV    R7,#8
WLP:          RLC    A
              JC     WR1
              CLR    SDA
              SETB   SCL
              NOP
              NOP
              NOP
              NOP
              NOP
              CLR    SCL
              DJNZ   R7,WLP
              RET
WR1:          SETB   SDA
              SETB   SCL
              NOP
              NOP
              NOP
              NOP
              NOP
              CLR    SCL
              CLR    SDA
              DJNZ   R7,WLP
              RET

CACK:         SETB   SDA
              SETB   SCL
              NOP
              NOP
              NOP
              MOV    C,SDA
              MOV    F0,C
              CLR    SCL
              NOP
              NOP
              NOP
              RET

RDB:          MOV    R7,#8
RLP:          SETB   SDA
              SETB   SCL
              MOV    C,SDA
              MOV    A,R6
              RLC    A
              MOV    R6,A
              CLR    SCL
              DJNZ   R7,RLP
              RET

MACK:         CLR    SDA
              SETB   SCL
              NOP
              NOP
              NOP
              NOP
              NOP
              CLR    SCL
              SETB   SDA
              RET

MNACK:        SETB   SDA
              SETB   SCL
              NOP
              NOP
              NOP
              NOP
              NOP
              CLR    SCL
              CLR    SDA
            RET

;---------------------------------------------------------------
; IC卡复位程序
AT24RSTI:     MOV    SLA,#00H
              MOV    NUMBYT,#00H
              MOV    MTDI,#00H
              MOV    MTD1I,#00H
              MOV    MTD2I,#00H
              MOV    MTD3I,#00H
              MOV    MTD4I,#00H
              MOV    MTD5I,#00H
              MOV    MTD6I,#00H
              MOV    MTD7I,#00H
              MOV    MTD8I,#00H
              MOV    MRDI,#00H
              MOV    MRD1I,#00H
              MOV    MRD2I,#00H
              MOV    MRD3I,#00H
              MOV    MRD4I,#00H
              MOV    MRD5I,#00H
              MOV    MRD6I,#00H
              MOV    MRD7I,#00H
              MOV    MRD8I,#00H
              RET

WRNBYTI:      NOP
              NOP
              LCALL  STAI
              NOP
              NOP
              MOV    A,SLA
              NOP
              NOP
              LCALL  WRBI
              NOP
              NOP
              LCALL  CACKI
              NOP
              NOP
              JB     F0,WRNBYTI
              MOV    R0,#MTDI
              MOV    R5,NUMBYT
WRDAI:        MOV    A,@R0
              LCALL  WRBI
              NOP
              NOP
              LCALL  CACKI
              NOP
              NOP
              JB     F0,WRNBYTI
              INC    R0
              DJNZ   R5,WRDAI
              LCALL  STOPI
              RET

RDNBYTI:      MOV    RE,#200
RDNBYTI1:     DJNZ   RE,RDNBYTI2
              MOV    SEERR,SEE
              MOV    SEE,#6
              MOV    SEER,SEE
              MOV    TH1,#00H
              MOV    TL1,#00H
              MOV    COL,#100
              SETB   EA
              SETB   ET1
              SETB   TR1
              RET
RDNBYTI2:     NOP
              NOP
              LCALL  STAI
              NOP
              NOP
              MOV    A,SLA
              LCALL  WRBI
              NOP
              NOP
              LCALL  CACKI
              NOP
              NOP
              JB     F0,RDNBYTI1
              MOV    A,MRDI
              NOP
              NOP
              LCALL  WRBI
              NOP
              NOP
              LCALL  CACKI
              NOP
              NOP
              JB     F0,RDNBYTI1
              NOP
              NOP
              LCALL  STAI
              MOV    A,SLA
              SETB   ACC.0
              LCALL  WRBI
              NOP
              NOP
              LCALL  CACKI
              NOP
              NOP
              JB     F0,RDNBYTI1
              MOV    R1,#MRD1I
GO_ONI:       LCALL  RDBI
              MOV    @R1,A
              DJNZ   NUMBYT,ACKI
              LCALL  MNACKI
              NOP
              NOP
              LCALL  STOPI
              RET
ACKI:         LCALL  MACKI
              INC    R1
              AJMP   GO_ONI

STAI:         SETB   SDAI
              SETB   SCLI
              NOP
              NOP
              NOP
              NOP
              NOP
              CLR    SDAI
              NOP
              NOP
              NOP
              NOP
              NOP
              CLR    SCLI
              RET

STOPI:        CLR    SDAI
              SETB   SCLI
              NOP
              NOP
              NOP
              NOP
              NOP
              SETB   SDAI
              NOP
              NOP
              NOP
              NOP
              NOP
              CLR    SDAI
              RET

WRBI:         MOV    R7,#8
WLPI:         RLC    A
              JC     WR1I
              CLR    SDAI
              SETB   SCLI
              NOP
              NOP
              NOP
              NOP
              NOP

⌨️ 快捷键说明

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