📄 sashuiche.txt
字号:
;*********************************************;
;**************洒水车控制程序*******************;
;*************************************************;
;**************相应端口定义***********************;
qpf equ p1.0 ;前喷
hpf equ p1.1 ;后喷
ysf equ p1.2 ;引水
hxf equ p1.3 ;后吸
sts equ p1.4 ;上三通
stx equ p1.5 ;下三通
bjq equ p1.6 ;报警器
lxb equ p1.7 ;离心泵
gsw equ p0.1 ;高水位检测
qpj equ p0.2 ;前喷键
hpj equ p0.4 ;后喷键
xhj equ p0.6 ;循环调料键
hxfk equ p0.7 ;后吸阀控制
flag_f equ 30h ;前喷标志
flag_b equ 31h ;后喷标志
flag_w equ 32h ;工作标志
flag_x equ 33h ;循环标志
flag_t equ 34h ;调料标志
flag_1 equ 35h
flag_2 equ 36h
flag_3 equ 37h
;********************头文件******************************
Org 00h
ljmp start
Org 03h
Ljmp int_0
Org 13h
Ljmp int_1
;***********************主程序**********************************
Org 100h
start:
Mov ie #10000101b
Mov ip,#00000001b
Mov tcon,#00000000b
initial:
Mov p0 #0ffh
Mov p1,#00h
Clr lxb
Clr bjq
Mov flag_w,#0
Mov flag_f,#0
Mov flag_b,#0
Mov flag_t,#0
start1:
Call check_key;按键检测,打开相应的工作标志位
Call work;根据工作标志位进行相应的进程
Jmp start1
;**************************************************************
;*************************注液**********************************
int_0:
Push acc
Push psw
Mov p0 #0ffh
Mov p1,#00h
Clr lxb
Clr bjq
Mov flag_w,#0
Mov lag_f,#0
Mov lag_b,#0
Mov lag_t,#0
Setb ysf
Setb lxb
Setb stx
check_full:
Jnb gsw,check_over1
Jb p3.2,check_over
Jmp check_full
check_over1:
Setb bjq
Call delay_300ms
Call delay_300ms
Call delay_300ms
Call delay_300ms
Call delay_300ms
Call delay_300ms
Call delay_300ms
Call delay_300ms
Call delay_300ms
Call delay_300ms
Call delay_300ms
Call delay_300ms
Call delay_300ms
Call delay_300ms
Call delay_300ms
Call delay_300ms
Call delay_300ms
Clr bjq
check_over:
Clr ysf
Clr lxb
Clr stx
Pop psw
Pop acc
Reti
;*************************************************************
;********************************低水位报警*******************
int_1:
Push acc
Push psw
Mov p0,#0ffh
Mov p1,#00h
Clr lxb
Clr bjq
Mov flag_w,#0
Mov flag_f,#0
Mov flag_b,#0
Mov flag_t,#0
Setb bjq
Call delay_300ms
Call delay_300ms
Call delay_300ms
Call delay_300ms
Call delay_300ms
Call delay_300ms
Call delay_300ms
Call delay_300ms
Call delay_300ms
Call delay_300ms
Call delay_300ms
Call delay_300ms
Call delay_300ms
Call delay_300ms
Call delay_300ms
Call delay_300ms
Call delay_300ms
Clr bjq
Pop psw
Pop acc
Reti
delay_300ms:
Mov r7,#3
d1:
Mov r6,#200
d2:
Mov r5,#248
Djnz r5,$
Djnz r6,d2
Djnz r7,d1
Ret
delay_10s:
Mov r7,#96
d3:
Mov r6,#200
d4:
Mov r5,#248
Djnz r5,$
Djnz r6,d4
Djnz r7,d3
Ret
;****************************************************************
;***************按键检测******************************************
check_key:
Mov a,p0
Anl a,#0ffh
Mov flag_f,a
Mov a,flag_1
Cjne a,#0,ch1
Mov a,flag_2
Cjne a,#0,ch1
Jb qpj,ch1
Mov flag_f,#0ffh
Mov flag_w,#1
Ret
ch1:
Mov a,p0
Anl a,#0ffh
Mov flag_b,a
Mov a,flag_2
Cjne a,#0,ch2
Jb hpj,ch2
Mov flag_b,#0ffh
Mov flag_w,#2
ret
ch2:
Mov a,p0
Anl a,#0ffh
Mov flag_t,a
Jb xhj,over_check
Mov flag_t,#0ffh
Mov flag_w,#3
Ret
over_check:
Ret
;*********************************************************
;*******************工作流程**************************************
work:
Mov a,flag_w
jqp:
Cjne a,#01h,jhp;
Jmp qp_work
jhp:
Cjne a,#02h,jtl
Jmp hp_work
jtl:
Cjne a,#03h,over_work
Jmp tl_work
qp_work:
Mov a,flag_f
Mov flag_1,#0
Mov flag_2,#0
Cjne a,#0ffh,qp_off
Call forwork
Ret
qp_off:
Mov flag_1,#0
Mov flag_2,#0
Call f_off
Ret
hp_work:
Mov a,flag_b
Mov flag_1,#1
Mov flag_2,#0
Cjne a,#0ffh,hp_off
Call backwork
Ret
hp_off:
Mov flag_1,#0
Mov flag_2,#0
Call b_off
Ret
tl_work:
Mov a,flag_t
Mov flag_1,#0
Mov flag_2,#1
Cjne a,#0ffh,tl_off
Call tlwork
Ret
tl_off:
Mov flag_1,#0
Mov flag_2,#0
Call t_off
over_work :
Ret
;*******************************************************
forwork:;前喷
Setb qpf
Setb lxb
Clr hpf
Ret
f_off:;关闭前喷
clr qpf
clr lxb
Ret
backwork:;后喷
Setb lxb
Setb hpf
Clr qpf
Ret
b_off:;关闭后喷
Clr hpf
Clr lxb
Re
tlwork:
Mov a,flag_3
Cjne a,#0h,xh
Mov flag_3,#0h
Setb hxf
Setb sts
Setb lxb
Call delay_10s
xh:
Mov flag_3,#1h
Clr sts
Setb stx
Ret
t_off:
Mov flag_3,#0
Clr hxf
Clr stx
Clr lxb
Ret
End
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -