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

📄 ds18b20.lst

📁 温度控制系统——毕业设计
💻 LST
字号:
C51 COMPILER V7.06   DS18B20                                                               12/30/2010 18:19:41 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE DS18B20
OBJECT MODULE PLACED IN ds18b20.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ds18b20.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include "reg52.h"
   2          #include "delay.h"
   3          #include "intrins.h"
   4          sbit dq=P1^4;
   5          void rest()
   6          {
   7   1              dq=0;
   8   1              delay_n10us(60);
   9   1              dq=1;
  10   1              delay_n10us(60);
  11   1      }
  12          
  13          void write1()
  14          {
  15   1              dq=0;
  16   1              _nop_();_nop_();
  17   1              _nop_();_nop_();
  18   1              dq=1;
  19   1              delay_n10us(7);
  20   1      }
  21          
  22          void write0()
  23          {
  24   1              dq=0;
  25   1              delay_n10us(8);
  26   1              dq=1;
  27   1      }
  28          
  29          bit read()
  30          {
  31   1              bit temp;
  32   1              dq=0;
  33   1              _nop_();_nop_();
  34   1              _nop_();
  35   1              dq=1;_nop_();
  36   1              if(dq)temp=1;
  37   1              else temp=0;
  38   1              delay_n10us(8);
  39   1              return temp;    
  40   1      }
  41          
  42          void write_18b20_data(unsigned char date)
  43          {
  44   1              unsigned char m;
  45   1              dq=1;
  46   1              for(m=0;m<8;m++)
  47   1              {
  48   2                      if(date&0x01)write1();
  49   2                      else write0();
  50   2                      date=date>>1;
  51   2              }
  52   1      }
  53          
  54          unsigned char read_18b20_data()
  55          {
C51 COMPILER V7.06   DS18B20                                                               12/30/2010 18:19:41 PAGE 2   

  56   1              unsigned char m;
  57   1              unsigned char date=0;
  58   1              dq=1;
  59   1              for(m=0;m<8;m++)
  60   1              {
  61   2                      date=date>>1;
  62   2                      if(read())date=date|0x80;
  63   2              }
  64   1              return date;
  65   1      }
  66          
  67          void ini_18b20()
  68          {
  69   1              EA=0;
  70   1              rest();
  71   1              write_18b20_data(0xcc);         //跳过ROM匹配
  72   1              write_18b20_data(0x4e);         //发写寄存器指令
  73   1              write_18b20_data(0x7d);         //写高温报警125
  74   1              write_18b20_data(0xc9);         //写低温报警-55
  75   1              write_18b20_data(0x00);         //写转换模式10位模式,100m
  76   1              EA=1;
  77   1      }
  78          unsigned char read_tempuature()
  79          {
  80   1              unsigned char htem,ltem,tempuature=0;
  81   1              EA=0;
  82   1              rest();
  83   1              write_18b20_data(0xcc);         //跳过ROM匹配
  84   1              write_18b20_data(0x44);         //发送转换指令
  85   1              EA=1;
  86   1              delay_ms(150);
  87   1              EA=0;
  88   1              rest();
  89   1              write_18b20_data(0xcc);         //跳过ROM匹配
  90   1              write_18b20_data(0xbe);         //发送读RAM指令
  91   1              ltem=read_18b20_data();         //读温度低位
  92   1              htem=read_18b20_data();         //读间谍高位
  93   1              rest();
  94   1              htem=htem<<5;
  95   1              ltem=ltem>>3;
  96   1              tempuature=tempuature|htem;
  97   1              tempuature=tempuature|ltem;
  98   1              EA=1;
  99   1              return tempuature;
 100   1      }


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


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

⌨️ 快捷键说明

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