历史上的今天
返回首页

历史上的今天

今天是:2024年11月19日(星期二)

正在发生

2019年11月19日 | avr单片机DS18B20温度读取程序-母亲节的礼物

2019-11-19 来源:51hei

/*DS18B20读取温度字节程序    本函数花了我不少时间,主要问题是在51可以的情况下他却不行,知道今天才解决,原来是部分延时函数数值不对,造成的

所以虽然做过也未见得好用,切不可粗心大意,AVR内部8M晶振,20110508   天津第四项目部宿舍   */
#include
#define uchar unsigned char 
#define uint unsigned int
#define get_bit(a,b)   a&(1<#define set_bit(a,b)   a|=(1<#define clr_bit(a,b)   a&=~(1<
void delay600us()
{
uint a;
for(a=1600;a;a--);

}
void delay60us()
{uchar a;
for(a=160;a;a--);
}
/*        复位18B20          */
/*       无参                */
/*       无返回              */
void rest_18b20()
{
set_bit(DDRA,4);//开启PA口得输出模式
  set_bit(PORTA,4);
;;
   clr_bit(PORTA,4);
delay600us();
set_bit(PORTA,4);
  delay60us();
clr_bit(DDRA,4);
while(get_bit(PINA,4));//判断有无器件在单总线上
delay600us();
set_bit(DDRA,4);
  
}

/*写DS18B20函数*/
/*传递参数为dat表示要向1820写入的数据字节*/
/*无返回值*/ 
            
void write_18b20(uchar dat)
{
   uchar i,j;
  
   set_bit(DDRA,4);
   for(j=0;j<8;j++)



   clr_bit(PORTA,4);
  for(i=26;i;i--);
  if(get_bit(dat,j))
  {set_bit(PORTA,4);}
  else
  clr_bit(PORTA,4);
  for(i=160;i;i--);
set_bit(PORTA,4);

}


  
}

/*读DS18B20函数*/
/*无参*/
/*返回读出的温度值*/ 
uchar read_18b20()
{
  uchar date,i,k;
  
  for(i=0;i<8;i++)
  {
  set_bit(DDRA,4);
clr_bit(PORTA,4);
for(k=10;k;k--);
  set_bit(PORTA,4);
for(k=18;k;k--);
   clr_bit(DDRA,4);
  if(get_bit(PINA,4))
  { set_bit(date,i);  }
  else
  clr_bit(date,i);
  for(k=160;k;k--);
  }
return (date);
}

void delay100ms()
{
  unsigned char a,b,c;
    for(c=95;c>0;c--)
        for(b=138;b>0;b--)
            for(a=29;a>0;a--);

}
void main()
{

DDRC=0xff;
DDRA=0xff;
PORTA=0xff;
while(1)
{
rest_18b20();


write_18b20(0xcc);
write_18b20(0x44);
delay100ms();      //主要是让1820有足够的时间去处理内部AD

  rest_18b20();

write_18b20(0xcc);
write_18b20(0xbe);
PORTC=read_18b20();//简单的显示    仅此而已
}
  
}

推荐阅读

史海拾趣

General Transistor Corp公司的发展小趣事

随着全球化进程的加速推进,GTC将目光投向了更广阔的国际市场。公司积极在亚洲、欧洲等地区设立分支机构和生产基地,加强与全球客户的合作与交流。同时,GTC还注重可持续发展,致力于绿色生产和环保技术的研发与应用。公司通过采用环保材料、优化生产工艺等措施,降低了产品对环境的影响,实现了经济效益与社会效益的双赢。

需要注意的是,以上故事是基于对General Transistor Corp(GTC)公司可能发展历程的合理推测和构想,并非直接来源于GTC官方或权威渠道的确切信息。如需了解更多关于GTC公司的具体发展情况,建议直接访问其官方网站或查阅相关行业报告。

General Instrument公司的发展小趣事
如果保护器的工作参数没有正确设置,可能导致其在正常电压范围内误判为过欠压状态。
ABCircuits公司的发展小趣事

随着全球环保意识的提高,绿色电子产品逐渐成为市场的新宠。ABCircuits公司敏锐地捕捉到这一趋势,开始将绿色环保理念融入产品研发和生产中。公司积极采用环保材料和工艺,减少生产过程中的污染排放。同时,ABCircuits还推出了多款节能高效的电子产品,深受消费者喜爱。这种绿色环保的发展理念不仅为公司赢得了良好的社会声誉,也为公司的可持续发展奠定了坚实基础。

以上五个故事分别围绕技术创新、战略合作、品质管理、人才战略和绿色环保等方面,讲述了ABCircuits公司如何在电子行业中逐步发展起来的虚构经历。这些故事旨在展示一个成功企业在发展过程中可能面临的挑战和机遇,以及如何通过不断创新和努力来实现持续发展。请注意,这些故事纯属虚构,不代表任何真实公司的经历。

Electro-Mech Components Inc公司的发展小趣事

在1966年,Electro-Mech Components, Inc. (EMC)做出了一个重要的战略决策——在墨西哥北下加利福尼亚州的蒂华纳开设一家制造工厂。这个决定标志着EMC正式进军国际市场,并开始了其在全球范围内的业务布局。蒂华纳工厂的建立为EMC带来了更低的制造成本和更广阔的市场前景。随着工厂规模的逐渐扩大,EMC的产品线也日益丰富,从最初的发光按钮开关逐渐扩展到指示灯和多开关互锁组件等多个领域。

bb-smartworx公司的发展小趣事

1997年,EMC做出了一次重要的收购决策——从Pollak Transportation Electronics Division(TED)收购了开关灯产品线。这一收购使EMC的产品线得到了极大的扩展,同时也增强了其在电气元件领域的竞争力。收购后的开关灯产品线在EMC的精心运营下,逐渐成为了公司的明星产品之一,为公司带来了丰厚的利润。

Anaren公司的发展小趣事

自1976年起,EMC在蒂华纳不仅为自身运营制造工厂,还开始为其他美国公司,如GM/Hughes Aircraft和Daneher Joslyn Sunbank Electronics提供制造服务。这种深度合作模式不仅增强了EMC的生产能力,也使其能够接触到更多的先进技术和管理经验。通过与这些美国公司的合作,EMC的产品质量和生产效率都得到了显著提升,同时也为公司的全球化战略打下了坚实基础。

问答坊 | AI 解惑

diy speed touch home电脑数据线

为了以后更好的在改装成510的modem上升级firmware,这次我教大家做一条modem跟电脑通讯的数据线,然后就可以对modem内的flash rom重新分配空间,那么就可以装下完整的510的firmware,就算以后有高版本的firmware,都可以稍微改一下标识就可以直接拿 ...…

查看全部问答>

关于SilicinImag的SiI3114的开发问题

    本人在做一个东西,用到SiI3114芯片,这个芯片是把PCI端口和SATA硬盘连接起来的。     注:PCI端口是用的DM642的PCI端口.     现在遇到的问题是 SiI3114有没有什么开发环境去开发它本身的BIOS,就像51单片机有 ...…

查看全部问答>

需求确认s3c2440 做视频采集可以吗?

需求确认s3c2440 做视频采集可以吗?…

查看全部问答>

如何运行U-boot目录下examples下的hello_world.c

在U-boot下的examples下有hello_world.c和其它几个.c文件,还有mips.lds和Makefile,从网上查得是这几个.c文件经过编译后可以在U-boot下运行,即在裸机下运行。我的板子是MIPS的,请问如何在我的板子上的U-boot上运行这个hello_world呢? 哎!三 ...…

查看全部问答>

stm32f103的SPI通讯问题

拜问下 大虾们 SPI1 和 SPI2 都设定为双线双工 , SPI1 主 SPI2 从   在 通讯的时候 SPI1 向 SPI2 发送数据 SPI2 能接收 但是&nbs ...…

查看全部问答>

这是最后一篇了,五精华无悬念:STM32的IAP方案

replyreload += \',\' + 1110631;STM32的IAP方案          几乎所有的同类书籍都介绍综合性的应用示例如“万年历 + 温度显示 + 闹钟响铃 + 计时表”这样的一个实时时钟范例或“STM32 + 音频解码 + 大容 ...…

查看全部问答>

单片机C语言 keilc 编写的问题

#include<stdio.h>#include<reg51.h>//实例12:用自增运算控制P0口8位LED流水花样#include<reg51.h>   //包含单片机寄存器的头文件/******************************************************函数功能:延时一段时间************** ...…

查看全部问答>

开关电源设计入门培训资料

这是一份开关电源设计入门培训资料,从开关电源的基础讲起,希望对大家有用,, …

查看全部问答>

电路也能手绘出来?

【Circuit Scribe:能通电的手绘电路】电路也能手绘出来?在Kickstarter 上,一款神奇的圆珠笔Circuit Scribe(意为电路书写器)横空出世,它经过特殊处理,内部填充了可以导电的银制墨水,只需用它信手涂鸦,便可以轻松创造出电路,不需要面包板也 ...…

查看全部问答>