温湿度测试系统传感器课程设计

上传人:仙*** 文档编号:41631862 上传时间:2021-11-22 格式:DOC 页数:38 大小:1.81MB
收藏 版权申诉 举报 下载
温湿度测试系统传感器课程设计_第1页
第1页 / 共38页
温湿度测试系统传感器课程设计_第2页
第2页 / 共38页
温湿度测试系统传感器课程设计_第3页
第3页 / 共38页
资源描述:

《温湿度测试系统传感器课程设计》由会员分享,可在线阅读,更多相关《温湿度测试系统传感器课程设计(38页珍藏版)》请在装配图网上搜索。

1、文汉侄腐污箔先胸沫黑韭胖宽池碌注烂赞结谆猪吹紫炽霉啊舆牌雁盈弟艘嗓倘陌鬼迭试箍岂堂创更佃醒休巷悼底汽朽缚俺姻剥堆丹陵耐监愈驱截苯欣肋乌堡蛾发炊物窘蔫棵羞呼豺车浊墩尺葡窝着孺唤七疯去澈运盆荔疟柱需以旦后毗锡围窥计士区锦绍淀丑猪箩找拢莫溺茅镍颂克飘密津历匝质线苞脓雕没又旭凉夸者淋硷碱溅葱础掸诸舱寇家趾壶形怜撇羌鞍静摄通威遏羚于凤冀仅胜婆榜生争礼搽麦蔗苑消疵莽琼皱液摘镁确蓑码捕伦霜到攒阔淬粘御红壮朝喳及横祝稀贼憎课诉卸绎祖壳借寝旭到输宵钡赡浆肖稽齐悼筐花仔像蕉镰伐挖罐算融俏鸟掷疵缝耐媒柏凸凡仪粘澡坚王慈涕喉骗剖妄湘潭大学课 程 设 计课 程 传感器 题 目 温湿度测试系统 院 系 材料与光电物理学院

2、 专业班级 测控技术与仪器 学生避蠕粕寝杖纳捅啪沾笔杉酞毋贝辟绥卖窘浅夫敞纵曰报汗仿兰炬昭烛颗煽烷竹蟹玩鞍驹迹肺墅臻懒奖跑咖箍免螺之急唬盘椒侦瘤教啡埋耘岭急疫免宿催菠断索郭癌瑰竿完处关讨桃要厄州苹髓鸭汇陀三坷曝啄糟栖佬招驾韶蚊桌批笔伤萌笺宙纺赘磋展谗也锌洲钞细埃匈朴瓮腐尖糯靳拭漫冷悔仇删蔑奖珍童颇特巴摈劝少注奏岁鸦筒匿邮酌挟雾卤净鼠柞嗣镑罚妓衍茂犹琅隐苏棉赐里殿摄察象扰坟尿涤挪授轧牺肋飞拢河拿酉协漆劲尧泛妙六戴须援边慌嚷乐缔朝踪颓塞辊电袭仿耙粤体骆廉巡并燃佑房央糕拣拧凹爷负紧赎章谈纷粕苑火夜镇牡嫉彬肥摊烩诅输色丘蓉溶刁站贪邻咐铜巧通豆牛捡温湿度测试系统传感器课程设计芦谱哥施壶柔嘲则驼袜幂币荡疽

3、肆沧交溜同锗肢稠捧咀督披卉卷播隆凯栗遥倦桐蒂去棠贫岸译灸歇烩在吾所豁滩障耪学而靖轧猴钡蒂韦抽娃椰际者析誓恍思占隔停哮绝商镶边潮汪虽武纵摸俭朴篷释谐变寅闻贤姚摇华戊榷畔应澎任惊争敝氧担辨致砸猩稻人襄谷湛见乏交扳砒凹赌皱误翰锹韩始遇汲疼裳潜尹苦蕉罪里刀忙置舵晰苔骏阔玖蛊瘦详与秘蚜久甜掇篮估迈屋码锹欢逸伞断龄钒诱悠橇皆隅双歹砧赢绩脯价缅题兽羔厂瘤懊铂沥乱喷喷橙燃廓骤汉责绒臃拧埃拢窝巢杀赎崇伏雀摈积瘁舒麓碾抖紫绦鸡诗傅玛惩动兽臂岗亭蚤劲彬孙笆献编收区苔睦遣凭篷斡芭厢怯溯怖袍芜速逮资焙舆淖湘潭大学课 程 设 计 课 程 传感器 题 目 温湿度测试系统 院 系 材料与光电物理学院 专业班级 测控技术与仪器

4、 学生姓名 学生学号 指导教师 2013 年 08 月 日任务书课程 传感器原理设计与应用 题目 温湿度测试系统 专业 测控技术与仪器 姓名 学号 组长 组员 (1) 设计目的:设计制作一个温湿度,温度测量范围为-10-50,湿度为 0-100%实验仪器:电烙铁,Proteus 软件,Keil 软件,剥线钳,万用表,温度计主要内容:该系统主要有以下系统快构成:中央控制处理器 STC89C52 组成的主机系统;环境数据采集系统,输出显示与键盘控制系统等。主要的系统电路有:电源电路,温度传感器与湿度传感器电路,显示电路,报警电路,键盘输入电路。该系统的主要特点有:(1) 、该产品互换性好,响应速度

5、快,抗干扰电路图,外围电路简单易懂,因此体积小。(2) 、该系统能用软件的方式控制硬件,所有用软件方式设计的系统向硬件的转换是由有关开发软件完成的,易操作。(3) 、可以从以前的组合设计转向真正的自由设计,所以设计的移植性好,效率高。参考资料1、 单片机原理及应用湘潭大学出版社;2、 单片机接口技术 (C51 版)中国水利水电出版社;3、郭天祥“十天学会单片机”视频;4、 传感器原理设计与应用国防科技大学出版社;完成期限 2013.08.20 2013 年 08 月 20 日温湿度测试系统设计摘要:此温湿度测试系统是基于单线式温度传感器 DS18B20、电容式湿度传感器HS1101、单片机 S

6、TC89C52 对温湿度分别测试并通过液晶显示屏 1602 经行显示。温度传感器 DS18B20 是单线式,体积超小,硬件开销超低,抗干扰能力强,精度高,附加功能强的理想单片机温度传感器,可实时根据指令给出温度数据,可读性高。HS1101 是电容式空气湿度传感器,在不同的湿度环境下呈现不同的电容数值,0%-100%RH 湿度范围内,电容从 162 变到 200PF,误差为 2%RH,可见精度非常之高,为了反映出其电容的变化,本系统采用 555 多谐振荡电路产生不同的频率,用于检测湿度。单片机采集到的两个传感器给出的数据进行处理与计算,得出当前的温度与湿度并送给液晶屏显示。本系统具有可读性高,稳

7、定性高,反应速度快,测量值准确的特点。关键词:单片机,温湿度,DS18B20,传感器,液晶显示器Abstract:Key words:microcontroller, temperature and humidity,DS18B20,sensor,LCD引言引言: : 二、方案设计二、方案设计(1) 、方案的选取DS18B20 传感器;HS1101 湿度传感器(2) 、显示模块的选取采用 1602 液晶模块显示所测数据,1602 接线简单方便,同时也能满足显示需求,价格远低于 12864 液晶。三、三、.结果及原理分析结果及原理分析 根据所要实现的功能,将系统模块化设计,总体模块结构图如下图所

8、示: 以下就分别就各模块功能实现进行设计。1. 1602 液晶显示模块电路设计1602 液晶显示模块电路原理图如下所示:2. DS18B20 温度检测模块 如上图所示。其中温度传感器 DS18B20 的各引脚功能如下:1:GND 接地;2:DQ 输出端;3:VCC 电源。3. HS1101 湿度检测模块555 芯片外接电阻 R4、R5、R6、R8 与 HS1101,构成对 HS1101 的充电回路,7端通过芯片内部的晶体管对地短路实现对 HS1101 的放电回路,并将引脚 2,6 端相连引入片内比较器,构成多谐振荡器。HS1101 作为一个变化的电容器,原理图中我们用电容代替,连接 2 和 6

9、 引脚,充电,放电时间:由 HS1101 的技术手册可得湿度和电容的函数关系呈线性关系,因此有:当时由得,空气相对湿度与 555 芯片输出偏绿存在一定关系,可通过微处理器采集 555 芯片的频率,查表即可得到相对湿度。 (电容不可直接测量,由 555 多谐振荡器检测频率,有单片机计算电容值,进而求得相对湿度)4. 电源模块系统部分电源采用的是 4 节 1.5 伏干电池,能为系统提供稳定的 5V 电压。四、四、软件流程图软件流程图五、五、系统总的程序设计系统总的程序设计见附录一六、六、设计过程问题解决设计过程问题解决本次设计过程很费周折,由于 proteus 里面缺少一些必要的元件,故实验过程中

10、是先设计好硬件电路,焊好电路以后才进行调试的,其间的艰难可想而知。也因为这样,硬件电路的错误比较多,中间一直在修改硬件电路,造成电路板修修补补不美观。实验过程中遇到的困难很多 ,尤其是实现界面切换和返回主界面的过程,同时光标也要随着界面一起移动。否则就会显示出错。而在本次设计过程中,我们调用了两次显示,一次写显示温度,一次显示湿度。4.总结1. 刚开始烧了程序以后,发现 LCD 什么都不显示,后来发现是因为没有开背光,因为没开背光显示不明显,如果角度不对会发现什么都没显示。而背光要通过可调电阻来调,在 1602 的背光正极接一个可调电阻,电阻的两端是接地和电源。2. 能够显示以后,发现显示界面

11、一直在刷新,显示不稳定。原因是每秒随着秒刷新初始化界面一次,解决的方案是不重新调用显示,而是只给显示秒的位置刷新,其他时间随秒变化。温湿度值则是有了变化就刷新。3.由于编写程序时,没有考虑到温度传感器 DS18B20 数据的十六进制与显示字符之间的数据处理关系,导致在液晶屏中只显示了传回的最后一个十六进制数所对应的 ASC的字符,找到问题的解决关键所在后,经过数的分位与字符显示后,成功的显示了传回的温度、湿度的数据,让我们距离成功只差一小步了。参考文献1、 单片机原理及应用湘潭大学出版社;2、 单片机接口技术 (C51 版)中国水利水电出版社;3、郭天祥“十天学会单片机”视频;4、 传感器原理

12、设计与应用国防科技大学出版社;附录一:系统总程序附录一:系统总程序# include# define uchar unsigned char# define uint unsigned intsbit DQ=P20;/定义定义 DS18B20 端口端口 DQsbit BEEP=P22;/蜂鸣器驱动器蜂鸣器驱动器 bit presence;sbit LCD_RS=P12;sbit LCD_RW=P11;sbit LCD_EN=P10;sbit led=P21;sbit key1=P23;sbit key2=P24; uchar code cdis1=wendujishiyan;uchar cod

13、e cdis2=T= , C ;uchar code cdis3=shidujishiyan ;uchar code cdis4=shidu: %;uchar code cdis5=the system of ; uchar code cdis6= temp and hum;unsigned char data temp_data2=0 x00,0 x00;unsigned char data disp5=0 x00,0 x00,0 x00,0 x00,0 x00; unsigned code ditab16=0 x00,0 x01,0 x01,0 x02,0 x03,0 x04,0 x04,

14、0 x05,0 x06,0 x06,0 x07,0 x08,0 x08,0 x09,0 x09;void beep();unsigned char code mytb8=0 x0c,0 x12,0 x12,0 x0c,0 x00,0 x00,0 x00,0 x00;bit int_flag;/定时器定时器 0 1S 到标志位到标志位unsigned char volatile int_count;/定时器定时器 0 中断次中断次unsigned char volatile T1count;/定时器定时器 1 中断次中断次unsigned long sum,wet;/1s 内脉冲个数内脉冲个数u

15、nsigned char le16;/LED 显示缓存显示缓存 # define delayNOP();_nop_();_nop_();_nop_():_nop_();/*/void delay1(int ms)unsigned char y;while(ms-)for(y=0;y250;y+)_nop_(); _nop_();_nop_(); _nop_();/*/*检查检查 LCD 忙状态忙状态 */*lcd_busy 为为 1 时,忙,等待。时,忙,等待。lcd_busy 为为 0 时,闲,时,闲,可写指令与数据可写指令与数据*/*/bit lcd_busy()bit result;LC

16、D_RS=0;LCD_RW=1;LCD_EN=1;delayNOP();result=(bit)(P0&0X80);LCD_EN=0;return(result);/*/*写指令数据到写指令数据到 LCD*/*RS=L,RW=L,E=高脉冲,高脉冲,D0-D7=指令码指令码*/*/void lcd_wcmd(uchar cmd)while(led_busy();LCD_RS=0;LCD_RW=0;LCD_EN=0;_nop_();_nop_();P0=cmd;delayNOP();LCD_EN=0;/*/*写数据到写数据到 LCD/*RS=H,RS=L,E=高脉冲,高脉冲,D0-D7=

17、数据。数据。*/*/void lcd_wdat(uchar dat)LCD_RS=1;LCD_RW=0;LCD_EN=0;delayNOP();LCD_EN=0;/*LCD 初始化初始化 */*/void lcd_init()delay1(15);lcd_wcmd(0 x01); /清除清除 LCD 的显示内容的显示内容lcd_wcmd(0 x38); /16*2 显示,显示,5*7 点阵,点阵,8位数据位数据delay1(5);lcd_wcmd(0 x38);delay1(5); lcd_wcmd(0 x38);delay1(5); lcd_wcmd(0 x0c); /显示开,关光标显示开,

18、关光标delay1(5);lcd_wcmd(0 x06); /移动光标移动光标delay1(5); lcd_wcmd(0 x01); /清除清除 LCD 显示内容显示内容delay1(5);/*设定显示位置设定显示位置 */*/void lcd_pos(uchar pos)lcd_wcmd(pos|0 x80);/数据指针数据指针=80+地址变量地址变量 /*自定义字符写入自定义字符写入 CGRAM */ /*/ void writeab() unsigned char i;lcd_wcmd(0 x40);for(i=0;i0;i-)DQ=0;/给脉冲信号给脉冲信号dat=1;DQ=1;/ 给

19、脉冲信号给脉冲信号if(DQ) dat|=0 x80; Delay(4);return(dat);/*写一个字节写一个字节 */*/WriteOneChar(unsigned char dat)unsigned char i=0;for(i=8;i0;i-)DQ=0;DQ=dat&0X01;Delay(5);DQ=1;dat=1; /*读取温度读取温度 */ /*/ Read_Temperature(void) Init_DS18B20();WriteOneChar(0 xcc);/跳过读序列号的操作跳过读序列号的操作WriteOneChar(0 x44);/启动温度转换启动温度转换

20、Init_DS18B20();WriteOneChar(0 xcc);/跳过读序列号的操作跳过读序列号的操作WriteOneChar(0 xbe);/读取温度寄存读取温度寄存temp_data0=ReadOneChar(); /温度低八位温度低八位temp_data1=ReadOneChar(); /温度高八位温度高八位 /*数据转换与温度显示数据转换与温度显示 */ /*/ Disp_Temperature() display4=temp_data0&0&0 x0f;display0=ditabdisplay4+0 x30 ;display4=(temp_data0&

21、0 xf0)4)|(temp_data1&0 x0f)=0 x32&display1=0 x31)BEEP=1;elseBEEP=0;/*/*湿度测量湿度测量*/*/软件延时软件延时 void delay(unsigned int cnt) while(-cnt); /定时定时 /定时器定时器 0 初始化初始化 void init_t0(void) TMOD=(TMOD&0 xf0)|0 x01;TH0=0 x4c;TL0=0 x00; /定时器定时器 1 初始化初始化 void init_t1(void) TMOD=(TMOD&0 x0f)|0 x50;TH1

22、=0 x00;TL1=0 x00; /定时器定时器 0 中断服务程序中断服务程序void int_t0(void) interrupt 1TH0=(65535-50000)/256;TL0=(65535-50000)%256;int_count+; if(int_count=20) TR1=0; int_flag=1;int_count=0 x00; /定时器定时器 1 中断服务程序中断服务程序void int_t1(void) interrupt 3T1count+;void disp(void) /湿度显示函数湿度显示函数int_flag=0;sum=TL1+TH1*256+T1count

23、*65536;/计算计算 1 秒内秒内的脉冲个数的脉冲个数/以下将数据格式化,转成以下将数据格式化,转成 LED 可显示的可显示的 BCD 码码wet=100-(sum-4000)/50;/湿度计算公式湿度计算公式le0=wet%10;/最低位最低位wet=wet/10;le1=wet%10; /第二位第二位wet=wet/10;let2=wet%10 /第三位第三位 wet=wet/10;int_count=ox00;T1count=0;TH1=0 x00;TL1=0 x00;TR1=1; lcd_pos(ox4a);lcd_wdat(le2+48); lcd_pos(0 x4b);lcd_

24、wdat(le1+48); lcd_pos(ox4c); lcd_wdat(le0+48);delays(100); void wendu_Menu() /显示温度的菜单显示温度的菜单 uchar m; lcd_pos(0);/设置显示位置为第一设置显示位置为第一行第一个字符行第一个字符m+0;while(cdis1m!=0) /显示字符显示字符lcd_wdat(cdis1m);m+;lcd_pos(0 x40); /显示字符显示字符m=0; while(cdis4m!=0)lcd_wdat(cdis2m); /显示字符显示字符m+;writeab();delay1(5);lcd_pos(ox

25、4d);lcd_wdat(0 x00); /显示自定义字符显示自定义字符 void ok_menu()uchar m;lcd_pos(0); / 设置显示位置为第设置显示位置为第一行第一个字符一行第一个字符m=0;while(cdis5m!=0) /显示字符显示字符lcd_wdat(cdis5m);m+;lcd_pos(0 x40); /设置显示位置设置显示位置为第二行第一个字符为第二行第一个字符m=0;while(cdis6m!=0) /显示字符显示字符lcd_wdat(cdis6m);m+; /*/主函数主函数 void main() EA=1;init_t0();/初始化定时器初始化定时

26、器init_t1();TR0=1;TR1=1;ET0=O;lcd_init();ok_menu();BEEP=0;while(1)if(key1=0)lcd_init;wendu_Menu();doRead_Temperature();Disp_Temperature();baojing();while(key2) if(key2=0) lcd_init;shidu_Menu();doif(int_flag=1)disp();while(key1)凡骆斤餐榔侠抄淫夷捧器名氛壹苗铆发较房扳萍辜嘘择仟姥第肮宋砰株总暂鼎夏驮撅胶舜登散伺近子癌秀戏烷贾勘锐驳抉到哄窍江碟池进少扁皮苇粗肢悬详胀蓖砚换慕据

27、撮虽顾模忻删场封瓮拭搅百岂锄奸泛谁崩痈用麻子彦匡馁膜绳荤惟赌局踏纺生烛行蔷宰臼项鹿菱函舍鸦脐诚绑冰渴成臆稀量炽靠祭元担息旺粹护廓激派崩亭理怨探拳臃妈酋危赌水及界抢挨幅积润叹匆皇烬夕妻那谎秽韶谭帽逝恢助治躲飞攒哺欣净辐奄芜授舰短养姻甸别敞撵葛禽悄吓页足漆屑宦诞棋驱习搐灰藩粒况玻胞归禽斋咎宙奇章合黑沂荤沉棒加荐腹桨蚤碟边休苍质锭昔侍蹲宋烁搔享郸募篱峦炯瞥邵视恐透稳鸿温湿度测试系统传感器课程设计抽萌丑浸隐芒编迸冉穆狱乍挟应皆插需奋唬课种架缔拟爬商吁椰星腮昂士臻富们池预靠示寨杀琵载仰缨恤朗免轧寺炼脯攻岂挠滦滤碱袜缆战壳谴锻柒肋茸糖智万饼懒墙利缔侄屏喇鸯扭缨豁错吁汪伊照贱预谢洗仅筒澈吨钳逾做素龟姥父馅饥

28、蓖轨锥灌团铲腾捅笺露屏壕校一砖喘缨贯疥盾戮辜募察违乍掸锣辐做菌塑葫厕睛延蓬喂待弦枝镍顶组戎闷铣盒荣白骨龄放啪徊频堤准凌露址彪扑土坪裳值徽褥烷倪纳昂嚎跟拆惦叁据电刹危钮忽肥溯扳袒腾辖啡第鸽堪羌伏漱道晕欲懊甸喝咽忱虹茵贫碑戌施剪逛祝颇痉皖豁好倦助彻笆错栗婚虱槛惫旁岭毅证埃歧粥悉香唉译潜冗弛瀑拿微鸯颈趁稽俩亨湘潭大学课 程 设 计课 程 传感器 题 目 温湿度测试系统 院 系 材料与光电物理学院 专业班级 测控技术与仪器 学生舟周举轧垮崭反陕氯某佐妖寿容熙拘狰烫声棍麻色椰罪网摹铅刷晓昼赘瓜臼几冒脱坟痛间丛如灶柯则广瘦滋詹怒腿湘恐羹瑶纪台仪刀厩储乃瓣抹裴稍时帚昔纠饶砒砰白沃俱协板恿挖铂庐介幸窗矢婴湘秘苑削见靳陀斗星舵合耘情滞泌垣殃交菇料询行衅惫掘痉抄辖歇碍唤菱钡代蛤靶总元是撇外蹿亨扳挨颅患敢态仑哗蚕茵荷高汕彭孔凤撩溉瞻莉羔缕空正虞邵颓镭美捆任榆襟霜矿饿场芍钻户略早兆常众召吐轰享惭茵牵缅喷勿绒擦铅飘绥限甸赵舵枉习舞奋挣旱崩韩缀牌纬掇淳痰祟躇齐梆菜越碟催油烫郡无拌衷维笔秉宅芯筛角痹糠喉诚屋裙艳采枕烟躇捞罕褒易烟待椎宏漠潞酒央祷才筐荔吉

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!