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

📄 adc_measure.asm

📁 本代码是采用台湾松翰单片机sn1919
💻 ASM
📖 第 1 页 / 共 2 页
字号:
ScanT_V:
         clr        addr
         bclr       fc
         rlc        TEMP_RTDH
         add        addr,a
         Read_24C02b  addr,SR_VH,SR_VL
         mov        a,#2
         add        addr,a
         Read_24C02b  addr,wk03,wk04
         movff      SR_VH,wk01
         movff      SR_VL,wk00
         movff      wk04,wk02         
         Call       sub_hex2b
         clr        wk05
         movff      TEMP_RTDL,wk04         
         call       mul_hex2b
         clr        wk05
         clr        wk06
         clr        wk07
         mov        a,#100
         mov        wk04,a
         call       div_hex4b  
         mov        a,wk00
         add        SR_VL,a
         nop
         mov        a,wk01
         adc        SR_VH,a
         nop
         ret

;.........................................
; input: SR_OZH,SR_OZL;SR_VH,SR_VL;SR_GH,SR_GL;SR_GH25,SR_GL25
; output: SR_VH,SR_VL
;.........................................
GetRsV:         
         movff       Temp_SRH,wk03
         movff       Temp_SRL,wk02
         movff       SR_OZH,wk01
         movff       SR_OZL,wk00
	 b0bclr      NegFlag         
         Call        sub_hex2b

         mov         a,#03h
         mov         wk05,a
         mov         a,#0e8h
         mov         wk04,a
         call        mul_hex2b
         movff       wk00,wk06
         movff       wk01,wk07
         movff       wk02,wk08
         movff       wk03,wk09
       
         movff       SR_VH,wk01
         movff       SR_VL,wk00
         movff       SR_GH,wk05
         movff       SR_GL,wk04
         call        mul_hex2b
         
         b0bts0      NegFlag
         jmp         GetRSV1
         mov         a,wk06
         add         wk00,a
         mov         a,wk07
         adc         wk01,a
         mov         a,wk08
         adc         wk02,a
         mov         a,wk09
         adc         wk03,a
         jmp         GetRsV2          
GetRsV1:
         mov         a,wk00
         sub         a,wk06
         mov         wk00,a
         mov         a,wk01
         sbc         a,wk07
         mov         wk01,a
         mov         a,wk02
         sbc         a,wk08
         mov         wk02,a     
         mov         a,wk03
         sbc         a,wk09
         mov         wk03,a       
GetRsV2:    
         clr         wk06
         clr         wk07
         movff       SR_GH,wk05
         movff       SR_GL,wk04
         call        div_hex4b  
         movff       wk01,SR_VH
         movff       wk00,SR_VL 
         ret
;...........................................
;input:   SR_VH,SR_VL 
;output:  SR_TH,SR_TL
;...........................................
ScanV_T:
     mov          a,#0c8h
     b0mov        addr,a             
     Read_24C02b  addr,wk03,wk02 
     movff        SR_VH,wk01
     movff        SR_VL,wk00
     Call         sub_hex2b
     b0bts1	  fc		
     jmp          SR_High

     mov          a,#30           
     b0mov        TEMP_SRH,a   
     mov          a,#60           
     b0mov        addr,a  
     Read_24C02b  addr,wk03,wk02 
     movff        SR_VH,wk01
     movff        SR_VL,wk00
     Call         sub_hex2b
     b0bts0	  fc		
     clr          TEMP_SRH                                  
ScanV_TLoop:
     b0bclr       fc
     rlc          TEMP_SRH
     b0mov        addr,a
     Read_24C02b  addr,wk03,wk02 
     movff        SR_VH,wk01
     movff        SR_VL,wk00
     movff        wk03,ScanTempH
     movff        wk02,ScanTempL
     Call         sub_hex2b
     b0bts0	  fc		
     jmp          ExitScanV_T
     incms        TEMP_SRH
     movff        ScanTempH,ScanBufferH
     movff        ScanTempL,ScanBufferL
     jmp          ScanV_TLoop                                  
ExitScanV_T:  
     decms        TEMP_SRH
     movff        ScanTempH,wk03
     movff        ScanTempL,wk02
     movff        ScanBufferH,wk01
     movff        ScanBufferL,wk00       
     Call         sub_hex2b
     movff        wk00,wk06
     movff        wk01,wk07

     movff        SR_VH,wk03
     movff        SR_VL,wk02
     movff        ScanBufferH,wk01
     movff        ScanBufferL,wk00       
     Call         sub_hex2b
     clr          wk05
     mov          a,#10
     mov          wk04,a
     call         mul_hex2b
     movff        wk06,wk04
     movff        wk07,wk05
     clr          wk06
     clr          wk07
     call         div_hex4b 

     mov          a,wk08
     add          wk08,a
     mov          a,#10
     sub          a,wk08
     b0bts1	  fc	
     incms        wk00
     nop
     movff        wk00,TEMP_SRL
     
     clr          wk01
     movff        TEMP_SRH,wk00       
     clr          wk05
     mov          a,#10
     mov          wk04,a
     call         mul_hex2b

     mov          a,TEMP_SRL
     add          wk00,a
     nop
     mov          a,#0
     adc          wk01,a
     movff        wk01,TEMP_SRH
     movff        wk00,TEMP_SRL
     
     b0bclr       SR_LoFlag
     b0bclr       SR_HiFlag
     mov          a,#22h
     b0mov        addr,a             
     Read_24C02   addr,wk03,wk02 
     movff        TEMP_SRH,wk01
     movff        TEMP_SRL,wk00
     Call         sub_hex2b
     b0bts1	  fc		
     jmp          SR_High
     
     mov          a,#20h
     b0mov        addr,a             
     Read_24C02   addr,wk03,wk02 
     movff        TEMP_SRH,wk01
     movff        TEMP_SRL,wk00
     Call         sub_hex2b
     b0bts0	  fc		
     jmp          SR_Low
     ret

SR_Low:
         b0bset   SR_LoFlag
         ret
;.....................................
SR_High:
         b0bset   SR_HiFlag 
         ret
         
;--------------------------------------------
;       SET U37 K
;--------------------------------------------
set_U37_k:
                call        GET_BODY_ADC
                Call        GetTemp_RTD                 ;获得当前thermister value                
                Call        ScanT_V
                movff       SR_VH,SR_GH
                movff       SR_VL,SR_GL
                mov         a,#26h
                b0mov       addr,a             
                Read_24C02  addr,TEMP_RTDH,TEMP_RTDL                                      
                Call        ScanT_V 

                mov         a,SR_VL
                sub         a,SR_GL
                mov         SR_VL,a
                mov         a,SR_VH
                sbc         a,SR_GH
                mov         SR_VH,a
                
                mov         a,Temp_SRL
                sub         a,SR_OZL
                mov         Temp_SRL,a
                mov         a,Temp_SRH
                sub         a,SR_OZH
                mov         Temp_SRH,a

                movff       Temp_SRH,wk01
                movff       Temp_SRL,wk00       
                mov         a,#03h
                mov         wk05,a
                mov         a,#0e8h
                mov         wk04,a
                call        mul_hex2b
                clr         wk06
                clr         wk07
                movff       SR_VH,wk05
                movff       SR_VL,wk04
                call        div_hex4b  
                movff       wk01,SR_GH
                movff       wk00,SR_GL 
               
                mov         a,#10h                  
                b0mov       addr,A 
                Write_24c02   addr,SR_GH,SR_GL
                ret
                
;--------------------------------------------
;       SET R25 K
;--------------------------------------------
set_R25_k:
                call        GET_BODY_ADC
                movff       RTD_VH,wk03 
                movff       RTD_VL,wk02        
                movff       RTD_OZH,wk01
                movff       RTD_OZL,wk00        
                Call        sub_hex2b
                movff       wk01,RTD_GH
                movff       wk00,RTD_GL
                
                mov         a,#08h                  
                b0mov       addr,A 
                Write_24c02   addr,RTD_GH,RTD_GL
                ret

⌨️ 快捷键说明

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