您的位置 首页 方案

根据51单片机的DS18B20丈量温度试验

实验任务 用一片DS18B20构成测温系统,测量的温度精度达到0.1度,测量的温度的范围在-20度到+50度之间,用4位数码管显示出来。DPY-1实验板连接用排线把JP-CODE连到JP8是,注意:a

试验使命

用一片DS18B20构成测温体系,丈量温度精度到达0.1度,丈量温度的范围在-20度到+50度之间,用4位数码管显现出来。

DPY-1试验板衔接
用排线把JP-CODE连到JP8是,留意:a接P0.0;b接P0.1;c接P0.3…… 把JP-CS连到JP14上,留意:4H接P2.4;3H接P2.5;2H接P2.6;1H接P2.7;

衔接好DS18B20留意极性不要弄反,不然或许烧坏。DS18B20的外型与常用的三极管如出一辙,上图是它的管脚散布。用导线将JK—DS的DA端连到P3.1上。

硬件电路图

试验原理
DS18B20数字温度计是DALLAS公司出产的1-Wire,即单总线器材,具有线路简略,体积小的特色。因而用它来组成一个测温体系,具有线路简略,在一根通讯线,能够挂许多这样的数字温度计。DS18B20产品的特色
(1)、只要求一个I/O口即可完结通讯。
(2)、在DS18B20中的每个器材上都有绝无仅有的序列号。
(3)、实践使用中不需要外部任何元器材即可完结测温。
(4)、丈量温度范围在-55。C到+125。C之间。
(5)、数字温度计的分辨率用户能够从9位到12位挑选。
(6)、内部有温度上、下限告警设置。
DS18B20具体引脚功用描绘1 GND地信号;2 DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也能够向器材供给电源;3 VDD可挑选的VDD引脚。当作业于寄生电源时,此引脚有必要接地。
DS18B20的使用方法。因为DS18B20选用的是1-Wire总线协议方法,即在一根数据线完结数据的双向传输,而对AT89S51单片机来说,咱们有必要选用软件的方法来模仿单总线的协议时序来完结对DS18B20芯片的拜访。因为DS18B20是在一根I/O线上读写数据,因而,对读写的数据位有着严厉的时序要求。DS18B20有严厉的通讯协议来确保各位数据传输的正确性和完整性。该协议界说了几种信号的时序:初始化时序、读时序、写时序。一切时序都是将主机作为主设备,单总线器材作为从设备。而每一次指令和数据的传输都是从主机自动发动写时序开端,假如要求单总线器材回送数据,在进行写指令后,主机需发动读时序完结数据接纳。数据和指令的传输都是低位在先。

C言语源程序

#includereg52.h>
code unsigned char seg7code[11]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //显现段码
void Delay(unsigned int tc) //显现延时程序
{while( tc != 0 )
{unsigned int i;
for(i=0; i100; i++);
tc–;}
}
sbit TMDAT =P3^1; //DS18B20的数据输入/输出脚DQ,依据状况设定
unsigned int sdata;//丈量到的温度的整数部分
unsigned char xiaoshu1;//小数第一位
unsigned char xiaoshu2;//小数第二位
unsigned char xiaoshu;//两位小数
bit fg=1; //温度正负标志
void dmsec (unsigned int count) //延时部分
{
unsigned char i;
while(count–)
{for(i=0;i115;i++);}
}
void tmreset (void) //发送复位
{
unsigned char i;
TMDAT=0; for(i=0;i103;i++);
TMDAT = 1; for(i=0;i4;i++);
}
bit tmrbit (void) //读一位//
{
unsigned int i;
bit dat;
TMDAT = 0;
i++;
TMDAT = 1;
i++; i++; //微量延时 //
dat = TMDAT;
for(i=0;i8;i++);
return (dat);
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/325184.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部