📄 iic_master.lst
字号:
178 2 _nop_();
179 2 SCL = 0;
C51 COMPILER V7.08 IIC_MASTER 03/31/2006 18:35:32 PAGE 4
180 2 // SDA = 1;
181 2 return TRUE;
182 2 }
183 1 else
184 1 {
185 2 return FALSE;
186 2 }
187 1 }
188
189 /*********************************************************************************************************
190 ** 函数名称: IICStop
191 ** 功能描述: 发送IIC结束信号
192 ** 输 入: 无
193 ** 输 出: 无
194 ** 全局变量: 无
195 ** 调用模块: 无
196 ********************************************************************************************************/
197 void IICStop(void)
198 {
199 1 SCL = 1;
200 1 SDA = 0;
201 1 _nop_();
202 1 _nop_();
203 1
204 1 SDA = 1;
205 1 _nop_();
206 1 _nop_();
207 1 _nop_();
208 1 // SCL = 0;
209 1 }
210
211 /*********************************************************************************************************
212 ** 函数名称: IIC_ACK
213 ** 功能描述: 发送IIC应答信号
214 ** 输 入: 无
215 ** 输 出: 无
216 ** 全局变量: 无
217 ** 调用模块: 无
218 ********************************************************************************************************/
219 void IIC_ACK(void)
220 {
221 1 SDA = 0;
222 1 _nop_();
223 1 _nop_();
224 1 SCL = 1;
225 1 _nop_();
226 1 _nop_();
227 1 _nop_();
228 1 _nop_();
229 1 SCL = 0;
230 1 }
231
232 /*********************************************************************************************************
233 ** 函数名称: IIC_NO_ACK
234 ** 功能描述: 发送IIC无应答信号
235 ** 输 入: 无
236 ** 输 出: 无
237 ** 全局变量: 无
238 ** 调用模块: 无
239 ********************************************************************************************************/
240 void IIC_NO_ACK(void)
241 {
C51 COMPILER V7.08 IIC_MASTER 03/31/2006 18:35:32 PAGE 5
242 1 SDA = 1;
243 1 _nop_();
244 1 _nop_();
245 1 SCL = 1;
246 1 _nop_();
247 1 _nop_();
248 1 _nop_();
249 1 _nop_();
250 1 SCL = 0;
251 1 return;
252 1 }
253
254 /*********************************************************************************************************
255 ** 函数名称: IICSend
256 ** 功能描述: 发送一个字节
257 ** 输 入: IIC_data:数据
258 ** 输 出: TRUE:成功
259 ** FALSE:失败
260 ** 全局变量: 无
261 ** 调用模块: 无
262 ********************************************************************************************************/
263 uint8 IICSend(uint8 IIC_data)
264 {
265 1 uint8 i;
266 1
267 1 for (i = 0; i < 8; i++)
268 1 {
269 2 IIC_data = IIC_data << 1;
270 2 F0 = SDA = CY;
271 2 SCL = 1;
272 2 if (F0 != SDA)
273 2 {
274 3 SCL = 0;
275 3 return FALSE;
276 3 }
277 2 _nop_();
278 2 _nop_();
279 2 SCL = 0;
280 2 }
281 1 /*
282 1 --------------------------------------------
283 1 do{
284 1 */
285 1 SCL=0;
286 1 SDA = 1;
287 1 _nop_();
288 1 _nop_();
289 1 SCL = 1;
290 1 _nop_();
291 1 _nop_();
292 1 /*
293 1 }
294 1 while(SDA);
295 1
296 1 /*
297 1 -----------------------------------------
298 1 */
299 1 if (SDA == 1)
300 1 {
301 2 SCL = 0;
302 2 return FALSE;
303 2 }
C51 COMPILER V7.08 IIC_MASTER 03/31/2006 18:35:32 PAGE 6
304 1 else
305 1 {
306 2 SCL = 0;
307 2 return TRUE;
308 2 }
309 1 /*
310 1 --------------------------------------------
311 1 */
312 1 }
313
314 /*********************************************************************************************************
315 ** 函数名称: IICReceive
316 ** 功能描述: 读取一个字节
317 ** 输 入: 无
318 ** 输 出: 读取的字节
319 ** 全局变量: 无
320 ** 调用模块: 无
321 ********************************************************************************************************/
322 uint8 IICReceive(void)
323 {
324 1 uint8 i,r;
325 1
326 1 r = 0;
327 1 SDA = 1;
328 1 for (i = 0; i < 8; i++)
329 1 {
330 2 r = r * 2;
331 2 SCL = 1;
332 2 _nop_();
333 2 _nop_();
334 2 if (SDA == 1)
335 2 {
336 3 r++;
337 3 }
338 2 SCL = 0;
339 2 }
340 1 return r;
341 1 }
342
343 /*********************************************************************************************/
344 /* End of File */
345 /*********************************************************************************************/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 324 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 13
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 + -