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

📄 x5045.lst

📁 stc89c58的c51测试程序
💻 LST
字号:
C51 COMPILER V7.50   X5045                                                                 09/13/2007 21:34:43 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE X5045
OBJECT MODULE PLACED IN x5045.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE x5045.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <regx51.h>
   2          #include "intrins.h"
   3          
   4          //void XOutByte(unsigned char val);
   5          //unsigned char XInByte(void);
   6          //void XWrEn(void);
   7          //unsigned char XRdStatus(void);
   8          //void XWrByte(unsigned int addr, unsigned char val);
   9          //void XWrWord(unsigned int addr, unsigned int val);
  10          //unsigned char XRdByte(unsigned int addr);
  11          //unsigned int XRdWord(unsigned int addr);
  12          //void ClrDog (void);
  13          //void XWrStatus(unsigned char val);
  14          
  15          #define uint unsigned int
  16          #define uchar unsigned char
  17          #define nop() _nop_();_nop_();
  18          
  19          //#ifndef X5045
  20          //sbit SI=P3^7;
  21          //sbit SCK=P3^6;
  22          //sbit SO=P3^5;
  23          //sbit CS=P3^4;
  24          //#endif
  25          
  26          //#define WREN 0x06
  27          //#define WRDI 0x04
  28          //#define RDSR 0x05
  29          //#define WRSR 0x01
  30          //#define READ 0x03     //0000 A8 0 1 1
  31          //#define WRITE 0x02    //0000 A8 0 1 0 
  32          
  33          //#define XSelect( )    SCK   = 0; CS    = 0 //WDT;打开X5045片选CS           
  34          //#define XDeselect( )          SCK    = 0; CS   = 1 //关闭X5045片选CS
  35          //#define XWrWait( )    while ( XRdStatus() & 0x01) //WIP=0 退出   等待X5045写入完成
  36          
  37          /*--------------------------------------
  38              X5045收发SPI协议
  39          --------------------------------------*/
  40          /*void XOutByte(unsigned char val)
  41          {
  42           unsigned char i = 8; 
  43           ACC=val;
  44           do{ 
  45            SCK=0;
  46            SI=(ACC&0x80);
  47            SCK=1;  //上升沿写入
  48           }while(--i!=0);
  49           SI=0;
  50          
  51          }
  52          
  53          unsigned char XInByte(void)
  54          { 
  55           unsigned char i = 8; 
C51 COMPILER V7.50   X5045                                                                 09/13/2007 21:34:43 PAGE 2   

  56           
  57           SO=1;
  58           do
  59           { SCK=1;
  60            SCK=0;//下降沿输出
  61            CY=SO;
  62            CY= ACC & 0X80;  //RLC A
  63           }while(--i!=0);
  64           
  65           return ACC;
  66          }*/
  67          
  68          
  69          /*--------------------------------------
  70              软件使能X5045写操作
  71          --------------------------------------*/  
  72          /*void XWrEn(void)    
  73          { 
  74            XSelect();//打开X5045片选
  75                 
  76            #ifdef WP
  77           WP = 1;//硬件使能X5045写操作
  78            #endif
  79            
  80            XOutByte(WREN);//发送使能X5045写命令
  81            XDeselect();//关闭X5045片选 
  82          }*/
  83          
  84          
  85          /*--------------------------------------
  86              读X5045状态
  87          --------------------------------------*/
  88          /*unsigned char XRdStatus(void)
  89          {
  90          unsigned char val;
  91            XSelect();//打开X5045片选
  92            XOutByte(RDSR);//发送读X5045状态命令
  93            val = XInByte();//接收X5045状态数据
  94            XDeselect();//关闭X5045片选
  95            return val;
  96          }*/
  97          
  98          /*--------------------------------------
  99              写X5045状态
 100          --------------------------------------*/
 101          /*void XWrStatus(unsigned char val)
 102          {
 103            XWrEn();
 104            XSelect();//打开X5045片选
 105            XOutByte(WRSR);//发送写X5045状态命令
 106            _nop_();
 107            XOutByte(val); //发送X5045状态数据
 108            XDeselect();//关闭X5045片选 
 109            XWrWait();    
 110          }       
 111                 
 112          /*--------------------------------------
 113              软件禁止X5045写操作
 114          void XWrDisable(void)
 115          {
 116            XSelect();//打开X5045片选
 117            XOutByte(WRDI);//发送禁止X5045写命令
C51 COMPILER V7.50   X5045                                                                 09/13/2007 21:34:43 PAGE 3   

 118            #ifdef WP
 119           WP = 0;//硬件禁止X5045写操作
 120            #endif
 121            XDeselect();//关闭X5045片选
 122          }
 123          --------------------------------------*/
 124          
 125                         
 126          /*--------------------------------------
 127              写X5045一个字节
 128          --------------------------------------*/
 129          /*void XWrByte(unsigned int addr, unsigned char val)
 130          {
 131          unsigned char temp;
 132            temp = WRITE;
 133            if ( ((unsigned char * )(&addr))[0] ) temp |= 8; //地址高8位有效时,发送A8 
 134            XWrEn();//使能X5045写操作
 135            XSelect();//打开X5045片选
 136            XOutByte(temp);//发送X5045写命令及高位地址
 137            _nop_();
 138            XOutByte(((unsigned char * )(&addr))[1]);//发送X5045写低位地址
 139            _nop_();
 140            XOutByte(val);//发送X5045写数据
 141            XDeselect();//关闭X5045片选
 142            XWrWait();//等待本次X5045写入完成
 143          }
 144          
 145          /*--------------------------------------
 146              写X5045一个字
 147          --------------------------------------*/
 148          //void XWrWord(unsigned int addr, unsigned int val)
 149          //{
 150          //unsigned char temp;
 151          //  temp = WRITE;
 152          //  if ( ((unsigned char * )(&addr))[0] ) temp |= 8; //地址高8位有效时,发送A8 
 153          //  XWrEn();//使能X5045写操作
 154          //  XSelect();//打开X5045片选
 155          //  XOutByte(temp);//发送X5045写命令及高位地址
 156          //  XOutByte(((unsigned char * )(&addr))[1]);//发送X5045写低位地址
 157          //  XOutByte(((unsigned char * )(&val))[1]);//发送X5045写低位数据
 158          //  XOutByte(((unsigned char * )(&val))[0]);//发送X5045写高位数据
 159          //  XDeselect();//关闭X5045片选
 160          //  XWrWait();//等待本次X5045写入完成
 161          //}
 162          
 163          /*--------------------------------------
 164              读X5045一个字节
 165          --------------------------------------*/
 166          /*unsigned char XRdByte(unsigned int addr)
 167          {
 168          unsigned char val;
 169            XSelect();//打开X5045片选
 170            val = READ;
 171            if ( ((unsigned char * )(&addr))[0] ) val |= 8; //地址高8位有效时,发送A8 
 172            XOutByte(val);//发送X5045读命令及高位地址
 173            _nop_();
 174            XOutByte(((unsigned char * )(&addr))[1]);//发送X5045低8位地址
 175            _nop_();
 176            val= XInByte();//接收X5045读数据
 177           // _nop_();
 178            XDeselect();//关闭X5045片选
 179            return( val );
C51 COMPILER V7.50   X5045                                                                 09/13/2007 21:34:43 PAGE 4   

 180          }
 181          
 182          /*--------------------------------------
 183              读X5045一个字
 184          --------------------------------------*/
 185          //unsigned int XRdWord(unsigned int addr)
 186          //{
 187          //unsigned char val;
 188          //  XSelect();//打开X5045片选
 189          //  val = READ;
 190          //  if ( ((unsigned char * )(&addr))[0] ) val |= 8; //地址高8位有效时,发送A8 
 191          //  XOutByte(val);//发送X5045读命令及高位地址
 192          //  XOutByte(addr & 0xff);//发送X5045读低位地址
 193          //  val = XInByte();//接收X5045读低位数据
 194          //  addr = XInByte();//接收X5045读高位数据
 195          //  XDeselect();//关闭X5045片选
 196          //  addr <<= 8;
 197          //  addr |= val;
 198          // return addr;
 199          //}
 200          
 201          
 202          /*--------------------------------------
 203             清除x5045 WDT
 204          --------------------------------------*/
 205          /*void ClrDog (void)
 206          {
 207           CS=0;
 208           _nop_();
 209           CS=1;
 210          }*/
 211          
 212          


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