📄 dfg-a.asm
字号:
;ld r0,keynum
and keynum,#00000111b
cp keynum,keytemp
jr eq,key_jug1
ld keytemp,keynum ;r0
; clr keytime
; clr key3s
; and keyflag,#fn_key
ret
key_jug1:
cp keynum,#00000111b
jr eq,key_int
; ld key3min,#2 ;180
tm keyflag,#f_key
jp nz,key_long ;key_end
inc keytime
cp keytime,#30 ;10
jr ult,key_end
or keyflag,#f_key
ld key3min,#180
tm keynum,#00000100b
jr z,key1
tm keynum,#00000001b
jp z,key2
tm keynum,#00000010b
jp z,key3
; and keyflag,#fn_key
key_end:
ret
key_int
clr keytime
clr key3s
and keyflag,#fn_key
ret
;-----------------------
key_long:
ld settime,#5
ld key3min,#180
cp keynum,#00000011b
jr eq,keylong1
cp keynum,#00000101b
jr eq,keylong2
cp keynum,#00000001b
jr eq,keylong12
jr key_end
keylong1
cp key3s,#15 ;20
jr ult,key_end
clr key3s
tm ledflag,#f_lock
jr nz,keylong1a
or ledflag,#f_lock
call buzz
ret
keylong1a
and ledflag,#fn_lock
call buzz
ret
keylong2
cp key3s,#15 ;20
jr ult,key_end
; clr key3s
inc key20ms
cp key20ms,#250
jp ult,key_end
clr key20ms
inc holdset
ld key2s,#20 ;flash 2s
cp holdset,#120
jr ule,keylong2a
clr holdset
keylong2a
ret
keylong12
cp key3s,#20
jr ult,key_end
clr key3s
tm ledflag,#f_buz
jr nz,keylong12a
or ledflag,#f_buz
call buzz
ret
keylong12a
and ledflag,#fn_buz
ret
;---------------------------设定温度-----
key1:
tm ledflag,#f_lock
jr z,key1start
ret
key1start
ld settime,#5
ld key2s,#20 ;flash 2s
tm flag2,#f_setw
jr nz,key1b
or flag2,#f_setw
and flag2,#fn_setd
and flag2,#fn_seth
jr key1end
;ret
key1b:
; or status,#f_heats
; and status,#fn_holds
tm status,#f_holds
jr z,key1b2
or flag2,#f_hs
key1b2:
;-----------------
cp wenduset,#w150
jr eq,key1150
cp wenduset,#w175
jr eq,key1175
cp wenduset,#w200
jr eq,key1200
cp wenduset,#w250
jr eq,key1250
cp wenduset,#w300
jr eq,key1300
cp wenduset,#w350
jr eq,key1350
cp wenduset,#w400
jr eq,key1400
ld wenduset,#w150
jp key1end
key1150
ld wenduset,#w175
jp key1end
key1175
ld wenduset,#w200
jp key1end
key1200
ld wenduset,#w250
jp key1end
key1250
ld wenduset,#w300
jp key1end
key1300
ld wenduset,#w350
jp key1end
key1350
ld wenduset,#w400
jp key1end
key1400
ld wenduset,#w150
jp key1end
;--------------------
cp wenduset,#250 ;400 ;
jr uge,key1a
cp wenduset,#50 ;200
jr uge,key1c
add wenduset,#25
jr key1end
;ret
key1c
add wenduset,#50
jr key1end
;ret
key1a:
ld wenduset,#0 ;150
jr key1end
;ret
key1end
call buzz
ret
;---------------------------预约时间-----
key2:
tm status,#f_run
jr nz,key2_run
or status,#f_run
jr key2_end
key2_run
and status,#fn_run
jr key2_end
; tm status,#f_heats^f_holds
; jr nz,key2_end
; ld settime,#5
; tm flag2,#f_setd
; jr nz,key2b
; or flag2,#f_setd
; and flag2,#fn_setw
; and flag2,#fn_seth
; ret
;key2b:
; cp delayset,#24
; jr uge,key2a
; inc delayset
; ret
;key2a:
; clr delayset
key2_end:
call buzz
ret
;---------------------------保温时间------
key3:
tm ledflag,#f_lock
jr z,key3start
ret
key3start
ld settime,#5
tm flag2,#f_seth
jr nz,key3b
or flag2,#f_seth
and flag2,#fn_setd
and flag2,#fn_setw
call buzz
ret
key3b:
tm status,#f_delay
jr nz,key3b_c
clr min
clr hour
call key3b_c
call buzz
ret
key3b_c:
cp holdset,#1
jr eq,key3b1
cp holdset,#5
jr eq,key3b2
cp holdset,#10
jr eq,key3b3
cp holdset,#15
jr eq,key3b4
cp holdset,#20
jr eq,key3b5
cp holdset,#30
jr eq,key3b6
cp holdset,#60
jr eq,key3b7
cp holdset,#90
jr eq,key3b8
cp holdset,#120
jr eq,key3b9
inc holdset
ld key2s,#20 ;flash 2s
jp key3end
;ret
key3b1
ld holdset,#5
jp key3end
key3b2
ld holdset,#10
jp key3end
key3b3
ld holdset,#15
jp key3end
key3b4
ld holdset,#20
jp key3end
key3b5
ld holdset,#30
jp key3end
key3b6
ld holdset,#60
jp key3end
key3b7
ld holdset,#90
jp key3end
key3b8
ld holdset,#120
jp key3end
key3b9
ld holdset,#1
jp key3end
key3end
; call buzz
ret
;************************************************
; Delay Subroutine *
;************************************************
ad_delay:
push r1
ld r1,#22
d40: nop
dec r1
jr nz,d40
pop r1
ret
;************************************************
;---ad convert-----
;************************************************
wendu_jug:
tm flag,#f_wen
jr nz,wendu_jug2
ret
wendu_jug2:
and flag,#fn_wen
call wendu_ad
; ld wendu,r2
; ret
tm flag,#f_wendu_f
jr nz,wendu_end
rcf
rrc r2
rcf
rrc wendu
add wendu,r2
wendu_end:
ret
;--------------------------------------------------
wendu_ad:
ld adcon,#00010100b
call adconvert
cp r0,#115 ;20
jr ult,ad_era
cp r0,#250
jr ugt,ad_era
; and flag,#fn_wendu_f
sub r0,#tj_ad ;20 ;test
ld r2,r0
ret
ad_era:
or flag,#f_wendu_f
ret
;---------------------------------------------------
ad_con:
call ad_delay
or adcon,#01h
ad_conver:
tm adcon,#00001000b
jr z,ad_conver
ld r0,addatah
ret
;--------------------------------------------------
adconvert:
call ad_con
ld r1,r0
call ad_delay
call ad_con
ld r2,r0
call ad_delay
call ad_con
ld r3,r0
aver:
cp r1,r2
jr ult,aver1
ld r0,r1
ld r1,r2
ld r2,r0
aver1:
cp r2,r3
jr ult,aver2
ld r0,r2
ld r2,r3
ld r3,r0
aver2:
cp r1,r2
jr ult,aver3
ld r0,r1
ld r1,r2
ld r2,r0
aver3:
ld r0,r2
ret
;************************************************
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -