📄 in419c.asm
字号:
BCF INTCON,7
MOVF R4,0
CALL TABLE
MOVWF PORTC
BSF INTCON,7
BCF PORTA,1
CALL DELAY5MS
BSF PORTA,1
;BCF INTCON,RABIF
;BSF INTCON,7
RETURN
DELAY5MS MOVLW 0X01
MOVWF 0X70
MOVWF 0X71
DEL1 NOP
NOP
NOP
;NOP
DECFSZ 0X70,1
GOTO DEL1
MOVLW 0X01
SUBWF 0X71,0
BTFSS STATUS,0
RETURN
DECF 0X71,1
MOVLW 0XFF
MOVWF 0X70
GOTO DEL1
DELAY20 MOVLW 0X06
MOVWF 0X72
MOVWF 0X73
DEL11 NOP
NOP
DECFSZ 0X72,1
GOTO DEL11
MOVLW 0X02
SUBWF 0X73,0
BTFSS STATUS,0
RETURN
DECF 0X73,1
MOVLW 0XFF
MOVWF 0X72
GOTO DEL11
;=====================================F_JS=============================
F_JS ;CLRF R5
BCF 0X77,2
BCF 0X77,3
BCF INTCON,7
MOVLW 0X08
SUBWF FTH,0
BTFSC STATUS,0
GOTO F_JS1
BSF 0X77,2
GOTO F_END
F_JS1 MOVLW 0XD0
SUBWF FTH,0
BTFSS STATUS,0
GOTO F_JS2
BSF 0X77,3
GOTO F_END
F_JS2 MOVF FH,0;MOVLW 0X98
MOVWF BUF2
MOVF FL,0;MOVLW 0X96
MOVWF BUF1
MOVLW 0X80 ;4C4B40H=5000000
MOVWF BUF0
MOVF FTH,0
MOVWF LDIVH
MOVF FTL,0
MOVWF LDIVL
BSF INTCON,7
CALL DIV2
MOVF BUF1,0
MOVWF CCL
MOVF BUF0,0
MOVWF DDH
CALL VOL_BCD
RETURN
F_END BSF INTCON,7
CLRF R1
CLRF R2
CLRF R3
;CLRF R4
RETURN
;================================ZD_F===========================================
KSZD_F
INCF R7,1
MOVLW 0X02
SUBWF R7,0
BTFSS STATUS,0
GOTO GG2
CLRF R7
BCF T1CON,TMR1ON
INCF R5,1
MOVLW 0X09
SUBWF R5,0
BTFSS STATUS,0
GOTO GGG1
MOVF TMR1H,0
MOVWF FTH
MOVF TMR1L,0
MOVWF FTL
CLRF R5
GGG1 CLRF TMR1L
CLRF TMR1H
BSF T1CON,TMR1ON
; MOVLW 0X27
;MOVWF FTHH
;MOVLW 0X20
;MOVWF FTLL
; BTFSS 0X77,1
; GOTO GG1
; BCF 0X77,1
; GOTO GG2
;GG1 BSF 0X77,1
GG2 MOVF PORTA,0
MOVWF PORTA
BCF INTCON,RABIF
RETURN
;================================================================================
DIV2
CLRF BUF3
MOVLW 0X10
MOVWF MUL
AGAIN_DIV
CALL RT_SUB_DIV ;调用移位除法子程序
DECFSZ MUL,1 ;16次完成则结束
GOTO AGAIN_DIV ;未完成则继续
RETURN
RT_SUB_DIV
BCF STATUS,0;c标志清0
RLF BUF0,1;被除数左移1位
RLF BUF1,1
RLF BUF2,1
RLF BUF3,1
BTFSC STATUS,0
GOTO RT3_DIV ;c标志为1则直接相减
MOVF BUF3,0 ;c标志为0则先比较大小
MOVWF MULH ;
MOVF BUF2,0
MOVWF MULL
MOVF LDIVH,0 ;先比较高位
SUBWF MULH,1
BTFSC STATUS,2
GOTO RT1_DIV ;高位相减跳RT1比较低位
GOTO RT2_DIV ;高位不等跳RT2
RT1_DIV
MOVF LDIVL,0 ;比较低位
SUBWF MULL,1
BTFSC STATUS,2
GOTO RT3_DIV ;低位也相等则跳RT3,相减,上1
RT2_DIV
BTFSS STATUS,0
RETURN ;减数大则返回,减数小则相减,上1
RT3_DIV
BSF BUF0,0;上1
CALL SUB_2B_DIV ;调2字节减法子程
RETURN
SUB_2B_DIV
MOVF LDIVH,0 ;高字节相减
SUBWF BUF3,1
MOVF LDIVL,0 ;低字节相减
SUBWF BUF2,1
BTFSC STATUS,2
RETURN ;低字节相等,无借位,返回
BTFSC STATUS,0
RETURN ;无借位,返回
DECF BUF3,1 ;低字节相减有借位,高字节结果减1
RETURN
;==========================wr_eerom===================
WRI_ ;写子程序
bsf STATUS,RP1
bsf STATUS,RP0 ;bank3
btfsc EECON1,WR
goto $-1
bcf STATUS,RP0
bcf STATUS,RP1 ;bank0
movf ADDR,0
bsf STATUS,RP1 ;bank2
movwf EEADR
bcf STATUS,RP1 ;bank0
movf VALU,0
bsf STATUS,RP1 ;bank2
movwf EEDATA
bsf STATUS,RP0 ;bank3
bcf EECON1,EEPGD ;to data memory
bsf EECON1,WREN
; bcf INTCON,GIE
movlw 55h
movwf EECON2
movlw 0aah
movwf EECON2
bsf EECON1,WR
btfsc EECON1,WR
goto $-1
; bsf INTCON,GIE
bcf EECON1,WREN
bcf STATUS,RP0
bcf STATUS,RP1 ;bank0
return
;===============read_ee=====================
READ_ ;读子程序
bcf STATUS,RP1
bcf STATUS,RP0 ;bank0
movf ADDR,0
bsf STATUS,RP1 ;bank2
movwf EEADR
bsf STATUS,RP0 ;bank3
bcf EECON1,EEPGD
bsf EECON1,RD
bcf STATUS,RP0 ;bank2
movf EEDATA,0
bcf STATUS,RP1 ;bnak0
;movwf INDF ;存读出值
return
KZ_JDQ MOVF YH,0;MOVLW 0X01
SUBWF VOLTH,0
BTFSC STATUS,0
GOTO KZ_JDQ1
KZ_DD INCF R6,1
MOVLW 0XE0
SUBWF R6,0
BTFSS STATUS,0
RETURN
BCF INTCON,7
BSF PORTB,7
MOVLW 0X11
MOVWF R1
MOVLW 0X13
MOVWF R2
MOVWF R3
MOVWF R4
KZ_DD1 CALL DISP_1
GOTO KZ_DD1
KZ_JDQ1 BTFSC STATUS,3
GOTO KZ_JDQ2
MOVF YL,0; MOVLW 0X80
SUBWF VOLTL,0
BTFSC STATUS,0
GOTO KZ_JDQ2
GOTO KZ_DD
KZ_JDQ2 CLRF R6
BCF PORTB,7
RETURN
ORG 0X508
;-----------TIME=====================================
TIME_T ;BCF INTCON,7
CLRF TMR0
BCF INTCON,T0IF
MOVLW 0X09;0X98
SUBWF XT1,0
BTFSC STATUS,0
GOTO TIM_1
INCF XT1,1
RETURN
TIM_1 CLRF XT1
MOVLW 0X06;0X24
SUBWF XT2,0
BTFSC STATUS,0
GOTO TIM_11
INCF XT2,1
RETURN
TIM_11 CLRF XT2
;CLRF XT1
MOVLW 0X09
SUBWF RR1,0
BTFSC STATUS,0
GOTO TIM_2
INCF RR1,1
GOTO TIMM_WR
TIM_2 CLRF RR1
MOVLW 0X09
SUBWF RR2,0
BTFSC STATUS,0
GOTO TIM_3
INCF RR2,1
GOTO TIMM_WR
TIM_3 CLRF RR2
MOVLW 0X09
SUBWF RR3,0
BTFSC STATUS,0
GOTO TIM_4
INCF RR3,1
GOTO TIMM_WR
TIM_4 CLRF RR3
INCF RR4,1
TIMM_WR ;BCF INTCON,7
MOVLW 0X01
MOVWF ADDR
MOVF RR1,0
MOVWF VALU
CALL WRI_
; CALL DELAY20
; CALL DELAY20
; CALL DELAY20
MOVLW 0X02
MOVWF ADDR
MOVF RR2,0
MOVWF VALU
CALL WRI_
; CALL DELAY20
;CALL DELAY20
;CALL DELAY20
MOVLW 0X03
MOVWF ADDR
MOVF RR3,0
MOVWF VALU
CALL WRI_
; CALL DELAY20
;CALL DELAY20
;CALL DELAY20
MOVLW 0X04
MOVWF ADDR
MOVF RR4,0
MOVWF VALU
CALL WRI_
; CALL DELAY20
;CALL DELAY20
;CALL DELAY20
;BSF INTCON,7
RETURN
;=========================================================================
INT MOVLW 0X01
MOVWF ADDR
CALL READ_
MOVWF RR1
CALL DELAY5MS
CALL DELAY5MS
MOVLW 0X0A
SUBWF RR1,0
BTFSC STATUS,0
CLRF RR1
MOVLW 0X02
MOVWF ADDR
CALL READ_
MOVWF RR2
CALL DELAY5MS
CALL DELAY5MS
MOVLW 0X0A
SUBWF RR2,0
BTFSC STATUS,0
CLRF RR2
MOVLW 0X03
MOVWF ADDR
CALL READ_
MOVWF RR3
CALL DELAY5MS
CALL DELAY5MS
MOVLW 0X0A
SUBWF RR3,0
BTFSC STATUS,0
CLRF RR3
MOVLW 0X04
MOVWF ADDR
CALL READ_
MOVWF RR4
CALL DELAY5MS
CALL DELAY5MS
MOVLW 0X0A
SUBWF RR4,0
BTFSC STATUS,0
CLRF RR4
MOVLW 0X05
MOVWF ADDR
CALL READ_
MOVWF BL
MOVLW 0X03
MOVWF BUF2
MOVLW 0X5B
MOVWF BUF1
MOVLW 0X29 ;035B29=D7*3FF=215*1023
MOVWF BUF0
MOVLW 0X01
MOVWF LDIVH
MOVF BL,0
MOVWF LDIVL
;BSF INTCON,7
CALL DIV2
MOVF BUF1,0
MOVWF YH
MOVF BUF0,0
MOVWF YL
MOVLW 0X06
MOVWF ADDR
CALL READ_
MOVWF FL
MOVLW 0X07
MOVWF ADDR
CALL READ_
MOVWF FH
RETURN
;=========================================================================
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -