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

📄 18b20.lst

📁 这是自己写基于89s52的C51程序
💻 LST
字号:
C51 COMPILER V7.06   18B20                                                                 11/01/2006 21:29:09 PAGE 1   


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

stmt level    source

   1          #include<reg51.h>
   2          
   3          sbit DQ=P2^2;    //定义通信端口
   4          code unsigned char seg7code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
   5          unsigned int sdata=0;//测温度的整数部分
   6          unsigned char xiaoshu1=0;//小数第一位
   7          unsigned char xiaoshu2=0;//小数第二位
   8          unsigned char xiaoshu=0;// 二位小数
   9          
  10          void delay1(unsigned int tc)   //显示延时
  11          { while(tc!=0)
  12   1          {unsigned int i;
  13   2               for(i=0;i<100;i++);
  14   2               tc--;
  15   2              }
  16   1      }
  17          void delay(unsigned int i)    //时间片延时
  18          { while(i--);
  19   1      } 
  20          init_DS18b20(void)             //初始化
  21          { unsigned char x=0;
  22   1        DQ=1;  //DQ复位
  23   1        delay(8); 
  24   1        DQ=0;  //单片机将DQ拉低
  25   1        delay(80);//精确延时大于480um
  26   1        DQ=1;   //拉高总线
  27   1        delay(14);
  28   1        x=DQ;    //延时后 如果x=0则初始化成功 x=1则初始化失败
  29   1        delay(20);
  30   1      }
  31          readonechar(void)  // 读一个字节
  32          { unsigned char i=0;
  33   1        unsigned char dat=0;
  34   1        for(i=8;i>0;i--)
  35   1        { DQ=0; //给脉冲信号
  36   2          dat>>=1;
  37   2              DQ=1;
  38   2              if(DQ)
  39   2              dat|=0x80;
  40   2              delay(4);
  41   2        }
  42   1        return(dat);
  43   1      }
  44          writeonechar(unsigned char dat)  //写一个字节
  45          { unsigned char i=0;
  46   1        for(i=8;i>0;i--)
  47   1        { DQ=0;
  48   2          DQ=dat&0x01;
  49   2              delay(5);
  50   2              DQ=1;
  51   2              dat>>=1;
  52   2        }
  53   1        
  54   1      }
  55          readtemperature(void)
C51 COMPILER V7.06   18B20                                                                 11/01/2006 21:29:09 PAGE 2   

  56          { unsigned char a=0;
  57   1        unsigned char b=0;
  58   1        init_DS18b20();
  59   1        writeonechar(0xCC); //跳过读序列号
  60   1        writeonechar(0x44); //启动温度转换
  61   1        init_DS18b20();
  62   1        writeonechar(0xCC); //
  63   1        writeonechar(0xBE); // 读温度积存器
  64   1        a=readonechar();    //低位
  65   1        b=readonechar();    //高位
  66   1        sdata=a/16+b*16;     //整数
  67   1        xiaoshu1=(a&0x0f)*10/16; //小数第一位
  68   1        xiaoshu2=(a&0x0f)*100/16%10;  //小数第二位
  69   1        xiaoshu=xiaoshu1*10+xiaoshu2;  //小数
  70   1      
  71   1      }
  72          void led()
  73          { P2=P2&0xef;
  74   1        P0=seg7code[sdata/10];
  75   1        delay1(8);
  76   1        P2=P2|0xf0;
  77   1        P2=P2&0xdf;
  78   1        P0=seg7code[sdata%10]|0x80;
  79   1      
  80   1        delay1(8);
  81   1        P2=P2|0xf0;
  82   1        P2=P2&0xbf;
  83   1        P0=seg7code[xiaoshu1];
  84   1      
  85   1        delay1(8);
  86   1        P2=P2|0xf0;
  87   1        P2=P2&0x7f;
  88   1        P0=seg7code[xiaoshu2];
  89   1        delay1(8);
  90   1        P2=P2|0xf0;
  91   1      
  92   1        
  93   1      }
  94          void main()
  95          { while(1)
  96   1        { led();
  97   2          readtemperature();
  98   2        }
  99   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    341    ----
   CONSTANT SIZE    =     10    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      5       2
   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 + -