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

📄 x5045.lst

📁 ds18b20在stc89c58rd+下使用C语言调试通过
💻 LST
字号:
C51 COMPILER V8.02   X5045                                                                 07/24/2007 19:21:02 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE X5045
OBJECT MODULE PLACED IN X5045.OBJ
COMPILER INVOKED BY: d:\program files\Keil\C51\BIN\C51.EXE X5045.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "X5045.h"
   2          
   3          //unsigned char rda[8];
   4          //unsigned char cs_rda[8];
   5           
   6          //看门狗写使能子程序
   7          void wren_dog(void)
   8          {
   9   1              // unsigned char com;
  10   1              // com=0x06;//WREN;
  11   1              SCK=0;
  12   1              CS=0;
  13   1              in_byte(0x06);
  14   1              SCK=0;
  15   1              CS=1;
  16   1      }
  17          
  18          //看门狗写禁止子程序
  19          void wrdi_dog(void)
  20          {
  21   1              //unsigned char com;
  22   1              //com=0x04;//WRDI;
  23   1              SCK=0;
  24   1              CS=0;
  25   1              in_byte(0x04);
  26   1              SCK=0;
  27   1              CS=1;
  28   1      }
  29          
  30          
  31          
  32          //写状态寄存器
  33          void wrsr_dog(unsigned char status_reg)
  34          {
  35   1              // unsigned char com=0x01;//WRSR;
  36   1              SCK=0;
  37   1              CS=0;
  38   1              in_byte(0x01);
  39   1              in_byte(status_reg);
  40   1              SCK=0;
  41   1              CS=1;
  42   1              wip_poll();
  43   1      }
  44          
  45          
  46          //读状态寄存器
  47          unsigned char rdsr_dog(void)
  48          {
  49   1              // unsigned char com=0x05;//RDSR;
  50   1              SCK=0;
  51   1              CS=0;
  52   1              in_byte(0x05);
  53   1              return(out_byte());
  54   1              SCK=0;
  55   1              CS=1;
C51 COMPILER V8.02   X5045                                                                 07/24/2007 19:21:02 PAGE 2   

  56   1      }
  57          
  58          //字节读
  59          unsigned char byte_read(unsigned char H,unsigned char L)
  60          {
  61   1              unsigned char data_dog,add;
  62   1              SCK=0;
  63   1              CS=0;
  64   1              SO=1;
  65   1              SI=1;
  66   1              add=H<<3;
  67   1              add|=0x03;//READ;
  68   1              in_byte(add);
  69   1              add=L;
  70   1              in_byte(add);
  71   1              data_dog=out_byte();
  72   1              SCK=0;
  73   1              CS=1;
  74   1              return(data_dog);
  75   1      }
  76          //字节写
  77          //H,地址高字节;L地址低字节;D写入的数据
  78          void byte_write(unsigned char H,unsigned char L,unsigned char D)
  79          {       
  80   1              unsigned char data_dog,add;
  81   1              SCK=0;
  82   1              CS=0;
  83   1              SO=1;
  84   1              SI=1;
  85   1              add=H<<3;
  86   1              add|=0x02;//WRTE;
  87   1              in_byte(add);
  88   1              add=L;
  89   1              in_byte(add);
  90   1              data_dog=D;
  91   1              in_byte(data_dog);
  92   1              CS=1;
  93   1              wip_poll();
  94   1      }
  95          //复位看门狗子程序
  96          void rest_dog(void)
  97          {
  98   1              CS=0;
  99   1              CS=1;
 100   1      }
 101          
 102          
 103          //检验写操作是否结束。
 104          unsigned char wip_poll(void)
 105          {
 106   1              unsigned char i;
 107   1              unsigned char wip;
 108   1              for(i=0xff;i>=1;i--) 
 109   1              {
 110   2                      wip=rdsr_dog();
 111   2                      wip&=0x01;
 112   2                      if(wip==0) break;
 113   2              }
 114   1              return(wip);
 115   1      
 116   1      }
 117          
C51 COMPILER V8.02   X5045                                                                 07/24/2007 19:21:02 PAGE 3   

 118          //单字节指令或数据写入X25045
 119          //在SI线上输入的数据在SCK的上升沿被锁存。
 120          void in_byte(unsigned char byt)
 121          {
 122   1              unsigned char i;
 123   1              //SCK=0;
 124   1              //CS=0;
 125   1              for(i=8;i>=1;i--)
 126   1              {
 127   2                      SCK=0; 
 128   2                      SI=byt&0x80; 
 129   2                      SCK=1; 
 130   2                      byt=byt<<1; 
 131   2              }
 132   1              // SI=0;
 133   1              // SCK=0;
 134   1              // CS=1;
 135   1      }
 136          
 137          //单字节数据从X25045读到单片机
 138          //数据由SCK的下降沿输出到SO线上。
 139          unsigned char out_byte(void)
 140          {
 141   1              unsigned char i;
 142   1              unsigned char byt;
 143   1              //SO=1;
 144   1              //SCK=0;
 145   1              //CS=0;
 146   1              for(i=8;i>=1;i--)
 147   1              {
 148   2                      byt=byt<<1;
 149   2                      SCK=1;
 150   2                      SCK=0; 
 151   2                      byt|=SO; 
 152   2              }
 153   1              //SCK=0;
 154   1              //CS=1;
 155   1              return (byt);
 156   1      }
 157          


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