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

📄 sdio.src

📁 近期完成的一个项目
💻 SRC
📖 第 1 页 / 共 5 页
字号:
;    P2MDOUT&=~0x02;
			; SOURCE LINE # 447
	ANL  	P2MDOUT,#0FDH
;    Slave_state=Initialization_State;
			; SOURCE LINE # 448
	MOV  	Slave_state,#01H
; }
			; SOURCE LINE # 449
	RET  	
; END OF Response_to_CMD5

; 
; void Response_to_CMD7(void)                   //R1b Response

	RSEG  ?PR?Response_to_CMD7?SDIO
Response_to_CMD7:
	USING	0
			; SOURCE LINE # 451
; {
			; SOURCE LINE # 452
;    P2MDOUT=0x02;
			; SOURCE LINE # 453
	MOV  	P2MDOUT,#02H
;    Buffer_send[0]=0x01;                       //command index
			; SOURCE LINE # 454
	MOV  	Buffer_send,#01H
;    Buffer_send[1]=0x00;                       //card status
			; SOURCE LINE # 455
	CLR  	A
	MOV  	Buffer_send+01H,A
;    Buffer_send[2]=0x00;
			; SOURCE LINE # 456
	MOV  	Buffer_send+02H,A
;    Buffer_send[3]=0x01;                       //ready for data                   
			; SOURCE LINE # 457
	MOV  	Buffer_send+03H,#01H
;    Buffer_send[4]=0x00;
			; SOURCE LINE # 458
	MOV  	Buffer_send+04H,A
;    Buffer_send[5]=0x7B;
			; SOURCE LINE # 459
	MOV  	Buffer_send+05H,#07BH
;    Timing_Sync();
			; SOURCE LINE # 460
;    Write_Res_SD(Buffer_send[0]);
			; SOURCE LINE # 461
;    Write_Res_SD(Buffer_send[1]);
			; SOURCE LINE # 462
;    Write_Res_SD(Buffer_send[2]);
			; SOURCE LINE # 463
;    Write_Res_SD(Buffer_send[3]);
			; SOURCE LINE # 464
;    Write_Res_SD(Buffer_send[4]);
			; SOURCE LINE # 465
;    Write_Res_SD(Buffer_send[5]);
			; SOURCE LINE # 466
	LCALL	L?0337
?C0131:
;    while(SD_CLK_PIN==0);
			; SOURCE LINE # 467
	JNB  	SD_CLK_PIN,?C0131
?C0132:
;    SD_CMD_PIN=1;
			; SOURCE LINE # 468
	SETB 	SD_CMD_PIN
;    SD_CMD_PIN=1;
			; SOURCE LINE # 469
	SETB 	SD_CMD_PIN
;    P2MDOUT&=~0x02;
			; SOURCE LINE # 470
	ANL  	P2MDOUT,#0FDH
;    Slave_state=Command_State;
			; SOURCE LINE # 471
	MOV  	Slave_state,#03H
; }
			; SOURCE LINE # 472
	RET  	
; END OF Response_to_CMD7

; 
; void Response_to_CMD15(void)

	RSEG  ?PR?Response_to_CMD15?SDIO
Response_to_CMD15:
			; SOURCE LINE # 474
; {
			; SOURCE LINE # 475
;    Slave_state=Inactive_State;
			; SOURCE LINE # 476
	CLR  	A
	MOV  	Slave_state,A
; }
			; SOURCE LINE # 477
	RET  	
; END OF Response_to_CMD15

; 
; void Response_to_CMD52(void)

	RSEG  ?PR?Response_to_CMD52?SDIO
Response_to_CMD52:
	USING	0
			; SOURCE LINE # 479
; {  
			; SOURCE LINE # 480
;   P2MDOUT=0x02;
			; SOURCE LINE # 481
	MOV  	P2MDOUT,#02H
;   Reg_address=(CMD_R[3]+CMD_R[2]);
			; SOURCE LINE # 482
	MOV  	A,CMD_R+03H
	ADD  	A,CMD_R+02H
	MOV  	Reg_address+01H,A
	CLR  	A
	RLC  	A
	MOV  	Reg_address,A
;   if(((CMD_R[1]&0x80)==0))                       //Data Read Command
			; SOURCE LINE # 483
	MOV  	A,CMD_R+01H
	JNB  	ACC.7,$ + 6H
	LJMP 	?C0135
;  { 
			; SOURCE LINE # 484
;    switch (Reg_address)
			; SOURCE LINE # 485
	MOV  	A,Reg_address
	JZ   	$ + 5H
	LJMP 	?C0249
	MOV  	A,Reg_address+01H
	LCALL	?C?CCASE
	DW   	?C0137
	DB   	00H
	DW   	?C0148
	DB   	02H
	DW   	?C0245
	DB   	04H
	DW   	?C0230
	DB   	06H
	DW   	?C0237
	DB   	08H
	DW   	?C0241
	DB   	0AH
	DW   	?C0141
	DB   	010H
	DW   	?C0156
	DB   	012H
	DW   	?C0160
	DB   	014H
	DW   	?C0171
	DB   	016H
	DW   	?C0214
	DB   	018H
	DW   	?C0218
	DB   	01AH
	DW   	?C0222
	DB   	01CH
	DW   	?C0226
	DB   	01EH
	DW   	?C0179
	DB   	020H
	DW   	?C0182
	DB   	022H
	DW   	?C0186
	DB   	024H
	DW   	?C0190
	DB   	026H
	DW   	?C0194
	DB   	028H
	DW   	?C0198
	DB   	02AH
	DW   	?C0202
	DB   	02CH
	DW   	?C0206
	DB   	02EH
	DW   	?C0210
	DB   	034H
	DW   	00H
	DW   	?C0249
;    {
			; SOURCE LINE # 486
;    case 0x00:                                   //GET CCRV 0X00
			; SOURCE LINE # 487
?C0137:
;    if((CMD_R[1]&0x70)==0x00)
			; SOURCE LINE # 488
	MOV  	A,CMD_R+01H
	ANL  	A,#070H
	JZ   	$ + 5H
	LJMP 	?C0249
;    {
			; SOURCE LINE # 489
;    Buffer_send[0]=0x34;                         //command index
			; SOURCE LINE # 490
	MOV  	Buffer_send,#034H
;    Buffer_send[1]=0x00;                       
			; SOURCE LINE # 491
	MOV  	Buffer_send+01H,A
;    Buffer_send[2]=0x00;
			; SOURCE LINE # 492
	MOV  	Buffer_send+02H,A
;    Buffer_send[3]=0x20;                                        
			; SOURCE LINE # 493
	MOV  	Buffer_send+03H,#020H
;    Buffer_send[4]=0x11;
			; SOURCE LINE # 494
	MOV  	Buffer_send+04H,#011H
;    Buffer_send[5]=0x81;
			; SOURCE LINE # 495
	MOV  	Buffer_send+05H,#081H
;    Timing_Sync();
			; SOURCE LINE # 496
;    Write_Res_SD(Buffer_send[0]);
			; SOURCE LINE # 497
;    Write_Res_SD(Buffer_send[1]);
			; SOURCE LINE # 498
;    Write_Res_SD(Buffer_send[2]);
			; SOURCE LINE # 499
;    Write_Res_SD(Buffer_send[3]);
			; SOURCE LINE # 500
;    Write_Res_SD(Buffer_send[4]);
			; SOURCE LINE # 501
;    Write_Res_SD(Buffer_send[5]);
			; SOURCE LINE # 502
	LCALL	L?0337
?C0139:
;    while(SD_CLK_PIN==0);
			; SOURCE LINE # 503
	JNB  	SD_CLK_PIN,?C0139
?C0140:
;    SD_CMD_PIN=1;
			; SOURCE LINE # 504
	SETB 	SD_CMD_PIN
;    }
			; SOURCE LINE # 505
;    break;
			; SOURCE LINE # 506
	LJMP 	?C0249
;    case 0x10:                                   //GET CCRV 0X08  CARD CAPACITY REG
			; SOURCE LINE # 507
?C0141:
;    if((CMD_R[1]&0x70)==0x00)
			; SOURCE LINE # 508
	MOV  	A,CMD_R+01H
	ANL  	A,#070H
	JNZ  	?C0142
;    {
			; SOURCE LINE # 509
;    Buffer_send[0]=0x34;                         //command index
			; SOURCE LINE # 510
	MOV  	Buffer_send,#034H
;    Buffer_send[1]=0x00;                      
			; SOURCE LINE # 511
	MOV  	Buffer_send+01H,A
;    Buffer_send[2]=0x00;
			; SOURCE LINE # 512
	MOV  	Buffer_send+02H,A
;    Buffer_send[3]=0x20;                                          
			; SOURCE LINE # 513
	MOV  	Buffer_send+03H,#020H
;    Buffer_send[4]=0x40;
			; SOURCE LINE # 514
	MOV  	Buffer_send+04H,#040H
;    Buffer_send[5]=0x69;
			; SOURCE LINE # 515
	MOV  	Buffer_send+05H,#069H
;    //Buffer_send[4]=0x42;
;    //Buffer_send[5]=0x4d;
;    Timing_Sync();
			; SOURCE LINE # 518
;    Write_Res_SD(Buffer_send[0]);
			; SOURCE LINE # 519
;    Write_Res_SD(Buffer_send[1]);
			; SOURCE LINE # 520
;    Write_Res_SD(Buffer_send[2]);
			; SOURCE LINE # 521
;    Write_Res_SD(Buffer_send[3]);
			; SOURCE LINE # 522
;    Write_Res_SD(Buffer_send[4]);
			; SOURCE LINE # 523
;    Write_Res_SD(Buffer_send[5]);
			; SOURCE LINE # 524
	LCALL	L?0337
?C0143:
;    while(SD_CLK_PIN==0);
			; SOURCE LINE # 525
	JNB  	SD_CLK_PIN,?C0143
?C0144:
;    SD_CMD_PIN=1;
			; SOURCE LINE # 526
	SETB 	SD_CMD_PIN
;    }
			; SOURCE LINE # 527
	LJMP 	?C0249
?C0142:
;    else                                        //read 0x08 of function 1,DLL set
;    {                                    
			; SOURCE LINE # 529
;    Buffer_send[0]=0x34;                        //command index
			; SOURCE LINE # 530
	MOV  	Buffer_send,#034H
;    Buffer_send[1]=0x00;                      
			; SOURCE LINE # 531
	CLR  	A
	MOV  	Buffer_send+01H,A
;    Buffer_send[2]=0x00;
			; SOURCE LINE # 532
	MOV  	Buffer_send+02H,A
;    Buffer_send[3]=0x20;                                          
			; SOURCE LINE # 533
	MOV  	Buffer_send+03H,#020H
;    Buffer_send[4]=0x01;
			; SOURCE LINE # 534
	MOV  	Buffer_send+04H,#01H
;    Buffer_send[5]=crc7_CMD52[1];
			; SOURCE LINE # 535
	MOV  	DPTR,#crc7_CMD52+01H
;    Timing_Sync();
			; SOURCE LINE # 536
;    Write_Res_SD(Buffer_send[0]);
			; SOURCE LINE # 537
;    Write_Res_SD(Buffer_send[1]);
			; SOURCE LINE # 538
;    Write_Res_SD(Buffer_send[2]);
			; SOURCE LINE # 539
;    Write_Res_SD(Buffer_send[3]);
			; SOURCE LINE # 540
;    Write_Res_SD(Buffer_send[4]);
			; SOURCE LINE # 541
;    Write_Res_SD(Buffer_send[5]);
			; SOURCE LINE # 542
	LCALL	L?0336
?C0146:
;    while(SD_CLK_PIN==0);
			; SOURCE LINE # 543
	JNB  	SD_CLK_PIN,?C0146
?C0147:
;    SD_CMD_PIN=1;   
			; SOURCE LINE # 544
	SETB 	SD_CMD_PIN
;    }
			; SOURCE LINE # 545
;    break;  
			; SOURCE LINE # 546
	LJMP 	?C0249
;    case 0x02:                                  
			; SOURCE LINE # 547
?C0148:
;    if((CMD_R[1]&0x70)==0x00)
			; SOURCE LINE # 548
	MOV  	A,CMD_R+01H
	ANL  	A,#070H
	JZ   	$ + 5H
	LJMP 	?C0249
;    {
			; SOURCE LINE # 549
;    if(CMD_R[2]==0x00)                          //GET CCRV 0X01 SD REV
			; SOURCE LINE # 550
	MOV  	A,CMD_R+02H
	JNZ  	?C0150
;    {  
			; SOURCE LINE # 551
;    Buffer_send[0]=0x34;                        //command index
			; SOURCE LINE # 552
	MOV  	Buffer_send,#034H
;    Buffer_send[1]=0x00;                      
			; SOURCE LINE # 553
	MOV  	Buffer_send+01H,A
;    Buffer_send[2]=0x00;
			; SOURCE LINE # 554
	MOV  	Buffer_send+02H,A
;    Buffer_send[3]=0x20;                                          
			; SOURCE LINE # 555
	MOV  	Buffer_send+03H,#020H
;    Buffer_send[4]=0x01;
			; SOURCE LINE # 556
	MOV  	Buffer_send+04H,#01H
;    Buffer_send[5]=0xb3;
			; SOURCE LINE # 557
	MOV  	Buffer_send+05H,#0B3H
;    Timing_Sync();
			; SOURCE LINE # 558
;    Write_Res_SD(Buffer_send[0]);
			; SOURCE LINE # 559
;    Write_Res_SD(Buffer_send[1]);
			; SOURCE LINE # 560
;    Write_Res_SD(Buffer_send[2]);
			; SOURCE LINE # 561
;    Write_Res_SD(Buffer_send[3]);
			; SOURCE LINE # 562
;    Write_Res_SD(Buffer_send[4]);
			; SOURCE LINE # 563
;    Write_Res_SD(Buffer_send[5]);
			; SOURCE LINE # 564
	LCALL	L?0337
?C0151:
;    while(SD_CLK_PIN==0);
			; SOURCE LINE # 565
	JNB  	SD_CLK_PIN,?C0151
?C0152:
;    SD_CMD_PIN=1; 
			; SOURCE LINE # 566
	SETB 	SD_CMD_PIN
;    }//endif if(CMD_R[2]==0x00)
			; SOURCE LINE # 567
	LJMP 	?C0249
?C0150:
;    else                                        //GET FBR DEVICE CODE
;    {
			; SOURCE LINE # 569
;    Buffer_send[0]=0x34;                        //command index
			; SOURCE LINE # 570
	MOV  	Buffer_send,#034H
;    Buffer_send[1]=0x00;                      
			; SOURCE LINE # 571
	CLR  	A
	MOV  	Buffer_send+01H,A
;    Buffer_send[2]=0x00;
			; SOURCE LINE # 572
	MOV  	Buffer_send+02H,A
;    Buffer_send[3]=0x20;                                          
			; SOURCE LINE # 573
	MOV  	Buffer_send+03H,#020H
;    //Buffer_send[4]=0x00;
;    //Buffer_send[5]=0xa1;
;    Buffer_send[4]=0x01;                       //support standard uart
			; SOURCE LINE # 576
	MOV  	Buffer_send+04H,#01H
;    Buffer_send[5]=0xb3;
			; SOURCE LINE # 577
	MOV  	Buffer_send+05H,#0B3H
;    Timing_Sync();
			; SOURCE LINE # 578
;    Write_Res_SD(Buffer_send[0]);
			; SOURCE LINE # 579
;    Write_Res_SD(Buffer_send[1]);
			; SOURCE LINE # 580
;    Write_Res_SD(Buffer_send[2]);
			; SOURCE LINE # 581
;    Write_Res_SD(Buffer_send[3]);
			; SOURCE LINE # 582
;    Write_Res_SD(Buffer_send[4]);
			; SOURCE LINE # 583
;    Write_Res_SD(Buffer_send[5]);
			; SOURCE LINE # 584
	LCALL	L?0337
?C0154:
;    while(SD_CLK_PIN==0);
			; SOURCE LINE # 585
	JNB  	SD_CLK_PIN,?C0154
?C0155:
;    SD_CMD_PIN=1;
			; SOURCE LINE # 586
	SETB 	SD_CMD_PIN
;    }//end else
			; SOURCE LINE # 587
;    }//end if((CMD_R[1]&0x70)==0x00)
			; SOURCE LINE # 588
;    break;
			; SOURCE LINE # 589
	LJMP 	?C0249
;    case 0x12:                                  //GET CCRV 0X09 COMMON CIS BYTE1
			; SOURCE LINE # 590
?C0156:
;    if((CMD_R[1]&0x70)==0x00)
			; SOURCE LINE # 591
	MOV  	A,CMD_R+01H
	ANL  	A,#070H
	JZ   	$ + 5H
	LJMP 	?C0249
;    {
			; SOURCE LINE # 592
;    Buffer_send[0]=0x34;                        //command index
			; SOURCE LINE # 593
	MOV  	Buffer_send,#034H
;    Buffer_send[1]=0x00;                      
			; SOURCE LINE # 594
	MOV  	Buffer_send+01H,A
;    Buffer_send[2]=0x00;
			; SOURCE LINE # 595
	MOV  	Buffer_send+02H,A
;    Buffer_send[3]=0x20;                                          
			; SOURCE LINE # 596
	MOV  	Buffer_send+03H,#020H
;    Buffer_send[4]=0x00;
			; SOURCE LINE # 597
	MOV  	Buffer_send+04H,A
;    Buffer_send[5]=0xa1;
			; SOURCE LINE # 598
	MOV  	Buffer_send+05H,#0A1H
;    Timing_Sync();
			; SOURCE LINE # 599
;    Write_Res_SD(Buffer_send[0]);
			; SOURCE LINE # 600
;    Write_Res_SD(Buffer_send[1]);
			; SOURCE LINE # 601
;    Write_Res_SD(Buffer_send[2]);
			; SOURCE LINE # 602
;    Write_Res_SD(Buffer_send[3]);
			; SOURCE LINE # 603
;    Write_Res_SD(Buffer_send[4]);
			; SOURCE LINE # 604
;    Write_Res_SD(Buffer_send[5]); 
			; SOURCE LINE # 605
	LCALL	L?0337
?C0158:
;    while(SD_CLK_PIN==0);
			; SOURCE LINE # 606
	JNB  	SD_CLK_PIN,?C0158
?C0159:
;    SD_CMD_PIN=1;
			; SOURCE LINE # 607
	SETB 	SD_CMD_PIN
;    }
			; SOURCE LINE # 608
;    break; 
			; SOURCE LINE # 609
	LJMP 	?C0249
;    case 0x14:                                  //GET CCRV 0X0A COMMON CIS BYTE2
			; SOURCE LINE # 610
?C0160:
;    if((CMD_R[1]&0x70)==0x00)
			; SOURCE LINE # 611
	MOV  	A,CMD_R+01H
	ANL  	A,#070H
	JNZ  	?C0161
;    {
			; SOURCE LINE # 612
;     if(CMD_R[2]==0x00)
			; SOURCE LINE # 613
	MOV  	A,CMD_R+02H
	JNZ  	?C0162
;     {
			; SOURCE LINE # 614
;      Buffer_send[0]=0x34;                        //command index
			; SOURCE LINE # 615
	MOV  	Buffer_send,#034H
;      Buffer_send[1]=0x00;                      
			; SOURCE LINE # 616
	MOV  	Buffer_send+01H,A
;      Buffer_send[2]=0x00;
			; SOURCE LINE # 617
	MOV  	Buffer_send+02H,A
;      Buffer_send[3]=0x20;                                          
			; SOURCE LINE # 618
	MOV  	Buffer_send+03H,#020H
;      Buffer_send[4]=0x10;
			; SOURCE LINE # 619
	MOV  	Buffer_send+04H,#010H
;      Buffer_send[5]=0x93;
			; SOURCE LINE # 620
	MOV  	Buffer_send+05H,#093H
;      Timing_Sync();
			; SOURCE LINE # 621
;      Write_Res_SD(Buffer_send[0]);
			; SOURCE LINE # 622
;      Write_Res_SD(Buffer_send[1]);
			; SOURCE LINE # 623
;      Write_Res_SD(Buffer_send[2]);
			; SOURCE LINE # 624
;      Write_Res_SD(Buffer_send[3]);
			; SOURCE LINE # 625
;      Write_Res_SD(Buffer_send[4]);
			; SOURCE LINE # 626
;      Write_Res_SD(Buffer_send[5]); 
			; SOURCE LINE # 627
	LCALL	L?0337
?C0163:
;      while(SD_CLK_PIN==0);
			; SOURCE LINE # 628
	JNB  	SD_CLK_PIN,?C0163
?C0164:
;      SD_CMD_PIN=1;
			; SOURCE LINE # 629
	SETB 	SD_CMD_PIN
;      }//end if(CMD_R[2]==0x00)
			; SOURCE LINE # 630
	LJMP 	?C0249
?C0162:
;      else                                        //0X02+0X12,GET FBR CIS BYTE 1
;     {
			; SOURCE LINE # 632
;      Buffer_send[0]=0x34;                        //command index
			; SOURCE LINE # 633
	MOV  	Buffer_send,#034H
;      Buffer_send[1]=0x00;                      
			; SOURCE LINE # 634
	CLR  	A
	MOV  	Buffer_send+01H,A
;      Buffer_send[2]=0x00;
			; SOURCE LINE # 635
	MOV  	Buffer_send+02H,A
;      Buffer_send[3]=0x20;                                          
			; SOURCE LINE # 636
	MOV  	Buffer_send+03H,#020H
;      Buffer_send[4]=0x00;
			; SOURCE LINE # 637
	MOV  	Buffer_send+04H,A
;      Buffer_send[5]=0xa1;
			; SOURCE LINE # 638
	MOV  	Buffer_send+05H,#0A1H
;      Timing_Sync();
			; SOURCE LINE # 639
;      Write_Res_SD(Buffer_send[0]);
			; SOURCE LINE # 640
;      Write_Res_SD(Buffer_send[1]);
			; SOURCE LINE # 641
;      Write_Res_SD(Buffer_send[2]);
			; SOURCE LINE # 642
;      Write_Res_SD(Buffer_send[3]);
			; SOURCE LINE # 643
;      Write_Res_SD(Buffer_send[4]);
			; SOURCE LINE # 644
;      Write_Res_SD(Buffer_send[5]); 
			; SOURCE LINE # 645
	LCALL	L?0337
?C0166:
;      while(SD_CLK_PIN==0);
			; SOURCE LINE # 646
	JNB  	SD_CLK_PIN,?C0166
?C0167:
;      SD_CMD_PIN=1;
			; SOURCE LINE # 647
	SETB 	SD_CMD_PIN
;     }//end else   
			; SOURCE LINE # 648
;    }//end if((CMD_R[1]&0x70)==0x00)
			; SOURCE LINE # 6

⌨️ 快捷键说明

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