环境探测与控制系统设计实验报告_第1页
环境探测与控制系统设计实验报告_第2页
环境探测与控制系统设计实验报告_第3页
环境探测与控制系统设计实验报告_第4页
环境探测与控制系统设计实验报告_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、环境信息探测与控制系统黑龙江大学2012年电子设计大赛O 702012年6月14日目录1摘要.3._.2关键词33绪论34传感器模块功能介绍及程序设计3iblatanntannmba4.1 DS1302H寸钟芯片44.1.1 DS1302简介44.1.2 DS1302各引脚的功能44.1.3 DS1302驱动程序54.2 DHT1偈湿度模块84.2.1 DHT11温湿度模块简介84.2.2 DHT11温湿度模块各引脚的功能94.2.3 DHT11温湿度模块驱动程序94.3 BH1750光感模块194.3.1 BH1750光感模块简介194.3.2 BH1750#点194.4 LCD12864液

2、晶屏20.4.4.1 LCD12864简介214.4.2 LCD12864基本特性214.4.3 LCD12864引脚说明225设计总结23附录一系统流程图._24_附录二系统电路图._._25.,附录三原理方框图与实物图.26._.,.1摘要本系统是以ATmega16L单片机为主控制器,通过bh1750光感模块,dht11温湿度模块,ds1302时钟芯片,按键将光强,温度,湿度,时间这些模拟量转化为数字量,然后传入单片机中,再通过单片机将传感器由入的数据进行处理,然后再lcd12864液晶屏上显示由来,通过,SYN6288语音模块进行语音播报。本系统可以对周围环境进行检查和控制,可实现人机互

3、动。2关键词:单片机,传感器,温度,湿度,光感强度。3绪论:环境信息探测与控制系统是集时间,周围温度、湿度、光感强度于一体的控制系统,节省了大量资源,将过去需要多个系统测量的数据集合为一体。本文重点介绍了该系统的设计思路,模块原理及功能,以及模块的使用方法及程序设计。本系统控制灵活、可靠性高、系统维护方便是一款智能化程度更高,性能更完美的环境信息探测控制系统。4. 传感器模块功能介绍及程序设计4.1 DS1302时钟芯片4.1.1 DS1302简介:DS1302是美国DALLA宓司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM采用SPI三线接口与CPU8行同步通信,并可采用突发

4、方式一次传送多个字节的时钟信号和RAhM据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.55.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。DS1302的外部引脚分配如图1所示及内部结构如图2所示。DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。DS1302的外部引脚分配4.1.2 DS1302各引脚的功能:Vcc1:主电源;Vcc2:备份电源。当Vcc2>Vcc1+0.2V寸,

5、由Vcc2向DS1302供电,当Vcc2VVcc1时,由Vcc1向DS130秋电SCLK串行时钟,输入,控制数据的输入与输出;I/O:三线接口时的双向数据线;CE输入信号,在读、写数据期间,必须为高。该引脚有两个功能:第一,CEF始控制字访问移位寄存器的控制逻辑;其次,C求供结束单字节或多字节数据传输的方法。丁苗1g卧口fl'lDDS1302的内部结构0x80 0x82 0x840x810x83 0x85 0x8E4.1.3 DS1302驱动程序:寄存器宏定义#deii|neWR1TE_SECOWB科(fcfineWRITEADNUTE#defineWRITEJIOLTR/define

6、READ_SECONDdefineREAD_MINLJTEREAD-HOUR#defilieWRITEPROTECT位寻址寄存器定义sbitACC7=ACCA7;管脚定义shitSCLK=P3A57脚sbitDIO=P3A6;6脚sbitCE=P3A7;5脚DS1302时钟信号"DS1302数据信号DS1302片选地址、数据发送子程序voidWritel302(unsignedcharaddndat)unsignedchari,temp;/CE引脚为低,数据传送CE=0;中止有效节SCLK=0;CE=1;清零时钟总线CE引脚为高,逻辑控制发送地址for(i=8;i>0;i)循环

7、8次移位(SCLK=0;temp=addr;DIO=(bit)(temp&0x01);addr»=1;SCLK=1;)每次传输低字右移一位发送数据for(i=8;i>0;i-)(SCLK=0;temp=dat;DIO=(bit)(temp&0x01);dat»=1;SCLK=1;)CE=0;数据读取子程序unsiguedcharReadl302(unsignedcharaddr)(unsignedcharLteinp,datl.dat2:CE=O;SCLK=O;:爰址for(i=8;i>0;i-)(SCLK=0;temp=addr;DIO=(bi

8、t)(teinp&0x01);节addr»=1;移一位SCLK=1;循环8次移位每次传输低字右读取数据for(i=8;i>0;i)ACC7-DIO;SCLK=1;ACCa-1;SCLK=0;CE=0;datl=ACC;dat2=(iatl/16;数据进制转换datl=datl%16;进制datl=<latl+dat2*10;return(datl);十六进制转十初始化DS1302voidInitial(void)(Writel302(WRITEPROTECT,0X00);禁止写保秒位初始Writel3O2(WRITESECOND,0x56);Writel3O2(W

9、RITEMINUTE,0x34);分钟初始化Writel3O2(WRITEHOCR,Oxl2);II小时初始化Wiitel3O2(WRITEPROTECT*宣80);/允许写保护4.2 DHT11温湿度模块4.2.1 DHT11温湿度模块简介DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这

10、些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。aiibal&scnVDDVDDI5KPinMCU-DHT114PmGND典型应用电路4.2.2 DHT11温湿度模块各引脚的功能:1:接VDD供电3-5.5VDC2:接IO口,串行数据,单总线。3:NC空脚,悬空。4:接GND接地或电源负极。4.2.3DHT11温湿度模块驱动程序#include<reg51.h>#include<intrins.h>/* defined for unsigned无符号8位整型

11、变量*/* defined for signed有符号8位整型变量*/* defined for unsigned无符号16位整型变量*/* defined for signed有符号16位整型变量*/typedefunsignedcharU8;8-bitsintegervariabletypedefsignedcharS8;8-bitsintegervariabletypedefunsignedintU16;16-bitsintegervariabletypedefsignedintS16;16-bitsintegervariabletypedefunsignedlongU32;/*defi

12、nedforunsigned32-bitsintegervariable无符号32位整型变量*/typedefsignedlongS32;/*definedforsigned32-bitsintegervariable有符号32位整型变量*/typedeffloatF32;/*singleprecisionfloatingpointvariable(32bits)单精度浮点数(32位长度)*/typedefdoubleF64;/*doubleprecisionfloatingpointvariable(64bits)双精度浮点数(64位长度)*/#defineucharunsignedchar

13、#defineuintunsignedint#defineData_0_time4sbitP2_0=P2八。;U8U8FLAG,k;U8U8count,U8temp;U8U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;U8U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;U8 U8comdata;U8outdata5;/定义发送的字节数U8indata5;U8count,count_r=0;U8str5=&quo

14、t;RS232"U16U16temp1,U16temp2;SendData(U8*a)outdata0=a0;outdata1=a1;outdata2=a2;outdata3=a3;outdata4=a4;count=1;SBUF=outdata0;voidDelay(U16j)U8i;for(;j>0;j-)for(i=0;i<27;i+);voidDelay_10us(void)U8i;voidCOM(void)U8i;for(i=0;i<8;i+)U8FLAG=2;while(!P2_0)&&U8FLAG+);Delay_10us();Dela

15、y_10us();Delay_10us();U8temp=0;if(P2_0)U8temp=1;U8FLAG=2;while(P2_0)&&U8FLAG+);/超时则跳出for循环if(U8FLAG=1)break;/判断数据位是0还是1/如果高电平高过预定0高电平值则数据位为1U8comdata<<=1;U8comdata|=U8temp;/0/rof/湿度读取子程序/以下变量均为全局变量/温度高8位=U8T_data_H/温度低8位=U8T_data_L/湿度高8位=U8RH_data_H/湿度低8位=U8RH_data_L/校验8位=U8checkdata/调

16、用相关子程序如下/Delay();,Delay_10us();,COM();/void RH(void)/主机拉低18msP2_0=0;Delay(180);P2_0=1;/总线由上拉电阻拉高主机延时20usDelay_10us();Delay_10us();Delay_10us();Delay_10us();/主机设为输入判断从机响应信号P2_0=1;/判断从机是否有低电平响应信号如不响应则跳出,响应则向下运行if(!P2_0)/T!U8FLAG=2;/判断从机是否发出80us的低电平响应信号是否结束while(!P2_0)&&U8FLAG+);U8FLAG=2;/判断从机是

17、否发出80us的高电平,如发出则进入数据接收状态while(P2_0)&&U8FLAG+);/数据接收状态COM();U8RH_data_H_temp=U8comdata;COM();U8RH_data_L_temp=U8comdata;COM();U8T_data_H_temp=U8comdata;COM();U8T_data_L_temp=U8comdata;COM();U8checkdata_temp=U8comdata;P2_0=1;/数据校验U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_da

18、ta_L_temp);if(U8temp=U8checkdata_temp)U8RH_data_H=U8RH_data_H_temp;U8RH_data_L=U8RH_data_L_temp;U8T_data_H=U8T_data_H_temp;U8T_data_L=U8T_data_L_temp;U8checkdata=U8checkdata_temp;/fi/fi/串口发/main()功能描述:AT89C5111.0592MHz/送温湿度数据,波特率9600/voidmain()U8i,j;/ucharstr6="RS232"/*系统初始化*/TMOD=0x20;/定时

19、器T1使用工作方式2TH1=253;/设置初值TL1=253;TR1=1;/开始计时ES = 1;EA = 1;/TI = 0;RI = 0;SendData(str) ; /Delay(1); /SCON=0x50;/工作方式1,波特率9600bps,允许接收打开所以中断发送到串口延时100US(12M晶振)while(1)/调用温湿度读取子程序RH();/串口显示程序/str0=U8RH_data_H;str1=U8RH_data_L;str2=U8T_data_H;str3=U8T_data_L;str4=U8checkdata;SendData(str);/发送到串口/读取模块数据周期

20、不易小于2SDelay(20000);/elihw/mainvoidRSINTR()interrupt4using2U8InPut3;if(TI=1)/发送中断TI=0;if(count!=5)/发送完5位数据SBUF=outdatacount;count+;if(RI=1)/接收中断InPut3=SBUF;indatacount_r=InPut3;count_r+;RI=0;if(count_r=5)/接收完4位数据/数据接收完毕处理。count_r=0;str0=indata0;str1=indata1;str2=indata2;str3=indata3;str4=indata4;P0=0

21、;4.3BH1750光感模块4.3.1 BH1750光感模块简介BH1750FVI是一种用于两线式串行总线接口的数字型光强度传感器集成电路。这种集成电路可以根据收集的光线强度数据来调整液晶或者键盘背景灯的亮度。利用它的高分辨率可以探测较大范围的光强度变化。4.3.2 BH1750特点1 .支持I2CBUS接口(f/sModeSupport)。2 .接近视觉灵敏度的光谱灵敏度特性(峰值灵敏度波长典型值:560nm)。3 .输出对应亮度的数字值。4 .对应广泛的输入光范围(相当于1-65535lx)。5 .通过降低功率功能,实现低电流化。6 .通过50Hz/60Hz除光噪音功能实现稳定的测定7 .

22、支持1.8V逻辑输入接口。8 .无需其他外部件。9 .光源依赖性弱(白炽灯,荧光灯,卤素灯,白光LED,日光灯)10 .有两种可选的I2Cslave地址。11 .可调的测量结果影响较大的因素为光入口大小。12 .使用这种功能能计算1.1lx到100000lx马克斯/分钟的范围。13 .最小误差变动在士20%14 .受红外线影响很小。GND4.4LCD12864液晶屏4.4.1 LCD12864简介LCD12864是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128X64,内置8192个16*16点汉字,和128个1

23、6*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8X4行16X16点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。LCD12S61LCDL?864LCD128*64二王3NOEEQingLS?畲孤山9 L 名 二 一 国 二ErI鱼 二 FHd Is目 fIrlllsl K -EI1 广 二Igl 上 l£l 小 l£l 寸 mE1|vccLCD12864液晶4.4.2 LCD12864基本特性低电源电压(VDD:+3.0-+5.5V)显示分辨率:128X64点内置汉字字库,提供8192个16X16点阵汉字(简繁体可选)内置128个16X8点阵字符2MHZ时钟频率显示方式:STN半透、正显驱动方式:1/32DUTY,1/5BIAS视角方向:6点背光方式:侧部高亮白色LED功耗仅为普通LED的1/51/10通讯方式:串行、并口可

温馨提示

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

评论

0/150

提交评论