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

📄 stc_eep.lst

📁 51单片机驱动2相步进电机程序。 keil 开发软件。
💻 LST
字号:
C51 COMPILER V8.15   STC_EEP                                                               11/08/2008 21:01:35 PAGE 1   


C51 COMPILER V8.15, COMPILATION OF MODULE STC_EEP
OBJECT MODULE PLACED IN .\OBJ\STC_EEP.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE SRC\STC_EEP.c BROWSE DEBUG OBJECTEXTEND PRINT(.\LST\STC_EEP.lst) OBJECT(.\O
                    -BJ\STC_EEP.obj)

line level    source

   1          #include  "config.h" 
   2           
   3          /*
   4          STC12C2052AD:
   5          1扇区: 1000H-11FFH       2扇区: 1200H-13FFH
   6          
   7          STC12C5410AD:
   8          1扇区: 2800H-29FFH       2扇区: 2A00H-2BFFH
   9          3扇区: 2C00H-2DFFH       4扇区: 2E00H-2FFFH
  10          
  11          STC89C51RC:
  12          1扇区: 2000H-21FFH      2扇区: 2200H-23FFH      3扇区: 2400H-25FFH       4扇区: 2600H-27FFH 
  13          5扇区: 2800H-29FFH      6扇区: 2A00H-2BFFH      7扇区: 2C00H-2DFFH       8扇区: 2F00H-2FFFH 
  14          
  15          STC89C52RC:
  16          1扇区: 2000H-21FFH      2扇区: 2200H-23FFH      3扇区: 2400H-25FFH       4扇区: 2600H-27FFH 
  17          5扇区: 2800H-29FFH      6扇区: 2A00H-2BFFH      7扇区: 2C00H-2DFFH       8扇区: 2F00H-2FFFH 
  18          */
  19          //typedef unsigned char uint8;
  20          //typedef unsigned int  uint16;
  21          //typedef unsigned long uint32;
  22          
  23          uint16 xdata FLASH_ADDRESS=0x2800;    //STC12C2052 1000 EEPROM 测试起始地址
  24           
  25          /*******************************************************************************/
  26          //-----------------------延时大约10ms---------------------------------------  
  27          void Delay_ms(uint16  delay)          //带参数延时(delay=10,大约10ms,24MHz,1CLK)
  28          {    
  29   1              uint16  i;
  30   1           for (; delay>0; delay--)  
  31   1              for (i=0;i<10;i++);    
  32   1      }
  33          /*******************************************************************************/
  34          //------------------------IAP操作--------------------------------------------  
  35          void Do_IAP()                     //IAP操作
  36          {   
  37   1              ISP_CONTR=0x82;               //打开 IAP 功能, 设置 Flash 操作等待时间
  38   1          ISP_ADDRH=FLASH_ADDRESS/0x100;//起始地址
  39   1          ISP_ADDRL=FLASH_ADDRESS%0x100;    
  40   1              ISP_TRIG=0x46;                //先送46h,再送B9h 到ISP/IAP 触发寄存器
  41   1          ISP_TRIG=0xb9;                //送完B9h 后,ISP/IAP 命令立即被触发起动
  42   1              ISP_CONTR=0;                  //关闭 IAP 功能
  43   1          ISP_CMD=0;                    //清命令寄存器,使命令寄存器无命令,此句可不用
  44   1          ISP_TRIG=0;                   //清命令触发寄存器,使命令触发寄存器无触发,此
  45   1      } 
  46          /*******************************************************************************/ 
  47          //------------------------- 字节读--------------------------------------------
  48           
  49          void Byte_Read()
  50          {   
  51   1              ISP_CMD=0x1;                  //设置为IAP/ISP/EEPROM 字节读模式命令
  52   1          Do_IAP();                     //IAP操作
  53   1      }
  54          /*******************************************************************************/ 
C51 COMPILER V8.15   STC_EEP                                                               11/08/2008 21:01:35 PAGE 2   

  55          //-------------------------字节编程-------------------------------------------- 
  56          void Byte_Program()
  57          {   
  58   1              ISP_CMD=0x02;                 //设置为IAP/ISP/EEPROM 字节编程模式命令
  59   1          //ISP_DATA=DEBUG_DATA;        //待编程的数据先送进ISP_DATA 寄存器
  60   1          Do_IAP();                     //IAP操作
  61   1      }
  62          /*******************************************************************************/ 
  63          //-------------------------擦除扇区 ----------------------------------------- 
  64          void Sector_Erase()
  65          {   ISP_CMD=0x03;                  //设置为IAP/ISP/EEPROM 扇区擦除模式命令
  66   1          Do_IAP();                      //IAP操作
  67   1      }
  68          /*******************************************************************************/
  69          //-------------------------读addx地址起的num哥数值到地址*p-------------------  
  70          //void Read_eep_all(uint16 addx,uint8 num,uint8 *p) 
  71          //{ 
  72          //      uint8 xdata i=0; 
  73          //      FLASH_ADDRESS=addx; 
  74          //        for(i=0;i<num;i++)
  75          //          {
  76          //            
  77          //            Byte_Read();
  78          //            *p=ISP_DATA;
  79          //            Delay_ms(1);
  80          //            FLASH_ADDRESS=FLASH_ADDRESS+1;
  81          //            p++; 
  82          //              }  
  83          //}
  84          /*******************************************************************************/
  85          //--------------------------读一个地址的数值------------------------------------ 
  86          uint8 Read_eep_Byte(uint16 X)
  87          { 
  88   1              uint8 DD;  
  89   1              FLASH_ADDRESS = X; 
  90   1              Byte_Read();
  91   1              DD = ISP_DATA;
  92   1              Delay_ms(1); 
  93   1              return (DD);
  94   1      }
  95          /********************************************************************************/
  96          //void write_eep_all(uint16 addx,uint8 num,uint8 *p)  
  97          //{
  98          //      uint8 xdata i=0; 
  99          //      FLASH_ADDRESS=addx;     //存入EEPROM
 100          //      Sector_Erase();
 101          //      Delay_ms(10);
 102          //      for(i=0;i<num;i++)
 103          //         {
 104          //                      ISP_DATA=*p;
 105          //              Byte_Program();
 106          //              Delay_ms(1);
 107          //              FLASH_ADDRESS=FLASH_ADDRESS+1;      
 108          //              p++; 
 109          //              }
 110          //} 
 111          /*******************************************************************************/
 112          void write_eep_Byte(uint16 X,uint8 p) 
 113          {
 114   1              uint8 xdata i=0; 
 115   1              FLASH_ADDRESS=X;     //存入EEPROM
 116   1              Sector_Erase();
C51 COMPILER V8.15   STC_EEP                                                               11/08/2008 21:01:35 PAGE 3   

 117   1              Delay_ms(10);
 118   1               
 119   1              ISP_DATA=p;
 120   1              Byte_Program();
 121   1              Delay_ms(1);  
 122   1      }
 123          
 124          
 125          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    141    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =      2       1
   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 + -