资源简介
DS18B20底层驱动,用C8051F020做控制器,也可用普通51单片机,只需修改微小部分就行
代码片段和文件信息
#include“18B20.H“
/*************************************************************************************/
void delay(unsigned int i)//延时函数
{
while(i--);
}
/***************************************************************************************/
//18b20初始化函数
void Init_DS18B20(void)
{
unsigned char x=0;
DQ = 1; //DQ复位
delay(8); //稍做延时
DQ = 0; //单片机将DQ拉低
delay(80); //精确延时 大于 480us
DQ = 1; //拉高总线
delay(10);
x=DQ; //稍做延时后 如果x=0则初始化成功 x=1则初始化失败
delay(5);
}
//读一个字节
unsigned char ReadOneChar(void)
{
unsigned char i=0;
unsigned char dat = 0;
for (i=8;i>0;i--)
{
DQ = 0; // 给脉冲信号
dat>>=1;
DQ = 1; // 给脉冲信号
//在if(DQ)之前将DQ设置为输入口以便单片机读取DQ的值
if(DQ)
dat|=0x80;
delay(5);
}
return(dat);
}
//写一个字节
void WriteOneChar(unsigned char dat)
{
unsigned char i=0;
for (i=8; i>0; i--)
{
DQ = 0;
DQ = dat&0x01;
delay(5);
DQ = 1;
dat>>=1;
}
delay(5);
}
//读取温度
unsigned char ReadTemperature(void)
{
unsigned char a=0;
unsigned char b=0;
unsigned char t=0;
// unsigned char tt;
//float tt=0;
Init_DS18B20();
WriteOneChar(0xCC); // 跳过读序号列号的操作
WriteOneChar(0x44); // 启动温度转换
delay(200);
Init_DS18B20();
WriteOneChar(0xCC); //跳过读序号列号的操作
WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器) 前两个就是温度
a=ReadOneChar();
b=ReadOneChar();
b<<=4;
b+=(a&0xf0)>>4;
t=b;
// tt=t*0.0625;
// t= t1*10; //放大10倍输出并四舍五入
return(t);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
I.A.... 629 2009-08-22 21:00 TEST.C
I.A.... 1661 2009-08-22 21:00 18B20.c
I.A.... 590 2009-08-22 20:48 18B20.H
I.A.... 129 2009-08-22 20:45 HEADER.H
----------- --------- ---------- ----- ----
3009 4
- 上一篇:爱赌恨赌统计器V238-2018年度
- 下一篇:基于阈值分割的车牌定位识别
相关资源
- 51单片机的数字温度,使用DS18B20,数
- msp430 模块程序 包括DS18B20 PS2 串口 电
- C8051F020单片机驱动CCD 1304
- 基于C8051F020的ds18b20的驱动程序,包可
- STC15系列读DS18B20程序,12Mhz时钟晶振
- 89c51+DS18B20 数码管
- ds18b20.zip
- DS18B20数码管显示温度VHDL程序
- 基于LCD1602读取DS18B20序列号proteus仿真
- 通过485Modbus读取DS18B20温度和控制LED(
- 多路DS18B20测温+读取序列号
- 基于mega128的ds18b20+串口程序 实测通过
- STM32-DS18B20程序
- 51单片机获取DS18B20序列号LCD显示
- DS18B20温度传感器Protues仿真
- Verilog的DS18b20代码61593
- STM32的DS18B20数字温度传感器程序,亲
- 基于单片机和ds18b20温度传感器的温度
- STC89C51采集DS18B20温度控制继电器
- 51单片机读取DS18b20数据加1602显示+pr
- 51单片机控制DS18b20,在数码管上显示
- 51单片机+DS18B20+NRF24L01+LCD1602=无线温度
- ds18b20温度传感器工作原理及其应用电
- 51单片机Protues,仿真DS18b20温度传感器
- STM8S003读取DS18B20温度传感器
- DS18B20读取序列号并匹配读取温度值
- DS18B20介绍、程序流程图和程序源代码
- STM32 DS18b20
- 基于mini2440+linux下的ds18b20驱动,
- AD版的C8051F020原理图及PCB库文件
评论
共有 条评论