• 大小: 105KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: 其他
  • 标签: s3c244  DS18B2  

资源简介

s3c2440裸机DS18B20程序 通过单总线的方式进行通信 获取温度数据

资源截图

代码片段和文件信息

//=============================================================
// 文件名称: DS18B20.c
// 功能描述: DS18B20驱动
// 维护记录: 2009-10-15 V1.0    by xgc
//=============================================================
#include “2440addr.h“
#include “2440lib.h“
#include “def.h“
#include “uart.h“
#include “DS18B20.h“

U16 temp;
U8 DS18B20_ID[8] = {0};
extern unsigned int PCLK;

void usDelay(int time)
{
U32 ij;
for (i = time; i > 0; i--)
for (j = 1; j > 0; j--);
}

//========================================
//函数名称:  void DS18B20_Init(void)
//实现功能:  初始化18B20
//入口参数:   无
//出口返回值: 无
//========================================
void DS18B20_Init(void)
{
DQ_OUT;
DQ_L;
usDelay(700);
DQ_H;
usDelay(4);
DQ_IN;
usDelay(100);

/* if(DQ_STAT!=0) //测试复位是否成功
Uart_Printf(“There are no 18B20 at GPB5! 0x%x\n“);
else
Uart_Printf(“Init 18B20 succeed!\n“);
*/
usDelay(250);
}
//========================================
//函数名称:  U8 DS18B20_ReadBit(void)
//实现功能:  读取18b20的一位数据
//入口参数:   无
//出口返回值: 读取的一位数据
//========================================
U8 DS18B20_ReadBit(void)    
{
U8 dat;
DQ_OUT;
DQ_L;
usDelay(2);
DQ_IN;
usDelay(10);
if(DQ_STAT!=0)
dat=1;
else 
dat=0;
usDelay(50);
return (dat);
}
//========================================
//函数名称:  U8 DS18B20_ReadByte(void)
//实现功能:  读取一个字节的数据
//入口参数:   无
//出口返回值: 读取的一个字节数据
//========================================
U8 DS18B20_ReadByte(void)   
{
U8 ijdat;
dat=0;
for(i=1;i<=8;i++)
{
j=DS18B20_ReadBit();
dat=(j<<7)|(dat>>1);   //读出的数据最低位在最前面,这样刚好一个字节在DAT里
}
return(dat);
}

//========================================
//函数名称:  void DS18B20_WriteByte(U8 dat)
//实现功能:  向18B20写一个字节数据
//入口参数:   要写入的数据
//出口返回值: 无
//========================================
void DS18B20_WriteByte(U8 dat) 
{
U8 j;
U8 testb;
DQ_OUT;
for(j=1;j<=8;j++)
{
testb=dat&0x01;
dat=dat>>1;
if(testb)     
{
DQ_L;
usDelay(8);
DQ_H;
usDelay(50);
}
else
{
DQ_L;
usDelay(90);
DQ_H;
usDelay(8);
}
}
}

//========================================
//函数名称:  void DS18B20_ReadID(void)
//实现功能:  读取18B20的ID号
//入口参数:   无
//出口返回值: 无
//========================================
void DS18B20_ReadID(void)
{
    usDelay(1);
    DS18B20_Init();
    DS18B20_WriteByte(DS18B20_ReadROM);
    DS18B20_ID[0] = DS18B20_ReadByte();
    DS18B20_ID[1] = DS18B20_ReadByte();
    DS18B20_ID[2] = DS18B20_ReadByte();
    DS18B20_ID[3] = DS18B20_ReadByte();
    DS18B20_ID[4] = DS18B20_ReadByte();
    DS18B20_ID[5] = DS18B20_ReadByte();
    DS18B20_ID[6] = DS18B20_ReadByte();
    DS18B20_ID[7] = DS18B20_ReadByte();
}

//========================================
//函数名称:  void DS18B20_Match(void)
//实现功能:  匹配18B20
//入口参数:   无
//出口返回值: 无
//========================================
void DS18B20_Match(void)
{
    DS18B20_WriteByte(DS18B20_MatchROM);
    DS18B20_WriteByte(DS18B20_ID[0]);
    DS18B20_Writ

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-04-16 14:20  DS18B20\
     文件        4975  2010-01-27 14:34  DS18B20\DS18B20.c
     文件        1175  2009-10-15 16:35  DS18B20\DS18B20.h
     文件      197967  2010-01-27 16:07  DS18B20\DS18B20.mcp
     目录           0  2019-04-16 14:20  DS18B20\DS18B20_Data\
     文件        3447  2010-01-27 16:07  DS18B20\DS18B20_Data\CWSettingsWindows.stg
     目录           0  2019-04-16 14:20  DS18B20\DS18B20_Data\Debug\
     文件       50806  2010-01-27 16:07  DS18B20\DS18B20_Data\Debug\TargetDataWindows.tdt
     目录           0  2019-04-16 14:20  DS18B20\DS18B20_Data\DebugRel\
     文件       93628  2010-01-27 14:35  DS18B20\DS18B20_Data\DebugRel\DS18B20.axf
     文件       29248  2010-01-27 14:35  DS18B20\DS18B20_Data\DebugRel\DS18B20.bin
     目录           0  2019-05-08 16:10  DS18B20\DS18B20_Data\DebugRel\objectCode\
     文件       55846  2010-01-27 16:07  DS18B20\DS18B20_Data\DebugRel\TargetDataWindows.tdt
     目录           0  2019-04-16 14:20  DS18B20\DS18B20_Data\Release\
     文件       49432  2010-01-27 16:07  DS18B20\DS18B20_Data\Release\TargetDataWindows.tdt
     文件        1048  2010-01-27 14:35  DS18B20\main.c
     目录           0  2019-04-16 14:20  DS18B20\system\
     目录           0  2019-04-16 14:20  DS18B20\system\inc\
     文件       40113  2009-10-17 11:50  DS18B20\system\inc\2440addr.h
     文件       24514  2009-08-12 16:10  DS18B20\system\inc\2440addr.inc
     文件        1922  2010-01-27 14:35  DS18B20\system\inc\2440lib.h
     文件        1305  2003-11-29 09:43  DS18B20\system\inc\2440slib.h
     文件        3046  2008-10-31 12:50  DS18B20\system\inc\Memcfg.inc
     文件        1261  2009-09-01 10:22  DS18B20\system\inc\Option.h
     文件        3604  2008-10-31 14:12  DS18B20\system\inc\Option.inc
     文件        1256  2005-07-07 15:09  DS18B20\system\inc\def.h
     文件        1186  2008-10-31 12:58  DS18B20\system\inc\mmu.h
     目录           0  2019-04-16 14:20  DS18B20\system\src\
     文件       20544  2008-10-31 12:40  DS18B20\system\src\2440init.s
     文件        2782  2010-01-20 15:28  DS18B20\system\src\2440lib.c
     文件        7303  2010-01-27 14:36  DS18B20\system\src\2440slib.s
............此处省略4个文件信息

评论

共有 条评论