📄 flash128.lst
字号:
C51 COMPILER V9.00 FLASH128 02/08/2010 20:58:32 PAGE 1
C51 COMPILER V9.00, COMPILATION OF MODULE FLASH128
OBJECT MODULE PLACED IN flash128.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE flash128.c LARGE BROWSE INCDIR(..\uip1.0\apps;..\uip1.0\uip;..\cp2200;..\cp
-2200;..\uip1.0\apps\dhcpc;..\uip1.0\apps\httpd) DEBUG OBJECTEXTEND
line level source
1 #include "FLASH128.h"
2 #include "C8051f020.h"
3
4 /*****************flash写******************************************/
5
6
7 void flash_write(unsigned int dest,unsigned char *src,bit SFLE)
8 {
9 1 unsigned short i,num=128;
10 1
11 1
12 1 if(SFLE)
13 1 {
14 2 num = 128;
15 2 }
16 1 for(i=dest;i<dest+num;i++)
17 1 {
18 2 flash_Bytewrite(i,*src++,SFLE);
19 2 }
20 1 }
21
22 /*****************flash读******************************************/
23 void flash_read(unsigned int dest,unsigned char *src,bit SFLE)
24 {
25 1 unsigned short i,num=38;
26 1 if(SFLE)
27 1 {
28 2 num=38; /*14+21+3字节*/
29 2 }
30 1 for(i=dest;i<dest+num;i++)
31 1 {
32 2 *src++ = flash_Byteread(i,SFLE);
33 2 }
34 1 }
35 /*****************flash页擦除*****************************************/
36 void flash_Pageerase(unsigned int addr,bit SFLE)
37 {
38 1 bit EA_SAVE = EA;
39 1 char xdata * data pwrite;
40 1
41 1 EA = 0;
42 1 pwrite = (char xdata *)addr;
43 1
44 1 FLSCL |= 0x01;
45 1 PSCTL |= 0x03;
46 1 if(SFLE)
47 1 {
48 2 PSCTL |= 0x04;
49 2 }
50 1
51 1 *pwrite = 0x00;
52 1
53 1 if(SFLE)
54 1 {
C51 COMPILER V9.00 FLASH128 02/08/2010 20:58:32 PAGE 2
55 2 PSCTL &= ~(0x04);
56 2 }
57 1
58 1 PSCTL &= ~(0x03);
59 1 FLSCL &= ~(0x01);
60 1
61 1 EA = EA_SAVE;
62 1 }
63
64 /*****************flash字节写***************************************/
65
66 void flash_Bytewrite(unsigned int addr,char byte,bit SFLE)
67 {
68 1 bit EA_SAVE = EA;
69 1
70 1 char xdata * data pwrite;
71 1
72 1 EA = 0;
73 1
74 1 pwrite = (char xdata *)addr;
75 1
76 1 FLSCL |= 0x01; //允许FLASH写
77 1 PSCTL |= 0x01; //允许写FLASH存储器
78 1
79 1 if(SFLE)
80 1 {
81 2 PSCTL |= 0x04; //访问128字节临时存储器扇区
82 2 }
83 1
84 1 *pwrite = byte;
85 1
86 1 if(SFLE)
87 1 {
88 2 PSCTL &= ~(0x04);
89 2 }
90 1
91 1 PSCTL &= ~(0x01);
92 1 FLSCL &= ~(0x01);
93 1
94 1
95 1 EA = EA_SAVE;
96 1 }
97
98 /*****************flash字节读**************************************/
99 unsigned char flash_Byteread(unsigned int addr,bit SFLE)
100 {
101 1 bit EA_SAVE = EA;
102 1
103 1 char code * data pread;
104 1 unsigned char byte;
105 1
106 1 EA = 0;
107 1 pread = (char code *)addr;
108 1
109 1 if(SFLE)
110 1 {
111 2 PSCTL |= 0x04;
112 2 }
113 1
114 1 byte = *pread;
115 1
116 1 if(SFLE)
C51 COMPILER V9.00 FLASH128 02/08/2010 20:58:32 PAGE 3
117 1 {
118 2 PSCTL &= ~(0x04);
119 2 }
120 1 EA = EA_SAVE;
121 1
122 1 return byte;
123 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 392 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- 18
PDATA SIZE = ---- ----
DATA SIZE = ---- 6
IDATA SIZE = ---- ----
BIT SIZE = ---- 8
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -