📄 fm25040.lst
字号:
C51 COMPILER V6.12 FM25040 01/03/2005 12:08:21 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE FM25040
OBJECT MODULE PLACED IN D:\TEST\FM25040.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE D:\TEST\FM25040.C DB SB OE
stmt level source
1 #include "P89C60X2.h"
2 #include "hicj6.h"
3 #include "fm25040.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 READ0 0x03
11 #define READ1 0x0b
12 #define WRITE0 0x02
13 #define WRITE1 0x0a
14 extern union hdd_long {BYTE Hdd_B[4];unsigned long Hdd_L;} Hdd_Str;
15
16 unsigned char Read8()
17 {
18 1 bit bData;
19 1 BYTE cLoop;
20 1 BYTE cData;
21 1 for(cLoop=0;cLoop<8;cLoop++)
22 1 {
23 2 SK=1;
24 2 SK=0;
25 2 SIO=1;
26 2 bData=SIO;
27 2 cData<<=1;
28 2 if(bData)
29 2 {
30 3 cData|=0x01;
31 3 }
32 2 }
33 1 return cData;
34 1 }
35
36 void Write8(BYTE cData)
37 {
38 1 BYTE cLoop;
39 1 for(cLoop=0;cLoop<8;cLoop++)
40 1 {
41 2 if((cData&0x80)==0) SIO=0;
42 2 else SIO=1;
43 2 SK=0;
44 2 SK=1;
45 2 cData<<=1;
46 2 }
47 1 SIO=1;
48 1 }
49
50 BYTE ReadSR()
51 {
52 1 BYTE cData;
53 1 CS=0;
54 1 Write8(RDSR);
55 1 cData=Read8();
C51 COMPILER V6.12 FM25040 01/03/2005 12:08:21 PAGE 2
56 1 CS=1;
57 1 return cData;
58 1 }
59 /*
60 BYTE WriteSR(BYTE cData)
61 {
62 BYTE cTemp;
63 cTemp=ReadSR();
64 if((cTemp&0x01)==1)
65 return 0;
66 CS=0;
67 Write8(WREN);
68 CS=1;
69 CS=0;
70 Write8(WRSR);
71 Write8(cData);
72 CS=1;
73 return 1;
74 }
75 */
76 void Write1B(BYTE cData,BYTE cAddress,bit bRegion)
77 /* 写入一个字节,cData为写入的数,cAddress为写入地址,bRegion为页 */
78 {
79 1 EA=0;
80 1 while((ReadSR()&0x01)==1)
81 1 {}
82 1 CS=0;
83 1 short_delay();
84 1 Write8(WREN);
85 1 SK=0;
86 1 CS=1;
87 1 CS=0;
88 1 if(bRegion==0)
89 1 {
90 2 Write8(WRITE0);
91 2 }
92 1 else
93 1 {
94 2 Write8(WRITE1);
95 2 }
96 1 Write8(cAddress);
97 1 Write8(cData);
98 1 SK=0;
99 1 CS=1;
100 1 EA=1;
101 1 }
102
103 BYTE Read1B(BYTE cAddress,bit bRegion)
104 /* 读入一个字节,cAddress为读入地址,bRegion为页 */
105 {
106 1 BYTE cData;
107 1 EA=0;
108 1 while((ReadSR()&0x01)==1)
109 1 {}
110 1 CS=0;
111 1 short_delay();
112 1 if(bRegion==0)
113 1 {
114 2 Write8(READ0);
115 2 }
116 1 else
117 1 {
C51 COMPILER V6.12 FM25040 01/03/2005 12:08:21 PAGE 3
118 2 Write8(READ1);
119 2 }
120 1 Write8(cAddress);
121 1 cData=Read8();
122 1 CS=1;
123 1 EA=1;
124 1 return cData;
125 1 }
126
127 unsigned long Read_Hdd(unsigned char i)
128 {
129 1 i<<=2;
130 1 Hdd_Str.Hdd_B[0]=Read1B(i,0);
131 1 Hdd_Str.Hdd_B[1]=Read1B(i+1,0);
132 1 Hdd_Str.Hdd_B[2]=Read1B(i+2,0);
133 1 Hdd_Str.Hdd_B[3]=Read1B(i+3,0);
134 1 return Hdd_Str.Hdd_L;
135 1 }
136 void Write_Hdd(unsigned char i)
137 {
138 1 i<<=2;
139 1 Write1B(Hdd_Str.Hdd_B[0],i,0);
140 1 Write1B(Hdd_Str.Hdd_B[1],i+1,0);
141 1 Write1B(Hdd_Str.Hdd_B[2],i+2,0);
142 1 Write1B(Hdd_Str.Hdd_B[3],i+3,0);
143 1 }
144
C51 COMPILER V6.12 FM25040 01/03/2005 12:08:21 PAGE 4
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P0 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0080H 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -