基于C51单片机的智能台灯的设计与实现 物联网工程专业_第1页
基于C51单片机的智能台灯的设计与实现 物联网工程专业_第2页
基于C51单片机的智能台灯的设计与实现 物联网工程专业_第3页
基于C51单片机的智能台灯的设计与实现 物联网工程专业_第4页
基于C51单片机的智能台灯的设计与实现 物联网工程专业_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

绪论1.1课题研究背景在如今高速发展的科技生活及社会中,各式各样的产品都普遍科技化、很多越来越智能化的家具及电器进入人们生活,这样的高科技发展的前提下人们的工作效率得到非常大的提高、人们的生活也被改善,智能化的生活是人类追求的理想生活,所以这也是科技社会发展的一个趋势。智能化产品在各个领域都有出色的应用,立足于学校家庭而言。一款智能台灯应是必不可少的家用电器,目前社会上存在的台灯大多是按键式。但是,社会的不断发展及人们对智能化生活的追求,使得传统台灯感受到产品更新换代的威胁。于是智能化的电子产品成为如今社会发展的主流。家庭及学校里,台灯是必不可少的照明工具,就目前社会上的台灯样式而言,立柱样式的台灯及带夹子的台灯是市场销售的主流产品,立柱及夹子的台灯的工作原理是将光线集中在一小块区域内照明,所以这一小块区域的亮度是比较亮的。便于人们学习工作。而且,台灯也越来越小巧化,便于携带,出门旅游什么的都很方便。所以得到很多人的选择。而且,有的台灯功能丰富,也深受人们的追捧。目前,灯具市场上出售的台灯种类繁多,一般的台灯均采用220V交流电源供电,日光灯管、白炽灯泡为光源,手动开关或触摸感应式开关来控制。就此而言,这类台灯同时也存在或隐含着许多危险因素,一是电压的高幅度充满危险性,是一个不稳重的影响因素,二是日光灯长时间照着,会让人眼睛感觉疲乏,给身心健康造成一些危害,三是节能问题,目前市场上的台灯太多是以日光灯为基础,而日光灯的工作的功率也是蛮大的,所以也会造成电力资源的浪费。所以,综合上面关于目前社会上的台灯的种种缺点来说,我们需要一款更加智能化,科技化,而且节约电力资源的台灯。1.2智能台灯的优势这款智能台灯分为两种模式,一为自动控制模式,二为手动控制模式。在自动模式下,台灯能判断当时环境的光照程度及与人是否在台灯周围即是否当时有人存在。若存在的人被人体红外传感器检测到时,环境的光照程度又达到某个程度的时候(可以设定与调节),台灯就会开启,且光线会跟随当时环境的光照强度的变化而变化。如果环境光没有达到这个程度,台灯不会开启。当人没有被人体红外传感器检测到时,无论环境当时有多暗,台灯也不会开。手动模式是为了使使用者可以通过wifi连接手机远程控制台灯的开关和明暗调节。智能台灯最大的优点就是省电和方便。方便不用多说了,来之则亮,去之则暗,不用动手。省电是比较重要的,现在全世界都缺少电能,2003年,美国和加拿大大面积停电。我国也是,每到夏天就有很多省市拉闸限。目前的社会上而言,电力资源是不可或缺的资源之一,而环保节能也是当今世界共同的口号,如果我们每天省下10min的电能,我们采用10W的节能灯泡,相比于社会上使用的40W灯泡,我们就可以节省大概6千J的嗲能,一个月的时间,也就是30天,我们大概能省下1万8千J的电能,一年的话,也就能省下200多万J的电能,如果说用这节省的200多万J的电能,那么全国就能节省大概7.8亿千万时的电能,这7.8亿千瓦时的电能相当节省接近4亿人民币!更加关心且重要的作用的是环保。中国有百分之七十的电力资源来自于火力发电厂,而火力发电厂少发一度电会减少1千克的二氧化碳排放。那么节省3.9亿度的电能就等于少向大气排放39万吨的二氧化碳,而二氧化碳是温室效应的最归祸首。就是因为全球向大气排入过多的二氧化碳,导致了温室效应的加剧,海平面上升,大片的土地被淹没,气候变暖,降水和土壤湿度进一步减少,气候逐渐干旱,土地沙漠化和草原退化将变的更加严重。1.3课题研究目标及本文主要内容本次课题研究主要设计一款智能台灯,可以检测是否有人靠近从而自动开关并根据环境光调节明暗,也可通关wifi连接手机,远程控制台灯的开关和明暗。本文主要内容安排如下:第一章主要对选题意义及背景进行介绍,并提出本课题的设计目标,并对全文结构进行介绍。第二章主要介绍系统整体设计方案;第三章主要对系统的硬件电路模模块设计进行分析;第四章主要对系统程序模块流程进行分析介绍;第五章对本次设计的成果模块进行设计验证,并对全文进行总结。2系统总体设计方案本设计为一个智能台灯,具有人体红外检测及环境光检测功能,同时配备wifi模块,可以连接手机远程操控台灯。总的来说要实现如下功能:本地模式:检测周围是否有人,如果有人靠近则打开台灯,人走延时灯灭;根据周围环境光强弱调节智能台灯的亮度;远程模式:手机连接wifi,远程控制智能台灯的开关;手机连接wifi,远程控制智能台灯的光线强弱。2.1总体设计方案本系统由单片机主控、红外感应模块、环境光检测、WiFi模块、LED灯驱动电路模块及电源转换电路组成。使用STC12单片机编程控制,通过修改程序可方便实现系统升级。系统的框图结构见图2.1所示:图2.1系统结构框图2.2模块选型2.2.1单片机主控单片机也习惯性称为微控制器(MicrocontrolerUnit,MCU),单片机也是一种集成的电路芯片,而且它最早在很多工业领域得到出色的应用。单片机是计算机领域的一个重要分支,它不是处理某一项特定功能的芯片,而是集成了计算机能作为控制器的最核心部分,它是一个简化的计算机系统,能处理运算量不高的情况下的控制核心,它是大规模和超大规模集成电路发展的产物。作为计算机领域的一个重要分支,单片机凭借体积小,价格便宜,操作方便,迅速占领了大多数电子产品,从使用领域上,单片机大致可以分为通用型/专用型、总线型/非总线型及工控型/家电型。在单片机发展的历史中,最具有意义的便是INTEL的8051。在此之后,单片机的发展更是迅速,出现了16位,乃至现在以ARM公司CORTEX作为内核32位单片机。字长在增加的同时,处理速度也在飞速增长,内部存储空间,寄存器数量,外设种类也在不断发展,而如今我们告别了单片机系统仅仅时裸机状态下的开发和应用,现在许多公司及企业大量使用专用的嵌入式操作系统被广泛应用在全系列的单片机上。从而使得单片机的功能被开发的更加强大及多元化。STC12C5A60S2是STC公司推出的一款功耗较低、抗干扰性好、性能强的COMS8bit微控制器。它是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制,强干扰场合。。STC12C5A60S2使用了传统的MCS-51内核,但具备了一般传统8051单片机不具有的功能,速度的提升、存储空间的增加和更多的寄存器数量。在单个芯片上,集成了一个8bit的CPU和可编程的FLASH,正是因为这个原因,使得STC12C5A60S2在嵌入式控制系统领域中占有一席之地。具有以下标准功能:8KByte的Flash,12802ByteRAM,44位准双向I/O口,并且集成了看门狗定时器,以及内置1KBE2PROM,MAX810复位电路,外部掉电检测电路,内部R/C振荡器,4个16位定时器/计数器,3个时钟输出口,7个外部中断,两路PWM(脉宽调制输出)/PCA(可编程计数器阵列),8路10位精度ADC,工作频率在0~35MHz(相当于普通8051的0~420MHz),无需专用编程器和仿真器便可实现ISP和IAP,通用全双工异步串行口,由于STC12系列是高速的8051,可再用定时器或者PCA软件实现多串口。STC12C5A60S2有40个引脚,如图2.2所示,引脚说明如下:图2.2STC12C5A60S2芯片VCC:供电电压;GND:接地;P0口:P0口为一个8位漏级开路双向I/O口,每个管脚可吸收8TTL门电流。当P0口的管脚写“1”时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部电位必须被拉高;P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入“1”后,电位被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收;P1口具有第二功能,如表2.1。表2.1P1第二功能表端口引脚第二功能P1.0/ADC0/CLKOUT2ADC输入通道0;独立波特率发生器的时钟输出P1.1/ADC1ADC输入通道1P1.2/ADC2/ECI/RXD2ADC输入通道2;PCA计数器的外部脉冲输入脚;第二串口数据接收端P1.3/ADC3/CCP0/TXD2ADC输入通道3;外部信号捕获、高速脉冲输出及PWM输出;第二串口数据发送端P1.4/ADC4/CCP1/SSADC输入通道4;外部信号捕获、高速脉冲输出及PWM输出;SPI同步串行接口的从机选择信号P1.5/ADC5/MOSIADC输入通道4;SPI同步串行接口的主出从入P1.6/ADC6/MISOADC输入通道5;SPI同步串行接口的主入从出P1.7/ADC7/SCLKADC输入通道5;SPI同步串行接口的时钟信号P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚电位被内部上拉电阻拉高,且作为输入。作为输入时,P2口的管脚电位被外部拉低,将输出电流,这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉的优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号;P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入时,由于外部下拉为低电平,P3口将输出电流(ILL),也是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口:P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外部中断0)P3.3INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)同时P3口同时为闪烁编程和编程校验接收一些控制信号;RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高平时间;ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令时ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效;PSEN:外部程序存储器的选通信号。在由外部程序存储器取址期间,每个机器周期PSEN两次有效。但在访问内部部数据存储器时,这两次有效的PSEN信号将不出现;EA/VPP:当EA保持低电平时,访问外部ROM;注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,访问内部ROM。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP);XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入;XTAL2:来自反向振荡器的输出;2.2.2ESP8266WIFI模块ESP8266芯片是一款串口转无线模芯片,内部自带固件,用户操作简单,无需编写时序信号等。ESP8266特性:802.11b/g/n内置低功耗32位CPU:可以兼作应用处理器内置10bit高精度ADC内置TCP/IP协议栈内置TR开关、balun、LNA、功率放大器和匹配网络内置PLL、稳压器和电源管理组件支持天线分集STBC、1x1MIMO、2x1MIMOMPDU、A-MSDU的聚合和0.4s的保护间隔WiFi@2.4GHz,支持WPA/WPA2安全模式支持STA/AP/STA+AP工作模式支持SmartConfig功能(包括Android和iOS设备)SDIO2.0、(H)SPI、UART、I2C、I2S、IRRemoteControl、PWM、GPIO深度睡眠保持电流为10uA,关断电流小于5uA2ms之内唤醒、连接并传递数据包802.11b模式下+20dBm的输出功率待机状态消耗功率小于1.0mW(DTIM3)工作温度范围:-40°C-125°C通过FCC,CE,TELEC,WiFiAlliance及SRRC认证2.2.3人体红外感应模块HC-SR501HC-SR501是基于红外线技术的自动控制模块,采用德国原装进口LHI778探头设计,灵敏度高,可靠性强,超低电压工作模式,广泛应用于各类自动感应电器设备,技术参数如下:工作电压:DC5V~20V;静态功耗:65mA;电平输出:高3.3V,低0V;延时时间可调:0.3S~10Min;触发方式:L不可重复,H可重复,默认值为H;感应范围:小于120°锥角,7米以内;其中,不可重复触发方式:即感应输出高电平后,延时时间一结束,输出将自动从高电平变为低电平。可重复触发方式:即感应输出高电平后,在延时时间段内,如果有人体在其感应范围内活动,其输出将一直保持高电平,直到人离开后才延时将高电平变为低电平(感应模块检测到人体的每一次活动后会自动顺延一个延时时间段,并且以最后一次活动的时间为延时时间的起始点)。本次设计采用可重复触发方式。2.2.4光敏电阻传感器模块该模块可以检测周围环境的亮度和光强,灵敏度可调,工作电压3.3V-5V,输出形式为模拟量电压输出和数字开关量输出(0和1),其实物图如2.3所示。图2.3模块实物图2.3软件开发平台图2.4KEIL5界面图本设计选用KEIL5进行编程。KeilC51开发系统兼容51系列单片机依靠C语言编程的开发环境,C语言在结构性、可维护性可读性和功能上与其他汇编语言相比具有更多的优势,更方便操作掌握,提供了一个完美的集成开发环境。将宏汇编、连接器、C编译器等高效的结合成一个整体。Keil软件可在WIN98、NT、WIN2000、WINXP、WIN7等操作系统上运行。由于其有强大的仿真功能,因此我选择Keil软件。KeilC51编程环境中集成了大量的库函数支持库函数编程而且内置了许多很常用的工具箱,这为我们的开发过程提供了极大的方便。在编译过程中我们可以查看寄存器,查看I/O端口的状态等等。如果编译出错我们还可以在窗口中及时查找报错原因。KeilC51编程环境中标准配备的仿真器使用的晶振频率是11.0592MHz。但是在实际项目中我们可以依据实际情况选用适当晶振频率的晶振。为了保证实现准确分频,本设计选用11.0592MHz的晶振。KeilC51编程环境中的工具箱的完整结构如下:uVision和Ishell分别是C51forWindows与forDos集成的开发环境,虽然DOS在51开发中不经常用到但是KeilC51编程环境仍然保留了这部分。我们可以利用这些工具箱实现编译、仿真调试等所有软件开发所必须的步骤。我们可以进行源代码级的调试。在对目标文件进行调试时我们不但可由仿真器直接调试,也能够直接将其写入程序存储器中。3硬件电路实现3.1单片机最小系统3.1.1复位电路考虑到设计要求,本设计中的复位电路集手动复位及上电自动复位于一体,通过按键S1实现系统的手动复位。1)上电自动复位通过外部复位电路的电容C3的充电来实现,只要电源VCC的上升时间不超过1ms,就可以实现自动上电复位。2)按键手动复位是通过使复位端经电阻与VCC接通而实现的。图3.1单片机最小系统3.1.2时钟振荡电路STC12C5A60S2单片机内部集成RC振荡器作为时钟源,如果不外接晶体振荡器,可以直接使用内部RC振荡器,但是内部RC振荡器的精度不高,考虑系统运行速度,采用11.0592MHZ的外接石英晶振,并使用两个小电容作为微调电容,具体设计见图3.1。3.2WIFI模块及电源电路本次设计的wifi模块与MCU连接电路如图3.2所示。图3.2wifi与MCU连接原理如图3.2,wifi模块的供电电源为3.3V,而单片机及其他模块的供电电源为5V,为此需要为WIFI模块增加电源转换电路。本次设计采用ASM1117-3.3模块,这是一种输出电压为3.3V的正向低压降稳压器,接线图如图3.3所示。图3.35V转3.3V电源3.3HC-SR501人体红外感应电路如第二章所说,HC-SR501模块输出为数字量,可以很方便的搭配STC12单片机IO口进行使用,连线见图3.4。图3.4HC-SR501与MCU连线图3.4环境光检测模块图3.5光敏电阻接线图本次设计因为需要根据环境光强度调节台灯亮度,因此采用该模块的模拟量输出,同时接STC12芯片的P1.1接口,自带ADC转换功能。3.5LED驱动电路LED驱动电路如图3.6所示,设计思路是用单片机IO口控制PNP型三极管通断,从而控制LED的亮灭,同时利用的是单片机的PWM输出口,通过调节占空比从而可以控制LED的亮度。图3.6LED驱动电路

4程序设计4.1主程序流程图根据本次研究课题的任务目标及功能要求,主程序流程图如图4.1所示:图4.1程序主流程图首先开机后根据硬件拨片开关位置判断是手机远程操作模式还是本地模式。如果是本地模式则人体红外感应模块工作,如果检测到人来,则打开台灯并时刻调节光线,如果是远程操作模式,则通过手机控制台灯工作状态。4.2本地操作模式本地操作模式的主程序如下所示: if(mode==1)//本地模式 { wifi_flag=0; if(infrared==1)//有人进入 { if(pwm_flag==0) { pwm_open(); pwm_flag=1; } light_value=(adc10_start(1)*5)/1024; if(light_value<1.5){duty=30;} elseif(light_value<3){duty=100;} elseif(light_value<4){duty=180;} else{duty=240;} set_pwm_duty(duty); } if(infrared==0) { pwm_close(); pwm_flag=0; } }主要编程思想是:首先判断是否有人靠近,如果有人靠近则开启PWM输出,同时进行一次AD转换,将当前光照强度所对应的电压值传入单片机。将电压值分为四档,根据电压值选择相应的占空比设值,最后调用占空比设值函数,输出相应的PWM波形控制灯光亮度。4.3远程操作模式远程操作模式因为需要进行通信,所以首先需要制定相应的通信协议,本次设计采用机智云提供的通信协议,主要的通信时序为:首先wifi模块向MCU询问当前设备信息,MCU进行应答握手,握手成功后双方可以开始控制通信。因为需要实现灯的亮灭以及亮度,可见需要控制的量为两个,一个为布尔类型,一个为数值类型,两个都是wifi可写变量。控制流程为:wifi主动向MCU发送控制命令,MCU回复收到命令,同时主动上报一次设备的最新状态。 case0x03://WiFi模组与设备交互 if(usartbuf[3]=0x08&&usartbuf[8]==0x01)//WIFI模组=>MCU { Control_Mcu(); mcu_send_10[5]=sn; for(i=2;i<8;i++) { checksum=checksum+mcu_send_10[i]; } checksum=checksum%256; mcu_send_10[8]=checksum; Usart_SendArrang(mcu_send_10,9);//mcu回复 mcu_send_9[5]=sn; mcu_send_9[10]=duty1; for(i=2;i<11;i++) { checksum=checksum+mcu_send_9[i]; } checksum=checksum%256; mcu_send_9[11]=checksum; Usart_SendArrang(mcu_send_9,12); //mcu主动上报设备状态 break; }4.4PWM输出脉冲宽度调制(PWM)是英文“PulseWidthModulation”的缩写,简称脉宽调制。它是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用于测量,通信,功率控制与变换等许多领域。脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。使用STC12单片机产生PWM波形,主要是配置相关的寄存器,设置好占空比,从而实现需要的PWM波形。源码如下:voi

温馨提示

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

评论

0/150

提交评论