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

📄 main.lst

📁 显示实时温度
💻 LST
字号:
C51 COMPILER V8.01   MAIN                                                                  07/14/2008 15:57:31 PAGE 1   


C51 COMPILER V8.01, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\安装程序\keil_801\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /************DS18B20温度测量程序+ 红外线解码程序***********/
   2          /*功能改进:对温度显示进行了削隐处理,例如:028.7C显示为 28.7C
   3                                  还继承了上次的改进效果,0度以下或拔下传感器,显示00000
   4                                  10s显示一次温度值,减小了处理器的负担;
   5                                  */
   6          /*问题:当传感器拔下时,最后一位,保留并不消隐*/
   7          /****硬件平台:中山51单片机开发板,DS18B20单总线温度传感器***********/
   8          /****硬件连接:P2_2接DQ(信号线2pin),电源3in,地1pin****************/
   9          /****程序功能:显示实时温度,温度范围:0-125C,精度:0.1C************/
  10          /****编程流程:初始化--写指令--读数据--数据处理--显示温度************/
  11          #include <at89x52.h>
  12          #include <DS18B20.h>
  13          #include <display.h>
  14          #include <IR.h>
  15          
  16          unsigned int temperature,count;
  17          bit TemperatureSign;
  18          
  19          main()
  20          {
  21   1       TMOD=0x01;
  22   1       TH0=0xd1;   //晶振为11.0592MHz;定时为~13ms
  23   1       TL0=0x33;
  24   1       EA=1;
  25   1       ET0=1;
  26   1       TR0=1;
  27   1       EX0=1;  //允许外部中断0
  28   1       IT0=1;  //外部中断触发方式下降沿触发
  29   1       temperature=0;
  30   1      while(1)
  31   1       {
  32   2      /****************红外线操作************************/
  33   2      
  34   2       P1=Decode;//把数据反码送给P1口
  35   2      /****************10s读取一次温度*******************/
  36   2        if(TemperatureSign==0)          //10s到了吗,TemperatureSign=0有效
  37   2          {
  38   3               temperature=ReadTemperature();//此段程序不能放在定时器里面,因为此函数运行需要的时间比较长
  39   3               TemperatureSign=1;
  40   3          }
  41   2      
  42   2       }
  43   1      }
  44          /********刷新显示,定时读取温度**********/
  45          timer0() interrupt 1
  46          {
  47   1       TH0=0xd1;   //晶振为11.0592MHz;定时为~13ms,刷新频率~75Hz;
  48   1       TL0=0x33;
  49   1       display(temperature); //显示温度
  50   1       count++;
  51   1       if(count>=769)   //10s读一次数据,769*13ms=10s
  52   1         {
  53   2          TemperatureSign=0;
  54   2              count=0;
  55   2         } 
C51 COMPILER V8.01   MAIN                                                                  07/14/2008 15:57:31 PAGE 2   

  56   1      }                          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    653    ----
   CONSTANT SIZE    =     26    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      9    ----
   IDATA SIZE       =      4    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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