求一种基于51单片机的蓝牙台灯设计方案

功能如下:
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;
// }
}

银河麒麟服务器操作系统在大中型企业中得到了广泛应用
单电源供电运算放大器的偏置方法
MicroBlaze软核处理器简介
封装级微调是一种半导体制造方法
汽车系统的工作原理及应用 如何高效率地使用原厂电路图
求一种基于51单片机的蓝牙台灯设计方案
Epic誓要与苹果硬刚到底
MacooxMC-X9评测 设计十分全面的产品
魅蓝系列中的旗舰机 魅蓝E3初体验
对话芯动科技 | 助力云游戏 4K级服务器显卡的探索与创新
为量子计算做好准备
AMC1301 ±250mV 输入电压、3μs 延迟增强隔离式精密放大器
华为携手陕西煤业共建全球领先“5G+工业互联网”智能矿山解决方案
Adobe营收高于预期,同比成长了24%
2018年led产业新格局 LED产值突破但是二八分化将更严重
循环扇开机不工作到底怎么回事
基于USB技术实现采集系统与计算机的通信设计
全球发生股灾,世界级半导体生死战已然开打!
智能硬件类产品的内部连接器,电路板连接器选型!
基于西门子S7-1200PLC的编程控制案例