📄 24lc16.lst
字号:
C51 COMPILER V7.10 24LC16 09/29/2005 20:22:08 PAGE 1
C51 COMPILER V7.10, COMPILATION OF MODULE 24LC16
OBJECT MODULE PLACED IN 24lc16.OBJ
COMPILER INVOKED BY: D:\Program Files\KEIL\C51\BIN\C51.EXE 24lc16.c ROM(SMALL) OPTIMIZE(5,SPEED) BROWSE DEBUG OBJECTEXTE
-ND
line level source
1
2 /*
3 ****************************************************************************
4 AT24C08 test program, Test ok!,Us with [delay.asm]
5 Write byte Tan-wentang, 2004-08-15
6
7 ****************************************************************************
8 */
9
10
11 #include <reg2051.h>
12 #include <intrins.H>
13
14 #include "Dialer_program.h"
15
16 extern void delay(unsigned char k);
17 extern bit EETestAcknowledge (void);
18 extern unsigned char EEReadByte (void);
19 extern void EESendByte (unsigned char d);
20 extern void EEStop (void);
21 extern void EEAcknowledge (void);
22 extern void EENoAcknowledge (void);
23 extern void EEStart (void);
24 extern void EESendWcom (unsigned char Block, com);
25 extern void EEReadPage (unsigned char *str, unsigned char Block, unsigned char StartAddr, unsigned char n)
- ;
26 extern void EEWritePage (unsigned char *str, unsigned char Block, unsigned char StartAddr, unsigned char n
-);
27
28 //=========================================================================
29
30 bit EETestAcknowledge (void) {
31 1 SDA_24C08 = 1;
32 1 _nop_();
33 1 _nop_();
34 1 CLK_24C08 = 1;
35 1 _nop_();
36 1 _nop_();
37 1 F0 = SDA_24C08;
38 1 _nop_();
39 1 _nop_();
40 1 CLK_24C08 = 0;
41 1 return F0;
42 1 }
43 //=========================================================================
44
45 unsigned char EEReadByte (void) {
46 1 unsigned char d = 0;
47 1 unsigned char i;
48 1
49 1 i = 8;
50 1 do {
51 2 CLK_24C08 = 1;
52 2 d *= 2;
C51 COMPILER V7.10 24LC16 09/29/2005 20:22:08 PAGE 2
53 2 if (SDA_24C08) d++;
54 2 CLK_24C08 = 0;
55 2 _nop_();
56 2 } while (--i);
57 1 return d;
58 1 }
59 //=========================================================================
60
61 void EESendByte (unsigned char d) {
62 1 unsigned char i;
63 1
64 1 i = 8;
65 1 do {
66 2 SDA_24C08 = (bit)(d & 0x80);
67 2 _nop_();
68 2 _nop_();
69 2 CLK_24C08 = 1;
70 2 _nop_();
71 2 _nop_();
72 2 CLK_24C08 = 0;
73 2 d *= 2;
74 2 } while(--i);
75 1 return;
76 1 }
77
78 //=========================================================================
79
80 void EEStop (void) {
81 1 CLK_24C08 = 0;
82 1 _nop_();
83 1 _nop_();
84 1 SDA_24C08 = 0;
85 1 _nop_();
86 1 _nop_();
87 1 CLK_24C08 = 1;
88 1 _nop_();
89 1 _nop_();
90 1 SDA_24C08 = 1;
91 1 return;
92 1 }
93 //=========================================================================
94 void EEAcknowledge (void) {
95 1 SDA_24C08 = 0;
96 1 _nop_();
97 1 _nop_();
98 1 CLK_24C08 = 1;
99 1 _nop_();
100 1 _nop_();
101 1 CLK_24C08 = 0;
102 1 _nop_();
103 1 _nop_();
104 1 SDA_24C08 = 1;
105 1 return;
106 1 }
107 //=========================================================================
108 void EENoAcknowledge (void) {
109 1 SDA_24C08 = 1;
110 1 _nop_();
111 1 _nop_();
112 1 CLK_24C08 = 1;
113 1 _nop_();
114 1 _nop_();
C51 COMPILER V7.10 24LC16 09/29/2005 20:22:08 PAGE 3
115 1 CLK_24C08 = 0;
116 1 return;
117 1 }
118 //=========================================================================
119 void EEStart (void) {
120 1 SDA_24C08 = 1;
121 1 _nop_();
122 1 _nop_();
123 1 CLK_24C08 = 1;
124 1 _nop_();
125 1 _nop_();
126 1 SDA_24C08 = 0;
127 1 _nop_();
128 1 _nop_();
129 1 CLK_24C08 = 0;
130 1 return;
131 1 }
132 //=========================================================================
133
134 void EESendWcom (unsigned char Block, com) {
135 1 EEStart();
136 1 //EESendByte(0xa0);
137 1 EESendByte(0xa0 | com | ((Block & 0x07) * 2));
138 1 }
139
140 //=========================================================================
141
142 void EEReadPage (unsigned char *str, unsigned char Block, unsigned char StartAddr, unsigned char n) {
143 1 // WP = 0;
144 1 EESendWcom(Block , 0x00);
145 1 EETestAcknowledge();
146 1
147 1 EESendByte(StartAddr);
148 1 EETestAcknowledge();
149 1
150 1 EEStart();
151 1 EESendWcom(Block , 0x01);
152 1 EETestAcknowledge();
153 1
154 1 do {
155 2 if (1 == n) break;
156 2 if (0 == n) break;
157 2
158 2 *str = EEReadByte();
159 2 EEAcknowledge();
160 2 str++;
161 2 n--;
162 2 } while(1);
163 1 *str = EEReadByte();
164 1 EENoAcknowledge();
165 1 EEStop();
166 1 // WP = 1;
167 1 //EEDelayMs(0x000a);
168 1 }
169 // 0 1 2 3 4 5 6 7 * 256 = 8 * 0x100 = 0x800
170 // 0 1 2 3 4 5 6 7 * 256 = 8 * 0x100 * 8 = 0x4000
171 //=========================================================================
172 //; MOV R5, #83H ;DATAADDR
173 //; MOV R3, 2BH ;EEPROMADDR
174 //; MOV R2, 2AH ;EEPROM BLOCK ADDR
175 //; MOV R7, #01H ;BYTE COUNT
176 //; LCALL L1EE3H
C51 COMPILER V7.10 24LC16 09/29/2005 20:22:08 PAGE 4
177 //=========================================================================
178 void EEWritePage (unsigned char *str, unsigned char Block, unsigned char StartAddr, unsigned char n) {
179 1 // WP = 0;
180 1 EESendWcom(Block , 0x00);
181 1 EETestAcknowledge();
182 1
183 1 EESendByte(StartAddr);
184 1 EETestAcknowledge();
185 1
186 1 do {
187 2 if (0 == n) break;
188 2 EESendByte(*str);
189 2 EETestAcknowledge();
190 2 str++;
191 2 n--;
192 2 } while (1);
193 1 EEStop();
194 1 delay(0x02);
195 1 // WP = 1;
196 1 }
197 void delay(unsigned char k){
198 1 unsigned char i,j;
199 1 for(k;k > 0;k--){
200 2 for (i=0;i<0x02;i++){
201 3 for(j=0;j<0xFF;j++){
202 4 }
203 3 }
204 2 }
205 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 276 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 12
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 + -