资源简介
ds18b20.zip
代码片段和文件信息
#include
//通过DS18B20测试当前环境温度 并通过数码管显示当前温度值
sbit wela = P2^1; //数码管位选
sbit dula = P2^0; //数码管段选
sbit ds = P2^2;
//0-F数码管的编码(共阴极)
unsigned char code table[]={0x3f0x060x5b0x4f0x66
0x6d0x7d0x070x7f0x6f0x630x390x770x7c0x390x5e0x790x71};
//0-9数码管的编码(共阴极) 带小数点
unsigned char code tableWidthDot[]={0xbf 0x86 0xdb 0xcf 0xe6 0xed 0xfd
0x87 0xff 0xef};
//延时函数 例i=10则大概延时10ms.
void delay(unsigned char i)
{
unsigned char j k;
for(j = i; j > 0; j--)
{
for(k = 125; k > 0; k--);
}
}
//初始化DS18B20
//让DS18B20一段相对长时间低电平 然后一段相对非常短时间高电平 即可启动
void dsInit()
{
//一定要使用unsigned int型 一个i++指令的时间 作为与DS18B20通信的小时间间隔
//以下都是一样使用unsigned int型
unsigned int i;
ds = 0;
i = 103;
while(i>0) i--;
ds = 1;
i = 4;
while(i>0) i--;
}
//向DS18B20读取一位数据
//读一位 让DS18B20一小周期低电平 然后两小周期高电平
//之后DS18B20则会输出持续一段时间的一位数据
bit readBit()
{
unsigned int i;
bit b;
ds = 0;
i++;
ds = 1;
i++; i++;
b = ds;
i = 8;
while(i>0) i--;
return b;
}
//读取一字节数据 通过调用readBit()来实现
unsigned char readByte()
{
unsigned int i;
unsigned char j dat;
dat = 0;
for(i=0; i<8; i++)
{
j = readBit();
//最先读出的是最低位数据
dat = (j << 7) | (dat >> 1);
}
return dat;
}
//向DS18B20写入一字节数据
void writeByte(unsigned char dat)
{
unsigned int i;
unsigned char j;
bit b;
for(j = 0; j < 8; j++)
{
b = dat & 0x01;
dat >>= 1;
//写“1“ 让低电平持续2个小延时 高电平持续8个小延时
if(b)
{
ds = 0;
i++; i++;
ds = 1;
i = 8; while(i>0) i--;
}
else //写“0“ 让低电平持续8个小延时 高电平持续2个小延时
{
ds = 0;
i = 8; while(i>0) i--;
ds = 1;
i++; i++;
}
}
}
//向DS18B20发送温度转换命令
void sendChangeCmd()
{
dsInit(); //初始化DS18B20
delay(1); //延时1ms
writeByte(0xcc); //写入跳过序列号命令字
writeByte(0x44); //写入温度转换命令字
}
//向DS18B20发送读取数据命令
void sendReadCmd()
{
dsInit();
delay(1);
writeByte(0xcc); //写入跳过序列号命令字
writeByte(0xbe); //写入读取数据令字
}
//获取当前温度值
unsigned int getTmpValue()
{
unsigned int value; //存放温度数值
float t;
unsigned char low high;
sendReadCmd();
//连续读取两个字节数据
low = readByte();
high = readByte();
//将高低两个字节合成一个整形变量
value = high;
value <<= 8;
value |= low;
//DS18B20的精确度为0.0625度 即读回数据的最低位代表0.0625度
t = value * 0.0625;
//将它放大10倍 使显示时可显示小数点后一位 并对小数点后第二2进行4舍5入
//如t=11.0625 进行计数后 得到value = 111 即11.1 度
value = t * 10 + 0.5;
retu
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-11-15 15:38 ds18b20\
文件 123853 2015-04-07 17:19 ds18b20\DS18B20 (0-99).DSN
文件 1054 2015-04-08 09:29 ds18b20\DS18B20 (0-99).PWI
文件 123854 2015-04-07 17:17 ds18b20\Last Loaded DS18B20 (0-99).DBK
文件 6376 2009-05-07 14:37 ds18b20\STARTUP.A51
文件 14048 2015-04-08 16:41 ds18b20\STARTUP.LST
文件 749 2015-04-08 16:41 ds18b20\STARTUP.OBJ
目录 0 2016-11-16 08:41 ds18b20\仿真\
文件 124959 2016-09-29 16:13 ds18b20\仿真\DS18B20 (-55~125).DSN
文件 1340 2016-10-28 10:16 ds18b20\仿真\DS18B20 (-55~125).PWI
文件 124950 2016-09-29 16:05 ds18b20\仿真\Last Loaded DS18B20 (-55~125).DBK
文件 6376 2009-05-07 14:37 ds18b20\仿真\STARTUP.A51
文件 14048 2016-09-29 16:27 ds18b20\仿真\STARTUP.LST
文件 749 2016-09-29 16:27 ds18b20\仿真\STARTUP.OBJ
目录 0 2016-11-16 08:41 ds18b20\仿真\温度显示lcd1602\
文件 123878 2016-09-28 14:46 ds18b20\仿真\温度显示lcd1602\Last Loaded 温度显示LCD1602.DBK
文件 13096 2016-09-29 11:45 ds18b20\仿真\温度显示lcd1602\温度显示lcd1602
文件 4809 2016-09-29 11:45 ds18b20\仿真\温度显示lcd1602\温度显示lcd1602.c
文件 123995 2016-09-28 15:13 ds18b20\仿真\温度显示lcd1602\温度显示LCD1602.DSN
文件 4336 2016-09-29 11:45 ds18b20\仿真\温度显示lcd1602\温度显示lcd1602.hex
文件 47 2016-09-29 11:45 ds18b20\仿真\温度显示lcd1602\温度显示lcd1602.lnp
文件 10435 2016-09-29 11:45 ds18b20\仿真\温度显示lcd1602\温度显示lcd1602.LST
文件 17385 2016-09-29 11:45 ds18b20\仿真\温度显示lcd1602\温度显示lcd1602.M51
文件 14923 2016-09-29 11:45 ds18b20\仿真\温度显示lcd1602\温度显示lcd1602.OBJ
文件 178 2016-11-15 15:25 ds18b20\仿真\温度显示lcd1602\温度显示lcd1602.plg
文件 1340 2016-11-15 15:27 ds18b20\仿真\温度显示lcd1602\温度显示LCD1602.PWI
文件 55255 2016-11-16 08:41 ds18b20\仿真\温度显示lcd1602\温度显示lcd1602.uvopt
文件 13268 2016-09-28 16:34 ds18b20\仿真\温度显示lcd1602\温度显示lcd1602.uvproj
文件 55257 2016-09-29 15:43 ds18b20\仿真\温度显示lcd1602\温度显示lcd1602_uvopt.bak
文件 0 2016-09-28 15:03 ds18b20\仿真\温度显示lcd1602\温度显示lcd1602_uvproj.bak
文件 13309 2016-09-29 16:27 ds18b20\仿真\温控-55~125
............此处省略43个文件信息
相关资源
- myeclipse2015stable3.0破解.rar
- 渗透视频教学网盘地址.rar
- eetop.cn_Crack_Quartus_Prime_Standard_Pro_16.0
- rar(49)
- 微信敏感词库大全.txt.zip
- 01.txt
- 基于Labview的变音器.doc
- 20选5.rar
- sn.txt
- 模电课后思考题答案网络版不全.doc
- 演化ANN.zip
- UC免费WiFI.exe
- 单片机.zip
- wgrib2.exe
- IEDScout4.20.txt
- avast_is_20200425.rar
- 阿里云考试认证题库ACA阿里云考试.
- 2018尚硅谷电商项目前后端分离视频教
- Maple2017最新中文版完破.zip
- Labview实现的11款小游戏.zip
- TXT.zip
-
singleob
ject.zip - HighCharts工具.rar
- 34省市行政区dem链接地址.zip
- 全国地理信息资源权威链接地址.zip
- 重庆DEM数据.zip
- 全球矢量数据.zip
- 习语言安装使用教程.pdf
- 大唐杯移动通信大赛内部资料.zip
- cvuqdisk-1.0.9-1.rar
评论
共有 条评论