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

📄 jk.cpp

📁 注塑机生产过程的微机控制系统设计本系统设计是通过8255A并行端口A、B传输数据控制12个LED发光二级管的亮灭来模拟控制两台注塑机的生产过程。其中端口A和B分别对应1号和2号注塑机
💻 CPP
字号:
#include"dos.h"
#include"conio.h"
#include"process.h"
#include"stdio.h"
#include"graphics.h"
#include"fcntl.h"
#include"stdlib.h"
#define LEFT  75
#define RIGHT	77
#define TRUE  1
#define FALSE 0
#define ESC	27
#define ENTER   13

char *str[]={"Start1","Start2","Start12"," Exit","Pause1","Pause2",
		      "Pause12"};
//Initgra
void InitGra()
{
	int GraphDriver,GraphMode;
	GraphDriver=VGA;//DETECT;
	GraphMode=VGAHI;
//	registerbgidriver(EGAVGA_driver);
	initgraph(&GraphDriver,&GraphMode,"");
}

//Quit
void Quit()
{
	closegraph();
	exit(0);
}

void select(int a)
{
	int b;
	if(a>4)
	{b=a-5;}
	else b=a-1;
	setfillstyle(1,7);
	setcolor(RED);
	{
	for(int p=0;p<4;p++)
	bar(126+100*p,297,208+100*p,333);
	}
	setfillstyle(1,LIGHTBLUE);
	for(int p=0;p<4;p++)
	{
		bar(129+100*p,300,205+100*p,330);
		if(p==b)continue;
		outtextxy(145+100*p,312,str[p]);
	}
	setfillstyle(1,YELLOW);
	bar(129+100*b,300,205+100*b,330);
	outtextxy(145+100*b,312,str[a-1]);

}

void display(int a,int b)
{
	a=a-1;
	b=b-1;
	setfillstyle(1,0);
	for(int i=0;i<7;i++)
	{
		if(i==a)continue;
		bar(162+60*i,102,198+60*i,138);
	}

	{
	for(int i=0;i<7;i++)
	{
		if(i==b)continue;
		bar(162+60*i,202,198+60*i,238);
	}
	}

	if(a==-1&&b==-1)return;
	if(a==-1);
	else
	{
		setfillstyle(1,RED);
		bar(162+60*a,102,198+60*a,138);
	}
	if(b==-1);
	else
	{
		setfillstyle(1,RED);
		bar(162+60*b,202,198+60*b,238);
	}

}

void ShowMenu()
{
	setbkcolor(0);
	char *info="         WELCOME  TO  USE  OUR   CONTROL  SYSTEM!";
	char *step[]={"step1","step2","step3","step4","step5","step6","step7"};


	setwritemode(COPY_PUT);
	setcolor(14);
	rectangle(50,50,590,430);
	setcolor(GREEN);
	outtextxy(80,30,info);

	for(int i=0;i<2;i++)
	for(int j=0;j<7;j++)
	rectangle(160+60*j,100+100*i,200+60*j,140+100*i);
	setcolor(13);
	for(int k=0;k<7;k++)
	outtextxy(160+60*k,70,step[k]);
	outtextxy(60,120,"Machine One");
	outtextxy(60,215,"Machine two");


	setfillstyle(1,7);
	setcolor(RED);
	{
	for(int p=0;p<4;p++)

	bar(126+100*p,297,208+100*p,333);
	}
	setfillstyle(1,LIGHTBLUE);
	for(int p=1;p<4;p++)
	{
		bar(129+100*p,300,205+100*p,330);
		outtextxy(145+100*p,312,str[p]);
	}
	setfillstyle(1,YELLOW);
	bar(129,300,205,330);
	outtextxy(145,312,str[0]);

}

void delay1(int a)
{
	delay(500*a);
}


void pause(int a)
{
	if(kbhit())
	{
		if(getch()==ENTER)
		{
		select(a-4);
		while(1)
		{
			if(getch()==ENTER)
			{
				select(a);
				break;
			}
		}
		}
	}
}


