|
|
#include<stc8.h>
#include "intrins.h"
sbit K1=P3^2; //運(yùn)行/停止旋鈕
sbit J1=P3^3; //輸出,氣缸旋轉(zhuǎn)
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; //低電平觸發(fā)
EX0=1; //INT1中斷允許
EA=1; //總中斷允許
J1=1;
while(1)
{
if(K1==0) //啟動(dòng)
{
Delay_1ms(10); //延時(shí)一段時(shí)間再次檢測(cè)
if(K1==0) // 旋鈕K1的確被接通,自動(dòng)運(yùn)行
{if(S1==0) //判斷傳感器是否在原位
J1=0;} //輸出,電磁閥得電,氣缸旋轉(zhuǎn)
}
if(S2==0) //到位傳感器感應(yīng)到
{
Delay_1ms(10);; //延時(shí)一段時(shí)間再次檢測(cè)
if(K1==0) // 旋鈕K1保存接通為自動(dòng)
if(S2==0); //確認(rèn)感應(yīng)器感應(yīng)到
Delay_200ms(500); //延時(shí)后停止輸出
J1=1; //電磁閥斷電,氣缸回轉(zhuǎn)
}
else if(K1==1) //停止
{
Delay_1ms(10); //延時(shí)一段時(shí)間再次檢測(cè)
if(K1==1) //旋鈕K1的確斷開(kāi),停止自動(dòng)運(yùn)行
J1=1;
}
}
} |
評(píng)分
-
查看全部評(píng)分
|