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

📄 b.lst

📁 ds08b20驱动程序
💻 LST
字号:
C51 COMPILER V7.50   B                                                                     10/16/2008 21:44:09 PAGE 1   


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

line level    source

   1          /*****************************************
   2          
   3          说明:
   4          用短路子短接 P0 口、P2.4-P2.6、P3.7 的接线柱
   5          下载完程序通电后,数码管的后三位会显示测得到温度值
   6          当周围温度发生变化时,显示的温度值也会发生相应变化
   7          测温范围为 -55℃ ~ 125℃
   8          以 0.5℃ 递增
   9          
  10          中国矿业大学    电子协会
  11              刘滨   2008年9月
  12          
  13          *****************************************/
  14          #include <reg52.h>
  15          #define uchar unsigned char
  16          #define uint unsigned int
  17          
  18          uchar P0_scan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  19          uchar dis[3];
  20          uchar TEMP;
  21          
  22          //管脚定义
  23          sbit dq = P3^7;
  24          
  25          
  26          /*************** 短延时 ****************/
  27          void delay(uint s)
  28          {
  29   1              while(s--);
  30   1      }
  31          
  32          /**************** 延时1ms *****************/
  33          void delay_1ms(unsigned int t)
  34          {
  35   1        unsigned char i,j;
  36   1        for(t;t>0;t--)
  37   1        {
  38   2              for(i=34;i>0;i--)
  39   2                for(j=13;j>0;j--);
  40   2        }
  41   1      }
  42          
  43          /****************** DS18B20 *********************/
  44          void rst(void)
  45          {
  46   1              dq=1;
  47   1              delay(8);
  48   1              dq=0;
  49   1              delay(80);
  50   1              dq=1;
  51   1              delay(14);
  52   1              delay(20);
  53   1      }
  54          
  55          uchar readbyte(void)
C51 COMPILER V7.50   B                                                                     10/16/2008 21:44:09 PAGE 2   

  56          {
  57   1              uchar i=0;
  58   1              uchar date=0;
  59   1              for(i=8;i>0;i--)
  60   1              {
  61   2              dq=0;
  62   2              date>>=1;
  63   2              dq=1;
  64   2              if(dq)  date|=0x80;
  65   2              delay(4);
  66   2              }
  67   1              return(date);
  68   1      }
  69          
  70          void writebyte(uchar date)
  71          {
  72   1              uchar i=0;
  73   1              for(i=8;i>0;i--)
  74   1              {
  75   2              dq=0;
  76   2              dq=date&0x01;
  77   2              delay(5);
  78   2              dq=1;
  79   2              date>>=1;
  80   2              }
  81   1      }
  82          uchar readtemp(void)
  83          {
  84   1              uchar a=0;
  85   1              uchar b=0;
  86   1              uchar temp1;
  87   1              uint t=0;
  88   1              float tt;
  89   1              rst();
  90   1              writebyte(0xcc);
  91   1              writebyte(0x44);
  92   1              rst();
  93   1              writebyte(0xcc);
  94   1              writebyte(0xbe);
  95   1              a=readbyte();
  96   1              b=readbyte();
  97   1              t=b;
  98   1              t<<=8;
  99   1              t=t|a;
 100   1              tt=t*0.0625;
 101   1              temp1=(uchar)tt;
 102   1              return(temp1);
 103   1      }
 104          
 105          /************************ 主函数 *************************/
 106          void main()
 107          {       
 108   1              while(1)
 109   1              {
 110   2                      TEMP = readtemp()-5;    //读出温度值
 111   2                      dis[0]=TEMP%10;dis[1]=(TEMP/10)%10;dis[2]=TEMP/100;
 112   2                              
 113   2                      P0 = P0_scan[dis[0]];
 114   2                      P2 = 0xf7;
 115   2                      delay_1ms(5);
 116   2                      P2 = 0xff;
 117   2      
C51 COMPILER V7.50   B                                                                     10/16/2008 21:44:09 PAGE 3   

 118   2                      P0 = P0_scan[dis[1]];
 119   2                      P2 = 0xfb;
 120   2                      delay_1ms(5);
 121   2                      P2 = 0xff;
 122   2      
 123   2                      P0 = P0_scan[dis[2]];
 124   2                      P2 = 0xfd;
 125   2                      delay_1ms(5);
 126   2                      P2 = 0xff;
 127   2              }
 128   1      }


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


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

⌨️ 快捷键说明

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