📄 93c66.lst
字号:
C51 COMPILER V7.06 93C66 05/10/2008 14:08:33 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE 93C66
OBJECT MODULE PLACED IN 93c66.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE 93c66.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <AT89x52.h>
2 #include <intrins.h>
3
4 #define EE_SCK P0_1
5 #define EE_CS P0_0
6 #define EE_DI P0_2
7 #define EE_DO P0_3
8 #define uchar unsigned char
9 #define uint unsigned int
10 unsigned char E2PCounter;
11 unsigned int ReadTemp;
12 unsigned int WriteTemp;
13 unsigned char Addrbyte;
14 unsigned char Addrbit7;
15 unsigned char if_datachange;
16 void F_Delay100TCYx(unsigned char loopnum);
17 void F_Delay1KTCYx(unsigned char loopnum);
18 void F_Delay10KTCYx(unsigned char loopnum);
19 void EE_Write(unsigned char WriteAddr, int data16);
20 int EE_Read(unsigned char ReadAddr);
21 void EEClockHi(void); // 資料 1 , 並輸入 clock
22 void EEClockLo(void); // 資料 0 , 並輸入 clock
23 void EEROMClock(void);
24 void EECSClock(void); // CS => 0 -> delay -> 1
25 void WriteEEROMEnable(void);
26 void EEROMWrite_66_16(unsigned char addr, int Data);
27 int EEROMRead_66_16(unsigned char addr);
28 void F_SAVEEEPROM(void);
29 void F_InitValue_EEROM(void);
30 void F_Read_AllEEPROM(void);
31 void delayms(uint i);
32
33 //EE_Write
34 void EE_Write(unsigned char WriteAddr, int data16)
35 {EEROMWrite_66_16(WriteAddr, data16);
36 1 }
37
38 //EE_Read
39 int EE_Read(unsigned char ReadAddr)
40 {return EEROMRead_66_16(ReadAddr);
41 1 }
42 //-----------------------------------------------------------------------------
43 // EEROM 寫入初始化
44 //-----------------------------------------------------------------------------
45 void WriteEEROMEnable(void)
46 {//Start Bit: DI=1;
47 1 EECSClock();
48 1 EEClockHi();
49 1 //Write Enable: 0011xxxxx
50 1 EEClockLo();
51 1 EEClockLo();
52 1 EEClockHi();
53 1 EEClockHi(); //0011
54 1
55 1 EEClockLo();
C51 COMPILER V7.06 93C66 05/10/2008 14:08:33 PAGE 2
56 1 EEClockLo();
57 1 EEClockLo();
58 1 EEClockLo();
59 1 EEClockLo();
60 1 EEClockLo();
61 1 EEClockLo();
62 1 EECSClock();
63 1 }
64 //---------------------- EEROM Clock Hi -------------------
65 //*****************************************************************************
66 // EEROM Write for 93c66, (256 * 16 bit), 並做驗証, 是否save 成功
67 //*****************************************************************************
68 void EEROMWrite_66_16(unsigned char addr, int Data)
69 {
70 1 WriteTemp = Data;
71 1 Addrbyte = addr;
72 1 EECSClock();
73 1 EEClockHi();
74 1 EEClockLo();
75 1 EEClockHi();
76 1 //------ write addr -------
77 1 for(E2PCounter=0; E2PCounter<8; E2PCounter++) // addr is 8 bit
78 1 {
79 2 if(Addrbit7)
80 2 EEClockHi();
81 2 else
82 2 EEClockLo();
83 2 Addrbyte <<=1;
84 2 }
85 1 //------- Write DATA Hi -------
86 1 for(E2PCounter=0;E2PCounter<16;E2PCounter++) // data is 16 bit
87 1 {
88 2 if((WriteTemp & 0x8000)!= 0)
89 2 EEClockHi();
90 2 else
91 2 EEClockLo();
92 2 WriteTemp <<=1;
93 2 }
94 1 //------- Write DATA Lo -------
95 1 F_Delay100TCYx(100);
96 1 EECSClock();
97 1 F_Delay100TCYx(100); // 等待 8m sec, eerom 寫入資料
98 1 //-------------------------- 比對輸入及輸出資料是否正確
99 1 }
100
101 //*****************************************************************************
102 // EEROM Read for 93c66 , 每次 16 bit
103 //*****************************************************************************
104 int EEROMRead_66_16(unsigned char addr)
105 {
106 1 //uInt ReadTemp;
107 1 Addrbyte = addr;
108 1 EECSClock();
109 1 EEClockHi();
110 1 EEClockHi();
111 1 EEClockLo();
112 1 //------- Addr out ---------
113 1 for(E2PCounter =0; E2PCounter <8; E2PCounter++) // Addr 有8bit, 從 hi bit 到 lo bit
114 1 {
115 2 if(Addrbit7)
116 2 EEClockHi();
117 2 else
C51 COMPILER V7.06 93C66 05/10/2008 14:08:33 PAGE 3
118 2 EEClockLo();
119 2 Addrbyte <<=1;
120 2 }
121 1 //---------------- Data Read Hi -------------
122 1 for(E2PCounter =0; E2PCounter <16; E2PCounter++)
123 1 {
124 2 ReadTemp <<=1;
125 2 EE_SCK= 1; // Clock Hi
126 2 delayms(10000);
127 2 //F_Delay10u();
128 2
129 2 if(EE_DO) // 判別資料為 hi or lo
130 2 ReadTemp++;
131 2 EE_SCK = 0; // Clock Lo
132 2 }
133 1 //---------------- Data Read Lo -------------
134 1 return ReadTemp;
135 1 }
136 //---------------------- EEROM Clock Hi -------------------
137 void EEClockHi(void)
138 {
139 1 EE_DI = 1;
140 1 delayms(30);
141 1 EEROMClock();
142 1 }
143 //---------------------- EEROM Clock Lo -------------------
144 void EEClockLo(void)
145 {
146 1 EE_DI = 0;
147 1 delayms(30);
148 1 EEROMClock();
149 1 }
150 //---------------------- EEROM Clock --------------------
151 void EEROMClock(void)
152 {
153 1 EE_SCK = 1;
154 1 delayms(30);
155 1 EE_SCK = 0;
156 1 }
157 //------------------- EEROM CS Clock ---------------------
158 void EECSClock(void)
159 {
160 1 EE_CS = 0;
161 1 delayms(60);
162 1 EE_CS = 1;
163 1 }
164
165 void F_Delay100TCYx(unsigned char loopnum)
166 {delayms(loopnum);
167 1 }
168
169 void F_Delay1KTCYx(unsigned char loopnum)
170 {delayms(loopnum);
171 1 }
172
173 void F_Delay10KTCYx(unsigned char loopnum)
174 {delayms(loopnum);
175 1 }
176
177 void F_SAVEEEPROM(void)
178 {if(if_datachange==0)
179 1 return;
C51 COMPILER V7.06 93C66 05/10/2008 14:08:33 PAGE 4
180 1 if_datachange=0;
181 1 WriteEEROMEnable();
182 1 Nop();
*** WARNING C206 IN LINE 182 OF 93C66.C: 'Nop': missing function-prototype
183 1 if(if_mcusw==1)
*** ERROR C202 IN LINE 183 OF 93C66.C: 'if_mcusw': undefined identifier
184 1 {
185 2 if_mcusw=0;
*** ERROR C202 IN LINE 185 OF 93C66.C: 'if_mcusw': undefined identifier
186 2 EE_Write(ADDR_MCUSPD,speed.spd_mcu);
*** ERROR C202 IN LINE 186 OF 93C66.C: 'ADDR_MCUSPD': undefined identifier
187 2 Nop();
188 2 }
189 1 if(if_pulse1sw==1)
*** ERROR C202 IN LINE 189 OF 93C66.C: 'if_pulse1sw': undefined identifier
190 1 {
191 2 if_pulse1sw=0;
*** ERROR C202 IN LINE 191 OF 93C66.C: 'if_pulse1sw': undefined identifier
192 2 EE_Write(ADDR_PULSE1,pulse.data_pulse1);
*** ERROR C202 IN LINE 192 OF 93C66.C: 'ADDR_PULSE1': undefined identifier
193 2 Nop();
194 2 }
195 1 if(if_pulse2sw==1)
*** ERROR C202 IN LINE 195 OF 93C66.C: 'if_pulse2sw': undefined identifier
196 1 {
197 2 if_pulse2sw=0;
*** ERROR C202 IN LINE 197 OF 93C66.C: 'if_pulse2sw': undefined identifier
198 2 EE_Write(ADDR_PULSE2,pulse.data_pulse2);
*** ERROR C202 IN LINE 198 OF 93C66.C: 'ADDR_PULSE2': undefined identifier
199 2 Nop();
200 2 }
201 1 if(if_perpmsw==1)
*** ERROR C202 IN LINE 201 OF 93C66.C: 'if_perpmsw': undefined identifier
202 1 {
203 2 if_perpmsw=0;
*** ERROR C202 IN LINE 203 OF 93C66.C: 'if_perpmsw': undefined identifier
204 2 EE_Write(ADDR_RPM,speed.spd_rpm);
*** ERROR C202 IN LINE 204 OF 93C66.C: 'ADDR_RPM': undefined identifier
205 2 Nop();
206 2 }
207 1 if(if_raidsw==1)
*** ERROR C202 IN LINE 207 OF 93C66.C: 'if_raidsw': undefined identifier
208 1 {
209 2 if_raidsw=0;
*** ERROR C202 IN LINE 209 OF 93C66.C: 'if_raidsw': undefined identifier
210 2 EE_Write(ADDR_RAID,Raidtemp);
*** ERROR C202 IN LINE 210 OF 93C66.C: 'ADDR_RAID': undefined identifier
211 2 Nop();
212 2 }
213 1 if(if_maxI==1)
*** ERROR C202 IN LINE 213 OF 93C66.C: 'if_maxI': undefined identifier
214 1 {
215 2 if_maxI=0;
*** ERROR C202 IN LINE 215 OF 93C66.C: 'if_maxI': undefined identifier
216 2 EE_Write(ADDR_I,MAXDLtemp);
*** ERROR C202 IN LINE 216 OF 93C66.C: 'ADDR_I': undefined identifier
217 2 Nop();
218 2 }
219 1 EE_CS=0;
220 1 }
221
222 void F_InitValue_EEROM(void)
C51 COMPILER V7.06 93C66 05/10/2008 14:08:33 PAGE 5
223 {
224 1 EE_Write(Adr_Check,CheckEEROM2);
*** ERROR C202 IN LINE 224 OF 93C66.C: 'Adr_Check': undefined identifier
225 1 EE_Write(ADDR_PULSE1,75);
*** ERROR C202 IN LINE 225 OF 93C66.C: 'ADDR_PULSE1': undefined identifier
226 1 EE_Write(ADDR_PULSE2,70);
*** ERROR C202 IN LINE 226 OF 93C66.C: 'ADDR_PULSE2': undefined identifier
227 1 EE_Write(ADDR_MCUSPD,200);
*** ERROR C202 IN LINE 227 OF 93C66.C: 'ADDR_MCUSPD': undefined identifier
228 1 EE_Write(ADDR_RPM,8);
*** ERROR C202 IN LINE 228 OF 93C66.C: 'ADDR_RPM': undefined identifier
229 1 EE_Write(ADDR_RAID,248);
*** ERROR C202 IN LINE 229 OF 93C66.C: 'ADDR_RAID': undefined identifier
230 1 EE_Write(ADDR_I,700);
*** ERROR C202 IN LINE 230 OF 93C66.C: 'ADDR_I': undefined identifier
231 1 }
232
233
234 void F_Read_AllEEPROM(void)
235 {
236 1 pulse.data_pulse1=EE_Read(ADDR_PULSE1);
*** ERROR C202 IN LINE 236 OF 93C66.C: 'pulse': undefined identifier
237 1 Nop();
238 1 pulse.data_pulse2=EE_Read(ADDR_PULSE2);
*** ERROR C202 IN LINE 238 OF 93C66.C: 'pulse': undefined identifier
239 1 Nop();
240 1 speed.spd_mcu=EE_Read(ADDR_MCUSPD);
*** ERROR C202 IN LINE 240 OF 93C66.C: 'speed': undefined identifier
241 1 Nop();
242 1 speed.spd_rpm=EE_Read(ADDR_RPM);
*** ERROR C202 IN LINE 242 OF 93C66.C: 'speed': undefined identifier
243 1 Nop();
244 1 Raidtemp=EE_Read(ADDR_RAID);
*** ERROR C202 IN LINE 244 OF 93C66.C: 'Raidtemp': undefined identifier
245 1 Nop();
246 1 MAXDLtemp=EE_Read(ADDR_I);
*** ERROR C202 IN LINE 246 OF 93C66.C: 'MAXDLtemp': undefined identifier
247 1 }
C51 COMPILATION COMPLETE. 1 WARNING(S), 31 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -