基于DSB温度传感器温控系统的roteus仿真_第1页
基于DSB温度传感器温控系统的roteus仿真_第2页
基于DSB温度传感器温控系统的roteus仿真_第3页
基于DSB温度传感器温控系统的roteus仿真_第4页
基于DSB温度传感器温控系统的roteus仿真_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于DS18B20温度传感器温控系统的Proteus仿真DS18B20度传感器是美国DALLA浒导体公司推出的支持“一线总线”接口的传感器。具有功耗低、性能高、抗干扰能力强的特点,可以直接将温度转化为串行数字信号供处理器处理。DS18B20专感器具有以下一些特性:测温范围-55至+125,在-10至+85时的精度为正负0.5;适应电压的范围在3.0至5.5V;单线接口,只用一条口线就可以与微处理器的双向通信;支持多点组网,多个DS18B2M接在一根口线上就可实现多点测温;测量结果直接输出数字温度信号,通过单线串行传输给微处理器;具有负压特性,电源极性接反芯片不会烧坏,只是不能正常工作;可编程分

2、辨率为9至12位,对应的分辨温度分别是0.5,0.25,0.125,0.0625,能够实现高精度测温。在9位分辨率时可在93.75ms内把温度值转换为数字;在12位分辨率时可在750us内把温度值转换为数字;传送数据时可传送CRCK验码,抗干扰纠错能力强。DS18B20的弓I脚封装图如下:各引脚定义如下:GND电源地DQ信号输入输出VDD:电源正极NC空DS18B20单总线技术:DS18B20采用单条信号线,既可以传输数据,也可以传输时钟。其数据传输是双向的,这种单总线技术线路简单,硬件开销小,成本低廉,便于总线扩展与维护。单总线通常需要外接一个4.7K的上拉电阻。它与处理器的连接非常简单,通

3、常连接方式如下图:DQ端外接一个上拉电阻,与处理器的任一端口连接。DS18B20X作原理ROMfc能命令33HReadROM读ROM把DS18B20专感器的ROW编码读出来。55HMatchROME配ROM发出该命令接着会发送64位包含具体DS18B20序歹U号的ROMS码,与该编码序列号相同的DS18B20就会做出响应,序列号不匹配的DS18B20继续等待,不做响应。由于不同的DS18B20序列号不一样,所以通过该命令可以访问控制具体的DS18B20F0HSearchROM搜索ROM用于识别各个DS18B20的64位ROMCCHSkipROM跳过ROM当只有一个DS18B20时,使用该命令可

4、以忽略64位ROMfe址,直接向DS18B20发送温度变换命令。5)ECHAlarmSearch告警搜索。执行后,温度超出上限或者下限的芯片做出响应。主机与多个DS18B201接,要对众多在线DS18B20的某一个进行通信,首先要逐个与DS18B201接,读出其序列号;然后将所有的DS18B20挂接至IJ总线上,单片机发出匹配指令55H,接着主机提供64位序列,之后就可以与序列号相应的DS18B201行数据交换。主机与单个DS18B201接时,不需要读取或者匹配ROM只要使用跳过指令CCH就可以进行数据转换和读取操作。44HConvertT温度转换。启动DS18B20进行温度转换。12位精度转

5、换时最长为750ms,转换结束后将数据存入内部9字节的RAM。4EHWriteScratchpad写暂存器。发出该命令后,将两字节的数据写入内部RAM勺第2、3字节,作为上、下限温度数据。3)BEHReadScratchpad读暂存器。读取内部9字节的温度数据。48HCopyScratchpad复制暂存器。将RAMfr的第2、3字节的内容复制到E2PROMB8HRecallE2重调E2PROM将E2PROMJ容恢复至URAMfr的第3、4字节。B4HReadPowerSupply读供电方式。读取DS18B20的供电模式。2工作时序图(1)初始化Step1:数据线置低电平Step2:延时800u

6、s左右(时间范围为480us至960us)Step3:数据线拉高电平Step4:延时40us左右(时间范围为15us至60us)(2)读数据逐位读取数据,然后把8位数据组成1个字节。编写程序时分为两个部分,一个实现读取一位数据,另一个实现读取一个字节数据。读取数据步骤:Step1:数据线置低电平Step2:延时5us左右(大于1us即可)Step3:数据线拉高电平Step4:延时10us左右(这次延时和第一次延时之和接近15us左右)Step5:读取一位数据Step6:延时60us左右(大于45us即可)Step7:重复上面步骤,直到读完一个字节(3)写数据写数据分为写数据位1和数据位0。写数

7、据位1步骤:Step1:数据线置低电平Step2:延时5us左右(大于1us即可)Step3:数据线拉为高电平Step4:延时70us左右(大于55us即可)写数据位0步骤:Step1:数据线置低电平Step2:延时70us左右(大于60us即可)Step3:数据线拉高电平Step4:延时5us左右(不要太小)根据DS18B20W结构和T能,在Proteus中构建仿真工程,电路连接图如下:上面的电路要实现的功能是,把传感器测量的温度显示到1602液晶上。温度变化的范围是0至99.9,温度传感器通过设置可以设定温度调节的步长,这里取温度变化的步长为0.1,设置如下图:设置好之后,就可以根据DS1

8、8B20的特性和控制方式编写程序。参考程序如下:#include#defineucharunsignedchar#defineuintunsignedintucharcodedisp2=Tempreture;ucharcodedisp3=AC;sbitlcden=P2A0;sbitlcdrw=P2Al;sbitlcdrs=P2A2;sbittempt=P2A3;uintu_temp;/定义无符号整型形参floatf_temp;/定义浮点型形参voiddelay(uintx)uinti,j;for(i=0;ix;i+)for(j=0;j0)i-; tempt=1;i=4;while(i0)i-;

9、/延时/延时bit read_bit()/读一位DS18B20K据uint i;bit dat;tempt=0;i+;/ 延时tempt=1;i+;/ 延时i+;dat=tempt;i=8;/ 延时while(i0)i-;return dat;uchar read_tempt()/读一个字节DS18B2吸据uchar i,j,dat;dat=0;for(i=1;i=8;i+)j=read_bit();dat=(j1); /将读取的数据位按读取先后顺序,return dat;/ 从低位到高位(从右往左)排列保存到 dat/ 写一个字节数据到 DS18B20voidwrite_byte(uchar

10、dat)uinti;ucharj;bittestbit;for(j=1;j1;if(testbit)tempt=0;i+;tempt=1;i=8;while(i0)i-;elsetempt=0;i=8;while(i0)i-;tempt=1;i+;i+;voidconvert_tempt()reset_tempt();delay(1);write_byte(0 xcc);write_byte(0 x44);uintget_tempt()uchara,b;reset_tempt();/每次只写一位数据/延时/延时/延时/延时/DS18B20开始获取温度并进行转换/读取DS18B2畸存器中的温度数

11、据delay(1);write_byte(0 xcc);write_byte(0 xbe);a=read_tempt();b=read_tempt();u_temp=b;u_temp=8;u_temp=u_temp|a;f_temp=u_temp*0.0625;/精度为12位,所以分辨率为0.0625u_temp=f_temp*10;/乘以10,将实际温度扩大10倍returnu_temp;voiddisplay()/返回的u_temp是整型数据/静态文字显示uchari,j;write_com(0 x80+3);for(i=0;i10;i+)write_data(disp2i);write_com(0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论