#include<reg52.h> //库文件
#define uchar unsigned char//宏定义无符号字符型
#define uint unsigned int //宏定义无符号整型
/********************************************************************
初始定义
*********************************************************************/
/*定义八位输入为单片机P1口*/
sbit IN1=P1^0;
sbit IN2=P1^1;
sbit IN3=P1^2;
sbit IN4=P1^3;
sbit IN5=P1^4;
sbit IN6=P1^5;
sbit IN7=P1^6;
sbit IN8=P1^7;
/*定义八位输出为单片机P2口*/
sbit K8=P2^0;
sbit K7=P2^1;
sbit K6=P2^2;
sbit K5=P2^3;
sbit K4=P2^4;
sbit K3=P2^5;
sbit K2=P2^6;
sbit K1=P2^7;
/********************************************************************
延时函数
*********************************************************************/
void delay(uchar t)
{
uchar i,j;
for(i=0;i<t;i++)
{
for(j=13;j>0;j--);
{ ;
}
}
}
/********************************************************************
主函数
*********************************************************************/
//急停 IN1
//手动 IN2 K1控制指示灯(前 IN3 K2控制指示灯 K3控制继电器)(后 IN4 K4控制指示灯 K5控制继电器)
//自动 IN5 K6控制指示灯
//自动启停信号(光电开关发出信号)IN6 K7控制指示灯(同时控制K2 K3 K4 K5启停)
void main() //主程序
{
while(1)
{
if(IN1==0) //急停按钮开启
{
if(IN2==0) //手动按钮开启
{
delay(500);
K1=!K1; //K1控制手动按钮指示灯
while(!IN2);
delay(100);
}
if(K1==0) //手动模式开启
{
K6=1;
K8=0;
if(IN3==0) //IN3为前启停信号
{
delay(500);
K2=!K2; //K2控制前指示灯
K3=!K3; //K3控制前继电器
while(!IN3);
delay(100);
}
if(IN4==0) //IN4为后启停信号
{
delay(500);
K4=!K4; //K4控制后指示灯
K5=!K5; //K5控制后继电器
while(!IN4);
delay(100);
}
}
if(K1==1)//手动模式关闭
{
K2=1;
K3=1;
K4=1;
K5=1;
K7=1;
K8=1;
}
if(IN5==0) //自动模式按钮
{
delay(500);
K6=!K6;
while(!IN5);
delay(100);
}
if(K6==0)
{
K1=1;
K2=1;
K3=1;
K4=1;
K5=1;
K8=0;
if(IN6==0)//光电开关产生信号
{
K2=0;
K3=0;
K4=0;
K5=0;
}
if(IN6==1)
{
K2=1;
K3=1;
K4=1;
K5=1;
K8=1;
}
}
if((IN6==0)&&(K6==0))
{
delay(1000);
if(IN2==0)
{
delay(1000);
K1=!K1; //K1控制手动按钮指示灯
while(!IN2);
delay(1000);
}
if(K1==0)
{
delay(1000);
K2=1;
K3=1;
K4=1;
K5=1;
}
}
}
if(IN1==1)
{
K1=1;
K2=1;
K3=1;
K4=1;
K5=1;
K6=1;
K7=1;
K8=1;
}
}
}
代码如上,求教各位大神。
if(IN3==0) //IN3为前启停信号
{
delay(500);
K2=!K2; //K2控制前指示灯
K3=!K3; //K3控制前继电器
while(!IN3);
delay(100);
}
我想实现的功能是:当K2=0时,延时几秒后让K7=0;当K2=1时,K7=1;
就这样循环
|