📄 i2c.lst
字号:
*** ERROR C202 IN LINE 136 OF I2C.C: 'I2C_SCL': undefined identifier
137 1 _nop_();
138 1 _nop_();
139 1 _nop_();
140 1 ErrorBit = I2C_SDA;
*** ERROR C202 IN LINE 140 OF I2C.C: 'I2C_SDA': undefined identifier
141 1 I2C_SCL = 0;
*** ERROR C202 IN LINE 141 OF I2C.C: 'I2C_SCL': undefined identifier
142 1 _nop_();
143 1 _nop_();
144 1 }
145 /***************************************
146 *函数名称: void Write_I2c(uchar date)
147 *功能描述: 写I2C
148 *输入: 待送数据,高字节先送
149 *输出: 无
150 *全局变量: I2C_SCL,I2C_SDA
151 *调用模块: 无
152
153 ****************************************/
154 void Write_I2c(uchar date)
155 {
156 1 uchar i;
157 1 for(i = 0; i < 8; i++)
158 1 {
159 2 I2C_SDA = date & 0x80; //送数据到数据线上
*** ERROR C202 IN LINE 159 OF I2C.C: 'I2C_SDA': undefined identifier
160 2 date <<= 1;
161 2 _nop_();
C51 COMPILER V8.02 I2C 07/26/2008 08:49:37 PAGE 4
162 2 I2C_SCL = 1; //置时钟信号为高电平,使数据有效
*** ERROR C202 IN LINE 162 OF I2C.C: 'I2C_SCL': undefined identifier
163 2 _nop_();
164 2 _nop_();
165 2 _nop_();
166 2 _nop_();
167 2 _nop_();
168 2 I2C_SCL = 0;
*** ERROR C202 IN LINE 168 OF I2C.C: 'I2C_SCL': undefined identifier
169 2 _nop_();
170 2 _nop_();
171 2
172 2 }
173 1 }
174 /***************************************
175 *函数名称: uchar Read_I2c(void)
176 *功能描述: 读I2C
177 *输入: 无
178 *输出: 返回一个字节的数据,高字节在前
179 *全局变量: I2C_SCL,I2C_SDA
180 *调用模块: 无
181
182 ****************************************/
183 uchar Read_I2c(void)
184 {
185 1 uchar i;
186 1 uchar byte = 0;
187 1 for(i = 0; i < 8; i++)
188 1 {
189 2 I2C_SCL = 0; //置时钟为低电平,准备接受数据
*** ERROR C202 IN LINE 189 OF I2C.C: 'I2C_SCL': undefined identifier
190 2 _nop_();
191 2 _nop_();
192 2 _nop_();
193 2 _nop_();
194 2 _nop_();
195 2 I2C_SCL = 1; //置时钟为高电平,使数据线数据有效
*** ERROR C202 IN LINE 195 OF I2C.C: 'I2C_SCL': undefined identifier
196 2 _nop_();
197 2 _nop_();
198 2 byte <<= 1;
199 2 byte |= I2C_SDA;
*** ERROR C202 IN LINE 199 OF I2C.C: 'I2C_SDA': undefined identifier
200 2 _nop_();
201 2 _nop_();
202 2 I2C_SCL = 0;
*** ERROR C202 IN LINE 202 OF I2C.C: 'I2C_SCL': undefined identifier
203 2 }
204 1 return(byte);
205 1 }
206 /***************************************
207 *函数名称: void DelayMs(uchar time)
208 *功能描述: 延时
209 *输入: 延时时间
210 *输出: 无
211 *全局变量: 无
212 *调用模块: 无
213
214 ****************************************/
215 void DelayMs(uchar time)
216 {
217 1 uchar i;
C51 COMPILER V8.02 I2C 07/26/2008 08:49:37 PAGE 5
218 1 do
219 1 {
220 2 for(i = 0; i < 125 ; i++); //*延时 8us x 125 = 1ms
221 2 }
222 1 while (time--);
223 1
224 1 }
225 /***************************************
226 *函数名称: void Write_Date(uchar StartAddress,uchar *date,uchar bytes)
227 *功能描述: 写数据
228 *输入: 数据开始地址,保存数据指针,数据字节数
229 *输出: 无
230 *全局变量: 无
231 *调用模块: Start(),Write_I2c(),Stop(),TestAck()
232 *注意事项: 调用之前,需要定义一个数组,用来存待发送的数据
233 ****************************************/
234 void Write_Date(int StartAddress,uchar *date,uchar bytes)
235 {
236 1 uchar i = 0;
237 1 Start();
238 1 Write_I2c(WR24C02);
239 1 TestAck();
240 1 Write_I2c(StartAddress);
241 1 TestAck();
242 1 for(i = 0;i < bytes; i++)
243 1 {
244 2 Write_I2c(*date);
245 2 TestAck();
246 2 date++;
247 2 }
248 1 Stop();
249 1 DelayMs(20);
250 1 }
251 /***************************************
252 *函数名称: void Read_Date(uchar StartAddress,uchar *date,uchar bytes)
253 *功能描述: 读数据
254 *输入: 数据开始地址,读取数据指针,数据字节数
255 *输出: 无
256 *全局变量: 无
257 *调用模块: Start(),Write_I2c(),Read_I2c(),Ack(),NoAck(),Stop(),TestAck()
258 *注意事项: 调用之前,需要定义一个数组,用来存读取的数据
259 ****************************************/
260 void Read_Date(int StartAddress,uchar *date,uchar bytes)
261 {
262 1 uchar i;
263 1 Start();
264 1 Write_I2c(WR24C02);
265 1 TestAck();
266 1 Write_I2c(StartAddress);
267 1 TestAck();
268 1 Write_I2c(RD24C02);
269 1 TestAck();
270 1 for (i = 0; i < bytes; i++)
271 1 {
272 2 *date = Read_I2c();
273 2 Ack();
274 2 date++;
275 2 }
276 1 NoAck();
277 1 Stop();
278 1 DelayMs(10);
279 1 }
C51 COMPILER V8.02 I2C 07/26/2008 08:49:37 PAGE 6
C51 COMPILATION COMPLETE. 0 WARNING(S), 24 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -