⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 access.ls1

📁 Realtek 公司的RTD2523A芯片原厂source code,没有被修改过的。
💻 LS1
📖 第 1 页 / 共 5 页
字号:
0076 750080   F      440             MOV     ucCnt,#080H
0079 0500     F      441             INC     uiCount+01H
007B E500     F      442             MOV     A,uiCount+01H
007D 22              443             RET     
007E                 444     L?0162:
A51 MACRO ASSEMBLER  ACCESS                                                               04/11/2004 15:34:13 PAGE     8

                     445             USING   0
007E E500     F      446             MOV     A,ucByte_Temp
0080 5500     F      447             ANL     A,ucCnt
0082 24FF            448             ADD     A,#0FFH
0084 9200     F      449             MOV     bBit,C
0086 E500     F      450             MOV     A,ucCnt
0088 C3              451             CLR     C
0089 13              452             RRC     A
008A F500     F      453             MOV     ucCnt,A
008C 22              454             RET     
008D                 455     L?0163:
                     456             USING   0
008D 120000   F      457             LCALL   RTDSendStop
0090 C297            458             CLR     bRTD_SCSB
0092 0B              459             INC     R3
0093 7F92            460             MOV     R7,#092H
0095 020000   F      461             LJMP    _RTDSendAddr
0098                 462     L?0165:
                     463             USING   0
0098 C297            464             CLR     bRTD_SCSB
009A E4              465             CLR     A
009B FB              466             MOV     R3,A
009C FD              467             MOV     R5,A
009D 7F90            468             MOV     R7,#090H
009F 020000   F      469             LJMP    _RTDSendAddr
00A2                 470     L?0166:
                     471             USING   0
00A2                 472     L?0167:
00A2 0500     F      473             INC     array?1468+01H
00A4 E500     F      474             MOV     A,array?1468+01H
00A6 AE00     F      475             MOV     R6,array?1468
00A8 22              476             RET     
00A9                 477     L?0168:
                     478             USING   0
00A9 7401            479             MOV     A,#01H
00AB 93              480             MOVC    A,@A+DPTR
00AC 24FC            481             ADD     A,#0FCH
00AE FF              482             MOV     R7,A
00AF 020000   F      483             LJMP    _RTDSendByte
                     484     ; END OF Com008D
                     485     
                     486     ; void BitDly(void)
                     487     
----                 488             RSEG  ?PR?BitDly?ACCESS
0000                 489     BitDly:
                     490                             ; SOURCE LINE # 115
                     491     ; {
                     492                             ; SOURCE LINE # 116
                     493     ;     _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
                     494                             ; SOURCE LINE # 117
0000 00              495             NOP     
0001 00              496             NOP     
0002 00              497             NOP     
0003 00              498             NOP     
0004 00              499             NOP     
0005 00              500             NOP     
0006 00              501             NOP     
0007 00              502             NOP     
                     503     ;     _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
                     504                             ; SOURCE LINE # 118
0008 00              505             NOP     
0009 00              506             NOP     
000A 00              507             NOP     
000B 00              508             NOP     
000C 00              509             NOP     
000D 00              510             NOP     
A51 MACRO ASSEMBLER  ACCESS                                                               04/11/2004 15:34:13 PAGE     9

000E 00              511             NOP     
000F 00              512             NOP     
                     513     ;     _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
                     514                             ; SOURCE LINE # 119
0010 00              515             NOP     
0011 00              516             NOP     
0012 00              517             NOP     
0013 00              518             NOP     
0014 00              519             NOP     
0015 00              520             NOP     
0016 00              521             NOP     
0017 00              522             NOP     
                     523     ;     _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
                     524                             ; SOURCE LINE # 120
0018 00              525             NOP     
0019 00              526             NOP     
001A 00              527             NOP     
001B 00              528             NOP     
001C 00              529             NOP     
001D 00              530             NOP     
001E 00              531             NOP     
001F 00              532             NOP     
                     533     ; }
                     534                             ; SOURCE LINE # 121
0020 22              535             RET     
                     536     ; END OF BitDly
                     537     
                     538     ; 
                     539     ; void I2CRead(unsigned char addr, unsigned char index, unsigned char count)
                     540     
----                 541             RSEG  ?PR?_I2CRead?ACCESS
0000                 542     _I2CRead:
                     543             USING   0
                     544                             ; SOURCE LINE # 123
0000 8F00     F      545             MOV     addr?140,R7
0002 8B00     F      546             MOV     count?142,R3
                     547     ;---- Variable 'index?141' assigned to Register 'R5' ----
                     548     ; {
                     549                             ; SOURCE LINE # 124
                     550     ;     unsigned char   n;
                     551     ; 
                     552     ;     if (count)
                     553                             ; SOURCE LINE # 127
0004 E500     F      554             MOV     A,count?142
0006 6039            555             JZ      ?C0006
                     556     ;     {
                     557                             ; SOURCE LINE # 128
                     558     ;         I2CSendAddr(addr, index, 0);
                     559                             ; SOURCE LINE # 129
0008 E4              560             CLR     A
0009 FB              561             MOV     R3,A
000A 120000   F      562             LCALL   _I2CSendAddr
                     563     ;         
                     564     ;         I2CSendAddr(addr, 0, 1);
                     565                             ; SOURCE LINE # 131
000D 7B01            566             MOV     R3,#01H
000F E4              567             CLR     A
0010 FD              568             MOV     R5,A
0011 AF00     F      569             MOV     R7,addr?140
0013 120000   F      570             LCALL   _I2CSendAddr
                     571     ; 
                     572     ;         count   = count - 1;
                     573                             ; SOURCE LINE # 133
0016 1500     F      574             DEC     count?142
                     575     ; 
                     576     ;         for (n = 0; n < count; n++)     Data[n] = I2CGetByte(0);
A51 MACRO ASSEMBLER  ACCESS                                                               04/11/2004 15:34:13 PAGE    10

                     577                             ; SOURCE LINE # 135
0018 E4              578             CLR     A
0019 F500     F      579             MOV     n?143,A
001B                 580     ?C0003:
001B E500     F      581             MOV     A,n?143
001D C3              582             CLR     C
001E 9500     F      583             SUBB    A,count?142
0020 5010            584             JNC     ?C0004
0022 E4              585             CLR     A
0023 FF              586             MOV     R7,A
0024 120000   F      587             LCALL   _I2CGetByte
0027 7400     F      588             MOV     A,#LOW (Data?)
0029 2500     F      589             ADD     A,n?143
002B F8              590             MOV     R0,A
002C A607            591             MOV     @R0,AR7
002E 0500     F      592             INC     n?143
0030 80E9            593             SJMP    ?C0003
0032                 594     ?C0004:
                     595     ; 
                     596     ;         Data[count] = I2CGetByte(1);
                     597                             ; SOURCE LINE # 137
0032 7F01            598             MOV     R7,#01H
0034 120000   F      599             LCALL   _I2CGetByte
0037 7400     F      600             MOV     A,#LOW (Data?)
0039 2500     F      601             ADD     A,count?142
003B F8              602             MOV     R0,A
003C A607            603             MOV     @R0,AR7
                     604     ; 
                     605     ;         I2CSendStop();
                     606                             ; SOURCE LINE # 139
003E 120000   F      607             LCALL   I2CSendStop
                     608     ;     }
                     609                             ; SOURCE LINE # 140
                     610     ; }
                     611                             ; SOURCE LINE # 141
0041                 612     ?C0006:
0041 22              613             RET     
                     614     ; END OF _I2CRead
                     615     
                     616     ; 
                     617     ; void I2CWrite(unsigned char *array)
                     618     
----                 619             RSEG  ?PR?_I2CWrite?ACCESS
0000                 620     _I2CWrite:
                     621             USING   0
                     622                             ; SOURCE LINE # 143
0000 8B00     F      623             MOV     array?244,R3
0002 8A00     F      624             MOV     array?244+01H,R2
0004 8900     F      625             MOV     array?244+02H,R1
                     626     ; {
                     627                             ; SOURCE LINE # 144
                     628     ;     unsigned char   n, len;
                     629     ; 
                     630     ;     if (3 <= array[0])
                     631                             ; SOURCE LINE # 147
0006 120000   F      632             LCALL   ?C?CLDPTR
0009 FF              633             MOV     R7,A
000A 7403            634             MOV     A,#03H
000C D3              635             SETB    C
000D 9F              636             SUBB    A,R7
000E 5039            637             JNC     ?C0011
                     638     ;     {
                     639                             ; SOURCE LINE # 148
                     640     ;         len     = array[0];
                     641                             ; SOURCE LINE # 149
0010 8F00     F      642             MOV     len?246,R7
A51 MACRO ASSEMBLER  ACCESS                                                               04/11/2004 15:34:13 PAGE    11

                     643     ;         I2CSendAddr(array[1], array[2], 0);     
                     644                             ; SOURCE LINE # 150
0012 900001          645             MOV     DPTR,#01H
0015 120000   F      646             LCALL   ?C?CLDOPTR
0018 FF              647             MOV     R7,A
0019 900002          648             MOV     DPTR,#02H
001C 120000   F      649             LCALL   ?C?CLDOPTR
001F FD              650             MOV     R5,A
0020 E4              651             CLR     A
0021 FB              652             MOV     R3,A
0022 120000   F      653             LCALL   _I2CSendAddr
                     654     ; 
                     655     ;         for (n = 3; n < len; n++)   I2CSendByte(array[n]);
                     656                             ; SOURCE LINE # 152
0025 750003   F      657             MOV     n?245,#03H
0028                 658     ?C0008:
0028 E500     F      659             MOV     A,n?245
002A C3              660             CLR     C
002B 9500     F      661             SUBB    A,len?246
002D 5017            662             JNC     ?C0009
002F AB00     F      663             MOV     R3,array?244
0031 AA00     F      664             MOV     R2,array?244+01H
0033 A900     F      665             MOV     R1,array?244+02H
0035 850082   F      666             MOV     DPL,n?245

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -