多点温度采集原理图与C语言程序Word格式文档下载.docx
- 文档编号:21008749
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:9
- 大小:34.89KB
多点温度采集原理图与C语言程序Word格式文档下载.docx
《多点温度采集原理图与C语言程序Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《多点温度采集原理图与C语言程序Word格式文档下载.docx(9页珍藏版)》请在冰豆网上搜索。
ucharcodetabnum3[]={0x28,0x39,0xF5,0x3A,0x02,0x00,0x00,0x0D};
uinttvalue;
//温度值
uchartflag,flagdat,t,hh1;
//温度正负标志
uchartt,kk,dd;
voiddelay(uintz)
{
uintx,y;
for(x=z;
x>
0;
x--)
for(y=110;
y>
y--);
}
voiddelay_18B20(unsignedinti)//延时1微秒
while(i--);
voidds1820rst()//ds1820复位*
{unsignedcharx=0;
DQ=1;
//DQ复位
delay_18B20(4);
//延时
DQ=0;
//DQ拉低
delay_18B20(100);
//精确延时大于480us
//拉高
delay_18B20(40);
}
unsignedchards1820rd()//读数据
{unsignedchari=0;
unsignedchardat=0;
for(i=8;
i>
i--)
{DQ=0;
//给脉冲信号
dat>
>
=1;
DQ=1;
if(DQ)
dat|=0x80;
delay_18B20(10);
return(dat);
voidds1820wr(ucharwdata)//写数据
{unsignedchari=0;
for(i=8;
i>
i--)
{DQ=0;
DQ=wdata&
0x01;
wdata>
}
voidchangds18b20_1(uchara[8])//往18B20写序列号
ds1820rst();
delay
(1);
ds1820wr(0x55);
//285B2EC702000062
ds1820wr(a[0]);
ds1820wr(a[1]);
ds1820wr(a[2]);
ds1820wr(a[3]);
ds1820wr(a[4]);
ds1820wr(a[5]);
ds1820wr(a[6]);
ds1820wr(a[7]);
read_temp1()//读取温度值并转换
{uchara,b;
ds1820rst();
changds18b20_1(tabnum1);
//写序列号
ds1820wr(0x44);
//启动温度转换
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);
read_temp2()//读取温度值并转换
changds18b20_1(tabnum2);
}
read_temp3()//读取温度值并转换
changds18b20_1(tabnum3);
voiddisp_temper(uinttemper)//温度值显示
{
uchartemper_ge,temper_shi,temper_bai;
//temper=read_temp();
temper_ge=temper%10;
temper_shi=temper%100/10;
temper_bai=temper/100;
if(tflag==1)
{
D4=0;
P0=0xbf;
delay(5);
D4=1;
D3=0;
P0=tab[temper_bai];
delay(5);
D3=1;
D2=0;
P0=tab[temper_shi+10];
D2=1;
D1=0;
P0=tab[temper_ge];
D1=1;
voidkeyscan()
if(key1==0)
delay(50);
if(key1==0)
{
tt=1;
//选择温度传感器的标志位
kk=0;
dd=0;
}
}
if(key2==0)
if(key2==0)
tt=0;
kk=1;
if(key3==0)
if(key3==0)
dd=1;
voidmain()
//kk=3;
uinttemper1;
ds1820wr(0xcc);
//跳过读序列号
ds1820wr(0x44);
delay(200);
while
(1)
keyscan();
if(tt==1)
{
temper1=read_temp1();
disp_temper(temper1);
if(kk==1)
temper1=read_temp2();
if(dd==1)
temper1=read_temp3();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多点 温度 采集 原理图 语言 程序
![提示](https://static.bdocx.com/images/bang_tan.gif)