#define DS18B20_DIR  P6DIR
#define DS18B20_IN   P6IN
#define DS18B20_OUT  P6OUT
#define DS18B20_DQ  BIT0  //定义DS18B20的接口
#define DS18B20_HI { DS18B20_DIR |= DS18B20_DQ; DS18B20_OUT |= DS18B20_DQ; }
#define DS18B20_LO { DS18B20_DIR |= DS18B20_DQ; DS18B20_OUT &= ~DS18B20_DQ;}
#define DS18B20_RLS { DS18B20_DIR &=~DS18B20_DQ;  }

/*DS18B20初始化_双保险//Intialization the 1-wire devices;*/
unsigned char DS18B20_Init(void)//关了1ms中断
{
  _DINT();//关闭中断
  unsigned char result;
  DS18B20_LO;
  delay_us(500);      
  DS18B20_OUT |= DS18B20_DQ;       
  delay_us(75);     
  DS18B20_DIR &= ~DS18B20_DQ;     
  result = DS18B20_IN & DS18B20_DQ;
  while(result) ;//初始化不成功
  _EINT();
  delay_us(480);     
  result = DS18B20_IN & DS18B20_DQ;
  while(!result) ;
  return 0;      
}

/*写入一字节*/

void DS18B20_Write(unsigned char Data)//480ms
{
  unsigned char i=0;
   
  for(i=0;i<8;i++)
  {
    DS18B20_LO; 
    delay_us(2);
    DS18B20_OUT=Data&0x01;
    delay_us(60);        
    DS18B20_HI;          
    Data>>=1;           
  }                     
}

unsigned char DS18B20_Read() //关了456us中断
{
     _DINT();    
  unsigned char i,Temp=0x00;
    for(i=0;i<8;i++)
    {
        Temp>>=1; //数据右移
        DS18B20_LO;
        delay_us(2);
        DS18B20_HI;
        DS18B20_RLS;
        delay_us(10);        
        if(DS18B20_IN&DS18B20_DQ) Temp|=0x80;
        delay_us(45);
        DS18B20_HI;//释放总线准备读取下一位
    }

return Temp;
}

/*读取温度*/

int Read_Temperature(void)
{

unsigned int Temp1=0,Temp2=0,Minus_Flag=0;
    int Tempera;
    delay_ms(800);//牺牲转换时间求精度哈 
   
    DS18B20_Init(); //DS复位
    DS18B20_Write(0xCC); //跳过ROM
    DS18B20_Write(0xBE); //读取RAM
    
    Temp1=DS18B20_Read(); //读低八位,LS Byte, RAM0
    Temp2=DS18B20_Read(); //读高八位,MS Byte, RAM1
    
    _EINT();
   
  if(Temp2&0xFC)//如果是负数
   {
      Minus_Flag=1;
      Tempera=~(Temp2<<8|Temp1)+1;//整合,取反,补一   
    }
      
    else{
      Minus_Flag=0;
      Tempera=(Temp2<<8|Temp1);
    }
    
    return (Tempera*0.0625); //0.0625=xx, 0.625=xx.x, 6.25=xx.xx
}

DA18B20 MSP430单片机程序相关推荐

  1. AGS01DA VOC传感器 MSP430 单片机 程序 AGS01DB

  2. msp430单片机c语言应用程序,MSP430单片机C语言应用程序设计实例精讲

    本书首先介绍了C语言的基本知识,使读者能使用C语言进行程序设计:然后介绍了30个开发例子.全书主要通过实例的形式来介绍MSP430单片机在不同领域中的应用,从而使读者掌握MSP430单片机开发的流程. ...

  3. MSP430单片机串口控制5路PWM频率变化程序

    MSP430单片机串口控制5路PWM频率变化程序 下面介绍一段MSP430单片机通过232串口发送0x00,0x01,0x02,0x03,0x04控制IO端口P1,P2,P4,P5,P6输出6路PWM ...

  4. fir滤波 c语言,分享MSP430单片机实现的FIR滤波器C语言程序

    分享MSP430单片机实现的FIR滤波器C语言程序 [复制链接] #include #define FRAME        180 short int h[19] = { 399,-296,-945 ...

  5. MSP430单片机输入与输出

    MSP430单片机的输入输出线绝大多数是服用的,除了个别的端口外,基本上是8为为一组,不同的型号的MSP430的端口有所不同,就msp430F5438而言,一共有11个I/O端口,其中除了第十一P11 ...

  6. msp430单片机 温度计编程_MSP430系列与89C5l系列的比较

    1.89C51单片机是8位单片机.其指令是采用的被称为"CISC"的复杂指令集,共具有111条指令.而MSP430单片机是16位的单片机,采用了精简指令集(RISC)结构,只有简洁 ...

  7. 嵌入式--深入理解单片机(一)单片机程序是如何运行起来的以及单片机的ROM和RAM

    目录 一.两种处理器的结构体系 1.哈佛结构体系(Harvard architecture) 2.冯·诺依曼结构体系 3.两种结构的总结 哈佛结构的优势 冯·诺依曼结构的优势 当前很多芯片都是混合结构 ...

  8. MSP430单片机中断学习笔记(一)

    目录 一.中断的基本概念 1.1中断的定义 1.2中断源 1.3中断向量表 1.4中断优先级 1.5断电 1.6中断现场 二.中断源 2.1系统复位中断源 2.1.1断电复位信号(BOR) 2.2.2 ...

  9. 从零开始的MSP430单片机学习(一)

    从零开始的MSP430单片机学习(一) 图片有些缺失,原链接:从零开始的MSP430单片机学习(一) 写在前面 单片机学习本身是一个了解学习一个技术的过程,学习的过程中不应该拘泥于某一款,而是要了解学 ...

最新文章

  1. Atitit.jpg png格式差别以及解决jpg图片不显示的问题
  2. Android开发之自定义Dialog二次打开报错问题解决
  3. 大学计算机基础实验指导试题,(大学计算机基础实验指导)模拟试题(二)参考答案...
  4. CentOS下的rm命令改造成移动文件至回收站
  5. 找不到托盘菜单配置文件_Windows 10最新更新导致用户文件丢失和加载错误配置文件...
  6. Visual Studio Code设置断点时出现Unverified breakpoint该咋办
  7. dirsearch工具(Web目录爆破)
  8. jstack 脚本 自动日志_在 Linux 中使用 Bash 脚本删除早于 “X” 天的文件/文件夹...
  9. 关于Location of the Android SDK has not been setup in the preferences的解决方法
  10. 三十岁左右的你,现在收入多少?
  11. 四月,诗月,你是最美人间四月天。
  12. 淘宝女装店铺如何提升转化?
  13. 什么是CVE?常见漏洞和暴露列表概述
  14. matlab设置图片背景透明_Matlab ---- 有透明度的png图像的显示与图层叠加方法
  15. 计算机桌面黑屏有鼠标,电脑屏幕黑屏但有鼠标指针是怎么回事?
  16. ElasticSearch(项目中常用的ES)
  17. 怎样防止羊毛党刷补贴?防护软件大火
  18. 【NOIP2014提高组】飞扬的小鸟
  19. 【UE4源代码观察】手动建立一个使用UBT进行编译的空白工程
  20. Exchange2016 Skype for business 集成之一配置合作伙伴应用程序

热门文章

  1. Python育儿系列-python生成竖式运算
  2. 莫烦pytorch学习之问题记录与总结
  3. CNN识别手写数字-莫烦python
  4. Vivado Turtorial 01 —— 使用vivado中debug功能(类似ISE中ChipScope)
  5. [可解释机器学习]Task03:[算法]CAM
  6. 汇编语言——学习资料(更新........)
  7. Wonderware-InTouch与PLC的冗余配置
  8. java试题库管理系统源代码_Java试题库管理源代码
  9. 【Web-南邮CTF】Web-CTF入门第1天
  10. 端午节祝福的html,端午节祝福语