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

📄 3in1so.asm

📁 本资源包含了单片机键盘、a/d、频率测试等源代码
💻 ASM
📖 第 1 页 / 共 2 页
字号:
  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 + -