📄 3in1so.asm
字号:
LIST P=16F690;F=INHX8M
#INCLUDE P16F690.inc
;__config( _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON &_CP_OFF&_MCLRE_OFF)
ORG 0x0000
GOTO MAIN
ORG 0X0004
BTFSC INTCON,T0IF
GOTO TIME_T
BTFSC INTCON,RABIF
CALL KSZD_F
RETFIE
CBLOCK 0X20
W_TEMP
ST_TEMP
ZZ_HH
R1 ;EQU 0X3C
R2 ;EQU 0X3D
R3 ;EQU 0X3E
R4 ;EQU 0X3F
R5 ;EQU 0X40
R6 ;EQU 0X41
R7 ;EQU 0X42
VOLTH
VOLTL
AAH
AAL
BBH
BBL
CCH
CCL
DDH
DDL
EEH
EEL
XT2
XT1
FTH
FTL
BUF3
BUF2
BUF1
BUF0
LDIVH
LDIVL
MUL
MULH
MULL
FTHH
FTLL
ADDR
VALU
RR1
RR2
RR3
RR4
ENDC
ORG 0X30
TABLE ADDWF PCL,1
RETLW 0x77 ;0
RETLW 0x44 ;1
RETLW 0xB5 ;2
RETLW 0xD5 ;3
RETLW 0xC6 ;4
RETLW 0xD3 ;5
RETLW 0xF3 ;6
RETLW 0x45 ;7
RETLW 0xF7 ;8
RETLW 0xD7 ;9
RETLW 0XB7 ;A
RETLW 0XFF ;B
RETLW 0XB9 ;C
RETLW 0XBF ;D
RETLW 0XF9 ;E
RETLW 0XDC ;F
RETLW 0X32 ;L
RETLW 0XE6 ;H
RETLW 0XC0 ;-
RETURN
ORG 0X80
MAIN
;================================
;**************************************
;被除数存于BUF2,BUF1,BUF0中,其中BUF0为低字节,BUF2为高字节
;除数存于LDIVH,LDIVL中,其中LDIVL为低字节,LDIVH为高字节
;商存于BUF1,BUF0中BUF0为低字节,BUF1为高字节
;余数存于BUF3,BUF2中,BUF2为低字节,BUF3为高字节
;**************************************
; MOVLW 0X98
; MOVWF BUF2
; MOVLW 0X96
; MOVWF BUF1
; MOVF 0X80
; MOVWF BUF0
; MOVLW 0X10
; MOVWF LDIVH
; MOVLW 0X00
; MOVWF LDIVL
;CALL DIV2
;SSSD GOTO SSSD
;================================
BCF STATUS,7
BCF STATUS,RP0
BCF STATUS,RP1
CLRF PORTA
CLRF PORTB
CLRF PORTC
BSF STATUS,RP1
CLRF ANSEL
CLRF ANSELH
BSF ANSEL,3
BSF STATUS,RP0
BCF STATUS,RP1
MOVLW 0X00
MOVWF TRISC ;RC0=A,RC1F;RC2=B;RC3=DP,RC4=D;RC5=E;RC6=C;RC7=G
MOVLW 0X40
MOVWF TRISB ;RB4-W4,RB5-W3,RB6-KEY,RB7-KZ
MOVLW 0x07
MOVWF OPTION_REG
BCF TRISA,1
BCF TRISA,2
BSF TRISA,0
BSF TRISA,4
BSF TRISA,3
; BCF TRISA,2
CLRF PIE1
BCF STATUS,RP0
CLRF PIR1
;CALL INT
MOVLW 0XFF
MOVWF PORTA
MOVWF PORTB
BCF PORTA,0
MOVLW 0X00
MOVWF PORTC
CLRWDT
CLRF INTCON
;BCF INTCON,RABIF
CLRF R1
CLRF R2
CLRF R3
CLRF R4
CLRF RR1
CLRF RR2
CLRF RR3
CLRF RR4
CLRF VOLTL
CLRF VOLTH
CLRF TMR1L
CLRF TMR1H
CLRF TMR2
CLRF FTH
CLRF FTL
CLRF TMR0
CLRF XT1
CLRF XT2
BSF INTCON,T0IE
BSF INTCON,7
; MOVLW 0X06
; MOVWF R1
; MOVLW 0X09
; MOVWF R2
;============================
;GGB1 MOVLW 0X05
; CALL TABLE
; MOVWF PORTC
; BCF PORTB,5
; CALL DELAY5MS
; BSF PORTB,5
; MOVLW 0X06
; CALL TABLE
; MOVWF PORTC
; BCF PORTB,4
; CALL DELAY5MS
; BSF PORTB,4
; MOVLW 0X03
; CALL TABLE
; MOVWF PORTC
; BCF PORTA,2
; CALL DELAY5MS
; BSF PORTA,2
; MOVLW 0X02
; CALL TABLE
; MOVWF PORTC
; BCF PORTA,1
; CALL DELAY5MS
; BSF PORTA,1
; GOTO GGB1
; GOTO MAIN3
;JJH CALL DISP_1
; GOTO JJH
;============================
MAIN11 CLRWDT
BTFSS PORTB,6
GOTO MAIN11
MAIN1 CALL AD_1 ;电压A/D检测
; MOVLW 0XFF
; MOVWF VOLTL
; MOVLW 0X03
; MOVWF VOLTH
CALL VOL_JS
CALL VOL_BCD
CALL DISP_1
CLRWDT
; GOTO MAIN1
BTFSC PORTB,6
GOTO MAIN1
;GOTO MAIN3
MAIN2 CLRWDT
BTFSS PORTB,6
GOTO MAIN2
CALL F_CL ;频率测量程序
; CALL DISP
BTFSC PORTB,6
GOTO MAIN2
;MAIN3 CLRWDT
; BTFSS PORTC,2
; GOTO MAIN3
; CALL DISP ;累计时间显示
; BTFSC PORTC,2
; GOTO MAIN3
; GOTO MAIN1
MAIN3 CLRWDT
BTFSS PORTB,6
GOTO MAIN3
MAIN33 BCF INTCON,7
MOVF RR1,0
MOVWF R1
MOVF RR2,0
MOVWF R2
MOVF RR3,0
MOVWF R3
MOVF RR4,0
MOVWF R4
BSF INTCON,7
CALL DISP_2
BTFSC PORTB,6
GOTO MAIN33
GOTO MAIN11
MOVLW 0X00
MOVWF ADDR
MOVLW 0X05
MOVWF VALU
CALL WRI_
CALL DELAY5MS
CALL DELAY5MS
CALL DELAY5MS
MOVLW 0X00
MOVWF ADDR
CALL READ_
MOVWF R1
MAIN4 CALL DISP_1
GOTO MAIN4
;------------------------------A/D-------------------------
AD_1 ;BCF INTCON,7
BSF STATUS,RP0
BCF STATUS,RP1
MOVLW 0X50
MOVWF ADCON1
BSF TRISA,4
BCF STATUS,RP0
BSF STATUS,RP1
BSF ANSEL,3
BCF STATUS,RP1
MOVLW 0X8C
MOVWF ADCON0
BSF ADCON0 , ADON
MOVLW 0x20
MOVWF 0x72
AD1 DECFSZ 0x72 , f
GOTO AD1
BSF ADCON0,GO
BCF STATUS,RP1
AD2 BTFSC ADCON0 ,GO
GOTO AD2
MOVF ADRESH ,0
MOVWF VOLTH
MOVLW 0X03
ANDWF VOLTH,1
BSF STATUS,RP0
MOVF ADRESL,0
BCF STATUS,RP0
MOVWF VOLTL
;BCF ADCON0 ,ADON;;;关闭AD
;BSF INTCON,7
RETURN
;------------------VOL-BCD-----------------------------------
VOL_BCD CLRF R1
CLRF R2
CLRF R3
BCF 0X77,0
MOVLW 0X01
SUBWF CCL,0
BTFSS STATUS,0
BSF 0X77,0
BCD MOVLW 0X01
SUBWF DDH,1
BTFSS STATUS,0
GOTO BCD1
INCF R1,1
MOVLW 0X0A
SUBWF R1,0
BTFSS STATUS,0
GOTO BCD
MOVWF R1
INCF R2,1
MOVLW 0X0A
SUBWF R2,0
BTFSS STATUS,0
GOTO BCD
CLRF R2
INCF R3,1
GOTO BCD
BCD1 BTFSC 0X77,0
GOTO BCD2
BSF 0X77,0
MOVLW 0XFF
MOVWF DDH
GOTO BCD
BCD2 RETURN
; ==============================****AHAL*BHBL=CHCLDHDL****==================================
VOL_JS CLRF AAH
CLRF AAL
CLRF BBH
CLRF BBL
CLRF CCH
CLRF CCL
CLRF DDH
CLRF DDL
CLRF EEH
CLRF EEL
;************************
MOVF VOLTH,0
MOVWF AAH
MOVF VOLTL,0
MOVWF AAL
MOVLW 0X01
MOVWF BBH
MOVLW 0X52
MOVWF BBL
;***********************
CALL Z1
CALL Z2
CALL ZONG
BCF STATUS,0
RRF CCL,1
RRF DDH,1
BCF STATUS,0
RRF CCL,1
RRF DDH,1
RETURN
Z1 MOVF AAH,0
MOVWF DDH
MOVF AAL,0
MOVWF DDL
MOVLW 0X01
SUBWF BBL,0
BTFSC STATUS,0
GOTO Z11
CLRF DDL
CLRF DDH
RETURN
Z11 MOVLW 0X02
SUBWF BBL,0
BTFSS STATUS,0
RETURN
DECF BBL,1
CALL SL_ADD
GOTO Z11
Z2 MOVF AAH,0
MOVWF EEH
MOVF AAL,0
MOVWF EEL
MOVLW 0X01
SUBWF BBH,0
BTFSC STATUS,0
GOTO Z22
CLRF EEH
CLRF EEL
RETURN
Z22 MOVLW 0X02
SUBWF BBH,0
BTFSS STATUS,0
RETURN
DECF BBH,1
CALL SH_ADD
GOTO Z22
ZONG MOVF DDH,0
ADDWF EEL,0
BTFSC STATUS,0
GOTO JIN1
MOVWF DDH
MOVF EEH,0
ADDWF CCL,0
BTFSC STATUS,0
GOTO JIN2
MOVWF CCL
RETURN
JIN2 MOVWF CCL
INCF CCH,1
RETURN
JIN1 MOVWF DDH
MOVF EEH,0
ADDWF CCL,0
BTFSC STATUS,0
GOTO JIN3
MOVWF CCL
MOVLW 0X01
ADDWF CCL,1
BTFSC STATUS,0
INCF CCH,1
RETURN
JIN3 MOVWF CCL
INCF CCL,1
INCF CCH,1
RETURN
;=======================ADDL=================
SL_ADD MOVF DDL,0
ADDWF AAL,0
BTFSC STATUS,0
GOTO JINL1
MOVWF DDL
MOVF DDH,0
ADDWF AAH,0
BTFSC STATUS,0
GOTO JINL2
MOVWF DDH
RETURN
JINL2 MOVWF DDH
INCF CCL,1
RETURN
JINL1 MOVWF DDL
MOVF DDH,0
ADDWF AAH,0
BTFSC STATUS,0
GOTO JINL3
MOVWF DDH
MOVLW 0X01
ADDWF DDH,1
BTFSC STATUS,0
INCF CCL,1
RETURN
JINL3 MOVWF DDH
INCF DDH,1
INCF CCL,1
RETURN
;=======================ADDH=================
SH_ADD MOVF EEL,0
ADDWF AAL,0
BTFSC STATUS,0
GOTO JINH1
MOVWF EEL
MOVF EEH,0
ADDWF AAH,0
BTFSC STATUS,0
GOTO JINH2
MOVWF EEH
RETURN
JINH2 MOVWF EEH
INCF CCH,1
RETURN
JINH1 MOVWF EEL
MOVF EEH,0
ADDWF AAH,0
BTFSC STATUS,0
GOTO JINH3
MOVWF EEH
MOVLW 0X01
ADDWF EEH,1
BTFSC STATUS,0
INCF CCH,1
RETURN
JINH3 MOVWF EEH
INCF EEH,1
INCF CCH,1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -