找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1936|回復: 4
打印 上一主題 下一主題
收起左側

單片機程序已經(jīng)設計了遠近光的變換模式。怎么加個按鍵來切換手動控制和智能控制呢

[復制鏈接]
跳轉到指定樓層
樓主
ID:675289 發(fā)表于 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);                    //聲明延時函數(shù)
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);

   }
   }
/*------------------------------------------------
                 延時函數(shù)子程序
------------------------------------------------*/
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空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:395068 發(fā)表于 2019-12-28 13:02 | 只看該作者
定義一個標志位,按鍵按下一次取反一次,然后判斷標志位,為0則是近光燈,為1則是遠光燈
回復

使用道具 舉報

板凳
ID:632653 發(fā)表于 2019-12-29 17:39 | 只看該作者
定義一個標志位,初始值為0,按下按鍵時取反,然后在主函數(shù)內進行判斷,為0時手動控制,為-1時智能控制
回復

使用道具 舉報

地板
ID:195446 發(fā)表于 2019-12-29 22:37 | 只看該作者
最簡單加個開關控制單片機電源就可以了,打開電源:自動,斷開電源:手動。
回復

使用道具 舉報

5#
ID:677155 發(fā)表于 2019-12-30 09:36 | 只看該作者
定義一個標志位,按鍵按下一次取反一次,然后判斷標志位,為0則是近光燈,為1則是遠光燈
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表