1、数字式温湿度测量仪设计长 沙 学 院单片机原理及应用课程设计说明书题目数字式温湿度测量仪设计系(部)专业(班级)姓名学号指导教师起止日期单片机原理及应用课程设计任务书8系(部):电信系 专业:2011级电子信息工程课题名称数字式温湿度测量仪设计设计内容及要求1、课题内容:以单片机为核心,使用SHT11 温、湿度传感器设计一个数字式温湿度计。测量一路温度和湿度信号并用12864 液晶屏显示。测温范围55-125 摄氏度,精度0.5 摄氏度;湿度测量范围:0-100%RH。液晶屏的第一行显示“温湿度测量仪”,第二行显示设计者姓名和学号,第三行显示测量温度、温度设定的上、下限报警值。第四行显示测量湿
2、度、湿度设定的上、下限报警值。当温度或湿度高于设定上限值或低于下限值时驱动峰鸣器演奏歌曲一首作为报警信号。2、要求:完成该系统的硬件和软件的设计,在Proteus 软件上仿真通过,并提交一篇课程设计说明书。 设计工作量1、汇编或C51 语言程序设计;2、程序调试;3、在Proteus 上进行仿真成功;4、提交一份完整的课程设计说明书,包括设计原理、程序设计、程序分析、仿真分析、调试过程,参考文献、设计总结等。进度安排起止日期(或时间量)设计内容(或预期目标)备注第一天课题介绍,答疑,收集材料,C51介绍第二天设计方案论证,练习编写C51程序第三天第六天程序设计第六天第八天程序调试、仿真第九天第
3、十天系统测试并编写设计说明书教研室意见年 月 日系(部)主管领导意见年 月 日一、概述温湿度测量有着广泛的应用,标准温湿度测量仪主要应用于计量、气象、军事等领域,实现准确高精度的测量温湿度,同时还可以作为其他温湿度仪表校正的参考标准。数字式通风干湿表是一种重要的湿度标准器,干湿球温度的测量精度是制约其湿度精度的重要因素,本文设计的数字式标准温湿度测量仪,着重提高温度的测量精度,达到高精度湿度测量的目的。温湿度是人们日常生活中接触最多的两个物理量,人们的日常生活、动植物的生存繁衍和周围环境的温湿度息息相关,石油、化工、冶金、纺织、机械制造、航空航天、制药、烟草、档案保管、粮食存储等领域对温、湿度
4、也有着较高的要求。例如:烟叶和纸张是吸湿性极高的材料,卷烟生产的每一个阶段对温、湿度都有非常特别的要求,以确保所使用材料的水分,保证生产的效率和产品质量;印刷车间的温、湿度控制水平对印刷质量有很大的影响2;为防止库存武器弹药、金属材料等物品霉烂、生锈,必须保持环境温度不能过高和干燥;而水果、种子、肉类等的保存又需要保证一定的湿度;在矿山、棉麻、塑料、粉末金属、食品生产加工等企业的生产车间(环境)中往往会产生大量的可燃或易燃粉尘,如果空气湿度过低,在一定的能量下,极易发生粉尘爆炸。二、设计内容及要求1、课题内容以单片机为核心,使用SHT11 温、湿度传感器设计一个数字式温湿度计。测量一路温度和湿
5、度信号并用12864 液晶屏显示。测温范围55-125 摄氏度,精度0.5 摄氏度;湿度测量范围:0-100%RH。液晶屏的第一行显示“温湿度测量仪”,第二行显示设计者姓名和学号,第三行显示测量温度、温度设定的上、下限报警值。第四行显示测量湿度、湿度设定的上、下限报警值。当温度或湿度高于设定上限值或低于下限值时驱动峰鸣器演奏歌曲一首作为报警信号。2、要求完成该系统的硬件和软件的设计,在Proteus 软件上仿真通过,并提交一篇课程设计说明书。三、设计原理1、温度传感器的选择采用热电阻温度传感器。热电阻是利用导体的电阻随温度变化的特性制成的测温元件。现应用较多的有铂、铜、镍等热电阻。其主要的特点
6、为精度高、测量范围大、便于远距离测量。铂的物理、化学性能极稳定,耐氧化能力强,易提纯,复制性好,工业性好,电阻率较高,因此,铂电阻用于工业检测中高精密测温和温度标准。缺点是价格贵,温度系数小,受到磁场影响大,在还原介质中易被玷污变脆。按IEC标准测温范围-200650,XX电阻比W(100)=1.3850时,R0为100和10,其允许的测量误差A级为(0.15+0.002|t|),B级为(0.3+0.005|t|)。铜电阻的温度系数比铂电阻大,价格低,也易于提纯和加工;但其电阻率小,在腐蚀性介质中使用稳定性差。在工业中用于-50180测温。2、湿度传感器的选择测量空气湿度的方式很多,其原理是根
7、据某种物质从其周围的空气吸收水分后引起的物理或化学性质的变化,间接地获得该物质的吸水量及周围空气的湿度。电容式、电阻式和湿涨式湿敏原件分别是根据其高分子材料吸湿后的介电常数、电阻率和体积随之发生变化而进行湿度测量的。采用CHR-01湿敏电阻。CHR-01湿敏电阻适用于阻抗型高分子湿度传感器,它的工作电压为交流1V,频率为50Hz2kHz,测量湿度范围为20%90%RH,测量精度5%,工作温度范围为0+85,最高使用温度120,阻抗在60%RH(25)时为30(2140.5)K。采用555时基或RC振荡电路,将湿度传感器等效为阻抗值,测量振荡频率输出,振荡频率在1kHz左右。四、设计方案把各个功
8、能模块编写成单独的源文件进行调试,调试成功以后,再将各部分联合在一起。用户温度输入数据时上限、下限分别在七段数码管的0、1、2、3位置显示,湿度输入数据时上限、下限分别在七段数码管的4、5、6、7位置显示。读键存储的过程是循环程序。可循环等待直到用户输入正确并确认为止。采样转换模块是一个比较重要的模块,在调试的阶段遇到的问题较多,由于它是程序运行的瓶颈,如果这一部分通不过的话,那么程序就无法执行下去,本系统采用的是延时的方法。温湿度判断控制模块也一个非常重要的模块,由于温湿度对于植被的生长起着决定性的作用,因此,如果这两个因素控制不好,这个系统就失败了,这就需要我认真的考虑这一模块的控制方式,
9、调试阶段比较顺利。除了以上所提到的模块之外,还有一些模块也很重要,也都需要认真的调试,如报警模块等。调试了各模块之后,接下来的工作就是将各源程序段连接起来,进行综合调试了,综合调试需要我们特别注意细节部分,这样才能尽可能的减少错误的产生。程序:#include#define uchar unsigned char#define uint unsigned intuchar g,s,b;uint temp,temp_dat;float f_temp;void lcd_display_temp_max(uchar name,uchar max,uchar min,bit f);uchar ds18
10、b20_int_date(void);uchar ds18b20_float_date(void);sbit rs=P20;sbit rw=P21;sbit en=P22;sbit PSB=P23;sbit DS=P33;sbit fm=P34; sbit k1=P35;sbit k2=P36;sbit k3=P37;uint t,k;uchar timeh,timel;uchar shi,fen,miao;uchar code dis5=.;uchar code dis0=0123456789;uchar code dis1=00时00分00秒;uchar code dis2= . -559
11、0;uchar code dis3=;uchar code dis4=0xa1,0xa0,0xca,0xfd,0xd7,0xd6,0xca,0xbd, 0xce,0xc2,0xb6,0xc8,0xbc,0xc6,; ;uchar code zbjbxf=0x64,0xA3,0xC1,0xA2,0x62,0x84,0x61,0x81,0x61,0xA4,0xA1,0x91,0xA1,0x81,0x64/*,0xA3,0xC1,0xD2,0xD2,0xD2,0xA2,0xC4,0xA1,0xC1,0xA1,0xC1,0xD2,0xD2,0xD2,0xA2,0xC4,0xC2,0x62,0xC2,0
12、x62,0xA2,0xA2,0x84,0x94,0x94,0x92,0x81,0x91,0xA2,0xC2,0xD4,0xE4,0xA4,0xE4,0xA2,0xE2,0xA2,0xE2,0xA2,0xA2,0x84,0x94,0x94,0x92,0x81,0x91,0xA2,0xC2,0xD8*/;uchar code chuzhi= 0xff,0xff, 0xFC,0x8E, 0xFC,0xED, 0xFD,0x43, 0xFD,0x6A, 0xFD,0xB3, 0xFD,0xF3, 0xFE,0x2D, 0xFE,0x47, 0xFE,0x76, 0xFE,0xA1, 0xFE,0xC7
13、, 0xFE,0xD9, 0xFE,0xF9, 0xFF,0x16;void warning();void delayms(uint xms) uchar i,j; for(i=xms;i0;i-) for(j=110;j0;j-);void delay(uint z) /延时165MS,即十六分音符 uint y; for(z;z0;z-) for(y=19000;y0;y-);/大致时间void ds18b20_init(void) uint i; DS=0; i=103; while(i0)i-; DS=1; i=4; while(i0)i-;bit ds18b20_tmpreadbit
14、(void) /read a bit 读一位 uint i; bit dat; DS=0; i+; /i+ for delay 小延时一下 DS=1; i+; i+; dat=DS; i=8; while(i0)i-; return (dat);uchar ds18b20_tmpread(void) uchar i,j,dat; dat=0; for(i=1;i=8;i+) j=ds18b20_tmpreadbit(); dat=(j1); /读出的数据最低位在最前面,这样刚好 /一个字节在DAT里 return(dat); /将一个字节数据返回void ds18b20_tmpwritebyt
15、e(uchar dat) /写一个字节到DS18B20里 uint i; uchar j; bit testb; for(j=1;j1; if(testb) DS=0;i+;i+; DS=1; i=8;while(i0)i-; else DS=0; i=8;while(i0)i-; DS=1; i+;i+; void ds18b20_tmpchange(void) /DS18B20 begin change 发送温度转换命令 ds18b20_init(); /初始化DS18B20 delayms(10); ds18b20_tmpwritebyte(0xcc); / 跳过序列号命令 ds18b2
16、0_tmpwritebyte(0x44); /发送温度转换命令uint ds18b20_gettemp() uchar a,b; ds18b20_init(); delayms(10); ds18b20_tmpwritebyte(0xcc); ds18b20_tmpwritebyte(0xbe); a=ds18b20_tmpread(); b=ds18b20_tmpread(); temp=b; temp25|b15) warning(); void timer() interrupt 1 TH0=15535/256; TL0=15535%256; t+; if(t=20) t=0; miao
17、+; if(miao=60) miao=0; fen+; if(fen=60) fen=0; shi+; if(shi=24) shi=0; write_sfm(1,shi); write_sfm(3,fen); write_sfm(5,miao); dis_temp(temp_dat); void timer0() interrupt 3 TH1=timeh; TL1=timel; fm=fm; 五、测试结果通过实物仿真,得到下图所示结果:六、设计心得体会在为期两周的单片机课程设计中,第一周是要将以前做过的实验再次仿真一遍,在做完以前的题目后,刘辉老师让我们抽签选取自己的课程设计题目,我选到了第八个题目,就是数字式温湿度测量仪设计这个课题,在做这个课题当中,刚开始连接实物的时候,显示屏只亮,并没有任何的显示,最后发现由于是电路板的一个地方松了,最后将其扭紧,就得到了测试结果所显示的画面。 在这两周的课程设计中,遇到了不少的问题,发现了自己在知识上的很多漏洞,最后在老师同学的帮助下得以完成。同时也在这次的课程设计中
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1