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

📄 18b20cewen.lst

📁 C51 程序练习
💻 LST
字号:
C51 COMPILER V7.06   18B20CEWEN                                                            11/06/2011 10:23:36 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE 18B20CEWEN
OBJECT MODULE PLACED IN 18b20cewen.OBJ
COMPILER INVOKED BY: E:\KEIL\C51\BIN\C51.EXE 18b20cewen.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include<reg52.h>
   2          #define uint unsigned int
   3          #define uchar unsigned char
   4          sbit DQ=P3^7;
   5          sbit smg1=P0^0;
   6          sbit smg2=P0^1;
   7          sbit smg3=P0^2;
   8          
   9          
  10          uchar temp;
  11          uchar code table[]={
  12          0x3f,0x06,0x5b,0x4f,
  13          0x66,0x6d,0x7d,0x07,
  14          0x7f,0x6f,0x77,0x7c,
  15          0x39,0x5e,0x79,0x71};//0到F表格
  16          void delay(uint z);
  17          void init();
  18          void write_byte(uchar dat);
  19          uchar read_byte(void);
  20          uchar readtemperature(void);//读出温度函数
  21          void display(void);
  22          void main()
  23          {
  24   1              while(1)
  25   1              {
  26   2                      temp=readtemperature();
  27   2                      display();
  28   2              }       
  29   1      }
  30          
  31          void delay(uint z)//延时子程序
  32          {
  33   1              uint x,y;
  34   1              for(x=z;x>0;x--)
  35   1                      for(y=110;y>0;y--);
  36   1      }
  37          
  38          void init()
  39          {
  40   1              uchar n;
  41   1              DQ=1;
  42   1              delay(8);
  43   1              DQ=0;
  44   1              delay(80);
  45   1              DQ=1;
  46   1              delay(8);
  47   1              n=DQ;
  48   1              delay(4);
  49   1              
  50   1      }
  51          
  52          void write_byte(uchar dat)//低位在前
  53          {
  54   1              uchar i;
  55   1              for(i=0;i<8;i++)
C51 COMPILER V7.06   18B20CEWEN                                                            11/06/2011 10:23:36 PAGE 2   

  56   1              {
  57   2                      DQ=0;
  58   2                      DQ=dat&0x01;
  59   2                      delay(4);
  60   2                      DQ=1;
  61   2                      dat>>=1;//右移一位
  62   2      
  63   2              }
  64   1              delay(4);
  65   1      }
  66          
  67          uchar read_byte()
  68          {
  69   1              uchar i,value;
  70   1              for(i=0;i<8;i++)
  71   1              {
  72   2                      DQ=0;
  73   2                      value>>=1;
  74   2                      DQ=1;
  75   2                      if(DQ)
  76   2                      value=0x80;
  77   2                      delay(4);
  78   2                      
  79   2              }
  80   1              return value;
  81   1      }
  82          
  83          uchar readtemperature(void)
  84          {
  85   1              uchar a,b;
  86   1              init();
  87   1              write_byte(0xcc);//跳过ROM
  88   1              write_byte(0x44);       //启动温度检测
  89   1              delay(300);
  90   1              
  91   1              init();
  92   1              write_byte(0xcc);
  93   1              write_byte(0xbe);//读取 
  94   1              a=read_byte();
  95   1              b=read_byte();//按顺序读取
  96   1              b<<=4;
  97   1              b+=(a&0xf0)>>4;//a&0xf0屏蔽第四位
  98   1              return b;//除了小数的都在B里
  99   1      }
 100          
 101          void display(void)
 102          {
 103   1              smg3=0;
 104   1              smg2=0;
 105   1              smg1=0;
 106   1              P1=table[temp%10];
 107   1              delay(20);
 108   1              smg2=0;
 109   1              smg1=1;
 110   1              P1=table[temp/10];
 111   1              delay(20);
 112   1      }
 113          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    239    ----
C51 COMPILER V7.06   18B20CEWEN                                                            11/06/2011 10:23:36 PAGE 3   

   CONSTANT SIZE    =     16    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1       1
   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 + -