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

📄 text2.lst

📁 DS18B20的51驱动。 用STC89C52成功测试。
💻 LST
字号:
C51 COMPILER V8.02   TEXT2                                                                 11/23/2008 16:07:10 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE TEXT2
OBJECT MODULE PLACED IN Text2.OBJ
COMPILER INVOKED BY: C:\软件\Keil\C51\BIN\C51.EXE Text2.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg52.h>
   2          code unsigned char duma[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x63,0x39};
   3          code unsigned char xuan[] = {0xfe,0xfd,0xfb,0xf7};
   4          unsigned char dis[4];
   5          unsigned int sdata;
   6          sbit dat=P2^7;
   7          
   8          void delay1(unsigned int t){
   9   1              unsigned int i;
  10   1              while (t--){
  11   2                      for (i=0;i<125;i++){}
  12   2              }
  13   1      }
  14          
  15          void tmreset(void){
  16   1              unsigned int i;
  17   1              dat=0;
  18   1              i=103;while(i>0)i--;
  19   1              dat=1;
  20   1              i=4;while (i>0)i--;
  21   1      }
  22          
  23          void tmpre(){
  24   1              unsigned int i;
  25   1              while(dat);
  26   1              while(~dat);
  27   1              i=4;while(i>0)i--;
  28   1      }
  29          
  30          bit tmrbit(){
  31   1              unsigned int i;
  32   1              bit d;
  33   1              dat=0;i++;
  34   1              dat=1;i++;i++;
  35   1              d=dat;
  36   1              i=8;while(i>0)i--;
  37   1              return (d);
  38   1      }
  39          unsigned char tmrbyte(){
  40   1              unsigned char i,j,d;
  41   1              d=0;
  42   1              for(i=1;i<=8;i++){
  43   2                      j=tmrbit();
  44   2                      d=(j<<7)|(d>>1);
  45   2              }
  46   1              return(d);
  47   1      }
  48          void tmwbyte(unsigned char d){
  49   1              unsigned int i;
  50   1              unsigned char j;
  51   1              bit testb;
  52   1              for (j=1;j<=8;j++){
  53   2                      testb=d&0x01;
  54   2                      d=d>>1;
  55   2                      if(testb){
C51 COMPILER V8.02   TEXT2                                                                 11/23/2008 16:07:10 PAGE 2   

  56   3                              dat=0;
  57   3                      i++;i++;
  58   3                      dat=1;
  59   3                      i=8;while(i>0)i--;
  60   3                      }
  61   2                      else{
  62   3                              dat=0;
  63   3                              i=8;while(i>0)i--;
  64   3                              dat=1;
  65   3                              i++;i++;
  66   3                      }
  67   2              }
  68   1      }
  69          
  70          void tmstart(){
  71   1              tmreset();
  72   1              tmpre();
  73   1              delay1(1);
  74   1              tmwbyte(0xcc);
  75   1              tmwbyte(0x44);
  76   1      }
  77          
  78          
  79          unsigned int tmrtemp () {
  80   1              unsigned char a,b,y1;
  81   1              unsigned int y3,y2;
  82   1              tmreset();
  83   1              tmpre();
  84   1              delay1(1);
  85   1              tmwbyte(0xcc);
  86   1              tmwbyte(0xbe);
  87   1              a=tmrbyte();
  88   1              b=tmrbyte();
  89   1              y1=a;
  90   1              y2=b<<8;
  91   1              y3=y1|y2;
  92   1              y3=y3*10/16;
  93   1              return(y3);
  94   1      }
  95          void delay(){
  96   1              int i;
  97   1              for(i=0;i<100;i++);//100shanshuo
  98   1      }
  99          void bcd(){
 100   1      
 101   1              dis[0] = sdata/100;
 102   1              dis[1] = (sdata%100)/10;
 103   1          dis[2] = sdata%10;
 104   1              dis[3] = 0;
 105   1      }
 106          void show(){
 107   1              unsigned char s;
 108   1              for(s=0;s<4;s++){
 109   2                      if(s==1)
 110   2                              P0 = duma[dis[s]]|0x80;
 111   2                      else
 112   2                              P0= duma[dis[s]];
 113   2                      P1= xuan[s];
 114   2                      delay();
 115   2                 }
 116   1      }
 117          
C51 COMPILER V8.02   TEXT2                                                                 11/23/2008 16:07:10 PAGE 3   

 118          void main(){
 119   1              char i;
 120   1              sdata=0;
 121   1              while(1){
 122   2                      tmstart();//zai si xunhuan yilei        
 123   2                      sdata=tmrtemp();
 124   2                      if(sdata>320)P3=0x07;
 125   2                      else if(sdata>310)P3=0x8b;
 126   2                      else if(sdata>300)P3=0x0e;              
 127   2                      else P3=0x4d;
 128   2                      for(i=0;i<30;i++){
 129   3                              bcd();show();
 130   3                      }
 131   2              }
 132   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    485    ----
   CONSTANT SIZE    =     16    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      6    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       2
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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