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

📄 main.lst

📁 自己用51单片机做得温度控制系统
💻 LST
字号:
C51 COMPILER V8.15   MAIN                                                                  03/10/2009 17:08:57 PAGE 1   


C51 COMPILER V8.15, 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          /* Copyright (c) 2009, 电子信息工程学院  */
   3          /* All rights reserved.                  */
   4          /* 作    者:王明兴                                              */
   5          /*****************************************/
   6          
   7          #include "main.h"
   8          #include "MAX7219.h"
   9          #include "DS18B20.h"
  10          
  11          char data Temp_Limit = 50;
  12          uchar data Key_Start_flag = 0;
  13          uchar data Key_Setup_flag = 0;
  14          uchar data Key_Up_flag = 0;
  15          uchar data Key_Down_flag = 0;
  16          uchar data Key_Enter_flag = 0;
  17          uchar data tplsb,tpmsb;         // 温度值低位、高位字节
  18          uchar data Buffer0[4];
  19          uchar data Buffer1[4];
  20          char data Cur_Temp;
  21          uchar data Read_flag = 0;
  22          uchar data DisBuffer[8]={0,0,0,0,0,0,0,0};    // 显示缓存区
  23          volatile uint data Disp_Count = 0;
  24          volatile uint data Temp_Count = 0;
  25          volatile uint data Temp_Read = 0;
  26          
  27          
  28          void main()
  29          {
  30   1              TMOD = 0x11;                                                    //置T1、T0按方式1工作 16位模式
  31   1              TH0 = 0xf0;
  32   1              TL0 = 0xd8;
  33   1              TH1 = 0xf0;
  34   1              TL1 = 0xd8;
  35   1              TR0 = 1;                                                                //开启定时器0
  36   1              ET0 = 1;                                                                //允许T0中断
  37   1              ET1 = 1;                                                                //允许T1中断
  38   1              EA = 1;                                                                 //开中断
  39   1              LED_STATE = 0;
  40   1      
  41   1              InitDisplay();                                                  // MAX7219初始化 
  42   1              WriteWord(DisplayTest,TestMode);                // 开始显示测试,点亮所有LED
  43   1              delay(1000);                                                    // 延时约2s
  44   1              convert();              // 启动温度转换,需要750ms
  45   1              delay(1000);    // 延时1s
  46   1              RdTemp();               // 读取温度
  47   1              Da_Trans();                                                             
  48   1              WriteWord (DisplayTest,TextEnd);                // 退出显示测试模式
  49   1              Display(Buffer0);                                               //显示当前温度
  50   1              TR1 = 1;                                                                //开启定时器1
  51   1      
  52   1              while(1)
  53   1              {
  54   2                      Key_Process();                                          //键盘处理
  55   2                      if(Key_Start_flag)
C51 COMPILER V8.15   MAIN                                                                  03/10/2009 17:08:57 PAGE 2   

  56   2                      {
  57   3                              if(Key_Setup_flag)
  58   3                              {
  59   4                                      TEMP_CTRL = 1;
  60   4                                      LED_NORMAL = 1;
  61   4                                      LED_WARING = 1;
  62   4                                      Da_Tran(Temp_Limit);
  63   4                                      Display(Buffer1);
  64   4                                      
  65   4                                      if(Key_Up_flag)
  66   4                                      {
  67   5                                              if(Temp_Limit <= 125)
  68   5                                                      Temp_Limit ++;
  69   5                                              Key_Up_flag = 0;
  70   5                                      }
  71   4                                      if(Key_Down_flag)
  72   4                                      {
  73   5                                              if(Temp_Limit != 0)
  74   5                                                      Temp_Limit --;
  75   5                                              Key_Down_flag = 0;
  76   5                                      }
  77   4                                      if(Key_Enter_flag)
  78   4                                      {
  79   5                                              Key_Setup_flag = 0;
  80   5                                              Key_Enter_flag = 0;
  81   5                                              Display(Buffer0);
  82   5                                      }
  83   4                              }
  84   3                              else
  85   3                              {
  86   4                                      if(Cur_Temp <= Temp_Limit)
  87   4                                      {
  88   5                                              LED_NORMAL = 0;
  89   5                                              LED_WARING = 1;
  90   5                                              TEMP_CTRL = 0;
  91   5                                      }
  92   4                                      else
  93   4                                      {
  94   5                                              LED_NORMAL = 1;
  95   5                                              LED_WARING = 0;
  96   5                                              TEMP_CTRL = 1;
  97   5                                      }
  98   4                              }
  99   3                      }
 100   2                      if(!Key_Setup_flag)
 101   2                      {
 102   3                              if(Disp_Count > 500)                       //0.5S显示刷新一次
 103   3                              {
 104   4                                      Display(Buffer0);
 105   4                                      Disp_Count = 0;
 106   4                              }                                                                  //1S测一次温度
 107   3                              if(Temp_Count > 1000)
 108   3                              {
 109   4                                      Temp_Count = 0;
 110   4                                      convert();              // 启动温度转换,需要750ms
 111   4                                      Read_flag = 1;
 112   4                                      if(Temp_Read > 800)
 113   4                                      {
 114   5                                              Read_flag = 0;
 115   5                                              Temp_Read = 0;
 116   5                                              RdTemp();               // 读取温度
 117   5                                              Da_Trans();
C51 COMPILER V8.15   MAIN                                                                  03/10/2009 17:08:57 PAGE 3   

 118   5                                      }
 119   4                              }
 120   3                      }
 121   2              }
 122   1      }
 123          
 124          
 125                                                  
 126                                          
 127                                                  
 128          
 129          
 130          
 131          
 132          
 133                                  
 134          
 135          
 136                  


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