#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;
}
}
} |