標(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