欢迎来到天天文库
浏览记录
ID:34196820
大小:58.17 KB
页数:7页
时间:2019-03-04
《全数字温湿度仪设计和实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、全数字温湿度仪设计和实现【摘要】本文从实际应用出发,较全面地介绍了全数字温湿度仪的设计与实现。方案采用AT89S52单片机作为MCU,DS18B20作为数字温度传感器,奥松DHT11为数字湿度传感器,1602液晶模块为显示部件,结合相关电路组成温湿度计的硬件部分,嵌入式编程采用C51语言。本文不仅包括器件选型方面的硬件知识,同时给出了传感器驱动等典型程序段。实践证明,本温湿度仪具有测量数据准确、显示直观、反应快、量程大、误差小、免标定、报警温度可设定等优点,稳定可靠,值得推广。【关键词】温湿度仪;单片机;DS18B
2、20;DHT11;C51温湿度仪是日常生活、工矿企业、养殖等场所经常使用的测量温度、湿度的仪表,老式温湿度仪存在反应慢、精度低、量程小、标定繁琐等缺点。近年来,随着数字传感器发展与普及,温湿度仪也在朝着数字化、免标定、方便设置报警、实时监控等方向发展。尤其以DS18B20.DHT11为代表的数字传感器,属于集成传感器,可靠性很高,因此,采用微控制器结合数字传感器,设计全数字的温湿度仪,具有普遍的实际意义和社会价值。1.功能结构描述本温湿度仪以MCU为核心,利用最新数字化温湿度传感器作为测量器件,LCM为显示部件,蜂
3、鸣器为提示音和报警声输出,由于本仪表还具有其他功能,所以设置了三个按键作为输入部分,以完成多个显示界面切换及进行相关设置的功能。功能结构示意图如图1所示:图1全数字温湿度仪功能结构示意图2.硬件选型2.1温度传感器选型以热电偶、热敏电阻等为主,输出电压、电流或频率等模拟物理量的模拟传感器,在需要数字信号的场合应用不够方便。近几年涌现出一些数字温度传感器,如ADT7301.TMP205等,但经过综合比较,这里采用了美国Dallas公司出品的DS18B20E1],优势是反映快、精度高(可编程9-12位,最高0.0625
4、°C).体积小、误差小(图2软件流程图示意图3.2温度传感器典型程序段DS18B20对时序要求非常严格,编程时应确保延时程序要符合datasheet中的要求,这里首先编制了一个较精确的10us延时,之后的程序中多次调用。另外,摄氏、华氏温度的转换,以及低于0摄氏度时,需要显示的负号等情况都可在液晶显示温度的程序段中考虑。典型程序如下://DS18B20按字节操作写函数voidWriteBytel8B20(ucharByteW18B20){uchari;for(i=0;i>二1;//LSBfirstDQ18B20=1
5、;_nop_();_nop_();DQ18B20=0;if(CY==0){//主机写0delay_10us_times(8);//延时约80us(datasheet要求60~120us)DQ18B20=1;}else{//主机写1_nop_();_nop_O;DQ18B20二1;delay_10us_times(8);}}}//DS18B20按字节操作读函数ucharReadBytel8B20(void){ucharByteR18B20,Rx,i;ByteR18B20=Rx=0;for(i=0;i>=1;//循环内
6、每次右移DQ18B20二1;_nop_();_nop_();DQ18B20=0;_nop_();_nop_();DQ18B20=1;delay_10us_times(1);if(DQ18B20)ByteR18B20
7、二0x80;delay_10us_times(8);}returnByteR18B20;}//DS18B20初始化,返回0说明从机响应bitinit_18B20(void){bitstate;DQ18B20=1;_nop_();_nop_O;DQ18B20二0;delay_10us_times(70);
8、//MasterTXresetpulse480us-960usDQ18B20二1;//释放总线变高阻态delay_10us_times(7);//等待state二DQ18B20;//主机采样DQ18B20=1;//再次释放delay_10us_times(50);//延时480us以上returnstate;}3.3湿度传感器典型程序段相比同样是单总线设计的DS18B20,国产DHT11在编程思路上有一定相似性,但时序、移位等操作都不同,协议较前者简单。用户主机(MCU)发送一次开始信号后,DHT11从低功耗模式转
9、换到高速模式,待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信采集。而操作DS18B20时,MCU初始化收到应答信号后,就可随时发个指令写或读,主机有更多主动权。按照官方产品手册提供的时序,编制程序如下:voidInitAndReadDHT11(void){ucharRx,i,j;bitDHTllack;ByteReadDHT
此文档下载收益归作者所有