本帖最后由 mfkjqkoooo 于 2013-7-6 22:36 編輯
/********************************************************************
實現功能:順序控制程序
使用芯片:STC89C52RC
晶振:11.0592MHZ
編譯環境:Keil
*********************************************************************/
/********************************************************************
四入四出繼電器工控程序說明:
繼電器K1閉合約>30秒后,繼電器K1斷開>10分鐘,K3吸合,然后延時約>30秒,
繼電器K3斷開>30秒,如此循環!
*********************************************************************/
#include<reg52.h> //庫文件
#define uchar unsigned char//宏定義無符號字符型
#define uint unsigned int //宏定義無符號整型
/********************************************************************
初始定義
*********************************************************************/
/*定義四位輸入為單片機P1口*/
sbit IN0=P1^0;
sbit IN1=P1^1;
sbit IN2=P1^2;
sbit IN3=P1^3;
/*定義四位輸出為單片機P2口*/
sbit K1=P2^0;
sbit K2=P2^1;
sbit K3=P2^2;
sbit K4=P2^3;
/********************************************************************
延時函數
*********************************************************************/
void delay(uchar t) //當t等于20時,大概延時0.2秒;當t等于10時,大概延時0.1秒;
{
uchar m,n,s;
for(m=t;m>0;m--)
//for(m=t;m>0;m--)
for(n=500;n>0;n--) //n=500"+"delay(500); //調用延時函數 為>30秒鐘
for(s=248;s>0;s--);
}
/********************************************************************
主函數
*********************************************************************/
void main()
{
while(1)
{
K1=0; //繼電器K1閉合
//K2=0; //繼電器K2閉合
delay(500); //調用延時函數 //n=500"+"delay(500); //調用延時函數 為>30秒鐘
K1=1; //繼電器K1斷開
//K2=1; //繼電器K2斷開
delay(500); //調用延時函數 //延時累計
delay(500); //調用延時函數
delay(500); //調用延時函數
delay(500); //調用延時函數
delay(500); //調用延時函數
delay(500); //調用延時函數
delay(500); //調用延時函數
delay(500); //調用延時函數
delay(500); //調用延時函數
delay(500); //調用延時函數 33*10=330秒=6分30秒
delay(500); //調用延時函數
delay(500); //調用延時函數
delay(500); //調用延時函數
delay(500); //調用延時函數
delay(500); //調用延時函數
delay(500); //調用延時函數
delay(500); //調用延時函數
delay(500); //調用延時函數
delay(500); //調用延時函數
delay(500); //調用延時函數 33*10*2=660秒=13分
delay(500); //調用延時函數
delay(500); //調用延時函數
delay(500); //調用延時函數
delay(500); //調用延時函數 累計15分鐘
K3=0; //繼電器K3閉合
//K4=0; //繼電器K4閉合
delay(500); //調用延時函數
K3=1; //繼電器K3斷開
//K4=1; //繼電器K4斷開
delay(500); //調用延時函數
}
}
/********************************************************************
結束
*********************************************************************/
|