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

📄 10hz.asm

📁 本资源包含了单片机键盘、a/d、频率测试等源代码
💻 ASM
📖 第 1 页 / 共 4 页
字号:
            CALL DISP_2
            CALL DISP_3
            CLRWDT
            BTFSS PORTB,7
            GOTO MADD
            CLRF BJ15S
            INCF MI,1
            MOVLW 0X60
            SUBWF MI,0
            BTFSC STATUS,0
            GOTO MADD1
            MOVLW 0X0F
            ANDWF MI,0
            MOVWF R1
            MOVLW 0XF0
            ANDWF MI,0
            MOVWF R2
            MOVLW 0X0A
            SUBWF R1,0
            BTFSS STATUS,0
            RETURN
            MOVLW 0XF0
            ANDWF MI,1
            MOVLW 0X10
            ADDWF MI,1
            MOVLW 0X60
            SUBWF MI,0
            BTFSC STATUS,0
            GOTO MADD1
            RETURN
MADD1       CLRF MI
            RETURN
;================================================================================================


;-------------------------------------------------a/d-----------------
 ;----------AD--------------------
AD          BCF INTCON,GIE
			CLRWDT
			BSF STATUS,RP0
            MOVLW 0X00
            MOVWF ADCON1
            
            BSF TRISA,0
            BCF STATUS,RP0
           
            BSF     ADCON0      , ADON
           MOVLW   0x40
            MOVWF   0x22
AD1         DECFSZ  0x22      , f
            GOTO    AD1
            BSF     ADCON0,GO
AD2         CLRWDT
            BTFSC   ADCON0      ,GO
            GOTO    AD2
            MOVF    ADRES  ,0
            MOVWF   WENDU1
            BCF     ADCON0   ,ADON;;;关闭AD
            CALL TABLE_T
            MOVWF WENDU2
           
            BSF STATUS,RP0
            MOVLW 0XFF
            MOVWF ADCON1
            BSF  TRISA,4
            BCF TRISA,2
            BCF STATUS,RP0
            BSF INTCON,GIE
            CALL DELAY4US;;;;;

           
            RETURN
            
;======================================读2401中设定的温度值==========================================
       
RD24   CLRWDT
       MOVWF ADDR       ;地址暂存于F4中
       CALL START4   ;启动I2C
       MOVLW 0A0H 
       CALL SUBS4    ;写器件地址1010000+最后一位0写操作 
       MOVFW ADDR       ;载入地址
		CLRWDT
       CALL SUBS4    ;写地址 
       CALL START4   ;再发开始信号
       MOVLW  0A1H    ;写器件地址1010000+最后一位1读操作
       CALL SUBS4     
       BSF STATUS ,RP0
       BSF TRISA ,1            ;设SDA脚为输入,准备读
       BCF STATUS ,RP0 
       MOVLW 08H          ;共读8位数据
       MOVWF COUNT
RD000  CLRWDT
	   BCF  SDA	
       CALL DELAY4US;;;;
       BSF SDA            ;读数据
       CALL DELAY4US
       BSF STATUS,C
       BTFSS SCLK
       BCF STATUS,C
       RLF TEMP ,1
       
       DECFSZ COUNT ,1      ;循环读完8位
       GOTO RD000
       CALL DELAY4US
       BCF SDA
	   BSF SCLK
       BSF STATUS ,RP0
       BCF TRISA ,1           ;恢复SDA脚为输出
       BCF STATUS ,RP0
       CALL DELAY4US
		BSF SCLK             ;应答毕,SDA置1
       CALL DELAY4US
       BSF SDA
       CALL DELAY4US            
       CALL STOP4          ;送停止信号
       MOVFW  TEMP          ;将读的数据送入W中
       CLRWDT   
		RETURN
;******************************写入24C02程序
WT24     CLRWDT
		MOVWF ADDR         ;  先将地址暂存于F4  
        CALL START4    ;开始条件
        MOVLW 0A0H
        CALL  SUBS4      ;写器件地址1010000+最后一位0写操作
        MOVFW ADDR          ;载入地址
		CLRWDT
        CALL  SUBS4      ;写地址
        MOVFW DAT          ;载入数据 
        CALL SUBS4       ;写数据
		CLRWDT
        CALL STOP4         ;停止信号
        RETURN 





;===============================================================================
;====================================温度显示程序====================
DISP_1   MOVF WENDU,0
         MOVLW 0X0F
         ANDWF WENDU,0
         MOVWF R1
         MOVLW 0XF0
         ANDWF WENDU,0
         MOVWF R2
         SWAPF R2,1
         MOVF R1,0
         CALL TABLE
         MOVWF PORTC
         BCF PORTB,1
         CALL DELAY5MS
		 CLRWDT	
         BSF PORTB,1
         MOVF R2,0
         CALL TABLE
         MOVWF PORTC
         BCF PORTB,0
         CALL DELAY5MS
         BSF PORTB,0
	     CLRWDT
         RETURN
;====================================XIAOSHI显示程序====================
DISP_2   MOVF TI,0
         MOVLW 0X0F
         ANDWF TI,0
         MOVWF R1
         MOVLW 0XF0
         ANDWF TI,0
         MOVWF R2
         SWAPF R2,1
         MOVF R1,0
         CALL TABLE
         MOVWF PORTC
         BCF PORTB,3
         
         CALL DELAY5MS
		 CLRWDT
         BSF PORTB,3
         MOVF R2,0
         CALL TABLE
         MOVWF PORTC
         BCF PORTB,2
         CALL DELAY5MS
         BSF PORTB,2
		 CLRWDT
         RETURN
;===================================FENZHONG显示程序====================
DISP_3   MOVF MI,0
         MOVLW 0X0F
         ANDWF MI,0
         MOVWF R1
         MOVLW 0XF0
         ANDWF MI,0
         MOVWF R2
         SWAPF R2,1
         MOVF R1,0
         CALL TABLE
         MOVWF PORTC
         BCF PORTC,7
         CALL DELAY5MS
		 CLRWDT
         BSF PORTC,7
         MOVF R2,0
         CALL TABLE
         MOVWF PORTC
         BCF PORTB,4
         CALL DELAY5MS
         BSF PORTB,4
		 CLRWDT
         RETURN
;----------------------------------------------------------
HZ10HZ   BCF PIR1,TMR1IF
         MOVLW 0X2F
         MOVWF TMR1L
         MOVLW 0XF8
         MOVWF TMR1H

         BTFSS HZFLAG,ST
         GOTO   JCQSW
         INCF   CONT,1
         BTFSC  STATUS,Z
         DECF  COUNT,1
         BTFSS PORTA,4
         GOTO  HZDFH
         BTFSS  HZFLAG,LOWF
         GOTO  HZGFH
         MOVF  CONT,0
         MOVWF F1
         
         CLRF  CONT
HZGFH    BCF   HZFLAG,LOWF
         RETURN       
HZDFH    BSF   HZFLAG,LOWF
         RETURN
 
JCQSW    BTFSS PORTA,4
         GOTO  HZDFH
         BTFSS  HZFLAG,LOWF
         GOTO  HZGFH
         BSF   HZFLAG,ST
         BCF   HZFLAG,LOWF
         RETURN

         
         ; INCF R100,1
 
;         BTFSS PORTA,4
 ;        GOTO HZ10HZ_1
  ;       BTFSC 0X70,1
   ;      GOTO HZ10HZ_2
   ;      MOVLW 0X32
   ;      SUBWF R100,0
   ;      BTFSS STATUS,0
   ;      RETURN
   ;      CLRF R100
   ;      BCF 0X70,1
   ;      BCF 0X70,0
   ;      RETURN

;HZ10HZ_2 MOVLW 0X32
;         SUBWF R100,0
;         BCF 0X70,0
;         BTFSS STATUS,0
;         BSF 0X70,0
;         CLRF R100
;         BCF 0X70,1
;         RETURN

;HZ10HZ_1 BSF 0X70,1
;         MOVLW 0X32
;         SUBWF R100,0
;         BTFSS STATUS,0
;         RETURN
;         CLRF R100
;         BCF 0X70,1
;         BCF 0X70,0
;         RETURN
;=========================INT  READ2401===============
INT          CLRWDT
		     MOVLW 0X13
             CALL RD24
             MOVWF SHUWD
             MOVLW 0X9A
             SUBWF SHUWD,0
             BTFSS STATUS,0
             GOTO RY1
             MOVLW 0X27
             MOVWF SHUWD 
       
