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

📄 x5045.lst

📁 此程序用于恒温箱控制
💻 LST
字号:
C51 COMPILER V7.07   X5045                                                                 06/10/2005 08:13:56 PAGE 1   


C51 COMPILER V7.07, COMPILATION OF MODULE X5045
OBJECT MODULE PLACED IN X5045.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE X5045.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include"main.h"
   2          #include<intrins.h>
   3          #include"x5045.h"
   4          #define uchar unsigned char
   5          
   6          #define WREN 0X06
   7          #define WRDI 0X04
   8          #define RDSR 0x05
   9          #define WRSR 0x01
  10          #define READ 0x03               
  11          #define WRITE 0x02
  12                  
  13          #define NOP  _nop_()
  14          
  15          #define WD1_4S  0x00
  16          #define WD600ms 0x10
  17          #define WD200ms 0x20
  18          #define WDDISABLE 0x30  
  19          
  20          sbit cs_dog=P1^2;//p2.4
  21          sbit sck_dog=P1^3;
  22          sbit si_dog=P1^4;
  23          sbit so_dog=P1^5;
  24          //extern delay_ms(uchar Count);
  25          
  26          /*************************************************************************
  27          *           函数原型:void  STAR_25045(void)
  28          *           功    能:启动看门狗
  29          *           返 回 值:无
  30          **************************************************************************/
  31          void STAR_25045()//被调用的函数必须放在调用函数之前。
  32          {
  33   1        cs_dog=1;
  34   1        NOP;
  35   1        sck_dog=0;
  36   1        NOP;
  37   1        cs_dog=0;
  38   1       }
  39          
  40          /*************************************************************************
  41          *           函数原型:uchar  Byte_In()
  42          *           功    能:从so_dog脚接收数据。
  43          *           返 回 值:I_Data(一个字节)
  44          **************************************************************************/
  45           uchar Byte_out()
  46          {       
  47   1              uchar i,I_Data=0;
  48   1              //P0=0xff;//这就一定要
  49   1              for(i=0;i<8;i++)
  50   1              {
  51   2                 sck_dog=1;
  52   2                NOP;
  53   2                 NOP;
  54   2                 NOP;
  55   2                 sck_dog=0;
C51 COMPILER V7.07   X5045                                                                 06/10/2005 08:13:56 PAGE 2   

  56   2             I_Data=I_Data<<1;
  57   2                 if(so_dog)
  58   2              {
  59   3                     I_Data++;           
  60   3                       }
  61   2              }
  62   1              return(I_Data);
  63   1      }
  64          /*************************************************************************
  65          *           函数原型:void  Byte_Out(uchar I_Data)
  66          *           功    能:从si_dog脚发送数据
  67          *           参    数:I_Data
  68          *           返 回 值:无
  69          **************************************************************************/
  70          void Byte_in(uchar I_Data)
  71          {
  72   1              uchar i ;
  73   1              
  74   1              for(i=0;i<8;i++)
  75   1              {
  76   2                 sck_dog=0;
  77   2                 if(0x80&I_Data) 
  78   2                    {si_dog=1;}
  79   2             else 
  80   2                    {si_dog=0;}
  81   2                 NOP;
  82   2                 NOP;
  83   2                 NOP;
  84   2             sck_dog=1;
  85   2                 I_Data=I_Data<<1;
  86   2               }
  87   1             
  88   1         si_dog=0;
  89   1      }
  90          
  91          /*************************************************************************
  92          *           函数原型:void  Wren_25045()
  93          *           功    能:打开看门狗写使能。
  94          *           返 回 值:无
  95          **************************************************************************/
  96          void Wren_25045()//Open write enable
  97          {
  98   1              STAR_25045();
  99   1              Byte_in(WREN);
 100   1              //sck_dog=0;
 101   1      //      _nop_();
 102   1                NOP;
 103   1                 NOP;
 104   1                 NOP;
 105   1              cs_dog=1;
 106   1      }               
 107          /*************************************************************************
 108          *           函数原型:uchar  RDSR_25045()
 109          *           功    能:读看门狗状态寄存器。
 110          *           返 回 值:返回Status看门狗的状态。
 111          **************************************************************************/
 112          uchar RDSR_25045()//Read statinon regester
 113          {
 114   1              uchar Status=0;
 115   1             // sck_dog=0;
 116   1              cs_dog=0;
 117   1              Byte_in(RDSR);
C51 COMPILER V7.07   X5045                                                                 06/10/2005 08:13:56 PAGE 3   

 118   1              Status=Byte_out();
 119   1              //sck_dog=0;
 120   1              cs_dog=1;
 121   1          return(Status);
 122   1      }
 123          /*************************************************************************
 124          *           函数原型:uchar  WIP_POLL()
 125          *           功    能:看门狗写检查。
 126          *           返 回 值:无
 127          **************************************************************************/
 128          void WIP_POLL()
 129          {
 130   1              uchar i,Status;
 131   1              for(i=0;i<150;i++)
 132   1              {
 133   2              Status=RDSR_25045();
 134   2                 if(!(Status&0x01)) 
 135   2               {return;}
 136   2           }
 137   1      }
 138          /*************************************************************************
 139          *           函数原型:uchar  Byte_Write(uchar DPH,DPL,DATA)
 140          *           功    能:写看门狗。
 141          *           参    数:DPH写地址高位,DPL写地址低位,DATA写数据。
 142          *           返 回 值:无。
 143          **************************************************************************/
 144          void Byte_Write(uchar DPH,DPL,DATA)
 145          {
 146   1         // EA=0;
 147   1              Wren_25045();
 148   1              STAR_25045();
 149   1              //cs_dog=0;
 150   1              if(DPH&0x01)   {Byte_in(WRITE|0x08);}
 151   1              else {Byte_in(WRITE);  }
 152   1              Byte_in(DPL);
 153   1              Byte_in(DATA);
 154   1              //sck_dog=0;
 155   1              cs_dog=1;
 156   1              WIP_POLL();
 157   1              //EA=1;
 158   1      }
 159          /*************************************************************************
 160          *           函数原型:uchar Byte_Read(uchar DPH,DPL)
 161          *           参    数:DPH读地址高位,DPL读地址低位。
 162          *           返 回 值:DATA。
 163          **************************************************************************/
 164          uchar Byte_Read(uchar DPH,DPL)
 165          {
 166   1          uchar DATA;
 167   1         // EA=0;
 168   1              STAR_25045();
 169   1              //cs_dog=0;
 170   1              if(DPH&0x01)   {Byte_in(READ|0x08);}
 171   1              else{ Byte_in(READ);}
 172   1              Byte_in(DPL);
 173   1              DATA=Byte_out();
 174   1              //sck_dog=0;
 175   1              //NOP;
 176   1              // NOP;
 177   1               //NOP;
 178   1              //cs_dog=1;
 179   1              //WIP_POLL();
C51 COMPILER V7.07   X5045                                                                 06/10/2005 08:13:56 PAGE 4   

 180   1              //EA=1;
 181   1              return(DATA);
 182   1      }
 183          /*************************************************************************
 184          *           函数原型:void   WRSR_25045()
 185          *           功    能:写看门狗寄存器。
 186          *           返 回 值:无。
 187          *           备    注:看门狗超时周期1.4秒。
 188          **************************************************************************/
 189          void WRSR_25045()
 190          {
 191   1              Wren_25045();
 192   1              STAR_25045();
 193   1              Byte_in(WRSR);
 194   1              Byte_in(WD1_4S);//write status register value
 195   1              //sck_dog=0;
 196   1              cs_dog=1;
 197   1              WIP_POLL();
 198   1      }
 199          void REST_DOG()
 200          {
 201   1              cs_dog=0;
 202   1              NOP;
 203   1                NOP;
 204   1                NOP;  
 205   1               cs_dog=1;
 206   1      }
 207          /*main()
 208          {
 209                  WRSR_25045();
 210                  while(1)
 211                          {
 212                                  cs_dog=1;
 213                                  delay_ms(220);
 214                                  _nop_();
 215                                  cs_dog=0;
 216                          }
 217          }*/


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    193    ----
   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 + -