📄 cpu427.asm
字号:
INCLUDE "C:\MPASM\BJCPU.INC"
INCLUDE "C:\MPASM\P16C5X.INC"
ORG 0
;**************************************
;BEI JIA SHOU FANG R2, R3, R4 (GAO ZI JIE ZAI QIAN)
;JIA SHOU FANG R5, R6,
;HE FANG ZI R2, R3, R4
;3 BYTE + 2 BYTE
;**********************************
;JIAFA:
; MOVF R4, W
; MOVWF R0
; MOVF R7, W
; MOVWF R1
; CALL UBCDAD
; MOVF R0, W
; MOVWF R4
; BTFSS R1, 0
; GOTO JIAFA1
; MOVF R3, W
; MOVWF R0
; CALL UBCDAD
; MOVF R0, W
; MOVWF R3
; BTFSS R1, 0
; GOTO JIAFA1
; MOVF R2, W
; MOVWF R0
; CALL UBCDAD
; MOVF R0, W
; MOVWF R2
;JIAFA1: MOVF R3, W
; MOVWF R0
; MOVF R6, W
; MOVWF R1
; CALL UBCDAD
; MOVF R0, W
; MOVWF R3
; BTFSS R1, 0
; GOTO JIAFA2
; MOVF R2, W
; MOVWF R0
; CALL UBCDAD
; MOVF R0, W
; MOVWF R2
;JIAFA2: MOVF R2, W
; MOVWF R0
; MOVF R5, W
; MOVWF R1
; CALL UBCDAD
; MOVF R0, W
; MOVWF R2
; RETLW 0
JIAFA:
MOVF R4, W
MOVWF R0
MOVF R6, W
MOVWF R1
CALL UBCDAD
MOVF R0, W
MOVWF R4
MOVF R1, W
ADDWF R3, W
MOVWF R0
MOVF R5, W
MOVWF R1
CALL UBCDAD
MOVF R0, W
MOVWF R3
MOVF R1, W
ADDWF R2, W
MOVWF R0
; MOVF R5, W
; MOVWF R1
CLRF R1
CALL UBCDAD
MOVF R0, W
MOVWF R2
; MOVF 1FH, W
; MOVWF R7
RETLW 0
;********************************
;DAN ZI BCD JIA FA ZI CHENG XU
;R0 FANG BEI JIA SHOU
;R1 FANG JIA SHOU
;JIN WEI FANG R1
;*******************************
;UBCDAD:
; MOVF R1, W
; ADDWF R0, 1
; CLRF R1
; RLF R1, 1
; SKPNDC
; GOTO ADJST
; MOVLW 6
; ADDWF R0, 1
; SKPNDC
; GOTO OVR1
; SUBWF R0, 1
; CLRC
; GOTO OVR1
;ADJST: MOVLW 6
; ADDWF R0, 1
;OVR1: RLF R1, 1
; MOVLW 60h
; ADDWF R0, 1
; SKPNC
; GOTO OVR2
; BTFSS R1, 0
; BTFSC R1, 1
; GOTO OVR3
; SUBWF R0, 1
; GOTO OVR
;OVR3: MOVLW 1
; MOVWF R1
; GOTO OVR
;OVR2: CLRF R1
; RLF R1, 1
;OVR RETLW 0
;R1
Num_1 equ 9;8 ; Overflow flow carry overwrites Num_1
;result equ 8
;
;R0
Num_2 equ 8;9 ; Num_2 + Num_1 overwrites Num_2
;O_flow equ 9
;
;
; include "C:\PICMATE\PICMATE\LIU\p16c5x.inc"
;
UBCDAD:
;BCDAdd
movf Num_1,W
addwf Num_2, 1 ;F ; do binary addition
clrf Num_1
rlf Num_1, 1 ;F
btfsc STATUS,DC ; Is DC = 0 ?
goto adjust ; adjust LSD
movlw 6
addwf Num_2, 1 ;F ; Test for LSD > 9 ( by adding 6
btfsc STATUS,C
incf Num_1, 1 ;F
btfss STATUS,DC ; & checking Digit Carry
subwf Num_2, 1 ;F ; LSD < 9 , so get back original value.
goto over1
adjust movlw 6
addwf Num_2, 1 ;F
over1 movlw 60 ; add 6 to MSD
addwf Num_2, 1 ;F
btfsc STATUS,C
goto over3
btfss Num_1,0
subwf Num_2, 1 ;F
RETLW 0
over3 movlw 1
movwf Num_1
RETLW 0
;***************************************
;YAN SHI YI GE SHI JIAN DAN YUAN
;****************************************
DELAYETU MACRO T ;324 CLOCK
LOCAL DELAYETU1
MOVLW T ;4 CLOCK
MOVWF R0 ;4 CLOCK
NOP
; NOP ;
DELAYETU1
DECFSZ R0, 1 ;4/8 CLOCK
GOTO DELAYETU1 ;8 CLOCK
ENDM
; RETLW 0
;******************************
;RTCC YI CHU ZI CHENG XU
;***************************
;TRTCC:
; MOVLW 30H
; MOVWF FSR
; BTFSS RTCC, 7
;; GOTO TRTCC_END
;
; CLRF RTCC
; MOVLW 1
; ADDWF RTCCTIMESL, 1
; SKPC
; GOTO TRTCC_END
; MOVLW 1
; ADDWF RTCCTIMESH, 1
;TRTCC_END:
; RETLW 0
;*****************************************
;********************************************
START:
MAIN:
BSF STATUS, 6
GOTO WAIT_ZHUAN ;7.20
START1:
MOVLW B'01110000'
; MOVWF PORTC
TRIS PORTC
; MOVLW B'11111111' ;7.9
; MOVWF PORTC ;7.18
; MOVLW B'00000000'
; TRIS PORTB
; MOVWF PORTB ;7.18
MOVLW B'00000101'
TRIS PORTA
MOVWF PORTA ;7.18
; BCF PORTA, RSTUSER ;7.9
; BCF PORTA, RSTSAM ;7.9
MOVLW B'00000111' ;RTCC FEN PIN 1:256 CLK=65.536MS
OPTION
;CU SHI HUA RAM
MOVLW 70H
MOVWF FSR
MOVLW B'11110111'
MOVWF PX
MOVLW DISBUFFER1
MOVWF DISTP
CLRF REN_FLAG
; CLRF FLAG
MOVLW 08H
ANDWF FLAG, 1
MAIN2:
; MOVLW B'00000101'
; TRIS PORTA
BSF PORTA, RSTSAM
BSF REN_FLAG, USER0SAM1
BSF STATUS, 5
; MOVLW 13H
; MOVWF FSR
CALL SAMPOWERON_ZHUAN
BCF STATUS, 5
; SKPC
; BSF FSR, 5 ;7.18
; BCF ZHUANGTAI, 1 ;7.18
GOTO MAIN2_1
; BSF FSR, 5
; MOVLW 02
; MOVWF ZHUANGTAI
FEIFAKA_HIUFU1: ;7.10
BTFSS REN_FLAG, USER0SAM1 ;7.10
GOTO MAIN2_1 ;7.10
BSF FSR, 5 ;7.10
MOVLW 02 ;7.10
MOVWF ZHUANGTAI ;7.10
GOTO MAIN1 ;7.10
MAIN2_1: CLRF REN_FLAG ;7.10
FEIXITONGKA:
JIANCEKA4:
FEIFAKA_HIUFU:
GAIMIYAOHUIFU: ;DU CHU SAM CUN CHU SHOU JU
BUJIMINGKA3:
YONGHUKA1:
BSF STATUS, 5
BCF STATUS, 6
MOVLW 03H
MOVWF R1
CLRF R2
MOVLW 0FH
MOVWF R3
; BSF STATUS, 5
CALL PUTDATAFILE2
BSF REN_FLAG, USER0SAM1
CALL ICCCOMMAND
; MOVLW 30H
; MOVWF FSR
CALL FUFSR30H
CALL ICCRECEDATA
BSF 1DH, 0 ; 7.18
BCF ZHUANGTAI, 1 ;7.19
BCF FSR, 5
MOVLW 10H
MOVWF 13H
CALL ICCCOMMAND
MOVLW 50H
MOVWF FSR
CALL ICCRECEDATA
; MOVLW 03H
; MOVWF R1
; CLRF R2
; MOVLW 08H
; MOVWF R3
; CALL PUTDATAFILE2
BCF FSR, 6
MOVLW 20H
MOVWF 13H
MOVLW 08H
MOVWF 14H
CALL ICCCOMMAND
MOVLW 70H
MOVWF FSR
CALL ICCRECEDATA
BCF STATUS, 5
BTFSC REN_FLAG, FFEIXITONGKA
GOTO MAIN1
BTFSC FLAG, FFEIFAKA
GOTO MAIN1
BTFSC REN_FLAG, FGAIMIYAOKA
GOTO GAIMIYAO_END
BTFSC REN_FLAG, FBUJIMINGKA
GOTO BUJIMINGKA4
BTFSS REN_FLAG, FYONGHUKA
GOTO MAIN1_JIANCE
BSF STATUS, 6
GOTO YONGHUKA2
MAIN1_JIANCE:
BTFSS REN_FLAG, FJIANCEKA
GOTO MAIN1
BSF STATUS, 5
BSF STATUS, 6
GOTO JIANCEKA5
MAIN1:
MOVLW B'01110000'
TRIS PORTC
MOVLW B'00000000' ;7.22
TRIS PORTB ;7.22
CLRWDT ;7.22
BTFSS PORTC, 0
GOTO WDT_1
BCF PORTC, 0
NOP
BSF PORTC,0
GOTO WDT_END
WDT_1:
BSF PORTC,0
NOP
BCF PORTC,0
WDT_END:
BSF STATUS, 6
BSF STATUS, 5
CALL CAMAICHONG
BCF STATUS, 6 ;6.30 ;7.9
BCF STATUS, 5 ;6.30 ;7.9
MAIN1_1:
; MOVLW B'01110000' ;7.22
; TRIS PORTC ;7.22
; BTFSS PORTC, DD ;6.30 ;7.9
; CALL WAIT5MS ;6.30 ;7.9
; BCF STATUS, 6 ;6.30 ;7.9
; BCF STATUS, 5 ;6.30 ;7.9
BTFSC PORTC, DD
GOTO MAIN13
GOTO CUNFENDUSHOU
;;;;;;;;
;diao dian hui xie
; MOVLW 03H
; MOVWF R1
; MOVLW 26H
; MOVWF R2
; MOVLW 02H
; MOVWF R3
; BSF STATUS, 5
; CALL PUTDATAFILE3
; BSF REN_FLAG, USER0SAM1
; CALL ICCCOMMAND
; MOVLW 76H
; MOVWF FSR
; CALL ICCSENDDATA
; BCF STATUS, 5
;HUIXIEEND: GOTO HUIXIEEND
;;;;;;;;;;;;;;;;;;;;;;;;
MAIN13:
MOVLW 30H ;6.20
MOVWF FSR ;6.20
; MOVLW 2 ;6.20
; SUBWF ZHUANGTAI, W ;6.20
; SKPZ ;6.20
BTFSS ZHUANGTAI, 1
GOTO MAIN13_YUAN ;6.20
BSF PORTC,DUANDIAN ;6,24,2002;BCF PORTC, DUANDIAN ;6.26
GOTO MAIN1_6 ;6.20
MAIN13_YUAN:
BSF FSR, 6
BTFSC FLAG, TIAOZHA
GOTO OUTTIAODIAN
BTFSC FLAG, BAOJING2
GOTO OUTTIAODIAN ;OUTTIAODIAN_1
BCF PORTC, DUANDIAN ;6,24,2002 BSF PORTC,DUANDIAN
GOTO OUTTIAO1
OUTTIAODIAN:
MOVLW 45H
SUBWF FENDUSHOU2, W
SKPC
; BTFSS FENDUSHOU2, 4
GOTO OUTTIAODIAN_1
BCF FSR, 6
MOVLW 1
MOVWF ZHUANGTAI
BSF FSR, 6
OUTTIAODIAN_1:
BSF PORTC,DUANDIAN ;6,24,2002;BCF PORTC, DUANDIAN ;6.26
OUTTIAO1:
; MOVLW 50H ;SHI FU DAO BAOJING1 DIAN LIANG
; MOVWF FSR
BCF FLAG, BAOJING1
BCF FLAG, TIAOZHA
; MOVLW 50H
; MOVWF FSR
BCF FSR, 5
MOVF BAOJING11, W
MOVWF R5
MOVF BAOJING12, W
MOVWF R4
MOVF BAOJING13, W
MOVWF R3
MOVLW 30H
MOVWF FSR
MOVF R5, W
SUBWF SHENGYUDIANLIANG1, W
SKPNZ
GOTO XINSH2_1
SKPC
GOTO BIJIAOTIAODIAN ;BI JIAO SHI FU DAO 0 DU
GOTO MAIN1_6
XINSH2_1:
MOVF R4, W
SUBWF SHENGYUDIANLIANG2, W
SKPNZ
GOTO XINSH2_2
SKPC
GOTO BIJIAOTIAODIAN
GOTO MAIN1_6
XINSH2_2:
MOVF R3, W
SUBWF SHENGYUDIANLIANG3, W
SKPNZ
GOTO BIJIAOTIAODIAN
SKPC
GOTO BIJIAOTIAODIAN
GOTO MAIN1_6
BIJIAOTIAODIAN: ;SHENG YU DIAN LIANG SHI FU WEI 0
MOVLW 70H
MOVWF FSR
BSF FLAG, BAOJING1
; MOVLW 30H
; MOVWF FSR
BCF FSR, 6
MOVF SHENGYUDIANLIANG2, 1
SKPZ
GOTO MAIN1_6
MOVF SHENGYUDIANLIANG3, 1
SKPZ
GOTO MAIN1_6
; MOVLW 70H
; MOVWF FSR
BSF FSR, 6
BSF FLAG, TIAOZHA
; BTFSS FENDUSHOU2, 4
;
; GOTO MAIN1_6
; BCF FSR, 6
; MOVLW 1
; MOVWF ZHUANGTAI
MAIN1_6:
TESTCHECK: ; JIAN CA SHI FU YOU KA
; MOVLW B'00000000' ;7.22
; TRIS PORTB ;7.22
; MOVLW B'01110000' ;7.22
; TRIS PORTC ;7.22
MOVLW 70H
MOVWF FSR
BTFSC FLAG, FKAWUXIAO
GOTO KAWUXIAO
BTFSS PORTC, CHECK
GOTO KAWUXIAO
BSF STATUS, 5
BSF STATUS, 6
CALL WAIT5MS
BCF STATUS, 5
BCF STATUS, 6
BTFSS PORTC, CHECK
GOTO KAWUXIAO
; GOTO ICBUZAI_ZHUAN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -