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

📄 t.ls1

📁 at89c51 读取写入24c64的C源代码
💻 LS1
📖 第 1 页 / 共 5 页
字号:
0091                 462     ?C0075:
0091 640A            463             XRL     A,#0AH
0093 4500     F      464             ORL     A,i?244
0095 70EB            465             JNZ     ?C0022
0097                 466     ?C0023:
0097 759055          467             MOV     P1,#055H
                     468     ;       }
                     469                             ; SOURCE LINE # 78
009A 020000   F      470             LJMP    ?C0040
009D                 471     ?C0015:
                     472     ;       else if(func==1)//pr display
                     473                             ; SOURCE LINE # 79
009D E500     F      474             MOV     A,func
009F 6401            475             XRL     A,#01H
00A1 701D            476             JNZ     ?C0026
                     477     ;       {
                     478                             ; SOURCE LINE # 80
                     479     ;               if(k2==0)       {pw=(pw+9)%10;P1=~wdat[pw];}//pw--
                     480                             ; SOURCE LINE # 81
00A3 EE              481             MOV     A,R6
00A4 7006            482             JNZ     ?C0027
00A6 E500     F      483             MOV     A,pw
00A8 2409            484             ADD     A,#09H
00AA 8007            485             SJMP    ?C0077
00AC                 486     ?C0027:
                     487     ;               else if(k3==0)  {pw=(pw+1)%10;P1=~wdat[pw];}//pw++
                     488                             ; SOURCE LINE # 82
00AC E500     F      489             MOV     A,k3?247
00AE 7078            490             JNZ     ?C0040
00B0 E500     F      491             MOV     A,pw
00B2 04              492             INC     A
00B3                 493     ?C0077:
00B3 75F00A          494             MOV     B,#0AH
00B6 84              495             DIV     AB
00B7 85F000   F      496             MOV     pw,B
00BA 7400     F      497             MOV     A,#LOW (wdat)
00BC 2500     F      498             ADD     A,pw
                     499     ;       }
                     500                             ; SOURCE LINE # 83
00BE 802C            501             SJMP    ?C0079
00C0                 502     ?C0026:
                     503     ;       else if(func==2)//pr display
                     504                             ; SOURCE LINE # 84
00C0 E500     F      505             MOV     A,func
00C2 6402            506             XRL     A,#02H
00C4 702D            507             JNZ     ?C0031
                     508     ;       {
                     509                             ; SOURCE LINE # 85
                     510     ;               if(k2==0)       {pr=(pr+9)%10;P1=~rdat[pr];}//pr--
                     511                             ; SOURCE LINE # 86
00C6 EE              512             MOV     A,R6
00C7 7011            513             JNZ     ?C0032
00C9 E500     F      514             MOV     A,pr
00CB 2409            515             ADD     A,#09H
00CD 75F00A          516             MOV     B,#0AH
A51 MACRO ASSEMBLER  T                                                                    06/27/2008 14:06:20 PAGE     9

00D0 84              517             DIV     AB
00D1 85F000   F      518             MOV     pr,B
00D4 7400     F      519             MOV     A,#LOW (rdat)
00D6 2500     F      520             ADD     A,pr
00D8                 521     ?C0078:
00D8 8012            522             SJMP    ?C0079
00DA                 523     ?C0032:
                     524     ;               else if(k3==0)  {pr=(pr+1)%10;P1=~rdat[pr];}//pr++
                     525                             ; SOURCE LINE # 87
00DA E500     F      526             MOV     A,k3?247
00DC 704A            527             JNZ     ?C0040
00DE E500     F      528             MOV     A,pr
00E0 04              529             INC     A
00E1 75F00A          530             MOV     B,#0AH
00E4 84              531             DIV     AB
00E5 85F000   F      532             MOV     pr,B
00E8 7400     F      533             MOV     A,#LOW (rdat)
00EA 2500     F      534             ADD     A,pr
00EC                 535     ?C0079:
00EC F8              536             MOV     R0,A
00ED E6              537             MOV     A,@R0
00EE F4              538             CPL     A
00EF F590            539             MOV     P1,A
                     540     ;       }
                     541                             ; SOURCE LINE # 88
00F1 8035            542             SJMP    ?C0040
00F3                 543     ?C0031:
                     544     ; #if 0
                     545     ;       else if(func==3)//write and read
                     546     ;       {
                     547     ;               if(k2==0)       {AT24C64_W(wdat,0x100,10); P1=~0xF0; }// write
                     548     ;               else if(k3==0)  {AT24C64_R(rdat,0x100,10); P1=~0xF1;}// read
                     549     ;       }
                     550     ; #else
                     551     ;       else if(func==3)//write and read
                     552                             ; SOURCE LINE # 96
00F3 E500     F      553             MOV     A,func
00F5 6403            554             XRL     A,#03H
00F7 702F            555             JNZ     ?C0040
                     556     ;       {
                     557                             ; SOURCE LINE # 97
                     558     ;               if(k2==0)       {I2C_SendToSubAddress(0xa0,0x100,wdat,10); P1=~0xF3; }// wr
                             ite
                     559                             ; SOURCE LINE # 98
00F9 EE              560             MOV     A,R6
00FA 7015            561             JNZ     ?C0037
00FC FB              562             MOV     R3,A
00FD 7A00     F      563             MOV     R2,#HIGH (wdat)
00FF 7900     F      564             MOV     R1,#LOW (wdat)
0101 75000A   F      565             MOV     ?_I2C_SendToSubAddress?BYTE+06H,#0AH
0104 FD              566             MOV     R5,A
0105 7C01            567             MOV     R4,#01H
0107 7FA0            568             MOV     R7,#0A0H
0109 120000   F      569             LCALL   _I2C_SendToSubAddress
010C 75900C          570             MOV     P1,#0CH
010F 8017            571             SJMP    ?C0040
0111                 572     ?C0037:
                     573     ;               else if(k3==0)  {I2C_ReceiveFromSubAddress(0xa0,0x100,rdat,10); P1=~0xF1;}/
                             / read
                     574                             ; SOURCE LINE # 99
0111 E500     F      575             MOV     A,k3?247
0113 7013            576             JNZ     ?C0040
0115 FB              577             MOV     R3,A
0116 7A00     F      578             MOV     R2,#HIGH (rdat)
0118 7900     F      579             MOV     R1,#LOW (rdat)
011A 75000A   F      580             MOV     ?_I2C_ReceiveFromSubAddress?BYTE+06H,#0AH
A51 MACRO ASSEMBLER  T                                                                    06/27/2008 14:06:20 PAGE    10

011D FD              581             MOV     R5,A
011E 7C01            582             MOV     R4,#01H
0120 7FA0            583             MOV     R7,#0A0H
0122 120000   F      584             LCALL   _I2C_ReceiveFromSubAddress
0125 75900E          585             MOV     P1,#0EH
                     586     ;       }
                     587                             ; SOURCE LINE # 100
                     588     ; #endif
                     589     ; 
                     590     ; }
                     591                             ; SOURCE LINE # 103
0128                 592     ?C0040:
0128 D007            593             POP     AR7
012A D006            594             POP     AR6
012C D005            595             POP     AR5
012E D004            596             POP     AR4
0130 D003            597             POP     AR3
0132 D002            598             POP     AR2
0134 D001            599             POP     AR1
0136 D000            600             POP     AR0
0138 D0D0            601             POP     PSW
013A D082            602             POP     DPL
013C D083            603             POP     DPH
013E D0F0            604             POP     B
0140 D0E0            605             POP     ACC
0142 32              606             RETI    
                     607     ; END OF interrupt_func1
                     608     
                     609     ; 
                     610     ; #if 0
                     611     ; #define I2C_SCK SCL
                     612     ; #define I2C_SDA SDA
                     613     ; 
                     614     ; 
                     615     ; /*24C64子程序 */
                     616     ; void  Delay_10_uS(void)
                     617     ; {
                     618     ;  //uchar i=10;
                     619     ;  //while(i--);
                     620     ; }
                     621     ; void Delay_N_mS( uint n_milisecond)  /* n mS delay */
                     622     ; {
                     623     ;  uint i;
                     624     ;  while(n_milisecond--)
                     625     ;  {
                     626     ;   i=10;//37;
                     627     ;   while(i--);
                     628     ;  }
                     629     ; }
                     630     ; bit I2C_Start(void)
                     631     ; {
                     632     ;  Delay_10_uS();
                     633     ;  I2C_SDA =1;
                     634     ;  Delay_10_uS();
                     635     ;  I2C_SCK =1;
                     636     ;  Delay_10_uS();
                     637     ;  if ( I2C_SDA == 0) return 0;
                     638     ;  if ( I2C_SCK == 0) return 0;
                     639     ;  I2C_SDA = 0;
                     640     ;  Delay_10_uS();
                     641     ;  I2C_SCK = 0;
                     642     ;  Delay_10_uS();
                     643     ;  return 1;
                     644     ; }
                     645     ; void  I2C_Stop(void)
                     646     ; {
A51 MACRO ASSEMBLER  T                                                                    06/27/2008 14:06:20 PAGE    11

                     647     ;  Delay_10_uS();
                     648     ;  I2C_SDA = 0;
                     649     ;  Delay_10_uS();
                     650     ;  I2C_SCK = 1;
                     651     ;  Delay_10_uS();
                     652     ;  I2C_SDA = 1;
                     653     ;  Delay_10_uS();
                     654     ; }
                     655     ; void I2C_Ack(void)
                     656     ; {
                     657     ;  Delay_10_uS();
                     658     ;  I2C_SDA=0;
                     659     ;  Delay_10_uS();
                     660     ;  I2C_SCK=1;
                     661     ;  Delay_10_uS();
                     662     ;  I2C_SCK=0;
                     663     ;  Delay_10_uS();
                     664     ; }
                     665     ; void I2C_Nack(void)
                     666     ; {
                     667     ;  Delay_10_uS();
                     668     ;  I2C_SDA=1;
                     669     ;  Delay_10_uS();
                     670     ;  I2C_SCK=1;
                     671     ;  Delay_10_uS();
                     672     ;  I2C_SCK=0;
                     673     ;  Delay_10_uS();
                     674     ; }
                     675     ; bit I2C_Send_Byte( uchar d)
                     676     ; {
                     677     ;  uchar i = 8;
                     678     ;  bit bit_ack;
                     679     ;  while( i-- )
                     680     ;  {
                     681     ;   Delay_10_uS();
                     682     ;   if ( d &0x80 )   I2C_SDA =1;
                     683     ;   else             I2C_SDA =0;
                     684     ;   Delay_10_uS();
                     685     ;   I2C_SCK = 1;
                     686     ;   Delay_10_uS();
                     687     ;   I2C_SCK = 0;
                     688     ;   d = d << 1;
                     689     ;  }
                     690     ;  Delay_10_uS();
                     691     ;  I2C_SDA = 1;
                     692     ;  Delay_10_uS();
                     693     ;  I2C_SCK = 1;
                     694     ;  Delay_10_uS();
                     695     ;  bit_ack = I2C_SDA;
                     696     ;  I2C_SCK =0;
                     697     ;  Delay_10_uS();

⌨️ 快捷键说明

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