📄 stc_eep.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 + -