📄 ispiap.lst
字号:
C51 COMPILER V7.50 ISPIAP 10/18/2005 14:13:32 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE ISPIAP
OBJECT MODULE PLACED IN ISPIAP.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ISPIAP.c DEBUG OBJECTEXTEND
line level source
1 /* --- STC International Limited ---------------- */
2 /* --- 宏晶科技 姚永平 设计 2004/9/11 V1.0 --- */
3 /* --- 宏晶科技 姚永平 设计 2004/12/4 V2.0 --- */
4 /* --- RD+/RC系列 Flash IAP/ISP Operation ----- */
5 /* --- STC89C54RD+, STC89C58RD+, STC89C516RD+ --- */
6 /* --- STC89LE54RD+,STC89LE58RD+,STC89LE516RD+ -- */
7 /* --- STC89C51RC, STC89C52RC, STC89C53RC ----- */
8 /* --- STC89LE51RC, STC89LE52RC, STC89LE53RC ---- */
9 /* --- Mobile: 13922805190 ---------------------- */
10 /* --- Fax: 0755-82944243 ----------------------- */
11 /* --- Tel: 0755-82908285 ----------------------- */
12 /* --- Web : www.mcu-memory.com ---------------- */
13 /* --- 感谢网友2004/12/3的指正,送样品以示感谢 --- */
14 #include <reg52.h>
15 #include <intrins.h> /* use _nop_() function */
16 //sfr16 DPTR = 0x82;
17
18 /* 新增特殊功能寄存器定义 */
19 sfr ISP_DATA = 0xe2; /* ISP_DATA DATA 0E2H; 汇编程序定义 or EQU */
20 sfr ISP_ADDRH = 0xe3; /* ISP_ADDRH DATA 0E3H; 汇编程序定义 */
21 sfr ISP_ADDRL = 0xe4; /* ISP_ADDRL DATA 0E4H; 汇编程序定义 */
22 sfr ISP_CMD = 0xe5; /* ISP_CMD DATA 0E5H; 汇编程序定义 */
23 sfr ISP_TRIG = 0xe6; /* ISP_TRIG DATA 0E6H; 汇编程序定义 */
24 sfr ISP_CONTR = 0xe7; /* ISP_CONTR DATA 0E7H; 汇编程序定义 */
25
26 /* SFR: ISP_DATA (ISP Flash Data Register): E2H ------------------------*/
27 /*--| b7 | b6 | b5 | b4 | b3 | b2 | b1 | b
-0 |---*/
28 /*--| Data to be written into flash, or Data got from flash |---*/
29
30 /* SFR: ISP_ADDRH (ISP Flash Address High): E3H --------------------*/
31 /*--| b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0
- |---*/
32 /*--| High byte of the address pointing to flash |---*/
33
34 /* SFR: ISP_ADDRL (ISP Flash Address Low): E4H --------------------*/
35 /*--| b7 | b6 | b5 | b4 | b3 | b2 | b1 | b
-0 |---*/
36 /*--| Low byte of the address pointing to flash |---*/
37
38 /* SFR: ISP_CMD (ISP Flash Mode Table): E5H --------------------*/
39 /*--| b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0
- |---*/
40 /*--| reserved | Mode Selection |---*/
41
42 /* SFR: ISP_TRIG (Sequential Command Data register for ISP): E6H ----*/
43 /*--| b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0
- |---*/
44 /*--| ISP-Command |---*/
45
46 /* SFR: ISP_CONTR (ISP Control register): E7H --------------------*/
47 /*--| b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0
- |---*/
48 /*--| ISPEN | SWBS | SWRST | - | - | WAIT |---*/
49 /*-- ISPEN: ISP function enabling bit ----------------*/
C51 COMPILER V7.50 ISPIAP 10/18/2005 14:13:32 PAGE 2
50 /*-- 0: Disable ISP program to change flash ----------------*/
51 /*-- 1: Enable ISP program to change flash ----------------*/
52 /*-- SWBS: Secondary Booting program selecting ----------------*/
53 /*-- 0: Boot from AP-Memory / Main-Memory ----------------*/
54 /*-- 1: Boot from ISP-Memory ----------------*/
55 /*-- SWRST: Software reset trigger ----------------*/
56 /*-- 0: No operation ----------------*/
57 /*-- 1: Generate software system reset. It will be cleared by hardware automatically ---*/
58
59 /* 定义命令 */
60 #define READ_AP_and_Data_Memory_Command 0x01 /* 字节读应用程序区和数据存储区 */
61 #define PROGRAM_AP_and_Data_Memory_Command 0x02 /* 字节编程应用程序区和数据存储区 */
62 #define SECTOR_ERASE_AP_and_Data_Memory_Command 0x03 /* 扇区擦除应用程序区和数据存储区 */
63
64 //typedef unsigned char unsigned char; /* 8 bit 无符号整型 */
65 //typedef unsigned int unsigned int; /* 16 bit 无符号整型 */
66 //#define DELAY_CONST 60000
67
68 /* 定义常量 */
69 #define ERROR 0
70 #define OK 1
71
72 //sbit Begin_LED = P1^0;
73 //sbit ERROR_LED = P1^3;
74 //sbit OK_LED = P1^7;
75
76 /* 定义Flash 操作等待时间 */
77
78 #define MCU_CLOCK_10MHz
79 //#define MCU_CLOCK_20MHz
80 //#define MCU_CLOCK_10MHz
81 //#define MCU_CLOCK_5MHz
82 #ifdef MCU_CLOCK_40MHz
#define WAIT_TIME 0x00
#endif
85 #ifdef MCU_CLOCK_20MHz
#define WAIT_TIME 0x01
#endif
88 #ifdef MCU_CLOCK_10MHz
89 #define WAIT_TIME 0x02
90 #endif
91 #ifdef MCU_CLOCK_5MHz
#define WAIT_TIME 0x03
#endif
94
95 /* 调试控制项 */
96 //#define DEBUG_STC89C_LE516RD+
97 //#define DEBUG_STC89C_LE58RD+
98 //#define DEBUG_STC89C_LE54RD+
99
100 //#define DEBUG_STC89C_LE53RC
101 //#define DEBUG_STC89C_LE52RC
102 //#define DEBUG_STC89C_LE51RC
103
104 //#define USED_BYTE_QTY_IN_ONE_SECTOR 1
105 //#define USED_BYTE_QTY_IN_ONE_SECTOR 2
106 //#define USED_BYTE_QTY_IN_ONE_SECTOR 4
107 //#define USED_BYTE_QTY_IN_ONE_SECTOR 8
108 //#define USED_BYTE_QTY_IN_ONE_SECTOR 16
109 //#define USED_BYTE_QTY_IN_ONE_SECTOR 32
110 //#define USED_BYTE_QTY_IN_ONE_SECTOR 64
111 //#define USED_BYTE_QTY_IN_ONE_SECTOR 128
C51 COMPILER V7.50 ISPIAP 10/18/2005 14:13:32 PAGE 3
112 //#define USED_BYTE_QTY_IN_ONE_SECTOR 256
113 //#define USED_BYTE_QTY_IN_ONE_SECTOR 512
114
115 //unsigned char xdata protect_buffer[USED_BYTE_QTY_IN_ONE_SECTOR];
116 /*
117 #ifdef DEBUG_STC89C_LE516RD+ //STC89C516RD+, 89LE516RD+
118 #define DEBUG_AP_Memory_Begin_Sector_addr 0x0000
119 #define DEBUG_AP_Memory_End_Sector_addr 0xf600
120 #define DEBUG_AP_Memory_End_Byte_addr 0xf7ff
121 #endif
122 #ifdef DEBUG_STC89C_LE58RD+ //STC89C58RD+, 89LE58RD+
123 #define DEBUG_AP_Memory_Begin_Sector_addr 0x0000
124 #define DEBUG_AP_Memory_End_Sector_addr 0x7e00
125 #define DEBUG_AP_Memory_End_Byte_addr 0x7fff
126
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -