#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;
就這樣循環
|