基于51单片智能台灯的设计与制作_第1页
基于51单片智能台灯的设计与制作_第2页
基于51单片智能台灯的设计与制作_第3页
基于51单片智能台灯的设计与制作_第4页
基于51单片智能台灯的设计与制作_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

湖南商务职业技术学院毕业设计

目录

1产品研究意义...........................................................................................................5

2产品功能分析...........................................................................................................5

3设计方案遴选...........................................................................................................5

3.1系统设计方案.................................................................................................5

3.2单片机的选择.................................................................................................6

3.3系统框图的设计.............................................................................................6

4产品硬件设计...........................................................................................................6

4.1ST89C52的介绍以及最小系统电路..............................................................6

4.2LED照明电路设计..........................................................................................7

4.3光照强度采集电路.........................................................................................8

4.4HC-SR501人体红外检测电路........................................................................8

4.5按键输入模块.................................................................................................9

5产品软件设计.........................................................................................................10

5.1主程序流程图...............................................................................................10

5.2模数转换程序流程图设计...........................................................................11

5.3PWM调光程序流程图设计..........................................................................12

6产品使用说明书.....................................................................................................13

6.1产品配置图...................................................................................................13

6.2产品调试.......................................................................................................14

6.3产品的功能介绍以及使用说明...................................................................14

附录.............................................................................................................................16

参考文献.....................................................................................................................26

4

湖南商务职业技术学院毕业设计

基于51单片机智能台灯的设计与制作

1产品研究意义

伴随着全球气候变暖跟能源危机日益严重的问题,节能环保已经成为了全

球普遍关注的问题,为了提高我国照明用电比例的提高,LED灯出现了。它是

继高强度放电灯、白炽灯、荧光灯之后的新光源,LED灯的固态照明是典型的

绿色照明方式,跟以往的光源相比,LED具有环保、节能、体积小、寿命长、

安全可靠等优点。

现在市场上采用荧光灯、白炽灯、卤素灯作为光源的台灯很多都存在着能

源消耗高、低效率、调光难等缺点。部分台灯产品的功能很单一,缺少亮度调

节、自动调节、人体感应等功能,在现代家庭中无法适应。而智能台灯可以在

黑暗中自动开关灯的,在房间没人的情况下可以自动熄灭,可以根据外界环境

的亮度强度自动调节灯光强度,在做到最大化的节能的同时还可以给使用者带

来便捷。

2产品功能分析

系统以STC89C52单片机为核心和电阻电容晶振等器件,构成单片机最小

系统,其它模块围绕单片机最小系统工作,其它模块分别为LED照明电路、光

照强度采集电路、HC-SR501人体红外检测电路、按键输入模块。光照强度采集

电路是用来检测外界环境亮度强度的,用来自动控制LED等的亮度;LED照明

电路提供照明灯光;HC-SR501人体红外检测电路的作用是检测周围是否有人存

在,没人会自动熄灭;按键输入模块的作用就是控制台灯模式的选择和手动调

节灯光的大小。

3设计方案遴选

3.1系统设计方案

方案一:采用直流电LED的调光技术,如果LED的亮度需要改变,相对容易实

现,LED的亮度是要靠它的决定的的亮度越大,在一个特定的它的亮度就越亮,反

之它的亮度就越小。

方案二:采用脉宽调制(PWM)来调光,LED是一个发光二极管,它可以快

速实现开关。这一特点是其他的发光器件所无法比拟的。PWM调光具有调光精

确、可以和任何数字控制技术结合起来进行控制,PWM调光可以通过软件的简

5

湖南商务职业技术学院毕业设计

单实现,使用的范围很广阔。所以这里我们选择方案二。

3.2单片机的选择

采用STC89C52作为系统的控制器。STC89C52单片机具有可靠性强、性价

比高、电压低、功耗低等优点,他的算术运算功能强,软件编程灵活,自由度

大,可用软件编程实现各种逻辑功能,带有定时器、计数器,可以用来定时和

计数,并且其功耗低,体积小,计数成熟和成本低等优点,所以我选择的是

它。

3.3系统框图的设计

3.1系统设计框图

4产品硬件设计

4.1ST89C52的介绍以及最小系统电路

1、ST89C52的介绍

STC89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含

2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写

口线。STC89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产

品的需求。

2、ST89C52最小系统电路

由ST89C52单片机、晶振电路部分、复位电路部分、电源电路等四个部分

组成。

晶振电路包括2个30pF的电容C2和C3,以及12M的晶振X1。电容的作

用在这里是起振作用,帮助晶振更容易的起振,取值范围是15-33pF。晶振的

6

湖南商务职业技术学院毕业设计

取值也可以是24M,晶振的取值越高,单片机的执行速度越快。在进行电路设

计的时候,晶振部分越靠近单片机越好。

单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下

重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行

中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开

始执行。复位电路由10uF的极性电容C1和10K的电阻R4构成。利用电容电

压不能突变的性质,可以知道,当系统一上电,RESET脚将会出现高电平,并且

这个高电平持续的时间由电路的RC值来决定。典型的51单片机当RESET脚的

高电平持续两个机器周期以上就将复位,所以适当组合RC的取值就可以保证

可靠的复位。

最后一个是电源部分,采用5V的USB直接供电,可采用手机充电器、电

脑USB口、移动电源等设备进行供电。

ST89C52最小系统电路如下图4.1所示。

U1

VCC

LED140

P10VCC

KEY1239

P11P00

KEY2338

P12P01

KEY3437

P13P02

VCCLight536

P14P03

635

P15P04

734

C1P16P05

833

10uFP17P06

932

RESETP07

1031

P30/RXDEAVCC

R41130

P31/TXDALE

10K1229

P32/INT0PSEN

1328

P33/INT1P27

1427

P34/T0P26

1526

P35/T1P25

GND1625

P36/WRP24

1724CS

P37/RDP23

1823HC

X1XTAL2P22

121922DAT

XTAL1P21

2021CLK

GNDP20

12M

C2C3

30pF30pF

GND

GND

图4.1ST89C52最小系统电路

4.2LED照明电路设计

LED照明电路设计如下图4.2所示,采用由PNP三极管作为照明电路的驱

动控制,三极管型号为S8550,基极串联一个限流电阻后接入单片机IO口,发射

极接电源,集电极并联USB小灯后接入GND。

只要单片机该IO口输出一个低电平信号,即可控制三极管导通,继而点

7

湖南商务职业技术学院毕业设计

亮LED灯。在实际设计中,采用通过单片机输出PWM信号来控制灯的亮度。

VCC

LightQ1

8550

D2

+USB-Light

-

GND

图4.2LED照明电路

4.3光照强度采集电路

照强度采集电路如下图4.3所示,这个板块的作用是采集灯光,检测外界

环境亮度的强度,然后再来控制台灯的亮度大小,电路由一个光敏电阻来对外

界自然光进行采集,由ADC0832将光照模拟信号转化为数字信号传给单片机进

行处理,进而达到控制效果。

VCC

VCC

R1

RG

U3

CS18

CSVCC

27CLK

CH0CLK

36DAT

CH1D0

45DAT

GNDDI

R6

10KADC0832

GND

GND

图4.3照强度采集电路

4.4HC-SR501人体红外检测电路

HC-SR501人体红外检测电路及实物如下图4.4所示,模块引出3个引脚,

其中第1脚和第3脚分别连接VCC和GND给模块,第2脚接单片机的IO口P22,

8

湖南商务职业技术学院毕业设计

当有人出现在模块的检测范围内时,该引脚输出高电平,没人输出低电平。

U2HC-SR501

HC-SR501

TD

C

CUN

VOG

123

VCCGND

HC

图4.4人体红外检测电路及实物

4.5按键输入模块

按键电路如下图4.5所示,本设计中按键有3个按键,分别是模式切换按

键、亮度减少按键和亮度增加按键。

K1

KEY1

K2

KEY2

K3

KEY3

GND

图4.5按键电路

9

湖南商务职业技术学院毕业设计

5产品软件设计

5.1主程序流程图

图5.1主程序流程图

10

湖南商务职业技术学院毕业设计

5.2模数转换程序流程图设计

在读取数据之前,单片机会发送信号给adc芯片,因为adc0832有两个通

道,所以需要去选择是那个通道然后进行转化。

图5.2模数转换流程图

11

湖南商务职业技术学院毕业设计

5.3PWM调光程序流程图设计

原理是确定一个固定的时间周期,在合适的周期下台灯才不会出现闪烁的现

象。然后在这个周期里面确定不同的高低电平的比例,从而调节台灯的不同亮

度。

图5.3PWM调光程序流程图

12

湖南商务职业技术学院毕业设计

6产品使用说明书

6.1产品配置图

图6.1作品实物图

13

湖南商务职业技术学院毕业设计

6.2产品调试

检查产品的焊接情况,查看是否焊接好所有元器件,检查有没有焊接错误的

地方,然后用万用表检查是否出现短路、短路的现象,然后通电查看是否一切

正常。

检查编写好的程序,没有问题之后烧录单片机。

6.3产品的功能介绍以及使用说明

1、接通电源打开开关,台灯亮起,默认模式是自动模式,光照采集系统根据外

界灯光强度自动调节台灯亮度,人体红外检测模块检测周围是否有人,没人1

分钟会自动熄灭。

2、自动模式下,光照采集模块根据外界环境亮度强度调节台灯亮度,外界环境

越亮台灯越暗(用打火机的光照模拟外界环境亮度强),相反台灯亮度就越高

(用手遮住光敏电阻模拟外界光照环境弱)。

14

湖南商务职业技术学院毕业设计

3、自动模式下,人体红外检测系统检测周围是否有人,没有检测到自动熄灭

(用盒子盖住人体红外检测模拟无人情况),检测到就会自动打开。

4、按下k1,台灯转化为自动模式,不再受外界环境影响,人体红外检测系统不

再检测,通过k2、k3调节台灯亮度,k2减小,k3增强。

15

湖南商务职业技术学院毕业设计

附录

附录1元器件清单

16

湖南商务职业技术学院毕业设计

附录2电路原理图

17

湖南商务职业技术学院毕业设计

附录3PCB设计图

18

湖南商务职业技术学院毕业设计

附录4作品实物照

19

湖南商务职业技术学院毕业设计

附录5软件程序代码

#include<reg52.h>

#include<intrins.h>

#defineucharunsignedchar//以后unsignedchar就可以用uchar代替

#defineuintunsignedint//以后unsignedint就可以用uint代替

sbitLED=P1^0;//模式指示灯,亮是自动模式,灭是手动模式

sbitLamp=P1^4;//台灯控制引脚

sbitKey1=P1^1;//按键1,模式切换按键

sbitKey2=P1^2;//按键2,亮度减少按键

sbitKey3=P1^3;//按键3,亮度增加按键

sbitADC_CS=P2^3;//ADC0832的CS引脚

sbitADC_CLK=P2^0;//ADC0832的CLK引脚

sbitADC_DAT=P2^1;//ADC0832的DI/DO引脚

sbitModule=P2^2;//人体红外检测模块

uchargCount=0;//全局计数变量

uchargIndex;//亮度变量,0是最暗,9是最亮,一共10档

uintgTime=0;//计时变量,用于计时多久没检测到有人

/*********************************************************/

//毫秒级的延时函数,time是要延时的毫秒数

/*********************************************************/

voidDelayMs(uinttime)

{

uinti,j;

for(i=0;i<time;i++)

for(j=0;j<112;j++);

}

/*********************************************************/

//ADC0832的时钟脉冲

/*********************************************************/

voidWavePlus()

{

_nop_();

ADC_CLK=1;

_nop_();

ADC_CLK=0;

}

/*********************************************************/

20

湖南商务职业技术学院毕业设计

//获取指定通道的A/D转换结果

/*********************************************************/

ucharGet_ADC0832()

{

uchari;

uchardat1=0;

uchardat2=0;

ADC_CLK=0;//电平初始化

ADC_DAT=1;

_nop_();

ADC_CS=0;

WavePlus();//起始信号

ADC_DAT=1;

WavePlus();//通道选择的第一位

ADC_DAT=0;

WavePlus();//通道选择的第二位

ADC_DAT=1;

for(i=0;i<8;i++)//第一次读取

{

dat1<<=1;

WavePlus();

if(ADC_DAT)

dat1=dat1|0x01;

else

dat1=dat1|0x00;

}

for(i=0;i<8;i++)//第二次读取

{

dat2>>=1;

if(ADC_DAT)

dat2=dat2|0x80;

else

dat2=dat2|0x00;

WavePlus();

}

_nop_();//结束此次传输

ADC_DAT=1;

ADC_CLK=1;

ADC_CS=1;

if(dat1==dat2)//返回采集结果

returndat1;

else

21

湖南商务职业技术学院毕业设计

return0;

}

/*********************************************************/

//定时器初始化

/*********************************************************/

voidTimerInit()

{

TMOD=0x01;//使用定时器0,工作方式1

TH0=252;//给定时器0的TH0装初值

TL0=24;//给定时器0的TL0装初值

ET0=1;//定时器0中断使能

EA=1;//打开总中断

TR0=1;//启动定时器0

}

/*********************************************************/

//手动控制

/*********************************************************/

voidManualControl()

{

//亮度减少

if(Key2==0)//如果按键2被按下去

{

if(gIndex>0)//只要当前亮度不为最低才能减少亮度

{

gIndex--;//亮度降低一档

DelayMs(300);//延时0.3秒

}

}

//亮度增加

if(Key3==0)//如果按键3被按下去

{

if(gIndex<9)//只要当前亮度不为最高才能增加亮度

{

gIndex++;//亮度增加一档

DelayMs(300);//延时0.3秒

}

}

}

/*********************************************************/

//自动控制

22

湖南商务职业技术学院毕业设计

/*********************************************************/

voidAutoControl(ucharnum)

{

if(num<59)//最亮

gIndex=9;

elseif((num>65)&&(num<81))//第二亮

gIndex=8;

elseif((num>87)&&(num<103))//第三亮

gIndex=7;

elseif((num>109)&&(num<125))

gIndex=6;

elseif((num>131)&&(num<147))

gIndex=5;

elseif((num>153)&&(num<169))

gIndex=4;

elseif((num>175)&&(num<191))

gIndex=3;

elseif((num>197)&&(num<213))

gIndex=2;

elseif((num>219)&&(num<235))

gIndex=1;

elseif(num>241)//最暗

gIndex=0;

}

/*********************************************************/

//主函数

/*********************************************************/

voidmain()

{

ucharret;

TimerInit();//定时器初始化

LED=0;//指示灯点亮(自动模式指示灯)

ret=Get_ADC0832();//获取AD采集结果(环境光照强度)

AutoControl(ret);//上电先进行一次自动亮度控制

AutoControl(ret+7);

while(1)

{

/*模式切换控制*/

if(Key1==0)//如果按键1被按下去

{

23

湖南商务职业技术学院毕业设计

LED=~LED;//切换LED灯状态

if(LED==0)//如果切换后是自动模式的话

{

ret=Get_ADC0832();//获取AD采集结果(环境光照强度)

AutoControl(ret);//进行一次自动亮度调整

AutoControl(ret+7);

}

DelayMs(10);//延时消除按键按下的抖动

while(!Key1);//等待按键释放

DelayMs(10);//延时消除按键松开的抖动

}

/*亮度控制*/

if(LED==1)//如果LED是灭的

{

ManualControl();//则进行手动控制

}

else//如果LED是亮的

{

if(gTime<60000)//如果最近60秒内检测到有人

{

ret=Get_ADC0832();//获取AD采集结果(环境光照强度)

AutoControl(ret);//进行自动控制

DelayMs(200);

}

}

/*检测是否有人*/

if(Module==1)

{

gTime=0;//检测到有人,则把60秒计时清零

}

if(gTime>60000)//如果gTime的值超过了60000

{

gTime=60000;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论