数字温湿度计的设计文档格式.docx
- 文档编号:16912914
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:29
- 大小:129.12KB
数字温湿度计的设计文档格式.docx
《数字温湿度计的设计文档格式.docx》由会员分享,可在线阅读,更多相关《数字温湿度计的设计文档格式.docx(29页珍藏版)》请在冰豆网上搜索。
总结13
参考文献14
附录一电路图15
附录二程序代码16
第一章绪论
1.1课题的研究背景
温度与湿度与人们的生活息息相关。
尤其是在工农业生产、气象、国防、科研等部门,必须经常、精确的对环境温度进行监测和控制。
此外,在制药,造纸准及温湿度测量,食品加工和其他行业是必要的。
比较传统的温度计使用水银制作显示,构造简单、价格低廉,缺憾是精确度不高,不宜读数。
传统的干湿球温度计的显示方法,不仅复杂,测量精度不高。
而选用单片机对温湿度实施监控和测量,不单单具有节制便利,单一灵活的特点,而且可以大大提高温度控制的灵活性的优点。
用LED数码管显示温度和湿度值,看起来更直观。
测量温度和湿度最重要的就是传感器。
温度和湿度的测量过去是分离的。
传感器的成长历经了三个阶段:
传统的分立式温度传感器、模拟集成温度传感器、智能集成温度传感器。
目前,从模拟到数字温度传感器的模型的方向,从集成化向智能化,网络化的发展。
温度传感器也经历过这样的阶段走向数字化、智能化。
1.2课题的研究内容及目标
温度和湿度探测器是以AT89C52单片机为核心控制芯片,该芯片具有良好的抗干扰能力,快速响应。
使用此单片机构成的温湿度检测仪能够定时、无误的监测周围的温度和相对湿度。
使用高灵敏度收集湿敏电阻阻值变化,然后经由单片机从而得到相应湿度,这就是本检测仪的硬件部份的设计;
DHT11数字温度传感器对温度的实时采集和直接控制监测。
并用LCD显示屏作为显示设备的硬件设计方案。
软件部分选用模块化的方式分成几个个体,一个个进行程序设计,最后连接各部分一起协调工作,从而实现实时监测周围温湿度的目的。
第二章系统方案设计
2.1设计目的及要求
温度、湿度是工业和农业生产的主要环境参数。
是否能够及时、准确地测量很重要。
如果单片机来对温度进行控制,利用高精度的温度,湿度控制,强湿功能,体积小,价格低,简单灵活,很好的满足工艺要求。
要求如下:
1、实现温度和湿度的测量;
2、按电源键进行测量;
3、温度测量要求:
,具有8路模拟输入通道,每一通道每秒检测100次
4、温度的测量范围、精度:
0℃~200℃,测量精度为±
1℃。
系统测量环境温度为20℃。
5、湿度测量要求:
具有8路模拟输入通道,每一通道每秒检测100次
6、湿度测量范围、精度:
0~100%RH,测量精度为±
1%RH。
7、在LCD显示屏上显示数据和结果;
2.2器件选择
2.2.1传感器选择
使用数字温湿度传感器SHT10。
湿度测量范围:
0%~100%RH;
温度测量范围:
40~+85℃;
湿度测量精度:
±
2%相对湿度±
0.2℃温度测量精度。
该传感器价格很便宜。
温度和湿度都达到或超过了标题的精度要求,属于低功率传感器。
2.2.2显示器选择
使用LCD1602液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。
它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。
它具有体积小、低功耗、显示丰富等优点。
电路连接简单,价格也便宜。
2.2,3单片机选择
采用AT89C52单片机,AT89C52是一个低电压,高性能CMOS
8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
它既经济又有较大的内存,能很好的达到设计要求。
2.3系统总体方案
1方案一
用湿敏传感器和温度传感器采集环境温湿度数据,经放大滤波、A/D转换后,数据送入单片机进行处理,再用数码管显示。
此方案电路较复杂,也不便于调试。
2方案二
采用数字温湿度传感器SHT10采集温湿度信号,AT89C52单片机作为处理器,温度、湿度显示在LCD1602上。
此方案电路简单,易于调试,抗干扰能力强。
综合考虑,选择方案二作为系统总体方案。
图2-1系统结构框图
第三章系统的硬件设计与实现
3.1单片机部分
3.1.1AT89C52单片机概况
3.1.2最小系统原理图
图3-1单片机最小系统
3.2传感器部分
3.2.1SHT10产品概述
SHT10数字温湿度传感器是一种复合传感器,它包含已校准数字信号输出。
通过特殊的数字模块采集技术和温湿度传感技术,以确保产品拥有相当高的可靠性和卓越的长期稳定性。
传感器由一个电阻式感湿元件与一个NTC测温元件组成,跟一个高性能的8位单片机相连接。
因此,产品品质优良,响应速度快,抗干扰能力强,性价比很高。
而且它的每次校准都在及其标准的温湿度实验室中进行。
将所测的校准系数用程序存储在OTP内存中,当需要处理检测到的信号时,传感器会自动调用这些标准系数。
单线串行接口,很容易和快速的系统集成。
它的优点是体积小、低功耗、最高20米以上的远距离信号传递,使它能够在最为严格的场合使用。
3.2.2管脚说明
1:
电源负极,电源引脚(VDD,GND)之间可增加一个100nF的电容,用以去耦滤波。
2:
串行数据,DATA三态门用于数据的读取。
DATA在SCK时钟下降沿之后改变状态,并仅在SCK时钟上升沿有效。
数据传输期间,在SCK时钟高电平时,DATA必须保持稳定。
为避免信号冲突,微处理器应驱动DATA在低电平。
需要一个外部的上拉电阻(例如:
10kΩ)将信号提拉至高电平(参见图2)。
上拉电阻通常已包含在微处理器的I/O电路中。
3:
串行时钟输入,SCK用于微处理器与SHTxx之间的通讯同步。
由于接口包含了完全静态逻辑,因此不存在最小SCK频率。
4:
SHTxx的供电电压为2.4~5.5V。
传感器上电后,要等待11ms以越过“休眠”状态。
在此期间无需发送任何指令。
3.2.3传感器模块电路图
图3-2传感器电路图
3.3显示模块
3.3.11602LCD的基本参数及引脚功能
1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图4-5所示:
图3-3LCD尺寸图
★显示容量:
16×
2个字符
★芯片工作电压:
4.5—5.5V
★工作电流:
2.0mA(5.0V)
★模块最佳工作电压:
5.0V
★字符尺寸:
2.95×
4.35(W×
H)mm
3.3.3引脚功能说明
1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表3-1所示:
表3-1引脚功能
编号
符号
引脚说明
1
VSS
电源地
9
D2
数据
2
VDD
电源正极
10
D3
3
VL
液晶显示偏压
11
D4
4
RS
数据/命令选择
12
D5
5
R/W
读/写选择
13
D6
6
E
使能信号
14
D7
7
D0
15
BLA
背光源正极
8
D1
16
BLK
背光源负极
3.3.41602LCD的指令说明
1602液晶模块内部的控制器共有11条控制指令,如表3-2所示:
表3-2指令说明
序号
指令
清显示
光标返回
*
置输入模式
I/D
S
显示开/关控制
D
C
B
光标或字符移位
S/C
R/L
置功能
DL
N
F
置字符发生存贮器地址
字符发生存贮器地址
置数据存贮器地址
显示数据存贮器地址
读忙标志或地址
BF
计数器地址
写数到CGRAM或DDRAM)
要写的数据内容
从CGRAM或DDRAM读数
读出的数据内容
第四章软件设计
4.1主程序流程图
N
Y
温湿度修正
显示
图4-1程序流程图
4.2SHT10传感器程序设计
4.2.1启动传输
图4-2启动传输时序
程序:
DATA=1;
SCK=0;
_nop_();
SCK=1;
DATA=0;
DATA=1;
4.2.2连接复位
图4-3连接复位时序
unsignedchari;
for(i=0;
i<
9;
i++)
{
}
s_transstart();
//开始传输函数
4.2.3读写函数
写函数:
chars_write_byte(unsignedcharvalue)
unsignedchari,error=0;
for(i=0x80;
i>
0;
i/=2)
{
if(i&
value)DATA=1;
elseDATA=0;
SCK=0;
}
error=DATA;
_nop_();
returnerror;
//返回:
0成功,1失败
读函数:
chars_read_byte(unsignedcharack)
unsignedchari,val=0;
{
SCK=1;
if(DATA)val=(val|i);
}
if(ack==1)DATA=0;
elseDATA=1;
_nop_();
returnval;
}
4.3液晶程序设计
4.3.1LCD1602部分时序说明
表4-1液晶时序说明
读状态
输入
RS=L,R/W=H,E=H
输出
D0—D7=状态字
写指令
RS=L,R/W=L,D0—D7=指令码,E=高脉冲
无
读数据
RS=H,R/W=H,E=H
D0—D7=数据
写数据
RS=H,R/W=L,D0—D7=数据,E=高脉冲
4.3.21602LCD的一般初始化(复位)过程
★写指令38H:
显示模式设置
★写指令08H:
显示关闭
★写指令01H:
显示清屏
★写指令06H:
显示光标移动设置
★写指令0CH:
显示开及光标设置
总结
此次课程设计中,难点在于SHT10温湿度传感器的使用,即对它的时序控制、初始化以及字节读写方法,任何一个环节出错或是时序控制不到位的话就不能得到正确的数据。
一旦学会了正确的使用方法,就能感觉到它带来的便利是热电偶不能比拟的,以后再次使用的话就能很快上手了。
利用温度传感器获取被控对象指标,通过温度传感器将需要测量的温度信号转化为数字电信号,再经单片机转换成显示器可以识别的信息,最后显示输出。
起初,我制订了合理的规划,绘制了与课题相关的硬件原理图,分析了单片机的各I/O端口。
然后进行程序设计的分析,设计绘制流程图,并按照流程图,进行程序段的编写。
接下来把所有的程序段组合在一起综合分析,最后烧录到单片机上进行硬件调试。
在这整个过程当中,我遇到了重重困难。
如程序里括号及分号的错误;
编程中共用体的语句的使用;
18B20上电温度误判;
由于没有合理的考虑到字节的长度的问题导致一系列的错误等问题。
通过多次分析和调试,查阅互联网资料最终成功解决。
单片机不是只要学好怎样写程序就够了,还要对硬件有所了解,要把软件与硬件相结合才,期间还要经过多次的失败,需要相当的耐心和细致的思考来排除一切困难,一步一步地解决问题。
总的来说,自己从这次独立的课程设计中收获了一些知识与经验,一些从书本中学之不来的东西,不是说理论无用,而这恰恰是在理论的土壤中开出的花朵,是在理论的肩膀望见的更宽广的道路!
自主动手动脑实践,成功来之不易!
参考文献
[1]谢光忠、蒋亚东等.温湿度智能数据采集控制系统的研制:
传感器技术20004.
[2]丁元杰.单片微机原理及应用.北京:
机械工业出版社.1993.
[3]余永权.MCS-51系列单片机应用技术.北京:
北京航空航天出版社.2002.
[4]
刘勇.数字电路.北京电:
子工业出版社.2004.
[5]
王法能.单片机原理及应用(简明修订版).北京:
科学出版社.2001.
[6]
赵伟军.PROTEL99SE教程.北京:
人民邮电出版社.2004.
[7]
黄
强.模拟电子技术》北京:
科学出版社.2003.
[8]
陈晓文.电子电路课程设计.北京:
北京电子工业出版社.2004.
附录一电路图
图一电路仿真图
附录二程序代码
#include<
AT89c51.h>
intrins.h>
math.h>
//Keillibrary
stdio.h>
#defineLCD_DBP0
sbitLCD_RS=P2^0;
sbitLCD_RW=P2^1;
sbitLCD_E=P2^2;
sbitSCK=P2^6;
//定义通讯时钟端口
SbitDATA=P2^7;
//定义通讯数据端口
typedefunion
{unsignedinti;
//定义了两个共用体
floatf;
}value;
enum{TEMP,HUMI};
//TEMP=0,HUMI=1
#definenoACK0//用于判断是否结束通讯
#defineACK1//结束数据传输
#defineSTATUS_REG_W0x06//00000110
#defineSTATUS_REG_R0x07//00000111
#defineMEASURE_TEMP0x03//00000011
#defineMEASURE_HUMI0x05//00000101
#defineRESET0x1e//00011110
#defineucharunsignedchar
#defineuintunsignedint
voidLCD_init(void);
//初始化函数
voidLCD_write_command(ucharcommand);
//写指令函数
voidLCD_write_data(uchardat);
//写数据函数
voidLCD_disp_char(ucharx,uchary,uchardat);
//显示字符,X(0-15),y(1-2)
voidLCD_disp_str(ucharx,uchary,uchar*str);
//LCD1602显示字符串函数
voiddelay_n10us(uintn);
//延时函数
//初始化LCD1602
voidLCD_init(void)
{
delay_n10us(10);
LCD_write_command(0x38);
LCD_write_command(0x0c);
LCD_write_command(0x06);
LCD_write_command(0x01);
delay_n10us(100);
//LCD写指令
voidLCD_write_command(uchardat)
LCD_RS=0;
//指令
LCD_RW=0;
//写入
LCD_E=1;
//允许
LCD_DB=dat;
LCD_E=0;
//LCD写数据
voidLCD_write_data(uchardat)
LCD_RS=1;
//数据
//LCD1602显示一个字符函数
voidLCD_disp_char(ucharx,uchary,uchardat)
ucharaddress;
if(y==1)
address=0x80+x;
else
address=0xc0+x;
LCD_write_command(address);
LCD_write_data(dat);
voidLCD_disp_str(ucharx,uchary,uchar*str)
while(*str!
='
\0'
)
LCD_write_data(*str);
str++;
}
voiddelay_n10us(uintn)
uinti;
for(i=n;
i--)
{
//延时10us@12M晶振
/****************定义函数****************/
voids_transstart(void);
//启动传输函数
voids_connectionreset(void);
//连接复位函数
chars_write_byte(unsignedcharvalue);
//DHT90写函数
chars_read_byte(unsignedcharack);
//DHT90读函数
chars_measure(unsignedchar*p_value,unsignedchar*p_checksum,unsignedcharmode);
//测量温湿度函数
voidcalc_dht90(float*p_humidity,float*p_temperature);
//温湿度补偿
//启动传输函数
voids_transstart(void)
//generatesatransmissionstart
//__
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 温湿度 设计