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

📄 3in1so.asm

📁 本资源包含了单片机键盘、a/d、频率测试等源代码
💻 ASM
📖 第 1 页 / 共 2 页
字号:
       RETURN  

   


DISP_1   BCF INTCON,7;BSF PORTA,1
         MOVF R1,0
         CALL TABLE
         MOVWF PORTC
         BSF INTCON,7
         BCF PORTB,4
         CALL DELAY5MS
         BSF PORTB,4
         BCF INTCON,7
         MOVF R2,0
         
         CALL TABLE
         MOVWF PORTC
         BSF INTCON,7
         BCF PORTB,5
         ;BSF PORTC,3
         CALL DELAY5MS
         BSF PORTB,5
         ;BCF PORTC,3
         BCF INTCON,7 
         MOVF R3,0
         CALL TABLE
         MOVWF PORTC
         BSF INTCON,7
         BCF PORTA,2
         CALL DELAY5MS
         BSF PORTA,2
         BCF INTCON,7
         MOVF R4,0
         CALL TABLE
         MOVWF PORTC
         BCF INTCON,7
         BCF PORTA,1
         CALL DELAY5MS
         BSF PORTA,1 
         RETURN
DISP_2  BCF INTCON,7
         MOVF R1,0
       
         CALL TABLE
         MOVWF PORTC
         BSF  INTCON,7
         BCF PORTB,4
         CALL DELAY5MS
         BSF PORTB,4
         BCF INTCON,7
         MOVF R2,0
        
         CALL TABLE
         MOVWF PORTC
         BSF INTCON,7
         BCF PORTB,5
         BSF PORTC,3
         CALL DELAY5MS
         BSF PORTB,5
         BCF PORTC,3 
         BCF INTCON,7
         MOVF R3,0
        
         CALL TABLE
         MOVWF PORTC
          BSF INTCON,7
         BCF PORTA,2
         CALL DELAY5MS
         BSF PORTA,2
         ;BCF INTCON,RABIF
         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 0X04
           MOVWF 0X70
           MOVWF 0X71
DEL1       NOP
           NOP
         
          DECFSZ 0X70,1
          GOTO DEL1
          MOVLW 0X02
          SUBWF 0X71,0
          BTFSS STATUS,0
         
            RETURN
          DECF 0X71,1
          MOVLW 0XFF
          MOVWF 0X70
          GOTO DEL1
;=========================F-CELIANG==========================
F_CL     ;  CLRWDT
          ;  BTFSS PORTA,0
           ; GOTO F_CL0
F_CL1      ; CLRWDT
           ; BTFSC PORTA,0
           ; GOTO F_CL1
           ;GOTO F_CL2
F_CL0      ;CLRWDT
           ; BTFSS PORTA,0
           ; GOTO F_CL0
            BCF T1CON,TMR1ON
            BCF INTCON,7
            CLRF TMR1H
            CLRF TMR1L
            CLRF FTH
            CLRF FTL
            MOVLW 0X27
           MOVWF FTH
            MOVLW 0X10
            MOVWF FTL
            
            ;MOVF PORTA,0
            ;MOVWF PORTA
          ;MOVLW 0X4E
          ; MOVWF FTH
          ; MOVLW 0X20
          ; MOVWF FTL
F_CL2       BSF T1CON,TMR1ON
           ; BSF STATUS,RP1
           ; BCF STATUS,RP0
           ; BCF ANSEL,0
            BCF STATUS,RP1
            BSF STATUS,RP0
             CLRF IOCA
             CLRF IOCB
             BSF IOCA,0
             BSF TRISA,0
             BSF WPUA,0
            BCF PCON,5
            BCF STATUS,RP0
            
        
            MOVF PORTA,0
            BSF INTCON,RABIE
               BSF INTCON,GIE 
            BCF 0X77,1
            BCF 0X77,2
            BCF 0X77,3 
F_CL33     BTFSC 0X77,2
           GOTO F_SSH
            BTFSC 0X77,3
           GOTO F_SSL
            CALL F_JS
F_CL30      CALL DISP_2
            
            MOVLW 0XA1
            SUBWF TMR1H,0
            BTFSC STATUS,0
            GOTO F_SSL1
            
            RETURN;GOTO F_CL33
            
F_SSH       MOVLW 0X11
            MOVWF R1
            MOVWF R2
            MOVWF R3
            MOVWF R4
            CALL DISP_2
            BCF 0X77,2
           RETURN;GOTO F_SSH
             RETURN
F_SSL       MOVLW 0X10
            MOVWF R1
            MOVWF R2
            MOVWF R3
            MOVWF R4
            CALL DISP_2
            BCF 0X77,3
           RETURN;GOTO F_SSL

             RETURN
F_SSL1      BCF INTCON,7 
            BCF T1CON,TMR1ON
             CLRF TMR1H
             CLRF TMR1L
             BSF T1CON,TMR1ON
             BSF INTCON,7
             RETURN; GOTO F_SSL
;=====================================F_JS=============================
F_JS        BCF 0X77,2
            BCF 0X77,3
            BCF INTCON,7
            MOVLW 0X16
            SUBWF FTH,0
            BTFSC STATUS,0
            GOTO F_JS1
            BSF 0X77,2
            GOTO F_END
F_JS1       MOVLW 0XA0
            SUBWF FTH,0
            BTFSS STATUS,0
            GOTO F_JS2
            BSF 0X77,3
            GOTO F_END
F_JS2       MOVLW 0X4C
            MOVWF BUF2
            MOVLW 0X4B
            MOVWF BUF1
            MOVLW 0X40         ;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
            RETURN           
;================================ZD_F===========================================
KSZD_F       BCF INTCON,7
           BCF T1CON,TMR1ON
           MOVWF W_TEMP
           SWAPF STATUS,0
           CLRF STATUS
           MOVWF ST_TEMP
          ; MOVF PCLATH,0
          ; MOVWF ZZ_HH
            MOVF TMR1H,0
            MOVWF FTH
            MOVF TMR1L,0
            MOVWF FTL
            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
           ;  BSF STATUS,RP0
            ; BCF IOCA,0
            ; BCF STATUS,RP0
          ; MOVF ZZ_HH,0
           ; MOVWF PCLATH 
            SWAPF ST_TEMP,0
            MOVWF STATUS
            SWAPF W_TEMP,1
            SWAPF W_TEMP,0
            

            BSF INTCON,7
           ; MOVLW 0X44
           ; MOVWF PORTC
           ; BSF PORTA,1
           ; BSF PORTA,2
           ; BSF PORTB,5
           ; BCF PORTB,4
;MAS         GOTO MAS
            RETFIE






;================================================================================
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,W
        bsf STATUS,RP1  ;bank2
        movwf EEADR
        bcf STATUS,RP1  ;bank0
        movf VALU,W
        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,W
          bsf STATUS,RP1  ;bank2
          movwf EEADR   
          bsf STATUS,RP0  ;bank3
          bcf EECON1,EEPGD
          bsf EECON1,RD
          bcf STATUS,RP0  ;bank2
          movf EEDATA,W
          bcf STATUS,RP1  ;bnak0
          ;movwf INDF   ;存读出值
          return

;-----------TIME=====================================
TIME_T   ;BCF INTCON,7
         CLRF TMR0
         BCF INTCON,T0IF
         MOVWF W_TEMP
           SWAPF STATUS,0
           CLRF STATUS
           MOVWF ST_TEMP
          ; MOVF PCLATH,0
          ; MOVWF ZZ_HH
         MOVLW 0X98
         SUBWF XT1,0
         BTFSC STATUS,0
         GOTO TIM_1
         INCF XT1,1
          ;MOVF ZZ_HH,0
          ;  MOVWF PCLATH 
            SWAPF ST_TEMP,0
            MOVWF STATUS
            SWAPF W_TEMP,1
            SWAPF W_TEMP,0
         RETFIE
TIM_1    CLRF XT1
          MOVLW 0X24
          SUBWF XT2,0
          BTFSC STATUS,0
          GOTO TIM_11
          INCF XT2,1
           SWAPF ST_TEMP,0
            MOVWF STATUS
            SWAPF W_TEMP,1
            SWAPF W_TEMP,0
         RETFIE
TIM_11   CLRF XT2
         MOVLW 0X09
         SUBWF RR1,0
         BTFSC STATUS,0
         GOTO TIM_2
         INCF RR1,1
         ; MOVF ZZ_HH,0
         ;   MOVWF PCLATH 
            SWAPF ST_TEMP,0
            MOVWF STATUS
            SWAPF W_TEMP,1
            SWAPF W_TEMP,0
         RETFIE
TIM_2    CLRF RR1
         MOVLW 0X09
         SUBWF RR2,0
         BTFSC STATUS,0
         GOTO TIM_3
         INCF RR2,1
          ; MOVF ZZ_HH,0
          ;  MOVWF PCLATH 
            SWAPF ST_TEMP,0
            MOVWF STATUS
            SWAPF W_TEMP,1
            SWAPF W_TEMP,0
         RETFIE
TIM_3    CLRF RR2
         MOVLW 0X09
         SUBWF RR3,0
         BTFSC STATUS,0
         GOTO TIM_4
         INCF RR3,1
         ; MOVF ZZ_HH,0
           ; MOVWF PCLATH 
            SWAPF ST_TEMP,0
            MOVWF STATUS
            SWAPF W_TEMP,1
            SWAPF W_TEMP,0
         RETFIE
TIM_4    CLRF RR3
         INCF RR4,1
         ; MOVF ZZ_HH,0
           ;MOVWF PCLATH 
            SWAPF ST_TEMP,0
            MOVWF STATUS
            SWAPF W_TEMP,1
            SWAPF W_TEMP,0
         RETFIE







;=========================================================================
            END  






































⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -