⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ds18b20.lst

📁 自己的平时一些制作 现在整理一下 与大家一起分享
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.01  DS18B20                                                                07/17/2007 14:39:09 PAGE 1   


C51 COMPILER V7.01, COMPILATION OF MODULE DS18B20
OBJECT MODULE PLACED IN ds18b20.OBJ
COMPILER INVOKED BY: D:\SOFTWARE\kkk\C51\BIN\C51.EXE ds18b20.c OPTIMIZE(9,SPEED) BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /*******************************************************************
   2          **函数功能:ds18b20的驱动函数                                                                     **
   3          **创建人:xingyuegu                                                                                               **
   4          **创建日期:2006-7-12                                                                                     **
   5          **版本:1.0                                                                                                               **
   6          **修改日期:2006-10-30                                                                                    **
   7          **版本:2.0                                                                                                               **
   8          *******************************************************************/
   9          #include <reg51.h>
  10          #include <intrins.h>
  11          #include <math.h>
  12          #include <stdio.h>
  13          
  14          #define uchar unsigned char
  15          #define uint  unsigned int
  16          void serial_set(void);
  17          void process(unsigned char,unsigned char);
  18          char volatile xiaoshu_temp[5],zhen_temp[4];             //
  19          bit flag;
  20          bit dot_dis=1;
  21          sbit DQ=P2^5;
  22          //sbit DQ=P2^1;
  23          extern unsigned char temp[5];
  24          /*************************************************************
  25          **功能:延时600us                                                                                       **
  26          **参数:无                                                                                              **
  27          *************************************************************/
  28          void delay600us(void)
  29          {
  30   1              uchar i;
  31   1              for(i=0;i<255;i++);
  32   1      
  33   1      }
  34          /*************************************************************
  35          **功能:延时60us                                                                                        **
  36          **参数:无                                                                                              **
  37          *************************************************************/
  38          void delay60us(void)
  39          {
  40   1              uchar i;
  41   1              for(i=0;i<20;i++);
  42   1      }
  43          /*************************************************************
  44          **功能:延时240us                                                                                       **
  45          **参数:无                                                                                              **
  46          *************************************************************/
  47          void delay240us(void)
  48          {
  49   1              uchar i;
  50   1              for(i=0;i<80;i++);
  51   1      }
  52          /*************************************************************
  53          **功能:延时18us                                                                                        **
  54          **参数:无                                                                                              **
  55          *************************************************************/
C51 COMPILER V7.01  DS18B20                                                                07/17/2007 14:39:09 PAGE 2   

  56          void delay15us(void)
  57          {
  58   1              uchar i;
  59   1              for(i=0;i<2;i++);
  60   1      }
  61          /*************************************************************
  62          **功能:复位脉冲                                                                                        **
  63          **参数:bool                                                                                            **
  64          *************************************************************/
  65          bit resetpulse(void)
  66          {
  67   1              
  68   1              DQ=0;
  69   1              delay600us();                   //延时500us
  70   1              DQ=1;
  71   1              delay60us();                    // 延时60us
  72   1              return(DQ);                             //读取P1.0的状态
  73   1      }
  74          /*************************************************************
  75          **功能:ds18b20的初始化                                                                         **
  76          **参数:无                                                                                              **
  77          *************************************************************/
  78          void ds18b20_init(void)
  79          {
  80   1              while(1)
  81   1              {
  82   2                      if(!resetpulse())       //收到ds18b20的应答信号
  83   2                      {       
  84   3                              //printf("reset successful!");
  85   3      
  86   3                              //delay240us(); //延时240us
  87   3                              DQ=1;
  88   3                              delay600us();   //延时240us
  89   3                              break;          
  90   3                      }
  91   2                      else
  92   2                              resetpulse();    //否则再发复位信号
  93   2              }
  94   1      }
  95          
  96          /*************************************************************
  97          **功能:向ds18b20写命令                                                                         **
  98          **参数:无                                                                                              **
  99          *************************************************************/
 100          void ds18b20_writecommand(uchar command)
 101          {       
 102   1      
 103   1              uchar   i;
 104   1              for(i=0;i<8;i++)
 105   1              {
 106   2                      if((command & 0x01)==0)
 107   2                      {
 108   3                              DQ=0;                                   //写0
 109   3                              delay60us();                    //延时60us
 110   3                              DQ=1;                           
 111   3                              _nop_();
 112   3                              _nop_();
 113   3      
 114   3                      }
 115   2              
 116   2                      else                                            //写1
 117   2                      {
C51 COMPILER V7.01  DS18B20                                                                07/17/2007 14:39:09 PAGE 3   

 118   3                              DQ=0;
 119   3                              _nop_();
 120   3                              _nop_();                                //延时2us
 121   3                              DQ=1;
 122   3                              delay60us();                    //延时60us
 123   3                      }
 124   2                      command=_cror_(command,1); // 右移1位
 125   2               }
 126   1        
 127   1        
 128   1      }
 129          
 130          /*************************************************************
 131          **功能:读ds18b20数据                                                                           **
 132          **参数:返回读到的数据                                                                          **
 133          *************************************************************/
 134          uchar ds18b20_readdata(void)
 135          {
 136   1              uchar readdata;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -