⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sszjqz.plm

📁 ms51单片机电子秤原理图、板图、plm源码
💻 PLM
📖 第 1 页 / 共 2 页
字号:
	WYX(6)=WYX(6)+1;
	M=WYX(6)*6+(WYX(5)-1)*2+J;
	CALL MOVXD0(M,.YZDDY(X),2);
	;
	CALL DLDL;
	ERR1=14;
	END;
	END;
	YZDDY(0)=YZDDY(0)+YZDDY(X);
	LYS(X)=LLYS(X);
	CALL DLDL;
	IF LYS(X)<>TQLL1 THEN
	DO;
	MM2=(WYX(5)-1)*2+2068H;
	CALL MOVXD0(MM2,.TQLL2,2);
	;
	CALL DLDL;
	IF TQLL1=TQLL2 THEN
	DO;
	LYS(X)=TQLL1;
	LLYS(X)=TQLL1;
	CALL DLDL;
	END;
	ELSE
	DO;
	ERR1=14;
	END;
	END;
	IF YZDDY(X)=0 THEN
	DO;
	SL(X)=SL(X-1);
	GOTO QQQD;
	END;
	IF WYX(5)=1 THEN
	DO;
	D244=1;
	CALL DLDL;
	XS=7CH;
	END;
	IF WYX(5)=2 THEN
	DO;
	D244=2;
	CALL DLDL;
	XS=73H;
	END;
	IF WYX(5)=3 THEN
	DO;
	D244=3;
	CALL DLDL;
	XS=4FH;
	END;
	PPB=XS;
Q2:	CALL ZT;
	CALL ADYX;
	SL(X)=SJZL;
	IF SJZL<SL(X-1) THEN SJZL=SL(X-1);
	SJL(X)=SJZL-SL(X-1);
	CALL SZXS;
	DDX1(3)=SJL(X)/256;
	DDX1(4)=SJL(X) MOD 256;
	IF X=1 THEN DDX1(3)=DDX1(3) OR 10H;
	IF X=2 THEN DDX1(3)=DDX1(3) OR 20H;
	IF X=3 THEN DDX1(3)=DDX1(3) OR 30H;
	CALL CXKK;
	CALL DLDL;
	DDX1(3)=DDX1(3) AND 0FH;
	IF SJZL-SL(X-1)+LYS(X)<YZDDY(X)*8/10 THEN GOTO Q2;
/*	IF SJZL-SL(0)+LYS(X)<YZDDY(0)*7/10 THEN GOTO Q2;
	IF WYX(5)=1 THEN XS=7EH;
	IF WYX(5)=2 THEN XS=7BH;
	IF WYX(5)=3 THEN XS=6FH;*/
	IF WYX(5)=1 THEN
	DO;
	D244=1;
	CALL DLDL;
	XS=7EH;
	END;
	IF WYX(5)=2 THEN
	DO;
	D244=2;
	CALL DLDL;
	XS=7BH;
	END;
	IF WYX(5)=3 THEN
	DO;
	D244=3;
	CALL DLDL;
	XS=6FH;
	END;
	PPB=XS;
Q22:	CALL ZT;
	CALL ADYX;
	SL(X)=SJZL;
	IF SJZL<SL(X-1) THEN SJZL=SL(X-1);
	SJL(X)=SJZL-SL(X-1);
	CALL SZXS;
	DDX1(3)=SJL(X)/256;
	DDX1(4)=SJL(X) MOD 256;
	IF X=1 THEN DDX1(3)=DDX1(3) OR 10H;
	IF X=2 THEN DDX1(3)=DDX1(3) OR 20H;
	IF X=3 THEN DDX1(3)=DDX1(3) OR 30H;
	CALL CXKK;
	CALL DLDL;
	DDX1(3)=DDX1(3) AND 0FH;
	IF SJZL-SL(0)+LYS(X)<YZDDY(0) THEN GOTO Q22;
	PPB=7FH;/*一种物料结束*/
	M=(WYX(5)-1)*2+I+1;
	DO DLW=0 TO 100;
	CALL ADYX;
	SL(X)=SJZL;
	IF SJZL<SL(X-1) THEN SJZL=SL(X-1);
	SJL(X)=SJZL-SL(X-1);
	CALL SZXS;
	DDX1(3)=SJL(X)/256;
	DDX1(4)=SJL(X) MOD 256;
	IF X=1 THEN DDX1(3)=DDX1(3) OR 10H;
	IF X=2 THEN DDX1(3)=DDX1(3) OR 20H;
	IF X=3 THEN DDX1(3)=DDX1(3) OR 30H;
	CALL CXKK;
	CALL DLDL;
	DDX1(3)=DDX1(3) AND 0FH;
	END;
	D244=0;
	CALL ADYX;
	SL(X)=SJZL;
	IF SJZL<SL(X-1) THEN SJZL=SL(X-1);
	SJL(X)=SJZL-SL(X-1);
	CALL SZXS;
	CALL MOVDX0(.SJL(X),M,2);
	CALL DLDL;
	CALL DLDL;
	DDX1(3)=SJL(X)/256;
	DDX1(4)=SJL(X) MOD 256;
	IF X=1 THEN DDX1(3)=DDX1(3) OR 10H;
	IF X=2 THEN DDX1(3)=DDX1(3) OR 20H;
	IF X=3 THEN DDX1(3)=DDX1(3) OR 30H;
	CALL CXKK;
	CALL DLDL;
	DDX1(3)=DDX1(3) AND 0FH;
QQQD:	;
	END;/*秤量一种物料结束*/
QD:	PROCEDURE;/*启动*/
	DECLARE	DL BYTE;/*循环变量*/
	PPB=7FH;
	;
	XS=7FH;
	PPC=0FBH;/*运行灯亮,其它灯不亮;*/
	;
	XY=0FBH;
	CALL ADYX;
	YZDDY(0)=0;
	SL(0)=SJZL;
	DO X=1 TO 3;
	WYX(5)=X;
	CALL QD2;
	END;
	PPB=7FH;
	;
	XS=7FH;
	I=I+6;
	CALL MOVDX0(.WYX(6),L,1);
	PPC=0F3H;/*料满*/
	;
	XY=0F3H;
	DDX1(3)=SJL(X)/256;
	DDX1(4)=SJL(X) MOD 256;
	IF X=1 THEN DDX1(3)=DDX1(3) OR 10H;
	IF X=2 THEN DDX1(3)=DDX1(3) OR 20H;
	IF X=3 THEN DDX1(3)=DDX1(3) OR 30H;
	CALL CXKK;
	CALL DLDL;
	DDX1(3)=DDX1(3) AND 0FH;
	CALL DLD1;
	DDX1(3)=SJL(X)/256;
	DDX1(4)=SJL(X) MOD 256;
	IF X=1 THEN DDX1(3)=DDX1(3) OR 10H;
	IF X=2 THEN DDX1(3)=DDX1(3) OR 20H;
	IF X=3 THEN DDX1(3)=DDX1(3) OR 30H;
	CALL CXKK;
	CALL DLDL;
	DDX1(3)=DDX1(3) AND 0FH;
	CALL DLD1;
	DDX1(3)=SJL(X)/256;
	DDX1(4)=SJL(X) MOD 256;
	IF X=1 THEN DDX1(3)=DDX1(3) OR 10H;
	IF X=2 THEN DDX1(3)=DDX1(3) OR 20H;
	IF X=3 THEN DDX1(3)=DDX1(3) OR 30H;
	CALL CXKK;
	CALL DLDL;
	DDX1(3)=DDX1(3) AND 0FH;
	CALL DLD1;
	DDX1(3)=SJL(X)/256;
	DDX1(4)=SJL(X) MOD 256;
	IF X=1 THEN DDX1(3)=DDX1(3) OR 10H;
	IF X=2 THEN DDX1(3)=DDX1(3) OR 20H;
	IF X=3 THEN DDX1(3)=DDX1(3) OR 30H;
	CALL CXKK;
	CALL DLDL;
	DDX1(3)=DDX1(3) AND 0FH;
	CALL DLD1;
	PPB=0BFH;/*卸料*/
	DDX1(3)=SJL(X)/256;
	DDX1(4)=SJL(X) MOD 256;
	IF X=1 THEN DDX1(3)=DDX1(3) OR 10H;
	IF X=2 THEN DDX1(3)=DDX1(3) OR 20H;
	IF X=3 THEN DDX1(3)=DDX1(3) OR 30H;
	CALL CXKK;
	CALL DLDL;
	DDX1(3)=DDX1(3) AND 0FH;
	CALL DLD1;
	DDX1(3)=SJL(X)/256;
	DDX1(4)=SJL(X) MOD 256;
	IF X=1 THEN DDX1(3)=DDX1(3) OR 10H;
	IF X=2 THEN DDX1(3)=DDX1(3) OR 20H;
	IF X=3 THEN DDX1(3)=DDX1(3) OR 30H;
	CALL CXKK;
	CALL DLDL;
	DDX1(3)=DDX1(3) AND 0FH;
	CALL DLD1;
	PPB=0FFH;
	;
	XS=0FFH;
	PPC=0FBH;/*运行灯亮,其它灯不亮;*/
	;
	XY=0FBH;
	LL=I;
	;
	D=D+1;
	LLL=D;
	;
	IF I>2100H+7000 OR D>1000 THEN
	DO;
        I=2100H+7000;
	D=1000;
	END;
	RETURN;
	END QD; /*启动结束*/
PFPF:	PROCEDURE;/*选配方*/
/*	WYX(6)=WYX(6)+1;
	IF WYX(6)>=10 THEN WYX(6)=0;
	CALL MOVDX0(.WYX(6),L,1);
	CALL DLD1;*/
	CALL DLD1;
	P13=NOT P13;
	JJSS=2002H;
	PPC=0F9H;/*预置灯亮,其它灯不亮;*/
	;
	XY=0F9H;
	CALL DLDL;/*TIME(75)*/
XHHX:	JP=DJP;
	IF JP=11 THEN GOTO CQCQ;
	DDX1(3)=30H;
	DDX1(4)=00H;
	CALL CXKK;
	IF (DDX1(1) AND 30H)=30H THEN
	DO;
	DDX1(1)=DDX1(1) AND 0FH;
	DDXX=DDX1(1)*256+DDX1(2);
	CALL MOVDX0(.DDXX,JJSS,2);/*存配方预置数*/
	CALL DLDL;
	CALL DLDL;
	JJSS=JJSS+2;
	IF JJSS>=2002H+60 THEN JJSS=2002H;
	END;
	GOTO XHHX;
CQCQ:	;
	ZTZW=ZTZW+1;
	PPC=0FBH;/*预置灯亮,其它灯不亮;*/
	;
	XY=0FBH;
	CALL DLD1;
	END;/*配方结束*/
WZ:	PROCEDURE;/*物重*/
	DECLARE
	GGG BYTE, 
	GG WORD,/*预置重量*/
	G WORD,/*预置重量*/
	YL WORD;/*预置重量*/
	PPC=0FDH;
	;
	CALL DLD1;
	XY=0FDH;
	JJS1=2101H;
	JJS3=0;
	IF (LLLL=0) OR (LLLL>1000) THEN LLLL=1;
	YL=LLLL-1;
	WYX(5)=1;
WWZZ:	JP=DJP;
	KZ=KKZ;
	P13=NOT P13;
	IF JP=18 THEN
	DO;
	YL=YL+1;
	WYX(1)=YL MOD 10;
	WYX(2)=YL/10 MOD 10;
	WYX(3)=YL/100 MOD 10;
	WYX(4)=YL/1000;
	WYX(5)=0;
	CALL SZXS;
	CALL DLD1;
	CALL DLD1;
	CALL DLD1;
	CALL DLD1;
	CALL DLD1;
	CALL DLD1;
	CALL DLD1;
	CALL DLD1;
	CALL DLD1;
	CALL DLD1;
	DO GGG=1 TO 3;
	G=(YL-1)*6+(GGG-1)*2+2101H;
	CALL MOVXD0(G,.GG,2);
	CALL DLDL;
	WYX(1)=GG MOD 10;
	WYX(2)=GG/10 MOD 10;
	WYX(3)=GG/100 MOD 10;
	WYX(4)=GG/1000;
	WYX(5)=GGG;
	CALL SZXS;
	CALL DLD1;
	CALL DLD1;
	CALL DLD1;
	CALL DLD1;
	CALL DLD1;
	CALL DLD1;
	CALL DLD1;
	CALL DLD1;
	CALL DLD1;
	CALL DLD1;
	END;	
	END;
	IF JP=19 THEN
	DO;
	D=0;
	I=2100H;
	LL=I;
	CALL DLDL;
	LLL=D;
	CALL DLDL;
