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

📄 ld094.asm

📁 这是本人写的一款开关自动转换程序
💻 ASM
📖 第 1 页 / 共 5 页
字号:
    goto         ZD_EXIT
    ;熄火时间到       
      clrf         XhTimeCount  
      clrf           GdDelay
GAS_end
      bcf           GASLED                   ;GAS状态灯
      bcf           GasOut                   ;气继电器输出
      bcf           RpmSingFlag,JDQ
      goto         ZD_EXIT
GAS_ok
        btfsc        ZSSING 
        goto         ZD_EXIT
        clrf           GdDelay
        clrf           XhTimeCount
        goto         ZD_EXIT
   ;---------------------调试时才用------               
KeyTime  
   ;按键定时
    btfss        StatusFlag,KeyFlag           ;;按键定时入口标志
    goto         ZD_EXIT 
    incf         KeyDelay,f
    movlw        100
    subwf        KeyDelay,w
    btfss        STATUS,C
    goto         ZD_EXIT 
    clrf         KeyDelay
    bsf          TIME_1S,KeyTime3sFlag       ;按键3S记时到标志  
    goto         ZD_EXIT
;************************************************************************ 
;***中断判断                                                              
;;************************************************************************
ZDpd 
    banksel      INTCON
    btfss        INTCON,RAIE
    goto         ZDpd1                             
    BTFSC        INTCON,RAIF         ; 判断是否porta 2引脚产生中断
    call         Rpm_ZD              ;是 
ZDpd1                  
    BTFSC        PIR1,TMR1IF         ; 判断是否定时器1产生中断
    goto         TMR1_ZD             ;是,跳往定时器1中断处理 
  
    BTFSC        INTCON,T0IF         ; 判断是否定时器1引脚产生中断
    goto         T0_ZD               ;是 
    goto         ZD_EXIT
;****************************************************
;Name:YWZJC1  (液位值检测
;入口参数:YWSZ(检测到的液位数据)
;****************************************************
YWZJC         
               btfsc       YwDataFlag,DataSx      
               return
               MOVLW       B'0011001'       ;选择通道6(设置值通道)
               MOVWF       ADCON0
                CALL        DELAY1
                CALL        AC_JC              ;滤波
                MOVWF       YW 
                BTFSC       YW_FALG,1          ;LAMDI公司液位传感
                GOTO        LAMDI
                BTFSC       YW_FALG,2          ;AEB公司液位传感
                GOTO        AEB
                BTFSC       YW_FALG,3          ;0-4V
                GOTO        LWEI
                         ;0-90欧姆
                GOTO        OUMU
              ;--------------------------
;landi 液位传感器(默认设置)
;原理:传感器为0-22K的滑动电阻
;采集方式:上拉12K电阻到5V,与滑动电阻相串联  得到的分压 
;1.3V  亮4个绿灯  1V  亮3个绿灯 ;0.7V亮2个绿灯; 0.4v亮1个绿灯  低于0。4V亮红灯
;实测电阻  4。3K  ,3K  ,2K, 1K
LAMDI
        MOVLW		014H		;。4V
	    SUBWF		YW,W
	 	BTFSS		STATUS,C
		goto        LedData1   
		MOVLW		023H		;0。7V
		SUBWF		YW,W
		BTFSS		STATUS,C
		GOTO        LedData2
		MOVLW		033H		;1V
		SUBWF		YW,W
		BTFSS		STATUS,C
		GOTO        LedData3
		MOVLW		042H     	;1。3V
		SUBWF		YW,W
		BTFSS		STATUS,C
		GOTO         LedData4
		GOTO         LedData5 
              ;----------满刻度为0V(30K-100)AEB 1050----------------
;AEB 液位传感器
;原理:传感器为0-47K的滑动电阻
;采集方式:上拉12K电阻到5V,与滑动电阻相串联  得到的分压 
;1V  亮4个绿灯  1.6V  亮3个绿灯 ;3V亮2个绿灯; 4v亮1个绿灯  >4V亮红灯
;实测电阻  3K  ,6K  ,18K, 47K
AEB 
      	MOVLW	 	033H	;1v
		SUBWF	 	YW,W
		btfss	     STATUS,C
        GOTO         LedData5 
        MOVLW	   	053H		;1.6V
		SUBWF		YW,W
		btfss	  	STATUS,C
		GOTO         LedData4
        MOVLW		099H		;3V
		SUBWF		YW,W
		BTFSs		STATUS,C
        GOTO        LedData3
        MOVLW		0CCH		;4V
	    SUBWF		YW,W
	 	BTFSC		STATUS,C
		goto        LedData2
        goto        LedData1 
    
              ;-------------0-90欧姆-------------
;原理:传感器为0-90的滑动电阻
;采集方式:上拉510电阻到5V,与滑动电阻相串联  得到的分压 
;4V  亮4个绿灯  3V  亮3个绿灯 ;1。7V亮2个绿灯; 1v亮1个绿灯  <1V亮红灯
OUMU
        MOVLW	    0x33
	    SUBWF		YW,W
	 	BTFSS		STATUS,C
		goto        LedData1   
		MOVLW		0X51
		SUBWF		YW,W
		BTFSS		STATUS,C
		GOTO        LedData2
		MOVLW		0X99
		SUBWF		YW,W
		BTFSS		STATUS,C
		GOTO        LedData3
		MOVLW		0XCC
		SUBWF		YW,W
		BTFSS		STATUS,C
		GOTO         LedData4
		GOTO         LedData5 
      ;-----------------------压力型传感器---------- 
;原理:传感器为0-90的滑动电阻
;采集方式:上拉510电阻到5V,与滑动电阻相串联  得到的分压 
;1V  亮4个绿灯  1.6V  亮3个绿灯 ;3V亮2个绿灯; 4v亮1个绿灯  >4V亮红灯  
LWEI
	    MOVLW		0xcc		;2V
	    SUBWF		YW,W
	 	BTFSC		STATUS,C
		goto        LedData1   
		MOVLW		099H		;3V
		SUBWF		YW,W
		BTFSC		STATUS,C
		GOTO        LedData2
		MOVLW		0x51
		SUBWF		YW,W
		BTFSC		STATUS,C
		GOTO        LedData3
		MOVLW    	0x33
		SUBWF		YW,W
		BTFSC		STATUS,C
		GOTO         LedData4
		GOTO         LedData5 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LedData1
        MOVLW  D'1'
        MOVWF  LEDCOUNT        ;亮灯个数(红LED)
        goto   yeweiflag
LedData2
        MOVLW  D'2'
        MOVWF  LEDCOUNT
        goto   yeweiflag
LedData3
        MOVLW  D'3'
        MOVWF  LEDCOUNT
        goto   yeweiflag
LedData4
        MOVLW  D'4'
        MOVWF  LEDCOUNT
        goto   yeweiflag
LedData5
        MOVLW  D'5'
        MOVWF  LEDCOUNT
yeweiflag

        movfw      OLDLEDCOUNT             ;判断上次数据与此次数据是否相等
        subwf      LEDCOUNT,w
        btfsc      STATUS,Z
        goto       YwDataYz 
         ;是比上次大还是小? 
        btfss      STATUS,C              
        goto       SUBdata1                 ;采集到的数据比上次数据小                
        movwf      LEDdelay                ;不相等!保存差数据
        bsf        YwDataFlag,DataUp 
        bcf        YwDataFlag,DataDown
        goto       YwDataNoYz                  ;大
SUBdata1
        movfw      LEDCOUNT
        subwf      OLDLEDCOUNT,W
        movwf      LEDdelay                
        bcf        YwDataFlag,DataUp
        bsf        YwDataFlag,DataDown
        goto       YwDataNoYz
YwDataYz
        movfw      LEDCOUNT
        movwf      OLDLEDCOUNT
        bcf        YwDataFlag,DataUp 
        bcf        YwDataFlag,DataDown
        bcf        YwDataFlag,DataYz        
        bcf        YwDataFlag,DataSx        
        return
YwDataNoYz
        bsf        YwDataFlag,DataSx        
        bsf        YwDataFlag,DataYz        
        return
;****************************************************
;Name:YWMODE  (液位值传感信号读取
;****************************************************
YWMODE                
               MOVLW       D'2'             ;送地址
               CALL        RED_EE           ;读默认液位传感器型号值
               MOVWF       TEMP             ;把上次值存于TEMP,用于临时比较
               ;比较,判断保存的是哪种,置相应的标志位一共有四种,值分别为“2,4,6,8”
               MOVLW       D'2'
               SUBWF       TEMP,W
               BTFSC       STATUS,Z
               GOTO     YEDK  
               MOVLW       D'4'
               SUBWF       TEMP,W
               BTFSC       STATUS,Z
               GOTO     YEDK1
               MOVLW       D'6'
               SUBWF       TEMP,W
               BTFSC       STATUS,Z
               GOTO     YEDK2         
               clrf          YW_FALG 
               return
           ;-----------------------------
YEDK  
               BSF         YW_FALG,1        ; ;LAMDI公司液位传感
               return
YEDK1
               CLRF        YW_FALG          ;AEB公司液位传感
               BSF         YW_FALG,2
               return
YEDK2
               CLRF        YW_FALG          ;电压型传感器
               BSF         YW_FALG,3
               return
;---------------------------------------------------
;------------------中断跳到这里----
LED1
               BSF         YWLED1             ;亮红色LED
               BCF         YWLED2
               BCF         YWLED3
               BCF         YWLED4
               BCF         YWLED5
               GOTO    TRM1EXIT
LED2
               BSF         YWLED2             ;亮1个LED(绿色)
               BCF         YWLED1
               BCF         YWLED3
               BCF         YWLED4
               BCF         YWLED5
               GOTO    TRM1EXIT
LED3
               BSF         YWLED2            ;亮2个LED(绿色)
               BCF         YWLED1
               BSF         YWLED3
               BCF         YWLED4
               BCF         YWLED5
               GOTO    TRM1EXIT
LED4
               BSF         YWLED4            ;亮3个LED(绿色)
               BSF         YWLED2
               BCF         YWLED1
               BSF         YWLED3
               BCF         YWLED5
               GOTO   TRM1EXIT
LED5
               BSF         YWLED5            ;亮4个LED(绿色)
               BSF         YWLED2
               BSF         YWLED3
               BCF         YWLED1
               BSF         YWLED4
               GOTO    TRM1EXIT


;**************************************************************************************
;****主程序
;**************************************************************************************
;首先依据按键状态,选择进入程序端口
ZHU1         
                  bsf           STATUS,RP0
                  bcf           STATUS,RP1
                  call          3FFH 
                  movwf         OSCCAL              ;效准内部震荡器  
                  bcf           STATUS,RP0  

                 goto     maintemp           ;是上电复位?
             ;   btfss    STATUS,3           ;3=PD
                  goto     MinIt
                  btfss    STATUS,4           ;4=T0
                  goto     MinIt   
                  banksel  PCON
                  BTFSC    PCON,1             ;1=POR                  
                  goto     MinIt              ;其它复位!
                  goto     maintemp           ;是上电复位?

⌨️ 快捷键说明

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