#include<stc8.h>
#include "intrins.h"
sbit K1=P3^2; //運行/停止旋鈕
sbit J1=P3^3; //輸出,氣缸旋轉
sbit S1=P5^4; //原位傳感器
sbit S2=P5^5; //到位傳感器
void Delay_1ms(unsigned int t)
{
unsigned int x, y;
for(x=0; x<t; x++)
for(y=0; y<122; y++);
}
void Delay_200ms(unsigned int t)
{
unsigned int x, y;
for(x=0; x<t; x++)
for(y=0; y<2000; y++);
}
void main() //主程序
{
P3M0=0x00;
P3M1=0x00;
P5M0=0x10;
P5M1=0x00;
IT0=0; //低電平觸發
EX0=1; //INT1中斷允許
EA=1; //總中斷允許
J1=1;
while(1)
{
if(K1==0) //啟動
{
Delay_1ms(10); //延時一段時間再次檢測
if(K1==0) // 旋鈕K1的確被接通,自動運行
{if(S1==0) //判斷傳感器是否在原位
J1=0;} //輸出,電磁閥得電,氣缸旋轉
}
if(S2==0) //到位傳感器感應到
{
Delay_1ms(10);; //延時一段時間再次檢測
if(K1==0) // 旋鈕K1保存接通為自動
if(S2==0); //確認感應器感應到
Delay_200ms(500); //延時后停止輸出
J1=1; //電磁閥斷電,氣缸回轉
}
else if(K1==1) //停止
{
Delay_1ms(10); //延時一段時間再次檢測
if(K1==1) //旋鈕K1的確斷開,停止自動運行
J1=1;
}
}
} |