📄 ats_wu_f14s.asm
字号:
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 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 + -