📄 fun_18s20.h
字号:
//========================================
//功能控制子程序
//实现对DS18S20的常用操作
//Design by ZM
//2007/1/8
//========================================
#include "SPCE061A.h"
#include "DS18S20.h"
//====================================
//语法格式: void DS18S20_Write_Byte(unsigned int Data)
//实现功能: DS1820字节写入程序
//参数: Data->要写入的字节
//返回值: 无
//=====================================
extern void DS18S20_Write_Byte(unsigned int Data)
{
unsigned int i;
for (i=0;i<8;i++)
{
if(Data&0x01)
F_18S20_Write_1();
else
F_18S20_Write_0();
Data=Data>>1;
}
}
//============================================
//语法格式: unsigned int DS18S20_Read_Byte(void)
//实现功能: 读出DS18S20的一个字节内容
//参数: 无
//返回值: 字节内容,低8位有效
//=============================================
extern unsigned int DS18S20_Read_Byte(void)
{
unsigned int i,Data;
for(i=0;i<8;i++)
{
Data=Data>>1;
Data=Data|F_18S20_Read();
}
return Data;
}
//==============================================
//语法格式: unisigned int DS18S20_Initial(void)
//实现功能:对DS18S20的初始化,包括对端口的初始化
// 以及一次复位
//参数: 无
//返回值: 成功->1;失败->0
//===============================================
extern unsigned int DS18S20_Initial(void)
{
unsigned int i;
F_18S20_SetSystemCLK(); //49Mhz
F_18S20_Initial_IO(); //IO初始化
i=F_18S20_Reset(); //对DS18S20复位
//F_18S20_RsuSystemCLK(); //时钟恢复
return(i);
}
//=================================================
//语法格式: float DS18S20_Convert_Temp(void)
//实现功能: 实现一次温度转换,并把结果以实型数据返回
//参数: 无
//返回值: 温度值
//==================================================
extern unsigned int DS18S20_Convert_Temp(void)
{
unsigned int i,Data[9];
//float temp;
// F_18S20_SetSystemCLK(); //CPU时钟设置为49Mhz
if(F_18S20_Reset())
{
DS18S20_Write_Byte(0xcc); //跳过ROM检查
DS18S20_Write_Byte(0x44); //启动一次转换
while(F_18S20_Read()==0x80)
{
*P_Watchdog_Clear=0x0001;
}
F_18S20_Reset();
DS18S20_Write_Byte(0xcc); //Skip ROM
DS18S20_Write_Byte(0xbe); //Read Scratchpad
for(i=0;i<9;i++) //读取连续9个字节的内容
{
Data[i]=DS18S20_Read_Byte();
}
F_18S20_Reset();
i=(Data[1]<<8)|Data[0]; //Data[0]->温度低8位,Data[1]->温度高8位
//temp=(float)i;
//temp=temp/2; //转换后的温度值
}
// F_18S20_RsuSystemCLK(); //系统时钟恢复
return i;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -