




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机应用系统设计课题:基于DS18B20的多点温度测量系统的设计姓名:班级:学号:指导老师:日期:引言
在粮库测温系统、冷库测温系统、智能化建筑控制系统、中央空调系统等多种系统中都需要多点温度测量系统。因此,多点温度测量技术实现尤为重要.美国Dallas公司推出的数字温度传感器DSl8B20,电源供电范围在3.0~5.5V;温度测量范围为-55~+125℃;具有独特的单总线接口,仅需要占用一个通用I/O端口即可完成与微处理器的通信;在-10~+85℃温度范围内具有±0.5℃精度;用户可编程设定9~12位的分辨率。以上特性使得DSl8B20非常适用于构建高精度、多点温度测量系统。
DS18B20简介
DSl8B20是美国Dallas半导体公司推出的一种智能数字温度传感器。与传统的热敏电阻相比,它能够直接读出被测温度,并且可根据实际要求通过编程实现9~12位的数字值读数方式;可以分别在93。75ms和750ms内完成9位和12位的数字量;从DS18B20读出信息或写入DS18B20信息仅需要1根口线(单线接口);温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源.使用DS18B20可使系统结构更趋简单,可靠性更高。
1系统硬件设计
由DS18B20和Atmel公司推出的单片机AT89C51以及相关外围电路组成的高精度、多点温度测量系统的结构框图如图1所示。系统采用8片DS18B20构成小型温度传感器网络[3],通过并行连接方式连接至单片机的通用I/O端口。单片机获得温度信息后,通过特定的算法,将处理后的温度信息通过LED显示出来,同时通过串行口送上位机处理。
DS18B20内部均有一个独立的64位序列号,单片机通过序列号可以对一条总线上的多支DS18B20进行控制,读取它们的温度。但是,要完成这个操作,软件设计比较复杂,同时存在一个缺点-—速度太慢。无法适用于一些实时性要求高的测温场合.所以本次设计采取一种利用单片机的并口,同步快速读取8支DS18B20的方法.
2系统软件设计
2.1并行同步快速读取8支DS18B20的方法
对于一支DS18B20,我们要输出或输入各类数据时,可以采用位寻址,比如:sbitDQ=P3^3;DQ=0;DQ=1;
而对于8支DS18B20,如果还采用位寻址的方法,采用单总线,通过查询序列号依次读取,程序就非常复杂,而且速度会大大减慢,所以将位寻址扩展为字节寻址,比如:
#defineDQP3;DQ=0x00;DQ=0xff;
即可一次输出或输入8个位数据,从而达到同步读取的目的。
2.2系统的温度合成处理
采用上述方法一次读取8支DS18B20的时间不超过1秒,但读取的数据在RAM中并不顺序排列的。必须用软件合成处理,才能得到所需要的温度值。如表—1所示,纵向排列的是存放每次读取数据的Buf,而横向才是我们需要的温度值,此时设计一个将纵向数据转为横向温度的程序,连续执行两次,就可以将DS18B20的高和低字节全部合成标准的温度数据.2.3系统软件流程图
主程序执行流程如图2所示,主程序先对各DS18B20进行初始化,然后重复调用写命令和读数据模块,最后将数据处理后送入LED显示。2.4系统电路图3系统仿真
Proteus软件是Labcenter公司的一款电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的绘制与仿真。Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS—51系列、PIC系列等等,以及单片机外围电路,比如键盘、LED、LCD等等。通过Proteus软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验环境。
本设计的核心部分为八点温度数据的快速准确读取,完成电路设计和软件编程后,将程序在KEIL下编译,装入单片机,进行仿真,可以看到,同步快速多点温度测量得到了实现.仿真中的一个画面如下面图3中的效果所示,此时采集的是第5通路的测量温度。4系统运行与数据分析
根据系统软件与硬件设计方案搭建实际系统电路,依次采集八路温度测量数据,并且在LED数码管上显示所测温度,同时与现场温度计测量值进行比较,系统运行结果如下,见表-2:表—2传感器与温度计数据对照
测量结果数据与温度计直接测量吻合,符合仿真结果,本系统的测量范围为0-99℃,DS18B20数字值读取位数为8位,精确到1℃,满足日常测量应用。另外可以通过改变DS18B20数字值读取位数提高精度,也可以根据实际应用要求扩大量程。在系统基础上可以加入开关控制测量通路选择,并实现超过测量范围蜂鸣器报警。
5结论
该温度测量系统结构简单、程序设计方便,基于仿真系统构建的实际电路运行良好,8支DS18B20的读取时间与1支DS18B20的读取时间基本相等,测温迅速准确.本设计采用Proteus仿真的好处在于可以迅速观察到设计效果,同时可以通过改变元器件参数使整个电路性能达到最优化。
6参考文献
1、唐俊翟.单片机原理与应用[M]。北京:冶金工业出版社,252-2672、胡伟.单片机C程序设计及应用实例[M]。北京:人民邮电出版社,1-4873、赵娜,赵刚.基于51单片机的温度测量系统[J]。微计算机信息,2007。4、于永学,葛建。1—Wire总线数字温度传感器DS1—8B20及应用[J]。电子产品世界,2003(2):80—82.5、江世明,刘先任.基于DS18B20的智能温度测量装置[J].邵阳学院学报,2004.6、聂毅。单片机定时器中断时间误差的分析及补偿[J]
微计算机信息
20027、谭浩强。C语言程序设计(第二版)
北京:清华大学出版社
1999
附录:程序 #include<reg51。h〉#defineucharunsignedchar#defineuintunsignedintsbitDQ=P3^7;//ds18b20与单片机连接口sbitRS=P3^0;sbitRW=P3^1;sbitEN=P3^2;unsignedcharcodestr1[]={”temperature:"};unsignedcharcodestr2[]={”"};uchardatadisdata[5];uinttvalue;//温度值uchartflag;//温度正负标志/*************************lcd1602程序**************************/voiddelay1ms(unsignedintms)//延时1毫秒(不够精确的){unsignedinti,j;for(i=0;i〈ms;i++)for(j=0;j<100;j++);}voidwr_com(unsignedcharcom)//写指令//{delay1ms(1);RS=0;RW=0;EN=0;P2=com;delay1ms(1);EN=1;delay1ms(1);EN=0;}voidwr_dat(unsignedchardat)//写数据//{delay1ms(1);;RS=1;RW=0;EN=0;P2=dat;delay1ms(1);EN=1;delay1ms(1);EN=0;}voidlcd_init()//初始化设置//{delay1ms(15);wr_com(0x38);delay1ms(5);wr_com(0x08);delay1ms(5);wr_com(0x01);delay1ms(5);wr_com(0x06);delay1ms(5);wr_com(0x0c);delay1ms(5);}voiddisplay(unsignedchar*p)//显示//{while(*p!=’\0’){wr_dat(*p);p++;delay1ms(1);}}init_play()//初始化显示{lcd_init();wr_com(0x80); display(str1); wr_com(0xc0); display(str2);}/******************************ds1820程序***************************************/voiddelay_18B20(unsignedinti)//延时1微秒{ while(i—-);}voidds1820rst()/*ds1820复位*/{unsignedcharx=0; DQ=1;//DQ复位 delay_18B20(4);//延时 DQ=0;//DQ拉低 delay_18B20(100);//精确延时大于480us DQ=1;//拉高 delay_18B20(40); }uchards1820rd()/*读数据*/{unsignedchari=0; unsignedchardat=0; for(i=8;i〉0;i—-) {DQ=0;//给脉冲信号 dat>〉=1; DQ=1;//给脉冲信号 if(DQ) dat|=0x80; delay_18B20(10); } return(dat);}voidds1820wr(ucharwdata)/*写数据*/{unsignedchari=0;for(i=8;i〉0;i--){DQ=0;DQ=wdata&0x01;delay_18B20(10);DQ=1;wdata〉〉=1;}}read_temp()/*读取温度值并转换*/{uchara,b;ds1820rst();ds1820wr(0xcc);//*跳过读序列号*/ds1820wr(0x44);//*启动温度转换*/ds1820rst();ds1820wr(0xcc);//*跳过读序列号*/ds1820wr(0xbe);//*读取温度*/a=ds1820rd();b=ds1820rd();tvalue=b;tvalue〈<=8;tvalue=tvalue|a;if(tvalue<0x0fff)tflag=0;else{tvalue=~tvalue+1; tflag=1;}tvalue=tvalue*(0。625);//温度值扩大10倍,精确到1位小数 return(tvalue);}/*******************************************************************/voidds1820disp()//温度值显示 {ucharflagdat; disdata[0]=tvalue/1000+0x30;//百位数disdata[1]=tvalue%1000/100+0x30;//十位数disdata[2]=tvalue%100/10+0x30;//个位数disdata[3]=tvalue%10+0x30;//小数位if(tflag==0) flagdat=0x20;//正温度不显示符号elseflagdat=0x2d;//负温度显示负号:—if(disdata[0]==0x30) {disdata[0]=0x20;//如果百位为0,不显示 if(disdata[1]==0x30) {disdata[1]=0x20;//如果百位为0,十位为0也不显示 } } wr_com(0xc0); wr_dat(flagdat);//显示符号位 wr_com(0xc1); wr_dat(disdata[0]);//显示百位 wr_com(0xc2); wr_dat(disdata[1]);//显示十位
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 楼房买卖合同
- 商铺装造合同协议书
- 小型机动车辆抵押合同
- 医疗设备维修合同
- 区块链供应链金融风险管理合作框架合同
- 商品房出租合同书
- 公司外聘兼职保密协议合同
- 工程招投标与合同管理心得
- 月饼购销合同
- 国际汽车贸易城商铺租赁合同
- 工程质量,安全生产管理制度
- (建筑工程标准法规)河北省定额工程费用标准
- 家用电动啤酒酿造设备市场发展现状调查及供需格局分析预测报告
- 博物馆展厅提升改造方案
- 医院心理危机干预预案
- 2024年中国燕窝八宝粥市场调查研究报告
- GB/T 2624.6-2024用安装在圆形截面管道中的差压装置测量满管流体流量第6部分:楔形装置
- 2024年浙江省中考英语试题卷(含答案解析)
- AIGC视域下非遗文创产品的数字化转型升级路径研究
- 推广绿色用电活动方案
- 先天性巨结肠远期疗效评估与随访
评论
0/150
提交评论