📄 kr.asm
字号:
MOV TL2,#0D9H
MOV TH2,#0FFH
MOV T2CON,#34H ;定时器2工作于波特率发生器状态 ,并开启
MOV T2MOD,#00H
MOV TL0,#00H
MOV TH0,#00H
MOV TL1,#00H
MOV TH1,#4CH ;定时50ms
SETB ET1
CLR ET0
setb ES
SETB TR1
SETB TR0
call wbaohuy ;ds1302允许写命令
call jlcd ;允许涓流充电
clr sjsxbz ;清时间刷新标志
call ys50ms
call ys500ms
CALL HM1 ;HM1 为初始画面
mov data_2,#50h
call RD_DATA
call ys50ms
mov a,data_1
cjne a,#88h,main2
main3:
setb ea
HERE:
call ys50ms
call ys50ms
call ys50ms
call ys50ms
jnb sjsxbz,here ;时间刷新标志未置位,表明不在第5页面转走
call readdzj ;从1302读出时间
nop
nop
call xsshijian1 ;时间显示
sjmp here
main2: mov data_2,#50h
mov data_1,#88h
call wr_data
call ys50ms
mov data_2,#51h ;bu shu 1
mov data_1,#163
call wr_data
call ys50ms
mov data_2,#52h ;bu shu 2
mov data_1,#213
call wr_data
call ys50ms
mov data_2,#53h ;bu shu 3
mov data_1,#101
call wr_data
call ys50ms
sjmp main3
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
hereqwe: ret
here1: jnb hm4bz,hereqwe ;不在第4页面中转走
jnb rhsjbz,hereqwe ;未到乳化时间显示转走
call readdzj ;从1302读出时间
mov r0,#81h
mov a,@r0 ;取出分钟读数
call bcdh ;换算成16进制
mov bcsjdsl,a ; 本次数据读数值
mov r0,#82h ;取出小时读数
mov a,@r0
call bcdh
mov bcsjdsh,a
jnb lt1jsbz,here2 ;转去量筒2程序
jb lt1dycjsbz,here11
setb lt1dycjsbz
mov r0,#0a4h;lt1dycsjdsl ;是第一次则存储时间数值
mov @r0,bcsjdsl
mov r0,#0a5h;lt1dycsjdsh
mov @r0,bcsjdsh
mov r0,#0a0h;lt1js
mov @r0,#00h
ajmp here2 ;转去量筒2程序
here11: mov r0,#0a4h;lt1dycsjdsl
mov b,@r0
mov a,bcsjdsl
clr c
subb a,b
jc here12
mov r0,#0a0h;lt1js ;本次读数>第一次读数 存储计时时间
mov @r0,a
mov r0,#0a5h;lt1dycsjdsh
mov b,@r0
mov a,bcsjdsh
clr c
cjne a,b,here13
mov r0,#0a0h
mov a,@r0
add a,#02h ;补偿下降时间
mov @r0,a
call shyjs1xs
ajmp here2
here13: mov r0,#0a0h;lt1js
mov a,@r0
add a,#60
mov @r0,a
mov r0,#0a0h
mov a,@r0
add a,#02h
mov @r0,a
call shyjs1xs
ajmp here2
here12: mov a,bcsjdsl
add a,#60
mov r0,#0a4h;lt1dycsjdsl
mov b,@r0
subb a,b
mov r0,#0a0h;lt1js
mov @r0,a
mov r0,#0a0h
mov a,@r0
add a,#02h
mov @r0,a
call shyjs1xs
ajmp here2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
here2: jnb lt2jsbz,here3 ;转去量筒2程序
jb lt2dycjsbz,here21
setb lt2dycjsbz
mov r0,#0a6h;lt2dycsjdsl ;是第一次则存储时间数值
mov @r0,bcsjdsl
mov r0,#0a7h;lt2dycsjdsh
mov @r0,bcsjdsh
ajmp here3 ;转去量筒3程序
here21: mov r0,#0a6h;lt2dycsjdsl
mov b,@r0
mov a,bcsjdsl
clr c
subb a,b
jc here22
mov r0,#0a1h;lt2js ;本次读数>第一次读数 存储计时时间
mov @r0,a
mov r0,#0a7h;lt2dycsjdsh
mov b,@r0
mov a,bcsjdsh
clr c
cjne a,b,here23
mov r0,#0a1h
mov a,@r0
add a,#02h
mov @r0,a
call shyjs2xs
ajmp here3
here23: mov r0,#0a1h;lt2js
mov a,@r0
add a,#60
mov @r0,a
mov r0,#0a1h
mov a,@r0
add a,#02h
mov @r0,a
call shyjs2xs
ajmp here3
here22: mov a,bcsjdsl
add a,#60
mov r0,#0a6h;lt2dycsjdsl
mov b,@r0
subb a,b
mov r0,#0a1h;lt2js
mov @r0,a
mov r0,#0a1h
mov a,@r0
add a,#02h
mov @r0,a
call shyjs2xs
ajmp here3
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
here3: jnb lt3jsbz,here4 ;转去量筒2程序
jb lt3dycjsbz,here31
setb lt3dycjsbz
mov r0,#0a8h;lt3dycsjdsl ;是第一次则存储时间数值
mov @r0,bcsjdsl
mov r0,#0a9h;lt3dycsjdsh
mov @r0,bcsjdsh
ajmp here4 ;转去量筒4程序
here31: mov r0,#0a8h;lt3dycsjdsl
mov b,@r0
mov a,bcsjdsl
clr c
subb a,b
jc here32
mov r0,#0a2h;lt3js ;本次读数>第一次读数 存储计时时间
mov @r0,a
mov r0,#0a9h;lt3dycsjdsh
mov b,@r0
mov a,bcsjdsh
clr c
cjne a,b,here33
mov r0,#0a2h
mov a,@r0
add a,#02h
mov @r0,a
call shyjs3xs
ajmp here4
here33: mov r0,#0a2h;lt3js
mov a,@r0
add a,#60
mov @r0,a
mov r0,#0a2h
mov a,@r0
add a,#02h
mov @r0,a
call shyjs3xs
ajmp here4
here32: mov a,bcsjdsl
add a,#60
mov r0,#0a8h;lt3dycsjdsl
mov b,@r0
subb a,b
mov r0,#0a2h;lt3js
mov @r0,a
mov r0,#0a2h
mov a,@r0
add a,#02h
mov @r0,a
call shyjs3xs
ajmp here4
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
here4: jnb lt4jsbz,here5 ;转去量筒2程序
jb lt4dycjsbz,here41
setb lt4dycjsbz
mov r0,#0aah;lt4dycsjdsl ;是第一次则存储时间数值
mov @r0,bcsjdsl
mov r0,#0abh;lt4dycsjdsh
mov @r0,bcsjdsh
here5:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -