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