基于蓝牙控制的的灯光控制系统第一章 功能描述1、本设计采纳蓝牙作为上位机和下位机之间的通信方式,本设计使用手机 APP作为上位机控制下位机(单片机)。2、采纳 DS1302 时钟芯片,通过开发板上的数码管显示时分秒,即使断开电源,DS1302 芯片中的时间也会正常走,不需要重复写入时间。3、手机连接蓝牙后,手机 APP 可以控制 LED 灯显示红绿蓝三种颜色,还可以向单片机发送 LED 灯亮的时间以及灯灭的时间。4、当灯亮的时候,可以通过按键调节占空比调节灯光亮度也就是 PWM 调光。在灯光开启之前以及灯灭之后 PWM 调光按键无效。第二章 下位机软件设计思路以及原理本设计使用了 STC12C5A60S2 单片机、数码管、HC-05 蓝牙模块、LED 彩灯、DS1302 时钟模块。2.1 单片机程序设计单片机部分程序设计主要包括定时器 0 和定时器 1 以及串口部分程序设计2。1。1 定时器以及 PWM 调光部分程序设计定时器主要用到了定时器 0 以及定时器 1,在本设计中有一项功能是 PWM调光功能,由于单片机没有 PWM 模块,所以在本设计中我们采纳定时器 0 来模拟实现 PWM 的功能,其中定时器 0 的初始化程序如下所示。void Timer0Init(){TMOD = 0x02; //定时器 0,工作模式 2,8 位定时模式TH0=210; //写入预置初值(取值 1-255,数越大 PWM 频率越高)TL0=210; //写入预置值 (取值 1-255,数越大 PWM 频率越高)TR0=1; //启动定时器 0PWM_T=0;}void timer0() interrupt 1 { t++; //每次定时器溢出加 1 if(t==250) //PWM 周期 100 个单位 { t=0; //使 t=0,开始新的 PWM 周期 P1=0x07&P1; //输出端口 } if(PWM_T==t) //根据当前占空比切换输出为高电平 { P1=0xf8|P1; }}这一部分程序主要是让单片机每个 45 微秒进入一次定时器 0 中断,其中 t 每隔 45 微秒加一次,计数到 250 的时候重新置零,并让 P1 的高五位置零,也就是亮度达到最大。PWM_T 是调节占空比的,初始值是 0,是通过按键控制 PWM_T数值的增加与减少的。当 PWM_T 的数值与 t 相等的时候将 P1 的高五位置为高电平。定时器 1 部分程序设计如下所示void Timer1Init(void)//timer1 初始化程序{TMOD &= 0x0F;//设置定时器模式TMOD |= 0x10;//设置定时器模式TL1 = 0x00;//设置定时初值TH1 = 0xEE;//设置定时初值TF1 = 0;//清除 TF1 标志TR1 = 1;//定时器 1 开始计时}...