📄 ds18b20.c
字号:
/**************************************************************************
YB-51-B DS18B20数字温度模块的演示程序(函数模块)
来源: 郑州远博科技 王兴民
0371-66949037 0371-67256036 13949105551
(需要参看DS18B20的原理和时序,见配套光盘)
***************************************************************************/
#include <config.h>
#define DQ18B20 P2_6 //DS18B20接口定义
/*****************************************************************************
ds18b20 的各个功能函数
******************************************************************************/
/*****************************************************************************
写18b20
******************************************************************************/
void Write_18b20(Uchar ddata) {
Uchar i;
for(i=0;i<8;i++)
{
DQ18B20 =0;
Delayus(1); //延时18us
DQ18B20 =(bit)(ddata&0x01);
ddata=ddata>>1;
Delayus(6); //延时68us
DQ18B20 =1;
}
}
/*******************************************************************************
读18b20
********************************************************************************/
Uchar Read_18b20(void) {
Uchar i,temp;
for(i=0;i<8;i++)
{
temp=temp>>1;
DQ18B20 =0;
DQ18B20 =1;
Delayus(0);
if(DQ18B20 ==0)
{
temp=temp&0x7f;
}
else
{
temp=temp|0x80;
}
Delayus(5); //延时58us
DQ18B20 =1;
}
return temp;
}
/*********************************************************************************
18b20初始化
**********************************************************************************/
void Init_18b20(void) {
DQ18B20 =0;
Delayus(50); //延时508us
DQ18B20 =1;
Delayus(10); //延时108us
while(!DQ18B20 ) ;
DQ18B20 =1;
}
/**************************************************************************************
跳过函数
***************************************************************************************/
void Skip(void) {
Write_18b20(0xcc);
}
/**************************************************************************************
转换函数
***************************************************************************************/
void Convert(void) {
Write_18b20(0x44);
}
/**************************************************************************************
read_scrat
***************************************************************************************/
void Read_scrat(void) {
Write_18b20(0xbe);
}
/*************************************************************************************
**************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -