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

📄 in419c.asm

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