环境监测系统实验报告_第1页
环境监测系统实验报告_第2页
环境监测系统实验报告_第3页
环境监测系统实验报告_第4页
环境监测系统实验报告_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、大连民族学院2010级通信工程专业单片机系统课程设计报告信息与通信工程学院单片机系统课程设计报告 完成日期:2012年 11 月 16 日26目 录目 录1一、设计任务和要求11.1 设计任务11.2 性能指标1二、设计方案22.1.方案设计22.1.1 单片机控制模块的选择论证22.1.2 温度湿度检测模块的选择与论证22.1.3 显示模块的选择与论证22.2 本设计采用方案及原理3三、系统硬件设计43.1 单片机最小系统设计43.2 温湿度采集电路53.3 电源电路63.4 光敏电阻接入电路63.5 键盘电路83.6 LCD显示电路83.7 报警电路93.8 串行接口电路9四.系统软件设计

2、104.1 主程序设计104.2 LCD12864模块程序114.3 DHT11模块程序124.4 光敏电阻模块程序14五.调试及性能分析155.1调试过程中出现的问题155.2 性能分析15六.心得体会16参考文献17附录1 程序清单18附录2 电路原理图24附录3 PCB图25附录4 硬件电路板图26一、设计任务和要求1.1 设计任务基本要求:(1) 利用单片机控制传感器采集环境温湿度,光照强度等参数,并在液晶屏上显示环境参数值。(2)系统设有键盘,可实现系统参数的设置。提高部分:(1) 将上述环境数据记录在SD或TF卡上;(2)采集并显示三轴加速度值;(3)无线传输所测环境参数。1.2

3、性能指标(1)温度湿度光照强度显示:用LCD12864进行显示。(2)环境温度:单位/。(3)环境湿度:单位/%RH。(4)环境光强:单位/lux(5)键盘(6)报警二、设计方案2.1.方案设计2.1.1 单片机控制模块的选择论证方案一:单片机选用STC12C5A60S2,这款单片机有第二串口,有A/D转换,有PWM/PCA功能,有内部EEPROM可内部实现A/D转换。方案二:采用XC9000系列的FPGA。该类器件具有并行处理能力,能快速的响应外部的各种数字信号。综上所述,单片机数学运算功能较强。在程序相互调用方面,处理方便灵活,性能稳定,适合实际应用。且单片机技术发展较为成熟,价格便宜,而

4、FPGA芯片价格较昂贵。则选择方案一。2.1.2 温度湿度检测模块的选择与论证方案一:温度湿度的采集模块采用DHT11。DHT11是一款数字输出的复合传感器,包含一个电阻式感湿元件和NTC式温度检测元件,可测2090%RH湿度,误差5%RH,050摄氏度,误差2摄氏度。方案二:选用DS18B20温度传感器和HS1101湿度传感器。DS18B20是一线式数字温度传感器,具有独特的单线式接口方式,测量范围在55125,误差为±0.5。最高精度可达0.0625。HS1101是电容式湿度传感器,可测相对湿度范围在0%100%RH,误差为±2%RH综上所述,虽然方案二的测试范围和精度

5、都比较好,但DHT11综合性比较强,则选择方案一。2.1.3 显示模块的选择与论证方案一:采用12864液晶模块显示测得的数据,可显示较多组的数据,字体较大,可清晰读数,12864为四行八列中文显示器,可以很清晰的显示温度湿度光照强度等的指标。方案二:采用1602液晶模块显示所测数据,1602液晶接线简单方便,但所显示的不清楚,没有条理性。综上所述选择方案一。2.2 本设计采用方案及原理按照系统设计的功能的要求,初步确定设计系统由单片机主控模块、电源模块、显示模块、DHT11环境温湿度检测模块、光敏电阻模块、报警、按键等模块组成。原理框图:温度传感器DS18B20光敏电阻LM324放大电路CP

6、U处理器STC89C51键盘输入控制电路系统电源12864液晶显示电路蜂鸣器报警电路三、系统硬件设计3.1 单片机最小系统设计图3-1-1图3-1-2图3-1-3采用STC12C5A60S2单片机,P0口接上拉电阻,10K*8排阻,晶振电路采用11.0592M,33pF电容,单片机晶振的作用是为系统提供基本的时钟信号。通常一个系统共用一个晶振,便于各部分保持同步。有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。3.2 温湿度采集电路图3-2-1单总线数字温湿度传感器DHT11。这款传感器由广州奥松电子科技有限公司研发,与单片机的通信十分简洁方便,无需外接时钟信号,通信

7、如图发除此之外,它还有很多突出的优点: (1)温湿度传感器的一体化结构能同时对相对湿度和温度进行测量,并以数字信号输出,从而减少用户对信号的预处理负担(2)独特的单总线数据传输线协议使得读取传感器更加便捷,而且还有全部校准数据字节,编码方式为8位二进制数。(3)40位二进制数据输出,高位先出,格式为:湿度整数部分8位,小数部分8位;温度整数部分8位,小数部分8位,最后8位为校验字节,为前32位数据的和。(4)宽工作电压,几乎与AT89S52的电压相同,为35.5V,而且功耗较低,通信最大电流为2.5mA。其简要的性能参数如下表所示:从表中可以看出,它的测量范围较小,但对实验或民用已经足够了,如

8、果要工业使用的话,可选用该公司的同类工业级产品AM323,测量范围为-55.0+125.0度,测量范围为0.0100.0%RH,并且可以和DHT11完全互换。按照说明书的要求,DHT11与单片机的连接距离小于20米时,需要在VCC和DATA引脚之间接一个5K左右的电阻,则电路如图所示。3.3 电源电路图3-3-1用J1 USB供电,D1为上电指示灯,J2为六脚按键,用来控制板子上电。3.4 光敏电阻接入电路图3-4-1光敏电阻的主要特性及参数 :(1)光电流、亮电阻。光敏电阻器在一定的外加电压下当有光照射时,流过的电流称为光电流,外加电压与光电流之比称为亮电阻,常用“100LX”表示。 (2)

9、暗电流、暗电阻。光敏电阻在一定的外加电压下,当没有光照射的时候,流过的电流称为暗电流。外加电压与暗电流之比称为暗电阻,常用“0LX”表示。 (3)灵敏度。灵敏度是指光敏电阻不受光照射时的电阻值(暗电阻)受光照射时的电阻值(亮电阻)的相对变化值。(4)在一定外加电压下,光敏电阻的光电流和光通量之间的关系。不同类型光敏电阻光照特性不同,但光照特性曲线均呈非线性。因此它不宜作定量检测元件,这是光敏电阻的不足之处。一般在自动控制系统中用作光电开关。 (5)光敏电阻的光谱特性光谱特性与光敏电阻的材料有关。硫化铅光敏电阻在较宽的光谱范围内均有较高的灵敏度,峰值在红外区域,化镉、硒化镉的峰值在可见光区域。因

10、此,在选用光敏电阻时,应把光敏电阻的材料和光源的种类结合起来考虑,才能获得满意的效果。(6)光敏电阻的伏安特性:在一定照度下,加在光敏电阻两端的电压与电流之间的关系称为伏安特性。在给定偏压下,光照度较大,光电流也越大。在一定的光照度下,所加的电压越大,光电流越大,而且无饱和现象。但是电压不能无限地增大,因为任何光敏电阻都受额定功率、最高工作电和额定电流的限制。超过最高工作电压和最大额定电流,可能导致光敏电阻永久性损坏。 (7)当光敏电阻受到脉冲光照射时,光电流要经过一段时间才能达到稳定值,而在停止光照后,光电流也不立刻为零,这就是光敏电阻的时延特性。由于不同材料的光敏,电阻时延特性不同,所以它

11、们的频率特性也不同,硫化铅的使用频率比硫化镉高得多,但多数光敏电阻的时延都比较大,所以,它不能用在要求快速响应的场合。3.5 键盘电路图3-5-1本设计的控制输入部分为简单的四个按键:由于单片机默认状态下端口引脚为高电平,可以接上按键与地相连。单片机检测按键端口的电平情况来决定是否有按键按下和哪个按键被按下,抖动问题采用软件延时方式,减少硬件电路设计,电路如图所示。3.6 LCD显示电路由引脚的应用考虑,LCD接为串行显示,当模块的PSB脚接低电平时,模块即进入串行接口模式。串行模式使用串行数据线SID与串行时钟线SCLK来传送数据,即构成2线串行模式。图3-6-13.7 报警电路图3-7-1

12、根据蜂鸣器的参数,电压1.31.5V,电流2080mA,电阻68 知,可用选用集成放大芯片LM386 驱动,但更经济的是用一个三极管9012 或8550 驱动即可,电路如图所示。3.8 串行接口电路图3-8-1四.系统软件设计4.1 主程序设计void main()uchar k,j;LCD_init();LCD_dis_code(0,1,lcd);LCD_dis_code(1,0,lcd1);LCD_dis_code(2,0,lcd2);LCD_dis_code(3,0,lcd3);while(1)read_io();/读取温湿度数据/clear_gcrom();/湿度for(k=0; k&

13、lt;2; k+)lcd_pos(3,k+3);write_data(str1k);/clear_gcrom();/温度for(j=0; j<2; j+)lcd_pos(2,j+2);write_data(str2j);delay(500);4.2 LCD12864模块程序void LCD_dis_code(uchar x,uchar y,uchar code *s) write_cmd(addr_tab8*x+y); /写地址while(*s>0) write_data(*s); /写数据 s+; /*初始化LCD*/void Lcd_init(void) delay(50);

14、write_cmd(0x30); /选择基本指令集delay(1); write_cmd(0x30); /选择8bit数据流delay(1); write_cmd(0x0c); /开显示(无游标、不反白)delay(1); write_cmd(0x01); /清除显示,并且设定地址指针为00Hdelay(30);/*串行发送一个字节*/void send_byte(uchar byte) uchar i; for(i=0;i<8;i+) SCLK = 0; byte=byte<<1; /左移一位先发送高位的数据 SID = CY; /移出的位给SID SCLK = 1;/上升

15、沿触发发送 SCLK = 0; /*写指令*/void write_cmd(uchar cmd) delay(1);SID = 0;SCLK = 0;delay(5);P0 = cmd;delay(5);SCLK = 1;delay(5);SCLK = 0;/*写数据*/void write_data(uchar dat) delay(1);SID = 0;SCLK = 0;P0 = dat;delay(5);SCLK = 1;delay(5);SCLK = 0;/*延时子程序*/void delay(uint a)uint i;while(a-)for(i=0; i<113; i+);

16、4.3 DHT11模块程序uchar receive_byte()/接收一个字节uchar i,temp;for(i=0;i<8; i+)count = 2;while(!io) && count+)/等待50us低电平结束,并防止死循环temp = 0;delay1();delay1();delay1();if (io=1) temp = 1;count = 2;while(io && count+);elsetemp = 0;data_byte<<=1;data_byte=temp;return (data_byte);/*开始信号*/vo

17、id read_io()/开始信号,读数据并校验io = 0;delay(18);/主机拉低18msio = 1;/DATA总线由上拉电阻拉高 主机延时20usdelay1();delay1();delay1();delay1();io = 1;/主机设置为输入高电平,判断从机响应信号if(!io)count = 2;while(!io)&&count+);/判断DHT11发出80us低电平响应信号是否结束count = 2;while(io && count+);/判断DHT11拉高总线80us高电平是否结束RH_temp = receive_byte();

18、RL_temp = receive_byte(); TH_temp = receive_byte(); TL_temp = receive_byte(); CK_temp = receive_byte();io = 1;num = (RH_temp + RL_temp + TH_temp + TL_temp);/数据校验if(num = CK_temp)RH_data = RH_temp; RL_data = RL_temp;TH_data = TH_temp; TL_data = TL_temp; CK_data = CK_temp;/湿度整数部分str10 = (char)(0x30 +

19、RH_data/10);str11 = (char)(0x30 + RH_data%10);/温度整数部分str20 = (char)(0x30 + TH_data/10);str21 = (char)(0x30 + TH_data%10);/*E N D*/4.4 光敏电阻模块程序unsigned char adc0804( void ) /读AD0804子程序 unsigned char addata,i; rd=1;wr=1;/int1=1; /读ADC0804前准备 P1=0xff; /P1全部置一准备 cs=0;wr=0;wr=1; /启动ADC0804开始测电压 rd=0; /开始

20、读转换后数据 i=i; i=i; /无意义语句,用于延时等待ADC0804读数完毕 addata=P1;/读出的数据赋与addate rd=1;cs=1;/读数完毕 addata=addata/2; return(addata);/返回最后读出的数据 五.调试及性能分析5.1调试过程中出现的问题首先,在调试时,先下载一个LCD显示程序,但LCD没有结果,经过测量,发现由于滑动变阻器的阻值太大,导致LCD背光太低,致使LCD没有显示,把滑动变阻器阻值调小后,则程序出现结果。5.2 性能分析此系统实现的是环境温湿度光照强度的显示,以及报警功能,按键设计等。单总线数字温度、湿度传感器,应用单片机原理

21、,LCD显示技术,实现了实验室多点温湿度参数的实时显示和超限报警系统,保障了实验室环境的可靠性,有效地提高了实验成功率。系统集成度高,操作容易,可靠性好,具有较高的实用价值,实践表明,该系统能够对温度、湿度进行检测,适合于对数据采样频率要求不是很高的应用场合六.心得体会 为了设计出基于单片机的环境温湿度检测系统,搜集了大量的芯片手册,查阅了较多的图书资料,复习了所学的课本教材,分两个阶段对系统进行了设计前期的基本设计和后期的探索设计。 前期的设计,在种类繁多的温度和湿度传感器中选定了由广州奥松公司生产的单总线数字温湿度传感器DHT11,这款传感器的优势在于通信协议相对来说比较简洁,产品价格低廉

22、,这对设计低成本,高精度的温湿度检测系统十分有必要。 对于功能方面的要求,在调查了市场上的同类产品之后,根据实际需求来设计的。市场上的温湿度检测系统的功能为,检测并显示温湿度数据,设置报警点并报警,与上层监控设备通信。因此设计正是,从这几个方面的要求出发,利用单片机本身的特点,来实现系统的功能。 后期的探索设计,提升了系统的性能。 由于第一次设计基于单片机的系统,虽然完成了基本的设计要求,但在设计过程中遇到了许多硬件和软件问题还没有完全解决,设计的过程也是模块式的,没有完整系统的总体规划,后期的探索设计只是从理论上进行了可行性分析,没有做出相应的硬件并调试符合预期构想。因此,以后还必须加强单片

23、机系统设计的能力,毕业设计只是一个浅薄的入门。 当然,在设计过程中,应虚心听取他人的建议和意见,对解决设计过程中的问题都很有帮助。展望未来,最终的系统应该为基于单片机的多功能环境检测系统,它不仅可以检测环境的温度、湿度、照度等所需的环境变量并显示在液晶屏幕上,可以根据设定的限值进行报警提示,可以以时间顺序存储大量的检测数据,并根据需要发送给上层分析处理设备,还可以用红外遥控实行远程无线控制,除此之外,电源系统可以适应各种供电场合,并存储部分电能,断电后确保系统可继续工作一定时间。参考文献1李瀚荪.简明电路分析.北京:高等教育出版社20022康光华.电子技术基础-模拟部分.北京:高等教育出版社1

24、979 3康光华.电子技术基础-数字部分.北京:高等教育出版社1980 4马金龙.信号与系统.北京:科学出版社2006 5唐颖.单片机原理与应用.北京:北京大学出版社2008 6郑莉.董渊.张瑞丰.C+语言程序设计.北京:清华大学出版社2004 7唐文彦.传感器.北京:机械工业出版社2010 8陈尔绍等.电子控制电路实例.北京:电子工业出版社2004 9姜威.实用电子系统设计基础.北京:北京理工大学出版社2008 10毛兴武等.新型电子器件及其应用技术.北京:中国电力出版社2010 11孟贵华.电子元器件选用入门.北京:机械工业出版社2004 12黎小桃等.Protel99 入门与提高.北京:

25、电子工业出版社2009 13郭强.液晶显示模块应用与调试.北京:电子工业出版社2010 14陈涛.单片机应用及C51 程序设计.北京:机械工业出版社2008 15钟睿.MCS-51 单片机原理及应用开发技术.北京:中国铁道出版社2006附录1 程序清单/*DHT11与12864LCD*/* DHT11总线接P10 */* 晶振 11.0592M */*/#include <reg52.h>#define uchar unsigned char#define uint unsigned intuchar lcd_x,lcd_y,data_byte=0,count;uint TH_da

26、ta,TL_data,RH_data,RL_data,CK_data;uint TH_temp,TL_temp,RH_temp,RL_temp,CK_temp;uchar num;void read_io();void delay(uint a);/延时子函数void lcd_pos(unsigned char X,unsigned char Y);void LCD_init();/LCD初始化程序void LCD_dis_code(uchar x,uchar y,uchar code *s);/显示函数void write_data(uchar dat);/写数据void write_cmd

27、(uchar cmd);/写指令void delay1();/10us延时/*汉字地址表*/uchar code addr_tab=0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,/第一行汉字位置0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,/第二行汉字位置0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,/第三行汉字位置0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,/第四行汉字位置;sbit SID = P01;/读写信号sbit SCLK = P00;/串行时钟

28、信号sbit io = P13;/DHT11总线uchar code lcd="环境监测系统"uchar code lcd1="温度: "uchar code lcd2="湿度: %RH"uchar code lcd3="光强: lux"uchar str1=" "uchar str2=" "/*主程序*/ void main()uchar k,j;LCD_init();LCD_dis_code(0,1,lcd);LCD_dis_code(1,0,lcd1);LCD_dis_

29、code(2,0,lcd2);LCD_dis_code(3,0,lcd3);while(1)read_io();/读取温湿度数据/clear_gcrom();/湿度for(k=0; k<2; k+)lcd_pos(3,k+3);write_data(str1k);/clear_gcrom();/温度for(j=0; j<2; j+)lcd_pos(2,j+3);write_data(str2j);delay(500); /*延时程序*/void delay1()/延时10usunsigned char i;for(i=0; i<3; i+);/*显示程序*/void lcd_

30、pos(unsigned char X,unsigned char Y)unsigned char pos;if ( X = 1 ) pos = 0x80 ; else if ( X = 2 ) pos = 0x90 ; else if ( X = 3 ) pos = 0x88 ; else pos = 0x98 ; write_cmd(Y | pos);/数据指针=80+地址变量/*DHT11模块*/uchar receive_byte()/接收一个字节uchar i,temp;for(i=0;i<8; i+)count = 2;while(!io) && count+

31、)/等待50us低电平结束,并防止死循环temp = 0;delay1();delay1();delay1();if (io=1) temp = 1;count = 2;while(io && count+);elsetemp = 0;data_byte<<=1;data_byte|=temp;return (data_byte);/*开始信号*/void read_io()/开始信号,读数据并校验io = 0;delay(18);/主机拉低18msio = 1;/DATA总线由上拉电阻拉高 主机延时20usdelay1();delay1();delay1();de

32、lay1();io = 1;/主机设置为输入高电平,判断从机响应信号if(!io)count = 2;while(!io)&&count+);/判断DHT11发出80us低电平响应信号是否结束count = 2;while(io && count+);/判断DHT11拉高总线80us高电平是否结束RH_temp = receive_byte(); RL_temp = receive_byte(); TH_temp = receive_byte(); TL_temp = receive_byte(); CK_temp = receive_byte();io = 1

33、;num = (RH_temp + RL_temp + TH_temp + TL_temp);/数据校验if(num = CK_temp)RH_data = RH_temp; RL_data = RL_temp;TH_data = TH_temp; TL_data = TL_temp; CK_data = CK_temp;/湿度整数部分str10 = (char)(0x30 + RH_data/10);str11 = (char)(0x30 + RH_data%10);/温度整数部分str20 = (char)(0x30 + TH_data/10);str21 = (char)(0x30 + TH_data%10); /*E N D*/*12864模块程序*/*void clear_gcrom()uchar i,j,k;lcd_x = 0x80;lcd_y = 0x80;write_cmd(0x34);for(i = 0 ; i < 2 ; i+)/上下两屏幕for(j = 0 ; j < 3

温馨提示

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

评论

0/150

提交评论