void fun1()
{
	outportb(0x218,0xfe);
	display(1,0);
	delay1(3);

	pause(5);

	outportb(0x218,0xfd);
	display(2,0);
	delay1(9);

	pause(5);

	outportb(0x218,0xfb);
	display(3,0);
	delay1(4);

	pause(5);

	outportb(0x218,0xf7);
	display(4,0);
	delay1(10);

	pause(5);

	outportb(0x218,0xef);
	display(5,0);
	delay1(1);

	pause(5);

	outportb(0x218,0xdf);
	display(6,0);
	delay1(7);

	pause(5);

	outportb(0x218,0xff);
	display(7,0);
	delay1(2);
	display(0,0);
	select(1);
}

void fun2()
{
	outportb(0x219,0xfe);
	display(0,1);
	delay1(4);

	pause(6);

	outportb(0x219,0xfd);
	display(0,2);
	delay1(10);

	pause(6);

	outportb(0x219,0xfb);
	display(0,3);
	delay1(4);

	pause(6);

	outportb(0x219,0xf7);
	display(0,4);
	delay1(12);

	pause(6);

	outportb(0x219,0xef);
	display(0,5);
	delay1(3);

	pause(6);

	outportb(0x219,0xdf);
	display(0,6);
	delay1(7);

	pause(6);

	outportb(0x219,0xff);
	display(0,7);
	delay1(2);
	display(0,0);
	select(2);
}

void fun3()
{
	enable();
	outportb(0x218,0xfe);
	outportb(0x219,0xfe);
	display(1,1);
	delay1(3);

	pause(7);

	outportb(0x218,0xfd);
	outportb(0x219,0xfe);
	display(2,1);
	delay1(1);

	pause(7);

	outportb(0x218,0xfd);
	outportb(0x219,0xfd);
	display(2,2);
	delay1(8);

	pause(7);

	outportb(0x218,0xfb);
	outportb(0x219,0xfd);
	display(3,2);
	delay1(2);

	pause(7);

	outportb(0x218,0xfb);
	outportb(0x219,0xfb);
	display(3,3);
	delay1(2);

	pause(7);

	outportb(0x218,0xf7);
	outportb(0x219,0xfb);
	display(4,3);
	delay1(2);

	pause(7);

	outportb(0x218,0xf7);
	outportb(0x219,0xf7);
	display(4,4);
	delay1(8);

	pause(7);

	outportb(0x218,0xef);
	outportb(0x219,0xf7);
	display(5,4);
	delay1(2);

	pause(7);

	outportb(0x218,0xdf);
	outportb(0x219,0xf7);
	display(6,4);
	delay1(2);

	pause(7);

	outportb(0x218,0xdf);
	outportb(0x219,0xef);
	display(6,5);
	delay1(3);

	pause(7);

	outportb(0x218,0xdf);
	outportb(0x219,0xdf);
	display(6,6);
	delay1(2);

	pause(7);

	outportb(0x218,0xff);
	outportb(0x219,0xdf);
	display(7,6);
	delay1(2);
	display(0,6);
	delay1(3);

	pause(7);

	outportb(0x218,0xff);
	outportb(0x219,0xff);
	display(0,7);
	delay1(2);
	display(0,0);
	select(3);
}

void dofun(int s)
{
	switch(s)
	{
	case 1:select(5);fun1();break;
	case 2:select(6);fun2();break;
	case 3:select(7);fun3();break;
	case 4:Quit();
	default:return;
	}
}

void main()
{
	char c;
	int s=1;
	int q=1;
	InitGra();
	setcolor(7);
	ShowMenu();
	outportb(0x21B,0x80);
	outportb(0x218,0xff);
	outportb(0x219,0xff);
	while(q)
	{

		if((c=getch())==RIGHT)
		{
		if(s==4)s=0;
		select(++s);
		}
		else if(c==LEFT)
		{
		if(s==1)s=5;
		select(--s);
		}
		else if(c==ENTER)
		{
		dofun(s);
		}

	}

}



⌨️ 快捷键说明

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