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

📄 18b20.lst

📁 自动温度监测系统
💻 LST
字号:
C51 COMPILER V7.50   18B20                                                                 09/05/2007 12:19:01 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE 18B20
OBJECT MODULE PLACED IN 18b20.OBJ
COMPILER INVOKED BY: D:\Program Files\C51\BIN\C51.EXE 18b20.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*****************************************************************
   2          *       浙江大学仪器系短学期实习项目:
   3          *       电仪2004级
   4          *       小组成员:韩灿 刘清文赵岩 许琳燕
   5          *
   6          *       文件名  :
   7          *       开发人  :韩灿
   8          *       开发时间:2007-8-20
   9          *       版本    :
  10          *       修改者  :  
  11          *       修改时间:
  12          *       修改说明:
  13          ******************************************************************/
  14          #include<18b20.h>
  15          #include<7279.h>
  16          
  17          
  18          
  19          void init18b20(void)
  20          {
  21   1              unsigned char x=0;
  22   1              DQ=1;
  23   1              _nop_();
  24   1              DQ=0;
  25   1              delay15us(36);  //延时480us
  26   1              DQ=1;
  27   1              delay15us(4);; //延时60us
  28   1              x=DQ;
  29   1              DQ=1;
  30   1              delay15us(18); //延时270us
  31   1      }
  32          
  33          
  34          
  35          void write18b20(unsigned char ch)
  36          {
*** WARNING C235 IN LINE 36 OF 18B20.C: parameter 1: different types
  37   1              unsigned char i;
  38   1              for(i=0;i<8;i++)
  39   1              {
  40   2                      DQ=0;
  41   2                      delay15us(1);    //首先将DQ拉低,并延时15us
  42   2                      DQ=ch&0x01;      //从低8位开始写入
  43   2                      ch=ch>>1;        //数据右移一位
  44   2                      delay15us(4);    //写入数据后并延时45us以上
  45   2                      DQ=1;
  46   2      }
  47   1      }
  48          
  49          
  50          
  51          unsigned int read18b20()
  52          {
  53   1              unsigned char i;
  54   1              unsigned char ch=0;
C51 COMPILER V7.50   18B20                                                                 09/05/2007 12:19:01 PAGE 2   

  55   1              for(i=0;i<8;i++)
  56   1              {DQ=0;
  57   2              ch=ch>>1;
  58   2              DQ=1;
  59   2              delay15us(1);
  60   2              if(DQ==0) {ch=ch&0x7f; }
  61   2              else     {ch=ch|0x80; }
  62   2              delay15us(3);
  63   2        //DQ=1;
  64   2      }
  65   1      return(ch);
  66   1      }
  67          
  68          
  69          
  70          delay15us(unsigned char n)
  71          {  
  72   1              _nop_();
  73   1              for(;n>1;n--){_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}
  74   1      }
  75          
  76          /******
  77          *读温度函数
  78          *******/
  79          
  80          unsigned char readtemp(unsigned char *z)
  81          {
  82   1              unsigned char t,x,y;
  83   1              init18b20();
  84   1              write18b20(0xCC);      //跳过skip rom
  85   1              write18b20(0x44);      //启动温度转换
  86   1              init18b20();
  87   1              write18b20(0xCC);      //跳过多路传感器识别 skip rom
  88   1              write18b20(0xBE);      //读暂存器,
  89   1              x=read18b20();         //返回读出温度值  16位补码形式
  90   1              y=read18b20();
  91   1              *z=x;
  92   1              *z=*z&0x0f;
  93   1              *z=*z*10/16;
  94   1              x=x>>4;
  95   1              y=(y&0x07)<<4;
  96   1              t=x|y;
  97   1              return t;
  98   1      }
  99          
 100          
 101          /*************************************
 102          *** 显示温度函数
 103          *************************************/
 104          /*showtemp()
 105          { 
 106                  unsigned char t,x,y,*z;
 107              t=readtemp(z);
 108              if(t>0)
 109              {
 110                          x=t/10;
 111                  t=t%10;
 112                  y=t/1;
 113                  //z=t%1;
 114                //  write(DECODE0,0x00);
 115                  write(DECODE0+1,x);
 116                  write(DECODE0+2,0x80+y);
C51 COMPILER V7.50   18B20                                                                 09/05/2007 12:19:01 PAGE 3   

 117               }
 118               else   
 119                   {
 120                          t=~t;
 121                  t=t+1;
 122                  x=t/10;
 123                  t=t%10;
 124                  y=t/1;
 125                  //z=t%1;
 126                  write(DECODE0,0x0a);
 127                  write(DECODE0+1,x);
 128                  write(DECODE0+2,0x80+y);
 129                }
 130          }*/
 131          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    237    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       8
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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