181818.lst

来自「本程序主要内容18b20+s52+uart单点测温详细c51程序」· LST 代码 · 共 154 行

LST
154
字号
C51 COMPILER V7.50   181818                                                                05/26/2007 19:09:07 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE 181818
OBJECT MODULE PLACED IN 181818.OBJ
COMPILER INVOKED BY: D:\KeilC51\C51\BIN\C51.EXE 181818.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg52.h>
   2          #include <intrins.h>
   3          sbit DQ=P3^3;
   4          unsigned char c[2];
   5          unsigned char x,y;
   6          displaycode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xC6,0xA1};//0,1,2,3,4,5,6,7,8,
             -9
   7          unsigned char t[2]={0};
   8          sbit P2_1=P2^1;
   9          sbit P2_0=P2^0;
  10          sbit P2_2=P2^2;
  11          sbit P2_3=P2^3;
  12          sbit P2_4=P2^4;
  13          sbit P2_5=P2^5;
  14          void delayms(unsigned int t)    //1ms的延时子程序
  15          {
  16   1       unsigned int i,j;
  17   1       for(i=0;i<t;i++)
  18   1        for(j=0;j<120;j++) ;
  19   1         }
  20          
  21          void delay(unsigned char time)
  22          {while(--time);
  23   1      }
  24          bit ow_reset(void)
  25          {
  26   1       bit presence;
  27   1       DQ=0;
  28   1       delay(255);//515us
  29   1       DQ=1;
  30   1       delay(30);//65us
  31   1       presence=DQ;
  32   1       delay(100);//205us
  33   1       return(presence);
  34   1       }
  35          
  36          void write_byte(unsigned char val)
  37          {
  38   1       unsigned char i;
  39   1       for(i=8;i>0;i--)
  40   1       {DQ=0;
  41   2        delay(2);//9us
  42   2        DQ=val&0x01;
  43   2        delay(20);//45us
  44   2        DQ=1;
  45   2        val=val/2;
  46   2       }
  47   1      }
  48          
  49          unsigned char Read_byte(void)
  50          {
  51   1       unsigned char i;
  52   1       unsigned char value=0;
  53   1       for(i=8;i>0;i--)
  54   1        {
C51 COMPILER V7.50   181818                                                                05/26/2007 19:09:07 PAGE 2   

  55   2        value>>=1;
  56   2        DQ=0;
  57   2        delay(2);//9us
  58   2        DQ=1;
  59   2        if(DQ) value|=0x80;           
  60   2        delay(20);//45us
  61   2        }
  62   1      return(value);
  63   1       }
  64          
  65          
  66          void tem()
  67          {  if(DQ==0);
  68   1         while(ow_reset()); 
  69   1         write_byte(0xcc);
  70   1         write_byte(0xbe);
  71   1         c[0]=Read_byte();
  72   1         c[1]=Read_byte();
  73   1         x=c[0];
  74   1         y=c[1]; 
  75   1         x=x>>4;
  76   1         x=x&0x0f;
  77   1         y=y<<4;
  78   1         y=y&0xf0;
  79   1         x=x|y;
  80   1         t[1]=x/10;
  81   1         t[0]=x%10;
  82   1         SBUF=x;
  83   1         while(TI==0);
  84   1         TI=0;
  85   1         while(ow_reset()); 
  86   1         write_byte(0xcc);
  87   1         write_byte(0x44);
  88   1      }
  89          void display()
  90           { 
  91   1         P2=0xff;
  92   1         P2_1=0;
  93   1         P0=displaycode[t[1]]; 
  94   1         delayms(1);
  95   1         P2_1=1;
  96   1         P2_3=0;
  97   1         P0=displaycode[t[0]];
  98   1         delayms(1);
  99   1         P2_3=1;
 100   1      }
 101          void main(void) 
 102          { 
 103   1        TMOD=0x21; 
 104   1        TH0=0xA1;
 105   1        TL0=0x12; 
 106   1        ET0=1; 
 107   1        EA=1;
 108   1        TH1=0xfd;
 109   1        TL1=0xfd;
 110   1        SCON=0x50;
 111   1        TR1=1;
 112   1        while(ow_reset());
 113   1        write_byte(0xcc);
 114   1        write_byte(0x44);
 115   1        TR0=1; 
 116   1        while(1);
C51 COMPILER V7.50   181818                                                                05/26/2007 19:09:07 PAGE 3   

 117   1      } 
 118          void t0(void) interrupt 1 using 0 
 119          { TR0=0;
 120   1        TH0=0xA1;
 121   1        TL0=0x12;
 122   1        tem(); 
 123   1        display();
 124   1        TR0=1;
 125   1      } 


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    337    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     34    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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