资源简介
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\ob
文件 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个文件信息
- 上一篇:德国MK无刷电调V0.41代码
- 下一篇:Everything桌面搜索原理源码
相关资源
- Keil Mdk5.15下移植ucosii到mini2440s3c2440
- SJF2440源码 源代码 官方发布VC++完整
- 51单片机用温度传感器控制直流电机转
- 基于DS18B20的多路温度监测系统设计
- S3C2440资料3时钟控制器,电源
- DS18B20 多点温度测量 用proteus仿真 课
- 基于51单片机的ds18b20的proteus仿真
- 温度传感器数据在数码管上显示
- 汇编语言的饮水机控制程序
- DS18B20 资料原理图+test code
- 无线测温程序
- msp430 温湿度sht10 和 DS18B20显示
- DS18B20温度传感器源码
- STM32+SHT30(DS18B20)+0.96寸OLED(IIC)的
- LCD12864串行显示DS18B20温度和超声波测
- 基于DS18B20的水温控制系统 仿真+程序
- S3C2440详细代码.rar
- DS18B20中文手册.pdf
- STM32F103C8T6核心板之配套程序源码 -
- 基于PIC16F877与DS18B20的测温显示
- DS18B20使用手册
- c51使用ds18b20测试温度使用数码管显示
- S3C2440三星官方电路设计
- DS18B20+lcd1602显示+LED数码管显示
- 51单片机,DS18B20实现程序
- STM32F103驱动DS18B20程序
- 基于STC12C5A60S2的DS18B20温度显示工程
- 以51单片机为核心的DS18B20的数码管显
- 基于DS18B20的数字温度计设计原理图
- 用DS18B20测量温度并在12864液晶屏上显
评论
共有 条评论