📄 t1.bak
字号:
netp:jc ok
ljmp stop ;i>ka0_i
pan:jc ok ;i<ka0_i
ljmp stop ;i>ka0_i
ok:
setb rs0
mov r5,#00h
clr rs0
clr tf_250ms
ljmp ek
STOP:setb ka0 ;断KA0
clr red_lam1 ;报警
; clr gre_lam1 ;提示检测结束
; setb red_lam2
; setb red_lam3
; setb red_lam4
; setb red_lam5
ljmp waitsign ;等待复位信号
;*********************************************************
;**********第三工作段正常运转电流检测************************
;*********************************************************
;************** part_1 *************************
mission3:nop
clr ka2
lcall delay
nop
clr part_stad
mov menu_ge,#02h ;part3
mov menu_shi,#00h
mov par_qian,#00h
mov par_bai,#00h
mov par_shi,#00h
mov par_ge,#00h
lcall INI7219
lcall DISP_part
setb rs0
mov r5,#00h
mov r6,#0fh
mov r7,#01h
clr rs0
clr times_up
waitsi:jnb times_up,waitsi
mov a,ka2_time
anl a,#0fh
mov 30h,a ;个位
mov a,ka2_time
anl a,#0f0h
swap a
mov b,#10
mul ab
add a,30h ;将时间转换为二进制数
setb rs0
mov r5,#00h
mov r6,#00h
mov r7,a
clr rs0
clr times_up ;时间标志
clr tf_250ms
clr tf_test_sign
ekp1:clr ka2
realck:jb tf_250ms,ad_map1
jnb times_up,chesignp1
setb ka2 ;合格
nop
nop
nop
ljmp mission3_p2
chesignp1:jb low_batten,cdj2
jb action_stad,cr1
jb l_act,ssic1
ljmp cancel
ssic1:jnb r_act,ekp1
ljmp cancel
cr1:jb r_act,ssid1
ljmp cancel
ssid1:jnb l_act,ekp1
ljmp cancel
cdj2:lcall delay
jnb low_batten,chesignp1
ljmp low_test
;**************************************************
;********A/D转换并换算出相应电流值的BCD码R4/R5
;**************************************************
ad_map1:mov ad_chanel,#chanel_0
lcall adf ;转换出电流值BCD码
;**********************************************************************
;***********************************************************************
; 比较电流是否超设定值
;***********************************************************************
mov a,r4
anl a,#0f0h
swap a
mov par_qian,a
mov a,r4
anl a,#0fh
mov par_bai,a
mov a,r5
anl a,#0f0h
swap a
mov par_shi,a
mov a,r5
anl a,#0fh
mov par_ge,a
mov menu_ge,#02h ;part3
mov menu_shi,#00h
lcall INI7219
lcall DISP_part
mov a,r4
cjne a,ka2_imax_msb,panp1
mov a,r5
cjne a,ka2_imax_lsb,netpp1
sjmp okp1 ;i=ka2_imax
netpp1:jc okp1 ;i<ka2_imax
ljmp stopp1 ;i>ka2_imax
panp1:jc okp1 ;i<ka2_imax
ljmp stopp1 ;i>ka2_imax
okp1:mov a,r4
cjne a,ka2_imin_msb,panp1c
mov a,r5
cjne a,ka2_imin_lsb,netpp1c
sjmp okp1c ;i=ka2_imin
netpp1c:jnc okp1c ;i>ka2_imin
clr red_lam3
setb part_stad
ljmp okp1ca
; ljmp stopp1 ;i<ka2_imin
panp1c:jnc okp1c ;i>ka2_imin
clr red_lam3
setb part_stad
ljmp okp1ca
; ljmp stopp1 ;i<ka2_imin
okp1c:setb red_lam3
setb rs0
mov r5,#00h
clr rs0
clr tf_250ms
; clr line_stad
ljmp ekp1
okp1ca:setb rs0
mov r5,#00h
clr rs0
clr tf_250ms
; setb line_stad
ljmp ekp1
stopp1:setb ka2 ;断KA2
clr red_lam3 ;报警
setb part_stad
nop
nop
;**************** part_2 *****************
;*****************************************
mission3_p2:clr ka3
NOP
NOP
NOP
mov menu_ge,#03h ;part4
mov menu_shi,#00h
mov par_qian,#00h
mov par_bai,#00h
mov par_shi,#00h
mov par_ge,#00h
lcall INI7219
lcall DISP_part
setb rs0
mov r5,#00h
mov r6,#0fh
mov r7,#01h
clr rs0
clr times_up
waitsi1:jnb times_up,waitsi1
mov a,ka3_time
anl a,#0fh
mov 30h,a ;个位
mov a,ka3_time
anl a,#0f0h
swap a
mov b,#10
mul ab
add a,30h ;将时间转换为二进制数
setb rs0
mov r5,#00h
mov r6,#00h
mov r7,a
clr rs0
clr times_up ;时间标志
clr tf_250ms
ekp2:clr ka3
; jb arlarm,csan1
; clr gre_lam1 ;电容两端没有电压检测完成
; setb ka3
; ljmp waitsign
; csan1:
jb tf_250ms,ad_map2
jnb times_up,chesignp2
setb ka3 ;合格
ljmp mission3_p3
chesignp2:jb low_batten,cdj3
jb action_stad,cr2
jb l_act,ssic2
ljmp cancel
ssic2:jnb r_act,ekp2
ljmp cancel
cr2:jb r_act,ssid2
ljmp cancel
ssid2:jnb l_act,ekp2
ljmp cancel
cdj3:lcall delay
jnb low_batten,chesignp2
ljmp low_test
;**************************************************
;********A/D转换并换算出相应电流值的BCD码R4/R5
;**************************************************
ad_map2:mov ad_chanel,#chanel_0
lcall adf ;转换出电流值BCD码
;**********************************************************************
;***********************************************************************
; 比较电流是否超设定值
;***********************************************************************
mov a,r4
anl a,#0f0h
swap a
mov par_qian,a
mov a,r4
anl a,#0fh
mov par_bai,a
mov a,r5
anl a,#0f0h
swap a
mov par_shi,a
mov a,r5
anl a,#0fh
mov par_ge,a
mov menu_ge,#03h ;part4
mov menu_shi,#00h
lcall INI7219
lcall DISP_part
mov a,r4
cjne a,ka3_imax_msb,panp2
mov a,r5
cjne a,ka3_imax_lsb,netpp2
sjmp okp2 ;i=ka2_imax
netpp2:jc okp2 ;i<ka2_imax
ljmp stopp2 ;i>ka2_imax
panp2:jc okp2 ;i<ka2_imax
ljmp stopp2 ;i>ka2_imax
okp2:mov a,r4
cjne a,ka3_imin_msb,panp2c
mov a,r5
cjne a,ka3_imin_lsb,netpp2c
sjmp okp2c ;i=ka2_imin
netpp2c:jnc okp2c ;i>ka2_imin
clr red_lam4
setb part_stad
ljmp okp2c
; ljmp stopp2 ;i<ka2_imin
panp2c:jnc okp2c ;i>ka2_imin
clr red_lam4
setb part_stad
ljmp okp2c
; ljmp stopp2 ;i<ka2_imin
okp2c:setb rs0
mov r5,#00h
clr rs0
clr tf_250ms
ljmp ekp2
stopp2:setb ka3 ;断KA0
clr red_lam4 ;报警
setb part_stad
;**************** part_3 *****************
mission3_p3:clr ka4
NOP
NOP
NOP
NOP
NOP
NOP
mov menu_ge,#04h ;part5
mov menu_shi,#00h
mov par_qian,#00h
mov par_bai,#00h
mov par_shi,#00h
mov par_ge,#00h
lcall INI7219
lcall DISP_part
setb rs0
mov r5,#00h
mov r6,#0fh
mov r7,#01h
clr rs0
clr times_up
waitsi2:jnb times_up,waitsi2
mov a,ka4_time
anl a,#0fh
mov 30h,a ;个位
mov a,ka4_time
anl a,#0f0h
swap a
mov b,#10
mul ab
add a,30h ;将时间转换为二进制数
setb rs0
mov r5,#00h
mov r6,#00h
mov r7,a
clr rs0
clr times_up ;时间标志
clr tf_250ms
ekp3:clr ka4
; jb arlarm,csan
; clr gre_lam1 ;电容两端没有电压检测完成
; setb ka4
; ljmp waitsign
; csan:
lcall INI7219
lcall DISP_part
jb tf_250ms,ad_map3
jnb times_up,chesignp3
jb arlarm,csanz
clr gre_lam1 ;电容两端没有电压检测完成
setb ka4
ljmp waitsign
csanz:
setb ka4 ;合格
nop
lcall INI7219
lcall DISP_part
ljmp mission2
chesignp3:jb low_batten,cdj4
jb action_stad,cr3
jb l_act,ssic3
ljmp cancel
ssic3:jnb r_act,ekp3
ljmp cancel
cr3:jb r_act,ssid3
ljmp cancel
ssid3:jnb l_act,ekp3
ljmp cancel
cdj4:lcall delay
jnb low_batten,chesignp3
ljmp low_test
;**************************************************
;********A/D转换并换算出相应电流值的BCD码R4/R5
;**************************************************
ad_map3:mov ad_chanel,#chanel_0
lcall adf ;转换出电流值BCD码
;**********************************************************************
;***********************************************************************
; 比较电流是否超设定值
;***********************************************************************
mov a,r4
anl a,#0f0h
swap a
mov par_qian,a
mov a,r4
anl a,#0fh
mov par_bai,a
mov a,r5
anl a,#0f0h
swap a
mov par_shi,a
mov a,r5
anl a,#0fh
mov par_ge,a
mov menu_ge,#04h ;part5
mov menu_shi,#00h
lcall INI7219
lcall DISP_part
mov a,r4
cjne a,ka4_imax_msb,panp3
mov a,r5
cjne a,ka4_imax_lsb,netpp3
sjmp okp3 ;i=ka2_imax
netpp3:jc okp3 ;i<ka2_imax
ljmp stopp3 ;i>ka2_imax
panp3:jc okp3 ;i<ka2_imax
ljmp stopp3 ;i>ka2_imax
okp3:mov a,r4
cjne a,ka4_imin_msb,panp3c
mov a,r5
cjne a,ka4_imin_lsb,netpp3c
sjmp okp3c ;i=ka2_imin
netpp3c:jnc okp3c ;i>ka2_imin
clr red_lam5
setb part_stad
ljmp okp3c
; ljmp stopp3 ;i<ka2_imin
panp3c:jnc okp3c ;i>ka2_imin
clr red_lam5
setb part_stad
ljmp okp3c
; ljmp stopp3 ;i<ka2_imin
okp3c:setb rs0
mov r5,#00h
clr rs0
clr tf_250ms
ljmp ekp3
stopp3:
clr red_lam5 ;报警
jb arlarm,csan
clr gre_lam1 ;电容两端没有电压检测完成
csan:
setb ka4 ;断KA0
setb part_stad
; clr gre_lam1 ;检测完成
ljmp waitsign
;**********************************************
;*****第二工作段低压启动检测
;**********************************************
mission2:
nop
mov a,ka1_count
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -