资源描述
一、课程设计的目的及意义
本设计是测控仪器与系统课程综合训练,同学们可以通过理论学习,课题选择,资料查询,软件查阅,软、硬件设计,系统调试等环节,巩固和提高所学的知识和应用水平,进一步学习和领会测控应用系统的开发方式和技巧,提高学生分析问题和解决问题的能力,提高学生的实际动手能力。学会提出问题,观察和分析问题,得到最终的科学的方法。培养团队合作精神,严谨的工作作风,务实的工作态度。为今后的毕业设计,及从事测控系统的设计与维护奠定坚实的基础。
二、设计内容
采用将温度和湿度一起测量,即用一个温湿度传感器SHT11实现。温湿度传感器SHT11将温度感测、湿度感测、信号变换、A/D转换和加热器等功能集合到一个芯片上,该芯片包括一个电容性聚合体湿度敏感元件和一个用能隙材料制成的温度敏感元件,这两个敏感元件分别将湿度和温度转换成电信号,该信号首先进入微弱信号放大器进行信号放大,然后进入一个14位的A/D转换器,最后经过二线串行数字接口输出数字信号,采用数码管显示所测温度和湿度。
三、系统总体设计
1、主要功能要求
温度和湿度传感器均选用模拟类型,并完成其信号放大和传
递电路的设计;
AD转换采用8位并行的AD89C51;
显示器件选择LED液晶显示;
温度值和湿度值间隔轮流显示;
单片机系统采用51单片机系统;
完成硬件电路的设计和制作;
完成软件程序的设计;
完成整个系统的设计、调试和制作;
2、整机设计框图及整机概述
系统整机框图:
温度采集电路
湿度采集电路
AD
转换
51单片机最小系统
显示
单元
图1 系统整机框图
整机概述
本数字温湿度检测仪利用80c51单片机系统、温度传感器、湿度传感器、热敏电阻、AD转换器件和数码管显示器件。传感器采集现场温度及湿度,经过AD转换后送至单片机运算处理,并将处理后的数据送数码管显示,以此实现实时温度和湿度的检测。
硬件设计
4.1单片机
采用AT89C51,AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的 单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出 管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版 本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
4.2传感器
SHT11是瑞士Scnsirion公司推出的一款数字温湿度传感器芯片。该芯片广泛应用于暖通空调、汽车、消费电子、自动控制等领域。共主要特点如下:
◆高度集成,将温度感测、湿度感测、信号变换、A/D转换和加热器等功能集成到一个芯片上;
◆提供二线数字串行接口SCK和DATA,接口简单,支持CRC传输校验,传输可靠性高;
◆测量精度可编程调节,内置A/D转换器(分辨率为8~12位,能通过对芯片内部寄存器编程米选择);
◆测量精确度高,由于同时集成温湿度传感器,能提供温度补偿的湿度测量值和高质量的露点计算功能;
◆封装尺寸超小(7.62 mm×5.08mm×2.5 mm),测量和通信结束后,自动转入低功耗模式;
SHT11的内部结构和工作原理
温湿度传感器SHT11将温度感测、湿度感测、信号变换、A/D转换和加热器等功能集成到一个芯片上,其内部结构如图七所示。该芯片包括一个电容性聚合体湿度敏感元件和一个用能隙材料制成的温度敏感元件。这两个敏感元件分别将湿度和温度转换成电信号,该电信号首先进入微弱信号放大器进行放大;然后进入一个14位的A/D转换器;最后经过二线串行数字接口输出数字信号。SHT11在出厂前,都会在恒湿或恒温环境巾进行校准,校准系数存储在校准寄存器中;在测量过程中,校准系数会自动校准来自传感器的信号。此外,SHT11内部还集成一个加热元件,加热元件接通后能将SHT11的温度升高5℃左右,同时功耗也会有所增加。此功能主要为了比较加热前后的温度和湿度值,能综合验证两个传感器元件的性能。在高湿(>95%RH)环境中,加热传感器可预防传感器结露,同时缩短响应时间,提高精度。加热后SHT11温度升高、相对湿度降低,较加热前,测量值会略有差异。
图2 SHT11内部结构
微处理器是通过二线串行数字接口和SHT11进行通信的。通信协议和通用的I2C总线协议是不兼容的,因此需要用通用微处理器I/O口模拟该通信时序。微处理器对SHT11的控制是通过5个5位命令代码来实现的,命令代码的含义如表1所列。
表1 SHT11控制命令代码
SHT11应用设计
微处理器采用二线串行数字接口和温湿度传感器芯片SHT11进行通信,所以硬件接门设计非常简单;然而,通信协议是芯片厂家自己定义的,所以在软件设计中,需要用微处理器通用I/O口模拟通道。SHT11通过二线数字串行接口来访问,所以硬件接口电路非常简单。需要注意的地方是:DATA数据线需要外接上拉电阻,时钟线SCK用于微处理器和SHT11之间通信同步,由于接口包含了完全静态逻辑,所以对SCK最低频率没有需求;当工作电压高于4.5V时,SCK频率最高为10 MHz,而当工作电压低于4.5 V时,SCK最高频率则为1 MHz。硬件连接如图八所示。
图3 SHT11硬件连接
4.3显示器LED
LED是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及128×64全点阵液晶显示器组成[14]。可完成图形显示,也可以显示8×2个(16×16点阵)数字或8×4个(16×16点阵)汉字。LED接P0口必须接上拉电阻, P0口才能输入高电平,LED 才能正常工作。
图4 LED液晶显示器
五、软件设计
5.1 主程序: 5.2 中断服务程序:
结束
显示
显示
湿度转化
温度转化
P2.0=?
开始
结束
采样通道选择
初始化
开始
图5 软件流程图主程序 图6 中断服务程序
图四为软件设计的主程序,开始后先经过初始化再根据要求来选择对应的通道,然后结束。图五为中断服务程序,开始后看P2.0等于多少,对应的选择温度转换还是湿度转换,对应着显示,然后结束。
微处理器和温湿度传感器通信采用串行二线接口SCK和DATA,其中SCK为时钟线,DATA为数据线。该二线串行通信协议和I2C协议是不兼容的。在程式开始,微处理器需要用一组"启动传输"时序表示数据传输的启动,如图3所示。当SCK时钟为高电平时,DATA翻转为低电平;紧接着SCK变为低电平,随后又变为高电平;在SCK时钟为高电平时,DATA再次翻转为高电平。
图7 数据传输启动程序
5.3显示原理图
图8 LED显示原理图
图七为软件方面的显示原理图,开始后,单片机经过初始化后接收数据,然后进行地址校验,校验不合格继续接受数据,校验合格的话取湿度给定值进而采样温湿度值,然后数码显示后上传数据,继续循环。
温度和湿度值的计算
(1)SHT11可通过DATA数据总线直接输出数字量湿度值。该湿度值称为"相对湿度",需要进行线性补偿和温度补偿后才能得到较为准确的湿度值。由于相对湿度数字输出特性呈一定的非线性,因此为了补偿湿度传感器的非线性,可按下式修正湿度值:
式中:RHlinear为经过线性补偿后的湿度值,SORH为相对湿度测量值,C1、C2、C3为线性补偿系数,取值如表2所列。
由于温度对湿度的影响十分明显,而实际温度和测试参考温度25℃有所不同,所以对线性补偿后的湿度值进行温度补偿非常有必要。补偿公式如下:
式中:RHtrue为经过线性补偿和温度补偿后的湿度值,T为测试湿度值时的温度(℃),t1和t2为温度补偿系数,取值如表3所列。
表2湿度线性补偿系数 表3湿度值温度补偿系数
(2)温度值输出
由于SHT11是采用PTAT能隙材料制成的温度敏感元件,因而具有非常好的线性输出。实际温度值可由下式算得:
Temperature=d1+d2×SOT
式中:d1和d2为特定系数,d1的取值和SHT11工作电压有关,d2的取值则和SHT11内部A/D转换器采用的分辨率有关,其对应关系分别如表4和表5所列。
表4 d1与工作电压关系 表5 d2与分辨率的关系
六、 总结设计及调试的体会
通过这这次课程设计的学习,发现了自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。 这次学习提高我在控制检测电路和单片机系统应用方面的实践技能,通过查找资料、调试、制作、等环节,掌握工程设计方法和组织实践的基本技能,熟悉使用单片机及其外围电路完成科学实践的程序和方法。调试过程中有苦也有乐,也从这过程中学到很多知识,为以后打下坚实的基础。
附录:程序
DATA=1;//释放数据总线
//for (i=0;i<65535;i++) if(DATA==0) break;
for (i=0;i<55535;i++){ if(DATA==0) break;else {xianshi();} }
read();//读温度
}
/////////温湿度处理//////
//////////计算温度////
text_jishuan_temp()
{
float aa=0,bb=0,temp_zi;
int abcd=0;
aa=(float)temp_h*256+(float)temp_LL;
temp_zi=0.01*aa-40;
//
if (temp_zi<0)
{
temp_zi=0;
}
temp_zi=temp_zi*10;
xianzhi_t=(int)temp_zi;//给显示值
}
///////计算湿度//////
text_jishuan_humi()
{
float aa=0,bb=0,humi_zi;
int abcd=0;
aa=(float)temp_h*256+(float)temp_LL;
bb=aa*aa*2.8/1000000;
aa=0.0405*aa;
aa=aa-4-bb;
humi_zi=aa;
//
humi_zi=humi_zi*10;
xianzhi_h=(int)humi_zi;
}
///////延时///////
delay(int i)
{
while(--i);
}
///////显示处理///////
xianshi()
{
int abcd=0;
int i;
for (i=0;i<1;i++)
{
abcd=xianzhi_h;
gwei=1;
swei=1;
bwei=1;
qwei=1;
P1=dispcode[abcd/100];
qwei=0;
delay(40);
qwei=1;
abcd=abcd%100 ;
P1=dispcode[abcd/10];
bwei=0;
delay(40);
bwei=1;
if(setbz_h^setbz_l)
{
if(setbz_h) abcd=setzhi_h;
if(setbz_l) abcd=setzhi_l;
P1=dispcode[abcd/10];
swei=0;
delay(40);
swei=1;
P1=dispcode[abcd%10];
gwei=0;
delay(40);
gwei=1;
}
else
}
text_jishuan_temp11();//测温湿度
//xianshi();//显示
doing();//处理
key();//键处理
// xianshi();//显示
}
}
整体电路图
展开阅读全文