📄 oki80second_1.lst
字号:
503 00159 0C03 JBC STATUS,C
504 0015A 051C INCA DATATEMP
505 0015B LOOP_1:
506 0015B 039E ADD A,BCDTEMP_LOW
507 0015C 0001 DAA
508 0015D 005E MOV BCDTEMP_LOW,A
509 ;----------------------------------------
510 0015E 041D mov a, BCDTEMP_HIGH
511 0015F 005C MOV DATATEMP,a
512 00160 0C03 JBC STATUS,C
513 00161 051C INCA DATATEMP
514 00162 LOOP_2:
515 00162 039D ADD A,BCDTEMP_HIGH
516 00163 0001 DAA
517 00164 005D MOV BCDTEMP_HIGH ,A
518 00165 05D0 DJZ MOVE_TIME
519 00166 154B JMP LOOP
520 00167 041D mov a,BCDTEMP_HIGH
521 00168 005C mov datatemp,a
522 00169 071C swapa datatemp
523 0016A 1A0F and a,@0x0f
524 0016B 0058 mov bcddata,a
525 0016C 041D mov a,BCDTEMP_HIGH
526 0016D 1A0F and a,@0x0f
527 0016E 0059 mov bcddata1,a
528 0016F 041E mov a,BCDTEMP_low
529 00170 005C mov datatemp,a
530 00171 071C swapa datatemp
531 00172 1A0F and a,@0x0f
532 00173 005A mov bcddata2,a
533 00174 041E mov a,BCDTEMP_low
534 00175 1A0F and a,@0x0f
535 00176 005B mov bcddata3,a
536 00177 0012 RET
537 ;================================================== I2C PROGRAM
538 00178 Read24c01: ; BACK I2CDATA_HIGH; I2CDATA_LO
539 00178 11FD call E_START
540 00179 18A0 MOV A,@0XA0
541 0017A 0063 MOV E_BUFFER,A
542 0017B 11C3 call BYTE_WRITE
543 0017C 1808 MOV A,@0x8
544 0017D 0063 MOV E_BUFFER,A
545 0017E 11C3 call BYTE_WRITE
546 0017F 12E5 call dly
547 00180 11FD call E_START
548 00181 18A1 MOV A,@0XA1
549 00182 0063 MOV E_BUFFER,A
550 00183 11C3 call BYTE_WRITE
551 00184 11EA call BYTE_READ
552 00185 0423 MOV A,E_BUFFER
553 00186 0055 MOV i2cdata_high,A
554 00187 0B86 BS port6,SDA
555 00188 0BC6 BS port6,SCL
556 M SDA_IN
00189 184E 1 MOV A,@( 78 )
0018A 0006 1 IOW PROT_I2C ,
557 ;----------------------------------------
558 ;nop
559 0018B 0000 nop
560 0018C 11FD call E_START
561 0018D 18A0 MOV A,@0XA0
562 0018E 0063 MOV E_BUFFER,A
563 0018F 11C3 call BYTE_WRITE
564 00190 1809 MOV A,@0x09
565 00191 0063 MOV E_BUFFER,A
566 00192 11C3 call BYTE_WRITE
567 00193 12E5 call dly
568 00194 11FD call E_START
569 00195 18A1 MOV A,@0XA1
570 00196 0063 MOV E_BUFFER,A
571 00197 11C3 call BYTE_WRITE
572 00198 11EA call BYTE_READ
573 00199 0423 MOV A,E_BUFFER
574 0019A 0056 MOV i2cdata_low,A
575 0019B 0B86 BS port6,SDA
576 0019C 0000 NOP
577 0019D 0000 NOP
578 0019E 0BC6 BS port6,SCL
579 M SDA_IN
0019F 184E 1 MOV A,@( 78 )
001A0 0006 1 IOW PROT_I2C ,
580 ;call dly
581 001A1 0012 RET
582 ;-----------------------------write
583 001A2 E_W:
584 001A2 11FD call E_START
585 001A3 18A0 MOV A,@0XA0
586 001A4 0063 MOV E_BUFFER,A
587 001A5 11C3 call BYTE_WRITE
588 001A6 1808 MOV A,@0x08
589 001A7 0063 MOV E_BUFFER,A
590 001A8 11C3 call BYTE_WRITE
591 001A9 0415 MOV A,i2cdata_high
592 001AA 0063 MOV E_BUFFER,A
593 001AB 11C3 call BYTE_WRITE
594 001AC 1206 call E_STOP
595 001AD 0B86 BS port6,SDA
596 001AE 0BC6 BS port6,SCL
597 M SDA_IN
001AF 184E 1 MOV A,@( 78 )
001B0 0006 1 IOW PROT_I2C ,
598 001B1 1114 call DELAY10MS
599 ;----------------------------------------
600 001B2 11FD call E_START
601 001B3 18A0 MOV A,@0XA0
602 001B4 0063 MOV E_BUFFER,A
603 001B5 11C3 call BYTE_WRITE
604 001B6 1809 MOV A,@0x09
605 001B7 0063 MOV E_BUFFER,A
606 001B8 11C3 call BYTE_WRITE
607 001B9 0416 MOV A,i2cdata_low
608 001BA 0063 MOV E_BUFFER,A
609 001BB 11C3 call BYTE_WRITE
610 001BC 1206 call E_STOP
611 001BD 0B86 BS port6,SDA
612 001BE 0BC6 BS port6,SCL
613 M SDA_in
001BF 184E 1 MOV A,@( 78 )
001C0 0006 1 IOW PROT_I2C ,
614 001C1 0000 nop
615 001C2 0012 RET
616 ;****************************
617 ;I2C操作子程序(时序)集合
618 ;****************************
619 001C3 BYTE_WRITE:
620 M SDA_OUT
001C3 180E 1 MOV A,@( 14 )
001C4 0006 1 IOW PROT_I2C ,
621 001C5 12E5 call dly
622 001C6 1808 MOV A,@0X08
623 001C7 0064 MOV SLAVE,A
624 001C8 WRITE_LOOP:
625 001C8 09C6 BC port6,SCL
626 001C9 0000 NOP
627 001CA 06E3 RLC E_BUFFER
628 001CB 0C03 JBC status,C
629 001CC 15CF JMP $+3
630 001CD 0986 BC port6,sda
631 001CE 15D0 JMP $+2
632 001CF 0B86 BS port6,sda
633 001D0 15D1 JMP $+1
634 001D1 0BC6 BS port6,scl
635 001D2 12E5 call dly
636 ;BC port6,SCL
637 001D3 05E4 DJZ SLAVE
638 001D4 15C8 JMP WRITE_LOOP
639 001D5 WAIT_EP_ACK:
640 001D5 09C6 BC port6,SCL
641 M SDA_IN
001D6 184E 1 MOV A,@( 78 )
001D7 0006 1 IOW PROT_I2C ,
642 001D8 12E5 CALL dly
643 001D9 0BC6 BS port6,SCL
644 001DA 12E5 CALL dly
645 001DB 0D86 JBC port6,SDA
646 001DC 15DF JMP WAIT_EP_ACK2
647 001DD 09C6 BC port6,SCL
648 001DE 0012 RET
649 001DF WAIT_EP_ACK2:
650 001DF 09C6 BC port6,SCL
651 M SDA_IN
001E0 184E 1 MOV A,@( 78 )
001E1 0006 1 IOW PROT_I2C ,
652 001E2 12E5 CALL dly
653 001E3 0B86 BS port6,SDA
654 001E4 12E5 CALL dly
655 001E5 0D86 JBC port6,SDA
656 001E6 15E9 JMP EER
657 001E7 09C6 BC port6,SCL
658 001E8 0012 RET
659 001E9 EER:
660 001E9 0012 RET
661 ;-----------------------------------------------
662 001EA BYTE_READ:
663 M SDA_IN
001EA 184E 1 MOV A,@( 78 )
001EB 0006 1 IOW PROT_I2C ,
664 001EC 09C6 BC port6,SCL
665 001ED 1808 MOV A,@0X08
666 001EE 0064 MOV SLAVE,A
667 001EF READ_LOOP:
668 001EF 0BC6 BS port6,scl
669 001F0 12E5 call dly
670 001F1 0823 BC E_BUFFER,0
671 001F2 0D86 JBC port6,sda
672 001F3 0A23 BS E_BUFFER,0
673 001F4 0424 MOV A,SLAVE
674 001F5 1D01 SUB A,@0X01
675 001F6 0E83 JBS status,Z
676 001F7 06E3 RLC E_BUFFER
677 001F8 READ_FINAL:
678 001F8 09C6 BC port6,SCL
679 001F9 12E5 CALL dly
680 001FA 05E4 DJZ SLAVE
681 001FB 15EF JMP READ_LOOP
682 001FC 0012 RET
683 ;-------------------------------------------
684 001FD E_START:
685 001FD 0B86 BS port6,SDA
686 001FE 0BC6 BS port6,SCL
687 M SDA_OUT
001FF 180E 1 MOV A,@( 14 )
00200 0006 1 IOW PROT_I2C ,
688 00201 12E5 call dly
689 00202 0986 BC port6,SDA
690 00203 12E5 call dly
691 00204 09C6 BC port6,SCL
692 00205 0012 RET
693 00206 E_STOP:
694 M SDA_OUT
00206 180E 1 MOV A,@( 14 )
00207 0006 1 IOW PROT_I2C ,
695 00208 0986 BC port6,SDA
696 00209 09C6 BC port6,SCL
697 0020A 12E5 call dly
698 0020B 0BC6 BS port6,scl
699 0020C 12E5 call dly
700 0020D 0B86 BS port6,sda
701 0020E 12E5 call dly
702 0020F 0012 RET
703 ;****************************
704 ;宏定义
705 ;****************************
706 ;=================
707 ;设置SCL,SDA为输出口
708 ;=================
709 SDA_OUT MACRO
710 mov a,@00001110b
711 iow PROT_I2C
712 ENDM
713 ;=================
714 ;设置SCL为输出口,SDA为输入口
715 ;=================
716 SDA_IN MACRO
717 mov a,@01001110b
718 iow PROT_I2C
719 ENDM
720 ;=========================================================================
721 00210 LCDDISPLAY:
722 00210 00E2 CLR LCD_MAP ;FIRST MAP ADD IS 0
723 00211 0A85 BS port5,CK ;/WR=1
724 00212 12E5 call dly
725 00213 0805 BC port5,CS ;/CS=0
726 00214 12E5 call dly
727 00215 0AC5 BS port5,DA ;DATA=1
728 00216 12E5 call dly
729 00217 0885 BC port5,CK ;/WR=0
730 00218 12E5 call dly
731 00219 0A85 BS port5,CK ;/WR=1
732 ;----------------------------------------------
733 0021A 12E5 call dly
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -