📄 t1.bak
字号:
cjne a,#00h,dodo1
ljmp waitsign
dodo1:jnb part_stad,all_pass
; clr gre_lam1 ;检测完成
ljmp waitsign
all_pass:nop
setb rs0
mov r5,#00h
mov r6,#0ah
mov r7,#02h
clr rs0
clr times_up
waitsiy:jnb times_up,waitsiy
clr ka1
lcall delay
nop
mov ad_chanel,#chanel_0
lcall adf
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,#05h ;part2
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
;*************************************************
mov a,ka1_count
anl a,#0fh
mov 30h,a ;个位
mov a,ka1_count
anl a,#0f0h
swap a
mov b,#10
mul ab
add a,30h
mov kax_count_tem,a
ekc:mov a,ka1_time
anl a,#0fh
mov 30h,a ;个位
mov a,ka1_time
anl a,#0f0h
swap a
mov b,#10
mul ab
add a,30h
cjne a,#01h,palook
mov kax_time_tem,a
setb rs0
mov r5,#00h
mov r6,#0ah
mov r7,kax_time_tem
clr rs0
sjmp omy
palook:cjne a,#02h,normal
setb rs0
mov r5,#00h
mov r6,#00h
mov r7,#01h
clr rs0
sjmp omy
normal:mov kax_time_tem,a
setb rs0
mov r5,#00h
mov r6,#00h
mov r7,kax_time_tem
clr rs0
omy:clr times_up ;时间标志
clr tf_250ms
mov a,kax_count_tem
cjne a,#00h,yo
setb ka1
; clr gre_lam1 ;提示检测结束
ljmp waitsign ;等待复位信号
yo:clr move_stad
mov th1,#0ffh
mov tl1,#0Feh
setb tr1
yol:clr ka1 ;接通KA1
nop
lcall INI7219
lcall DISP_part
nop
jnb times_up,chesign1
clr tr1
jnb move_stad,scuk
setb red_lam2
sjmp adfc
scuk:clr red_lam2
sjmp adfc ;接通时间到采样电流
chesign1:jb low_batten,cdj1
jb action_stad,cr4
jb l_act,ssic4
ljmp cancel
ssic4:jnb r_act,yol
ljmp cancel
cr4:jb r_act,ssid4
ljmp cancel ;终止检测
ssid4:jnb l_act,yol
ljmp cancel
cdj1:lcall delay
jnb low_batten,chesign1
ljmp low_test
adfc:mov ad_chanel,#chanel_0
lcall adf
;***************采样电流是否超过设定值*****************
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,#05h ;part2
mov menu_shi,#00h
lcall INI7219
lcall DISP_part
mov a,r4
cjne a,ka1_i_msb,pan1
mov a,r5
cjne a,ka1_i_lsb,netp1
sjmp ok1 ;i=ka0_i
netp1:jc ok1
;clr red_lam2 ;报警
setb ka1 ;合格,停KA1,1秒
setb rs0
mov r5,#00h
mov r6,#00h
mov r7,#01h
clr rs0
clr times_up
ljmp yo1
pan1:jc ok1 ;i<ka0_i
;clr red_lam2 ;报警
setb ka1 ;合格,停KA1,1秒
setb rs0
mov r5,#00h
mov r6,#00h
mov r7,#01h
clr rs0
clr times_up
ljmp yo1
ok1:;setb red_lam2
setb ka1 ;合格,停KA1,1秒
setb rs0
mov r5,#00h
mov r6,#00h
mov r7,#01h
clr rs0
clr times_up
yo1:nop
lcall INI7219
lcall DISP_part
nop
nop
jnb times_up,yo1
dec kax_count_tem ;计算次数
Ljmp ekc
STOP1:setb ka1 ;断KA0
clr red_lam2 ;报警
ljmp waitsign ;等待复位信号
;**********************************************
;************低压启动按钮功能******************
;**********************************************
low_test:setb red_lam1 ;close all
setb red_lam2
setb red_lam3
setb red_lam4
setb red_lam5
setb gre_lam1
setb ka0
setb ka1
setb ka2
setb ka3
setb ka4
setb ka5
clr tr1
clr move_stad
mov th1,#0ffh
mov tl1,#0Feh
setb tr1
setb rs0
mov r4,#00h
mov r5,#00h
mov r6,#00h
clr rs0
clr tf_500ms
clr tf_test_sign
loopc:jb l_act,l_low ;行程开关和低压启动查询
jb r_act,r_low
l_low:setb ka5 ;行程开关1接通或全没有接通,关KA5
sjmp low_sta
r_low:clr ka5 ;行程开关2接通,接通KA5
low_sta:nop
nop
nop
clr ka1 ;接通KA1
mov ad_chanel,#chanel_0
lcall adf
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
jnb tf_test_sign,cjl
jnb move_stad,ockk
setb red_lam2
sjmp cjl
ockk:clr red_lam2
cjl:jnb tf_500ms,cjm
lcall ini7219
lcall DISP_DAT
setb rs0
mov r4,#00h
clr rs0
clr tf_500ms
;***************采样电流是否超过设定值*****************
cjm:mov a,r4
cjne a,ka1_i_msb,pans
mov a,r5
cjne a,ka1_i_lsb,netps
sjmp oks ;i=ka0_i
netps:jc oks
ljmp stops ;i>ka0_i
pans:jc oks ;i<ka0_i
ljmp stops ;i>ka0_i
oks:;setb red_lam2
sjmp ccsi
stops:;clr red_lam2 ;报警
ccsi:jb low_batten,loopc
lcall delay
jb low_batten,loopc
setb ka1
clr tr1
clr move_stad
mov th1,#0ffh
mov tl1,#0Feh
setb tr1
lcall ini7219
lcall disp_auto
jb l_act,ccsi
jb r_act,ccsi
cancel:clr tr1
setb ka0
setb ka1
setb ka2
setb ka3
setb ka4
setb ka5
ljmp sta
waitsign:setb ka0
setb ka1
setb ka2
setb ka3
setb ka4
jnb low_batten,gg
lcall delay
jnb low_batten,gg
ljmp low_test
gg:mov a,#00h
mov c,red_lam1
rlc a
mov c,red_lam2
rlc a
mov c,red_lam3
rlc a
mov c,red_lam4
rlc a
mov c,red_lam5
rlc a
mov c,gre_lam1
rlc a
orl a,#11000000b
cjne a,#0ffh,fail
lcall ini7219
lcall disp_auto
sjmp schol
fail:lcall ini7219
lcall disp_erro
schol:jb l_act,waitsign
jb r_act,waitsign
ljmp cancel
waitsign1:jnb low_batten,gg1
ljmp low_test
gg1:lcall ini7219
lcall disp_erro
jb l_act,waitsign1
jb r_act,waitsign1
ljmp cancel
;**************************************************
;********A/D转换并换算出相应电流值的BCD码R4/R5*****
;***************单位为 1mA=10mV 的转换*************
;**************************************************
adf2:lcall ad_186
mov 30h,dat_msb
mov 31h,dat_lsb
lcall ad_186
mov 32h,dat_msb
mov 33h,dat_lsb
lcall ad_186
mov 34h,dat_msb
mov 35h,dat_lsb
lcall ad_186
mov 36h,dat_msb
mov 37h,dat_lsb
clr c
mov a,31h
add a,33h
mov 31h,a ;和低位
mov a,30h
addc a,32h
mov 30h,a ;和高位
clr c
mov a,31h
add a,35h
mov 31h,a ;和低位
mov a,30h
addc a,34h
mov 30h,a ;和高位
clr c
mov a,31h
add a,37h
mov 31h,a ;和低位
mov a,30h
addc a,36h
mov 30h,a ;和高位
mov a,30h
clr c
rrc a
mov 30h,a
mov a,31h
rrc a
mov 31h,a
mov a,30h
clr c
rrc a
mov 30h,a
mov a,31h
rrc a
mov 31h,a
mov dat_msb,30h ;采样四次的平均值放此
mov dat_lsb,31h
mov r6,dat_msb ;转换BCD码
mov r7,dat_lsb
lcall HB2 ;结果在R4\R5中
mov a,r4 ;将R4\R5的BCD码除以10(四舍五入)
anl a,#0f0h
swap a
mov 30h,a
mov a,r4
anl a,#0fh
mov 31h,a
mov a,r5
anl a,#0f0h
swap a
mov 32h,a
mov a,r5
anl a,#0fh
cjne a,#05h,cfa
acta:mov a,32h ;要5入
cjne a,#09h,inc32
mov 32h,#00h ;进位
mov a,31h
cjne a,#09h,inc31
mov 31h,#00h
inc 30h
sjmp change
inc31:inc 31h
sjmp change
inc32:inc 32h
sjmp change
cfa:jnc acta ;a>5要5入
change:mov r4,30h
mov a,31h
swap a
orl a,32h
mov r5,a ;除以10并四舍五入后的数在R4\R5 即为电流值的BCD码
ret
;***************************************************
;*******A/D转换并换算出相应电流值的BCD码R4/R5*******
;**单位为 1mA=10mV 的转换适合满量程
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -