📄 zsy.asm
字号:
list p=16f73 ; list directive to define processor
;_config 0x01
#include P16f73.inc ; processor specific variable definitions
;**********************************************************************
__CONFIG _PWRTE_ON & _WDT_OFF & _HS_OSC &_BODEN_OFF &_CP_ALL
;OK 2001-08-06
;改充电为32V 市电过压为270V
;CD-3.2V STOP-3.3 KK-JC-3.5
R0 EQU 0x20
CNT EQU 0x21
LEDCNT EQU 0x22
AD1SR EQU 0x23
AD2SR EQU 0x24
W_TEMP EQU 0x25
STATUS_TEMP EQU 0x26
FSR_TEMP EQU 0x27
AD1TEMP EQU 0x30
AD2TEMP EQU 0x31
AD3TEMP EQU 0x32
AD4TEMP EQU 0x33
AD5TEMP EQU 0x34
TEMP EQU 0x35
YS_KEY1 EQU 0x36
XT_MAP EQU 0x37
SD_MAP EQU 0x38
CD_MAP EQU 0x39
NB_MAP EQU 0x3A
YZ_TM1L EQU 0x3C
YZ_TM1H EQU 0x3D
CDYS_TIM EQU 0x3E
OUT_MAP EQU 0x3F
FB_TM1L EQU 0x40
FB_TM1H EQU 0x41
FB_TM2L EQU 0x42
FB_TM2H EQU 0x43
FB_TM3L EQU 0x44
FB_TM3H EQU 0x45
OUT_LINL EQU 0x46
OUT_LINH EQU 0x47
PD_DELAY EQU 0x48
YS_SDERR EQU 0x49
YS_BATL EQU 0x4A
YS_BATH EQU 0x4B
YS_TOSD EQU 0x4C
KKG_BAD EQU 0x4D
YZ_PORTE EQU 0x4E
YS_GZ1 EQU 0x4F
YS_GZ2 EQU 0x50
CS_DELAY EQU 0x51
BAT_RL EQU 0x52
GW_DELAY EQU 0x53
GW_PANK EQU 0x54
GW_YSAA EQU 0x55
YS_SCLOW EQU 0x56
KKOFF1 EQU 0x57
KKOFF2 EQU 0x58
KKOFF3 EQU 0x59
KKOFF4 EQU 0x5A
JS_COUNT EQU 0x5B
LS_COUNT EQU 0x5C
LS_DOT EQU 0x5D
LS_REG1 EQU 0x5E
LS_REG2 EQU 0x5F
LS_REG3 EQU 0x60
DOT_COUNT EQU 0x61
OUT_ZC EQU 0x62
PD_MAP EQU 0x63
OUT_LINE EQU 0x64
TEST_COUNT EQU 0x65
YS_WYH EQU 0x66
YS_WYL EQU 0x67
SF_CDMP EQU 0x68
SF_CDYS EQU 0x69
KEY_MAP EQU 0x6A
YS_KSD EQU 0x6B
YS_KQQ EQU 0x6C
YS_SCLOW1 EQU 0x6D
JDQ EQU H'0004'
FMQ EQU H'0004'
PWM EQU H'0003'
PWM1 EQU H'0002'
PWM2 EQU H'0001'
CD EQU H'0005'
GW EQU H'0007'
SD EQU H'0006'
QQ EQU H'0005'
LED EQU H'0000'
BH1 EQU H'0000'
BH2 EQU H'0003'
BH3 EQU H'0004'
BH4 EQU H'0005'
LED1 EQU H'0001'
LED2 EQU H'0002'
LED3 EQU H'0003'
LED4 EQU H'0004'
LED5 EQU H'0005'
LED6 EQU H'0007'
CHA EQU H'0000'
CHB EQU H'0001'
CHC EQU H'0004'
CH7 EQU H'0003'
CH5 EQU H'0005'
IN EQU H'0006'
KEY EQU H'0006'
SDTB1 EQU H'0004'
SDTB2 EQU H'0007'
MP01 EQU H'0000'
MPZF EQU H'0001'
MPQH EQU H'0002'
MPCP1 EQU H'0006'
MPCP2 EQU H'0007'
ORG 0x0000
CLRF PCLATH
GOTO MAIN
ORG 0x0004
GOTO intSvc
ORG 0x0010
MAIN
BCF INTCON,GIE
BCF STATUS,IRP
BCF STATUS,RP1
BSF STATUS,RP0
MOVLW 0x02
MOVWF PCON
MOVLW 0x8F
MOVWF OPTION_REG
MOVLW 0x02
MOVWF ADCON1
MOVLW 0xFF
MOVWF TRISA
MOVLW 0x40
MOVWF TRISB
MOVLW 0x00
MOVWF TRISC
MOVLW 0xF9
MOVWF PR2
BCF PIE1,TMR2IE
BCF STATUS,RP0
MOVLW 0x3C
MOVWF CCP1CON
MOVLW 0x00
MOVWF CCPR1L
MOVLW 0x3C
MOVWF CCP2CON
MOVLW 0x00
MOVWF CCPR2L
CLRF T2CON
BSF T2CON,TMR2ON
BCF STATUS,RP0
MOVLW 0xFF
MOVWF PORTA
MOVLW 0x40
MOVWF PORTB
MOVLW 0x28
MOVWF PORTC
CLRF YZ_TM1L
CLRF YZ_TM1H
MOVLW 0x20
MOVWF YS_KEY1
LOOP1
BCF PORTB,LED1
BSF PORTB,LED2
BSF PORTB,LED3
BCF PORTB,LED4
BSF PORTB,LED5
BCF PORTB,LED6
DECFSZ YZ_TM1L,1
GOTO LOOP1
NOP
CLRF YZ_TM1L
DECFSZ YZ_TM1H,1
GOTO LOOP1
NOP
CLRF YZ_TM1L
CLRF YZ_TM1H
DECFSZ YS_KEY1,1
GOTO LOOP1
BCF PORTB,LED1
BCF PORTB,LED2
BCF PORTB,LED3
BCF PORTB,LED4
BCF PORTB,LED5
BCF PORTB,LED6
MAIN1
BCF INTCON,GIE
BCF STATUS,IRP
BCF STATUS,RP1
BSF STATUS,RP0
MOVLW 0x02
MOVWF PCON
MOVLW 0x8F
MOVWF OPTION_REG
MOVLW 0x02
MOVWF ADCON1
MOVLW 0xFF
MOVWF TRISA
MOVLW 0x40
MOVWF TRISB
MOVLW 0x00
MOVWF TRISC
MOVLW 0xF9
MOVWF PR2
BCF PIE1,TMR2IE
BCF STATUS,RP0
MOVLW 0x3C
MOVWF CCP1CON
MOVLW 0x00
MOVWF CCPR1L
MOVLW 0x3C
MOVWF CCP2CON
MOVLW 0x00
MOVWF CCPR2L
CLRF T2CON
BSF T2CON,TMR2ON
BCF STATUS,RP0
MOVLW 0xFF
MOVWF PORTA
MOVLW 0x40
MOVWF PORTB
MOVLW 0x28
MOVWF PORTC
MOVLW 0xFF
MOVWF YS_KEY1
PAN_KEY1
BSF PORTB,KEY
NOP
NOP
BTFSC PORTB,KEY
GOTO PAN_KEY1
NOP
NOP
DECFSZ YS_KEY1,1
GOTO PAN_KEY1
MOVLW 0xFF
MOVWF YS_KEY1
PAN_KEY1N
BSF PORTB,KEY
NOP
NOP
BTFSS PORTB,KEY
GOTO PAN_KEY1N
NOP
NOP
DECFSZ YS_KEY1,1
GOTO PAN_KEY1N
MOVLW 0xFF
MOVWF YS_KEY1
CLRF AD1TEMP
CLRF AD2TEMP
CLRF AD3TEMP
CLRF AD4TEMP
CLRF AD5TEMP
CLRF YS_KEY1
CLRF XT_MAP
CLRF SD_MAP
CLRF CD_MAP
CLRF NB_MAP
CLRF YZ_TM1L
CLRF YZ_TM1H
CLRF CDYS_TIM
CLRF OUT_MAP
CLRF FB_TM1L
CLRF FB_TM1H
CLRF FB_TM2L
CLRF FB_TM2H
CLRF FB_TM3L
CLRF FB_TM3H
CLRF OUT_LINL
CLRF OUT_LINH
CLRF PD_DELAY
CLRF YS_SDERR
CLRF YS_BATL
CLRF YS_BATH
CLRF YS_TOSD
CLRF KKG_BAD
CLRF YZ_PORTE
CLRF YS_GZ1
CLRF YS_GZ2
CLRF BAT_RL
CLRF GW_DELAY
CLRF GW_PANK
CLRF GW_YSAA
CLRF YS_KSD
CLRF YS_KQQ
MOVLW 0xFF
MOVWF KEY_MAP
MOVLW 0xFF
MOVWF YS_SCLOW
; MOVLW 0x03
; MOVWF YS_SCLOW1
MOVLW 0xFF
MOVWF KKOFF1
MOVLW 0xFF
MOVWF KKOFF2
MOVLW 0xFF
MOVWF KKOFF3
MOVLW 0x9D
MOVWF KKOFF4
MOVLW 0x01
MOVWF DOT_COUNT
MOVLW 0x28
MOVWF JS_COUNT
BCF PD_MAP,0
BCF PD_MAP,1
BCF PORTC,0
BCF PORTC,4
BSF PORTC,5
MOVLW 0x00
MOVWF OUT_LINE
MOVLW 0x40
MOVWF TEST_COUNT
MOVLW 0x28
MOVWF LS_COUNT
MOVLW 0x00
MOVWF LS_DOT
CLEAR_DATA1
MOVLW 0xA0
ADDWF LS_DOT,0
MOVWF FSR
MOVLW 0x00
MOVWF INDF
MOVLW 0xD0
ADDWF LS_DOT,0
MOVWF FSR
MOVLW 0x2C
MOVWF INDF
INCF LS_DOT,1
DECFSZ LS_COUNT,1
GOTO CLEAR_DATA1
NOP
BSF STATUS,RP0
BCF PIE1,TMR1IE
BCF INTCON,PEIE
BCF INTCON,GIE
BCF STATUS,RP0
BCF XT_MAP,0
BSF SD_MAP,0
CALL DELAY
NOP
CALL DELAY
NOP
PROG_BEG
NOP
BSF KEY_MAP,SD
BSF KEY_MAP,QQ
GOTO SYS_GOOD
NOP
BTFSS KEY_MAP,SD
GOTO KEY_SD_ON
NOP
KEY_SD_OFF
BSF PORTC,SD
NOP
NOP
BTFSS PORTC,SD
GOTO KEY_SD_OFF1
CLRF YS_KSD
BSF KEY_MAP,SD
BSF PORTB,1
GOTO PAN_KQQ
KEY_SD_OFF1
DECFSZ YS_KSD,1
GOTO PAN_KQQ
CLRF YS_KSD
BCF KEY_MAP,SD
BCF PORTB,1
GOTO PAN_KQQ
KEY_SD_ON
BSF PORTC,SD
NOP
NOP
BTFSC PORTC,SD
GOTO KEY_SD_ON1
CLRF YS_KSD
BCF KEY_MAP,SD
BCF PORTB,1
GOTO PAN_KQQ
KEY_SD_ON1
DECFSZ YS_KSD,1
GOTO PAN_KQQ
CLRF YS_KSD
BSF KEY_MAP,SD
BSF PORTB,1
GOTO PAN_KQQ
PAN_KQQ
NOP
BTFSS KEY_MAP,QQ
GOTO KEY_QQ_ON
NOP
KEY_QQ_OFF
BSF PORTC,QQ
NOP
NOP
BTFSS PORTC,QQ
GOTO KEY_QQ_OFF1
CLRF YS_KQQ
BSF KEY_MAP,QQ
BSF PORTB,0
GOTO PAN_KQQ1
KEY_QQ_OFF1
DECFSZ YS_KQQ,1
GOTO PAN_KQQ1
CLRF YS_KQQ
BCF KEY_MAP,QQ
BCF PORTB,0
GOTO PAN_KQQ1
KEY_QQ_ON
BSF PORTC,QQ
NOP
NOP
BTFSC PORTC,QQ
GOTO KEY_QQ_ON1
CLRF YS_KQQ
BCF KEY_MAP,QQ
BCF PORTB,0
GOTO PAN_KQQ1
KEY_QQ_ON1
DECFSZ YS_KQQ,1
GOTO PAN_KQQ1
CLRF YS_KQQ
BSF KEY_MAP,QQ
BSF PORTB,0
GOTO PAN_KQQ1
PAN_KQQ1
NOP
GOTO PROG_BEG1
NOP
DECFSZ KKOFF1,1
GOTO PROG_BEG1
MOVLW 0xFF
MOVWF KKOFF1
DECFSZ KKOFF2,1
GOTO PROG_BEG1
MOVLW 0xFF
MOVWF KKOFF2
DECFSZ KKOFF3,1
GOTO PROG_BEG1
MOVLW 0xFF
MOVWF KKOFF3
DECFSZ KKOFF4,1
GOTO PROG_BEG1
MOVLW 0xFF
MOVWF KKOFF4
GOTO MAIN1
PROG_BEG1
MOVLW 0xFF
MOVWF GW_PANK
BSF PORTC,GW
NOP
NOP
BTFSS PORTC,GW
GOTO GW_BAOH
MOVLW 0xFF
MOVWF GW_DELAY
MOVWF GW_YSAA
GOTO SYS_GOOD
GW_BAOH
DECFSZ GW_DELAY,1
GOTO SYS_GOOD
NOP
GW_BAOH2
NOP
CLRF GW_PANK
GW_BAOH1
BSF STATUS,RP0
BCF PIE1,TMR1IE
BCF INTCON,PEIE
BCF INTCON,GIE
BCF STATUS,RP0
MOVLW 0x00
MOVWF T1CON
MOVLW 0x00
MOVWF TMR1L
MOVLW 0x8B
MOVWF TMR1H
NOP
BCF PORTC,JDQ
BSF PORTC,CD
BSF PORTC,PWM
BCF PORTC,PWM1
BCF PORTC,PWM2
NOP
MOVLW 0x00
MOVWF CCP1CON
MOVLW 0x00
MOVWF CCPR1L
MOVLW 0x00
MOVWF CCP2CON
MOVLW 0x00
MOVWF CCPR2L
GW_JXPK
BSF PORTB,KEY
NOP
NOP
BTFSC PORTB,KEY
GOTO GW_BAOH2
NOP
DECFSZ GW_PANK,1
GOTO GW_BAOH1
GW_LOPB
BSF PORTB,KEY
NOP
NOP
BTFSS PORTB,KEY
GOTO GW_LOPB
NOP
NOP
GOTO MAIN1
SYS_GOOD
NOP
BSF PORTB,KEY
NOP
NOP
BTFSS PORTB,KEY
GOTO XT_GANJI
MOVLW 0xFF
MOVWF YS_KEY1
GOTO AD_CHG1
XT_GANJI
DECFSZ YS_KEY1,1
GOTO AD_CHG1
NOP
WAIT_LOW
BSF STATUS,RP0
BCF PIE1,TMR1IE
BCF INTCON,PEIE
BCF INTCON,GIE
BCF STATUS,RP0
NOP
MOVLW 0x00
MOVWF T1CON
MOVLW 0x00
MOVWF TMR1L
MOVLW 0x8B
MOVWF TMR1H
MOVLW 0x00
MOVWF CCP1CON
MOVLW 0x00
MOVWF CCPR1L
MOVLW 0x00
MOVWF CCP2CON
MOVLW 0x00
MOVWF CCPR2L
BCF PORTC,JDQ
BSF PORTC,CD
BSF PORTC,PWM
BCF PORTC,PWM1
BCF PORTC,PWM2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -