单片机原理及系统课程设计报告温度湿度控制系统_第1页
单片机原理及系统课程设计报告温度湿度控制系统_第2页
单片机原理及系统课程设计报告温度湿度控制系统_第3页
单片机原理及系统课程设计报告温度湿度控制系统_第4页
单片机原理及系统课程设计报告温度湿度控制系统_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机原理及系统课程设计专 业: 自动化 班 级: 动 091 姓 名: 程维洲 学 号: 200908409 指导教师: 路小娟 评语:平时(40)修改(30)报告(30)总成绩兰州交通大学自动化与电气工程学院2012 年 7月 1日目 录1引言12方案设计12.1 总体方案设计12.2 系统组成及框图13硬件电路设计2 温度测量电路设计2 湿度测量电路设计2 按键电路设计34 软件设计34.1 主程序流程图34.2 温度模块程序设计44.3 湿度模块程序设计54.4 显示子程序设计55总结56参考文献57 附录67.1 附录A67.2 附录B61引言本次课程设计主要基于AT89C51单片机

2、,开发环境温度及湿度检测及控制系统。该系统采用AT89C51单片机作为控制器,DS18B20作为温度传感器,HS1101作为湿度传感器。系统主要功能如下:()对温度、湿度进行测量;()温度及湿度的显示;()设定预期温度与湿度值并显示。关键词:AT89C51,温度及湿度检测,LCD显示。2方案设计本章从控制系统的总体构成及原理框图对系统进行了总体分析说明,控制系统组成以后,主要通过控制器、传感器及执行器对控制变量进行分析和处理。2.1 总体方案设计本系统采用AT89C51单片机作为微处理器,DS18B20作为温度传感器对温度进行检测,HS1101作为湿度传感器与NE555组成湿度测量模块,使用L

3、M016L对测得的温度及湿度值进行显示,使用按键对温度及湿度的设定值进行修改。 系统组成及框图系统主要有温度测量模块、湿度测量模块、显示模块、及按键模块。其原理框图如图21所示。AT89C51温度测量LCD液晶显示按键湿度图. 系统组成框图3硬件电路设计本温度及湿度控制系统使用AT89C51作为控制器,用DS18B20实现对温度测测量,用HS1101及NE555实现的湿度的测量,并采用LM016L将采集的的数据显示。现将系统硬件设计表述如下。3.1 温度测量电路设计采用DS18B20数字温度传感器测量温度, DS18B20与单片机是单线双向通信。其连接电路如图3.1所示。图3. DS18B20

4、的测温电路(DQ端接51的) 湿度测量电路设计图 NE555测湿电路HS1101实际上相当于一个可变电容,它会因外部环境湿度的变化而致使电容值变化,湿度测量模块采用HS1101及NE555一起组成,将该HS1101置于NE555震荡电路中,将电容值的变化转化为与之呈反比的电压频率信号,可直接被计算机采集。表3.1 等效电容值与相对湿度之间的数值关系相对湿度RH(%)电容值C(PF)相对湿度RH(%)电容值C(PF)01636018310166701862017080191301739019540176100202501793.3 按键电路设计系统可以调节设定的温度及湿度值,我们可以通过四个按键

5、来进行实现,前两个按键选择是温度设定还是湿度设定,后两个按键实现加一和减一操作,设计电路图如图3.3所示。图3.3 按键电路其工作原理如下:当闭合温度控制开关,可以通过“加”、“减”按钮来实现目标温度值的加一或者减一;同理闭合湿度开关,通过“加”、“减”按钮来实现目标湿度值的加一或者减一。而且,当两个开关同时闭合时,可以实现温度和湿度的同加一或同减一。4 软件设计本章主要对各个功能模块的程序流程进行说明。 主程序流程图主程序的主要功能是负责读出并处理DS18B20的测量温度值,读出测湿电路的结果,并将温度及湿度进行实时显示,直到需要退出该系统时结束并退出。程序流程图如图4.1所示 :开始允许外

6、部中断和定时器T0、T1中断1602初始化显示及T0、T1初始化设置读取温度值温度显示读取湿度值 N湿度显示是否结束是否结束Y结束图4.1 主程序流程图 温度模块程序设计温度模块主要包括DS18B20的初始化以及与单片机之间的数据处理。DS18B20与微处理器之间的通信比较复杂,每一次通信之前必须进行复位,复位的时间、等待时间、回应时间应严格按时序编程。 湿度模块程序设计湿度模块主要是利用定时器T0和T1对555的输出频率进行测量,进而得到相对湿度值。在该块程序设计中,我们选取T0做定时器,定时时间是50ms,而选择T1做计数器,每当T0定时时间到就读取T1的计数值,然后将T1的计数值乘以20

7、就可得到555芯片的输出频率,可进行数据处理从而得到相对湿度值。 显示子程序设计显示子程序包括1602的初始化,以及对温度和湿度值的显示。初始化时第一行显示“wend”,第二行显示“shid”,然后根据温度的测得值及其正负将测得温度值和设定温度值在第一行,并将测得的频率值装换为相对湿度值,并将其和湿度设定值显示在第二行。5总结在设计中,通过对硬件电路不断的处理,使得硬件部分比较完善。另外,在电路中加入了限流电阻,保证了各个器件的使用寿命。总之,硬件电路的设计达到了抗干扰,较高精度的目的。软件部分中,对程序也做了数次修改,最终在Keil uVision3中实现了成功的模拟,进一步验证了设计思路。

8、本系统实现的功能如下。1. 对温室大棚温度和湿度进行实时测量;2. 通过LCD显示屏分别进行温度和湿度显示;3对温度和湿度的设定值通过按键可以进行调节。本系统的优点有以下几点。 1. 结构简单,容易实现; 2. 造价低廉,性价比高;3达到了一定的精度要求。6参考文献1J.电子技术与应用,2000(6).2单晓锋,杨建红.电容型温湿度传感器模拟计算与分析J.半导体技术,2010(11).3M.北京:清华大学出版社,2004.7 附录7.1 附录A系统仿真电路图如图5.1所示。在调试过程中,通过改变温度传感器的数值,来检验系统中温度模块是否运行正常。经过测试温度模块可以正常的显示,并且具有一定的快

9、速性。通过改变NE555振荡电路中C3的容值(即HS1101的等效容值),来检验湿度摸快是否可以正常工作,经过测试湿度模块可以正常工作。并且对四个按键(即温度、湿度、+、-)的功能进行了测试,都实现了应有的功能。图5.1 系统仿真调试图7.2 附录B#include#define uchar unsigned char#define uint unsigned intsbit DQ=P27;/DS18B20与单片机连接口sbit RS=P30;/LCD1602控制端与单片机的连接sbit RW=P31;sbit EN=P37;sbit ST=P00;/按键接口sbit SH=P01;sbit

10、Sjia=P32;sbit Sjian=P33;uchar code str1=Wend:;uchar code str2=Shid:;uchar data disdata16;uchar data disdata24;uint tvalue;/温度值uchar tflag;/温度正负标志uint tem0,tem1;uint temp0,temp1;uint f=0;int hhhh=0;int tsheding=20;/设置温度值int hsheding=40;/设置湿度值void zhongd0() interrupt 0 /外部中断0:加设置 if(ST=1) tsheding+; /

11、温度值加1 if(SH=1) hsheding+; /湿度值加1 void zhongd1() interrupt 2 /外部中断1:减设置 if(ST=1) tsheding-; /温度值减1 if(SH=1) hsheding-; /湿度值减1 void timer0() interrupt 1 /T0定时中断 TR0=0; TR1=0; TL0=0xB0;/重装值,定时50000us TH0=0x3C; tem0=TL1;/读数 tem1=TH1; TL1=0x00;/计数器1清零 TH1=0x00;TR0=1; TR1=1; void timer1() interrupt 3 /T1计

12、数中断TR0=0; TR1=0; TL0=0xB0;/重装值,定时50000us TH0=0x3C; TL1=0x00;/计数器1清零 TH1=0x00;TR0=1; TR1=1; void init_timer() TMOD=0x51; TL0=0xB0;/定时器0初值定时50000us TH0=0x3C; TL1=0x00;/定时器1清零 TH1=0x00; TR0=1;/T0开始计时 TR1=1;/T1开始计数 void delay1ms(uint ms)/延时1毫秒 uint i,j; for(i=0;ims;i+) for(j=0;j0;i-) DQ=0; /给脉冲信号 dat=1;

13、 DQ = 1; /给脉冲信号 if(DQ) dat|=0x80; delay_18B20(10); return(dat);void ds1820wr(uchar wdata)/DS18B20写数据 uchar i=0; for(i=8;i0;i-) DQ=0; DQ=wdata&0x01; delay_18B20(10); DQ=1; wdata=1; void read_temp()/读取温度值并转换 uchar a,b; ds1820rst(); ds1820wr(0xcc);/跳过读序列号 ds1820wr(0x44);/启动温度转换 ds1820rst(); ds1820wr(0x

14、cc);/跳过读序列号 ds1820wr(0xbe);/读取温度 a=ds1820rd(); b=ds1820rd(); tvalue=b; tvalue=8; tvalue=tvalue|a; if(tvalue0x0fff) tflag=0; else tvalue=tvalue+1; tflag=1; tvalue=tvalue*(0.625);/温度值扩大10倍,精确到1位小数/*/void ds1820disp1()/温度值显示 uchar flagdat; uchar flagtsheding; disdata10=tvalue/1000+0x30;/百位数 disdata11=t

15、value%1000/100+0x30;/十位数 disdata12=tvalue%100/10+0x30;/个位数 disdata13=tvalue%10+0x30;/小数位 if(tshedinghhhh)/判断温度设定值是正是负 flagtsheding=-; disdata14=(tsheding+1)/10+0x30; disdata15=(tsheding+1)%10+0x30; else flagtsheding= ; disdata14=tsheding/10+0x30; disdata15=tsheding%10+0x30; if(tflag=0) flagdat=0x20;

16、/正温度不显示符号 else flagdat=0x2d;/负温度显示负号:- if(disdata10=0x30) disdata10=0x20;/如果百位为0,不显示 if(disdata11=0x30) disdata11=0x20;/如果百位为0,十位为0也不显示 wr_com(0x85); wr_dat(flagdat);/显示符号位 wr_com(0x86); wr_dat(disdata10);/显示百位 wr_com(0x87); wr_dat(disdata11);/显示十位 wr_com(0x88); wr_dat(disdata12);/显示个位 wr_com(0x89);

17、 wr_dat(0x2e);/显示小数点 wr_com(0x8a); wr_dat(disdata13);/显示小数位 wr_com(0x8b);/显示设定温度值 wr_dat(); wr_com(0x8c); wr_dat(flagtsheding); wr_com(0x8d); wr_dat(disdata14); wr_com(0x8e); wr_dat(disdata15); wr_com(0x8f); wr_dat();/*/void ds1820disp2()/湿度值显示 f=tem1*256+tem0; f=f*20; if(6033=f)&(f=7351) if(7224f)&

18、(f=7351) temp0=0;temp1=(7351-f)*10/127; if(7100f)&(f=7224) temp0=1;temp1=(7224-f)*10/124; if(6976f)&(f=7100) temp0=2;temp1=(7100-f)*10/124; if(6853f)&(f=6976) temp0=3;temp1=(6976-f)*10/123; if(6728f)&(f=6853) temp0=4;temp1=(6853-f)*10/125; if(6600f)&(f=6728) temp0=5;temp1=(6728-f)*10/128; if(6486f)&(f=6600) temp0=6;temp1=(6600-f)*10/132; if(6330f)&(f=6486) temp0=7;temp1=(6468-f)*10/138; if(6186f)&(f=6300) temp0=8;temp1=(6330-f)*10/144; if(6033f)&(f=6186) temp0=9;temp1=(6186-f)*10/153; else temp0=0;temp1=0; disdata20=temp0+0x

温馨提示

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

评论

0/150

提交评论