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

📄 main.lst

📁 小型便携式温度计的源代码第二版
💻 LST
字号:
C51 COMPILER V8.08   MAIN                                                                  02/14/2009 14:56:14 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN MAIN.OBJ
COMPILER INVOKED BY: E:\Program Files\Keil\C51\BIN\C51.EXE MAIN.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /********************************************************************
   2          ;便携式温度计
   3          ;数码管引脚连接:a=P1.3 b=P1.2 c=P1.1 d=P1.0 e=P1.6 f=P1.4 g=P1.5 h=nc共阳;
   4          ;编写人:芦庆
   5          ;时间:2008年7月27日
   6          ;主控芯片:AT89C2051-24PU
   7          ;温度传感器:DS18B20
   8          ;占用资源:定时器0,P1口,P3.2,P3.3,P3.4,P3.5,P3.7
   9          ;晶振速度:6MHz
  10          ;
  11          ;ROM指令                                代码
  12          ;Read ROM(读ROM)                 [33H]
  13          ;Match ROM(匹配ROM)           [55H]
  14          ;Skip ROM(跳过ROM]             [CCH]
  15          ;Search ROM(搜索ROM)           [F0H]
  16          ;Alarm search(告警搜索)          [ECH]
  17          ;
  18          ;存储器操作指令                                         代码
  19          ;Write Scratchpad(写暂存存储器)         [4EH]
  20          ;Read Scratchpad(读暂存存储器)          [BEH]
  21          ;Copy Scratchpad(复制暂存存储器)        [48H]
  22          ;Convert Temperature(温度变换)                  [44H]
  23          ;Recall EPROM(重新调出)                         [B8H]
  24          ;Read Power supply(读电源)                      [B4H]
  25          ************************************************************/
  26          #include "config.h"
  27          
  28          uint8 DispLED[4];//数码管显示缓冲区
  29          uint8 code DispDB[15]={//字形码
  30                  0xA0,0xF9,0x92,0xD0,0xC9,0xC4,0x84,0xF1,//0,1,2,3,4,5,6,7
  31                  0x80,0xC0,0xDF,0xD9,0x87,0x81,0xAE};//8,9,-,-1,F,A,L
  32          uint8 code DispCon[4]={0xFB,0xF7,0xEF,0xDF};//段位控制码
  33          uint8 code DayStr[]=__DATE__;
  34          uint8 code TimeStr[]=__TIME__;
  35          uint8 Temp[2];//原始温度数据
  36          uint8 flag_LED;//数码管显示段位标志
  37          uint8 flag;
  38          
  39          void main(void)
  40          {
  41   1              TMOD = (TMOD & 0X0F) | 0X10;
  42   1              TL1 = 0x00;
  43   1              TH1 = 0x00;
  44   1              TR1 = 1;
  45   1              ET1 = 1;
  46   1              TT0();
  47   1          OSStart();
  48   1      }
  49          
  50          void DS18B20(void)
  51          {
  52   1          while (1)
  53   1          {
  54   2              Temperature_all();
  55   2              init_1820();
C51 COMPILER V8.08   MAIN                                                                  02/14/2009 14:56:14 PAGE 2   

  56   2              OSWait(K_TMO,4);
  57   2          } 
  58   1      }
  59          
  60          void LED(void)
  61          {
  62   1          while (1)
  63   1          {
  64   2                      P3|=0x3C;//关闭显示
  65   2                      P1=DispDB[DispLED[flag_LED]];
  66   2                      switch(flag_LED)
  67   2                      {
  68   3                              case 0:
  69   3                                      if(DispLED[0]==0)//首位0消隐
  70   3                                      {
  71   4                                              P3&=0xFF;//关闭显示
  72   4                                      }
  73   3                                      else
  74   3                                      {
  75   4                                              P3&=0xFB;
  76   4                                      }
  77   3                                      flag_LED+=1;
  78   3                                      break;
  79   3                              case 1:
  80   3                                      if((DispLED[0]==0) && (DispLED[1]==0))//次位0消隐
  81   3                                      {
  82   4                                              P3&=0xFF;//关闭显示
  83   4                                      }
  84   3                                      else
  85   3                                      {
  86   4                                              P3&=0xF7;
  87   4                                      }
  88   3                                      flag_LED+=1;
  89   3                                      break;
  90   3                              case 2:
  91   3                                      P3&=0xEF;
  92   3                                      flag_LED+=1;
  93   3                                      break;
  94   3                              case 3:
  95   3                                      P3&=0xDF;
  96   3                                      flag_LED=0;
  97   3                                      break;
  98   3                      }
  99   2                      mDelay(1);
 100   2          }
 101   1      }
 102          void UserTickTimer()
 103          {
 104   1              static uint8 stop_num=0;//系统停止计数器
 105   1              stop_num++;
 106   1              if(stop_num==39)
 107   1              {
 108   2                      P3=0XFF;
 109   2                      PCON=STOP_;
 110   2              }
 111   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    134    ----
   CONSTANT SIZE    =     40    ----
   XDATA SIZE       =   ----    ----
C51 COMPILER V8.08   MAIN                                                                  02/14/2009 14:56:14 PAGE 3   

   PDATA SIZE       =   ----    ----
   DATA SIZE        =      9    ----
   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 + -