历史上的今天

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

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

发布者:WhisperingWish 来源: 51hei关键字:avr单片机  DS18B20  温度读取 手机看文章 扫描二维码
随时随地手机看文章

/*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();//简单的显示    仅此而已
}
  
}

关键字:avr单片机  DS18B20  温度读取 引用地址:avr单片机DS18B20温度读取程序-母亲节的礼物

上一篇:AVR单片机定时器1 CTC模式A实验程序
下一篇:基于AVR的SCCB读写程序

推荐阅读

 我曾经做过两年的单片机产品,在对单片机编程的过程中逐渐形成了一个大体固定的整体框架,也可以说是编程思路。现提出来供大家参考。首先,对外围芯片进行分类,属同一功能或同一芯片的程序采用模块化的形式,用固定的几个函数实现,一般不同芯片之间的函数功能尽量不重叠,也不要使用一个函数覆盖几个芯片,以便于后期的调试,如果涉及到芯片之间通讯的...
  据外媒报道,加利福尼亚州日前发布了其2019~2020年综合资源计划(IRP)。根据该计划,到2030年,太阳能+储能项目将在该州能源结构中占据主导地位。   计划指出,到2030年,将部署装机容量11~19GW的电池储能系统,主要目的是将太阳能发电转移到夜间。   据悉,与之前的综合资源计划(IRP)相比,太阳能发电和储能系统大幅增加的部分原因是,这...
根据TrendForce旗下半导体研究处发布最新报告指出,2020年疫情导致众多产业受到冲击,然受惠于远距办公与教学的新生活常态,加上5G智能手机渗透率提升,以及相关基础建设需求强劲的带动,使全球半导体产业逆势上扬,预估2020年全球晶圆代工产值年成长将高达23.8%,突破近十年高峰。从接单状况来看,半导体代工产能的吃紧预估将至少延续到2021年上半年,在1...
大富科技11月17日晚间公告,大富科技拟变更USB3.1 Type-C连接器扩产项目募集资金用途,用于收购配天智造部分股权,拟6.01亿元收购配天智造90.49%股权。大富科技表示,USB3.1 Type-C连接器扩产项目原计划总投资8.4亿元,截至2021年10月31日已投入3229.11万元。因连接器产品及行业的市场环境与大富科技募集资金时发生了变化,基于谨慎投资考虑,大富科技希...

史海拾趣

问答坊 | AI 解惑

AT89c2051 中文资料

AT89c2051 中文资料…

查看全部问答∨

高频PCB学习资料

高频PCB学习资料…

查看全部问答∨

怎么把系统外界模块的驱动加到WinCE操作系统中?

我主板的操作系统准备用WinCE 6.0,外接了一个GPRS模块,还有几个其他模块。怎么把外接模块的驱动加到WinCE中啊?是像XP中那样安装呢?还是必须在定制系统的时候就把驱动程序加入进去呢?如果是后者,定制过程中,怎么把驱动加进去啊?我现在的驱动 ...…

查看全部问答∨

编译器的工作问题

问个基本问题:以S3C44B0X为例,在ADS编译环境下,编译器编译程序后自动将程序的代码和数据分开。代码和数据都放在FLASH里,。在启动程序44BINIT.S里,将数据段从FLASH拷贝SDRAM里,代码仍然留在FLASH里。 请问是这样的不? …

查看全部问答∨

触摸屏技术

本帖最后由 jameswangsynnex 于 2015-3-3 19:58 编辑 “伸出手臂,触摸世界”。即使是对工程师来讲,如此简单的模拟通话也因此马上变得去繁变简。但是,有时电话交流还是不够,在这种情况下,一图胜千言,所以有了界面友好的触摸屏。   想象一 ...…

查看全部问答∨

试用报告4-关于人脸检测的具体操作步骤

前些帖子介绍了人脸检测的一些相关的资料,下面这个帖子就具体步骤进行介绍: 要实现人脸检测必须从硬件和软件入手: 硬件方面: 1、在开始菜单中启动xilinx platform studio 11.1(因为本实验板附带的edk就是11版本的,大家可以到xilinx官网中 ...…

查看全部问答∨

我的定时器启动后先进一次中断

大家好 我用的stm32单片机,我已经做了其他可能的排除,最好确定 定时器使能后先进入一次中断。 我感觉应该是有些标志位没有清除,希望各位大侠帮我看看。 void TIM_Configuration(void) { TIM_TimeBaseInitTypeDef  TIM_TimeB ...…

查看全部问答∨

相位差方波如何实现

我想实现如下波形 下载 (42 KB) 2010-11-21 09:37 看了版主的博文: http://blog.ednchina.com/STM32/352180/message.aspx 这个用中间对齐计数模式,只能实现2路相位差的PWM波 而http://blog.ednchina.com/STM32/ ...…

查看全部问答∨

为什么要删我的帖子的!!!!!!!!

                                 我看见网上有公司能破解STM8了,我也正在用STM8,所以想在这问一下,今天发现帖子被删除了…

查看全部问答∨

matlab与ModelSim联合仿真

这篇文章自己感觉对仿真很有用,再次感谢原作者的分享!   1. Matlab产生数据用作Modelsim仿真     在FPGA进行算法验证的时候,经常需要输入仿真数据,这些数据可以用FPGA产生,但是如果数据产生过程很复杂的 ...…

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

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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