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

📄 电梯.c

📁 实现6层楼电梯控制系统的程序代码
💻 C
字号:
#include <reg51.h>
#include <absacc.h>
#include <stdio.h>
bit bdata up1;
bit bdata up2;
bit bdata up3;
bit bdata up4;
bit bdata up5;
bit bdata down2;
bit bdata down3;
bit bdata down4;
bit bdata down5;
bit bdata down6;
bit bdata to1;
bit bdata to2;
bit bdata to3;
bit bdata to4;
bit bdata to5;
bit bdata to6;
bit bdata up;
unsigned char key;
unsigned char k;
unsigned long time;
sbit P0_0 = P0^0;
sbit P0_1 = P0^1;
sbit P0_2 = P0^2;
sbit P0_3 = P0^3;
sbit P0_4 = P0^4;
sbit P0_5 = P0^5;
sbit P0_6 = P0^6;
sbit P0_7 = P0^7;
sbit P3_7 = P3^7;
sbit P3_6 = P3^6;
sbit P3_5 = P3^5;
sbit P3_4 = P3^4;
sbit P3_3 = P3^3;
void delay();
void delay2();
void main(void)
{
	P0_0=1;
	P0_1=1;
	P0_2=1;
	P0_3=1;
	P0_4=1;
	P0_5=1;
	P0_6=1;
	P0_7=1;
	P3_3=1;
	P3_4=1;
	P3_5=1;
	P3_6=1;
	P3_7=1;
	up1=0;
	up2=0;
	up3=0;
	up4=0;
	up5=0;
	down2=0;
	down3=0;
	down4=0;
	down5=0;
	down6=0;
	to1=0;
	to2=0;
	to3=0;
	to4=0;
	to5=0;
	to6=0;
	up=1;
	TMOD=2;
	TH0=0;
	TL0=0;
	TR0=1;
	PT0=1;
	EA=1;
	ET0=1;
	g1: P2=0x01;
		delay2();
	g12: if(up1||to1==1)
		{
			delay();
			up1=0;
			P3_7=1;
			to1=0;
		}
		if(down2||down3||down4||down5||down6||up2||up3||up4||up5||to2||to3||to4||to5||to6==1)
		{
			up=1;
			P0_1=0;
			P0_2=1;
                        delay2();
                        goto g2;
		}
		else
		{
			P0_1=1;
			P0_2=1;
			goto g12;
		}
	g2:	P2=0x02;
		delay2();
	g22: if(up==1)
		{
			if(up2||to2==1)
			{
				delay();
				to2=0;
				up2=0;
				P3_6=1;
			}
			if(down3||down4||down5||down6||up3||up4||up5||to3||to4||to5||to6==1)
			{
				P0_2=1;
				P0_1=0;
                                delay2();
                                goto g3;
			}
			else
			{
				if(down2==1)
				{
					delay();
					up=0;
					P0_2=0;
					P0_1=1;
					down2=0;
					P0_7=1;
				}
				if(up1||to1==1)
				{
					up=0;
					P0_2=0;
					P0_1=1;
                                        delay2();
					goto g1;
				}
				else
				{
					P0_1=1;
					P0_2=1;
                                        goto g22;
				}
			}
		}
		else
		{
            		if(down2||to2==1)
			{
				delay();
				to2=0;
				down2=0;
				P0_7=1;
			}
			if(up1||to1==1)
			{
				P0_2=0;
				P0_1=1;
                                delay2();
                                goto g1;
			}
			else
			{
				if(up2==1)
				{
					delay();
					up=1;
					P0_2=1;
					P0_1=0;
					up2=0;
					P3_6=1;
				}
				if(down3||down4||down5||down6||up3||up4||up5||to3||to4||to5||to6==1)
				{
					up=1;
					P0_2=1;
					P0_1=0;
                                        delay2();
					goto g3;
				}
				else
				{
					P0_1=1;
					P0_2=1;
					goto g22;
				}
			}
		}
	g3:	P2=0x03;
		delay2();
	g32: if(up==1)
		{
			if(up3||to3==1)
			{
				delay();
				to3=0;
				up3=0;
				P3_5=1;
			}
			if(down4||down5||down6||up4||up5||to4||to5||to6==1)
			{
				P0_2=1;
				P0_1=0;
                                delay2();
                                goto g4;
			}
			else
			{
				if(down3==1)
				{
					delay();
					up=0;
					P0_2=0;
					P0_1=1;
					down3=0;
					P0_6=1;
				}
				if(up1||to1||down2||up2||to2==1)
				{
					up=0;
					P0_2=0;
					P0_1=1;
                                        delay2();
					goto g2;
				}
				else
				{
					P0_1=1;
					P0_2=1;
					goto g32;
				}
			}
		}
		else
		{
                        if(down3||to3==1)
			{
				delay();
				to3=0;
				down3=0;
				P0_6=1;
			}
			if(up1||to1||down2||up2||to2==1)
			{
                                P0_2=0;
				P0_1=1;
                                delay2();
                                goto g2;
			}
			else
			{
				if(up3==1)
				{
					delay();
					up=1;
					P0_2=1;
					P0_1=0;
					up3=0;
					P3_5=1;
				}
				if(down4||down5||down6||up4||up5||to4||to5||to6==1)
				{
					up=1;
					P0_2=1;
					P0_1=0;
                                        delay2();
					goto g4;
				}
				else
				{
					P0_1=1;
					P0_2=1;
					goto g32;
				}
			}
		}
	g4:	P2=0x04;
		delay2();
	g42: if(up==1)
		{
			if(up4||to4==1)
			{
				delay();
				to4=0;
				up4=0;
				P3_4=1;
			}
			if(down5||down6||up5||to5||to6==1)
			{
				P0_2=1;
				P0_1=0;
                                delay2();
                                goto g5;
			}
			else
			{
				if(down4==1)
				{
					delay();
					up=0;
					P0_2=0;
					P0_1=1;
					down4=0;
					P0_5=1;
				}
				if(up1||to1||down2||up2||to2||down3||up3||to3==1)
				{
					up=0;
					P0_2=0;
					P0_1=1;
                                        delay2();
					goto g3;
				}
				else
				{
					P0_1=1;
					P0_2=1;
					goto g42;
				}
			}
		}
		else
		{
             if(down4||to4==1)
			{
				delay();
				to4=0;
				down4=0;
				P0_5=1;
			}
			if(up1||to1||down2||up2||to2||down3||up3||to3==1)
			{
				P0_2=0;
				P0_1=1;
                                delay2();
                                goto g3;
			}
			else
			{
				if(up4==1)
				{
					delay();
					up=1;
					P0_2=1;
					P0_1=0;
					up4=0;
					P3_4=1;
				}
				if(down5||down6||up5||to5||to6==1)
				{
					up=1;
					P0_2=1;
					P0_1=0;
                                        delay2();
					goto g5;
				}
				else
				{
					P0_1=1;
					P0_2=1;
					goto g42;
				}
			}
		}
	g5:	P2=0x05;
		delay2();
	g52:if(up==1)
		{
			if(up5||to5==1)
			{
				delay();
				to5=0;
				up5=0;
				P3_3=1;
			}
			if(down6||to6==1)
			{
				P0_2=1;
				P0_1=0;
                                delay2();
                                goto g6;
			}
			else
			{
				if(down5==1)
				{
					delay();
					up=0;
					P0_2=0;
					P0_1=1;
					down5=0;
					P0_4=1;
				}
				if(up1||to1||down2||up2||to2||down3||up3||to3||down4||up4||to4==1)
				{
					up=0;
					P0_2=0;
					P0_1=1;
                                        delay2();
					goto g4;
				}
				else
				{
					P0_1=1;
					P0_2=1;
					goto g52;
				}
			}
		}
		else
		{
             if(down5||to5==1)
			{
				delay();
				to5=0;
				down5=0;
				P0_4=1;
			}
			if(up1||to1||down2||up2||to2||down3||up3||to3||down4||up4||to4==1)
			{
				P0_2=0;
				P0_1=1;
                                delay2();
                                goto g4;
			}
			else
			{
				if(up5==1)
				{
					delay();
					up=1;
					P0_2=1;
					P0_1=0;
					up5=0;
					P3_3=1;
				}
				if(down6||to6==1)
				{
					up=1;
					P0_2=1;
					P0_1=0;
                                        delay2();
					goto g6;
				}
				else
				{
					P0_1=1;
					P0_2=1;
					goto g52;
				}
			}
		}
	g6: P2=0x06;
		delay2();
	g62: if(down6||to6==1)
		{
			delay();
			down6=0;
			P0_3=1;
			to6=0;
		}
		if(down2||down3||down4||down5||up1||up2||up3||up4||up5||to2||to3||to4||to5||to1==1)
		{
			up=0;
			P0_2=0;
			P0_1=1;
                        delay2();
			goto g5;
		}
		else
		{
			P0_1=1;
			P0_2=1;
			goto g62;
		}
}
void delay()
{
	time=40000;
	P0_0=0;
	while(time>0)
	{
		time=time-1;
	}
	P0_0=1;
	time=80000;
	while(time>0)
	{
		time=time-1;
	}
	P0_0=0;
	time=40000;
	while(time>0)
	{
		time=time-1;
	}
	P0_0=1;
}
timer0( ) interrupt 1
{

	P1=0xf0;
	k=P1;
	if(k!=0xf0)
	{
		k=k&0xf0;
		key=k;
		k=k|0x0f;
		P1=k;
		k=P1;
		k=k&0x0f;
		key=key|k;
		switch (key)
		{
			case 0xee: {up1=1;P3_7=0;} break;
			case 0xeb: {up2=1;P3_6=0;} break;
			case 0xdb: {up3=1;P3_5=0;} break;
			case 0xbb: {up4=1;P3_4=0;} break;
			case 0x7b: {up5=1;P3_3=0;} break;
			case 0xe7: {down2=1;P0_7=0;} break;
			case 0xd7: {down3=1;P0_6=0;} break;
			case 0xb7: {down4=1;P0_5=0;} break;
			case 0x77: {down5=1;P0_4=0;} break;
			case 0xed: {down6=1;P0_3=0;} break;
			case 0xde: to1=1; break;
			case 0xdd: to2=1; break;
			case 0xbe: to3=1; break;
			case 0xbd: to4=1; break;
			case 0x7e: to5=1; break;
			case 0x7d: to6=1; break;
		}
	}
}
void delay2()
{
	time=40000;
	while(time>0)
	{
		time=time-1;
	}
}

⌨️ 快捷键说明

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