📄 dc082.asm
字号:
b0mov a,r_ad_buf_hig
sub a,#140
b0bts1 fc
jmp ad_deal60
mov_1 r_adtemp,50
jmp ad_deal_ret
ad_deal40:
b0mov a,r_ad_buf_hig
sub a,#37 ;------------
b0bts0 fc
jmp ad_deal50
mov_1 r_adtemp,41
jmp ad_deal_ret
ad_deal50:
b0mov a,r_ad_buf_hig
sub a,#110 ;------------
b0bts1 fc
jmp ad_deal60
mov_1 r_adtemp,99
jmp ad_deal_ret
ad_deal60:
clr r_adtemp_buf
ad_temptab:
bts1 b_f
jmp ad_temptab10
b0mov y,#tabeltemp_f$m
b0mov z,#tabeltemp_f$l
jmp ad_temptab20
ad_temptab10:
b0mov y,#tabeltemp_c$m
b0mov z,#tabeltemp_c$l
ad_temptab20:
b0mov a,r_adtemp_buf
b0add z,a
b0bts1 fc
jmp getdata1
incms y
nop
getdata1:
movc
nop
b0bset fc
sbc a,r_ad_buf_hig;
b0bts0 fc
jmp getdata2
incms r_adtemp_buf;加一表示温度增加1度,buf1存的是温度值
nop
jmp ad_temptab
getdata2:
mov_2 r_adtemp,r_adtemp_buf;查到温度数保存
ad_deal_ret:
clr r_ad_buf_hig
clr r_ad_buf_low
ret
dealy100us:
nop
nop
nop
incms r_ad_delaycnt
nop
bts1 r_ad_delaycnt.7
jmp dealy100us
clr r_ad_delaycnt
ret
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
displaydata:
clr r_ledbyte1buf
clr r_ledbyte2buf
clr r_ledbyte3buf
clr r_ledbyte4buf
clr r_ledbyte5buf
clr r_ledbyte6buf
clr r_ledbyte7buf
clr r_ledbyte8buf
clr r_ledbyte9buf
bts1 b_run
jmp displaydata110;未开机时加湿是否开启
;------------------时间显示数据----------------
bts1 b_settime
jmp displaydata30
cpjz r_settime,displaydata10
b0mov a,r_flashcnt
sub a,#128
b0bts0 fc
jmp displaydata30
jmp displaydata20
displaydata10:
cpjnz r_timebyte1,displaydata20
cpjnz r_timebyte2,displaydata20
jmp displaydata30;无时间设置
displaydata20:
b0mov a,r_timebyte1
call hextodec
b0mov y,#tabel_8$m
b0mov z,#tabel_8$l
b0mov a,r_disdata1
b0add z,a
nop
movc
nop
b0mov r_ledbyte5buf,a
b0mov y,#tabel_88$m
b0mov z,#tabel_88$l
b0mov a,r_disdata0
b0add z,a
nop
movc
nop
b0mov r_ledbyte8buf,a
b0mov a,r_timebyte2
call hextodec
b0mov y,#tabel_8$m
b0mov z,#tabel_8$l
b0mov a,r_disdata1
b0add z,a
movc
nop
b0mov r_ledbyte3buf,a
b0mov y,#tabel_8$m
b0mov z,#tabel_8$l
b0mov a,r_disdata0
b0add z,a
movc
nop
b0mov r_ledbyte4buf,a
b0mov a,r_flashcnt
sub a,#128
b0bts1 fc
bset lcd_col
;--------------------温度显示-----------------
displaydata30:
cpjz r_ad_error,dispalydata50
bts1 b_offerr
jmp displaydata40
mov_1 r_ledbyte7buf,01110110b;H
mov_1 r_ledbyte6buf,01010000b;i
jmp displaydata60
displaydata40:
mov_1 r_ledbyte7buf,10000110b;L
mov_1 r_ledbyte6buf,11010111b;o
jmp displaydata60
dispalydata50:
b0mov a,r_adtemp
call hextodec
b0mov y,#tabel_888$m
b0mov z,#tabel_888$l
b0mov a,r_disdata1
b0add z,a
b0bts1 fc
jmp dispalydata50_00
incms y
nop
dispalydata50_00:
movc
nop
b0mov r_ledbyte7buf,a
b0mov y,#tabel_888$m
b0mov z,#tabel_888$l
b0mov a,r_disdata0
b0add z,a
b0bts1 fc
jmp dispalydata50_01
incms y
nop
dispalydata50_01:
movc
nop
b0mov r_ledbyte6buf,a
;---------------------速度显示----------------
displaydata60:
b0mov y,#table_speed$m
b0mov z,#table_speed$l
b0mov a,r_speedbyte_buf
b0add z,a
nop
movc
b0mov r_ledbyte1buf,a
;---------------------风类显示------------------------
displaydata70:
cpjz r_zcfdispay_cnt,displaydata70_00
b0mov a,r_zcfdispay_cnt
cmprs a,#1
jmp displaydata70_000
mov_1 r_ledbyte2buf,00100100b
jmp displaydata70_01
displaydata70_00:
mov_1 r_ledbyte2buf,01000010b
jmp displaydata70_01
displaydata70_000:
b0mov a,r_zcfdispay_cnt
cmprs a,#2
jmp displaydata70_01
mov_1 r_ledbyte2buf,10000001b
displaydata70_01:
bts0 b_zcf
jmp displaydata90
displaydata80:
bts1 b_zrf
bset lcd_s2
bts0 b_zrf
bset lcd_s3
;---------------------摇头显示--------------------
displaydata90:
bset lcd_p1;开机后第1节总是点亮
cpjz r_swbyte,displaydata100
bset lcd_s10;有摇头时S10保持亮
bts0 b_sw90
bset lcd_90
bts0 b_sw90
jmp displaydata100
bset lcd_s9
bset lcd_s11
bts0 b_sw180
bset lcd_180
bts0 b_sw180
jmp displaydata100
bset lcd_360
bset lcd_s5
;--------------------其他显示-------------------
displaydata100:
bts1 b_f
bset lcd_s7 ;F
bts0 b_f
bset lcd_s8 ;C
bts0 b_ion
bset lcd_s6 ;FLZ显示
displaydata110:
bts1 b_hum
jmp displaydata_ret
bts1 b_waterkey_err ;缺水否
jmp displaydata120
b0mov a,r_flashcnt1
sub a,#128
b0bts1 fc
jmp displaydata_ret
displaydata120:
bset lcd_s1 ;加湿显示
displaydata_ret:
mov_2 r_ledbyte1,r_ledbyte1buf
mov_2 r_ledbyte2,r_ledbyte2buf
mov_2 r_ledbyte3,r_ledbyte3buf
mov_2 r_ledbyte4,r_ledbyte4buf
mov_2 r_ledbyte5,r_ledbyte5buf
mov_2 r_ledbyte6,r_ledbyte6buf
mov_2 r_ledbyte7,r_ledbyte7buf
mov_2 r_ledbyte8,r_ledbyte8buf
mov_2 r_ledbyte9,r_ledbyte9buf
ret
;------------------------------------------
hextodec:
clr r_disdata0
clr r_disdata1
hextodec10:
sub a,#10
nop
b0bts1 fc
jmp hextodec20
incms r_disdata1
nop
jmp hextodec10
hextodec20:
add a,#10
b0mov r_disdata0,a
nop
ret
;$$$$$$$$$$$$$$$$$$$$$$摇头时间控制$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
swtime:
cpjnz r_swbyte,swtime_00;是否有摇头设置
ret
swtime_00:
bts1 b_time_8ms
ret
bclr b_time_8ms
incms r_time_1s
nop
mov a,#125
xor a,r_time_1s
b0bts1 fz
ret
clr r_time_1s
cpjz r_swdelay,swtime10
clr r_swdelay
ret
swtime10:
cpjz r_lsw_time,swtime30
decms r_lsw_time
ret
swtime20:
mov_2 r_rsw_time,r_lsw_timebuf
mov_2 r_rsw_timebuf,r_lsw_timebuf
mov_1 r_swdelay,1;摇头到终点后停1s
ret
swtime30:
cpjnz r_rsw_time,swtime40
ret
swtime40:
decms r_rsw_time
ret
mov_2 r_lsw_time,r_rsw_timebuf
mov_2 r_lsw_timebuf,r_rsw_timebuf
mov_1 r_swdelay,1
ret
;$$$$$$$$$$$$$$$$$$$$定时时间处理$$$$$$$$$$$$$$$$$$$$$$$$$$$$
clock:
bts1 b_16ms
jmp clock_ret
bclr b_16ms
incms r_zcf_time
nop
b0mov a,r_zcf_time
cmprs a,#8
jmp clock_000
clr r_zcf_time
incms r_zcfdispay_cnt
nop
b0mov a,r_zcfdispay_cnt
cmprs a,#3
jmp clock_000
clr r_zcfdispay_cnt
clock_000:
incms r_time_2s
nop
b0mov a,r_time_2s
cmprs a,#125
jmp clock_ret
clr r_time_2s
cpjz r_backled_cnt,clock_00
decms r_backled_cnt
jmp clock_00
b0bset p_backled ;60秒到关背光
clock_00:
incms r_time_60s
nop
incms r_time_sec
nop
b0mov a,r_time_sec
cmprs a,#30;60秒
jmp clock_ret
clr r_time_sec
bts1 b_settime
jmp clock_ret;无时间设置
cpjnz r_timebyte2,clock20
cpjnz r_timebyte1,clock10
jmp clock_ret
clock10:
decms r_timebyte1
jmp clock_ret
clr r_timebyte1_buf
clr r_timebyte2_buf;定时完后在开机按定时键从0开始
bclr b_run
bclr b_hum ;关加湿
b0bset p_backled
clr r_speedbyte1;关输出
jmp clock_ret
clock20:
cpjz r_timebyte1,clock30
decms r_timebyte1
nop
jmp clock_ret
clock30:
mov_1 r_timebyte1,59
decms r_timebyte2
nop
clock_ret:
ret
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
timecenter:
bts0 b_zcf
jmp timecenter_ret
bts1 b_smf
jmp timecenter10
bts1 b_lowspeed;低档睡眠风转低档自然风
;bts1 b_trigger64s
b0mov a,r_time_60s
sub a,#30 ;防止前面加过了30程序未执行到这
b0bts1 fc
jmp timecenter10
clr r_time_60s
incms r_Time30MinCnt
nop
b0mov a,r_Time30MinCnt;睡眠风在各自然风下运行30分
cmprs a,#30
jmp timecenter10
clr r_Time30MinCnt
bts0 b_midspeed
jmp timecenter05
bts1 b_higspeed
jmp timecenter_ret
;==========================================
Timecenter02:
bts0 b_highsmf_bit1;高档睡眠风
jmp timecenter03
bts0 b_highsmf_bit2
jmp timecenter04
b0bclr b_highsmf_bit3
b0bset b_highsmf_bit1 ;高档自然风
mov a,#c_time5s
jmp timecenter04_0
;================
timecenter03:
b0bclr b_highsmf_bit1
b0bset b_highsmf_bit2 ;转为中档自然风
mov a,#c_time1s
jmp timecenter04_0
;================
timecenter04:
b0bclr b_highsmf_bit2
b0bset b_highsmf_bit3 ;转为低档自然风
mov a,#c_time4s
;===========
timecenter04_0:
b0mov r_timer_fanrun,a
mov a,#1
b0mov r_BreezeByte,a
mov a,#0
b0mov r_BreezeByte1,a
jmp timecenter10
;==========================================
timecenter05: ;30分钟后中档睡眠风标志位取反
mov a,#00000001b
xor r_usertrigger,a
mov a,#c_time1s
b0mov r_timer_fanrun,a
mov a,#1
b0mov r_BreezeByte,a
mov a,#0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -