#include<intrins.h>
#define X0 P2^0 //红外线开关输入
#define Y0 P0^0 //控制开关
void delay50ms(unsigned int i)
{
unsigned int j
for(ii>0i--)
for(j=50000j>0j--) //该处使用的为12MHz晶振,及一周期用时1us
}
void main()
{
start:
unsigned int k
P0=0x00 //输出初始化
p2=0x00 //输入初始化
for(k=35k>0k--)
{
if(X0==1)goto L1
delay50ms(20) //1秒扫描判断一次,如果有需要,可以自己配合k改动扫描时间
}
Y=1 //反之35S之后的话开关闭合
while(X0==0) //如果红外线开关35S以后关了
delay50ms(600) //延迟开关30S之后
Y0=0 //开路,设计完成
while(P2^1==0) //这里给你设计了个等待复位按钮,方便你复位
goto start
L1:Y0=0 //如果红外线开关在35S之内关了,与51相连的开关开路
}
void delay30ms(){
unsigned char i,j
for(i=0i<30i++)
for(j=0j<120j++)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)