📄 9222asm.asm
字号:
BF value_change_f,$Set_turnoff_judge_r
CLR1 value_change_f
; BF run_in_night_f,$Set_turnoff_judge0
; MOV A,settime_off_h
; CMP A,#0
; BNZ $Set_turnoff_judge0
; MOV A,settime_off_m
; CMP A,#0
; BNZ $Set_turnoff_judge0
; CLR1 run_in_night_f
;Set_turnoff_judge0:
BF set_turnon_f,$Set_turnoff_judge1
MOV A,settime_off_h
CMP A,settime_on_h
BNZ $Set_turnoff_judge1
MOV A,settime_off_m
CMP A,settime_on_m
BNZ $Set_turnoff_judge1
CLR1 set_turnon_f
Set_turnoff_judge1:
SET1 set_turnoff_f
Set_turnoff_judge_r:
RET
;--------------------------------
Pre_display:
MOVW AX,t_3s
CMPW AX,#300
BNC $Pre_display0
INCW AX
MOVW t_3s,AX
BR Pre_display_r
Pre_display0:
MOV A,error_f
CMP A,#0
BNZ $Error_display
BR Normal_display
Error_display:
MOV display_buffer1,#0
MOV display_buffer2,#10000000B
MOV display_buffer3,#0
MOV display_buffer4,#10000000B
MOV display_buffer7,#0
MOV A,flash_c
CMP A,#50
BNC $Error_display0
INC flash_c
Error_display01:
MOVW HL,#DISPLAY_TABLE
MOV A,#10
CALL !Check_table
OR A,#10000000B
MOV display_buffer5,A
BR Error_display1
Error_display0:
CMP A,#100
BNC $Error_display00
INC flash_c
MOV display_buffer5,#10000000B
MOV display_buffer6,#0
BR Pre_display_r
Error_display00:
MOV flash_c,#0
BR Error_display01
Error_display1:
BF over_tem_f,$Error_display_judge
BR Over_tem_display
Error_display_judge:
BF sensor_error_f,$Error_display_judge0
BR Sensor_error_display
Error_display_judge0:
BT heat_no_water_f,$Heat_no_water_display
BR Normal_display
Over_tem_display:
MOV A,#3
Error_display2:
MOVW HL,#DISPLAY_TABLE
CALL !Check_table
MOV display_buffer6,A
BR Pre_display_r
Sensor_error_display:
MOV A,#2
BR Error_display2
Heat_no_water_display:
MOV A,#1
BR Error_display2
Normal_display:
BT tem_set_f,$Tem_set_display
BR Tem_display
Tem_set_display:
MOV A,set_buffer
CALL !Flash_pro
MOV A,set_buffer
CMP A,#10
BNC $Tem_set_display1
MOV display_high_bit,#0
Tem_set_display1:
BF run_in_night_f,$Tem_set_high_display0
OR display_high_bit,#10000000B
Tem_set_high_display0:
MOV A,display_high_bit
MOV display_buffer1,A
Tem_set_low_display:
OR display_low_bit,#10000000B
Tem_set_low_display0:
MOV A,display_low_bit
MOV display_buffer2,A
MOV A,flash_c
CMP A,#50
BNC $Tem_set_display0
OR display_buffer7,#10100000B
BR Time_display
Tem_set_display0:
AND display_buffer7,#01011111B
BR Time_display
Tem_display:
OR display_buffer7,#10100000B
; MOV A,delay_c
; CMP A,#100
; BNC $Tem_display00
; INC delay_c
; BR Time_display
;Tem_display00:
; MOV delay_c,#0
MOV A,wt_display_buffer
CALL !Data_convert
MOV A,wt
CMP A,#10
BNC $Tem_display0
MOV display_high_bit,#0
Tem_display0:
BF run_in_night_f,$Tem_display2
OR display_high_bit,#10000000B
Tem_display2:
MOV A,display_high_bit
MOV display_buffer1,A
OR display_low_bit,#10000000B
MOV A,display_low_bit
MOV display_buffer2,A
Time_display:
BF time_h_set_f,$Time_display0
BR Time_h_set_display
Time_display0:
BF time_m_set_f,$Time_display1
BR Time_m_set_display
Time_display1:
BF turnon_h_set_f,$Time_display2
BR Turnon_h_set_display
Time_display2:
BF turnon_m_set_f,$Time_display3
BR Turnon_m_set_display
Time_display3:
BF turnoff_h_set_f,$Time_display4
BR Turnoff_h_set_display
Time_display4:
BF turnoff_m_set_f,$Time_display5
BR Turnoff_m_set_display
Time_display5:
OR display_buffer7,#01000000B
MOV A,time_h
CALL !Data_convert
MOV A,time_h
CMP A,#10
BNC $Time_display10
MOV display_high_bit,#0
Time_display10:
BT set_turnoff_f,$Time_display6
BR Time_display7
Time_display6:
OR display_high_bit,#10000000B
Time_display7:
MOV A,display_high_bit
MOV display_buffer3,A
MOV A,display_low_bit
MOV display_buffer4,A
MOV A,time_m
CALL !Data_convert
OR display_high_bit,#10000000B
BT set_turnon_f,$Time_display8
BR Time_display9
Time_display8:
OR display_low_bit,#10000000B
Time_display9:
MOV A,display_high_bit
MOV display_buffer5,A
MOV A,display_low_bit
MOV display_buffer6,A
BR Pre_display1
Turnon_h_set_display:
MOV A,set_buffer
CALL !Flash_pro
MOV A,set_buffer
CMP A,#10
BNC $Turnon_h_set_display01
MOV display_high_bit,#0
Turnon_h_set_display01:
BF set_turnoff_f,$Turnon_h_set_display0
OR display_high_bit,#10000000B
Turnon_h_set_display0:
MOV A,display_high_bit
MOV display_buffer3,A
MOV A,display_low_bit
MOV display_buffer4,A
MOV A,settime_on_m
CALL !Data_convert
Turnon_h_set_display00:
OR display_high_bit,#10000000B
Turnon_h_set_display1:
MOV A,display_high_bit
MOV display_buffer5,A
MOV A,flash_c
CMP A,#50
BNC $Turnon_h_set_display2
OR display_buffer7,#01000000B
OR display_low_bit,#10000000B
BR Turnon_h_set_display22
Turnon_h_set_display2:
AND display_buffer7,#10111111B
Turnon_h_set_display22:
MOV A,display_low_bit
MOV display_buffer6,A
BR Pre_display1
Turnon_m_set_display:
MOV A,settime_on_h
CALL !Data_convert
MOV A,settime_on_h
CMP A,#10
BNC $Turnon_m_set_display00
MOV display_high_bit,#0
Turnon_m_set_display00:
BF set_turnoff_f,$Turnon_m_set_display0
OR display_high_bit,#10000000B
Turnon_m_set_display0:
MOV A,display_high_bit
MOV display_buffer3,A
MOV A,display_low_bit
MOV display_buffer4,A
MOV A,set_buffer
CALL !Flash_pro
BR Turnon_h_set_display00
Turnoff_h_set_display:
MOV A,set_buffer
CALL !Flash_pro
MOV A,set_buffer
CMP A,#10
BNC $Turnoff_h_set_display02
MOV display_high_bit,#0
Turnoff_h_set_display02:
MOV A,flash_c
CMP A,#50
BNC $Turnoff_h_set_display0
OR display_buffer7,#01000000B
OR display_high_bit,#10000000B
BR Turnoff_h_set_display01
Turnoff_h_set_display0:
AND display_buffer7,#10111111B
Turnoff_h_set_display01:
MOV A,display_high_bit
MOV display_buffer3,A
MOV A,display_low_bit
MOV display_buffer4,A
MOV A,settime_off_m
CALL !Data_convert
Turnoff_h_set_display00:
OR display_high_bit,#10000000B
Turnoff_h_set_display1:
MOV A,display_high_bit
MOV display_buffer5,A
BF set_turnon_f,$Turnoff_h_set_display2
OR display_low_bit,#10000000B
Turnoff_h_set_display2:
MOV A,display_low_bit
MOV display_buffer6,A
BR Pre_display1
Turnoff_m_set_display:
MOV A,settime_off_h
CALL !Data_convert
MOV A,settime_off_h
CMP A,#10
BNC $Turnoff_m_set_display01
MOV display_high_bit,#0
Turnoff_m_set_display01:
MOV A,flash_c
CMP A,#50
BNC $Turnoff_m_set_display0
OR display_buffer7,#01000000B
OR display_high_bit,#10000000B
BR Turnoff_m_set_display00
Turnoff_m_set_display0:
AND display_buffer7,#10111111B
Turnoff_m_set_display00:
MOV A,display_high_bit
MOV display_buffer3,A
MOV A,display_low_bit
MOV display_buffer4,A
MOV A,set_buffer
CALL !Flash_pro
BR Turnoff_h_set_display00
Time_h_set_display:
MOV A,set_buffer
CALL !Flash_pro
MOV A,set_buffer
CMP A,#10
BNC $Time_h_set_display01
MOV display_high_bit,#0
Time_h_set_display01:
MOV A,flash_c
CMP A,#50
BNC $Time_h_set_display000
OR display_buffer7,#01000000B
BR Time_h_set_display00
Time_h_set_display000:
AND display_buffer7,#10111111B
Time_h_set_display00:
BF set_turnoff_f,$Time_h_set_display0
OR display_high_bit,#10000000B
Time_h_set_display0:
MOV A,display_high_bit
MOV display_buffer3,A
MOV A,display_low_bit
MOV display_buffer4,A
MOV A,time_m
CALL !Data_convert
Time_m_set_display1:
OR display_high_bit,#10000000B
Time_m_set_display2:
MOV A,display_high_bit
MOV display_buffer5,A
BF set_turnon_f,$Time_m_set_display3
OR display_low_bit,#10000000B
Time_m_set_display3:
MOV A,display_low_bit
MOV display_buffer6,A
BR Pre_display1
Time_m_set_display:
MOV A,time_h
CALL !Data_convert
MOV A,time_h
CMP A,#10
BNC $Time_m_set_display01
MOV display_high_bit,#0
Time_m_set_display01:
BF set_turnoff_f,$Time_m_set_display0
OR display_high_bit,#10000000B
Time_m_set_display0:
MOV A,display_high_bit
MOV display_buffer3,A
MOV A,display_low_bit
MOV display_buffer4,A
MOV A,set_buffer
CALL !Flash_pro
MOV A,flash_c
CMP A,#50
BNC $Time_m_set_display00
OR display_buffer7,#01000000B
BR Time_m_set_display1
Time_m_set_display00:
AND display_buffer7,#10111111B
BR Time_m_set_display1
Pre_display1:
MOV A,flash_c1
CMP A,#50
BNC $Pre_display2
INC flash_c1
BR Pre_display4
Pre_display2:
MOV flash_c1,#0
XOR display_buffer7,#00000100B
Pre_display4:
BF on_off_f,$Pre_display5
BF keep_tem_f,$Pre_display6
OR display_buffer7,#00010000B
AND display_buffer7,#11110111B
BR Pre_display_r
Pre_display5:
AND display_buffer7,#11100111B
BR Pre_display_r
Pre_display6:
OR display_buffer7,#00001000B
AND display_buffer7,#11101111B
Pre_display_r:
RET
;--------------------------------
Flash_pro:
CALL !Data_convert
MOV A,flash_c
CMP A,#50
BNC $Flash_pro0
INC flash_c
BR Flash_pro_r
Flash_pro0:
CMP A,#100
BNC $Flash_pro1
INC flash_c
MOV display_high_bit,#0
MOV display_low_bit,#0
BR Flash_pro_r
Flash_pro1:
MOV flash_c,#0
Flash_pro_r:
RET
;--------------------------------
Buzzer_deal:
BT ring_3times_f,$Ring_3times
BR Buzzer_deal00
Ring_3times:
MOV A,ring_c1
CMP A,#0
BNZ $Ring_3times0
SET1 ring_f
INC ring_c1
BR Buzzer_deal00
Ring_3times0:
INC ring_c1
MOV A,ring_c1
CMP A,#25
BNC $Ring_3times1
BR Buzzer_deal00
Ring_3times1:
MOV ring_c1,#0
INC three_times
MOV A,three_times
CMP A,#3
BNC $Ring_3times2
BR Buzzer_deal_r
Ring_3times2:
MOV three_times,#0
CLR1 ring_3times_f
BR Buzzer_deal_r
Buzzer_deal00:
BT ring_f,$Buzzer_deal0
BR Buzzer_deal_r
Buzzer_deal0:
MOV A,ring_c
CMP A,#0
BZ $Buzzer_deal1
CMP A,#10
BNC $Buzzer_deal2
BR Buzzer_deal3
Buzzer_deal1:
MOV TMC00,#0
CLR1 TOC00.1
SET1 TMMK000
MOVW AX,#250
MOVW CR000,AX ;T~=4KHz
NOP
NOP
MOV PRM00,#00000001B ;F=f/4
MOV CRC00,#0
MOV TOC00,#00000111B
MOV TMC00,#00001100B
BR Buzzer_deal3
Buzzer_deal2:
CLR1 ring_f
MOV ring_c,#0
MOV TOC00,#0
MOV TMC00,#0
MOVW AX,#0FFFFH
MOVW CR000,AX
BR Buzzer_deal_r
Buzzer_deal3:
INC ring_c
Buzzer_deal_r:
RET
;--------------------------------
Data_convert:
MOV high_bit_number,#0
Data_convert0:
CMP A,#10
BC $Data_convert_r
SUB A,#10
INC high_bit_number
BR Data_convert0
Data_convert_r:
MOVW HL,#DISPLAY_TABLE
CALL !Check_table
MOV display_low_bit,A
MOV A,high_bit_number
MOVW HL,#DISPLAY_TABLE
CALL !Check_table
MOV display_high_bit,A
RET
;--------------------------------
Check_table:
ADD A,L
MOV L,A
MOV A,H
ADDC A,#0
MOV H,A
MOV A,[HL]
RET
;--------------------------------
Delay:
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RET
;--------------------------------
Receive_byte:
CMPW AX,#zero_c_high
BC $Receive_byte1
Receive_byte0:
CMPW AX,#one_c_high
BC $Receive_byte2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -