历史上的今天
返回首页

历史上的今天

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

正在发生

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

2018-08-26 来源:eefocus

代码是在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();    //显示温度
       
      

}


推荐阅读

史海拾趣

Greenliant公司的发展小趣事

GPS公司成立于2010年,初期专注于可再生能源存储解决方案的研发。随着全球对清洁能源需求的增长,GPS开发了一款高效能的锂离子电池储能系统,该系统能够在电力需求高峰时自动释放电能,平衡电网负载。这一技术突破迅速吸引了投资者的关注,并在几年内成为市场上的领先产品。GPS通过不断优化电池管理系统和智能控制算法,进一步提升了储能系统的效率和安全性,逐步在全球范围内建立了稳定的客户群体。

Eurotechnique公司的发展小趣事

随着全球对环保和可持续发展的关注度不断提高,Eurotechnique也开始注重环保和可持续发展。公司采用环保材料和生产工艺,降低产品对环境的影响。同时,Eurotechnique还积极参与环保公益活动,推动电子行业的绿色发展。此外,公司还致力于研发更加节能、环保的产品,以满足市场的需求。

AverLogic公司的发展小趣事

AverLogic公司在电子行业中以其技术创新和产品突破而崭露头角。在早期的发展阶段,公司专注于研发高质量的视频处理芯片,以满足市场对于更高清晰度和更流畅视频播放的需求。经过多次实验和迭代,公司成功推出了一款具有革命性的转换器产品——AL110,这款产品能够将PC和Macintosh的VGA信号转换为高品质的NTSC或PAL信号,从而极大地提升了视频信号的处理效率和输出品质。这一创新不仅为公司赢得了市场的认可,也为公司在电子行业中奠定了坚实的基础。

Aten International公司的发展小趣事

随着多媒体技术的快速发展,专业影音产品的市场需求逐渐增长。Aten International紧跟市场趋势,投入大量研发资源,推出了一系列专业影音产品,包括高清视频切换器、音频分配器等。这些产品以其高品质、高稳定性受到了市场的广泛认可,为Aten International在电子行业树立了良好的口碑。

蓝箭(BLUE ROCKET)公司的发展小趣事

蓝箭电子始终重视创新能力,不断加大研发投入,推动产品的升级换代。公司还积极拓展国际市场,寻求更多的合作机会。未来,蓝箭电子将继续秉承创新、质量、服务的理念,为电子行业的发展贡献更多力量。

这些故事仅是对蓝箭电子在电子行业发展中一些重要节点的概括,具体的发展过程和细节可能还需要进一步了解公司的历史资料和市场动态。希望这些信息能够满足您的需求。

Goodwork Semiconductor ( GW )公司的发展小趣事
可控硅稳压器能够快速响应电压变化,及时调整输出电压,保持电压稳定。

问答坊 | AI 解惑

丰田自动织机展出新型转换器

丰田自动织机在“人与车科技展2007”(太平洋横滨会展中心)上,展示了“雷克萨斯LS460/600h”采用的电动助力转向系统中的2款DC/DC转换器。 雷克萨斯LS460采用的是可将12V电源电压升至45V的型号,主要用于电动助力转向系统(EPS)。最大输出功率 ...…

查看全部问答>

回家上网,论坛速度慢的问题已经解决

看来是办公室网络的问题。 办公室上开心网也慢,这里快多了。…

查看全部问答>

TI公司的AD转换芯片TLV5616的中文版资料

好不容易找到的,和大家一同分享…

查看全部问答>

车载信息中心电路保护措施

新型客车、卡车、公共汽车甚至摩托车都已成为移动的网络,将众多特征和功能连接在一起。如内置控制、移动媒体和无线网络。信息娱乐系统、远程信息处理、安全控制等的应用均需使用几种现有的网络标准。如LIN、CAN、MOST、IDB-1394、FlexRay、Bytefli ...…

查看全部问答>

蓝精灵第三讲:STM32 GPIO的使用

本期主要讲述一下stm32GPIO的使用,做了一个GPIO的例子(流水灯)。需要的可以在附件中下载。该程序在飞嵌电子的蓝精灵stm32上测试运行通过。…

查看全部问答>

冰天雪地裸体跪求

请问一下哪位大哥有Programming the Microsoft Windows driver Model 的源代码啊? 先谢了!!…

查看全部问答>

求助-----怎么我用TLC549把采集到的电压值,在12864上打不出波形的

谁成功实现了,发份代码上来参考下,只要能显示 出波形就可以了…

查看全部问答>

如何定义不定长数组

                                 请教STM32如何动态分配空间,是否有现成的函数可以调用,请高手指教…

查看全部问答>

问下各位大侠,关于那个板载仿真器哈

TI开发板板载仿真器十分方便,我想问的是那个CPLD能否去掉,因为我还得CPLD编程,麻烦的很。请回答谢了…

查看全部问答>

51单片机的语音自动报时系统中的语音部分该用什么芯片做

初步是这样想的,用一个AT89S51的芯片,再加上A/D转换以及D/A转换,在加上放大器和扬声器,以及数码显示。但我不知道语音录入者一部分该怎么做,求高人指教…

查看全部问答>