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

📄 main.lst

📁 51单片机项目集
💻 LST
字号:
C51 COMPILER V8.02   MAIN                                                                  11/21/2010 00:20:27 PAGE 1   


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

line level    source

   1          /*********************************************************************/
   2          //读取DS18B20温度,通过数码管显示,在温度超过35度时继电器吸合                                                                                                                                                                           
   3          /*********************************************************************/
   4          #include<reg51.h>
   5          #include"18B20.c"               
   6          #define uchar unsigned char 
   7          #define uint unsigned int
   8          
   9          code  uchar seven_seg[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  10          code uchar seven_bit[] = {0xfe,0xfd,0xfb,0xf7};
  11          uchar cp;
  12          uint temp1,temp2;
  13          sbit jdq = P2^6; 
  14          void timer0_init(void)   //初始化
  15          {
  16   1              TMOD = 0x01;
  17   1              TH0 = 0xec;
  18   1              TL0 = 0x78;
  19   1              TR0 = 1;
  20   1              EA  = 1;
  21   1              ET0 = 1;
  22   1      }
  23          /*****************************************************************************/
  24          void timer0_isr(void) interrupt 1                 //中断
  25          {
  26   1              uchar j;
  27   1              TR0 = 0;
  28   1              EA = 0;
  29   1              TH0 = 0xec;
  30   1              TL0 = 0x78;
  31   1              TR0 = 1;
  32   1              EA = 1;
  33   1              cp++;
  34   1              if(cp >= 200)   //刚好1秒
  35   1         {
  36   2                      cp = 0;
  37   2                      temp1 = Read_Temperature();//得到温度
  38   2                      if((temp1 & 0x80) == 0x80) //如果温度为负值
  39   2                      {       
  40   3                      
  41   3                              temp2 =0x7f & ~temp1  +  (0x0f & ~c) /15;  //整数处理,需要加上小数来的借位
  42   3                              c = 0x0f & ~c + 0x01;   //小数处理
  43   3                      }
  44   2                      else temp2 = temp1;//如果温度为正值,不用处理
  45   2              }
  46   1              P0 = 0xff;
  47   1              switch(j)
  48   1              {
  49   2                      case 0:P0 = seven_seg[c * 10/16];break;//显示小数
  50   2                      case 1:P0 = 0x7f & seven_seg[temp2 % 10];break;//显示个位并加上小数点
  51   2                      case 2:{        
  52   3                                              if((temp2 < 10) && (temp1 < 0x80)){P0 = 0xff;break;}//如果温度小于10度,且为正值,十位0不显示
  53   3                                              if((temp1 > 0x80) && (temp2 < 10)){P0 = 0xbf;break;}//如果温度小于10度,且为负值,十位0不显示,只显示
             -“-”
  54   3                                              P0 = seven_seg[temp2 / 10];     break;//如果温度大于10度,10位正常显示
C51 COMPILER V8.02   MAIN                                                                  11/21/2010 00:20:27 PAGE 2   

  55   3                                      
  56   3                                      }
  57   2                      case 3:{
  58   3                                              if((temp1 > 0x80) && ((temp2 / 10) > 0))//如果温度为负值,且十位不为0,百位显示“-”
  59   3                                              P0 = 0xbf;
  60   3                                              break;
  61   3                                      }
  62   2              }
  63   1              P2 = seven_bit[j];
  64   1              j++;
  65   1              if(j >= 4)
  66   1              j=0;
  67   1      }
  68          void main(void)
  69          {
  70   1              timer0_init();
  71   1              
  72   1              while(1)
  73   1              {
  74   2                      if(temp2 >= 35) 
  75   2                              jdq = 0;
  76   2                      else
  77   2                              jdq = 1;
  78   2              }
  79   1      }


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