📄 fm_i2cdrv2.lst
字号:
373 0001D2
374 0001D2 CD.... CALL LWRD I2C_wait5us
375 0001D5
376 0001D5 DBF4 IN A,(SCL_doport)
377 0001D7 CBC7 SET SCL_doport_num,A
378 0001D9 D3F4 OUT (SCL_doport),A
379 0001DB
380 0001DB CD.... CALL LWRD I2C_wait5us
381 0001DE
382 0001DE DBF4 IN A,(SCL_doport)
383 0001E0 CB87 RES SCL_doport_num,A
384 0001E2 D3F4 OUT (SCL_doport),A
385 0001E4 DBF3 IN A,(SDA_outport)
386 0001E6 CB8F RES SDA_outport_num,A
387 0001E8 D3F3 OUT (SDA_outport),A
388 0001EA DBF3 IN A,(SDA_inport)
389 0001EC CBEF SET SDA_inport_num,A
390 0001EE D3F3 OUT (SDA_inport),A
391 0001F0 181E JR ACKgenok
392 0001F2 GenNACK:
393 0001F2 DBF4 IN A,(SDA_doport)
394 0001F4 CBCF SET SDA_doport_num,A
395 0001F6 D3F4 OUT (SDA_doport),A
396 0001F8
397 0001F8 CD.... CALL LWRD I2C_wait5us
398 0001FB
399 0001FB DBF4 IN A,(SCL_doport)
400 0001FD CBC7 SET SCL_doport_num,A
401 0001FF D3F4 OUT (SCL_doport),A
402 000201
403 000201 CD.... CALL LWRD I2C_wait5us
404 000204
405 000204 DBF4 IN A,(SCL_doport)
406 000206 CB87 RES SCL_doport_num,A
407 000208 D3F4 OUT (SCL_doport),A
408 00020A DBF4 IN A,(SDA_doport)
409 00020C CB8F RES SDA_doport_num,A
410 00020E D3F4 OUT (SDA_doport),A
411 000210 ACKgenok:
412 000210 79 LD A,C
413 000211 C1 POP BC
414 000212 C9 RET
415 000213 //=============================================
416 000213 //=============================================
417 000213 I2CSendbyte:
418 000213 C5 PUSH BC
419 000214 0608 LD B,8
420 000216 SDAOnextbit:
421 000216 CB21 SLA C
422 000218 3808 JR C,SDAO1
423 00021A SDAO0:
424 00021A DBF4 IN A,(SDA_doport)
425 00021C CB8F RES SDA_doport_num,A
426 00021E D3F4 OUT (SDA_doport),A
427 000220 1806 JR SDAO_OK
428 000222 SDAO1:
429 000222 DBF4 IN A,(SDA_doport)
430 000224 CBCF SET SDA_doport_num,A
431 000226 D3F4 OUT (SDA_doport),A
432 000228 SDAO_OK:
433 000228 CD.... CALL LWRD I2C_wait5us
434 00022B
435 00022B DBF4 IN A,(SCL_doport)
436 00022D CBC7 SET SCL_doport_num,A
437 00022F D3F4 OUT (SCL_doport),A
438 000231
439 000231 CD.... CALL LWRD I2C_wait5us
440 000234
441 000234 DBF4 IN A,(SCL_doport)
442 000236 CB87 RES SCL_doport_num,A
443 000238 D3F4 OUT (SCL_doport),A
444 00023A 10DA DJNZ SDAOnextbit
445 00023C C1 POP BC
446 00023D C9 RET
447 00023E //===========================================
448 00023E
449 00023E
450 00023E
451 00023E //=================================================
452 00023E
453 00023E //=================================================
454 00023E
455 00023E I2C_wait5us:
456 00023E F5 PUSH AF
457 00023F C5 PUSH BC
458 000240 00 NOP
459 000241 00 NOP
460 000242 C1 POP BC
461 000243 F1 POP AF
462 000244 C9 RET
463 000245 //---------------------
464 000245 I2C_wait3us:
465 000245 F5 PUSH AF
466 000246 C5 PUSH BC
467 000247 00 NOP
468 000248 00 NOP
469 000249 C1 POP BC
470 00024A F1 POP AF
471 00024B C9 RET
472 00024C //==================================================
==
473 00024C //==================================================
======
474 00024C FMwait50ms:
475 00024C F5 PUSH AF
476 00024D C5 PUSH BC
477 00024E 0646 LD B,70 //25ms: 50 , 50ms: 100,
478 000250 FMwait50msloop1:
479 000250 C5 PUSH BC
480 000251 //500US
481 000251 06E6 LD B,230
482 000253 FMwait50msloop2:
483 000253 D5 PUSH DE
484 000254 D1 POP DE
485 000255 D5 PUSH DE
486 000256 D1 POP DE
487 000257 10FA DJNZ FMwait50msloop2
488 000259
489 000259 C1 POP BC
490 00025A 10F4 DJNZ FMwait50msloop1
491 00025C C1 POP BC
492 00025D F1 POP AF
493 00025E C9 RET
494 00025F //==================================================
======
495 00025F //==================================================
=========
496 00025F READ_STATUS:
497 00025F C5 PUSH BC
498 000260 E5 PUSH HL
499 000261
500 000261 0605 LD B,05H
501 000263 CD.... CALL LWRD FMwait50ms
502 000266 FMwaitreadyloop1:
503 000266 05 DEC B
504 000267 280E JR Z,READ_STATUS_err
505 000269 CD.... CALL LWRD READ_ONEFRAME
506 00026C FE00 CP 00H
507 00026E 28F6 JR Z,FMwaitreadyloop1
508 000270 21.... LD HL,LWRD READ_BUFFER+2
//判断RF=1?
509 000273 CB46 BIT 0,(HL)
510 000275 28EF JR Z,FMwaitreadyloop1
511 000277 READ_STATUS_err:
512 000277 3A.... LD A,(LWRD FM_result)
513 00027A E1 POP HL
514 00027B C1 POP BC
515 00027C C9 RET
516 00027D //==================================================
===========
517 00027D //==================================================
======
518 00027D // FM wait 50ms
519 00027D //==================================================
======
520 00027D FMwait50ms_LOSC:
521 00027D F5 PUSH AF
522 00027E C5 PUSH BC
523 00027F DB4E IN A,(4eh)
524 000281 F608 OR 08h
525 000283 D34E OUT (4eh),A
526 000285 0601 LD B,1
527 000287 FMwait50msloop1_LOSC:
528 000287 C5 PUSH BC
529 000288 //500us
530 000288 0619 LD B,25
531 00028A FMwait50msloop2_LOSC:
532 00028A D5 PUSH DE
533 00028B D1 POP DE
534 00028C D5 PUSH DE
535 00028D D1 POP DE
536 00028E 10FA DJNZ FMwait50msloop2_LOSC
537 000290
538 000290 C1 POP BC
539 000291 10F4 DJNZ FMwait50msloop1_LOSC
540 000293 C1 POP BC
541 000294 F1 POP AF
542 000295 C9 RET
543 000296
544 000296
545 000296 Wait1024Cycles:
546 000296 C5 push bc
547 000297 0680 ld b,0x80
548 000299 Wait1024Cycles1:
549 000299 10FE djnz Wait1024Cycles1
550 00029B C1 pop bc
551 00029C C9 ret
552 00029D
553 00029D END
##############################
# CRC:AE6A #
# Errors: 0 #
# Warnings: 0 #
# Bytes: 669 #
##############################
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -