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

📄 ispiap.lst

📁 philip RTC 芯片的驱动程序 8563
💻 LST
📖 第 1 页 / 共 2 页
字号:
 127                  #define DEBUG_Data_Memory_Begin_Sector_addr     0x8000
 128                  #define DEBUG_Data_Memory_End_Sector_addr       0xf600
 129                  #define DEBUG_Data_Memory_End_Byte_addr         0xf7ff
 130          #endif
 131          #ifdef DEBUG_STC89C_LE54RD                        //STC89C54RD+,        89LE54RD+
 132                  #define DEBUG_AP_Memory_Begin_Sector_addr               0x0000
 133                  #define DEBUG_AP_Memory_End_Sector_addr         0x3e00
 134                  #define DEBUG_AP_Memory_End_Byte_addr           0x3fff
 135          
 136                  #define DEBUG_Data_Memory_Begin_Sector_addr     0x4000
 137                  #define DEBUG_Data_Memory_End_Sector_addr       0xbe00
 138                  #define DEBUG_Data_Memory_End_Byte_addr         0xbfff
 139          
 140          //        #define DEBUG_Data_Memory_End_Sector_addr             0xf600
 141          //        #define DEBUG_Data_Memory_End_Byte_addr               0xf7ff
 142          #endif
 143          
 144          #ifdef DEBUG_STC89C_LE53RC                        //STC89C53RC,        89LE53RC
 145                  #define DEBUG_AP_Memory_Begin_Sector_addr               0x0000
 146                  #define DEBUG_AP_Memory_End_Sector_addr                 0x3600
 147                  #define DEBUG_AP_Memory_End_Byte_addr                   0x37ff
 148          #endif
 149          
 150          #ifdef DEBUG_STC89C_LE52RC                        //STC89C52RC,        89LE52RC
 151                  #define DEBUG_AP_Memory_Begin_Sector_addr               0x0000
 152                  #define DEBUG_AP_Memory_End_Sector_addr                 0x1e00
 153                  #define DEBUG_AP_Memory_End_Byte_addr                   0x1fff
 154          
 155                  #define DEBUG_Data_Memory_Begin_Sector_addr             0x2000
 156                  #define DEBUG_Data_Memory_End_Sector_addr               0x2e00
 157                  #define DEBUG_Data_Memory_End_Byte_addr                 0x2fff
 158          
 159          //        #define DEBUG_Data_Memory_End_Sector_addr             0x3600
 160          //        #define DEBUG_Data_Memory_End_Byte_addr               0x37ff
 161          #endif
 162          #ifdef DEBUG_STC89C_LE51RC                        //STC89C51RC,        89LE51RC
 163                  #define DEBUG_AP_Memory_Begin_Sector_addr               0x0000
 164                  #define DEBUG_AP_Memory_End_Sector_addr                 0x0e00
 165                  #define DEBUG_AP_Memory_End_Byte_addr                   0x0fff
 166          
 167                  #define DEBUG_Data_Memory_Begin_Sector_addr             0x1000
 168                  #define DEBUG_Data_Memory_End_Sector_addr               0x1e00
 169                  #define DEBUG_Data_Memory_End_Byte_addr                 0x1fff
 170          
 171          //        #define DEBUG_Data_Memory_End_Sector_addr             0x3600
 172          //        #define DEBUG_Data_Memory_End_Byte_addr               0x37ff
 173          #endif
C51 COMPILER V7.50   ISPIAP                                                                10/18/2005 14:13:32 PAGE 4   

 174          */
 175          
 176          /* 打开 ISP,IAP 功能 */
 177          void ISP_IAP_enable(void)
 178          {
 179   1              EA      =       0;      /* 关中断 */
 180   1              ISP_CONTR       =       ISP_CONTR & 0x18;       /* 0001,1000 */
 181   1              ISP_CONTR       =       ISP_CONTR | WAIT_TIME;
 182   1              ISP_CONTR       =       ISP_CONTR | 0x80;       /* 1000,0000 */
 183   1      }
 184          
 185          /* 关闭 ISP,IAP 功能 */
 186          void ISP_IAP_disable(void)
 187          {
 188   1              ISP_CONTR       =       ISP_CONTR & 0x7f;       /* 0111,1111 */
 189   1              ISP_TRIG        =       0x00;
 190   1              EA                      =   1;                  /* 开中断 */
 191   1      }
 192          
 193          /* 字节读 */
 194          unsigned char byte_read(unsigned int byte_addr)
 195          {
 196   1              ISP_ADDRH       =       (unsigned char)(byte_addr >> 8);
 197   1              ISP_ADDRL       =       (unsigned char)(byte_addr & 0x00ff);
 198   1      
 199   1              ISP_CMD         =       ISP_CMD &       0xf8;        /* 1111,1000 */
 200   1              ISP_CMD         =       ISP_CMD |       READ_AP_and_Data_Memory_Command;        /* 0000,0001 */
 201   1      
 202   1              ISP_IAP_enable();
 203   1      
 204   1              ISP_TRIG        =       0x46;
 205   1              ISP_TRIG        =       0xb9;
 206   1              _nop_();
 207   1      
 208   1              ISP_IAP_disable();
 209   1              return (ISP_DATA);
 210   1      }
 211          
 212          /* 扇区擦除 */
 213          unsigned char sector_erase(unsigned int sector_addr)
 214          {
 215   1              unsigned int get_sector_addr    =       0;
 216   1              get_sector_addr                 =       (sector_addr & 0xfe00); /* 1111,1110,0000,0000; 取扇区地址 */
 217   1              ISP_ADDRH                       =       (unsigned char)(get_sector_addr >> 8);
 218   1              ISP_ADDRL                       =       0x00;
 219   1      
 220   1              ISP_CMD =       ISP_CMD &       0xf8;   /* 1111,1000 */
 221   1              ISP_CMD =       ISP_CMD |       SECTOR_ERASE_AP_and_Data_Memory_Command;        /* 0000,0011 */
 222   1      
 223   1              ISP_IAP_enable();
 224   1              ISP_TRIG        =       0x46;        /* 触发ISP_IAP命令 */
 225   1              ISP_TRIG        =       0xb9;        /* 触发ISP_IAP命令 */
 226   1               _nop_();
 227   1      
 228   1              ISP_IAP_disable();
 229   1              return OK;
 230   1      }
 231          
 232          /* 字节编程 */
 233          unsigned char byte_program(unsigned int byte_addr, unsigned char original_data)
 234          {
 235   1              ISP_ADDRH       =       (unsigned char)(byte_addr >> 8);
C51 COMPILER V7.50   ISPIAP                                                                10/18/2005 14:13:32 PAGE 5   

 236   1              ISP_ADDRL       =       (unsigned char)(byte_addr & 0x00ff);
 237   1      
 238   1              ISP_CMD         =       ISP_CMD &       0xf8;        /* 1111,1000 */
 239   1              ISP_CMD         =       ISP_CMD |       PROGRAM_AP_and_Data_Memory_Command;             /* 0000,0010 */
 240   1              ISP_DATA        =       original_data;
 241   1      
 242   1              ISP_IAP_enable();
 243   1              ISP_TRIG        =       0x46;        /* 触发ISP_IAP命令 */
 244   1              ISP_TRIG        =       0xb9;        /* 触发ISP_IAP命令 */
 245   1              _nop_();
 246   1      
 247   1              ISP_IAP_disable();
 248   1              return  OK;
 249   1      }
 250          
 251          


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