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

📄 ds18b20lll.lst

📁 本程序能实现温度的实时采集与显示
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   DS18B20LLL                                                            11/01/2007 15:36:36 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE DS18B20LLL
OBJECT MODULE PLACED IN .\ds18b20lll.obj
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE ..\..\..\DS18B20程序\ds18b20lll.c BROWSE DEBUG OBJECTEXTEND P
                    -RINT(.\ds18b20lll.lst) OBJECT(.\ds18b20lll.obj)

stmt level    source

   1          #include <reg1210.h>
   2          //#include<reg51.h>
   3          #include <intrins.h>
   4          #include<stdio.h>
   5          #include<stdlib.h> 
   6          #include<math.h> 
   7          
   8          extern void autobaud(void);
   9          #define CLR_RI  (RI=0)
  10          #define CLR_TI  (TI=0)
  11          
  12          sbit  TMDAT=P2^0;
  13          
  14          /*----------------------------------------------------
  15          *   整型转换成字符型子程序
  16          *----------------------------------------------------*/
  17          unsigned  inttochar(unsigned  int int1)
  18           {
  19   1       unsigned char ch1;
  20   1       switch(int1)
  21   1          {
  22   2          case(0):ch1='0';break;
  23   2          case(1):ch1='1';break;
  24   2          case(2):ch1='2';break;
  25   2          case(3):ch1='3';break;
  26   2          case(4):ch1='4';break;
  27   2          case(5):ch1='5';break;
  28   2          case(6):ch1='6';break;
  29   2          case(7):ch1='7';break;
  30   2          case(8):ch1='8';break;
  31   2          case(9):ch1='9';break;
  32   2          default:break;
  33   2          }
  34   1          return(ch1);
  35   1       }
  36          /*----------------------------------------------------
  37          *   整型转换成浮点型子程序
  38          *----------------------------------------------------*/
  39          float  inttofloat(unsigned  int int1)
  40           {
  41   1       float ch1;
  42   1       switch(int1)
  43   1          {
  44   2          case(0):ch1=0;break;
  45   2          case(1):ch1=1;break;
  46   2          case(2):ch1=2;break;
  47   2          case(3):ch1=3;break;
  48   2          case(4):ch1=4;break;
  49   2          case(5):ch1=5;break;
  50   2          case(6):ch1=6;break;
  51   2          case(7):ch1=7;break;
  52   2          case(8):ch1=8;break;
  53   2          case(9):ch1=9;break;
  54   2          default:break;
C51 COMPILER V7.06   DS18B20LLL                                                            11/01/2007 15:36:36 PAGE 2   

  55   2          }
  56   1          return(ch1);
  57   1       } 
  58          /*----------------------------------------------------
  59          *   delay N count  c里的一个while语句相当于汇编里的一个DJNZ语句,即两个机器周期
  60          *----------------------------------------------------*/
  61          void Delay_Count (unsigned char Count ) //延时时间为:(Count*2+5)*0.362  us
  62          {
  63   1          while(--Count);  
  64   1      }
  65          
  66          /*----------------------------------------------------
  67          *   HEX->BCD查表程序,整数部分
  68          *----------------------------------------------------*/
  69          unsigned char hextobcd(unsigned char tab)
  70          {
  71   1      unsigned        int tab1;
  72   1              switch(tab)
  73   1              {
  74   2                      case(0x00):     tab1=0x000; break;
  75   2                      case(0x01): tab1=0x001; break;
  76   2                      case(0x02): tab1=0x002; break;
  77   2                      case(0x03): tab1=0x003; break;
  78   2                      case(0x04): tab1=0x004; break;
  79   2                      case(0x05): tab1=0x005; break;
  80   2                      case(0x06): tab1=0x006; break;
  81   2                      case(0x07): tab1=0x007; break;
  82   2                      case(0x08): tab1=0x008; break;
  83   2                      case(0x09): tab1=0x009; break;
  84   2                      case(0x0A): tab1=0x0A; break;
  85   2                      case(0x0B): tab1=0x0B; break;
  86   2                      case(0x0C): tab1=0x0C; break;
  87   2                      case(0x0D): tab1=0x0D; break;
  88   2                      case(0x0E): tab1=0x0E; break;
  89   2                      case(0x0F): tab1=0x0F; break;
  90   2                      case(0x10):     tab1=0x010; break;
  91   2                      case(0x11): tab1=0x011; break;
  92   2                      case(0x12): tab1=0x012; break;
  93   2                      case(0x13): tab1=0x013; break;
  94   2                      case(0x14):     tab1=0x014; break;
  95   2                      case(0x15):     tab1=0x015; break;
  96   2                      case(0x16):     tab1=0x016; break;
  97   2                      case(0x17):     tab1=0x017; break;
  98   2                      case(0x18):     tab1=0x018; break;
  99   2                      case(0x19):     tab1=0x019; break;
 100   2                      case(0x1A):     tab1=0x01A; break;
 101   2                      case(0x1B):     tab1=0x01B; break;
 102   2                      case(0x1C):     tab1=0x01C; break;
 103   2                      case(0x1D):     tab1=0x01D; break;
 104   2                      case(0x1E):     tab1=0x01E; break;
 105   2                      case(0x1F):     tab1=0x01F; break;
 106   2                      case(0x20):     tab1=0x020; break;
 107   2                      case(0x21):     tab1=0x021; break;
 108   2                      case(0x22):     tab1=0x022; break;
 109   2                      case(0x23):     tab1=0x023; break;
 110   2                      case(0x24):     tab1=0x024; break;
 111   2                      case(0x25):     tab1=0x025; break;
 112   2                      case(0x26):     tab1=0x026; break;
 113   2                      case(0x27):     tab1=0x027; break;
 114   2                      case(0x28):     tab1=0x028; break;
 115   2      
 116   2                      default: tab1=0x00;break;
C51 COMPILER V7.06   DS18B20LLL                                                            11/01/2007 15:36:36 PAGE 3   

 117   2              }
 118   1              return(tab1);
 119   1      }
 120          /*----------------------------------------------------
 121          *   HEX->BCD查表程序,小数部分
 122          *----------------------------------------------------*/
 123          unsigned char hextobcd1(unsigned char tab)
 124          {
 125   1      unsigned int tab1;
 126   1              switch(tab)
 127   1              {
 128   2                      case(0x00):     tab1=0x000; break;
 129   2                      case(0x01): tab1=0x001; break;
 130   2                      case(0x02): tab1=0x001; break;
 131   2                      case(0x03): tab1=0x002; break;
 132   2                      case(0x04): tab1=0x003; break;
 133   2                      case(0x05): tab1=0x003; break;
 134   2                      case(0x06): tab1=0x004; break;
 135   2                      case(0x07): tab1=0x004; break;
 136   2                      case(0x08): tab1=0x005; break;
 137   2                      case(0x09): tab1=0x006; break;
 138   2                      case(0x0A): tab1=0x006; break;
 139   2                      case(0x0B): tab1=0x007; break;
 140   2                      case(0x0C): tab1=0x008; break;
 141   2                      case(0x0D): tab1=0x008; break;
 142   2                      case(0x0E): tab1=0x009; break;
 143   2                      case(0x0F): tab1=0x009; break;
 144   2      
 145   2                      default: tab1=0x00;break;
 146   2              }
 147   1              return(tab1);
 148   1      }
 149          
 150          /*----------------------------------------------------
 151          *   start Reset Pulse
 152          ----------------------------------------------------*/
 153          void tmreset(void)
 154          {
 155   1          TMDAT=0;
 156   1         Delay_Count(255);
 157   1         Delay_Count(255);
 158   1         Delay_Count(255);
 159   1         Delay_Count(255);
 160   1          TMDAT=1;
 161   1              Delay_Count(70);
 162   1              while(TMDAT);
 163   1      //      printf("已调用完判忙函数3\r\n");
 164   1              while(~TMDAT);
 165   1      //      printf("已调用完判忙函数2\r\n");
 166   1          Delay_Count(255);
 167   1      
 168   1      }
 169          
 170          
 171          /*----------------------------------------------------
 172          *   start Reset Pulse
 173          ----------------------------------------------------/
 174          void  tmreset()
 175          {
 176          
 177          //      P0=0xfe;
 178          
C51 COMPILER V7.06   DS18B20LLL                                                            11/01/2007 15:36:36 PAGE 4   

 179          //      FLAG1=0;
 180              TMDAT=1;
 181              Delay_Count(1);             //2.5us
 182              TMDAT=0;
 183              Delay_Count(250);   //505us
 184              Delay_Count(250);   //505us
 185              Delay_Count(250);   //505us
 186              TMDAT=1;
 187              Delay_Count(28);    //61us
 188              Delay_Count(28);    //61us
 189              Delay_Count(28);    //61us
 190              while(TMDAT);
 191          
 192          //      printf("初始化成功\n");
 193           while(~TMDAT);
 194           //printf("初始化成功1\n");
 195                                  Delay_Count(110);       //225us
 196                                  Delay_Count(110);       //225us
 197                                  Delay_Count(110);       //225us
 198                          
 199          }
 200          
 201          /*----------------------------------------------------
 202          *   Read a bit from 1820

⌨️ 快捷键说明

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