標(biāo)題: 單片機(jī)程序已經(jīng)設(shè)計(jì)了遠(yuǎn)近光的變換模式。怎么加個(gè)按鍵來切換手動(dòng)控制和智能控制呢 [打印本頁]

作者: 學(xué)渣2017    時(shí)間: 2019-12-27 12:19
標(biāo)題: 單片機(jī)程序已經(jīng)設(shè)計(jì)了遠(yuǎn)近光的變換模式。怎么加個(gè)按鍵來切換手動(dòng)控制和智能控制呢
這個(gè)是模擬遠(yuǎn)近光的智能變光,要加一個(gè)功能就是使用一個(gè)鍵能切換兩種模式,請問要加那些編碼

單片機(jī)源程序如下:
#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;    //遠(yuǎn)光燈
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í)函數(shù)
void key_sd();

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

}
}

/*------------------------------------------------
               自動(dòng)識(shí)別子程序
------------------------------------------------*/
void GM_IO()
{
   if(GM==1)  //光照強(qiáng),
   {
      led1=0;//打開近光燈
      led2=1;
   }

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


}

}
/*------------------------------------------------
               手動(dòng)控制子程序
------------------------------------------------*/
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í)函數(shù)子程序
------------------------------------------------*/
void delayms(uint xms)
{
   uint i,j;
   for(i=xms;i>0;i--)       //x=多少就延時(shí)多少ms
     for(j=110;j>0;j--);
}

作者: 166864646883    時(shí)間: 2019-12-28 13:02
定義一個(gè)標(biāo)志位,按鍵按下一次取反一次,然后判斷標(biāo)志位,為0則是近光燈,為1則是遠(yuǎn)光燈
作者: 克林    時(shí)間: 2019-12-29 17:39
定義一個(gè)標(biāo)志位,初始值為0,按下按鍵時(shí)取反,然后在主函數(shù)內(nèi)進(jìn)行判斷,為0時(shí)手動(dòng)控制,為-1時(shí)智能控制
作者: mffhxa    時(shí)間: 2019-12-29 22:37
最簡單加個(gè)開關(guān)控制單片機(jī)電源就可以了,打開電源:自動(dòng),斷開電源:手動(dòng)。
作者: ghrssb    時(shí)間: 2019-12-30 09:36
定義一個(gè)標(biāo)志位,按鍵按下一次取反一次,然后判斷標(biāo)志位,為0則是近光燈,為1則是遠(yuǎn)光燈




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1