LGZ:	CALL MOVDX0(0,I,1);
	CALL DLDL;
	I=I+1;
	IF I<3F00H THEN GOTO LGZ;
	I=2100H;
	CALL DLD1;
	END;
	IF JP=11 THEN GOTO GGKL;
	IF KZ=4 THEN GOTO GGKL;
	CALL MOVXD0(JJS1,.DDXX1,2);/*存配方预置数*/
	CALL DLDL;
	CALL DLDL;
	JJS2=JJS3 MOD 3;
	IF JJS2=0 THEN
	DO; 
	DDX1(3)=DDXX1/256+10H;
	DDX1(4)=DDXX1 MOD 256;
	END;
	IF JJS2=1 THEN
	DO; 
	DDX1(3)=DDXX1/256+20H;
	DDX1(4)=DDXX1 MOD 256;
	END;
	IF JJS2=2 THEN
	DO; 
	DDX1(3)=DDXX1/256+30H;
	DDX1(4)=DDXX1 MOD 256;
	END;
	CALL CXKK;
	IF (DDX1(1) AND 20H)=20H THEN
	DO;
	DDX1(1)=DDX1(1) AND 0FH;
	JJS1=JJS1+2;
	JJS3=JJS3+1;
	END;
	GOTO WWZZ;
GGKL:	ZTZW=ZTZW+1;
	PPC=0F9H;
	;
	CALL DLD1;
	XY=0F9H;
	CALL DLD1;
	CALL DLD1;
	END WZ;/*物重结束*/
QLQL:	PROCEDURE;
	CALL ADYX;
	QLL=SJZL;
	CALL DLD1;
	CALL DLD1;
	CALL DLD1;
	CALL DLD1;
	CALL DLD1;
	CALL DLD1;
	CALL DLD1;
	CALL DLD1;
	END QLQL;


	IO8255=98H;
	;
	PPB=0FFH;
	;
	XS=0FFH;
	PPC=0FFH;
	;
	XY=0FFH;
	J=2002H;
	L=20F0H;
	CALL MOVXD0(L,.WYX(6),1);/*取数据*/
	CALL DLDL;
	IF LL<2100H OR LL>3F00H THEN 
	DO;
	LL=2100H;
	CALL DLDL;
	LLL=0;
	CALL DLDL;
	END;
	I=LL;
	CALL DLDL;
	D=LLL;
	CALL DLDL;
	QLL=0;
	ERR1=0;
	WYX(5)=1;
	WYX(7)=0;
	WYX(8)=0;
	ZTZW=4;
	TMOD=20H;
	TH1=0F3H;
	TL1=0F3H;
	SCON=50H;
	PCON=80H;
	TR1=1;
	DQ=0;
	JJSS=2002H;
	D244=0;
	DDX1(3)=0;
	DDX1(4)=0;
YYYY:	P13=NOT P13;
	PPC=0FBH;/*运行灯亮,其它灯不亮;*/
	;
	XY=0FBH;
YXYX:	KZ=KKZ;
	CALL ADYX;
	PPB=7FH;
	;
	XS=7FH;
	;
	D244=0;
	CALL SZXS;
	IF KZ=1 THEN
	DO;
	DQ=1;
	END;
	ELSE
	DO;
	DQ=0;
	END;
	IF KZ=2 THEN CALL QD;
/*	IF KZ=3 THEN CALL PFPF;*/
/*	IF KZ=4 THEN GOTO YYXX;*/
	JP=DJP;
	IF JP=19 THEN CALL QLQL;
/*	IF JP=18 THEN CALL DYY;*/
	IF JP=17 THEN CALL QD;
/*	IF JP=12 THEN CALL PFPF;*/
	IF JP=11 THEN GOTO YYXX;
	CALL DLDL;
	CALL DLDL;
	IF ERR1=14 THEN PPC=0F8H;
/*	IF DQ>=2 THEN DQ=0;*/
	IF DQ=0 THEN
	DO;
	DDX1(3)=0;
	DDX1(4)=2;
	END;
	IF DQ=1 THEN
	DO;
	DDX1(3)=0;
	DDX1(4)=1;
	END;
	CALL CXKK;
	GOTO YXYX;
YYXX:	CALL DLD1;
	ZTZW=ZTZW+1;
	IF ZTZW>4 THEN ZTZW=1;
	IF ZTZW=1 THEN CALL YZ;
	IF ZTZW=2 THEN CALL WZ;
	IF ZTZW=3 THEN CALL PFPF;
	IF ZTZW=4 THEN GOTO YXYX;
	GOTO YYYY;
	END ST0;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -