📄 i2c_driver.lst
字号:
292 0000D5
293 0000D5 /***************************************************
************************
294 0000D5 I2C Stop
295 0000D5 input parameter:NO
296 0000D5 output parameter:NO
297 0000D5 ****************************************************
**********************
*/
298 0000D5 I2C_Stop:
299 0000D5 3A.... LD A,(I2CSPEED)
300 0000D8 C68B ADD A,8BH
301 0000DA D37A OUT (I2CCTL),A
302 0000DC C9 RET
303 0000DD
304 0000DD /***************************************************
************************
305 0000DD wait Stop:wait stop complete
306 0000DD input parameter:NO
307 0000DD output parameter:NO
308 0000DD ****************************************************
**********************
*/
309 0000DD Wait_Stop:
310 0000DD F5 PUSH AF
311 0000DE Wait_Stopxxx:
312 0000DE DB7B IN A,(I2CSTA)
313 0000E0 CB77 BIT 6,A
314 0000E2 28FA JR Z,Wait_Stopxxx
315 0000E4
316 0000E4 F1 POP AF
317 0000E5 C9 RET
318 0000E6
319 0000E6 /***************************************************
************************
320 0000E6 I2C Exit
321 0000E6 input parameter:NO
322 0000E6 output parameter:NO
323 0000E6 ****************************************************
**********************
*/
324 0000E6 I2C_Exit:
325 0000E6 3E00 LD A,00H
326 0000E8 D37A OUT (I2CCTL),A
327 0000EA C9 RET
328 0000EB
329 0000EB /***************************************************
************************
330 0000EB Trans_complete
331 0000EB input parameter:NO
332 0000EB output parameter:A-1:Transmit complete;0:fa
il.
333 0000EB ****************************************************
***********************/
334 0000EB Trans_complete:
335 0000EB C5 PUSH BC
336 0000EC
337 0000EC //LD C,3FH
338 0000EC Trans_complete_loop:
339 0000EC //DEC C
340 0000EC //JR Z,Trans_complete_error /
/Timeout error
341 0000EC DB7B IN A,(I2CSTA)
342 0000EE CB7F BIT 7,A
343 0000F0 28FA JR Z,Trans_complete_loop
344 0000F2
345 0000F2 CD.... CALL DELAY_5us
346 0000F5
347 0000F5 CD.... CALL Test_ACK
348 0000F8 FE00 CP 00H
349 0000FA 2808 JR Z,Trans_complete_error
350 0000FC
351 0000FC //ADD 2005.3.18
352 0000FC 3E80 LD A,80H //
Clear complete bit
353 0000FE D37B OUT (I2CSTA),A
354 000100 ////
355 000100 ////modify 2005.4.21
356 000100 // CALL Test_ACK
357 000100 // CP 00H
358 000100 // JR Z,Trans_complete_error
359 000100
360 000100 3E01 LD A,01H
361 000102 1802 JR Trans_complete_exit
362 000104 Trans_complete_error:
363 000104 3E00 LD A,00H
364 000106 Trans_complete_exit:
365 000106 C1 POP BC
366 000107 C9 RET
367 000108
368 000108 /***************************************************
********************
369 000108 Recv_complete
370 000108 input parameter:NO
371 000108 output parameter:A:1:Receive complete;0:fai
l.
372 000108 ****************************************************
********************/
373 000108 Recv_complete:
374 000108 C5 PUSH BC
375 000109
376 000109 //LD C,3FH
377 000109 Recv_complete_loop:
378 000109 //DEC C
379 000109 //JR Z,Recv_complete_error //
Timeout error
380 000109 DB7B IN A,(I2CSTA)
381 00010B CB7F BIT 7,A
382 00010D 28FA JR Z,Recv_complete_loop
383 00010F //ADD 2005.3.18
384 00010F 3E80 LD A,80H //
Clear complete bit
385 000111 D37B OUT (I2CSTA),A
386 000113 //
387 000113 3E01 LD A,01H
388 000115 1802 JR Recv_complete_exit
389 000117 Recv_complete_error:
390 000117 3E00 LD A,00H
391 000119 Recv_complete_exit:
392 000119 C1 POP BC
393 00011A C9 RET
394 00011B
395 00011B /***************************************************
*******************
396 00011B TEST ACK
397 00011B input parameter:NO
398 00011B output parameter:A:1:ACK;0:NACK.
399 00011B ****************************************************
********
********
***/
400 00011B Test_ACK:
401 00011B DB7A IN A,(I2CCTL)
402 00011D CB47 BIT 0,A
403 00011F 2804 JR Z,ACK_OK
404 000121 3E00 LD A,00H
405 000123 1802 JR ACK_exit
406 000125 ACK_OK:
407 000125 3E01 LD A,01H
408 000127 ACK_exit:
409 000127 C9 RET
410 000128
411 000128 /***************************************************
412 000128 DELAY 15us
413 000128 ***************************************************/
414 000128 DELAY_15us:
415 000128 C5 PUSH BC
416 000129 0612 LD B,18
417 00012B WAIT_DELAY:
418 00012B F5 PUSH AF
419 00012C F1 POP AF
420 00012D 10FC DJNZ WAIT_DELAY
421 00012F C1 POP BC
422 000130 C9 RET
423 000131
424 000131 /***************************************************
425 000131 DELAY 5us
426 000131 ***************************************************/
427 000131 DELAY_5us:
428 000131 C5 PUSH BC
429 000132 0606 LD B,6
430 000134 WAIT_DELAY1:
431 000134 00 NOP
432 000135 00 NOP
433 000136 00 NOP
434 000137 00 NOP
435 000138 10F1 DJNZ WAIT_DELAY
436 00013A C1 POP BC
437 00013B C9 RET
438 00013C
439 00013C END
##############################
# CRC:820B #
# Errors: 0 #
# Warnings: 0 #
# Bytes: 316 #
##############################
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -