📄 fram.lst
字号:
C51 COMPILER V6.12 FRAM 01/10/2005 07:10:30 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE FRAM
OBJECT MODULE PLACED IN D:\TEST\FRAM.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE D:\TEST\FRAM.C DB SB OE
stmt level source
1 #include "P89C60X2.h"
2 #include "hicj6.h"
3 #include "fram.h"
4
5 /* here is the instrution of x25045*/
6 #define WREN 0x06
7 #define WRDI 0x04
8 #define RDSR 0x05
9 #define WRSR 0x01
10 #define READ 0x03
11 #define WRITE 0x02
12 extern union hdd_long {BYTE Hdd_B[4];unsigned long Hdd_L;} Hdd_Str;
13
14 unsigned char Read8()
15 {
16 1 bit bData;
17 1 BYTE cLoop;
18 1 BYTE cData;
19 1 for(cLoop=0;cLoop<8;cLoop++)
20 1 {
21 2 SK=1;
22 2 SK=0;
23 2 SIO=1;
24 2 bData=SIO;
25 2 cData<<=1;
26 2 if(bData)
27 2 {
28 3 cData|=0x01;
29 3 }
30 2 }
31 1 return cData;
32 1 }
33
34 void Write8(BYTE cData)
35 {
36 1 BYTE cLoop;
37 1 for(cLoop=0;cLoop<8;cLoop++)
38 1 {
39 2 if((cData&0x80)==0) SIO=0;
40 2 else SIO=1;
41 2 SK=0;
42 2 SK=1;
43 2 cData<<=1;
44 2 }
45 1 SIO=1;
46 1 }
47
48 BYTE ReadSR()
49 {
50 1 BYTE cData;
51 1 CS=0;
52 1 Write8(RDSR);
53 1 cData=Read8();
54 1 CS=1;
55 1 return cData;
C51 COMPILER V6.12 FRAM 01/10/2005 07:10:30 PAGE 2
56 1 }
57 /*
58 BYTE WriteSR(BYTE cData)
59 {
60 BYTE cTemp;
61 cTemp=ReadSR();
62 if((cTemp&0x01)==1)
63 return 0;
64 CS=0;
65 Write8(WREN);
66 CS=1;
67 CS=0;
68 Write8(WRSR);
69 Write8(cData);
70 CS=1;
71 return 1;
72 }
73 */
74
75 #ifdef Fm25040
BYTE Read1B(WORD cAddress)
/* 读入一个字节,cAddress为读入地址 */
{
BYTE cData,a;
EA=0;
while((ReadSR()&0x01)==1)
{}
CS=0;
short_delay();
if(cAddress<0x100)
{
a=READ;
}
else
{
a=READ|0x08;
}
Write8(a);
a=cAddress;
Write8(a);
cData=Read8();
CS=1;
EA=1;
return cData;
}
void Write1B(BYTE cData,WORD cAddress)
/* 写入一个字节,cData为写入的数,cAddress为写入地址 */
{
BYTE a;
EA=0;
while((ReadSR()&0x01)==1)
{}
CS=0;
short_delay();
Write8(WREN);
SK=0;
CS=1;
CS=0;
if(cAddress<0x100)
{
a=WRITE;
C51 COMPILER V6.12 FRAM 01/10/2005 07:10:30 PAGE 3
}
else
{
a=WRITE|0x08;
}
Write8(a);
a=cAddress;
Write8(a);
Write8(cData);
SK=0;
CS=1;
EA=1;
}
#endif
132
133 #ifdef Fm25640
134 BYTE Read1B(WORD cAddress)
135 /* 读入一个字节,cAddress为读入地址 */
136 {
137 1 BYTE cData,a;
138 1 EA=0;
139 1 while((ReadSR()&0x01)==1)
140 1 {}
141 1 CS=0;
142 1 short_delay();
143 1 Write8(READ);
144 1 a=cAddress>>8;
145 1 Write8(a);
146 1 a=cAddress;
147 1 Write8(a);
148 1 cData=Read8();
149 1 CS=1;
150 1 EA=1;
151 1 return cData;
152 1 }
153
154 void Write1B(BYTE cData,WORD cAddress)
155 /* 写入一个字节,cData为写入的数,cAddress为写入地址 */
156 {
157 1 BYTE a;
158 1 EA=0;
159 1 while((ReadSR()&0x01)==1)
160 1 {}
161 1 CS=0;
162 1 short_delay();
163 1 Write8(WREN);
164 1 SK=0;
165 1 CS=1;
166 1 CS=0;
167 1
168 1 Write8(WRITE);
169 1
170 1 a=cAddress>>8;
171 1 Write8(a);
172 1 a=cAddress;
173 1 Write8(a);
174 1 Write8(cData);
175 1 SK=0;
176 1 CS=1;
177 1 EA=1;
178 1 }
179
C51 COMPILER V6.12 FRAM 01/10/2005 07:10:30 PAGE 4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -