小R科技-WIFI机器人网·机器人创意工作室

 找回密码
 立即注册
查看: 4499|回复: 2

15学习日记(二)一键式开关

[复制链接]
发表于 2012-9-23 21:19:28 | 显示全部楼层 |阅读模式
本帖最后由 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;                                                         //因为灯关了
                     }                                                                        
        
               
      
        
    }

}
回复

使用道具 举报

发表于 2012-9-24 13:19:56 | 显示全部楼层
这个。。。。。莫非是传说中的51学习日记。。。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-9-24 23:14:16 | 显示全部楼层
不好意思。刚学习请多多指教
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

新品特惠推荐上一条 /2 下一条

QQ|QQ技术咨询1|QQ技术咨询2|商务合作微信1:xiaorgeek001|商务合作微信2:XiaoRGEEK|诚聘英才|Archiver|手机版|小R科技-WIFI机器人网·机器人创意工作室 ( 粤ICP备15000788号-6 )

GMT+8, 2024-5-19 18:19 , Processed in 1.104810 second(s), 18 queries .

Powered by XiaoR GEEK X3.4

© 2014-2021 XiaoR GEEK

快速回复 返回顶部 返回列表