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

📄 exp.lst

📁 智能浇灌系统源代码
💻 LST
字号:
C51 COMPILER V6.23a  EXP                                                                   09/21/2011 09:31:56 PAGE 1   


C51 COMPILER V6.23a, COMPILATION OF MODULE EXP
OBJECT MODULE PLACED IN exp.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE exp.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          
   2          #include <reg51.h>
   3          #include <intrins.h>
   4          #define uchar unsigned  char 
   5          sbit   DQ=P1^0;                 //DS18B20的数据线
   6          bdata  uchar dat;       //用于数据收发
   7          sbit   dat0=dat^0;              //变量dat的最低位
   8          sbit   dat7=dat^7;              //变量dat的最高位
   9          
  10          
  11          
  12          
  13          void  delay15(uchar n)          //15us延时函数
  14           { do {
  15   2              _nop_();
  16   2              _nop_();
  17   2              _nop_();
  18   2              _nop_();
  19   2              _nop_();
  20   2              _nop_();
  21   2              _nop_();
  22   2              _nop_();
  23   2              _nop_();
  24   2              _nop_();
  25   2              _nop_();
  26   2              _nop_();                
  27   2                      n--;
  28   2              }while(n);
  29   1        }
  30          bit reset(void)         //初始化DS18B20
  31           { bit err;
  32   1         DQ=0;                        //在数据线上产生600us的低电平
  33   1         delay15(40);         
  34   1         DQ=1;                        //数据线拉高
  35   1         delay15(4);  //延时60us
  36   1         err=DQ;                      //读取数据线状态,err=0:复位成功
  37   1         delay15(18); //                err=1:复位失败
  38   1         return(err);
  39   1       }
  40          
  41          void wrbyte(uchar d)    //向DS18B20写入一个字节
  42           { uchar i;
  43   1         dat=d;
  44   1         for(i=8;i>0;i--)     //循环写8位(先低位,后高位)
  45   1           { DQ=0;                        //产生15us的负脉冲
  46   2             delay15(1);
  47   2                 DQ=dat0;                     //将当前数据位送数据线
  48   2                 dat=dat>>1;          //将下一位要写入的数据移到最低位
  49   2                 delay15(1);          //延时15us
  50   2             DQ=1;                        //数据线拉高,为写入下一位做准备
  51   2            }
  52   1       }
  53          
  54           uchar  rdbyte(void)    //从DS18B20     读取一个字节
  55            {  uchar i;
C51 COMPILER V6.23a  EXP                                                                   09/21/2011 09:31:56 PAGE 2   

  56   1           dat=0;                             //读出数据初值为0
  57   1           for(i=8;i>0;i--)   //循环读8位(先低位,后高位)
  58   1           {  dat=dat>>1;     //读出数据先右移一位
  59   2                      DQ=0;           //产生1us的负脉冲
  60   2                      _nop_();
  61   2              DQ=1;                   //数据总线拉高
  62   2              delay15(1);     //延时15us
  63   2              dat7=DQ;                //读取数据
  64   2              delay15(4);     //延时,为读下一位做准备
  65   2            }
  66   1           return(dat);
  67   1        }    
  68             
  69          void convert(void) //启动DS18B20开始温度转换
  70           { bit err;
  71   1         err=reset();   //复位传感器
  72   1         wrbyte(0xcc);   //跳过多传感器识别
  73   1         wrbyte(0x44);   //启动温度转换
  74   1       }
  75           
  76          int readt(void)         //读取DS18B20暂存器中的温度值
  77           {  uchar h,l;
  78   1          bit err;
  79   1          err=reset();            //复位传感器
  80   1          wrbyte(0xcc);       //跳过多传感器识别
  81   1          wrbyte(0xbe);       //读暂存器指令
  82   1          l=rdbyte();             //读温度低位
  83   1          h=rdbyte();             //读温度高位
  84   1          return(h*256+l);
  85   1       }
  86            
  87          
  88          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    156    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       3
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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