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

📄 avr-1k2k-21p.asm

📁 数码管显示接触式交流稳压器MCU21P
💻 ASM
📖 第 1 页 / 共 3 页
字号:
           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
           ;======================
           
           btsc     out_on
           ret
           
           btsc     _SW
           LGOTO    delay_180s
           ;========delay 6s
           btsc     bSW_delay
           ret
           bs       bSW_delay
           movla    _3sens           
           movam    out_delay
           ret           
delay_180s:
           btss     bSW_delay
           ret
           bc       bSW_delay
           movla    _3minutes
           movam    out_delay
           
           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
           btss     STATUS,Z
           lgoto    out_higher_250V
           movla    .250
           sub      Vout_L,A
           btss     STATUS,C
           lgoto    judge_low
out_higher_250V:
           bs       sys_status1      ;Output voltage is bigger than 250V
           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       ;in 3secends close output
           ret

restore_HiLo:
           btsc     sys_status0
           lgoto    restore_Lo
           ;--------restore High
           tmsc     Vout_H
           RET
           movla    .245
           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    _3sens
           movam    out_delay
           bs       bSW_delay
           ret
        
_is_normal:
           bc       sys_status1
           bs       sys_status0
           movla    _3s
           movam    pro_delay
           ret
restore_Lo:
           movla    .195
           sub      Vout_L,A
           BTSS     STATUS,C
           RET
           btsc     out_on
           LGOTO    _is_normal
           bc       sys_status1     ;to delay for output
           bc       sys_status0
           movla    _3s
           movam    pro_delay
           movla    _3sens
           movam    out_delay
           bs       bSW_delay
           ret

imidiate_pro:
           clr      pro_delay
           bs       sys_status1
           bc       sys_status0
           ret
;===========================================
Temp_protect:
           nop
           btsc     sys_status1
           ret
           btss     sys_status0     ;to test the temperature under normal status
           ret
           tmsc     check_temp_dly
           ret
           btsc     _TmpTest
           lgoto    temp_is_normal
           ;=========;追加指令
           btss     temp_status
           ;=========
           bs       temp_status           
           ret
temp_is_normal:
           ;=========;追加指令
           btsc     temp_status
           ;=========
           bc       temp_status
           ret
;===========================================
Output_Module:
           btsc     sys_status1
           lgoto    keep_status
           btsc     sys_status0
           lgoto    keep_status
           tmsc     out_delay
           ret
           movla    _30S
           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
           btss     out_on
           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:
           ;*************
           lcall    check_zero
           lcall    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:
           ;*************
           lcall    check_zero 
           lcall    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_9ms   
           ;*************
           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_9ms   
           ;*************
           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
           ;*************
           lcall    check_zero 
           lcall    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_9ms 
           ;*************    
           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
           ;*************
           lcall    check_zero
           lcall    delay_5ms 
           ;*************
           BC       _RL4
           BC       RL4_status           
           movla    _200ms
           movam    relay_delay_time
           ;*************

           ret
;=============================
check_zero:
           clr      temp1
           movla    .5
           movam    temp2;total samples times
           movla    0FFH
           movam    temp3
           movla    ZERO_SAMPLE_TIME
           movam    SAMPLETIME
           ;=============
start_adc:                                 
           NOP
           MOVLA    01H
           MOVAM    AD_CTL1
           MOVLA    02H;01H
           MOVAM    AD_CTL2
           MOVLA    02H
           MOVAM    AD_CTL3
           NOP
           NOP
           BTSC     AD_CTL1,7
           LGOTO    $-1
           NOP
           NOP
           NOP
           NOP
           NOP
           NOP
           NOP
           NOP

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -