• 大小: 343KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-05-27
  • 语言: 其他
  • 标签: 温度  

资源简介

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个文件信息

评论

共有 条评论