⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 avr3k5k-21p.asm

📁 数码管显示接继电器式交流稳压器
💻 ASM
📖 第 1 页 / 共 3 页
字号:
       
           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 + -