RY1        	
			CLRWDT
		    MOVLW 0X01
            CALL RD24
            MOVWF SHU1OT
            MOVLW 0X9A
            SUBWF SHU1OT,0
            BTFSC STATUS,0
            CLRF SHU1OT
		
			 CLRWDT		
             MOVLW 0X02
             CALL RD24
             MOVWF SHU1OM
             MOVLW 0X9A
             SUBWF SHU1OM,0
             BTFSC STATUS,0
             CLRF SHU1OM
	      
			CLRWDT
             MOVLW 0X03
             CALL RD24
             MOVWF SHU1FT
             MOVLW 0X9A
             SUBWF SHU1FT,0
             BTFSC STATUS,0
             CLRF SHU1FT
		
			CLRWDT
             MOVLW 0X04
             CALL RD24
             MOVWF SHU1FM
             MOVLW 0X9A
             SUBWF SHU1FM,0
             BTFSC STATUS,0
             CLRF SHU1FM
		
		 	 CLRWDT	
             MOVLW 0X05
             CALL RD24
             MOVWF SHU2OT
             MOVLW 0X9A
             SUBWF SHU2OT,0
             BTFSC STATUS,0
             CLRF SHU2OT
		
             MOVLW 0X06
             CALL RD24
             MOVWF SHU2OM
             MOVLW 0X9A
             SUBWF SHU2OM,0
             BTFSC STATUS,0
             CLRF SHU2OM
             MOVLW 0X07
             CALL RD24
             MOVWF SHU2FT
             MOVLW 0X9A
             SUBWF SHU2FT,0
             BTFSC STATUS,0
             CLRF SHU2FT
             MOVLW 0X08
             CALL RD24
             MOVWF SHU2FM
             MOVLW 0X9A
             SUBWF SHU2FM,0
             BTFSC STATUS,0
             CLRF SHU2FM
             MOVLW 0X09
             CALL RD24
             MOVWF SHU3OT
             MOVLW 0X9A
             SUBWF SHU3OT,0
             BTFSC STATUS,0
             CLRF SHU3OT
             MOVLW 0X0A
             CALL RD24
             MOVWF SHU3OM
              MOVLW 0X9A
             SUBWF SHU3OM,0
             BTFSC STATUS,0
             CLRF SHU3OM
             MOVLW 0X0B
             CALL RD24
             MOVWF SHU3FT
             MOVLW 0X9A
             SUBWF SHU3FT,0
             BTFSC STATUS,0
             CLRF SHU3FT
             MOVLW 0X0C
             CALL RD24
             MOVWF SHU3FM
             MOVLW 0X9A
             SUBWF SHU3FM,0
             BTFSC STATUS,0
             CLRF SHU3FM
             MOVLW 0X20
             SUBWF SHU1OT,0
             BTFSC STATUS,0
             GOTO QUXIAO
             MOVLW 0X20
             SUBWF SHU1FT,0
             BTFSC STATUS,0
             GOTO QUXIAO
             GOTO USA1
QUXIAO       CLRWDT
	         BSF BZD1,BZD1ALL
USA1         MOVF SHU1OT,0
            SUBWF SHU1FT,0
            BTFSC STATUS,2
            GOTO USA11
            BTFSS STATUS,0
            GOTO USA12
            BSF BZD1,BZD1F
            GOTO USA2
USA11       MOVF SHU1OM,0
            SUBWF SHU1FM,0
            BTFSC STATUS,0
            GOTO USA12
            BSF BZD1,BZD1F
            GOTO USA2
USA12      BCF BZD1,BZD1F
USA2       MOVF SHU2OT,0
            SUBWF SHU2FT,0
            BTFSC STATUS,2
            GOTO USA21
            BTFSS STATUS,0
            GOTO USA22
            BSF BZD1,BZD1S
            GOTO USA3
USA21       MOVF SHU2OM,0
            SUBWF SHU2FM,0
            BTFSC STATUS,0
            GOTO USA22
            BSF BZD1,BZD1S
            GOTO USA3
USA22      BCF BZD1,BZD1S
USA3       MOVF SHU3OT,0
            SUBWF SHU3FT,0
            BTFSC STATUS,2
            GOTO USA31
            BTFSS STATUS,0
            GOTO USA32
            BSF BZD1,BZD1T
            GOTO USA4
USA31       MOVF SHU3OM,0
            SUBWF SHU3FM,0
            BTFSC STATUS,0
            GOTO USA32
            BSF BZD1,BZD1T
            GOTO USA4
USA32      BCF BZD1,BZD1T
USA4       RETURN  
 

WD_PD      CLRWDT   
			BCF BZD1,WDXIAO
           MOVLW 0X05
           SUBWF SHUWD,0
           BTFSC STATUS,0
           GOTO WD_PD1
           BCF BZD1,WDBJ
           BCF PORTA,2
           BSF BZD1,WDXIAO
           RETURN
