|
本帖最后由 hanzhistar 于 2012-9-24 10:30 编辑
/*********************************************************************************
* 【编写时间】: 2012.9。23
* 【作 者】: 何安晓博
* 【版 本】: V1.0
* 【Q Q】: 7347567
* 【声 明】: 此程序仅用于学习与参考,引用请注明版权和作者信息!
* 【函数功能】:红外感应继电器开关
* 【使用说明】: 单片机:STC89C52
串口波特率:9600
红外感应第一次开灯 ,感应第二次关灯。
**********************************************************************************/
#include<reg52.h> //头文件
#define uint unsigned int //设定字型为整数
sbit P0_0=P0^0; //定义红外感应接口
sbit P0_4=P0^4; //定义继电器开关in口
sbit P1_0=P1^0; //定义按键开关接口另外一端接地
uint a;
void delay(uint z) //延时开关一个单位一毫秒 1000就是一秒左右
{ unsigned int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
main() //主函数
{
a=0; //设定a用来完成第一次继电器开,的二次就是继电器关
while(1) //进入大循环
{
if(a==0) //当a=0的时候进入 开关处发为开
{
if(P0_0==0) //检测信号低电平进入
{delay(500); //延时半秒
while(P0_0==0) //在检测低电平进入
{
P0_4=0; //继电器低电平开灯
a=1; //让a等于1好下次出发进入出发关灯状态
}
}
}
if(a==1) //当a=1的时候 开关触发为关
{
if(P0_0==0) //检测信号低电平进入
{delay(500); //延时半秒
while(P0_0==0) //在检测低电平进入
{
P0_4=1; //继电器低电平关灯
a=0; //让a等于1好下次出发进入出发关灯状态
}
}
}
if(P1_0==0) //按键开关接通
{
P0_4=1; //关灯
a=0; //因为灯关了
}
}
}
|
|