欢迎来到天天文库
浏览记录
ID:49550830
大小:4.41 MB
页数:17页
时间:2020-03-02
《基于蓝牙控制的灯光控制系统设计实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.基于蓝牙控制的的灯光控制系统第一章功能描述1、本设计采用蓝牙作为上位机和下位机之间的通信方式,本设计使用手机APP作为上位机控制下位机(单片机)。2、采用DS1302时钟芯片,通过开发板上的数码管显示时分秒,即使断开电源,DS1302芯片中的时间也会正常走,不需要重复写入时间。3、手机连接蓝牙后,手机APP可以控制LED灯显示红绿蓝三种颜色,还可以向单片机发送LED灯亮的时间以及灯灭的时间。4、当灯亮的时候,可以通过按键调节占空比调节灯光亮度也就是PWM调光。在灯光开启之前以及灯灭之后PWM调光按键无效。第二章下位机软
2、件设计思路以及原理本设计使用了STC12C5A60S2单片机、数码管、HC-05蓝牙模块、LED彩灯、DS1302时钟模块。2.1单片机程序设计单片机部分程序设计主要包括定时器0和定时器1以及串口部分程序设计2.1.1定时器以及PWM调光部分程序设计定时器主要用到了定时器0以及定时器1,在本设计中有一项功能是PWM调光功能,由于单片机没有PWM模块,所以在本设计中我们采用定时器0来模拟实现PWM的功能,其中定时器0的初始化程序如下所示。voidTimer0Init(){word范文.TMOD=0x02;//定时器0,工作
3、模式2,8位定时模式TH0=210;//写入预置初值(取值1-255,数越大PWM频率越高)TL0=210;//写入预置值(取值1-255,数越大PWM频率越高)TR0=1;//启动定时器0PWM_T=0;}voidtimer0()interrupt1{t++;//每次定时器溢出加1if(t==250)//PWM周期100个单位{t=0;//使t=0,开始新的PWM周期P1=0x07&P1;//输出端口}if(PWM_T==t)//按照当前占空比切换输出为高电平{P1=0xf8
4、P1;}}这一部分程序主要是让单片机每个4
5、5微秒进入一次定时器0中断,其中t每隔45微秒加一次,计数到250的时候重新置零,并让P1的高五位置零,也就是亮度达到最大。PWM_T是调节占空比的,初始值是0,是通过按键控制PWM_T数值的增加与减少的。当PWM_T的数值与t相等的时候将P1的高五位置为高电平。定时器1部分程序设计如下所示voidTimer1Init(void)//timer1初始化程序{TMOD&=0x0F;//设置定时器模式TMOD
6、=0x10;//设置定时器模式TL1=0x00;//设置定时初值TH1=0xEE;//设置定时初值TF1=0;//清
7、除TF1标志TR1=1;//定时器1开始计时word范文.}voidtimer1()interrupt3{TL1=0x00;//设置定时初值TH1=0xEE;//设置定时初值keyscan();t1++;if(t1==100){write_1302(0x8e,0x00);hour=read_1302(0x85);minute=read_1302(0x83);second=read_1302(0x81);write_1302(0x8e,0x80);t1=0;}//if(t1==20)t=0;}定时器1设置每5ms进入一次中
8、断,进入中断之后先重装初值,然后进行按键扫描,本设计中只用到了独立按键,所以只需要扫描两个按键就行了。没进入一次t1就加1,当t1等于100的时候也就是500ms的时候读取一次DS1302的时,分,秒。因为DS1302的时,分,秒三个变量每隔一秒种才变化一次,所以每个500ms读取一次是比较节省资源的做法,而且可以保证数据读取无误。2.1.2串口部分程序设计voidsend_data(ucharbyte)//串口发送函数{SBUF=byte;while(!TI);word范文.TI=0;}voidUartInit(voi
9、d)//串口初始化baud=9600;{PCON&=0x7F;//波特率不倍速SCON=0x50;//8位数据,可变波特率AUXR&=0xFB;//独立波特率发生器时钟为Fosc/12,即12TBRT=0xFD;//设定独立波特率发生器重装值AUXR
10、=0x01;//串口1选择独立波特率发生器为波特率发生器AUXR
11、=0x10;//启动独立波特率发生器}由于本设计中两个定时器都用到了,所以我们无法使用定时器作为波特率发生器,本设计中使用的是STC12C5A60S2单片机,内部含有独立波特率发生器BRT,所以本设计使用独立
12、波特率发生器。设置波特率9600。本设计中串口发送程序是单片机测视的时候使用的,是为了直观的看到上位机与下位机之间通信的内容。2.2通信协议部分程序设计由于上位机与下位机之间每次通信的内容有很多字节,所以手机和单片机之间使用蓝牙通信必须按照一定的协议,这样才能成功的将数据打包,数据打包完成之后,我们才能够正确的区分数
此文档下载收益归作者所有