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

📄 ats_wu_f14s.asm

📁 本源代码是实际产品代码
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&  qq:315546556  15823431071
;     ATS智能双电源控制器原程序            &
;     ATS0W.ASM    STC12C2052AD  12M       &  有欠压,过压检测!!
;     2007.11.08    作者   杨湖光          &  去掉按键功能!!  启动完毕关闭油门
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&  全新改版 去掉飞轮检测!!+14S不检测发电机 20071216

K1      BIT    P1.6    ;市电有无检测     0=无电;1=有电
K2      BIT    P1.7    ;发电机电有无检测 0=无电;1=有电

FLYL    BIT    P3.7    ;飞轮电压检测     1有效

CDKZ    BIT    P3.0    ;充电控制         0有效
BJKZ    BIT    P3.1    ;声光报警控制     0有效
YMKZ    BIT    P3.3    ;油门控制(12V)       0有效
QDKZ    BIT    P3.5    ;发电机启动控制(12V) 0有效
GJKZ    BIT    P3.2    ;关机控制         0有效
DYKZ    BIT    P1.4    ;市电,发电机电源切换 1=市电 0=发电机电
ALMLED  BIT    P1.0    ;报警指示灯

ADC1    BIT    P1.1    ;AD采样通道1,关机延时可调(3S-180S)
BATV    BIT    P1.2    ;蓄电池电压检测  AD采样通道2
ADC3    BIT    P1.3    ;采样发电机电压
HZSB    BIT    P1.5    ;'1'=50Hz,'0'=60Hz 频率识别

SEC5_F   BIT    20H.0  ;5S到标志
MIN1_F   BIT    20H.1  ;1分钟到标志
SEC1_F   BIT    20H.2
SDYC_F   BIT    20H.3  ;市电异常标志
FDJYC_F  BIT    20H.4  ;发电机异常标志
DIYOUY_F BIT    20H.5  ;低飞轮异常标志
GZGY_F   BIT    20H.6  ;过载过压异常标志
SANQDW_F BIT    20H.7  ;3次启动失败标志

BJ_F     BIT    21H.0  ;报警声音标志
ANJ_F    BIT    21H.1  ;按键生效标志
AAA_F    BIT    21H.2
KQ_F     BIT    21H.3  ;开启频率检测功能
HZCY_F   BIT    21H.4  ;强制频率采样
HZZC_F   BIT    21H.5  ;频率正常标志
YJGJ_F   BIT    21H.6  ;
BBB_F    BIT    21H.7  ;

ANJ2_F   BIT    22H.0
JYNO_F   BIT    22H.1  ;1=不检测飞轮
FLYYC_F  BIT    22H.2
GUOY_F   BIT    22H.3
QIANY_F  BIT    22H.4

ANJTEMP EQU    2EH
ZJDATA  EQU    2FH

SECOND5 EQU    31H
KZTEMP5 EQU    32H
TEMP5   EQU    33H
KZTEMP6 EQU    34H
TEMP6   EQU    35H
COUNT   EQU    36H
COUNT1  EQU    37H
COUNT1A EQU    38H
MINUTE1 EQU    39H
SECOND1 EQU    3AH
QYCOUNT EQU    3BH
GYCOUNT EQU    3CH
TEMPH   EQU    3DH
TEMPL   EQU    3EH
YSDATA  EQU    3FH      ;延时关机寄存器
BATDATA EQU    40H
CDCOUNT EQU    41H
FDCOUNT EQU    42H
RUNTEMP EQU    43H
GYCS    EQU    0AH

;STC12C2052AD  特殊寄存器定义
P1M0       EQU    91H
P1M1       EQU    92H
WDT_CONTR  EQU    0E1H
P3M0       EQU    0B1H
P3M1       EQU    0B2H
ADC_CONTR  EQU    0C5H
ADC_DATA   EQU    0C6H
CHANNEL1   EQU    0E1H  ;关机延时采样(可调3S-180S)!
CHANNEL2   EQU    0E2H  ;电池电压采样!
CHANNEL3   EQU    0E3H  ;发电机电压采样!

        ORG    0000H
        NOP
        AJMP   MAIN

        ORG    0003H
        NOP
        AJMP   MAIN

        ORG    0013H
        NOP
        AJMP   MAIN

        ORG    001BH
        NOP
        AJMP   TIMER1   ;定时器中断1

        ORG    0023H
        NOP
        AJMP   MAIN

        ORG    0050H
MAIN:
        NOP
        MOV    SP,     #50H
        CLR    RS0
        CLR    RS1
        CLR    CDKZ              ;上电默认不充电
        NOP
        CLR    CDKZ              ;上电默认不充电
        CLR    ALMLED
        NOP
        CLR    ALMLED
        SETB   BJKZ              ;上电保证,报警不动作!!
        MOV    P1M0,   #0EEH     ;P1.4 ,P1.0强上拉输出,其他都是输入!!
        MOV    P1M1,   #11H      ;P1.1(ADC1延时可调),P1.2(ADC2电池采样)
        MOV    P3M0,   #80H      ;P3.7输入,其他是标准IO输出!!
        MOV    P3M1,   #01H      ;P3.0 强上拉推挽输出!
        MOV    20H,    #00
        MOV    21H,    #00
        MOV    22H,    #00
        MOV    RUNTEMP,#6        ;报警闪烁频率
        MOV    GYCOUNT,#5        ;过载,过压检测10秒!!
        MOV    QYCOUNT,#5
        MOV    CDCOUNT,#5
        MOV    FDCOUNT,#5        ;蓄电池电压检测秒数!!
        MOV    COUNT1, #60       ;低油压检测次数
        MOV    COUNT1A,#60
        MOV    KZTEMP5,#100
        MOV    TEMP5,  #20       ;市电正常检测次数
        MOV    KZTEMP6,#20
        MOV    TEMP6,  #20       ;发电机正常检测次数
        MOV    SECOND5,#100
        LCALL  GJDELAY
        MOV    TMOD,   #10H      ;T0=16位计数器 T1:16位定时器
        MOV    TH1,    #03CH     ;
        MOV    TL1,    #0B0H     ;50ms  定时
        MOV    TH0,    #00H      ;
        MOV    TL0,    #00H      ;
        SETB   ET1
        SETB   TR1               ;启动定时器1
        SETB   EA                ;开总中断
        MOV    SECOND5,#40       ;
        CLR    SEC5_F
        JNB    SEC5_F,$          ;延时6秒等待采样信号稳定!!
        CLR    SDYC_F
        SETB   FDJYC_F           ;上电指定市电正常,发电机异常
        CLR    FLYYC_F
        CLR    SANQDW_F
        CLR    GUOY_F
        CLR    QIANY_F
        MOV    WDT_CONTR,#3CH   ;启动看门狗!!
        NOP
        NOP
;**************************************************************主循环体
;**************************************************************主循环体
MAIN1:
;**************************************************************频率正常检测
        SETB   TR1
        NOP
        SETB   ET1
        NOP
;**************************************************************主循环体
;**************************************************************主循环体
MAIN1X:
        JNB    SDYC_F ,MAIN1B    ; SDYC_F=1  异常! 无电
        JB     SANQDW_F,MAIN1N
        JNB    FDJYC_F,MAIN1F    ; 发电机正常,退出!
        AJMP   MAIN2A
MAIN1N:
        JB     FDJYC_F ,MAIN1    ; FDJYC_F=1  异常! 无电
        CLR    AAA_F
        CLR    BJ_F
        SETB   BJKZ
        CLR    SANQDW_F          ; 市电来电,清除3次报警限制
        LJMP   FDJZCQD
                                 ; 市电,发电机都不正常,转启动3次处理!
MAIN1B:
        CLR    AAA_F
        CLR    SANQDW_F
        CLR    BJ_F
        SETB   BJKZ              ; 取消报警
        JB     FDJYC_F,MAIN1J    ; 市电正常,发电机异常,退出到主循环!
        LCALL  FDJTOSD           ; 发电机供电情况下,市电来了
MAIN1J:
        SETB   JYNO_F            ; 市电供电情况下不检测飞轮
        LJMP   MAIN1
MAIN1F:
;******************************** 2007.10.17  21:00
;        JB     FLYYC_F,KKKL1
        CLR    AAA_F
        CLR    SANQDW_F          ; 发电机来电,清除3次报警限制
        CLR    BJ_F
        SETB   BJKZ              ; 发电机正常,飞轮正常取消报警
        SETB   YMKZ              ; 发电机正常, 关闭油门
        AJMP   KKKL2
KKKL1:
        SETB   BJ_F
        CLR    BJKZ              ;发电机正常,飞轮异常启动报警
;******************************** 2007.10.17  21:00增加欠压过压检测!!
KKKL2:
        MOV    C,QIANY_F
        ORL    C,GUOY_F
        JC     WRONGJ            ; 发电机供电检测欠压,过压!!
        AJMP   FDJZCQD           ; 发电机正常启动运行状态!!
;********************************;20070915-16:09 增加
WWWW1:
        SETB   QDKZ
        SETB   BJ_F
        CLR    BJKZ
        AJMP   MAIN1
WRONGJ:
        AJMP   WRONG
;*************************************************************
MAIN2A:                          ; 第一次市电,发电都不正常时,输出5s关机信号
;*********************************2007.10.17  21:00
;        JNB    FLYYC_F,WWWW1     ;飞轮正常就不关机这5s了,只报警
        MOV    SECOND5,#100
        CLR    SEC5_F            ;启动发电机最长5s
        CLR    GJKZ
        SETB   YMKZ              ;关闭油门
        SETB   JYNO_F            ; 关机这5s不检测飞轮
        JNB    SEC5_F,$
        SETB   GJKZ              ;20070915-16:09 增加
;*************************************************************
        MOV    COUNT,#3          ;!!!!!!!!!!市电异常,启动发电机3次
MAIN2:
;*********************************2007.10.17  21:00加
;        JNB    FLYYC_F,WWWW1
;*********************************
        CLR    YMKZ              ;市电异常启动油门控制!  油门信号一直有效!
        CLR    QDKZ              ;启动发电机
        MOV    SECOND5,#80       ;#100  启动时间4s(20070916)
        CLR    SEC5_F            ;启动发电机最长5s
MAIN3:
        JB     SEC5_F, MAIN4A
        JNB    SDYC_F ,MAIN7     ;20070917 22:08 启动过程检测市电是否来电
        JB     FDJYC_F,MAIN3
        AJMP   MAIN3             ;这4s不检测发电机!20071214
;*********************************
YABCD1:                          ; 发电机正常启动!
        SETB   QDKZ              ;5S内检测到发电机交流信号,关启动信号,正常退出!
        SETB   YMKZ              ; 发电机正常, 关闭油门
        AJMP   FDJZCQD
MAIN4A:
;*******************************************新加等10s功能!!
        MOV    SECOND5,#200;****************新加等10s功能!!
        CLR    SEC5_F      ;****************新加等10s功能!!       ;在等10s
        SETB   QDKZ        ;****************新加等10s功能!!       ;4S关闭启动
        JNB    SEC5_F, $   ;****************新加等10s功能!!
;*******************************************新加等10s功能!!
        MOV    SECOND5,#160
        CLR    SEC5_F            ;在等8s检测发电机,2007.09.23改为在检测8s
MAIN4:
;***************************************
        SETB   QDKZ              ;5S后发电还是不正常!也必须关闭启动
        JB     SEC5_F, MAIN5
        JNB    SDYC_F ,MAIN7     ;在发电机启动的过程中,判断是否来电
        JB     FDJYC_F,MAIN4
;        JB     FLYYC_F,MAIN4
        SETB   YMKZ              ; 发电机正常, 关闭油门
        AJMP   FDJZCQD
;**************************************
MAIN5:
        JB     FDJYC_F,MAIN4K
;        JB     FLYYC_F,WWWW1
        AJMP   YABCD
MAIN4K:
;        JNB    FLYYC_F,WWWW1
YABCD:
        CLR    GJKZ            ;关机
        SETB   YMKZ            ;关闭油门
        SETB   JYNO_F          ;关机这5s不检测飞轮
        MOV    SECOND5,#100    ;5s关机信号
        CLR    SEC5_F
MAIN5A:
        JNB    SDYC_F,MAIN7
        JNB    SEC5_F,MAIN5A  ;在发电机启动的过程中,判断是否来电
        SETB   GJKZ
        MOV    SECOND5,#100    ;5s关机信号
        CLR    SEC5_F
MAIN5B:
        JNB    SDYC_F,MAIN7
        JNB    SEC5_F,MAIN5B  ;在发电机启动的过程中,判断是否来电
        DJNZ   COUNT,MAIN2     ;
;*******************************循环启动3次失败,告警!!!
        SETB   SANQDW_F
        CLR    BJKZ
        SETB   BJ_F
        LJMP   MAIN1
;***************************************************
WRONG:                          ;飞轮异常!
        CLR    BJKZ
        SETB   BJ_F

⌨️ 快捷键说明

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