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

📄 hwspsb0613.asm

📁 U2270B与PIC16F73的水表射频卡表的程序
💻 ASM
📖 第 1 页 / 共 5 页
字号:
             BTFSS       STATUS,        Z        
             GOTO        ICPRO9 
             CALL        SPECCARD
             GOTO        ICPROEND
ICPRO9:      MOVF        RECBUFFER+.1,  0
             XORLW       0X07
             BTFSS       STATUS,        Z
             GOTO        ICPROERR
             CALL        SETNOIC 
             GOTO        ICP38 
ICPROEND:    BTFSC       FLAG3,         ICERR
             GOTO        ICPROERR
ICPROEND1:   BSF         PORTC,         DYK
             BSF         PCLATH,        3
             CALL        WATERCHECK
             BCF         PCLATH,        3
             BCF         FLAG3,         PASS
             BTFSC       FLAG2,         ZERO
             GOTO        ICPROEND2
             BSF         FLAG3,         PASS                           
ICPROEND2:   BTFSC       FLAG3,         PASS
             GOTO        ICP23
             GOTO        ICP34
ICP23:       BTFSC       FLAG3,         FLAG
             GOTO        ICP33   
ICP34:       BSF         PCLATH,        3
             CALL        VALVE
             BCF         PCLATH,        3                                 
ICP33:       BSF         FLAG2,         ENBLEDIS
             BSF         PCLATH,        3
             CALL        DISPLCD
             BCF         PCLATH,        3
ICP38:       BCF         FLAG1,         INCARD
             RETURN
ICPROERR:    BSF         FLAG3,         ICERR         
             MOVLW       DISBUFFER               
             MOVWF       FSR
             MOVLW       WFFCARD                           
             MOVWF       READDRESS
             MOVLW       0X02                       
             MOVWF       READLENGTH                                             
             CALL        READ24C02            	
             MOVLW       0X00
             MOVWF       DISBUFFER+.2
             MOVLW       0X01
             MOVWF       DISBUFFER+.3
             MOVLW       DISBUFFER
             MOVWF       R0
             MOVLW       DISBUFFER+.2          
             MOVWF       R1
             MOVLW       0X02
             MOVWF       COUNTADD
             CALL        BCDADD
             MOVLW       DISBUFFER
             MOVWF       FSR
             MOVLW       WFFCARD
             MOVWF       READDRESS
             MOVLW       0X02
             MOVWF       READLENGTH 
             CALL        WR24C02
             GOTO        ICPROEND1
;******************************************************
;初始化卡(开户卡)
;******************************************************
INITIAIC:    BTFSC         FLAG4,          INITFLAG
             GOTO          INITIAICERR
             CALL          READCARD
             CALL          CHECKERR
             BTFSC         FLAG1,          ICRWERR
             GOTO          INITIAICERR
             MOVF          RECBUFFER+.13,  0
             XORLW         0X00 
             BTFSS         STATUS,         Z
             GOTO          INITIAICERR
             MOVF          RECBUFFER+.14,  0
             XORLW         0X01
             BTFSS         STATUS,         Z
             GOTO          INITIAICERR
             MOVLW         DISBUFFER 
             MOVWF         FSR
             MOVLW         WSYWATER
             MOVWF         READDRESS
             MOVLW         0X03
             MOVWF         READLENGTH
             CALL          READ24C02
             MOVLW         DISBUFFER+.3
             MOVWF         FSR
             MOVLW         WXGWATER
             MOVWF         READDRESS
             MOVLW         0X03
             MOVWF         READLENGTH
             CALL          READ24C02
             MOVLW         DISBUFFER                          ;
             MOVWF         R0                                 ;
             MOVLW         DISBUFFER+3                        ;
             MOVWF         R1                                 ;
             MOVLW         0X03                               ;
             MOVWF         COUNTADD                           ;
             CALL          BDCSUB
             BTFSC         STATUS,     C
             GOTO          INITIAICERR
             MOVF          ZBNO,            0
             ANDLW         0XFE
             MOVWF         REICCOM
             MOVLW         0X40
             BTFSC         ZBNO,            0
             MOVLW         0XC0
             MOVWF         REICADDR
             MOVLW         0X1
             MOVWF         READLENGTH           ;data number 
             MOVLW         DISBUFFER            ;store address
             MOVWF         FSR
             CALL          READIC
             MOVF          DISBUFFER,       0
             XORLW         0XDE                  ;;;;
             BTFSC         STATUS,          Z
             GOTO          INITIAICERR   
             MOVLW         DISBUFFER
             MOVWF         FSR
             MOVLW         WSKBFLAG                                    
             MOVWF         READDRESS
             MOVLW         0X01                       
             MOVWF         READLENGTH                                             
             CALL          READ24C02
             BTFSC         DISBUFFER,       4
             GOTO          INITIAICERR 
             MOVF          DISBUFFER,       0
             IORLW         0X10
             MOVWF         DISBUFFER
             MOVLW         DISBUFFER
             MOVWF         FSR
             MOVLW         WSKBFLAG
             MOVWF         READDRESS
             MOVLW         0X01
             MOVWF         READLENGTH 
             CALL          WR24C02
;             GOTO          INITIAIC2               
INITIAIC1:   BSF           FLAG4,           INITFLAG

INITIAIC2:   MOVLW         RECBUFFER+.3
             MOVWF         FSR
             MOVLW         WMNUMB
             MOVWF         READDRESS
             MOVLW         0X05
             MOVWF         READLENGTH 
             CALL          WR24C02
             MOVLW         RECBUFFER+.3
             MOVWF         FSR
             MOVLW         WMNUM
             MOVWF         READDRESS
             MOVLW         0X05
             MOVWF         READLENGTH 
             CALL          WR24C02
             MOVLW         RECBUFFER+.27
             MOVWF         FSR
             MOVLW         RANDOMPASS
             MOVWF         READDRESS
             MOVLW         0X03
             MOVWF         READLENGTH 
             CALL          WR24C02
             COMF          RECBUFFER+.27,    0
             MOVWF         DISBUFFER
             COMF          RECBUFFER+.28,    0
             MOVWF         DISBUFFER+.1
             COMF          RECBUFFER+.29,    0
             MOVWF         DISBUFFER+.2
             MOVLW         DISBUFFER
             MOVWF         FSR
             MOVLW         WICMIMA         
             MOVWF         READDRESS
             MOVLW         0X03
             MOVWF         READLENGTH 
             CALL          WR24C02
             MOVLW         DISBUFFER 
             MOVWF         FSR
             MOVLW         WICMIMA1
             MOVWF         READDRESS
             MOVLW         0X03
             MOVWF         READLENGTH 
             CALL          WR24C02
             BSF           FLAG5,           INCD 
             CALL          WRMATER 
             CALL          FRAMEICW 
             BSF           FLAG4,           INITFLAG
             ;GOTO          INITIAICERR
             GOTO          INITIAICEND
INITIAICERR: BSF           FLAG3,           ICERR
INITIAICEND: NOP
             NOP
             NOP 
             RETURN  
;**********************************************************
;退量卡
;*********************************************************** 
MENDIC:      BTFSS         FLAG4,          INITFLAG
             GOTO          MENDIC2
             MOVLW         DISBUFFER
             MOVWF         FSR
             MOVLW         WSKBFLAG
             MOVWF         READDRESS
             MOVLW         0X01
             MOVWF         READLENGTH
             CALL          READ24C02
             BTFSS         DISBUFFER,      4
             GOTO          MENDICERR
             BSF           FLAG4,          INITFLAG
MENDIC2:     CALL          READCARD
             CALL          CHECKERR
             BTFSC         FLAG1,          ICRWERR
             GOTO          MENDICERR
             MOVF          RECBUFFER+.9,  0
             XORLW         0X03
             BTFSS         STATUS,        Z
             GOTO          MENDICERR
             MOVLW         DISBUFFER                          ;读表内备份表号和表内表号
             MOVWF         FSR                                ;
             MOVLW         WMNUM                              ;      
             MOVWF         READDRESS                          ;
             MOVLW         0X05                               ;
             MOVWF         READLENGTH                         ;                     
             CALL          READ24C02   
             MOVLW         RECBUFFER+.3                  ;
             MOVWF         R0                                 ; 
             MOVLW         DISBUFFER                          ;
             MOVWF         R1                                 ;
             MOVLW         0X05                               ;
             MOVWF         COUNT                              ; 
             CALL          EQUALITY
             BTFSC         STATUS,          C                 ;不相等,则转移到读E2PROM错程序,
             GOTO          MENDICERR
             CALL          FRAMEICW
             BTFSC         FLAG1,          ICRWERR
             GOTO          MENDICERR
             CALL          SPECCARD1 
             BCF           FLAG4,          INITFLAG
MENDIC1:     NOP
             NOP 
             RETURN
MENDICERR:   BSF           FLAG3,         ICERR
             GOTO          MENDIC1 
;**********************************************************
;用户卡
;***********************************************************
BUYIC:       BTFSS         FLAG4,           INITFLAG          ;是特殊初始化卡吗?
             GOTO          BUYICERR                          ;是则转移执行特殊初始化卡程序
             BCF           FLAG1,           MEMERR
             CALL          READCARD 
             ;BTFSC         FLAG2,           OVERWATER         ;表内水量大于限购水量吗?     
             ;GOTO          BUYICERR                           ;是的,置卡错标志,转到写返写帧程序
BUYIC1:      MOVLW         DISBUFFER                          ;读表内备份密码和密码进行核对, 
             MOVWF         FSR                                ;
             MOVLW         WICMIMA                            ;           
             MOVWF         READDRESS                          ;
             MOVLW         0X06                               ;
             MOVWF         READLENGTH                         ;
             CALL          READ24C02                          ;
             MOVLW         DISBUFFER                          ;
             MOVWF         R0                                 ;
             MOVLW         DISBUFFER+.3                       ;
             MOVWF         R1                                 ;
             MOVLW         0X03                               ; 
             MOVWF         COUNT                              ;
             CALL          EQUALITY                           ;核对正确吗?         
             BTFSS         STATUS,          C                 ;
             GOTO          BUYIC2                             ;正确,继续正常执行程序
BUYIC10:     BSF           FLAG1,           MEMERR            ;不下确,则置E2PROM内的状态字为读定E2PROM中出错  
             MOVLW         DISBUFFER                          ;然后执行返写帧程序,返回表内数据
             MOVWF         FSR                                ; 
             MOVLW         WSKBFLAG                           ;         
             MOVWF         READDRESS                          ;
             MOVLW         0X01                               ; 
             MOVWF         READLENGTH                         ;                      
             CALL          READ24C02                          ;
             MOVF          DISBUFFER,       0                 ;
             IORLW         0X02                               ;
             MOVWF         DISBUFFER                          ;
             MOVLW         DISBUFFER                          ;
             MOVWF         FSR                                ;
             MOVLW         WSKBFLAG                           ;
             MOVWF         READDRESS                          ;
             MOVLW         0X01                               ;
             MOVWF         READLENGTH                         ;
             CALL          WR24C02                            ;
             GOTO          BUYICERR                           ;
BUYIC2:      MOVLW         DISBUFFER                          ;读表内备份表号和表内表号
             MOVWF         FSR                                ;
             MOVLW         WMNUM                              ;      
             MOVWF         READDRESS                          ;
             MOVLW         0X05                               ;
             MOVWF         READLENGTH                         ;                     
             CALL          READ24C02                          ;
             MOVLW         DISBUFFER+.5                       ;
             MOVWF         FSR                                ;
             MOVLW         WMNUMB                             ;        
             MOVWF         READDRESS                          ;
             MOVLW         0X05                               ; 
             MOVWF         READLENGTH                         ;                    
             CALL          READ24C02                          ;
             MOVLW         DISBUFFER                          ;
             MOVWF         R0                                 ; 

⌨️ 快捷键说明

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