📄 avr3k5k-21p.asm
字号:
MOV Vin_BUFF15,A
MOVAM Vin_BUFF17
ADD TEMP4,M
MOV Vin_BUFF14,A
MOVAM Vin_BUFF16
ADDC TEMP3,M
MOV Vin_BUFF13,A
MOVAM Vin_BUFF15
ADD TEMP4,M
MOV Vin_BUFF12,A
MOVAM Vin_BUFF14
ADDC TEMP3,M
MOV Vin_BUFF11,A
MOVAM Vin_BUFF13
ADD TEMP4,M
MOV Vin_BUFF10,A
MOVAM Vin_BUFF12
ADDC TEMP3,M
MOV Vin_BUFF9,A
MOVAM Vin_BUFF11
ADD TEMP4,M
MOV Vin_BUFF8,A
MOVAM Vin_BUFF10
ADDC TEMP3,M
MOV Vin_BUFF7,A
MOVAM Vin_BUFF9
ADD TEMP4,M
MOV Vin_BUFF6,A
MOVAM Vin_BUFF8
ADDC TEMP3,M
MOV Vin_BUFF5,A
MOVAM Vin_BUFF7
ADD TEMP4,M
MOV Vin_BUFF4,A
MOVAM Vin_BUFF6
ADDC TEMP3,M
MOV Vin_BUFF3,A
MOVAM Vin_BUFF5
ADD TEMP4,M
MOV Vin_BUFF2,A
MOVAM Vin_BUFF4
ADDC TEMP3,M
MOV Vin_BUFF1,A
MOVAM Vin_BUFF3
ADD TEMP4,M
MOV Vin_BUFF0,A
MOVAM Vin_BUFF2
ADDC TEMP3,M
MOV TEMP1,A
MOVAM Vin_BUFF1
ADD TEMP4,M
MOV TEMP0,A
MOVAM Vin_BUFF0
ADDC TEMP3,M
BC STATUS,C
RRC TEMP3,M
RRC TEMP4,M
BC STATUS,C
RRC TEMP3,M
RRC TEMP4,M
BC STATUS,C
RRC TEMP3,M
RRC TEMP4,M
BC STATUS,C
RRC TEMP3,M
RRC TEMP4,M
mov temp4,a
movam Vin_L
mov temp3,a
movam Vin_H
;======================
lcall sample_OUTvol
clr temp3
clr temp4
MOV Vout_BUFF29,a
MOVAM Vout_BUFF31
ADD TEMP4,M
MOV Vout_BUFF28,A
MOVAM Vout_BUFF30
ADDC TEMP3,M
MOV Vout_BUFF27,A
MOVAM Vout_BUFF29
ADD TEMP4,M
MOV Vout_BUFF26,A
MOVAM Vout_BUFF28
ADDC TEMP3,M
MOV Vout_BUFF25,A
MOVAM Vout_BUFF27
ADD TEMP4,M
MOV Vout_BUFF24,A
MOVAM Vout_BUFF26
ADDC TEMP3,M
MOV Vout_BUFF23,A
MOVAM Vout_BUFF25
ADD TEMP4,M
MOV Vout_BUFF22,A
MOVAM Vout_BUFF24
ADDC TEMP3,M
MOV Vout_BUFF21,A
MOVAM Vout_BUFF23
ADD TEMP4,M
MOV Vout_BUFF20,A
MOVAM Vout_BUFF22
ADDC TEMP3,M
MOV Vout_BUFF19,A
MOVAM Vout_BUFF21
ADD TEMP4,M
MOV Vout_BUFF18,A
MOVAM Vout_BUFF20
ADDC TEMP3,M
MOV Vout_BUFF17,A
MOVAM Vout_BUFF19
ADD TEMP4,M
MOV Vout_BUFF16,A
MOVAM Vout_BUFF18
ADDC TEMP3,M
MOV Vout_BUFF15,A
MOVAM Vout_BUFF17
ADD TEMP4,M
MOV Vout_BUFF14,A
MOVAM Vout_BUFF16
ADDC TEMP3,M
MOV Vout_BUFF13,A
MOVAM Vout_BUFF15
ADD TEMP4,M
MOV Vout_BUFF12,A
MOVAM Vout_BUFF14
ADDC TEMP3,M
MOV Vout_BUFF11,A
MOVAM Vout_BUFF13
ADD TEMP4,M
MOV Vout_BUFF10,A
MOVAM Vout_BUFF12
ADDC TEMP3,M
MOV Vout_BUFF9,A
MOVAM Vout_BUFF11
ADD TEMP4,M
MOV Vout_BUFF8,A
MOVAM Vout_BUFF10
ADDC TEMP3,M
MOV Vout_BUFF7,A
MOVAM Vout_BUFF9
ADD TEMP4,M
MOV Vout_BUFF6,A
MOVAM Vout_BUFF8
ADDC TEMP3,M
MOV Vout_BUFF5,A
MOVAM Vout_BUFF7
ADD TEMP4,M
MOV Vout_BUFF4,A
MOVAM Vout_BUFF6
ADDC TEMP3,M
MOV Vout_BUFF3,A
MOVAM Vout_BUFF5
ADD TEMP4,M
MOV Vout_BUFF2,A
MOVAM Vout_BUFF4
ADDC TEMP3,M
MOV Vout_BUFF1,A
MOVAM Vout_BUFF3
ADD TEMP4,M
MOV Vout_BUFF0,A
MOVAM Vout_BUFF2
ADDC TEMP3,M
MOV TEMP1,A
MOVAM Vout_BUFF1
ADD TEMP4,M
MOV TEMP0,A
MOVAM Vout_BUFF0
ADDC TEMP3,M
BC STATUS,C
RRC TEMP3,M
RRC TEMP4,M
BC STATUS,C
RRC TEMP3,M
RRC TEMP4,M
BC STATUS,C
RRC TEMP3,M
RRC TEMP4,M
BC STATUS,C
RRC TEMP3,M
RRC TEMP4,M
mov temp4,a
movam Vout_L
mov temp3,a
movam Vout_H
ret
;===========================================
Detect_Module:
lcall HiLo_voltage
lcall Temp_protect
ret
;--------------------
HiLo_voltage:
btsc sys_status1
lgoto continue_detect
btss sys_status0
ret
continue_detect:
movla 01H
sub Vout_H,A
BTSS STATUS,C
LGOTO is_lower_260V
BTSS STATUS,Z
LGOTO imidiate_pro
MOVLA 04H
SUB Vout_L,A
BTSC STATUS,C
LGOTO imidiate_pro ;is higher than 260V
is_lower_260V:
BTSC sys_status1
LGOTO restore_HiLo
mov Vout_H,a
btsc STATUS,Z
lgoto judge_low
bs sys_status1 ;Output voltage is bigger than 255V
bc sys_status0 ;in 3secends close output
ret
judge_low:
movla .180
SUB Vout_L,A
BTSC STATUS,C
LGOTO _is_normal ;output voltage is normal
BS sys_status1 ;output voltage is low
BS sys_status0
movla _3s
movam pro_delay ;not protect
ret
restore_HiLo:
btsc sys_status0
lgoto restore_Lo
;--------restore High
tmsc Vout_H
RET
movla .250
sub Vout_L,a
btsc STATUS,C
ret ;still is high
btsc out_on
lgoto _is_normal
bc sys_status1 ;to delay for output
bc sys_status0
movla _3s
movam pro_delay
movla _6sens
movam out_delay
bs bSW_delay
ret
_is_normal:
bc sys_status1
bs sys_status0
movla _3s
movam pro_delay
ret
restore_Lo:
movla .185
sub Vout_L,A
BTSC STATUS,C
LGOTO _is_normal
movla _3s ;still is low
movam pro_delay
ret
imidiate_pro:
clr pro_delay
bs sys_status1
bc sys_status0
ret
;===========================================
Temp_protect:
nop
ret
;===========================================
Output_Module:
btsc sys_status1
lgoto keep_status
btsc sys_status0
lgoto keep_status
tmsc out_delay
ret
movla _60s
movam check_temp_dly
bs sys_status0;into normal status
ret
keep_status:
btsc sys_status1
lgoto is_unusual
btsc out_on
ret
;=====turn on out
bs _RL5
BS out_on
ret
is_unusual:
TMSC pro_delay
ret
BC _RL5
BC out_on
nop
ret
;===========================================
Regulate_Module:
;*************
tmsc startup
RET
btss RL1_status
lgoto RL1_is_opened
tmsc Vin_H
lgoto open_RL1
movla RL1_pointH
SUB Vin_L,A
btss STATUS,C
lgoto control_RL2
open_RL1:
;*************
;call check_zero
;call delay_5ms
;*************
bc _RL1
BC RL1_status
movLa _200ms
movam relay_delay_time
control_RL2:
btss RL2_status
lgoto RL2_is_opened
tmsc Vin_H
lgoto open_RL2
MOVLA RL2_pointH
SUB Vin_L,A
BTSS STATUS,C
LGOTO control_RL3
open_RL2:
;*************
;call check_zero
;call delay_5ms
;*************
BC _RL2
BC RL2_status
movla _200ms
movam relay_delay_time
control_RL3:
btsc RL3_status
lgoto RL3_is_closed
tmsc Vin_H
lgoto close_RL3
MOVLA RL3_pointH
SUB Vin_L,A
BTSS STATUS,C
LGOTO control_RL4
close_RL3:
;*************
;lcall check_zero
;lcall delay_10ms
;*************
bs _RL3
BS RL3_status
movla _200ms
movam relay_delay_time
lgoto control_RL4
RL1_is_opened:
tmsc Vin_H
lgoto control_RL2
MOVLA RL1_pointL
SUB Vin_L,A
BTSC STATUS,C
LGOTO control_RL2
;*************
;lcall check_zero
;lcall delay_5ms
;*************
bs _RL1
bs RL1_status
movla _200ms
movam relay_delay_time
lgoto control_RL2
RL2_is_opened:
tmsc Vin_H
lgoto control_RL3
MOVLA RL2_pointL
SUB Vin_L,A
BTSC STATUS,C
LGOTO control_RL3
;*************
;lcall check_zero
;lcall delay_5ms
;*************
bs _RL2
BS RL2_status
movla _200ms
movam relay_delay_time
lgoto control_RL3
RL3_is_closed:
tmsc Vin_H
lgoto control_RL4
MOVLA RL3_pointL
SUB Vin_L,A
BTSC STATUS,C
LGOTO control_RL4
;*************
;call check_zero
;call delay_5ms
;*************
BC _RL3
BC RL3_status
movla _200ms
movam relay_delay_time
control_RL4:
tmsc relay_delay_time
ret
btsc RL4_status
lgoto RL4_is_closed
tmsc Vout_H
lgoto close_RL4
movla RL4_pointH
SUB Vout_L,A
btss STATUS,C
ret
close_RL4:
;*************
;lcall check_zero
;lcall delay_10ms
;*************
bs _RL4
BS RL4_status
movla _200ms
movam relay_delay_time
RET
RL4_is_closed:
tmsc Vout_H
RET
MOVLA RL4_pointL
SUB Vout_L,A
BTSC STATUS,C
RET
BC _RL4
BC RL4_status
;*************
;call check_zero
;call delay_5ms
;*************
movla _200ms
movam relay_delay_time
;*************
ret
;===========================================
Display_Module:
TMSC disp_fresh
ret
movla _500ms
movam disp_fresh
BTSC sys_status1
LGOTO display_unusual
BTSC sys_status0
LGOTO display_normal
;----display delay_time
mov out_delay,a
movam temp5
movam temp12
clr temp4
clr temp11
btsc bled1
lgoto clr_bled1
bs bled1
another_two_led:
bs bled0
bc bled2
lgoto display_next
clr_bled1:
bc bled1
lgoto another_two_led
;=======================
display_normal:
BTSC temp_status
LGOTO display_unusual
;-----display normal
mov Vin_L,A
MOVAM temp5
mov Vin_H,A
movam temp4
mov Vout_L,a
movam temp12
mov Vout_H,a
movam temp11
bs bled0
bc bled1
bc bled2
display_next:
lcall hex2dec
mov temp1,a
movam temp8
mov temp2,a
movam temp9
mov temp3,a
movam temp10
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -