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

📄 i2c_m.ls1

📁 8051模拟IIC总线读写24CXX原程序。
💻 LS1
📖 第 1 页 / 共 4 页
字号:
0031 20              193             DB      020H
0032 0000     F      194             DW      ?C0005
0034 28              195             DB      028H
0035 0000     F      196             DW      ?C0009
0037 30              197             DB      030H
0038 0000     F      198             DW      ?C0011
003A 40              199             DB      040H
003B 0000     F      200             DW      ?C0014
003D 48              201             DB      048H
003E 0000     F      202             DW      ?C0012
0040 50              203             DB      050H
0041 0000     F      204             DW      ?C0013
0043 58              205             DB      058H
0044 0000     F      206             DW      ?C0015
0046 60              207             DB      060H
0047 0000     F      208             DW      ?C0016
0049 68              209             DB      068H
004A 0000     F      210             DW      ?C0017
004C 80              211             DB      080H
004D 0000     F      212             DW      ?C0018
004F 88              213             DB      088H
0050 0000     F      214             DW      ?C0019
0052 A0              215             DB      0A0H
0053 0000     F      216             DW      ?C0020
0055 A8              217             DB      0A8H
0056 0000     F      218             DW      ?C0021
0058 B8              219             DB      0B8H
0059 0000     F      220             DW      ?C0024
005B C0              221             DB      0C0H
005C 0000            222             DW      00H
005E 0000     F      223             DW      ?C0025
                     224     ;       {
                     225                             ; SOURCE LINE # 18
                     226     ;               case Bus_error:
                     227                             ; SOURCE LINE # 19
0060                 228     ?C0002:
                     229     ;         transreg(Bus_error);
                     230                             ; SOURCE LINE # 20
0060 E4              231             CLR     A
0061 FF              232             MOV     R7,A
0062 120000   F      233             LCALL   _transreg
                     234     ;           break;
                     235                             ; SOURCE LINE # 21
0065 020000   F      236             LJMP    ?C0025
                     237     ;         //======master  transmitter mode=====
                     238     ;               case M_START:                           //0x08          
                     239                             ; SOURCE LINE # 23
0068                 240     ?C0003:
                     241     ;         transreg(M_START);        
                     242                             ; SOURCE LINE # 24
0068 7F08            243             MOV     R7,#08H
006A 120000   F      244             LCALL   _transreg
                     245     ;         S1DAT = Slave_Adr;                    //sla+R/W       
                     246                             ; SOURCE LINE # 25
006D 7800     F      247             MOV     R0,#LOW (Slave_Adr)
006F E6              248             MOV     A,@R0
0070 F5DA            249             MOV     S1DAT,A
                     250     ;               num=0;
                     251                             ; SOURCE LINE # 26
                     252     ;         S1CON = RELEASE_BUS_ACK;    
                     253                             ; SOURCE LINE # 27
                     254     ;               break;
A51 MACRO ASSEMBLER  I2C_M                                                                12/18/2003 11:19:19 PAGE     5

                     255                             ; SOURCE LINE # 28
0072 8064            256             SJMP    ?C0032
                     257     ;           //-------------------------
                     258     ;               case MT_SLAVE_ACK:               //0x18
                     259                             ; SOURCE LINE # 30
0074                 260     ?C0004:
                     261     ;         transreg(MT_SLAVE_ACK);
                     262                             ; SOURCE LINE # 31
0074 7F18            263             MOV     R7,#018H
0076 120000   F      264             LCALL   _transreg
                     265     ;               S1DAT = DATA[num]; 
                     266                             ; SOURCE LINE # 32
                     267     ;         num++;
                     268                             ; SOURCE LINE # 33
                     269     ;               S1CON = RELEASE_BUS_ACK;
                     270                             ; SOURCE LINE # 34
                     271     ;               break;
                     272                             ; SOURCE LINE # 35
0079 020000   F      273             LJMP    ?C0028
                     274     ;         //------------------------- 
                     275     ;               case MT_DATA:                           //0x28
                     276                             ; SOURCE LINE # 37
007C                 277     ?C0005:
                     278     ;           transreg(MT_DATA);
                     279                             ; SOURCE LINE # 38
007C 7F28            280             MOV     R7,#028H
007E 120000   F      281             LCALL   _transreg
                     282     ;         if(num<4)
                     283                             ; SOURCE LINE # 39
0081 E500     F      284             MOV     A,num
0083 C3              285             CLR     C
0084 9404            286             SUBB    A,#04H
0086 5046            287             JNC     ?C0034
                     288     ;                       { 
                     289                             ; SOURCE LINE # 40
                     290     ;                               S1DAT=DATA[num];
                     291                             ; SOURCE LINE # 41
0088                 292     ?C0027:
                     293     ;                               num++;
                     294                             ; SOURCE LINE # 42
                     295     ;                               S1CON = RELEASE_BUS_ACK;
                     296                             ; SOURCE LINE # 43
                     297     ;                       }
                     298                             ; SOURCE LINE # 44
0088 020000   F      299             LJMP    ?C0028
008B                 300     ?C0006:
                     301     ;               else
                     302     ;                       {
                     303                             ; SOURCE LINE # 46
                     304     ;                                S1CON = SEND_STOP_ACK;
                     305                             ; SOURCE LINE # 47
                     306     ;                       }               
                     307                             ; SOURCE LINE # 48
                     308     ;           break;
                     309                             ; SOURCE LINE # 49
008B 8041            310             SJMP    ?C0034
                     311     ;         //-------------------------
                     312     ;               case MT_SLAVE_NONACK:           //0x20
                     313                             ; SOURCE LINE # 51
008D                 314     ?C0008:
                     315     ;               transreg(MT_SLAVE_NONACK);
                     316                             ; SOURCE LINE # 52
008D 7F20            317             MOV     R7,#020H
008F 120000   F      318             LCALL   _transreg
                     319     ;               S1CON = SEND_STOP_ACK;
                     320                             ; SOURCE LINE # 53
A51 MACRO ASSEMBLER  I2C_M                                                                12/18/2003 11:19:19 PAGE     6

0092                 321     ?C0029:
                     322     ;               break;
                     323                             ; SOURCE LINE # 54
0092 803A            324             SJMP    ?C0034
                     325     ;         //-------------------------
                     326     ;               case MT_DATA_NONACK:            //0x30
                     327                             ; SOURCE LINE # 56
0094                 328     ?C0009:
                     329     ;               transreg(MT_DATA_NONACK);
                     330                             ; SOURCE LINE # 57
0094 7F30            331             MOV     R7,#030H
0096 120000   F      332             LCALL   _transreg
                     333     ;               S1CON = SEND_STOP_ACK;          
                     334                             ; SOURCE LINE # 58
0099                 335     ?C0030:
                     336     ;               break;
                     337                             ; SOURCE LINE # 59
0099 8033            338             SJMP    ?C0034
                     339     ;         //-------------------------
                     340     ;               case M_RESTART:                         //0x10
                     341                             ; SOURCE LINE # 61
009B                 342     ?C0010:
                     343     ;               transreg(M_RESTART);
                     344                             ; SOURCE LINE # 62
009B 7F10            345             MOV     R7,#010H
009D 120000   F      346             LCALL   _transreg
                     347     ;               S1DAT = Slave_Adr;
                     348                             ; SOURCE LINE # 63
00A0 7800     F      349             MOV     R0,#LOW (Slave_Adr)
00A2 E6              350             MOV     A,@R0
00A3 F5DA            351             MOV     S1DAT,A
                     352     ;         S1CON = RELEASE_BUS_ACK; 
                     353                             ; SOURCE LINE # 64
00A5 75D8C6          354             MOV     S1CON,#0C6H
                     355     ;               num = 0;
                     356                             ; SOURCE LINE # 65
00A8 750000   F      357             MOV     num,#00H
                     358     ;               break;
                     359                             ; SOURCE LINE # 66
00AB 020000   F      360             LJMP    ?C0025
                     361     ;               //==========================================
                     362     ; 
                     363     ;               //======master receiver mode================
                     364     ;               case MR_SLAVE_ACK:                      //0x40
                     365                             ; SOURCE LINE # 70
00AE                 366     ?C0011:
                     367     ;               transreg(MR_SLAVE_ACK);
                     368                             ; SOURCE LINE # 71
00AE 7F40            369             MOV     R7,#040H
00B0 120000   F      370             LCALL   _transreg
                     371     ;               num=0;
                     372                             ; SOURCE LINE # 72
00B3                 373     ?C0026:
                     374     ;               S1CON = RELEASE_BUS_ACK;    
                     375                             ; SOURCE LINE # 73
                     376     ;               break;
                     377                             ; SOURCE LINE # 74
00B3 8023            378             SJMP    ?C0032
                     379     ;               //--------------------------
                     380     ;               case MR_DATA_ACK:                   //0x50      
                     381                             ; SOURCE LINE # 76
00B5                 382     ?C0012:
                     383     ;               transreg(MR_DATA_ACK);
                     384                             ; SOURCE LINE # 77
00B5 7F50            385             MOV     R7,#050H
                     386     ;         SDATA[num]=S1DAT;
A51 MACRO ASSEMBLER  I2C_M                                                                12/18/2003 11:19:19 PAGE     7

                     387                             ; SOURCE LINE # 78
                     388     ;               num++;
                     389                             ; SOURCE LINE # 79
                     390     ;               S1CON = RELEASE_BUS_ACK;        
                     391                             ; SOURCE LINE # 80
                     392     ;               break;
                     393                             ; SOURCE LINE # 81
00B7 8031            394             SJMP    ?C0033
                     395     ;               //-------------------------

⌨️ 快捷键说明

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