?? nt02.asm
字號:
and #motor_l_n
ora #buzzsr_sw
sta PC
rts
p_on_op_action0:
lda actionmode
cmp #cold_mode
beq rel_cold_mode_0
cmp #hot_mode
beq rel_hot_mode_0
jmp rel_speed_mode
rel_cold_mode_0:
jmp rel_cold_mode
rel_hot_mode_0:
jmp rel_hot_mode
p_on_op_action1:
jmp power_off_output_action
;-----------------------------------------------
rel_speed_mode:
stz auto_mode
stz really_act_3min
stz really_act_20sec
lda PA
and #hot_sw_n
and #cold_sw_n
sta PA
rel_speed_mode_0:
lda speedmode
cmp #speed_motor_h
beq rel_motor_h_on
cmp #speed_motor_m
beq rel_motor_m_on
cmp #speed_motor_l
beq rel_motor_l_on
rts
rel_motor_l_on:
lda PA
and #motor_h_n
sta PA
lda PC
and #motor_m_n
ora #motor_l
ora #buzzsr_sw
sta PC
rts
rel_motor_m_on:
lda PA
and #motor_h_n
sta PA
lda PC
and #motor_l_n
ora #motor_m
ora #buzzsr_sw
sta PC
rts
rel_motor_h_on:
lda PA
ora #motor_h
sta PA
lda PC
and #motor_m_n
and #motor_l_n
ora #buzzsr_sw
sta PC
rts
rel_all_output_off:
lda PA
and #hot_sw_n
and #cold_sw_n
and #motor_h_n
sta PA
lda PC
and #motor_m_n
and #motor_l_n
ora #buzzsr_sw
sta PC
rts
really_action_ret:
rts
;-----------------------------------------------
rel_cold_mode:
lda PA
and #hot_sw_n ; turn off hot sw
sta PA
lda speedmode
cmp #speed_motor_aut
beq rel_cold_mode_au
stz auto_mode
stz really_act_3min
stz really_act_20sec
lda temperature_h
cmp t_setting_m ; if room check temperature > user setting temperature
beq cold_speed_com
bcs cold_sw_on ; then turn on cold sw
cold_sw_off:
lda PA
and #cold_sw_n
sta PA
jmp cold_speed_com
cold_sw_on:
lda PA
ora #cold_sw
sta PA
cold_speed_com:
jmp rel_speed_mode_0
;-----------------------------------------------
rel_cold_mode_au:
lda temperature_h
cmp t_setting_m ;
beq cold_equ_speedj ; if room check temperature = user setting temperature
bcs cold_min_speed ; if room check temperature > user setting temperature
jmp cold_max_speedj ; if room check temperature < user setting temperature
cold_equ_speedj:
jmp cold_equ_speed
cold_max_speedj:
jmp cold_max_speed
;-----------------------------------------------;
cold_min_speed:
lda auto_mode
cmp #01h
beq cold_min_com
cmp #02h
beq cold_min_com
cmp #03h
beq cold_min_com
cmp #04h
beq cold_min_com
jmp cold_min_speed1
cold_min_com:
lda really_act_20sec ; 20 sec
cmp #00h
bne nor_cold_ret
lda really_act_3min ; 3 min
cmp #00h
bne nor_cold_ret
lda auto_mode
cmp #01h
beq cold_min_speed2
cmp #02h
beq cold_min_speed3
cmp #03h
beq cold_min_speed4
cold_min_speed1:
lda #01h
sta auto_mode
jsr speed_3min_delay
lda PA
ora #cold_sw
sta PA ; turn on cold sw
jmp rel_motor_l_on
cold_min_speed2:
lda #02h
sta auto_mode
jsr speed_3min_delay
lda PA
ora #cold_sw
sta PA ; turn on cold sw
jmp rel_motor_m_on
cold_min_speed3:
lda #03h
sta auto_mode
jsr speed_3min_delay
lda PA
ora #cold_sw
sta PA ; turn on cold sw
jmp rel_motor_h_on
cold_min_speed4:
lda PA
ora #cold_sw
sta PA ; turn on cold sw
jmp rel_motor_h_on
cold_min_speed5_ret:
nor_cold_ret:
rts
;-----------------------------------------------;
cold_equ_speed:
lda auto_mode
cmp #00h
bne cold_equ_speed_ret
lda #00h
sta auto_mode
lda PA
and #cold_sw_n
sta PA ; turn off cold sw
jmp rel_motor_l_on
cold_equ_speed_ret:
rts
;-----------------------------------------------;
cold_max_speed:
lda auto_mode
cmp #07h
beq cold_max_com
cmp #08h
beq cold_max_com
cmp #09h
beq cold_max_com
jmp cold_max_speed0
cold_max_com:
lda really_act_20sec ; 20 sec
cmp #00h
bne cold_equ_speed_ret
lda really_act_3min ; 3 min
cmp #00h
bne cold_equ_speed_ret
lda auto_mode
cmp #07h
beq cold_max_speed1
cmp #08h
beq cold_max_speed2
cmp #09h
beq cold_max_speed3
cold_max_speed0:
lda PA
and #cold_sw_n
sta PA ; turn off cold sw
lda #07h
sta auto_mode
jsr speed_3min_delay
jmp rel_motor_h_on
cold_max_speed1:
lda PA
and #cold_sw_n
sta PA ; turn off cold sw
lda #08h
sta auto_mode
jsr speed_3min_delay
jmp rel_motor_m_on
cold_max_speed2:
lda PA
and #cold_sw_n
sta PA ; turn off cold sw
lda #09h
sta auto_mode
jmp rel_motor_l_on
cold_max_speed3:
rts
;-----------------------------------------------;
raally_act_20sec:
lda #32 ; unit 640msec
sta really_act_20sec ; delay 20sec
rts
speed_3min_delay:
lda #03 ; unit 1 min
sta really_act_3min ; delay 3 min
rts
;-----------------------------------------------
rel_hot_mode:
lda speedmode
cmp #speed_motor_aut
beq rel_hot_mode_au
stz auto_mode ; clear auto mode buffer
stz really_act_3min
stz really_act_20sec
lda t_setting_m
cmp temperature_h ; if room check temperature < user setting temperature
beq hot_speed_com
bcs hot_sw_on ; then turn on hot sw
hot_sw_off:
lda PA
and #hot_sw_n
and #cold_sw_n
sta PA
jmp hot_speed_com
nor_hot_ret:
rts
hot_sw_on:
lda PA
ora #hot_sw
ora #cold_sw
sta PA
hot_speed_com:
jmp rel_speed_mode_0
;-----------------------------------------------;
rel_hot_mode_au:
lda temperature_h
cmp t_setting_m ;
beq hot_equ_speedj ; if room temperature = user settign temperature
bcs hot_max_speedj ; if room check temperature > user setting temperature
jmp hot_min_speed ; if room temperature < user settign temperature
hot_equ_speedj:
jmp hot_equ_speed
hot_max_speedj:
jmp hot_max_speed
;-----------------------------------------------;
hot_min_speed:
lda auto_mode
cmp #01h
beq hot_min_com
cmp #02h
beq hot_min_com
cmp #03h
beq hot_min_com
cmp #04h
beq hot_min_com
jmp hot_min_speed1
hot_min_com:
lda really_act_20sec ; 20 sec
cmp #00h
bne hot_equ_speed_ret
lda really_act_3min ; 3 min
cmp #00h
bne hot_equ_speed_ret
lda auto_mode
cmp #00h
beq hot_min_speed1
cmp #01h
beq hot_min_speed2
lda auto_mode
cmp #02h
beq hot_min_speed3
cmp #03h
beq hot_min_speed4
cmp #04h
beq hot_min_speed4
hot_min_speed1:
lda #01h
sta auto_mode
jsr speed_3min_delay
lda PA
ora #hot_sw
ora #cold_sw
sta PA ; turn on hot sw
jmp rel_motor_h_on
hot_min_speed2:
lda #02h
sta auto_mode
jsr speed_3min_delay
lda PA
ora #hot_sw
ora #cold_sw
sta PA ; turn on hot sw
jmp rel_motor_m_on
hot_min_speed3:
lda #03h
sta auto_mode
jsr speed_3min_delay
lda PA
ora #hot_sw
ora #cold_sw
sta PA ; turn on hot sw
jmp rel_motor_l_on
hot_min_speed4:
lda #04h
sta auto_mode
lda PA
ora #hot_sw
ora #cold_sw
sta PA ; turn on hot sw
jmp rel_motor_l_on
hot_min_speed5:
hot_min_speed5_ret:
rts
;-----------------------------------------------;
hot_equ_speed:
lda auto_mode
cmp #00h
bne hot_equ_speed_ret
lda PA
and #hot_sw_n
and #cold_sw_n
sta PA ; turn off hot sw
jmp rel_motor_h_on
hot_equ_speed_ret:
rts
;-----------------------------------------------;
hot_max_speed:
lda auto_mode
cmp #06h
beq hot_max_com
cmp #07h
beq hot_max_com
cmp #08h
beq hot_max_com
cmp #09h
beq hot_max_com
jmp hot_max_speed0
hot_max_com:
lda really_act_20sec ; 20 sec
cmp #00h
bne hot_equ_speed_ret
lda really_act_3min ; 3 min
cmp #00h
bne hot_equ_speed_ret
lda auto_mode
cmp #07h
beq hot_max_speed1
cmp #08h
beq hot_max_speed2
cmp #09h
beq hot_max_speed3
hot_max_speed0:
lda PA
and #hot_sw_n
and #cold_sw_n
sta PA ; turn off hot sw
lda #07h
sta auto_mode
jsr speed_3min_delay
jmp rel_motor_l_on
hot_max_speed1:
lda PA
and #hot_sw_n
and #cold_sw_n
sta PA ; turn off hot sw
lda #08h
sta auto_mode
jsr speed_3min_delay
jmp rel_motor_m_on
hot_max_speed2:
lda PA
and #hot_sw_n
and #cold_sw_n
sta PA ; turn off hot sw
lda #09h
sta auto_mode
jsr speed_3min_delay
jmp rel_motor_h_on
rts
hot_max_speed3:
lda PA
and #hot_sw_n
and #cold_sw_n
sta PA ; turn off hot sw
lda #09h
sta auto_mode
jmp rel_motor_h_on
rts
rel_hot_mode_ret:
rts
raally_act_20sec_0:
jmp raally_act_20sec
;-----------------------------------------------
;-----------------------------------------------
power_off_output_action:
jsr rel_all_output_off ;
lda #00h
ora #buzzsr_sw
sta PC ; turn off hot sw;cold sw
rts
;///////////////////////////////////////////////;
; ;
; buzzer action ;
; ;
;///////////////////////////////////////////////;
;-----------
buzzer_action:
lda key_buzzer_t
cmp #00h
beq buzzer_off
rts
buzzer_on:
lda powerflag
and #demo_dis_f
beq buzzer_on_0
lda #80 ; when power on then buzzer on
sta key_buzzer_t ; buzzer on 800msec
jmp buzzer_on_com
buzzer_on_0:
lda #8 ;when key press then buzzer on
sta key_buzzer_t ; buzzer on 100msec
buzzer_on_com:
lda #00110000B ; pwm mode action,F32khz=32.768Khz,
sta T1C
lda #3 ; 4khz
sta T1BF1
lda #3
sta T1BF2
lda PC
ora #buzzsr_sw
sta PC ; pc.2 can great 4khz PWM singnal ?
lda #80h
ora T1C
sta T1C
buzzer_on_ret:
rts
buzzer_off:
lda #3fh
and T1C
sta T1C
rts
;///////////////////////////////////////////////;
; ;
; lcd backlight ;
; ;
;///////////////////////////////////////////////;
;-----------
lcd_backlight:
lda back_light_t
cmp #00h
beq backlight_off
backlight_on:
lda PC
ora #back_light
ora #buzzsr_sw
sta PC
rts
backlight_off:
lda PC
and #back_light_n
ora #buzzsr_sw
sta PC
lcd_backlight_ret:
rts
;------------
t10msec_ret_0:
jmp t10msec_ret
t20msec_ret_0:
jmp t20msec_ret
;***********************************************;
;*** time manager ***;
;***********************************************;
time_manager:
lda timeflag
and #t5msf_n ;clear 5msec flag
sta timeflag
;------10msec
lda timeflag
and #t10msf
beq t10msec_ret_0
lda timeflag
and #t10msf_n
sta timeflag
lda t800msec ;800msec timer
cmp #00h
beq t10msec_next0
dec t800msec
t10msec_next0:
lda t100msec ; 100msec timer
cmp #00h
beq t10msec_next1
dec t100msec
t10msec_next1:
lda key_buzzer_t ; key voice timer
cmp #00h
beq t10msec_next2
dec key_buzzer_t
t10msec_next2:
nop
;------20msec
lda timeflag
and #t20msf
beq t20msec_ret_0
lda timeflag
and #t20msf_n
sta timeflag
;------40msec
lda timeflag
and #t40msf
beq t40msec_ret
lda timeflag
and #t40msf_n
sta timeflag
;------80msec
lda timeflag
and #t80msf
beq t80msec_ret
lda timeflag
and #t80msf_n
sta timeflag
;------160msec
lda timeflag
and #t160msf
beq t160msec_ret
lda timeflag
and #t160msf_n
sta timeflag
;------320msec
lda timeflag
and #t320msf
beq t320msec_ret
lda timeflag
and #t320msf_n
sta timeflag
;------640msec
lda timeflag
and #t640msf
beq t640msec_ret
lda timeflag
and #t640msf_n
sta timeflag
lda back_light_t
cmp #00h
beq t640_next0
dec back_light_t
t640_next0:
lda clock_setting_t
cmp #00h
beq t640_next1
lda #clk_set_end_f_n
and dispflag
sta dispflag
dec clock_setting_t
lda clock_setting_t
cmp #00h
bne t640_next1
t640_next0_0:
stz clock_setting_m
t640_next1:
lda really_act_20sec ; 20 sec
cmp #00h
beq t640_next2
dec really_act_20sec
t640_next2:
t640_next3:
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -