历史上的今天
返回首页

历史上的今天

今天是:2025年01月11日(星期六)

2020年01月11日 | DS18B20函数库建立实验

2020-01-11 来源:eefocus

1.主代码:

/* 温度传感器  */
#include "DS18B20.h"
#include"def.h"

u16 get_temp (void)
{
    float tt;
    u16 temp;
    u8 a,b;
    ds_delay(40);
    dsic_init();
    write_byte(0xcc);
    write_byte(0x44);
    ds_delay(40);
    dsic_init();
    write_byte(0xcc);
    write_byte(0xbe);
    ds_delay(40);
    a = read_byte();
    b = read_byte();
    temp = b;
    temp <<= 8;
    temp = temp|a;
    tt = temp*0.0625;
    temp = tt*10+0.5;
    return temp;
}

void ds_delay(u16 i)
{
    while(--i); 
}

void dsic_init (void)
{
    ds_dat = 1;
    ds_delay (2);
    ds_dat = 0;
    ds_delay (250);
    ds_dat = 1;
    ds_delay (100);
}
u8 read_byte (void)
{
    u8 i = 0;
    u8 dat = 0;
    for(i=8;i>0;i--)
    {
        ds_dat = 0;
        _nop_();
        dat >>= 1;
        ds_dat = 1;
        ds_delay(2);
        if(ds_dat)
        {
            dat |= 0x80;
        }
        ds_delay(11);
    }
    return (dat);
}
void write_byte(u8 dat)
{
    u8 i = 0;
    for(i=8;i>0;i--)
    { 
        ds_dat = 0;
        _nop_();
        ds_dat = dat&0x01;
        ds_delay(11);
        ds_dat = 1;
        dat >>= 1; 
        ds_delay(2);
    }
}

#include
#include"lcd1602.h"
#include"DS18B20.h"
#include"def.h"
void main(void)
{
    float temperature ;
    lcd_init();
    while(1)
    {
        temperature = get_temp ();
        dispy1(temperature);
    }
}
2.效果演示:

推荐阅读

史海拾趣

Electroswitch公司的发展小趣事

进入21世纪后,Electroswitch开始积极实施国际化战略。公司通过收购和兼并等方式,不断拓展海外市场。同时,公司还加强了与国际知名企业的合作,共同开发新产品和新技术。这些举措使得Electroswitch的国际化水平得到了显著提升,也为公司的未来发展奠定了坚实的基础。

ETAL公司的发展小趣事

随着电子行业的快速发展,ETAL意识到只有不断创新才能在竞争中立于不败之地。因此,公司加大了对研发的投入,积极引进高素质的技术人才和先进的生产设备。经过多年的努力,ETAL成功研发出了具有自主知识产权的一系列高性能电子产品,如高精度传感器、智能控制模块等。这些产品不仅满足了市场的需求,还为公司带来了可观的利润。

爱浦电子(AIPULNION)公司的发展小趣事

面对日益激烈的市场竞争,爱浦电子始终坚持创新驱动的发展战略。公司不断投入研发资金,引进先进技术和设备,推动产品创新和技术升级。同时,爱浦电子还积极探索新的应用领域和市场机会,拓展产品的应用范围。这些创新举措为公司未来的发展奠定了坚实的基础,也为整个电子行业的发展注入了新的活力。

Flamar公司的发展小趣事

面对电子行业供应链日益复杂的挑战,Flamar公司高度重视供应链管理和优化工作。公司通过引入先进的供应链管理系统,实现了对原材料采购、生产制造、物流配送等各个环节的精准控制。同时,公司还积极与上下游企业建立长期稳定的合作关系,共同构建高效的供应链生态体系。这些措施有效降低了公司的运营成本,提高了生产效率和产品质量,进一步增强了公司的市场竞争力。

GradConn Ltd公司的发展小趣事

GradConn Ltd的创立初期,公司便明确了其专注于电子连接器和同轴电缆组件的市场定位。这一战略选择使GradConn能够迅速在通讯、工业、医疗和汽车等领域建立起稳定的客户基础。通过不断研发创新,GradConn推出了一系列高质量的产品,如板对板连接器、电缆组件连接器以及SIM卡连接器等,满足了市场对精密、可靠连接解决方案的迫切需求。

创都(CAX)公司的发展小趣事

随着市场竞争的加剧,单一企业的力量往往难以应对复杂多变的市场环境。创都公司意识到了这一点,因此积极寻求跨界合作的机会。他们与多家知名企业建立了战略合作伙伴关系,共同研发新产品、开拓市场。这些合作不仅为创都公司带来了更多的资源和机会,还提升了公司的综合竞争力。其中,与某知名互联网公司的合作项目尤为成功,双方共同推出了一款智能家居产品,该产品凭借其便捷的功能和优秀的品质迅速在市场上走红,为双方带来了可观的收益。

问答坊 | AI 解惑

无线电源控制系统

采用AT89C2051单片机作为下位机主控芯片…

查看全部问答>

用mini2440排队机应用的几张图片

该系统采用的是Qt4做的应用程序,供银行排队叫号系统使用,图片上的前端应用,实际还有Qt4编写的后台设置程序(需通过“秘密通道”打开) 外接输入输出设备有: 1. 银联刷卡器 2. USB小键盘 3. 串口打印机(串口控制模块) 4. 超声波触摸屏(串口 ...…

查看全部问答>

RC消火花电路的理解

最近,想研究一下rc电路,并阅读了不知道谁写的一本书《RC电路及其应用》,有了一点体会,描述如下. RC电路一大应用时消火花电路。产生火花电路大都是应用于感性负载,如电机、继电器线圈等 如图所示,当开关k断开时候,根据楞次定律线圈两端产 ...…

查看全部问答>

使用VxWorks进行串口通信时遇到的诡异问题(基于Vmware)

  先说一下环境,使用Vxworks5.5+Tornado2.2,BSP是Pentium4的,因为没有奔四的机器,所以在机器上用Vmware虚拟了一个机器,编译好的自启动vxworks镜像就在虚拟机上运行。一共有3台PC作了这样的设置,现在只拿两台作测试,用串口直连线连接两台PC ...…

查看全部问答>

车载GPS A3/A4方案合作

因为客户需要,我们准备开发A4/A3的车载GPS方案。 现在寻求硬件高手合作,如能提供A4/A3开发平台及相关资源的,可以额外另付一定的现金报酬。 另外,如果有方案公司愿意合作的,可以加我QQ详谈,46317857。…

查看全部问答>

RDA 方法

请问高手:CoCreateInstance()函数必须需要COM支持的系统吗?我试写了一段 rda server ce同步的数据库程序,测试发现根本走不下去,不知道怎么回事?…

查看全部问答>

请问:在IAR中仿真STM32F时怎么查看我的延时程序占用了多长时

                                 AVRSTUDIO中有STOPWATCH,在IAR中没找到.…

查看全部问答>

关于晶振1问?

各位大虾:MSP430F2012有自带的LF振荡电路,只要在外部XTin加入晶体就可以让它起振,从而给430提供时钟了 。请问能用带压控的高温晶体振荡器做为MSP430的时钟输入源吗?能的话怎样做?谢谢。…

查看全部问答>

Beaglebone DS18B20 1602LCD(3.3V)

小弟最近在做一个基于Beaglebone的GSM无线温度报警的设计,温度传感器用DS18B20传感器,显示用1602,现在1602能够在正常的显示,但是DS18B20不能正确检测到初始化信号。(接的上拉电阻,一直检测到1,检测不到0)...原因可能因为使用usleep不准确所 ...…

查看全部问答>

关于simpliciTI中的晶振设定问题

在simpliciTI中的例程中没有找到关于晶振的设定,但是却可以通讯,原因是什么呢?…

查看全部问答>