?? flash_rw.lst
字號:
C51 COMPILER V7.50 FLASH_RW 01/15/2006 18:33:17 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE FLASH_RW
OBJECT MODULE PLACED IN Flash_RW.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE Flash_RW.C LARGE ROM(COMPACT)
line level source
1 #include "AT89C51SND1_REG.H"
2 #include "Flash_RW.H"
3 #include "MCU_UART.H"
4
5
6 void Flash_Reset()
7 {
8 1 K9F_FUN = COMMAND;
9 1 K9F5608 = 0xff;
10 1 K9F_FUN = INACTIVE;
11 1 }
12
13 void ReadFlashID(unsigned char *MID,unsigned char *DID)
14 {
15 1 K9F_FUN = COMMAND;
16 1 K9F5608 = 0x90;
17 1 K9F_FUN = ADDRESS;
18 1 K9F5608 = 0;
19 1 K9F_FUN = D_DATA;
20 1 *MID = K9F5608;
21 1 *DID = K9F5608;
22 1 K9F_FUN = INACTIVE;
23 1 }
24
25
26 void ReadPage(unsigned int BlockPage,unsigned char *PageBuf)
27 {
28 1 unsigned int data i;
29 1
30 1 K9F_FUN = COMMAND;
31 1 K9F5608 = 0x00;
32 1 K9F_FUN = ADDRESS;
33 1 K9F5608 = 0; //A0-A7
34 1 K9F5608 = BlockPage; //A9-A16
35 1 K9F5608 = BlockPage >> 8; //A17-A24
36 1 K9F_FUN = D_DATA;
37 1
38 1 i = 512;
39 1 while(!(K9F_FUN & RB));
40 1
41 1 while(i--)
42 1 *PageBuf++ = K9F5608;
43 1 K9F_FUN = INACTIVE;
44 1 }
45
46
47
48 void BlockErase(unsigned int BlockPage)
49 {
50 1 K9F_FUN = COMMAND;
51 1 K9F5608 = 0x60;
52 1 K9F_FUN = ADDRESS;
53 1 K9F5608 = BlockPage;
54 1 K9F5608 = BlockPage >> 8;
55 1 K9F_FUN = COMMAND;
C51 COMPILER V7.50 FLASH_RW 01/15/2006 18:33:17 PAGE 2
56 1 K9F5608 = 0xd0;
57 1 K9F_FUN = D_DATA;
58 1 while(!(K9F_FUN & RB));
59 1 K9F_FUN = INACTIVE;
60 1 }
61
62 void WritePage(unsigned int BlockPage,unsigned char *PageBuf)
63 {
64 1 unsigned int data i;
65 1 K9F_FUN = COMMAND;
66 1 K9F5608 = 0x80;
67 1 K9F_FUN = ADDRESS;
68 1 K9F5608 = 0; //A0-A7
69 1 K9F5608 = BlockPage; //A9-A16
70 1 K9F5608 = BlockPage >> 8; //A17-A24
71 1 K9F_FUN = D_DATA;
72 1 i=512;
73 1 while(i--)
74 1 K9F5608 = *PageBuf++;
75 1 K9F_FUN = COMMAND;
76 1 K9F5608 = 0x10;
77 1 K9F_FUN = D_DATA;
78 1 while(!(K9F_FUN & RB));
79 1 K9F_FUN = INACTIVE;
80 1 }
81
82 void CopyBack(unsigned int S_BlockPage,unsigned int D_BlockPage)
83 {
84 1 K9F_FUN = COMMAND;
85 1 K9F5608 = 0x00;
86 1 K9F_FUN = ADDRESS;
87 1 K9F5608 = 0; //A0-A7
88 1 K9F5608 = S_BlockPage; //A9-A16
89 1 K9F5608 = S_BlockPage >> 8; //A17-A24
90 1 K9F_FUN = D_DATA;
91 1 while(!(K9F_FUN & RB));
92 1
93 1 K9F_FUN = COMMAND;
94 1 K9F5608 = 0x8a;
95 1 K9F_FUN = ADDRESS;
96 1 K9F5608 = 0; //A0-A7
97 1 K9F5608 = D_BlockPage; //A9-A16
98 1 K9F5608 = D_BlockPage >> 8; //A17-A24
99 1 K9F_FUN = D_DATA;
100 1 while(!(K9F_FUN & RB));
101 1 K9F_FUN = INACTIVE;
102 1 }
103
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 328 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- 12
PDATA SIZE = ---- ----
DATA SIZE = ---- 4
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 + -