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

📄 pci_av2.asm

📁 ATM机报警卡,具有接近探测、振动报警、出钞口检测报警、款箱开启报警等功能。
💻 ASM
📖 第 1 页 / 共 2 页
字号:
               MOV    36H,   #00H
               MOV    37H,   #00H
               LJMP   RSLINK_RET1
RSLINK_ASK:    MOV    A,   51H
               CJNE   A,   17H,   RSLINK_RET1
               LCALL   SEND_ASK_STATE
RSLINK_RET1:   MOV    TH0,   #00H               ;T0清零
               MOV    TL0,   #00H
               POP    PSW
               POP    DPL
               POP    DPH
               CLR    RI
               SETB   ES
               CPL    P2.6
               MOV    TH0, #00H
               MOV    TL0, #00H
               RETI

;********************************************
;          报警发送子程序
;********************************************
          ORG    0620H

SEND:      MOV   TH0,   #00H              ;T0清零
           MOV   TL0,   #00H
           MOV    A,      #040H
           MOV    SBUF,   A               ;发送@码
           MOV   TH0,   #00H              ;T0清零
           MOV   TL0,   #00H
SEND_selfe1: JNB    TI,    SEND_SELFE1
           CLR    TI
           MOV    A,     #0EFH
           MOV    SBUF ,  A               ;发送本机地址
           MOV    TH0,   #00H
           MOV    TL0,   #00H
SEND_selfe2: JNB    TI,    SEND_SELFE2
           CLR    TI
           MOV    A,      #1AH
           MOV    SBUF,   A               ;发送指令1AH
           MOV   TH0,   #00H              ;T0清零
           MOV   TL0,   #00H
SEND_selfe3: JNB    TI,    SEND_SELFE3
           CLR    TI
           MOV    A,     R2
           MOV    SBUF,   A               ;发送防区数据
           MOV   TH0,   #00H              ;T0清零
           MOV   TL0,   #00H
SEND_selfe4: JNB    TI,    SEND_SELFE4
           CLR    TI
           MOV    A,      #00H
           MOV    SBUF,   A               ;发送00H
           MOV   TH0,   #00H              ;T0清零
           MOV   TL0,   #00H
SEND_selfe5: JNB    TI,    SEND_SELFE5
           MOV   A,     #40H
           ADD   A,     #0EFH
           ADD   A,     #1AH
           ADD   A,     R2
           ADD   A,     #00H
           CLR    TI
           MOV    SBUF,   A               ;发送校验和
           MOV   TH0,   #00H              ;T0清零
           MOV   TL0,   #00H
SEND_selfe6: JNB    TI,     SEND_SELFE6
           CLR    TI
           CLR    RI
           RET

;***************************************
;      回传布防状态信息
;**************************************

SEND_ASK_STATE:
           MOV   TH0,   #00H              ;T0清零
           MOV   TL0,   #00H
           MOV    A,      #040H
           MOV    SBUF,   A               ;发送@码
           MOV   TH0,   #00H              ;T0清零
           MOV   TL0,   #00H
SEND_ASK1: JNB    TI,    SEND_ASK1
           CLR    TI
           MOV    A,     #0EFH
           MOV    SBUF ,  A               ;发送本机地址
           MOV    TH0,   #00H
           MOV    TL0,   #00H
SEND_ASK2: JNB    TI,    SEND_ASK2
           CLR    TI
           MOV    A,      #1BH
           MOV    SBUF,   A               ;发送指令1BH
           MOV   TH0,   #00H              ;T0清零
           MOV   TL0,   #00H
SEND_ASK3: JNB    TI,    SEND_ASK3
           MOV    A,     30H
           CJNE   A,     #00H,   SEND_ASK3_B
           MOV    A,     #00H
           MOV    R2,    A
           LJMP   SEND_ASK3_SEND
SEND_ASK3_B: MOV    A,     #0FFH
           MOV    R2,   A
SEND_ASK3_SEND:  CLR    TI
           MOV    SBUF,   A               ;发送状态数据
           MOV   TH0,   #00H              ;T0清零
           MOV   TL0,   #00H
SEND_ASK4: JNB    TI,    SEND_ASK4
           CLR    TI
           MOV    A,      #00H
           MOV    SBUF,   A               ;发送00H
           MOV   TH0,   #00H              ;T0清零
           MOV   TL0,   #00H
SEND_ASK5: JNB    TI,    SEND_ASK5
           MOV   A,     #40H
           ADD   A,     #0EFH
           ADD   A,     #1BH
           ADD   A,     R2
           ADD   A,     #00H
           CLR    TI
           MOV    SBUF,   A               ;发送校验和
           MOV   TH0,   #00H              ;T0清零
           MOV   TL0,   #00H
SEND_ASK6: JNB    TI,     SEND_ASK6
           CLR    TI
           CLR    RI
           RET

;***************************************
;          开机复位回传' ' '
;***************************************
SEND_ASK:
           MOV   TH0,   #00H              ;T0清零
           MOV   TL0,   #00H
           LCALL  TIMER1
           MOV    A,      #40H
           MOV    SBUF,   A
           MOV    TH0,   #00H              ;T0清零
           MOV    TL0,   #00H
SEND1_selfe1:   JNB    TI,  SEND1_SELFE1
           CLR    TI
           MOV    A,      #0EFH
           MOV    SBUF,   A
           MOV    TH0,   #00H              ;T0清零
           MOV    TL0,   #00H
SEND1_selfe2:   JNB    TI,  SEND1_SELFE2
           CLR    TI
           MOV    A,     #027H
           MOV    SBUF,  A
           MOV    TH0,   #00H
           MOV    TL0,   #00H
SEND1_selfe3:   JNB    TI,  SEND1_SELFE3
           CLR    TI
           MOV    A,     #027H
           MOV    SBUF,  A
           MOV    TH0,   #00H
           MOV    TL0,   #00H
SEND1_selfe4:   JNB    TI,  SEND1_SELFE4
           CLR    TI
           MOV    A,     #027H
           MOV    SBUF,  A
           MOV    TH0,   #00H
           MOV    TL0,   #00H
SEND1_selfe5:   JNB    TI,  SEND1_SELFE5
           MOV   A,    #40H
           ADD   A,    #0EFH
           ADD   A,    #27H
           ADD   A,    #27H
           ADD   A,    #27H
           CLR    TI
           MOV    SBUF,  A
           MOV    TH0,   #00H
           MOV    TL0,   #00H
SEND1_SELFE6:   JNB    TI,  SEND1_SELFE6
           CLR    TI
           CLR    RI
           RET

;***************************************
;          发送查询
;***************************************
SEND_CX_LP3: LJMP  MAIN         
SEND_CX:   CLR   ES
           MOV   23H,    22H               ;为23H赋值
           MOV   A,     20H
           CJNE  A,  #01H, SEND_CX_LP3
           MOV   TH0,   #00H              ;T0清零
           MOV   TL0,   #00H
           LCALL  TIMER1
           LCALL  TIMER1
           MOV    A,      #40H
           MOV    SBUF,   A
selfeA_CX: MOV   TH0,   #00H              ;T0清零
           MOV   TL0,   #00H
           JNB    TI,  SELFEA_CX
           CLR    TI
           MOV    A,      #0EEH
           MOV    SBUF,   A
selfeB_CX: MOV   TH0,   #00H              ;T0清零
           MOV   TL0,   #00H
           JNB    TI,  SELFEB_CX
           CLR    TI
           MOV    A,     #45H
           MOV    SBUF,   A
           CPL    P2.6
SELFEC_CX:  MOV   TH0,   #00H              ;T0清零
           MOV   TL0,   #00H
           JNB    TI,   SELFEC_CX
           CLR    TI
           MOV    A,   #00H
           MOV    SBUF,  A
selfeD_CX: MOV   TH0,   #00H              ;T0清零
           MOV   TL0,   #00H
           JNB    TI,  SELFED_CX
           CLR    TI
           MOV    A,     #00H
           MOV    SBUF,   A           
selfeE_CX: MOV   TH0,   #00H              ;T0清零
           MOV   TL0,   #00H
           JNB    TI,  SELFEE_CX
           CLR    TI
           MOV    A,     #00H
           MOV    SBUF,   A
           CPL    P2.6
selfeF_CX: MOV   TH0,   #00H              ;T0清零
           MOV   TL0,   #00H
           JNB    TI,  SELFEF_CX
           CLR    TI
           MOV    A,     #33H
           MOV    SBUF,   A
SELFEG_CX: JNB    TI,   SELFEG_CX                                
           CLR    TI
           CLR    RI
           CPL    P2.6
           SETB   ES
           MOV   TH0,   #00H
           MOV   TL0,   #00H
           LCALL  TIMER2
           MOV    A,   21H
           CJNE   A,   #01H,   RESTART    ;转重启动
           MOV    21H, #00H
           LJMP   SEND_CX_LP3
RESTART:   MOV    20H,     #00H
           MOV    21H,     #00H
           MOV    22H,     #0EFH
           SETB   P2.3
           MOV   TH0,   #00H
           MOV   TL0,   #00H
           LCALL  TIMER2
           MOV   TH0,   #00H
           MOV   TL0,   #00H
           LCALL  TIMER2
           MOV   TH0,   #00H
           MOV   TL0,   #00H
           LCALL  TIMER2
           CLR    P2.3
LOOP2:     LJMP   SEND_CX_LP3


;************************************
;             延时子程序
;************************************

TIMER1:    MOV    R6,     #040H
           MOV    R5,     #0A0H
WAIT0:     NOP
           NOP
           MOV    TH0,    #00H
           MOV    TL0,    #00H
           DJNZ   R5 ,    WAIT0
WAIT:      NOP
           NOP
           CLR    RI
           SETB   ES
           DJNZ   R6,     WAIT
           MOV    TH0,    #00H
           MOV    TL0,    #00H
           RET

TIMER2:    MOV    R4,     #01aH
WAIT2:     LCALL  TIMER1
           CLR    RI
           SETB   ES
           MOV    TH0,    #00H
           MOV    TL0,    #00H
           DJNZ   R4,     WAIT2
           RET

           END


⌨️ 快捷键说明

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