基于单片机的智能魔方 精品_毕业论文(设计).doc

基于单片机的智能魔方 精品_毕业论文(设计).doc

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于单片机的智能魔方 精品_毕业论文(设计).doc

单片机协会英码杯暨第五届电子设计大赛 智能魔方 -------队伍:魔鬼的步伐 项目名称 智能魔方 二.概要 “智能魔方”是一款集成多种智能家居功能与一体的智能小盒,其功能包含智能环境监测和智能安防以及智能开关三种,通过独立自制的手机app“智能魔方”,我们可以更加方便的实时实行我们的指令来控制智能小盒,从而实现以下功能①实时监测出该地的温度.湿度以及PM2.5数值,更加精准的应对环境变化以做出调整。②手机终端app通过触摸发出开关指令,从而实现灯的开关,门的开关等多数开关功能。③智能安防如夜间将智能小盒放置与合适位置,当有可疑人物出现时变发出报警信号。本系统的设计包含硬件设计以及app设计两部分。硬件部分,我们以STC89C52加强型单片机为控制核心,自行设计了一套智能家居系统。该系统分为温湿度传感器,PM2.5传感器,红外检测模块,蓝牙模块,蜂鸣器,小灯等模块的制作,通过电路设计以及算法设计,将硬件部分的功能整合至一起,同时外观设计形成该智能小盒,使系统更加多元化和智能化。App设计部分:基于Android和Java的独立设计,我们通过两个月的时间自主学习并且独立研发了app“智能魔方”,通过该app,更加智能的操控智能小盒,实现“软硬结合”,更加智能地进行环境质量的监测和智能安防的控制以及智能遥控。 三.设计原理 1.硬件设计 (1)STC单片机电路及原理介绍 中央处理器CPU采用的是STC89增强型系列单片机,具有低功耗、超低价;高速、高可靠;强抗静电、强抗干扰的特点,这有利于该项目基本功能的实现同时节省成本便于推广。 电源部分 以12V对智能魔方进行供电,并用7805芯片稳压至5V给单片机供电,1117芯片稳压至3.3V给蓝牙模块供电。 温湿度电路部分 该电路实现监测温湿度功能。 PM2.5电路部分 该电路实现监测PM2.5功能。 蓝牙电路部分 蓝牙为智能小盒实现无线数据传输。 智能安防电路部分 利用红外模块,当可疑人员经过我们的智能小盒便会立即报警,发出响声。 智能开关电路部分(以开关灯为例) 实现手机APP操控的智能开关。 程序储存电路部分 存储温湿度数据的电路。 (9)程序 ①#includereg52.h #includeintrins.h #includedefines.h void nop() { _nop_(); _nop_(); } void delay20ms() //20ms 误差 -0.000000000003us { unsigned char a,b,c; for(c=5;c0;c--) for(b=89;b0;b--) for(a=247;a0;a--); } void delay1(uint m) { uint n; for(n=0;nm;n++); } void delay(uchar n) //2n+1 us { uchar i; for(i=0;in;i++) { _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); } } void startdht() { dht=1; dht=0; delay20ms(); dht=1; delay(15); } uchar read_dht() { uchar i,temp; dat=0; while(dht); for(i=0;i8;i++) { while(!dht); delay(25); if(dht) { temp=1; while(dht); } else temp=0; dat=dat1; dat=dat|temp; } return dat; } void start() //启动I2C总线 { sda=1; nop(); scl=1; nop(); sda=0; nop(); scl=0; nop(); } void stop() //停止I2C总线 { sda=0; nop(); scl=1; nop(); sda=1; nop(); } void writebyte(uchar j) //写一个字节 { uchar i,temp; temp=j; for (i=0;i8;i++) { temp=temp

文档评论(0)

damei + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档