📄 adc_measure.asm
字号:
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 + -