功能如下:
1、通過按鍵調節燈的亮度(1-10檔位);
2、通過藍牙遠程控制燈的亮度和開關;
3、感應,根據附近是否有人自動進行開關燈。
部分程序:
#include
#include
#include "sys_define.h"
#include "pwm.h"
#include "uart.h"
uchar Lamp_OnOff = 1; //臺燈開關標志位
uchar Reaction_OnOff = 0; //人體感應開關標志位
sbit Key2 = P2^6;
sbit Key4 = P2^5;
sbit Key5 = P2^4;
sbit Key6 = P2^3;
sbit Reaction = P2^7;
void delay_ms(uint z)
{
uint x,y;
for(x = z; x > 0; x--)
for(y = 114; y > 0 ; y--);
}
uchar Key_Scan()
{
static uchar Key_up = 1;
uchar i;
if(Key_up && ( Key5 == 0 ||Key4 == 0 ))
{
Key_up = 0;
// delay_ms(10);
// if(Key6 == 0) i = 6;
if(Key5 == 0) i = 5;
if(Key4 == 0) i = 4;
// if(Key2 == 0) i = 2;
Uart_SendByte(i+'0');
return i;
}
else if( Key5 == 1 && Key4 == 1)
{
Key_up = 1;
}
}
/* Key2 亮度加
* Key4 亮度減
* Key5 開啟自動感應功能
* Key6 臺燈開關 */
void Function()
{
uchar Key = 0;
Key = Key_Scan();
if(Key)
{
// if(Key == 6)
// {
// if(Lamp_OnOff)
// {
// Lamp_Off();
// Lamp_OnOff = 0;
// }
// else
// {
// Lamp_On();
// Lamp_OnOff = 1;
// }
// }
// if(Lamp_OnOff)
// {
if(Key == 4)
PWM++;
if(Key == 5)
PWM--;
if(PWM > 10)
PWM = 10;
else if(PWM < 1)
PWM = 1;
Uart_SendByte(PWM+'0');
// if(Key == 5)
// Reaction_OnOff = ~Reaction_OnOff;
// }
}
審核編輯:湯梓紅
-
藍牙
+關注
關注
114文章
5775瀏覽量
169870 -
51單片機
+關注
關注
273文章
5699瀏覽量
123225
發布評論請先 登錄
相關推薦
評論