acall t1s
cpl red
cpl green ;亮
acall t1s
cpl red
cpl green ;灭
acall t1s
cpl red
cpl green ;亮
acall t1s
cpl red
cpl green ;灭
acall t1s
cpl red
cpl green ;亮
acall t1s
mov p1 , #00h ;灭
setb on_off ;关闭lm317输出
acall t1s
acall t1s
acall t1s
acall tst_bat ;调用电池检测子程序
go1: mov r6 , #100
go2: mov r5 , #100 ;100*100*(1+5)=60000ms=1min
start: clr on_off ;接通lm317输出
acall t5ms
setb on_off
acall t1ms
djnz r5 , start
djnz r6 , go2
acall tst_bat ;调用电池检测子程序
sjmp go1
tst_bat:
setb on_off ;lm317接地,关闭输出
setb green
setb red
acall t1s
jnb test , bat_low
acall t1s
jnb test , bat_low
acall t1s
jnb test , bat_low
bat_hi: clr green
setb red
jb test , tst_bat;电池充满电,等待.电压下降后返回主程序继续充电
bat_low:clr green ;继续充电
setb red
ret
t1ms: mov r2 , #01
ok3: mov r1 , #250
ok4: djnz r1 , ok4
djnz r2 , ok3
ret
t5ms: mov r2 , #05
ok1: mov r1 , #250
ok2: djnz r1 ,ok2
djnz r2 , ok1
ret
t1s: mov r3 , #200
we: acall t5ms
djnz r3 , we
ret