📄 dc082.asm
字号:
b0mov r_BreezeByte1,a
;==========================================
timecenter10:
b0bts1 b_trigger64ms ;timer_fanrun每64ms减1
jmp timecenter_ret
bts0 b_middsmf_bit ;在中档睡眠风时为1表示低档自然风
jmp timecenter20 ;为0时继续往下执行时high_speed为1进入中档自然风
bts0 b_highsmf_bit1
jmp timecenter60
bts0 b_highsmf_bit2
jmp timecenter40
bts0 b_highsmf_bit3
jmp timecenter20
bts0 b_higspeed
jmp timecenter60
b0bts0 b_midspeed
jmp timecenter40
b0bts1 b_lowspeed
jmp timecenter_ret
;=====================================
timecenter20: ;低档自然风时间处理
decms r_Timer_fanrun ;运行时间减1,每64ms减1
jmp timecenter_ret
b0bclr fc
rlcm r_BreezeByte ;各挡位运行标志位左移
mov a,#1
bts0 bit_3 ;第3位为1一次循环结束又循环
b0mov r_BreezeByte,a
bts0 bit_0
mov a,#c_time4s
bts0 bit_1
mov a,#c_time5s
bts0 bit_2
mov a,#c_time1s
b0mov r_timer_fanrun,a
jmp timecenter_ret
;======================================
timecenter40: ;中档自然风时间处理
decms r_timer_fanrun
jmp timecenter_ret
b0bclr fc
rlcm r_BreezeByte
rlcm r_BreezeByte1
bts1 bit_9 ;
jmp timecenter45
mov a,#1
b0mov r_BreezeByte,a
mov a,#00
b0mov r_BreezeByte1,a
timecenter45:
bts0 bit_0
mov a,#c_time1s
bts0 bit_1
mov a,#c_time4s
bts0 bit_2
mov a,#c_time5s
bts0 bit_3
mov a,#c_time5s
bts0 bit_4
mov a,#c_time5s
bts0 bit_5
mov a,#c_time5s
bts0 bit_6
mov a,#c_time5s
bts0 bit_7
mov a,#c_time5s
bts0 bit_8
mov a,#c_time5s
b0mov r_timer_fanrun,a
jmp timecenter_ret
;========================================
timecenter60: ;高档自然风时间处理
decms r_timer_fanrun
jmp timecenter_ret
b0bclr fc
rlcm r_BreezeByte
b0mov a,r_BreezeByte
bts0 fz
mov a,#1
b0mov r_BreezeByte,a
mov a,#c_time5s
b0mov r_timer_fanrun,a
;======================================
timecenter_ret:
ret
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
logic:
clr r_outbytebuf
bts0 b_waterkey_err
jmp logic_0 ;缺水停止加湿
bts0 b_hum
bset b_humout
logic_0:
bts1 b_run
jmp logic_ret
bts0 b_ion
bset b_ionout
cpjnz r_swdelay,logic_01
cpjz r_lsw_time,logic_00
bset b_lswout
logic_00:
cpjz r_rsw_time,logic_01
bset b_rswout
logic_01:
bts0 b_zcf
jmp logic_ret
bts1 b_zrf
jmp logic10
call fanrun_zrf
jmp logic_ret
logic10:
bts1 b_smf
jmp logic_ret
call fanrun_smf
logic_ret:
call zero_deal
mov_2 r_outbyte,r_outbytebuf
ret
;=====================================================
fanrun_zrf:
bts0 b_higspeed
jmp runmode1
bts0 b_midspeed
jmp runmode2
bts0 b_lowspeed
jmp runmode3
jmp fanrun_zrf_ret
;--------------------------------------------------
runmode1: ;高档自然风
mov a,#0
bts0 bit_0
mov a,#6
bts0 bit_1
mov a,#3
bts0 bit_2
mov a,#9
bts0 bit_3
mov a,#6
bts0 bit_4
mov a,#9
bts0 bit_5
mov a,#3
bts0 bit_6
mov a,#9
bts0 bit_7
mov a,#0
b0mov r_speedbyte1,a
jmp fanrun_zrf_ret
;------------------------------------------------------
runmode2: ;中档自然风
mov a,#0
bts0 bit_0
mov a,#6
bts0 bit_1
mov a,#3
bts0 bit_2
mov a,#6
bts0 bit_3
mov a,#3
bts0 bit_4
mov a,#0
bts0 bit_5
mov a,#6
bts0 bit_6
mov a,#3
bts0 bit_7
mov a,#6
bts0 bit_8
mov a,#0
b0mov r_speedbyte1,a
jmp fanrun_zrf_ret
;------------------------------------------------------
runmode3: ;低档自然风
mov a,#0
bts0 bit_0
mov a,#3
bts0 bit_1
mov a,#0
bts0 bit_2
mov a,#6
b0mov r_speedbyte1,a
fanrun_zrf_ret:
ret
;==========================================
fanrun_smf:
bts1 b_higspeed
jmp fanrun_smf10
bts0 b_highsmf_bit1
jmp runmode1
bts0 b_highsmf_bit2
jmp runmode2
bts0 b_highsmf_bit3
jmp runmode3
fanrun_smf10:
bts1 b_midspeed
jmp fanrun_smf20
bts1 b_middsmf_bit
jmp runmode2
bts0 b_middsmf_bit
jmp runmode3
fanrun_smf20:
bts0 b_lowspeed
jmp runmode3
ret
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
driver:
bts0 b_run
jmp driver10
b0bclr p_flz_out
b0bclr p_sw_l
b0bclr p_sw_r
jmp driver20
driver10:
bts0 b_ionout
b0bset p_flz_out
bts1 b_ionout
b0bclr p_flz_out
bts0 b_rswout
b0bset p_sw_r
bts1 b_rswout
b0bclr p_sw_r
bts0 b_lswout
b0bset p_sw_l
bts1 b_lswout
b0bclr p_sw_l
driver20:
bts0 b_humout
jmp driver30
b0bclr p_fan
b0bclr p_hum_out
ret
driver30:
b0bset p_fan
b0bset p_hum_out
ret
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
displaytime:
bts1 b_run
jmp displaytime_ret
bts0 b_zcf
jmp displaytime_ret
bts1 b_lowspeed
jmp displaytime10
b0mov a,r_speedbyte_buf
sub a,#3 ;是否等于3节
jmp displaytime30
displaytime10:
bts1 b_midspeed
jmp displaytime20
b0mov a,r_speedbyte_buf
sub a,#6 ;是否等于6节
jmp displaytime30
displaytime20:
bts1 b_higspeed
jmp displaytime_ret
b0mov a,r_speedbyte_buf
sub a,#9 ;是否等于9节
displaytime30:
b0bts0 fc
mov a,#01h
b0bts1 fc
incs r_speedbyte_buf
b0mov r_speedbyte_buf,a
jmp displaytime_ret
displaytime_ret:
ret
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
delay_off:
bts1 b_offdelay
jmp delay_offret
cpjz r_speedbyte1,delay_offret
decms r_speedbyte1 ;在高档关机每500ms减一节
ret
bclr b_offdelay
nop
delay_offret:
ret
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
lcdupdata:
b0bset p_cs
nop
nop
call write_lcd
call write_address
b0bclr p_cs
mov_1 r_reg0,10;9
b0mov y,#r_lcdram$m
b0mov z,#r_lcdram$l
lcdupdata10:
incms z ;从4DH开始
nop
b0mov a,@yz
b0mov r_sent_data,a
call write_data
nop
decms r_reg0
jmp lcdupdata10
nop
nop
nop
b0bset p_cs
;b0bset p_data
;b0bset p_write
ret
;-----------------------------------------------
write_lcd:
nop
nop
mov_1 r_count,3
mov_1 r_sent_data,10100000b
call send_r
nop
nop
ret
;===================address:A5A4A3A2A1A0==================
write_address:
mov_1 r_count,6
mov a,#48 ;r_address
b0mov r_sent_data,a
call send_r
nop
nop
ret
;====================data:d0d1d2d3=========================
write_data:
mov_1 r_count,8
call send_r
nop
nop
ret
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
init1621:
b0bset p_cs
nop
nop
nop
nop
nop
nop
nop
mov_1 r_count,3
mov_1 r_sent_data,80h
call send_r
mov_1 r_sent_data,0e3h
call send_l
mov_1 r_sent_data,18h
call send_l
mov_1 r_sent_data,01h
call send_l
mov_1 r_sent_data,04h
call send_l
mov_1 r_sent_data,05h
call send_l
mov_1 r_sent_data,80h
call send_l
mov_1 r_sent_data,29h
call send_l
mov_1 r_sent_data,03h
call send_l
nop
nop
b0bset p_cs;=============送完命令码后置1片选端
ret
;==========================================================
;送数据
;input:send_data count
send_l:
mov_1 r_count,9 ;r_count
send_r:
b0bclr p_cs
nop
nop
nop
b0bclr fc
rlcm r_sent_data
b0bts1 fc
b0bclr p_data
b0bts0 fc
b0bset p_data
send2:
b0bclr p_write
nop
nop
nop
nop
nop
b0bset p_write
decms r_count
jmp send_r
nop
b0bset p_data
b0bset p_write
ret
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
endp
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -