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

📄 ds18b20.lst

📁 此程序是我用AT89S52单片机来控制显示屏FYD12864,采用C语言编写的可以显示图形,我调试了一周,在此和大家一起分享
💻 LST
字号:
C51 COMPILER V8.02   DS18B20                                                               04/03/2007 21:18:45 PAGE 1   


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

line level    source

   1          #include "main.h"
   2          #include "reg52.h"
   3          //#include "ds18b20intrins.h"
   4          #include "absacc.h"
   5          #include "stdio.h"
   6          #include "math.h"
   7          #define uchar unsigned char
   8          #define uint unsigned int
   9          
  10          extern unsigned char Temperature_Lsm;
  11          extern unsigned char Temperature_Msm;
  12          sbit P3_5=P3^5;
  13          uchar TEMP;                                     // 温度值的变量;
  14          uchar flag1;                                    // 结果为负和正的标志位。               
  15          
  16          void Delay (unsigned int count)
  17          {                                                       
  18   1          unsigned int i;     
  19   1          while (count)       
  20   1          {
  21   2              i =200;
  22   2              while (i>0) i--;
  23   2              count--;
  24   2          }
  25   1      }
  26          
  27          void Temperature_Reset(void)                              // 发送复位和初始化
  28          {
  29   1          unsigned int i;
  30   1          P3_5 = 0;   
  31   1          i = 103;
  32   1          while (i>0) i--;                                            // 延时
  33   1          P3_5 = 1;   
  34   1          i = 4;      
  35   1          while (i>0) i--;    
  36   1      }
  37          
  38          bit Temperature_Readbit(void)                           // 读取数据的一位
  39          { 
  40   1          unsigned int i;
  41   1          bit dat;
  42   1          P3_5 = 0; i++;      
  43   1          P3_5 = 1; i++; i++;                                 //延时  
  44   1          dat = P3_5; 
  45   1          i = 8; while (i>0) i--;                                     // 延时
  46   1          return (dat);
  47   1      }   
  48          
  49          unsigned char Temperature_Readchar(void)                       //读一个字节
  50          {
  51   1          unsigned char i,j,dat;      
  52   1          dat = 0;    
  53   1          for (i=1;i<=8;i++)
  54   1          {
  55   2              j =Temperature_Readbit();       
C51 COMPILER V8.02   DS18B20                                                               04/03/2007 21:18:45 PAGE 2   

  56   2              dat = (j << 7) | (dat >> 1);    
  57   2          }
  58   1          return (dat);
  59   1      }   
  60          
  61          void Temperature_Write(unsigned char dat)                   //写一个字节
  62          {   
  63   1          unsigned int i;
  64   1          unsigned char j;
  65   1          bit testb;  
  66   1          for (j=1;j<=8;j++)
  67   1          {   
  68   2              testb = dat & 0x01;
  69   2              dat = dat >> 1; 
  70   2              if (testb)
  71   2              {       
  72   3                  P3_5 = 0;                                   // 写0 
  73   3                  i++; i++;  
  74   3                  P3_5 = 1;   
  75   3                  i = 8; while (i>0) i--; 
  76   3              }
  77   2              else    
  78   2              {
  79   3                  P3_5 = 0;                                   // 写0 
  80   3                  i = 8; while (i>0) i--; 
  81   3                  P3_5 = 1;
  82   3                  i++; i++;  
  83   3              }
  84   2          }
  85   1      }
  86          
  87          void Temperature_Change(void)                            // ds1820 开始转换
  88          {  
  89   1          Temperature_Reset();                                        // 复位
  90   1          //tmpre ();                                 // 等待存在脉冲 
  91   1          Delay (1);                                          // 延时
  92   1          Temperature_Write(0xcc);                            // 跳过序列号命令
  93   1          Temperature_Write(0x44);                        // 发转换命令 44H,  
  94   1      }
  95          
  96          void Read_Temperature(void)                                     // 读取温度
  97          { 
  98   1          //unsigned char a,b;
  99   1          Temperature_Reset();                                        // 复位
 100   1          Delay (1);                                          // 延时
 101   1          Temperature_Write(0xcc);                        // 跳过序列号命令
 102   1          Temperature_Write(0xbe);                            // 发送读取命令
 103   1          Temperature_Lsm= Temperature_Readchar();                                    // 读取低位温度 
 104   1          Temperature_Msm= Temperature_Readchar();                            //读取高位温度  
 105   1          flag1=Temperature_Msm;                                      //若b为1则为负温
 106   1          if(flag1)
 107   1          {
 108   2              TEMP=~Temperature_Lsm+1;                      //如果为负温则去除其补码
 109   2          }
 110   1          else        
 111   1          {
 112   2              TEMP=Temperature_Lsm;   
 113   2          }
 114   1      }
 115          
 116          /*
 117          main()
C51 COMPILER V8.02   DS18B20                                                               04/03/2007 21:18:45 PAGE 3   

 118          {
 119              do{ 
 120                  Tmperature_Change();                                    // 开始温度转换
 121                  Delay(200);                                             // 读取延时
 122                  Read_Tmperature();                                              //读取温度
 123              }while(1);  
 124          }   
 125          */


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    249    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       2
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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