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

📄 b20.lst

📁 DS18B20在KEIL uvision2.0下写的源代码!
💻 LST
字号:
C51 COMPILER V6.10  B20                                                                    11/27/2007 15:20:37 PAGE 1   


C51 COMPILER V6.10, COMPILATION OF MODULE B20
OBJECT MODULE PLACED IN F:\b20\b20.OBJ
COMPILER INVOKED BY: C:\lope\kc51\bin\C51.exe F:\b20\b20.c SMALL OT(0,SIZE) SB OR DB OE

stmt level    source

   1          #include <reg52.h>
   2           
   3          
   4          sbit P00=P0^0;
   5          sbit P01=P0^1;
   6          sbit SCL=P0^2;
   7          sbit SDA=P0^3;
   8          sbit DQ=P0^4;  //DS18B20 DQ线
   9          
  10          sbit P10=P1^0;
  11          sbit P11=P1^1;
  12          sbit P12=P1^2; 
  13          
  14          bit temp;
  15          unsigned int a;
  16          unsigned int tempL,tempH,temp_sign,temperature;
  17          
  18          
  19          //初始化函数
  20          void init()
  21          {
  22   1       P0=0xff;//读前先给置1
  23   1       P1=0xff;
  24   1       P00=0; //电机断电
  25   1       P01=0; 
  26   1       P10=0; //关掉LED
  27   1      }
  28          
  29          //延时函数10ms
  30          void mdelay(unsigned char DelayTime)
  31          { 
  32   1        unsigned int n;
  33   1        n=0;
  34   1        while(n < DelayTime)
  35   1         {
  36   2          n++;
  37   2         }
  38   1       return;
  39   1      }
  40          
  41          /*----------------------
  42          函数:DS18B20初始化子函数
  43          ----------------------*/
  44          init_DS18B20()
  45          {
  46   1       unsigned char x=0;
  47   1       DQ=1;
  48   1       mdelay(8);
  49   1       DQ=0;
  50   1       mdelay(90);
  51   1       DQ=1;
  52   1       mdelay(5);
  53   1       x=DQ;
  54   1       while(x);
  55   1       mdelay(15);
C51 COMPILER V6.10  B20                                                                    11/27/2007 15:20:37 PAGE 2   

  56   1      }
  57          
  58          //read byte
  59          unsigned int read_byte()
  60          {
  61   1       unsigned int i=0;
  62   1       unsigned char dat=0;
  63   1       for(i=8;i>0;i--)
  64   1        {
  65   2         DQ=0;
  66   2         dat>>=1;
  67   2         DQ=1;          //主机数据线从高到低,在拉高产生读信号
  68   2         if(DQ)
  69   2          {
  70   3           dat|=0x80;
  71   3      	}
  72   2         mdelay(5);
  73   2        }
  74   1        return(dat);
  75   1      }
  76          
  77          //write byte
  78          write_byte(unsigned int dat)
  79          {
  80   1       unsigned int i=0;
  81   1       for(i=0;i<8;i++)
  82   1        {
  83   2         DQ=0;         //数据线从高到低,产生写始信号
  84   2         DQ=dat&0x01;
  85   2         mdelay(6);
  86   2         DQ=1;
  87   2         dat>>=1;
  88   2        }
  89   1        mdelay(5);
  90   1      }
  91          
  92          /*----------------------------------
  93          函数功能: DS18B20 read temperature
  94          ----------------------------------*/
  95          read_temperature()
  96          {
  97   1       
  98   1       init_DS18B20();
  99   1       write_byte(0xcc);
 100   1       write_byte(0x44);
 101   1      
 102   1       mdelay(200);
 103   1       while(!DQ);
 104   1      
 105   1       init_DS18B20();
 106   1       write_byte(0xcc);
 107   1       write_byte(0xbe);
 108   1      
 109   1       tempL=read_byte();
 110   1       tempH=read_byte();
 111   1       temp_sign=tempH&0xf8;
 112   1       tempL>>=4;
 113   1       tempH<<=4;
 114   1       temperature=tempH|tempL;
 115   1       if(temp_sign==0xf8)
 116   1        {
 117   2         temperature=(~temperature)+0x01;
C51 COMPILER V6.10  B20                                                                    11/27/2007 15:20:37 PAGE 3   

 118   2        }
 119   1       mdelay(200);
 120   1       return(temperature);
 121   1      }
 122          
 123          //16 conversion 10 (error)
 124          unsigned int conversion(unsigned int a)
 125          {
 126   1       unsigned int dat;
 127   1       switch(a)
 128   1        {
 129   2         case 0:dat = 0x00;break;
 130   2         case 1:dat = 0x01;break;
 131   2         case 2:dat = 0x02;break;
 132   2         case 3:dat = 0x03;break;
 133   2         case 4:dat = 0x04;break;
 134   2         case 5:dat = 0x05;break;
 135   2         case 6:dat = 0x06;break;
 136   2         case 7:dat = 0x07;break;
 137   2         case 8:dat = 0x08;break;
 138   2         case 9:dat = 0x09;break;
 139   2         case 0x0a: dat =0x10;break;
 140   2         case 0x0b: dat =0x11;break;
 141   2         case 0x0c: dat =0x12;break;
 142   2         case 0x0d: dat =0x13;break;
 143   2         case 0x0e: dat =0x14;break;
 144   2         case 0x0f: dat =0x15;break;
 145   2        }
 146   1       return(dat);
 147   1      }
 148          
 149          //two 16 进制
 150          unsigned int con(unsigned int dat)
 151          {
 152   1       unsigned int m,n;
 153   1       n=conversion(dat&0x0f);
 154   1       m=(dat>>4)&0x0f;
 155   1       m=conversion(m);
 156   1       m=m*16;
 157   1       n=m+n;
 158   1       return(n);
 159   1      }
 160          void main(void)
 161          {
 162   1       init();
 163   1       a=read_temperature();
 164   1       ACC=a;
 165   1      
 166   1      } 
C51 COMPILER V6.10  B20                                                                    11/27/2007 15:20:37 PAGE 4   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


P0 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0080H  1
P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
P3 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B0H  1
PSW. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00D0H  1
ACC. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00E0H  1
TCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0088H  1
IE . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A8H  1
IP . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B8H  1
SCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0098H  1
T2CON. . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00C8H  1
CY . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D7H  1
AC . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D6H  1
F0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D5H  1
RS1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D4H  1
RS0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D3H  1
OV . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D2H  1
P. . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D0H  1
TF1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008FH  1
TR1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008EH  1
TF0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008DH  1
TR0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008CH  1
IE1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008BH  1
IT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008AH  1
IE0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0089H  1
IT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0088H  1
EA . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AFH  1
ET2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ADH  1
ES . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ACH  1
ET1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ABH  1
EX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AAH  1
ET0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A9H  1
EX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A8H  1
PT2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BDH  1
PS . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BCH  1
PT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BBH  1
PX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BAH  1
PT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B9H  1
PX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B8H  1
RD . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B7H  1
WR . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B6H  1
T1 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B5H  1
T0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B4H  1
INT1 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B3H  1
INT0 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B2H  1
TXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B1H  1
RXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B0H  1
SM0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009FH  1
SM1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009EH  1
SM2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009DH  1
REN. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009CH  1
TB8. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009BH  1
RB8. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009AH  1
TI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0099H  1
RI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0098H  1
T2EX . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0091H  1
T2 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0090H  1
TF2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CFH  1
C51 COMPILER V6.10  B20                                                                    11/27/2007 15:20:37 PAGE 5   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


EXF2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CEH  1
RCLK . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CDH  1
TCLK . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CCH  1
EXEN2. . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CBH  1
TR2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CAH  1
C_T2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00C9H  1
CP_RL2 . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00C8H  1
P00. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0080H  1
P01. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0081H  1
SCL. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0082H  1
SDA. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0083H  1
DQ . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0084H  1
P10. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0090H  1
P11. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0091H  1
P12. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0092H  1
temp . . . . . . . . . . . . . . . . .  PUBLIC   DATA   BIT      0000H  1
a. . . . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_INT    0000H  2
tempL. . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_INT    0002H  2
tempH. . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_INT    0004H  2
temp_sign. . . . . . . . . . . . . . .  PUBLIC   DATA   U_INT    0006H  2
temperature. . . . . . . . . . . . . .  PUBLIC   DATA   U_INT    0008H  2
init . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
_mdelay. . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  DelayTime. . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  n. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0001H  2
init_DS18B20 . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  x. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
read_byte. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0000H  2
  dat. . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0002H  1
_write_byte. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  dat. . . . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0000H  2
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0002H  2
read_temperature . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
_conversion. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  a. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0000H  2
  dat. . . . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0002H  2
_con . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  dat. . . . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0000H  2
  m. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0002H  2
  n. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0004H  2
main . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----


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