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

📄 ds18b20_driver.lst

📁 单片机温度采集系统
💻 LST
字号:
C51 COMPILER V7.20   DS18B20_DRIVER                                                        04/29/2007 18:26:40 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE DS18B20_DRIVER
OBJECT MODULE PLACED IN DS18B20_Driver.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE DS18B20_Driver.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          
   2          /********************************************************************
   3          //模 块 名 :  温度采集演示程序
   4          //创 建 者 :  杨 勇     
   5                日期 :   2007年4月29日 17:20                              
   6          //修 改 者 :                                                                    
   7                日期 :
   8          //功能描述 :  
   9          //其他说明 :  22.1184MHz晶振 
  10          //芯片型号 :   AT89S52
  11          //配    置 : 
  12          //版    本 :  V1.0
  13          ********************************************************************/
  14          
  15          
  16          #include <reg52.h>                           //包含51单片机的头文件
  17          #include<absacc.h>
  18          #include<stdio.h>
  19          
  20          #define uint unsigned int
  21          #define uchar unsigned char
  22          
  23          
  24          sbit dq=P3^7;
  25          
  26          
  27          void delay(uchar usecinds);
  28          uchar ow_reset(void);
  29          uchar read_byte(void);
  30          void write_byte(char val);
  31          int Read_Temperatuture(void);
  32          
  33          
  34          /*=============================================================================
  35          //函 数 名:  void delay(uchar useconds)
  36          //参    数:  无
  37          //返 回 值:  int
  38          //函数功能:  读取温度函数
  39          //编 写 者:  杨 勇
  40          //编写日期:  2007年4月29日 18:11
  41          ===============================================================================*/
  42          int Read_Temperatuture(void)
  43          {
  44   1        union{
  45   1                   uchar c[2];
  46   1                       int x;
  47   1                      }temp;
  48   1      
  49   1        ow_reset();
  50   1        write_byte(0xcc);       //跳过ROM
  51   1        write_byte(0xbe);       //读RAM
  52   1        temp.c[1]=read_byte();
  53   1        temp.c[0]=read_byte();
  54   1        ow_reset();
  55   1        write_byte(0xcc);
C51 COMPILER V7.20   DS18B20_DRIVER                                                        04/29/2007 18:26:40 PAGE 2   

  56   1        write_byte(0x44);       //开始翻转
  57   1        return temp.x/2;
  58   1      }
  59          
  60          /*=============================================================================
  61          //函 数 名:  uchar read_byte(void)
  62          //参    数:  无
  63          //返 回 值:  uchar 
  64          //函数功能:  读取一个字节函数
  65          //编 写 者:  杨 勇
  66          //编写日期:  2007年4月29日 18:11
  67          ===============================================================================*/
  68          
  69          uchar read_byte(void)
  70          {
  71   1         uchar i;
  72   1         uchar value=0;
  73   1         for(i=8;i>0;i--)
  74   1         {
  75   2               value>>=1;
  76   2               dq=0;                        // 低电平
  77   2               dq=1;                        // 返回高电平
  78   2           delay(2);
  79   2               if(dq)value|=0x80;
  80   2               delay(12);
  81   2              }
  82   1              return(value);
  83   1      }
  84          
  85          /*=============================================================================
  86          //函 数 名:  void write_byte(char val)
  87          //参    数:  无
  88          //返 回 值:  uchar 
  89          //函数功能:  写一个字节函数
  90          //编 写 者:  杨 勇
  91          //编写日期:  2007年4月29日 18:11
  92          ===============================================================================*/
  93          
  94          void write_byte(char val)
  95          {
  96   1         uchar i;
  97   1         for(i=8;i>0;i--)               //一次写一个字节
  98   1         {
  99   2                dq=0;
 100   2                dq=val&0x01;
 101   2                delay(10);                   //端口悬挂
 102   2                dq=1;
 103   2                val=val/2;
 104   2              }
 105   1              delay(10);
 106   1      }
 107          
 108          
 109          /*=============================================================================
 110          //函 数 名:  uchar read_byte(void)
 111          //参    数:  无
 112          //返 回 值:  uchar 
 113          //函数功能:  复位函数
 114          //编 写 者:  杨 勇
 115          //编写日期:  2007年4月29日 18:11
 116          ===============================================================================*/
 117          uchar ow_reset(void)
C51 COMPILER V7.20   DS18B20_DRIVER                                                        04/29/2007 18:26:40 PAGE 3   

 118          {
 119   1         uchar presence;
 120   1         dq=0;                   //设低电平
 121   1         delay(58);              //延时480us
 122   1         dq=1;                   //高电平
 123   1         delay(6);               //等待
 124   1         presence=dq;            //取允许信号
 125   1         delay(50);
 126   1         return(presence);       //返回允许信号
 127   1      }
 128          
 129          
 130          /*=============================================================================
 131          //函 数 名:  void delay(uchar useconds)
 132          //参    数:  uchar useconds
 133          //返 回 值:  无
 134          //函数功能:  延时函数
 135          //编 写 者:  杨 勇
 136          //编写日期:  2007年4月29日 18:11
 137          ===============================================================================*/
 138          
 139          void delay(uchar useconds)
 140          {
 141   1        for(;useconds>0;useconds--);
 142   1      }


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