?? flash.lst
字號(hào):
C51 COMPILER V7.02b FLASH 03/06/2006 15:41:23 PAGE 1
C51 COMPILER V7.02b, COMPILATION OF MODULE FLASH
OBJECT MODULE PLACED IN .\output\flash.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE flash.c LARGE BROWSE DEBUG OBJECTEXTEND TABS(3) OBJECT(.\output\flash.obj)
stmt level source
1 /************************************************************************************
2 * Copyright (c) 2004,西安銘朗電子科技有限責(zé)任公司
3 * All rights reserved.
4 *
5 * 文件名稱(chēng): flash.C
6 * 文件標(biāo)識(shí): none
7 * 適用器件: w29c020
8 *
9 * 摘 要: 本文件是字庫(kù)(GB2312)讀寫(xiě)子程序;使用外部22.1184MHz晶振.
10 *
11 * 當(dāng)前版本:1.2
12 * 作 者:張寧強(qiáng)
13 * 完成日期:2006年1月10日
14 *
15 * 歷史版本:1.0
16 * 原作者 : 李林利 盧陽(yáng)
17 * 完成日期:2005年6月1日
18 *************************************************************************************/
19
20 /************************************************************************************/
21 // 引用外部頭文件
22
23 #include "c8051f040.h"
24 #include "flash.h"
25 #include "delay.h"
26
27 /************************************************************************************/
28
29 /************************************************************************************
30 * 函數(shù)名稱(chēng):flash_write_protect;
31 *
32 * 函數(shù)功能描述:Flash寫(xiě)保護(hù)函數(shù);1:打開(kāi)保護(hù)進(jìn)行讀寫(xiě),0:進(jìn)入保護(hù)狀態(tài)模式;
33 *
34 * 輸入?yún)?shù):Flash寫(xiě)保護(hù)開(kāi)關(guān);
35 *
36 * 返回?cái)?shù)據(jù):none;
37 *
38 * 注意: none;
39 ************************************************************************************/
40
41 void flash_write_protect(bool flag)
42 {
43 1 unsigned char xdata *ad;
44 1 char data SFRPAGE_SAVE = SFRPAGE; // Save Current SFR page
45 1 SFRPAGE = SFR_PAGE_F; // set SFR page F
46 1
47 1 if(flag==0)
48 1 {
49 2 P4&=0xf5;
50 2 P4|=0x05;
51 2 ad=0xd555;
52 2 *ad=0xaa;
53 2
54 2 P4&=0xf2;
55 2 P4|=0x02;
C51 COMPILER V7.02b FLASH 03/06/2006 15:41:23 PAGE 2
56 2 ad=0xeaaa;
57 2 *ad=0x55;
58 2
59 2 P4&=0xf5;
60 2 P4|=0x05;
61 2 ad=0xd555;
62 2 *ad=0x80;
63 2
64 2 P4&=0xf5;
65 2 P4|=0x05;
66 2 ad=0xd555;
67 2 *ad=0xaa;
68 2
69 2 P4&=0xf2;
70 2 P4|=0x02;
71 2 ad=0xeaaa;
72 2 *ad=0x55;
73 2
74 2 P4&=0xf5;
75 2 P4|=0x05;
76 2 ad=0xd555;
77 2 *ad=0x20;
78 2
79 2 Delay_ms(10);
80 2 }
81 1 else
82 1 {
83 2 P4&=0xf5;
84 2 P4|=0x05;
85 2 ad=0xd555;
86 2 *ad=0xaa;
87 2
88 2 P4&=0xf2;
89 2 P4|=0x02;
90 2 ad=0xeaaa;
91 2 *ad=0x55;
92 2
93 2 P4&=0xf5;
94 2 P4|=0x05;
95 2 ad=0xd555;
96 2 *ad=0xa0;
97 2 }
98 1 SFRPAGE = SFRPAGE_SAVE; // Restore SFR page
99 1 }
100
101 /***********************************************************************************
102 * 函數(shù)名稱(chēng):flash_chip_erase;
103 *
104 * 函數(shù)功能描述:Flash芯片擦除程序;
105 *
106 * 輸入?yún)?shù):none;
107 *
108 * 返回?cái)?shù)據(jù):none;
109 *
110 * 注意: none;
111 ************************************************************************************/
112
113 void flash_chip_erase(void)
114 {
115 1 unsigned char xdata *ad;
116 1 char data SFRPAGE_SAVE = SFRPAGE; // Save Current SFR page
117 1 SFRPAGE = SFR_PAGE_F; // set SFR page F
C51 COMPILER V7.02b FLASH 03/06/2006 15:41:23 PAGE 3
118 1
119 1 P4&=0xf5;
120 1 P4|=0x05;
121 1 ad=0xd555;
122 1 *ad=0xaa;
123 1
124 1 P4&=0xf2;
125 1 P4|=0x02;
126 1 ad=0xeaaa;
127 1 *ad=0x55;
128 1
129 1 P4&=0xf5;
130 1 P4|=0x05;
131 1 ad=0xd555;
132 1 *ad=0x80;
133 1
134 1 P4&=0xf5;
135 1 P4|=0x05;
136 1 ad=0xd555;
137 1 *ad=0xaa;
138 1
139 1 P4&=0xf2;
140 1 P4|=0x02;
141 1 ad=0xeaaa;
142 1 *ad=0x55;
143 1
144 1 P4&=0xf5;
145 1 P4|=0x05;
146 1 ad=0xd555;
147 1 *ad=0x10;
148 1
149 1 Delay_ms(50);
150 1 SFRPAGE = SFRPAGE_SAVE; // Restore SFR page
151 1 }
152
153
154 /***********************************************************************************
155 * 函數(shù)名稱(chēng):flash_write_byte;
156 *
157 * 函數(shù)功能描述:Flash寫(xiě)入字節(jié)函數(shù)程序;
158 *
159 * 輸入?yún)?shù):unsigned long類(lèi)型地址,unsigned char類(lèi)型數(shù)據(jù);
160 *
161 * 返回?cái)?shù)據(jù):none;
162 *
163 * 注意: none;
164 ************************************************************************************/
165
166 void flash_write_byte(unsigned long address, unsigned char dat)
167 {
168 1 unsigned char xdata *x;
169 1 unsigned int temp;
170 1 unsigned char sec;
171 1 char data SFRPAGE_SAVE = SFRPAGE; // Save Current SFR page
172 1 SFRPAGE = SFR_PAGE_F; // set SFR page F
173 1 temp=address|0xc000;
174 1 sec=address>>14;
175 1 P4=sec;
176 1 x=temp;
177 1 *x=dat;
178 1 SFRPAGE = SFRPAGE_SAVE; // Restore SFR page
179 1 }
C51 COMPILER V7.02b FLASH 03/06/2006 15:41:23 PAGE 4
180
181 /***********************************************************************************
182 * 函數(shù)名稱(chēng):flash_write_byte_save;
183 *
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -