基于51单片机的蓝牙台灯设计

电子说

1.2w人已加入

描述

功能如下:

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;

// }

}

51单片机

51单片机

51单片机

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分