ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:129.12KB ,
资源ID:4006007      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4006007.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数字温湿度计的设计.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数字温湿度计的设计.docx

1、数字温湿度计的设计 智能仪器仪表课程设计题 目 SHT10数字温湿度计的设计 学院(部) 机械工程学院 专 业 测控技术与仪器 学生姓名 刘娅丽 学 号 201210114122 年级 2012级 指导教师 莫莉 职称 讲师 2015 年 6 月 8 日摘要温湿度是一种最基本的环境参数,温湿度的测量方法和装置对现在的生活、生产具有重要的意义。此温湿度测量系统是基于温湿度传感器SHT10、单片机STC89C52对温度湿度分别测量并通过液晶1602显示屏经行显示。使用新式智能的温湿度传感器STH10来实现对温度、湿度的监测,该传感器包括一个电容性聚合体测湿敏感元件、一个用能隙材料制成的测温元件,并

2、在同一芯片上,与14位的A/D转换器以及串行接口电路实现无缝连接。因此,该产品具有品质卓越、响应迅速、抗干扰能力强、性价比高,本系统具有可读性高,稳定性高,反应速度快,测量值准确的特点。关键词:单片机;SHT10温湿度传感器;LCD1602显示目 录第一章 绪论 11.1 课题的研究背景 11.2 课题的研究内容及目标 1第二章 系统方案设计 22.1 设计目的及要求 22.2器件选择 2第三章 系统的硬件设计与实现 4 3.1 单片机部分 4 3.1.1 AT89C52单片机概况 4 3.1.2 最小系统原理图 43.2 传感器部分 43.2.1 SHT10产品概述 43.2.2 管脚说明

3、53.2.3 传感器模块电路图 53.3 显示模块 63.3.1 1602LCD的基本参数及引脚功能 6 3.3.2 1602LCD主要技术参数: 6 3.3.3 引脚功能说明 6 3.3.4 1602LCD的指令说明 7第四章 软件设计 84.1主程序流程图 84.2 SHT10传感器程序设计 94.2.1 启动传输 94.2.2 连接复位 94.3 液晶程序设计 12总结 13参考文献 14附录一 电路图 15附录二 程序代码 16第一章 绪论1.1 课题的研究背景温度与湿度与人们的生活息息相关。尤其是在工农业生产、气象、国防、科研等部门,必须经常、精确的对环境温度进行监测和控制。此外,在

4、制药,造纸准及温湿度测量,食品加工和其他行业是必要的。比较传统的温度计使用水银制作显示,构造简单、价格低廉,缺憾是精确度不高,不宜读数。传统的干湿球温度计的显示方法,不仅复杂,测量精度不高。而选用单片机对温湿度实施监控和测量,不单单具有节制便利,单一灵活的特点,而且可以大大提高温度控制的灵活性的优点。用LED数码管显示温度和湿度值,看起来更直观。测量温度和湿度最重要的就是传感器。温度和湿度的测量过去是分离的。传感器的成长历经了三个阶段:传统的分立式温度传感器、模拟集成温度传感器、智能集成温度传感器。目前,从模拟到数字温度传感器的模型的方向,从集成化向智能化,网络化的发展。温度传感器也经历过这样

5、的阶段走向数字化、智能化。1.2 课题的研究内容及目标温度和湿度探测器是以AT89C52单片机为核心控制芯片,该芯片具有良好的抗干扰能力,快速响应。使用此单片机构成的温湿度检测仪能够定时、无误的监测周围的温度和相对湿度。 使用高灵敏度收集湿敏电阻阻值变化,然后经由单片机从而得到相应湿度,这就是本检测仪的硬件部份的设计;DHT11数字温度传感器对温度的实时采集和直接控制监测。并用LCD显示屏作为显示设备的硬件设计方案。软件部分选用模块化的方式分成几个个体,一个个进行程序设计,最后连接各部分一起协调工作,从而实现实时监测周围温湿度的目的。第二章 系统方案设计2.1 设计目的及要求温度、湿度是工业和

6、农业生产的主要环境参数。是否能够及时、准确地测量很重要。如果单片机来对温度进行控制,利用高精度的温度,湿度控制,强湿功能,体积小,价格低,简单灵活,很好的满足工艺要求。要求如下:1、实现温度和湿度的测量;2、按电源键进行测量;3、温度测量要求:,具有8路模拟输入通道,每一通道每秒检测100次4、温度的测量范围、精度:0200,测量精度为1。系统测量环境温度为20。5、湿度测量要求:具有8路模拟输入通道,每一通道每秒检测100次6、湿度测量范围、精度:0100%RH,测量精度为1%RH。系统测量环境温度为20。7、在LCD显示屏上显示数据和结果;2.2器件选择 2.2.1传感器选择使用数字温湿度

7、传感器SHT10。湿度测量范围: 0100%RH;温度测量范围:40 + 85;湿度测量精度:2%相对湿度0.2温度测量精度。该传感器价格很便宜。温度和湿度都达到或超过了标题的精度要求,属于低功率传感器。 2.2.2显示器选择使用LCD1602液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。它具有体积小、低功耗、显示丰富等优点。电路连接简单,价格也便宜。 2.2,3 单片机选择 采用AT89C52单片机,AT89C52是一个低电

8、压,高性能CMOS8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2 个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的

9、Flash存储器可有效地降低开发成本。它既经济又有较大的内存,能很好的达到设计要求。2.3系统总体方案 1 方案一用湿敏传感器和温度传感器采集环境温湿度数据,经放大滤波、A/D转换后,数据送入单片机进行处理,再用数码管显示。此方案电路较复杂,也不便于调试。 2 方案二采用数字温湿度传感器SHT10采集温湿度信号,AT89C52单片机作为处理器,温度、湿度显示在LCD1602上。此方案电路简单,易于调试,抗干扰能力强。综合考虑,选择方案二作为系统总体方案。图2-1 系统结构框图第三章 系统的硬件设计与实现3.1 单片机部分 3.1.1 AT89C52单片机概况AT89C52有40个引脚,32个外

10、部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2 个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。 3.1.2 最小系统原理图图3-1 单片机最小系统3.2 传感器部分 3.2.1 SHT10产品概述SHT10数字温湿度传感器是一种复合传感器,它包含已校准数字信号输出。通过特殊的数字模块采集技术和温湿度传感技术,以确保产品拥有相当高的可靠性和卓越的长期稳定性。传感器由一个电阻式感湿元件与一个NTC测温元件组成,跟

11、一个高性能的8位单片机相连接。因此,产品品质优良,响应速度快,抗干扰能力强,性价比很高。而且它的每次校准都在及其标准的温湿度实验室中进行。将所测的校准系数用程序存储在OTP内存中,当需要处理检测到的信号时,传感器会自动调用这些标准系数。单线串行接口,很容易和快速的系统集成。它的优点是体积小、低功耗、最高20米以上的远距离信号传递,使它能够在最为严格的场合使用。 3.2.2 管脚说明1:电源负极,电源引脚(VDD,GND)之间可增加一个100nF的电容,用以去耦滤波。2:串行数据,DATA三态门用于数据的读取。DATA在SCK时钟下降沿之后改变状态,并仅在SCK时钟上升沿有效。数据传输期间,在S

12、CK时钟高电平时,DATA必须保持稳定。为避免信号冲突,微处理器应驱动DATA在低电平。需要一个外部的上拉电阻(例如:10k)将信号提拉至高电平(参见图2)。上拉电阻通常已包含在微处理器的I/O电路中。3:串行时钟输入,SCK用于微处理器与SHTxx之间的通讯同步。由于接口包含了完全静态逻辑,因此不存在最小SCK频率。4:SHTxx的供电电压为2.45.5V。传感器上电后,要等待11ms以越过“休眠”状态。在此期间无需发送任何指令。 3.2.3 传感器模块电路图图3-2 传感器电路图3.3 显示模块 3.3.1 1602LCD的基本参数及引脚功能1602LCD分为带背光和不带背光两种,基控制器

13、大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图4-5所示:图3-3 LCD尺寸图 3.3.2 1602LCD主要技术参数:显示容量:162个字符芯片工作电压:4.55.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.954.35(WH)mm 3.3.3 引脚功能说明 1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表3-1所示:表3-1 引脚功能编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数

14、据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极 3.3.4 1602LCD的指令说明 1602液晶模块内部的控制器共有11条控制指令,如表3-2所示:表3-2 指令说明序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01B

15、F计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容第四章 软件设计4.1主程序流程图 N Y 温湿度修正 显示图4-1 程序流程图4.2 SHT10传感器程序设计 4.2.1 启动传输图4-2 启动传输时序程序:DATA=1; SCK=0; _nop_(); SCK=1; _nop_(); DATA=0; _nop_(); SCK=0; _nop_();_nop_();_nop_(); SCK=1; _nop_(); DATA=1; _nop_(); SCK=0; 4.2.2 连接复位图4-3 连接复位时序程序:unsigned

16、char i; DATA=1; SCK=0; for(i=0;i0;i/=2) if (i & value) DATA=1; else DATA=0; SCK=1;_nop_();_nop_();_nop_(); SCK=0; DATA=1; SCK=1; error=DATA; _nop_();_nop_();_nop_(); SCK=0;DATA=1; return error;/返回:0成功,1失败 读函数:char s_read_byte(unsigned char ack) unsigned char i,val=0; DATA=1; for (i=0x80;i0;i/=2) SCK

17、=1; if (DATA) val=(val | i); _nop_();_nop_();_nop_(); SCK=0; if(ack=1)DATA=0; else DATA=1; _nop_();_nop_();_nop_(); SCK=1; _nop_();_nop_();_nop_(); SCK=0; _nop_();_nop_();_nop_(); DATA=1; return val; 4.3 液晶程序设计 4.3.1 LCD1602部分时序说明 表4-1 液晶时序说明读状态输入RS=L,R/W=H,E=H输出D0D7=状态字写指令输入RS=L,R/W=L,D0D7=指令码,E=高脉

18、冲输出无读数据输入RS=H,R/W=H,E=H输出D0D7=数据写数据输入RS=H,R/W=L,D0D7=数据,E=高脉冲输出无 4.3.2 1602LCD的一般初始化(复位)过程写指令38H:显示模式设置写指令08H:显示关闭写指令01H:显示清屏写指令06H:显示光标移动设置写指令0CH:显示开及光标设置总结 此次课程设计中,难点在于SHT10温湿度传感器的使用,即对它的时序控制、初始化以及字节读写方法,任何一个环节出错或是时序控制不到位的话就不能得到正确的数据。一旦学会了正确的使用方法,就能感觉到它带来的便利是热电偶不能比拟的,以后再次使用的话就能很快上手了。利用温度传感器获取被控对象指

19、标,通过温度传感器将需要测量的温度信号转化为数字电信号,再经单片机转换成显示器可以识别的信息,最后显示输出。起初,我制订了合理的规划,绘制了与课题相关的硬件原理图,分析了单片机的各I/O端口。然后进行程序设计的分析,设计绘制流程图,并按照流程图,进行程序段的编写。接下来把所有的程序段组合在一起综合分析,最后烧录到单片机上进行硬件调试。 在这整个过程当中,我遇到了重重困难。如程序里括号及分号的错误;编程中共用体的语句的使用;18B20上电温度误判;由于没有合理的考虑到字节的长度的问题导致一系列的错误等问题。通过多次分析和调试,查阅互联网资料最终成功解决。 单片机不是只要学好怎样写程序就够了,还要

20、对硬件有所了解,要把软件与硬件相结合才,期间还要经过多次的失败,需要相当的耐心和细致的思考来排除一切困难,一步一步地解决问题。 总的来说,自己从这次独立的课程设计中收获了一些知识与经验,一些从书本中学之不来的东西,不是说理论无用,而这恰恰是在理论的土壤中开出的花朵,是在理论的肩膀望见的更宽广的道路!自主动手动脑实践,成功来之不易!参考文献1 谢光忠、蒋亚东等. 温湿度智能数据采集控制系统的研制:传感器技术 20004.2 丁元杰.单片微机原理及应用.北京:机械工业出版社.1993.3 余永权.MCS-51系列单片机应用技术.北京:北京航空航天出版社.2002.4 刘勇.数字电路.北京电:子工业

21、出版社.2004.5 王法能.单片机原理及应用(简明修订版). 北京:科学出版社.2001. 6 赵伟军.PROTEL 99 SE 教程.北京:人民邮电出版社.2004.7 黄 强.模拟电子技术北京:科学出版社.2003. 8 陈晓文.电子电路课程设计.北京:北京电子工业出版社. 2004.附录一 电路图图一 电路仿真图附录二 程序代码#include #include #include /Keil library #include /Keil library #define LCD_DB P0sbit LCD_RS=P20; sbit LCD_RW=P21; sbit LCD_E=P22;s

22、bit SCK = P26; /定义通讯时钟端口Sbit DATA = P27; /定义通讯数据端口 typedef union unsigned int i; /定义了两个共用体 float f; value;enum TEMP,HUMI; /TEMP=0,HUMI=1#define noACK 0 /用于判断是否结束通讯#define ACK 1 /结束数据传输 #define STATUS_REG_W 0x06 /000 0011 0 #define STATUS_REG_R 0x07 /000 0011 1 #define MEASURE_TEMP 0x03 /000 0001 1 #

23、define MEASURE_HUMI 0x05 /000 0010 1 #define RESET 0x1e /000 1111 0 #define uchar unsigned char#define uint unsigned intvoid LCD_init(void); /初始化函数void LCD_write_command(uchar command); /写指令函数void LCD_write_data(uchar dat); /写数据函数void LCD_disp_char(uchar x,uchar y,uchar dat);/显示字符,X(0-15),y(1-2)void

24、 LCD_disp_str(uchar x,uchar y,uchar *str);/LCD1602显示字符串函数void delay_n10us(uint n); /延时函数/初始化LCD1602 void LCD_init(void) delay_n10us(10); LCD_write_command(0x38); delay_n10us(10); LCD_write_command(0x0c); delay_n10us(10); LCD_write_command(0x06); delay_n10us(10); LCD_write_command(0x01); delay_n10us(

25、100); /LCD写指令 void LCD_write_command(uchar dat) delay_n10us(10); LCD_RS=0; /指令 LCD_RW=0; /写入 LCD_E=1; /允许 LCD_DB=dat; delay_n10us(10); LCD_E=0; delay_n10us(10); /LCD写数据void LCD_write_data(uchar dat) delay_n10us(10); LCD_RS=1; /数据 LCD_RW=0; /写入 LCD_E=1; /允许 LCD_DB=dat; delay_n10us(10); LCD_E=0; delay

26、_n10us(10);/LCD1602显示一个字符函数void LCD_disp_char(uchar x,uchar y,uchar dat) uchar address; if(y=1) address=0x80+x; else address=0xc0+x; LCD_write_command(address); LCD_write_data(dat);/LCD1602显示字符串函数void LCD_disp_str(uchar x,uchar y,uchar *str) uchar address; if(y=1) address=0x80+x; else address=0xc0+x

27、; LCD_write_command(address); while(*str!=0) LCD_write_data(*str); str+; void delay_n10us(uint n) uint i; for(i=n;i0;i-) _nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();/延时10us12M晶振 /*定义函数*/void s_transstart(void); /启动传输函数void s_connectionreset(void); /连接复位函数char s_write_byte(unsigned char value);/DHT90写函数char s_read_byte(unsigned char ack); /DHT90读函数char s_measure(unsigned char *p_value, unsigned char *p_checksum, unsigned char mode);/测量温湿度函数void calc_dht90(float *p_humidity ,float *p_temperature);/温湿度补偿/启动传输函数 void s_transstart(void) / generates a transmission start / _

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1