基于C8051F的18B20程序

发布者:飘然出尘最新更新时间:2015-05-21 来源: 51hei关键字:C8051F  18B20程序 手机看文章 扫描二维码
随时随地手机看文章
#include "C8051F410.h"

#include
#define uint  unsigned int
#define uchar unsigned char

sbit DQ   = P2^4 ;

void delay(unsigned int i)

 while(i--);
}
Init_DS18B20(void)
{
  unsigned char x=0;
  DQ = 1;         //DQ复位
  delay(176);      //稍做延时
  DQ = 0;         //单片机将DQ拉低
  delay(1760);     //精确延时 大于 480us
  DQ = 1;         //拉高总线
  delay(308);
 x=DQ;           //稍做延时后 如果x=0则初始化成功 x=1则初始化失败
 delay(440);
}

uchar ReadOneChar(void)
{
  unsigned char i=0;
 unsigned char dat = 0;
 for (i=8;i>0;i--)
  {
    DQ = 0;     // 给脉冲信号
    dat>>=1;
    DQ = 1;     // 给脉冲信号
    if(DQ)
     dat|=0x80;
    delay(88);
  }
  return(dat);
}

WriteOneChar(unsigned char dat)
{
  unsigned char i=0;
  for (i=8; i>0; i--)
  {
    DQ = 0;
    DQ = dat&0x01;
    delay(110);
    DQ = 1;
    dat>>=1;
  }
}

uint ReadTemperature(void)   //温度*10
{
  uchar a=0;
  uchar b=0;
  uint temp=0;
  uint t=0;
  int temple;              /*存放读取的温度值 将其除以16即为得到的值*/
  Init_DS18B20();
  WriteOneChar(0xCC);   // 跳过读序号列号的操作
  WriteOneChar(0x44);   // 启动温度转换
  Init_DS18B20();
  WriteOneChar(0xCC);   //跳过读序号列号的操作
  WriteOneChar(0xBE);   //读取温度寄存器等(共可读9个寄存器) 前两个就是温度
  a=ReadOneChar();   //低8位
  b=ReadOneChar();   //高8位
  temp=b;
  temp<<=8;
  temp=temp|a;
  temp&=0x07ff;
    if( (b&0x08))
    {
        temple=~temp+1;     //如果为负温则去除其补码
        FWD=0;           /*表示温度为负数*/
    }
    else
    {
        temple=temp;
        FWD=1;         /*表示温度为正数*/
    }
    t=temple*10/16;
 //t = temp;
 //t= t*625;
 //t = t/1000;
 return(t);
}

关键字:C8051F  18B20程序 引用地址:基于C8051F的18B20程序

上一篇:51单片机分时控制8路舵机程序
下一篇:基于C8051F的AD UART0 KEY FLASH TIME3程序

推荐阅读最新更新时间:2024-03-16 14:02

基于C8051F040多路浸水时刻记录电路模块化设计
针对某型航行器自沉系统中,需要掌握某合金材料在海水中因不同温度条件下的受腐蚀时间长短。采用模块化硬件设计,使用浸水传感器为检测单元、时钟芯片DS12887为计时模块;以C8051F040为微处理器和串行M25P80为存储模块设计浸水时间记录系统。外部数据通信采用CAN总线。通过实践证明,DS12887时钟能在掉电后正常运行,但时间长,需要新设定时间,以便准时记录。 在某型水下航行器自沉系统中,某合金材料在海水中一定时间内能正常工作,但正常时间过后会被海水腐蚀;从而实现该航行器的自沉功能。为此设计了该电路,用以测试铝铬合金材料在不同温度的多组时间信息。 1 系统硬件结构 基于C8051F040多路浸水时刻记录电路硬件部分由6
[单片机]
基于<font color='red'>C8051F</font>040多路浸水时刻记录电路模块化设计
51单片机 8255 18b20 数码管显示温度C程序
#include reg52.h #include absacc.h #include intrins.h #define uint unsigned int #define uchar unsigned char #define PA 0x7cff //PA口 #define PB 0x7dff //PB口 #define con 0x7fff //控制字 sbit A8=P2^0; //地址线A0 sbit A9=P2^1; //地址线A1 sbit cs=P2^7; //片选 sbit wr=P3^6; //读端口 uint temp; uchar tplsb
[单片机]
基于C8051F020的假肢控制系统设计
假肢是人体缺损肢体的替代物,用以弥补缺损肢体的形状和功能。本文针对失去整个手臂的情况,设计出一种仿人手臂形假肢的控制系统。使用者可以补偿部分缺失的功能,达到生活自理甚至于可以从事基本劳动,减少身心痛苦,同时也相应地解放了护理工作用。在设计中,采用C8051F020 单片机作为主控制器,并通过CPLD(Complex Programmable Logic Device)完成对各个关节控制量的检测以及凌阳61单片机实现语音控制功能。 1 机器人假肢结构  多自由度机器人型假肢(上肢)拥有6个自由度,其结构原理图如图1所示。 2 假肢控制系统的硬件设计 2.1 控制器的工作原理  控制系统原理框图如图2所示,主要由控制、驱动、被
[工业控制]
基于<font color='red'>C8051F</font>020的假肢控制系统设计
高速误码测试系统中的C8051F005运用
引 言 随着通信技术的不断发展,通信系统信号处理越来越快。在这种情况下,对于高速通信系统性能的检验,就需要高速误码测试仪。目前市而上已有多种误码测试仪。国内产品的信号处理速度较低,而国外产品的功能虽然比较完善,处理速度很高,但其价格也相对较高。本文根据Vitesse公司的VSC8228芯片特点,利用C8051F005单片机设计出一种价廉的高速误码测试仪。下面将对其软硬件设计,特别是C8051F005与上位机的串口通信以及与VSC8228的SPI通信进行详细探讨。 1 误码测试系统概述 Cygnal公司的单片机C8051F005具有高速8051微控制器内核,速度可达25 MIPS,指令为流水线指令结构,70%的指
[测试测量]
高速误码测试系统中的<font color='red'>C8051F</font>005运用
基于C8051F020单片机的数据采集电路设计
数据采集是为了对温度、压力、流量、速度、位移、光强度、声音等物理量进行在线测量和控制,通过传感器把上述物理量转换成模拟物理量的电信号。然后将模拟电信号经过处理并转换成计算机能识别的数字量,送入计算机处理、存储、传输和显示。 在操纵杆控制器的工作过程中,需要对操纵杆X轴和Y轴输出的2路电压信号进行A/D转换,转换后的数据范围要求在-1 500~1 500,采样精度为12位。另外还需要对采集后的数据进行计算,并通过串口与两自由度光电稳定平台进行通信,实现对稳定平台的功能控制,通信周期为80 ms。出于成本的考虑,没有采用传统专用A/D芯片+单片机的设计模式,只用了一片C8051F020单片机实现了上述功能。 1 芯片简介 C
[单片机]
基于<font color='red'>C8051F</font>020单片机的数据采集电路设计
基于C8051F的无线网络的汽车测试系统设计
汽车试验是发现汽车设计开发中各种问题的重要手段,依据试验结果能对汽车各种性能做出客观的评价。作为汽车工业的基础工程之一,汽车试验在汽车工业的整体发展中发挥了重要作用。汽车性能测试系统是汽车试验工程的关键组成部分,它是由若干相互联系、相互作用的传感器和仪器设备等元件,为实现对汽车各项性能的测试而组成的有机整体,汽车测试系统的性能往往对整个汽车试验的效用产生重要影响。现有的汽车测试系统多采用有线连接,该方式存在2个弊端:1)汽车试验需在大型专用试验场或典型地域等恶劣环境中进行,现场布线任务繁琐且易出错;2)一些汽车试验如蛇形试验具有高危险性,对能够减少试验损失的测试系统更为重要。该系统以Cygnal公司的C8051F020单片机为控制核
[单片机]
基于<font color='red'>C8051F</font>的无线网络的汽车测试系统设计
基于nRF905模块和C8051F单片机的无线收发系统设计
  前言   在闭环钻井系统中,要求实时地把井下的信息传递到地面,以实施人工监控。通常情况下该任务由MWD中泥浆压力脉冲发生器来完成。当使用井下动力钻具组合时,近钻头传感器和MWD被动力钻具隔开。传感器无法用线缆与MWD连接,因此要把传感器的信息传送给MWD只能通过无线通信的方法。   本文设计了由C8051F0606单片机和nRF905无线射频器收发组成的一种无线数据传输系统的方案。该系统由发射和接收模块组成,发射模块主要将要发送的数据经单片机处理后,通过nRF905发送出去;在接收模块中,nRF905则将数据正确接收后通过上位机界面显示出来,从而实现短距离井下的无线通信。   无线收发系统硬件设计   nRF905模
[单片机]
C8051FXXX单片机FLASH程序的自动升级
作者Email: wolfman6353@sina.com 引言: C8051FXXX系列高速SOC单片机是由美国Cygnal公司开发的完全集成的混合信号系统级芯片,具有与8051兼容的微处理器内核,内部集成FLASH程序存储器,具有在系统重新编程能力,以C8051F020为例,内部集成64K的FLASH程序存储器。在系统控制软件的开发调试阶段,可用集成开发环境来下载及测试系统,但当将C8051F020目标系统集成到产品后,则由于操作系统及软硬件接口不一样等等原因,不能在最终产品中用集成开发环境来下载FLASH程序,故产品到了用户处之后,如要再进行FLASH程序的更新,则必须更换相应的集成电路印刷板,造成很多麻烦及不可靠因素。
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved