历史上的今天

今天是:2024年08月26日(星期一)

正在发生

2018年08月26日 | 基于单片机的温度传感器18b20的C语言程序

发布者:光明2599 来源: eefocus关键字:单片机的  温度传感器  18b20 手机看文章 扫描二维码
随时随地手机看文章

代码是在12M的晶振的晶振下调试出来的,希望可以给大家带来参考价值

 

#include        //51芯片管脚定义头文件
#include   //内部包含延时函数 _nop_();
#include

#define uchar unsigned char
#define uint  unsigned int
uchar Flag=0;  //定义一个全局的标志位
uchar Feng=0;
sbit  ds= P3^1;        //接18B20
void delay(uint t)
{                           
   uint k;
   while(t--)
   {
     for(k=0; k<12; k++)
     { }
   }
}
void dsreset(void)//初始化函数
{
 uint i;
 ds=0;
 i=97;
 while(i>0)
 i--;
 ds=1;
 i=4;
 while(i>0)
 i--;
}
bit tempreadbit(void) //读一个字节
{
 uint i;
 bit  dat;
 ds=0;
 i++;
 ds=1;
 i++;  //i++起延时作用
 i++;
 dat=ds;
 i=8;
 while(i>0)
 i--;
 return(dat);
}
uchar tempread(void)//读一个数据
{
 uchar i=8,dat=0;
 bit j;
 for(i=1;i<=8;i++)
        {
            dat=dat>>1;
            j=tempreadbit();
            if(j==1)
            dat=dat|(0x80);
        }
 return(dat);
}
void tempwritebyte(uchar dat)//写一个字节
{
 uint  i;
 uchar j;
 bit   testb;
 for(j=1;j<=8;j++)
 {
  testb=dat&(0x01);
  dat=dat>>1;
  if(testb)
  {
   ds=0;
   i++;
   i++;
   ds=1;
   i=8;
   while(i>0)
   i--;
  }
  else
  {
   ds=0;
   i=8;
   while(i>0)
   i--;
   ds=1;
   i++;
   i++;
  }
 } 
}
void tempchange(void)
{   
 dsreset();
 delay(1);
    tempwritebyte(0xcc); //写跳过读rom
 tempwritebyte(0x44); //写温度转换
}
float get_temp()
{
 uchar a;
 uint b;
 float Read_Value;
 dsreset();
 
    //tempwritebyte(0xcc); //写跳过读rom
 //tempwritebyte(0x44); //写温度转换
  delay(10);
 //dsreset();
 tempwritebyte(0xcc);//写跳过读ROM
 tempwritebyte(0xbe);//读暂存器

 a = tempread();
 b = tempread();
 b = (b << 8) + a;
 Read_Value = b *0.0625;
// delay(1000);
 return(Read_Value);
}
void Display1()     //显示温度
{
    int temp,temp1;
    temp=get_temp();
 temp1 = temp*100; 
 P1 = 0x80|(temp1/1000);
 delay(10);
 P1 = 0x40|(temp1%1000/100);
  delay(10);
 P1 = 0x20|(temp1%1000%100/10);
  delay(10);
 P1 = 0x10|(temp1%1000%100%10);

 }
