找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1896|回复: 4
打印 上一主题 下一主题
收起左侧

单片机程序已经设计了远近光的变换模式。怎么加个按键来切换手动控制和智能控制呢

[复制链接]
跳转到指定楼层
楼主
ID:675289 发表于 2019-12-27 12:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个是模拟远近光的智能变光,要加一个功能就是使用一个键能切换两种模式,请问要加那些编码

单片机源程序如下:
#include <reg52.h>
#define uint unsigned int           //宏定义整型变量
#define uchar unsigned char           //宏定义字符型变量
unsigned int flag=0;
unsigned int flah=0;

sbit led1=P2^0; //近光灯 定义led连接端口
sbit led2=P2^1;    //远光灯
sbit led3=P2^2;
sbit led4=P2^3;


sbit K1 = P3^0;    //按键
sbit K2 = P3^1;
//sbit K3 = P3^2;    //按键
//sbit K4 = P3^3;



sbit GM = P1^2;//光敏传感器

void GM_IO();
void delayms(uint);                    //声明延时函数
void key_sd();

void main()
{
while(1)
{
  key_sd();
  GM_IO();

}
}

/*------------------------------------------------
               自动识别子程序
------------------------------------------------*/
void GM_IO()
{
   if(GM==1)  //光照强,
   {
      led1=0;//打开近光灯
      led2=1;
   }

   if(GM==0)
{
    led1=1;
    led2=0;


}

}
/*------------------------------------------------
               手动控制子程序
------------------------------------------------*/
void key_sd()
{
if(K1==0)
   {
     delayms(20);
   
     if(K1==0)
     {
       led3=~led3;
     }
     while(!K1);
      
   }

    if(K2==0)
   {
     delayms(20);
     if(K2==0)
     {
       led4=~led4;
     }
            while(!K2);

   }
   }
/*------------------------------------------------
                 延时函数子程序
------------------------------------------------*/
void delayms(uint xms)
{
   uint i,j;
   for(i=xms;i>0;i--)       //x=多少就延时多少ms
     for(j=110;j>0;j--);
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:395068 发表于 2019-12-28 13:02 | 只看该作者
定义一个标志位,按键按下一次取反一次,然后判断标志位,为0则是近光灯,为1则是远光灯
回复

使用道具 举报

板凳
ID:632653 发表于 2019-12-29 17:39 | 只看该作者
定义一个标志位,初始值为0,按下按键时取反,然后在主函数内进行判断,为0时手动控制,为-1时智能控制
回复

使用道具 举报

地板
ID:195446 发表于 2019-12-29 22:37 | 只看该作者
最简单加个开关控制单片机电源就可以了,打开电源:自动,断开电源:手动。
回复

使用道具 举报

5#
ID:677155 发表于 2019-12-30 09:36 | 只看该作者
定义一个标志位,按键按下一次取反一次,然后判断标志位,为0则是近光灯,为1则是远光灯
回复

使用道具 举报

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

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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