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

📄 ds18b20.lst

📁 压缩包中含有DS10B20,JM12864液晶模块的资料,以及DS18B201有LCD显示温度的2个KEIL C程序.和电路原理图.
💻 LST
字号:
C51 COMPILER V7.06   DS18B20                                                               08/11/2007 14:02:44 PAGE 1   


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

stmt level    source

   1          #include "reg52.h" 
   2          
   3          sbit DQ =P3^3;   //定义通信端口
   4          //延时函数
   5          
   6          void delay(unsigned int i)
   7          {
   8   1           while(i--);
   9   1          
  10   1      }
  11          //初始化函数
  12          Init_DS18B20()
  13          {
  14   1       unsigned char x=0;
  15   1       DQ = 1;    //DQ复位
  16   1       delay(8);  //稍做延时
  17   1       DQ = 0;    //单片机将DQ拉低
  18   1       delay(80); //精确延时 大于 480us
  19   1       DQ = 1;    //拉高总线
  20   1       delay(14);
  21   1       x=DQ;      //稍做延时后 如果x=0则初始化成功 x=1则初始化失败
  22   1       delay(20);
  23   1      }
  24          //读一个字节
  25          ReadOneChar(void)
  26          {
  27   1      unsigned char i=0;
  28   1      unsigned char dat = 0;
  29   1      for (i=8;i>0;i--)
  30   1       {
  31   2        DQ = 0; // 给脉冲信号
  32   2        dat>>=1;
  33   2        DQ = 1; // 给脉冲信号
  34   2        if(DQ)
  35   2         dat|=0x80;
  36   2        delay(4);
  37   2       }
  38   1       return(dat);
  39   1      }
  40          //写一个字节
  41          WriteOneChar(unsigned char dat)
  42          {
  43   1       unsigned char i=0;
  44   1       for (i=8; i>0; i--)
  45   1       {
  46   2        DQ = 0;
  47   2        DQ = dat&0x01;
  48   2        delay(5);
  49   2        DQ = 1;
  50   2        dat>>=1;
  51   2       }
  52   1      delay(4);
  53   1      }
  54          //读取温度
  55          unsigned char ReadTemperature()
C51 COMPILER V7.06   DS18B20                                                               08/11/2007 14:02:44 PAGE 2   

  56          {
  57   1      unsigned char a=0;
  58   1      unsigned char b=0;
  59   1      unsigned char t;
  60   1      Init_DS18B20();
  61   1      WriteOneChar(0xCC); // 跳过读序号列号的操作
  62   1      WriteOneChar(0x44); // 启动温度转换
  63   1      Init_DS18B20();
  64   1      WriteOneChar(0xCC); //跳过读序号列号的操作
  65   1      WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器) 前两个就是温度
  66   1      a=ReadOneChar();   //读取温度值低位
  67   1      b=ReadOneChar();   //读取温度值高位
  68   1      a=a>>4;            //低位右移4位,舍弃小数部分
  69   1      t=b<<4;            //高位左移4位,舍弃符号位
  70   1      t=t|a;
  71   1      return(t);
  72   1      }
  73          


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