main()
{while(1)
 {  
       
         tempchange(); 
      Display1();    //显示温度
       
      

}


关键字:单片机的  温度传感器  18b20 引用地址:基于单片机的温度传感器18b20的C语言程序

上一篇:基于51单片机及DS18B20温度传感器数码管显示程序
下一篇:STC89C52MCU -- 双机通信及多机通信

推荐阅读

  相比于普通单片机,STM32 拥有复杂的时钟系统,相应的控制器称为 RCC(Reset Clock Controller,复位与时钟控制器)。每个外设都配备了外设时钟的开关,当我们不使用某个外设时,可以把这个外设时钟关闭,从而降低 STM32 的整体功耗。因此,在我们使用外设前,必须要开启相应外设的时钟。可以使用的库函数有:void RCC_AHBPeriphClockCmd(uint3...
8月20日,国网辽宁省电力有限公司组织员工以抚顺市望花城区配电网拓扑图为基础,以营配调专业数据贯通及共享应用为核心,构建配电物联网三维实景可视化综合展示应用。该公司按照“台区-分线-表箱”层级结构解析并统计实际设备量,将其作为PMS2.0(工程生产管理系统)低压模型修正的辅助支撑,加快望花城区配电网示范区建设,为下一步望花城区的配电网项...
人工智能在制造业中非常有意义——它能够显著提高效率。然而,准备工作还需要改进。随着人工智能越来越多的应用出现,它在制造业中的潜力得到了极大的关注。然而,纵观全局,制造业几乎最多算是触及表面。这种情况并不是因为缺乏兴趣,相反,大多数制造商缺乏准备,Ople.ai CEO Pedro Alves告诉《工业周刊》。他说:“制造商表达了对大数据分析和预测性...
1.超声波模块型号超声波模块是一种常用的测距工具,一般用在避障小车,水位监控系统中,本教程使用的模块型号为HC-SR04,外观形状大体如下模块除了两个电源引脚外,还有TRIG,ECHO引脚,这两个引脚分别接我们开发板的P2.0和P2.1。工作原理就是起初先给这两个引脚都拉低,然后让TRIG引脚拉高10微秒以上再拉低产生一个脉冲起始信号(程序中我们是拉高20微秒...

史海拾趣

问答坊 | AI 解惑

一个成熟的摩托车防盗系统原理图

这是我以前用过的一个原理图,实用的,应该对大家有点帮助…

查看全部问答∨

关于ARM和嵌入式系统方向

本公司为相对论科技有限公司,拥有强大的开发团队和雄厚的经济实力。现从事ARM系列开发板研发,承揽自动化控制,数据采集、传输、处理、显示等应用工程开发项目及各种嵌入式系统工程的研发项目。出售MPEG4 编解码方案,同时公司还自主研发了GPS导航 ...…

查看全部问答∨

手势识别器的设计

本帖最后由 jameswangsynnex 于 2015-3-3 20:01 编辑   目前比较流行的导航键控制方式有四维键、摇杆,这是最常见的两种导航键,此外还有一些手机上有很新颖的导航键设计,例如:LG-KG70的滚轴键、LG-KE608的转盘设计、索爱W830的触摸式、多普达 ...…

查看全部问答∨

WINCE 编译完出现的错误

编译WINCE出现的错误  我用的工程文件是FL开发板自带的工程文件 BUILD: [01:0000001461:ERRORE] SC2440_SDHCBase.lib(sdhcmain.obj) : error LNK2019: unresolved external symbol "public: struct SDCARD_HC_CONTEXT * __cdecl CSDI ...…

查看全部问答∨

测量摆的倾斜角度

  希望大家多给建议:        我想测量一个垂直的摆的倾斜角度,倾斜到一定角度就报警。该怎么设计呢?…

查看全部问答∨

EVC4.0下运行向导程序出问题?

An application targeting a Standard SDK for windows CE.NET and built for the ARMV4T CPU cannot be run on the Emulator device.In order to run this application on any cpu other than the emulator,you\'ll have to install an SDK tha ...…

查看全部问答∨

准备学习画板子

目标是先画一个2440的板子,没学过数电、模电, 请问现在需要补充哪些知识,谢谢…

查看全部问答∨

CREE晶片常见问题及解答

CREE晶片常见问题及解答…

查看全部问答∨

为什么我用Keil进入调试的时候会突然退出呢?

在Win7下,以前很正常,最近在进入调试的时候会突然退出,不知道大家有没有遇到过这种情况?用的是LM3S8962评估板。 [ 本帖最后由 academic 于 2011-1-6 19:09 编辑 ]…

查看全部问答∨

求解。。你们发的资料通常是用什么来看的

我不知道哪个程序可以看的了你们发的资料。。我想知道用什么程序才可以看。。…

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

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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