资源简介
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桌面搜索原理源码
相关资源
- 单片机与温度传感器DS18B20的程序设计
- 毕业论文之温度传感器DS18B20(源码
- stm32 ds18b20 温度传感器 测试通过
- 51单片机读取温度数据存储到SD卡中并
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- DS18B20分布式多点测温的Proteus仿真
- 单片机 DS18B20 温度控制系统
- 课程设计蔬菜大棚自动控制系统,包
- ds18b20温度传感是什么传感器
- S3C2440中文手册pdf(去密码)
- DS18B20_Serial_println.ino
- ds18b20测温例程tm4c123x
- STM32F103C8T6读取DS18B20串口显示程序.r
- DS18B20温度+DHT11湿度+LCD1602
- TM4C系列ds18b20温度传感器例程
- 读写ds18b20内部eeprom
- 基于FPGA的DS18B20单总线控制+数码管显
- STM32F103C8T6读取DS18B20串口显示程序
- STM32F103读取ds18b20温度传感器
- DS18B20-液晶1602显示温度和控制(代码
- 基于FPGA的LCD1602实时显示DS18b20温度
- 通过DS18B20检测环境温度,并在LCD128
- FPGA实现的DS18B20温度传感器
- stm32f407对ds18b20温度传感器数据的采集
- 基于zigbee的温度传感器DS18B20
- S3C2440核心板PCB完整工程,带原理图
- AD设计的 ARM9 S3C2440核心板原理图和P
- DS18B20 AT89C51 单片机 protus keil 温度传感
- FPGA综合系统设计二基于FPGA的温度采集
- 基于STC89C52和DS18B20的温控系统
评论
共有 条评论