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

📄 t.ls1

📁 at89c51 读取写入24c64的C源代码
💻 LS1
📖 第 1 页 / 共 5 页
字号:
                     698     ;  return bit_ack;
                     699     ; }
                     700     ; uchar I2C_Receive_Byte(void)
                     701     ; {
                     702     ;  uchar i = 8, d;
                     703     ;  Delay_10_uS();
                     704     ;  I2C_SDA = 1;
                     705     ;  while ( i--)
                     706     ;  {
                     707     ;   d = d << 1;
                     708     ;   Delay_10_uS();
                     709     ;   I2C_SCK =1;
                     710     ;   if ( I2C_SDA ) d++;
                     711     ;   Delay_10_uS();
                     712     ;   I2C_SCK =0;
A51 MACRO ASSEMBLER  T                                                                    06/27/2008 14:06:20 PAGE    12

                     713     ;  }
                     714     ;  return d;
                     715     ; }
                     716     ; void AT24C64_W(void *mcu_address,uint AT24C64_address,uint count)
                     717     ; {
                     718     ;  //DOG_WDI=!DOG_WDI;
                     719     ;  //DOGTIME=0;
                     720     ;  while(count--)
                     721     ;  {
                     722     ;   I2C_Start();
                     723     ;   /*I2C_Send_Byte( 0xa0 + AT24C64_address /256 *2);*/  /* 24C16  USE */
                     724     ;   I2C_Send_Byte( 0xa0 );
                     725     ;   I2C_Send_Byte(  AT24C64_address/256 );
                     726     ;   I2C_Send_Byte( AT24C64_address %256 );
                     727     ;   I2C_Send_Byte( *(uchar*)mcu_address );
                     728     ;   I2C_Stop();
                     729     ;   Delay_N_mS(10);       /* waiting for write cycle to be completed */
                     730     ;   ((uchar*)mcu_address)++;
                     731     ;   AT24C64_address++;
                     732     ;  }
                     733     ; }
                     734     ; void AT24C64_R(void *mcu_address,uint AT24C64_address,uint count)
                     735     ; {
                     736     ;  //DOG_WDI=!DOG_WDI;
                     737     ;  //DOGTIME=0;
                     738     ;  while(count--)
                     739     ;  {
                     740     ;   I2C_Start();
                     741     ;   /*I2C_Send_Byte( 0xa0 + AT24C64_address / 256 *2 );*/   /* 24C16 USE */
                     742     ;   I2C_Send_Byte( 0xa0 );
                     743     ;   I2C_Send_Byte( AT24C64_address/256 );
                     744     ;   I2C_Send_Byte( AT24C64_address % 256 );
                     745     ;   I2C_Start();
                     746     ;   /*I2C_Send_Byte( 0xa1 + AT24C64_address /256 *2 );*/
                     747     ;   I2C_Send_Byte( 0xa1 );
                     748     ;   *(uchar*)mcu_address = I2C_Receive_Byte();
                     749     ;   I2C_Nack();
                     750     ;   I2C_Stop();
                     751     ;   ((uchar*)mcu_address)++;
                     752     ;   AT24C64_address++;
                     753     ;  }
                     754     ; }
                     755     ; 
                     756     ; #else
                     757     ; 
                     758     ; void delay()
                     759     
----                 760             RSEG  ?PR?delay?T
0000                 761     delay:
                     762                             ; SOURCE LINE # 253
                     763     ; {
                     764                             ; SOURCE LINE # 254
                     765     ; _nop_();
                     766                             ; SOURCE LINE # 255
0000 00              767             NOP     
                     768     ; _nop_();
                     769                             ; SOURCE LINE # 256
0001 00              770             NOP     
                     771     ; _nop_();
                     772                             ; SOURCE LINE # 257
0002 00              773             NOP     
                     774     ; _nop_();
                     775                             ; SOURCE LINE # 258
0003 00              776             NOP     
                     777     ; _nop_();
                     778                             ; SOURCE LINE # 259
A51 MACRO ASSEMBLER  T                                                                    06/27/2008 14:06:20 PAGE    13

0004 00              779             NOP     
                     780     ; }
                     781                             ; SOURCE LINE # 260
0005 22              782             RET     
                     783     ; END OF delay
                     784     
                     785     ; 
                     786     ; 
                     787     ; void delayms (uint x)
                     788     
----                 789             RSEG  ?PR?_delayms?T
0000                 790     _delayms:
                     791             USING   0
                     792                             ; SOURCE LINE # 263
                     793     ;---- Variable 'j?449' assigned to Register 'R5' ----
                     794     ;---- Variable 'x?448' assigned to Register 'R6/R7' ----
                     795     ; {
                     796                             ; SOURCE LINE # 264
0000                 797     ?C0042:
                     798     ;  byte j;
                     799     ;  while(x--){
                     800                             ; SOURCE LINE # 266
0000 EF              801             MOV     A,R7
0001 1F              802             DEC     R7
0002 AA06            803             MOV     R2,AR6
0004 7001            804             JNZ     ?C0076
0006 1E              805             DEC     R6
0007                 806     ?C0076:
0007 4A              807             ORL     A,R2
0008 600B            808             JZ      ?C0047
                     809     ;     for(j=0;j<125;j++){;}
                     810                             ; SOURCE LINE # 267
000A E4              811             CLR     A
000B FD              812             MOV     R5,A
000C                 813     ?C0044:
000C ED              814             MOV     A,R5
000D C3              815             CLR     C
000E 947D            816             SUBB    A,#07DH
0010 50EE            817             JNC     ?C0042
0012 0D              818             INC     R5
0013 80F7            819             SJMP    ?C0044
                     820     ;       }
                     821                             ; SOURCE LINE # 268
                     822     ; }
                     823                             ; SOURCE LINE # 269
0015                 824     ?C0047:
0015 22              825             RET     
                     826     ; END OF _delayms
                     827     
                     828     ; 
                     829     ; void I2C_Start()                      //I2C START
                     830     
----                 831             RSEG  ?PR?I2C_Start?T
0000                 832     I2C_Start:
                     833                             ; SOURCE LINE # 271
                     834     ; {
                     835                             ; SOURCE LINE # 272
                     836     ;  SDA=1;
                     837                             ; SOURCE LINE # 273
0000 D2B5            838             SETB    P3_5
                     839     ;  _nop_();
                     840                             ; SOURCE LINE # 274
0002 00              841             NOP     
                     842     ;   SCL=1;
                     843                             ; SOURCE LINE # 275
0003 D2B4            844             SETB    P3_4
A51 MACRO ASSEMBLER  T                                                                    06/27/2008 14:06:20 PAGE    14

                     845     ;   delay();
                     846                             ; SOURCE LINE # 276
0005 120000   F      847             LCALL   delay
                     848     ;    SDA=0;
                     849                             ; SOURCE LINE # 277
0008 C2B5            850             CLR     P3_5
                     851     ;    delay();
                     852                             ; SOURCE LINE # 278
000A 120000   F      853             LCALL   delay
                     854     ;   SCL=0;
                     855                             ; SOURCE LINE # 279
000D C2B4            856             CLR     P3_4
                     857     ;   _nop_();
                     858                             ; SOURCE LINE # 280
000F 00              859             NOP     
                     860     ; }
                     861                             ; SOURCE LINE # 281
0010 22              862             RET     
                     863     ; END OF I2C_Start
                     864     
                     865     ; 
                     866     ; void I2C_Stop()             //I2C STOP
                     867     
----                 868             RSEG  ?PR?I2C_Stop?T
0000                 869     I2C_Stop:
                     870                             ; SOURCE LINE # 283
                     871     ; {
                     872                             ; SOURCE LINE # 284
                     873     ; SDA=0;
                     874                             ; SOURCE LINE # 285
0000 C2B5            875             CLR     P3_5
                     876     ; _nop_();
                     877                             ; SOURCE LINE # 286
0002 00              878             NOP     
                     879     ; SCL=1;
                     880                             ; SOURCE LINE # 287
0003 D2B4            881             SETB    P3_4
                     882     ; delay();
                     883                             ; SOURCE LINE # 288
0005 120000   F      884             LCALL   delay
                     885     ; SDA=1;
                     886                             ; SOURCE LINE # 289
0008 D2B5            887             SETB    P3_5
                     888     ; delay();
                     889                             ; SOURCE LINE # 290
000A 020000   F      890             LJMP    delay
                     891     ; END OF I2C_Stop
                     892     
                     893     ; }
                     894     ; 
                     895     ; bit  I2C_ReceiveAck() 
                     896     
----                 897             RSEG  ?PR?I2C_ReceiveAck?T
0000                 898     L?0080:
                     899             USING   0
0000 AF04            900             MOV     R7,AR4
0002 120000   F      901             LCALL   _I2C_SendByte
0005                 902     I2C_ReceiveAck:
                     903                             ; SOURCE LINE # 293
                     904     ; {
                     905                             ; SOURCE LINE # 294
                     906     ; bit ck;
                     907     ; SDA=1;                  //THE HOST RELEASE THE BUS
                     908                             ; SOURCE LINE # 296
0005 D2B5            909             SETB    P3_5
                     910     ; _nop_();
A51 MACRO ASSEMBLER  T                                                                    06/27/2008 14:06:20 PAGE    15

                     911                             ; SOURCE LINE # 297
0007 00              912             NOP     
                     913     ; _nop_();
                     914                             ; SOURCE LINE # 298
0008 00              915             NOP     
                     916     ; SCL=1;           
                     917                             ; SOURCE LINE # 299
0009 D2B4            918             SETB    P3_4
                     919     ; _nop_();
                     920                             ; SOURCE LINE # 300
000B 00              921             NOP     
                     922     ; _nop_();
                     923                             ; SOURCE LINE # 301
000C 00              924             NOP     
                     925     ; ck=SDA;
                     926                             ; SOURCE LINE # 302
000D A2B5            927             MOV     C,P3_5
000F 9200     F      928             MOV     ck?750,C
                     929     ; _nop_();
                     930                             ; SOURCE LINE # 303
0011 00              931             NOP     
                     932     ; _nop_();
                     933                             ; SOURCE LINE # 304

⌨️ 快捷键说明

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