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

📄 hwspsb0613.asm

📁 U2270B与PIC16F73的水表射频卡表的程序
💻 ASM
📖 第 1 页 / 共 5 页
字号:
#INCLUDE "C:\PIC-OnLine\MplabFile\P16F73.INC"
;       INCLUDE "D:\Program Files\北京集万讯电子\P16F73.INC"
;**********define e2prom pin ***********************
SCL           equ      3             ;24c02 clock pin 
SDA           equ      4             ;24c02 data  pin
;********** define wtire and read card pin*******************
DYK           equ      2             ;power of card control pin
INT0          equ      0             ;lock card pin
CARDDATA      equ      5             ;translate datd pin
CLK           equ      6             ;clock of card pin
RST           equ      7
CFE           equ      7             ;card reset pin
;*********** define lcd display pin*************************
WR            equ      2             ;lcd write pin
CS            equ      3             ;lcd select pin
LCDDATA       equ      4             ;lcd tranlate data pin
LEGD          equ      5             ;lcd enable pin
;***********valve control pin*******************************
VALVEOP       equ      0             ;control valve open  pin(1/0)
VALVECL       equ      1             ;control valve close pin(1/0)
VALCLOSE      equ      2             ;valve colse status pin
FW1           equ      3             ;sing  pin 
;VALOPEN       equ      3             ;valve open  status pin
VALSIG1       equ      6             ;signe input 1 pin
VALSIG2       equ      7             ;signe input 2 pin
OVERCUR       equ      1             ;over current pin
VALVEPOWER    equ      0             ;  
;***********power compare pin********************************
UPPOWER       equ      5             ;power up-limit   pin
DOWNPOWER     equ      4             ;power down-limit pin
PCP           equ      1             ;power pin 
;************define bit **************************************
ONETHREE      equ      4             ;if onethree=1;then one cord three watermeter
ONE           equ      0             ;the first  watermeter 
TWO           equ      1             ;the second watermeter 
THREE         equ      2             ;the three  watermeter 
;*************************************************************
FLAG1         equ      0X20           ;define bit 
ICV_ERR       equ      0             ;ic card password check is error flag 
ACK           equ      1             ;e2prom
INCARD        equ      2             ;insert card falg
ICRWERR       equ      3             ;write-read ic card  is error flag
VALVEERR      equ      4             ;open-close valve is error flag
MEMERR        equ      5             ;write-read e2prom is error flag
YZWATER       equ      6             ;prefabricate water executing is yes or not
LOWPOWER      equ      7             ;power low flag
FLAG2         equ      0X21           ;define bit
PULSE1        equ      0
PULSE2        equ      1
FORBITE       equ      2
WARN          equ      3
ZERO          equ      4
ENBLEDIS      equ      5
EMIB          equ      6
OVERWATER     equ      7
FLAG3         equ      0X22
PASS          equ      0
ICERR         equ      1
EMI           equ      2
POWERD        equ      3
SALEWATR      equ      4
M3            equ      5
BUYFLAG       equ      6
FLAG          equ      7
FLAG4         equ      0X23
TOTAL         equ      0
BALA          equ      1
BUY           equ      2
FMQCSF        equ      3
SPEFLAG       equ      4
INITFLAG      equ      5
SETBG2        equ      6
BCD_CY        equ      7
FLAG5         equ      0X7E
DWPOWER       equ      0
FH            EQU      3
INCD          EQU      7
TEMP          EQU      0X7C 
ATEMP         EQU      0X7D 
;***********************************
#DEFINE       READDRESS          0X24  ;read e2prom first address
#DEFINE       READLENGTH         0X25  ;the length of read data
#DEFINE       DEL1               0X26
#DEFINE       DEL2               0X27
#DEFINE       DEL3               0X28
#DEFINE       DEL4               0X29
#DEFINE       DEL5               0X2A
#DEFINE       LCDBYTECNT         0X2B
#DEFINE       LCDBITCNT          0X2C
#DEFINE       SHIFT              0X2D 
#DEFINE       LCDCOMMAND         0X2E 
#DEFINE       R0                 0X3C
#DEFINE       R1                 0X3D
#DEFINE       PULVALVE           0X31  ;(3)
#DEFINE       FMCOUNT            0X34
#DEFINE       REICCOM            0X35
#DEFINE       ICMIMA             0X36  ;(3)
#DEFINE       COUNTADD           0X39
#DEFINE       INSERCC            0X3A
#DEFINE       POBLICC            0X3B
#DEFINE       ISRCON1            0X2F 
#DEFINE       ISRCON2            0X30 
#DEFINE       STATUSBUF          0X3E
#DEFINE       WBUFFER            0X3F
#DEFINE       COUNT              0X40
#DEFINE       E2PCOUNT           0X41
#DEFINE       REICADDR           0X42
#DEFINE       CARDBITCNT         0X43
#DEFINE       ICDATA             0X44
#DEFINE       DBUFFER            0X45
#DEFINE       DISCOUNT           0X46
#DEFINE       ZBNO               0X47
#DEFINE       DISBUFFER          0X48  ;48h-57h display buffer(20)
#DEFINE       RECBUFFER          0X58  ;58h-7Bh receive buffer(32)
;*************************外部存储器单元****************************************
#DEFINE       CLEAR		          0X00		; 清零标志(2)
#DEFINE       CLEARST		      0X02		; 保留(27)
#DEFINE       COPYSERIAL          0X1D              ; serial num copy          
#DEFINE       WICMIMA		      0X1E		; IC卡密码(随机数取反)(3)
#DEFINE       WICMIMA1	          0X21		; IC卡密码备份1(3)
#DEFINE       WYZWATER		      0X24		; 预置水量(3)
#DEFINE       WMCONSTB		      0X27		; 脉冲常数备份(1)
#DEFINE       WMNUMB		      0X28		; 水表表号备份(5)
#DEFINE       WCISHUB		      0X2D		; 购水次数备份(2)
#DEFINE       WBCWATER		      0X2F		; 本次购水量<上次>(3)
#DEFINE       WBCWATER1		      0X32		; 本次购水量(3)
#DEFINE       CLEARST1		      0X35		; 保留(9)
#DEFINE       WWATER		      0X3F		; 购水量(3)
#DEFINE       WSYWATER		      0X42		; 剩余水量(3)
#DEFINE       WLJYWATER	          0X45		; 累计用水量(3)
#DEFINE       WGLWATER	          0X48		; 过零水量(3)
#DEFINE       WFFCARD		      0X4B		; 非法插卡次数(2)
#DEFINE       WSKBFLAG		      0X4D		; 水卡表状态字(1)
#DEFINE       WMCONST		      0X4E		; 脉冲常数(1)
#DEFINE       WMNUM		          0X4F		; 表号(5)
#DEFINE       WCISHU	   	      0X54		; 购水次数(2)
#DEFINE       WBJWATER            0X56              ; 报警水量(3)
#DEFINE       WXGWATER		      0X59		; 限购水量(3)
#DEFINE       WDCCS		          0X5C		; 断磁次数(1)
#DEFINE       RANDOMPASS          0X5d              ;随机密?
#DEFINE       WDSPNT              0X60             ; 水表底数(4)
#DEFINE       ZBNUM               0X68 
#DEFINE       WARNF               0X6A
#DEFINE       RAMBF               0X80              ;20-25   
#DEFINE       TEMPBF              0X90              ;PORTB 
;********************************************************************************
             ORG         0X0000
             GOTO        BEGIN
;             ORG         0X0004
;             GOTO        PIC_ISR
             ORG         0X0060
BEGIN:       MOVLW       B'11111111'
             MOVWF       PORTC
             BSF         STATUS,      RP0
             MOVLW       B'00000111'
             MOVWF       ADCON1
             MOVLW       B'10000010'
             MOVWF       OPTION_REG
             CLRWDT
             CLRW
             MOVWF       INTCON
             MOVWF       PIE1
             MOVWF       PIR1
             MOVWF       PIE2
             MOVWF       TXSTA
             MOVWF       RCSTA
             MOVWF       TRISA
             NOP
             NOP
             NOP
             MOVLW       0XF7
             MOVWF       TRISB
             MOVLW       B'01000000'
             MOVWF       TRISC
             BCF         STATUS,  RP0
             MOVLW       B'00111111'
             MOVWF       PORTA
             MOVLW       B'11111111'
             MOVWF       PORTC
;************************************************
             CLRWDT
             BCF         PCLATH,      4
             BCF         PCLATH,      3
             MOVLW       0X53
             MOVWF       RECBUFFER+.31
             MOVLW       0X20
             MOVWF       FSR          
             CLRW         
INIT1:       MOVWF       INDF
             INCF        FSR,             1
             DECFSZ      RECBUFFER+.31,   1
             GOTO        INIT1
             NOP
             ;BCF         FLAG3,            PASS
             ;BSF         PCLATH,           3
             ;CALL        VALVE
             ;BCF         PCLATH,           3
             MOVLW       DISBUFFER
             MOVWF       FSR
             MOVLW       CLEAR                                          
             MOVWF       READDRESS
             MOVLW       0X02                       
             MOVWF       READLENGTH                                             
             CALL        READ24C02
             MOVF        DISBUFFER,        0
             XORLW       0XFF
             BTFSC       STATUS,           Z
             GOTO        INIT2
             MOVF        DISBUFFER+.1,     0
             XORLW       0XFF
             BTFSC       STATUS,           Z
             GOTO        INIT2
             GOTO        INIT3
INIT2:       BSF         PCLATH,           3
             CALL        CLEARSTOCK
             BCF         PCLATH,           3
             ;BCF         STATUS,           RP0
             ;BSF         FLAG2,            ENBLEDIS
             ;BSF         PCLATH,           3
             ;CALL        DISPLCD
             ;BCF         PCLATH,           3
INIT3:       ;BSF         PCLATH,           3
             ;CALL        CLEARSTOCK
             ;BCF         PCLATH,           3
             MOVLW       DISBUFFER
             MOVWF       FSR
             MOVLW       RAMBF
             MOVWF       READDRESS
             MOVLW       0X04
             MOVWF       READLENGTH
             CALL        READ24C02
             MOVLW       0X48
             MOVWF       FSR
             MOVF        INDF,0
             MOVWF       FLAG1
             INCF        FSR,1
             MOVF        INDF,0
             MOVWF       FLAG2
             INCF        FSR,1
             MOVF        INDF,0
             MOVWF       FLAG3
             INCF        FSR,1
             MOVF        INDF,0 
             MOVWF       FLAG4
             MOVLW       DISBUFFER
             MOVWF       FSR
             MOVLW       TEMPBF
             MOVWF       READDRESS
             MOVLW       0X01
             MOVWF       READLENGTH
             CALL        READ24C02
             MOVF        DISBUFFER,0
             MOVWF       ATEMP 
             MOVLW       DISBUFFER
             MOVWF       FSR
             MOVLW       ZBNUM 
             MOVWF       READDRESS
             MOVLW       0X01
             MOVWF       READLENGTH
             CALL        READ24C02
             MOVF        DISBUFFER,    0 
             MOVWF       ZBNO 
             ANDLW       0XF0
             BTFSC       STATUS,       Z
             GOTO        L1 
             CLRF        ZBNO
             CLRF        DISBUFFER
             MOVLW       DISBUFFER
             MOVWF       FSR
             MOVLW       ZBNUM 
             MOVWF       READDRESS
             MOVLW       0X01
             MOVWF       READLENGTH
             CALL        WR24C02
L1:          MOVLW       DISBUFFER
             MOVWF       FSR
             MOVLW       WARNF
             MOVWF       READDRESS
             MOVLW       0X01                       
             MOVWF       READLENGTH                                             
             CALL        READ24C02 
             MOVF        DISBUFFER,    0
             MOVWF       FMCOUNT
             MOVLW       DISBUFFER
             MOVWF       FSR
             MOVLW       WSKBFLAG                                    
             MOVWF       READDRESS
             MOVLW       0X01                       
             MOVWF       READLENGTH                                             
             CALL        READ24C02  
             BTFSC       DISBUFFER,      3 
             BSF         FLAG1,          LOWPOWER
             ;BTFSC       DISBUFFER,      2
             BCF         FLAG1,          YZWATER
             BTFSC       DISBUFFER,      1
             BSF         FLAG1,          MEMERR
             BTFSC       DISBUFFER,      0
             BSF         FLAG1,          VALVEERR
;********************************************************
MAIN:        CLRWDT            

⌨️ 快捷键说明

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