ds18b20显示温度不正确#include#includesbit DQ=P1^7;sbit led=P1^0;#define uchar unsigned char#define uint unsigned charuchar code table[]={0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};uchar data sex[3];uchar num;void delayus(uchar

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/18 03:25:20

ds18b20显示温度不正确#include#includesbit DQ=P1^7;sbit led=P1^0;#define uchar unsigned char#define uint unsigned charuchar code table[]={0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};uchar data sex[3];uchar num;void delayus(uchar
ds18b20显示温度不正确
#include
#include
sbit DQ=P1^7;
sbit led=P1^0;
#define uchar unsigned char
#define uint unsigned char
uchar code table[]={0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};
uchar data sex[3];
uchar num;
void delayus(uchar gaq)
{
while(gaq--);
}
void ds18b20rest() //复位
{
uchar x;
DQ=1;
delayus(2);
DQ=0;
delayus(80);
DQ=1;
delayus(5);
x=DQ;
delayus(18);
if(x) //判断初始化成功了么
led=0;
}
void ds18b20write(uchar date) //写函数
{
uchar i;
for(i=0;i>=1;
}
}
uchar ds18b20read() //读函数
{
uchar i,date;
for(i=0;i>=1;
DQ=1;
if(DQ)
date=date|0x80;
delayus(7);
}
return(date) ;
}

void main()
{
uchar a,b;
uint temp,temp_i;
float temp_f;
TMOD=0x10;
TH0=0xfb;
TL0=0xe0;
EA=1;
ET0=1;
TR0=1;
while(1)
{
ds18b20rest();
ds18b20write(0xcc);
ds18b20write(0x44);
delayus(255);
ds18b20rest();
ds18b20write(0xcc);
ds18b20write(0xbe);
a=ds18b20read();
b=ds18b20read();
temp=b;
temp

ds18b20显示温度不正确#include#includesbit DQ=P1^7;sbit led=P1^0;#define uchar unsigned char#define uint unsigned charuchar code table[]={0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};uchar data sex[3];uchar num;void delayus(uchar
只能测试0---15.9度,说明你只读取温度的低八位,也就是a=ds18b20read();
从程序上看,你的定义的uint.#define uint unsigned char
定义错误,更改成#define uint unsigned int
所以在你temp

ds18b20多点温度测量,显示几个温度DS18B20可以进行多点的温度测量,那呢显示的时候是几个温度呢, ds18b20 为什么读不出温度 ds18b20温度是几位的呀 单片机从ds18b20读出的数据经过怎样的处理用于显示,只用说正数温度就行啦 DS18B20温度传感器实现实时温度测量单机片机用AT89S52显示用四个共阳极的数码显示管晶振12MHz温度精确到0.5度 ds18b20显示温度不正确#include#includesbit DQ=P1^7;sbit led=P1^0;#define uchar unsigned char#define uint unsigned charuchar code table[]={0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};uchar data sex[3];uchar num;void delayus(uchar 用DS18b20写温度程序!并用1602显示!我想加多一个功能!当温度超过某一直!就报警!怎么写这段程序呀? DS18B20温度采集模块编程思想? 用DS18B20单总线温度传感器实现一个温度计,测温范围0~100度,精度+/-0.25度,温度用数码管显示可用键盘设置采样周期、改变显示模式(如显示采样值、温度等) DS18B20温度显示的问题温度显示可以随温度变化,但中间会时不时的出现85°C,I5°C(是大写的英文字母I),还有 ds18b20的负温度采集小弟最近写了一个ds18b20的程序,正温度的显示很完美,但是负温度的显示每个都却有近1度的误差,关于温度采集的程序如下,请给我找出原因:TEML=Readebyte();TEMH=Readebyte();if((TEMH 用LCD1602和DS18B20显示温度和时间C语言程序用51单片机实现 ,时间部分用2个按钮实现对时间的调整 是的, 求一个ds18b20数字温度测量的C程序程序比较简单,电路图已上传.P0作为段选,P2位选,希望能得到完整的程序,包括:ds18b20初始化,读字节,写字节,读温度,温度处理,和温度的4位数码管显示, ds18b20温度报警器 怎样设置温度上下限 ds18b20测到的温度与实际温度不一样是怎么回事 DS18b20测温度用1602显示为什么出现85度 温度传感器ds18b20的温度和电压有没有换算公式? proteus 仿真ds18b20读出的温度一直为零