WD_PD1     MOVF WENDU2,0
           SUBWF SHUWD,0
           BTFSC STATUS,0
           GOTO WD_PD2
           BCF BZD1,WDBJ
           BCF PORTA,2
           BSF BZD1,WDXIAO
           RETURN
WD_PD2     MOVLW 0X04
           ADDWF WENDU2,0
           MOVWF TSP
           MOVLW 0XF0
           ANDWF TSP,0
           MOVWF R1
           MOVLW 0X0F
           ANDWF TSP,0
           MOVWF R2
           MOVLW 0X0A
           SUBWF R2,0
           BTFSC STATUS,0
           GOTO WD_PD5
WD_PD4     MOVF TSP,0
           SUBWF SHUWD,0
           BTFSC STATUS,0
           GOTO WD_PD3
         
;--------------------------------
           ;BCF BZD1,WDBJ
		   ;BCF PORTA,2
           ;BSF BZD1,WDXIAO
;---------------------------------
           RETURN
WD_PD3     BSF BZD1,WDBJ
		   ;--------
		   BCF BZD1,WDXIAO	
           ;BSF PORTA,2
	       ;--------	
           RETURN
WD_PD5     MOVLW 0X0A
           SUBWF R2,1
           MOVLW 0X10
           ADDWF R1,1
           MOVF R2,0
           ADDWF R1,0
           MOVWF TSP
           GOTO WD_PD4

DELAY5MS    ;CLRF TMR1L
            ;CLRF TMR1H
             CLRF TMR2
            BSF  T1CON,TMR2ON
DEL1        MOVLW 0X05
            SUBWF TMR2,0
            BTFSS STATUS,0
            GOTO DEL1
            BCF T2CON,TMR2ON
            ;CLRF TMR1L
            CLRF TMR2
            RETURN  
 
;DELAY5MS   MOVLW 0X64
;           MOVWF 0X66
;D52        MOVLW 0X09
;           MOVWF 0X67
;D51        NOP
;           DECFSZ 0X67,1
;           GOTO D51
;           DECFSZ 0X66,1
;           GOTO D52
;           	CLRWDT
;            RETURN  

DELAY1S      MOVLW 0X50
			 MOVWF 0X7D
INTD         MOVWF 0XF0
             MOVWF 0X7E			
INTD1        CLRWDT 
			 CALL DELAY4US
			  CALL DELAY4US
			 DECFSZ 0X7E,1
             GOTO INTD1
			 DECFSZ 0X7D,1
             GOTO INTD
			 RETURN	
  
START4  BCF SDA;;;;                   ;开始条件
        CALL DELAY4US
		BSF  SCLK
		CALL DELAY4US
        BSF  SDA
        CALL DELAY4US
        BCF  SCLK
        CALL DELAY4US
        BCF  SDA
		CALL DELAY4US;;;;;
        RETURN 

STOP4   BCF  SDA     ;;;;;
		CALL DELAY4US
        BCF  SCLK       ;停止条件
        CALL  DELAY4US
        BSF  SDA
        CALL DELAY4US
        BSF  SCLK
		CALL DELAY4US;;;;;;;
		BCF SDA;;;;;
        RETURN 

SUBS4                   ;写数据 
       MOVWF TEMP     ;将要写的数据存于F2中
       MOVLW 08H
       MOVWF COUNT    ;写8位数据
	   BCF SDA;;;	
SH04      
	   CALL DELAY4US;;;;	
       RLF TEMP ,1
       BSF SCLK
       BTFSS  STATUS ,C
       BCF SCLK
       CALL DELAY4US	;;;;		
       BSF SDA
       CALL DELAY4US
       BCF SDA
       DECFSZ COUNT ,1  ;循环写完8位
       GOTO SH04
       BSF  SCLK
       CALL DELAY4US
	   BSF  SDA
       BSF  STATUS,RP0
       BSF  TRISA ,1
       BCF  STATUS,RP0
	   CALL  DELAY4US;;;;;;;
REP4   
       BTFSC SCLK     ;判应答到否,未到则等待
       GOTO REP4
       CALL DELAY4US
	   BCF  SDA
       BSF  STATUS,RP0
       BCF  TRISA ,1
       BCF  STATUS,RP0
	   CALL DELAY4US	
       RETURN	

;;温度地址2401中00H为温度值,01H为小时;02H为分钟,03H为第一段标志,04,05H为小时分钟,06H为第二段标志
;                            07,08H为小时分钟,09H为第三段标志
            END

⌨️ 快捷键说明

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