2路DS18B20控制 -
[导读]最近了解了一下DS18B20的控制原理...就制作了一个二路的可调温度控制器...本来想在一根IO上实现这个温度的读取,但是那样时间太长了...就利用二个IO接二个18B20...对二个同时进行读写操作...经过实践是可行的...这里面
最近了解了一下DS18B20的控制原理...就制作了一个二路的可调温度控制器...
本来想在一根IO上实现这个温度的读取,但是那样时间太长了...就利用二个IO接二个18B20...对二个同时进行读写操作...经过实践是可行的...
本文引用地址: http://www.21ic.com/app/mcu/201807/785554.htm
这里面用按键+1820+LCD1602完成一个二路的温度控制...并且可以利用程序对P26 P27的负载进行控制,在这里用来控制二个LED...大家也可以加上三极管扩上继电器...
下面是这个的原理图...
本文中程序可以直接调用,单片机为STC89C52,晶振为11.0592M...
本文的程序太长了,所以只发18B20的部分...其它的部分大家可以自己去实现...
//////////////////////////////////////////////////////DS18B20.h
#ifndef __DS18B20_H__
#define __DS18B20_H__
#include
#include"Mytype.h"
#include
#include "Display_KEY_Out.H"
#define nop() _nop_()
#define READ_ROM
#define MATCH_ROM
#define SKIP_ROM
#define SEARCH_ROM
#define ALARM_ROM
#define WRITE_SCRATCHPAD
#define READ_SCRATCHPAD
#define COPY_SCRATCHPAD
#define COVERTT
#define RECALLE2
#define READ_P_SUPPLY
#define Bit_12
#define Bit_11
#define Bit_10
#define Bit_9
sbit DS_IO1 = P1^6;
sbit DS_IO2 = P3^3;
extern
extern
bit Init_DS18B20(void);
void Write_DS_8Bit(uint8 Value);
void Read_DS_8Bit(void);
void Read_DS_Da
void Delay_Us(uint8 Value);
void SetStep(uint8 Value);
#endif
//////////////////////////////////////////////////////DS18B20.C
#include "DS18B20.h"
bit
bit
bit
bit
uint8
uint8
////////////////////////////////////////////////////////////////////////////////
//函数名:PD_DS18B20(void)
//功能描述:检测DS18B20是否接于总线上;
//函数说明:
//调用函数:无;
//全局变量:无;
//输入:无;
//返回:无;
//修改者:
//创建日期:2009-07-15
//版本:v1.0
////////////////////////////////////////////////////////////////////////////////
bit Init_DS18B20(void)
{
}
////////////////////////////////////////////////////////////////////////////////
//函数名:void Write_DS_8Bit(uint8 Value)
//功能描述:向DS18B20写入8位数据,先写最低位;
//函数说明:
//调用函数:无;
//全局变量:无;
//输入:VALUE数据为8位;
//返回:无;
//创建日期:2009-07-15
//版本:v1.0
////////////////////////////////////////////////////////////////////////////////
void Write_DS_8Bit(uint8 Value)
{
}
////////////////////////////////////////////////////////////////////////////////
//函数名:uint8 Read_DS_8Bit(void)
//功能描述:读出DS18B20内部数据,先读低位.读完后并返回数据;
//函数说明:
//调用函数:无;
//全局变量:无;
//输入:无
//返回:读出的8位数据;
//修改者:
//创建日期:2009-07-15
//版本:v1.0
////////////////////////////////////////////////////////////////////////////////
void Read_DS_8Bit(void)
{
}
////////////////////////////////////////////////////////////////////////////////
//函数名:void Read_DS_Da
//功能描述:读出DS18B20内部数据,先读低位.读完后并返回数据;
//函数说明:
//调用函数:Init_DS18B20();复位DS18B20函数;
//调用函数:Write_DS_8Bit();写入数据函数;
//调用函数:Read_DS_8Bit();读取数据函数;
//全局变量:Temp1
//全局变量:Temp2
//输入:无
//返回:读出温度数据;
//修改者:
//创建日期:2009-07-15
//版本:v1.0
////////////////////////////////////////////////////////////////////////////////
void Read_DS_Da
{
}
////////////////////////////////////////////////////////////////////////////////
//函数名:SetStep
//功能描述:18B20精度设置程序
//函数说明:可以输入1-7F来设置9-12位精度;
//调用函数:Init_DS18B20();
//调用函数:Write_DS_8Bit();
//调用函数:Read_DS_8Bit();
//调用函数:Delay_Us(100);
//全局变量:无;
//输入:
//返回:无;
//修改者:
//创建日期:2009-08-18
//版本:v1.0
////////////////////////////////////////////////////////////////////////////////
void SetStep(uint8 Value)
{
}
////////////////////////////////////////////////////////////////////////////////
//函数名:Delay_Us
//功能描述:US级延时程序;
//函数说明:12M晶振下默认的状态是10US.如果参数加1;
///////////////则延时再加上2uS
//调用函数:无;
//全局变量:无;
//输入:无;
//返回:无;
//创建日期:2009-08-18
//版本:v1.0
////////////////////////////////////////////////////////////////////////////////
void Delay_Us(uint8 Value)
{
}
查看评论 回复
"2路DS18B20控制 -"的相关文章
- 上一篇:OK6410汇编程序练习 -
- 下一篇:stm32启动文件选择 -