历史上的今天

今天是:2024年10月19日(星期六)

正在发生

2019年10月19日 | DS18B20.h LCD1602.h头文件下载 温度和液晶 调试ok 可直接调用

发布者:心愿达成 来源: 51hei关键字:DS18B20  LCD1602  头文件 手机看文章 扫描二维码
随时随地手机看文章

DS18B20.h头文件内容预览:

/*DS18B20驱动程序*/

//作者:詹磊                                                                                                                                   

//功能:驱动DS18B20单总线温度计芯片,从中读出当前温度计所处温度,

//      测量范围:-55~+125度;分辨率为0.1度(100度以下);

//注意:本驱动不含CRC检测,所以不能一线挂多个器件,也不带温度报警,在之后的版本中

//      再加吧

//感想:对单总线器件的操作时序非常重要;程序顺序非常关键;由于温度有负数,有小数,

//      所以在数据处理方面也很难控制;单片机资源有限 int float 数据类型最好少用

/*******************************************************************************/

#ifndef __DS18B20_H__ 

#define __DS18B20_H__

/*******************************************************************************/

#include

#define uchar unsigned char

#define        uint unsigned int

#define YES  0

#define NO         1

/*******************************************************************************/

//sbit DS18B20_DQ=P1^7;

sbit DS18B20_DQ=P3^7;

/*******************************************************************************/

bit fu_flag;

/*******************************************************************************/

/***************************/

//delay_us(60);延时556us   //

//delay_us(3);延时43us            //

//delay_us(18);延时178us   //

//delay_us(30);延时286us   //

/***************************/

/*******************************************************************************/

bit DS18B20_init()         

{        

        bit n;

        fu_flag=0;

        DS18B20_DQ=1;

        delay_ms(1);                                

        DS18B20_DQ=0;

        delay_us(60);//延时556us

        DS18B20_DQ=1;

        delay_us(3);//延时43us

        n=DS18B20_DQ;

        delay_us(18);//延时178us        

        delay_us(30);//延时286us

        return n;                                

}

/*******************************************************************************/

void W_DS18B20(uchar com)

{

        uchar i;

        DS18B20_DQ=1;

        delay_ms(1);                                        

        for(i=0;i<8;i++)

        {        

                DS18B20_DQ=0;

                _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

                DS18B20_DQ=com&0x01;

                delay_us(3);//延时43us ;3

                _nop_();

                _nop_();

                DS18B20_DQ=1;                

                _nop_();

                com>>=1;

        }

}

/*******************************************************************************/

uchar R_DS18B20()

{

        uchar i,dat; 

        DS18B20_DQ=1;

        delay_ms(1);

        for(i=0;i<8;i++)

        {

                DS18B20_DQ=0;

                _nop_();_nop_();_nop_(); _nop_();_nop_(); _nop_();

                dat>>=1;//这里位置很关键。最后一次是不需要移位的,所以放在if前

                DS18B20_DQ=1;

                _nop_();_nop_(); _nop_();_nop_();

                if(DS18B20_DQ==1)

                        dat=dat|0x80;                

                delay_us(3);//延时43us

                _nop_();

                _nop_();

                DS18B20_DQ=1;

        }

        return dat;

}

/*******************************************************************************/

uint R_temp_DS18B20()

{

        uint temp;

        uchar l,h;

        DS18B20_init();

        if(DS18B20_init()==YES)

        {

                W_DS18B20(0xCC);

                W_DS18B20(0x44);

                delay_ms(1);

                DS18B20_init();

                W_DS18B20(0xCC);

                W_DS18B20(0xBE);

                l=R_DS18B20();

                h=R_DS18B20();

                if((h&0xF0)==0xF0)

                {

                        fu_flag=1;

                        if(l==0)

                        {

                                l=~l+1;

                                h=~h+1;

                        }

                        else

                        {

                                l=~l+1;

                                h=~h;

                        }

                        temp=h*256+l;

                }

                else

                {

                        temp=h*256+l;

                        fu_flag=0;

                }

        }

        return temp;

}

/*******************************************************************************/

#endif

/*******************************************************************************/

//                                                                 沐雨迎风设计                                                                   //

//                                                                 2010/04/05                                                                           //

//                                                                                                                                                           //

/*******************************************************************************/




LCD1602.h头文件:

/*1602液晶驱动程序*/

//作者:詹磊                                                                                                                                   

[1] [2]
关键字:DS18B20  LCD1602  头文件 引用地址:DS18B20.h LCD1602.h头文件下载 温度和液晶 调试ok 可直接调用

上一篇:51单片机防酒后驾驶 MQ-3酒精检测系统的仿真
下一篇:51单片机与PC上位机串口通信之LED控制

推荐阅读

根据新数据显示,全球互联网接入的增长已经大幅放缓,这表明数字革命将成为地球上数十亿最贫困和最孤立的人们的遥远梦想。在与卫报分享的一份未发表报告中描述的引人注目的趋势表明,自2015年以来,世界上网率大幅下降,妇女和农村贫困人口基本上被排除在互联网可以提供的教育,商业和其他机会之外。联合国数据的分析中描述了这种放缓,这些数据将在下个月...
(文章来源:机器人zhihui) 工业机器人的末端夹持器是机器人与工件直接接触的,在整个机器人项目集成过程中,末端夹持器的制作质量决定着机器人完成工作的质量。所以说机器人的末端执行机构也是影响着工业机器人工作站的关键部件之一。 工业机器人向来以柔性高著称,除了机器人本身的自由度高之外,机器人的末端执行器的多样性也是不可分割的一部分...
近日,雷军接受国内媒体采访时表示,小米会坚定不移地以中国市场为根,同时加快推动全球化。雷军透露, 小米去年的营业额是2058亿元,位居世界500强的第422位。从区域看,中国市场占一半,国际市场占一半。他表示,面对当前复杂的国际形势,小米的发展思路有三条: 一是全力做好中国业务。为了满足国内市场消费升级的趋势,小米今年宣布进入高端手机市场,...
电动汽车,并不只是“四个轮子的iPhone”那样简单。 在今年鸿海科技日上,鸿海集团创始人郭台铭将一辆电动汽车开到了现场。 伴随着《生日快乐》的BGM和现场观众的鼓掌,主持人揭晓了预热许久的三款新车——Model E、Model C以及Model T。 没错,新车采用了和特斯拉如出一辙的命名方式。 郭台铭感慨道:“今天就我个人而言,(这款车)是我71岁以来收到...

史海拾趣

问答坊 | AI 解惑

谁会写WinCE5。0的4.3寸TFT液晶驱动程序

我有个广嵌的开发板液晶屏是3.5寸的TFT,现在我想把它改用4.3寸的液晶屏,改了几天也没成功. 原来的3.5寸TFT板电路图也没有,我把屏拆下分析了一天,发现它的PWR液晶屏电源使能没用,就是上电背光就亮.而我的电路是让PWR使能的. 谁写过4.3寸液晶屏驱动 ...…

查看全部问答∨

直流电机

本帖最后由 paulhyde 于 2014-9-15 09:38 编辑 一些关于直流电机的控制的资料 觉得蛮好的 和大家分享下  …

查看全部问答∨

基于单片机USB接口的PC主机驱动程序和应用程序设计

摘 要:介绍了与51单片机USB接口的Pc主机在Windows环境下软件设计过程。驱动程序由DriverStudio生成,动态链 接库和应用程序分别采用Visual C++和Visual Basic编写。实现了PC机与单片机之间通过PDIUSBD12芯片进行数据通讯 的功能。…

查看全部问答∨

提高设计速率的一种办法

以前总认为DCM没什么用,后来经人指点,例化这个模块为其他时钟提供时钟源,相当于超频一样。V2的芯片可以达到约600M的时钟速率很简单的一条心得和大家分享…

查看全部问答∨

WindowsCE6.0 上, IE 的类名是什么 ?

WindowsCE6.0 上, IE 的类名是什么 ?…

查看全部问答∨

关于hive注册表?

boot.hv是放在HIVE BOOT SECTION ;END BOOT SECTION之间的,在系统启动的时候实现加载! 那么,在注册表中的其它部分是怎么确认分别归属于default.hv和user.hv的, 是不是有什么标签?  …

查看全部问答∨

抗干扰角度分析六层板的布线技巧

很好的抗干扰角度析六层板的布线技巧…

查看全部问答∨

经典测速方法在低速情况下的研究的评论

经典测速方法在低速情况下的研究的评论…

查看全部问答∨

急求高手帮忙(如何提高modelsim仿真1s的速度)

本人所使用开发板,altera DE2-115    时钟50MHz  (周期20ns)所设计程序实现流水灯,和数码管显示 由于系统时钟频率很高,所以设计26位计数器进行分频,当计数满时,流水灯流水一次(状态变化一次),因此每当状态变化一次(即 ...…

查看全部问答∨

【工具推荐】使用 Crosshairs Embedded Debugger & Interface Designer

还有白头发吗? 我们不能帮助去掉已经存在的,但是试试我们的 Debugger 可以避免更多新的。 来自 Crosshairs Embedded 的 function debugger 可以进一步加强对代码的调试功能,在这里和大家推荐一下! Crosshairs Embedded 是一家来自挪 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved