📄 i2ctest.lst
字号:
116 unsigned char I2C_Receive_byte(void)
117 {
118 1 unsigned char i,da=0;
119 1 bit a;
120 1 for(i=0;i<8;i++)
121 1 {
122 2 SDA=1;
*** ERROR C202 IN LINE 122 OF I2CTEST.C: 'SDA': undefined identifier
123 2 SCL=1;
*** ERROR C202 IN LINE 123 OF I2CTEST.C: 'SCL': undefined identifier
124 2 delay(3);
125 2 a=SDA;
*** ERROR C202 IN LINE 125 OF I2CTEST.C: 'SDA': undefined identifier
126 2 delay(3);
127 2 SCL=0;
*** ERROR C202 IN LINE 127 OF I2CTEST.C: 'SCL': undefined identifier
128 2 if(a==1)
129 2 {
130 3 da=da<<1;
131 3 da=da|0x01;
132 3 }
133 2 else
134 2 {
135 3 da=da<<1;
136 3 }
137 2 }
138 1 return da;
139 1 }
140
141 //**********Send n bety ,n<16,page[0-7],add[0-255].error return 0********//
142 bit I2C_Send_Nbyte(unsigned char page,unsigned char add,unsigned char *buffer,unsigned char n)
143 {
144 1 unsigned char i;
145 1
146 1 I2C_start(); //send start//
C51 COMPILER V7.02a I2CTEST 09/30/2004 14:30:10 PAGE 4
147 1
148 1 I2C_Send_byte(page); //send address//
149 1 if(I2C_Cack()==1)
150 1 {
151 2 I2C_stop();
152 2 return 0;
153 2 }
154 1
155 1 I2C_Send_byte(add); //send data address//
156 1 if(I2C_Cack()==1)
157 1 {
158 2 I2C_stop();
159 2 return 0;
160 2 }
161 1
162 1 for(i=0;i<n;i++) //send data//
163 1 {
164 2 I2C_Send_byte(buffer[i]);
165 2 if(I2C_Cack()==1)
166 2 {
167 3 I2C_stop();
168 3 return 0;
169 3 }
170 2 }
171 1
172 1 I2C_stop(); //send stop//
173 1 return 1;
174 1 }
175
176
177 //***********receive n byte n<16,page[0-7],add[0-255],error return 0*********//
178 bit I2C_Receive_Nbyte(unsigned char page,unsigned char add,unsigned char *buffer,unsigned char n)
179 {
180 1 unsigned char i;
181 1
182 1 I2C_start(); //send start//
183 1
184 1 I2C_Send_byte(page); //send device address//
185 1 if(I2C_Cack()==1)
186 1 {
187 2 I2C_stop();
188 2 return 0;
189 2 }
190 1
191 1 I2C_Send_byte(add); //send data address//
192 1 if(I2C_Cack()==1)
193 1 {
194 2 I2C_stop();
195 2 return 0;
196 2 }
197 1
198 1 for(i=0;i<n;i++) //send data//
199 1 {
200 2 buffer[i]=I2C_Receive_byte();
201 2 if(i!=n)
202 2 {
203 3 I2C_ack();
204 3 }
205 2 else
206 2 {
207 3 I2C_nack();
208 3 }
C51 COMPILER V7.02a I2CTEST 09/30/2004 14:30:10 PAGE 5
209 2 }
210 1
211 1 I2C_stop(); //send stop//
212 1
213 1 return 1;
214 1 }
215
216
217 //********main************//
218 void main(void)
219 { unsigned char i,j,k;
220 1 unsigned char code yuan[17]={0,1,2,3,4,5,6,7,8,9,10,11,13,13,14,15,16};
221 1 unsigned char tt[16]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
222 1 bit a=0;
223 1 SCON = 0x52;
*** ERROR C202 IN LINE 223 OF I2CTEST.C: 'SCON': undefined identifier
224 1 TMOD=0x29;
*** ERROR C202 IN LINE 224 OF I2CTEST.C: 'TMOD': undefined identifier
225 1 TH1=0xfd;
*** ERROR C202 IN LINE 225 OF I2CTEST.C: 'TH1': undefined identifier
226 1 TL1=0xfd; //** 9600 baud **//
*** ERROR C202 IN LINE 226 OF I2CTEST.C: 'TL1': undefined identifier
227 1 TR1=1; //** start timer 1 **//
*** ERROR C202 IN LINE 227 OF I2CTEST.C: 'TR1': undefined identifier
228 1 TI=1;
*** ERROR C202 IN LINE 228 OF I2CTEST.C: 'TI': undefined identifier
229 1 EA=1; //** Allow UART Int **//
*** ERROR C202 IN LINE 229 OF I2CTEST.C: 'EA': undefined identifier
230 1
231 1 printf("I1C Test\n");
232 1 led=0;
233 1 delay_ms(100);
234 1
235 1 /* for(i=0;i<8;i++)
236 1 {
237 1 for(j=0;j<0x10;j++)
238 1 {
239 1 I2C_Send_Nbyte(i,j*0x10,yuan,16);
240 1 delay_ms(10);
241 1 }
242 1 }
243 1 led=!led; */
244 1 delay_ms(200);
245 1 I2C_Receive_Nbyte(0x4,0xa0,tt,16);
246 1 delay_ms(100);
247 1 for(i=0;i<16;i++)
248 1 {
249 2 printf("%x,",tt[i]);
250 2 }
251 1 printf("\n");
252 1 while(1);
253 1 }
C51 COMPILATION COMPLETE. 1 WARNING(S), 39 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -