资源简介
AVR-mega128单片机实现温度DS18B20,proteus仿真实现,包含三个文件夹,有ICCAVR,CVAVR,以及不同晶振的方案
代码片段和文件信息
#include “iom128v.h“
#include “DS18B20.h“
#define DQ1 PORTF |= BIT(0)
#define DQ0 PORTF &= ~BIT(0)
#define DQ_in DDRF &= ~BIT(0)
#define DQ_out DDRF |= BIT(0)
#define DQ_val (PINF & BIT(0))
/*******************************************
函数名称:DelayNus
功 能:实现N个微秒的延时
参 数:n--延时长度
返回值 :无
说明 :定时器A的计数时钟是1MHz,CPU主频8MHz
所以通过定时器延时能够得到极为精确的
us级延时
********************************************/
void DelayNus(uint n)
{
while(n--);
}
/*******************************************
函数名称:Init_18B20
功 能:对DS18B20进行复位操作
参 数:无
返回值 :初始化状态标志:1--失败,0--成功
********************************************/
uchar Init_18B20(void)
{
uchar Error;
DQ_out;
// _DINT();
DQ0;
DelayNus(800);
DQ1;
DelayNus(100);
DQ_in;
DelayNus(1);
if(DQ_val)
{
Error = 1; //初始化失败
// LCD_write_shu(341);
}
else
{
Error = 0; //初始化成功
// LCD_write_shu(340);
}
DQ_out;
DQ1;
//_EINT();
DelayNus(400);
return Error;
}
/*******************************************
函数名称:Write_18B20
功 能:向DS18B20写入一个字节的数据
参 数:wdata--写入的数据
返回值 :无
********************************************/
void Write_18B20(uchar wdata)
{
uchar i;
//_DINT();
for(i = 0; i < 8;i++)
{
DQ0;
DelayNus(6); //延时6us
if(wdata & 0X01) DQ1;
else DQ0;
wdata >>= 1;
DelayNus(50); //延时50us
DQ1;
DelayNus(10); //延时10us
}
//_EINT();
}
/*******************************************
函数名称:Read_18B20
功 能:从DS18B20读取一个字节的数据
参 数:无
返回值 :读出的一个字节数据
********************************************/
uchar Read_18B20(void)
{
uchar i;
uchar temp = 0;
// _DINT();
for(i = 0;i < 8;i++)
{
temp >>= 1;
DQ0;
DelayNus(6); //延时6us
DQ1;
DelayNus(8); //延时9us
DQ_in;
DelayNus(1);
if(DQ_val) temp |= 0x80;
DelayNus(45); //延时45us
DQ_out;
DQ1;
DelayNus(10); //延时10us
}
//_EINT();
return temp;
}
/*******************************************
函数名称:Skip
功 能:发送跳过读取产品ID号命令
参 数:无
返回值 :无
********************************************/
void Skip(void)
{
Write_18B20(0xcc);
}
/*******************************************
函数名称:Convert
功 能:发送温度转换命令
参 数:无
返回值 :无
********************************************/
void Convert(void)
{
Write_18B20(0x44);
}
/*******************************************
函数名称:Read_SP
功 能:发送读ScratchPad命令
参 数:无
返回值 :无
********************************************/
void Read_SP(void)
{
Write_18B20(0xbe);
}
/*******************************************
函数名称:ReadTemp
功 能:从DS18B20的ScratchPad读取温度转换结果
参 数:无
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-03-28 10:38 Mega128 温度\
目录 0 2015-03-26 19:41 Mega128 温度 - ICC\
目录 0 2014-02-14 20:08 Mega128 温度 - ICC\BACKUP\
文件 3510 2013-02-01 18:27 Mega128 温度 - ICC\BACKUP\main._c
文件 3848 2013-02-01 18:23 Mega128 温度 - ICC\DS18B20.c
文件 6614 2014-02-14 20:09 Mega128 温度 - ICC\DS18B20.cof
文件 4909 2014-02-14 20:09 Mega128 温度 - ICC\DS18B20.dbg
文件 978 2012-11-21 13:24 Mega128 温度 - ICC\DS18B20.h
文件 3482 2014-02-14 20:09 Mega128 温度 - ICC\DS18B20.hex
文件 20345 2014-02-14 19:51 Mega128 温度 - ICC\DS18B20.lis
文件 19 2014-02-14 20:09 Mega128 温度 - ICC\DS18B20.lk
文件 31272 2014-02-14 20:09 Mega128 温度 - ICC\DS18B20.lst
文件 667 2014-02-14 20:09 Mega128 温度 - ICC\DS18B20.mak
文件 2876 2014-02-14 20:09 Mega128 温度 - ICC\DS18B20.mp
文件 4195 2014-02-14 19:51 Mega128 温度 - ICC\DS18B20.o
文件 1290 2014-02-14 20:09 Mega128 温度 - ICC\DS18B20.prj
文件 63 2014-02-14 20:30 Mega128 温度 - ICC\DS18B20.SRC
文件 97395 2014-02-14 20:27 Mega128 温度 - ICC\Last Loaded 温度.DBK
文件 3509 2014-02-14 20:08 Mega128 温度 - ICC\main.c
文件 33505 2014-02-14 20:08 Mega128 温度 - ICC\main.lis
文件 8016 2014-02-14 20:08 Mega128 温度 - ICC\main.o
文件 70092 2015-03-26 19:41 Mega128 温度 - ICC\Mega128 温度 - ICC.zip
文件 97395 2014-05-22 14:47 Mega128 温度 - ICC\温度.DSN
文件 1626 2014-05-22 14:47 Mega128 温度 - ICC\温度.PWI
目录 0 2014-05-22 18:05 Mega128 温度 16M\
文件 2293 2013-02-02 00:00 Mega128 温度 16M\DS18B20.c
文件 147 2013-02-02 00:00 Mega128 温度 16M\DS18B20.c!
文件 5130 2013-02-02 00:00 Mega128 温度 16M\DS18B20.cof
文件 6413 2013-02-01 18:50 Mega128 温度 16M\DS18B20.cwp
文件 6406 2013-02-01 18:49 Mega128 温度 16M\DS18B20.cw~
文件 169 2013-02-02 00:41 Mega128 温度 16M\DS18B20.c_cbf
............此处省略87个文件信息
- 上一篇:IBindStatusCallback子类
- 下一篇:51单片机实现交通灯系统模拟
相关资源
- 软壁AdS / QCD模型中有限温度手性相变
- 有限密度和零温度下的手性密度波与
- 物联网家居系统中基于单片机的多路
- 基于IAP15F2K61S2单片机的多路温度巡检
- 串行通信在多路温度智能仪表中的应
- 铝合金/镀锌钢脉冲MIG电弧熔-钎焊接头
- 基于ROTDR的光纤温度传感时间极限测量
- 温度对短链多烯生物分子β胡萝卜
- 基于LM35温度传感器的温控系统设计
- 基于LM35温度传感器的温度检测系统的
- ds18b20温度传感是什么传感器
- 基于温度补偿的光纤光栅井下锚杆受
- 具有温度及压力补偿的矿用红外甲烷
- BM-SOP-T021 BM43系列红外温度传感器的应
- 低环境温度空气源热泵冷水机组能效
- 大体积混凝土桥梁承台温度及应力场
- 筏板基础大体积混凝土温度场实测与
- 温度控制直流电机转速
- 地表温度反演(大气校正法)
- 鲁大师温度监控 v3.1.0.1005 单文件独立
- 基于PLC和组态软件的加热炉温度控制
- Lcd12864大时钟万年历 农历生肖温度
- 基于ARM的高精度PID温度控制器_张军
- 温度植被干旱指数TVDI插件
- landsat 8 地表温度反演软件
- 鲁大师温度检测独立插件
- EBJ120TP型掘进机液压系统温度控制的研
- t12白光电烙铁温度控制电路图
- 电烙铁温度转换电路图
- MLX90614红外温度传感器程序,并用液晶
评论
共有 条评论