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

📄 main.lst

📁 PIC16F689驱动SD卡程序,可以实现对SD的ID读取和内存读取,并且可以通过串口调试精灵看到相应信息
💻 LST
📖 第 1 页 / 共 5 页
字号:
   734  0663  0854               	movf	?_MMC_Read_Block+1,w
   735  0664  0259               	subwf	?a_MMC_Read_Block+3,w
   736  0665                     u325
   737  0665  1803               	btfsc	3,0
   738  0666  2E72               	goto	l87
   739                           ;sd.h: 227: {
   740  0667  0853               	movf	?_MMC_Read_Block,w
   741  0668  0084               	movwf	4
   742  0669  1383               	bcf	3,7
   743  066A  25CF               	fcall	_Read_Byte_MMC
   744  066B  1383               	bcf	3,7
   745  066C  0080               	movwf	0
   746  066D  0AD3               	incf	?_MMC_Read_Block
   747  066E  0AD9               	incf	?a_MMC_Read_Block+3
   748  066F  1903               	btfsc	3,2
   749  0670  0ADA               	incf	?a_MMC_Read_Block+4
   750  0671  2E5F               	goto	l89
   751  0672                     l87
   752                           ;sd.h: 229: }
   753  0672  25CF               	fcall	_Read_Byte_MMC
   754                           ;sd.h: 233: Read_Byte_MMC();
   755  0673  25CF               	fcall	_Read_Byte_MMC
   756                           ;sd.h: 236: RC7=1;
   757  0674  1787               	bsf	7,7
   758                           ;sd.h: 237: return(0);
   759  0675  3400               	retlw	0
   760  0676                     _MMC_Port_Init
   761                           ;sd.h: 58: void MMC_Port_Init()
   762  0676  0183               	clrf	3	;select bank 0
   763  0677  1707               	bsf	7,6
   764                           ;sd.h: 62: RC2 =1;
   765  0678  1507               	bsf	7,2
   766                           ;sd.h: 63: RC7=1;
   767  0679  1787               	bsf	7,7
   768                           ;sd.h: 64: send_s("Port Init!");
   769  067A  30D8               	movlw	low u19
   770  067B  00CB               	movwf	?_send_s
   771  067C  3000               	movlw	high u19
   772  067D  00CC               	movwf	?_send_s+1
   773  067E  2D7C               	ljmp	_send_s
   774  067F                     _MMC_Init
   775                           ;	_i assigned to ?a_MMC_Init+0
   776  0000                     _MMC_Init$i	set	?a_MMC_Init
   777                           ;	_temp assigned to ?a_MMC_Init+1
   778  0000                     _MMC_Init$temp	set	?a_MMC_Init+1
   779                           ;	_retry assigned to ?a_MMC_Init+2
   780  0000                     _MMC_Init$retry	set	?a_MMC_Init+2
   781                           ;	_CMD assigned to ?a_MMC_Init+3
   782  0000                     _MMC_Init$CMD	set	?a_MMC_Init+3
   783                           ;sd.h: 149: unsigned char MMC_Init()
   784  067F  3040               	movlw	64
   785  0680  0183               	clrf	3	;select bank 0
   786  0681  00BC               	movwf	?a_MMC_Init+3
   787  0682  01BD               	clrf	?a_MMC_Init+4
   788  0683  01BE               	clrf	?a_MMC_Init+5
   789  0684  01BF               	clrf	?a_MMC_Init+6
   790  0685  01C0               	clrf	?a_MMC_Init+7
   791  0686  3095               	movlw	-107
   792  0687  00C1               	movwf	?a_MMC_Init+8
   793                           ;sd.h: 155: send_s("SD CARD Init!");
   794  0688  30E3               	movlw	low u29
   795  0689  00CB               	movwf	?_send_s
   796  068A  3000               	movlw	high u29
   797  068B  00CC               	movwf	?_send_s+1
   798  068C  257C               	fcall	_send_s
   799                           ;sd.h: 156: MMC_Port_Init();
   800  068D  2676  118A         	fcall	_MMC_Port_Init
   801                           ;sd.h: 158: delay(200);
   802  068F  30C8               	movlw	200
   803  0690  00E3               	movwf	?_delay
   804  0691  01E4               	clrf	?_delay+1
   805  0692  254B               	fcall	_delay
   806                           ;sd.h: 160: Init_Flag=1;
   807  0693  01A0               	clrf	_Init_Flag
   808  0694  0AA0               	incf	_Init_Flag
   809                           ;sd.h: 162: for (i=0;i<0x0f;i++)
   810  0695  01B9               	clrf	?a_MMC_Init
   811  0696                     l67
   812                           ;sd.h: 163: {
   813  0696  30FF               	movlw	-1
   814  0697  25A3               	fcall	_Write_Byte_MMC
   815  0698  0AB9               	incf	?a_MMC_Init
   816  0699  300F               	movlw	15
   817  069A  0239               	subwf	?a_MMC_Init,w
   818  069B  1C03               	btfss	3,0
   819  069C  2E96               	goto	l67
   820                           ;sd.h: 165: }
   821  069D  3067               	movlw	low u39
   822  069E  00CB               	movwf	?_send_s
   823  069F  3000               	movlw	high u39
   824  06A0  00CC               	movwf	?_send_s+1
   825  06A1  257C               	fcall	_send_s
   826                           ;sd.h: 169: retry=0;
   827  06A2  01BB               	clrf	?a_MMC_Init+2
   828  06A3                     l72
   829                           ;sd.h: 170: do
   830                           ;sd.h: 171: {
   831  06A3  303C               	movlw	?a_MMC_Init+3
   832  06A4  2626               	fcall	_Write_Command_MMC
   833  06A5  00BA               	movwf	?a_MMC_Init+1
   834                           ;sd.h: 173: retry++;
   835  06A6  0ABB               	incf	?a_MMC_Init+2
   836                           ;sd.h: 174: if(retry==200)
   837  06A7  083B               	movf	?a_MMC_Init+2,w
   838  06A8  3AC8               	xorlw	-56
   839  06A9  1903               	btfsc	3,2
   840                           ;sd.h: 175: {
   841  06AA  3401               	retlw	1
   842                           ;sd.h: 177: }
   843  06AB  0B3A               	decfsz	?a_MMC_Init+1,w
   844  06AC  2EA3               	goto	l72
   845                           ;sd.h: 182: send_s("Send Command CMD1 to MMC/SD
      +                          -Card");
   846  06AD  3046               	movlw	low u49
   847  06AE  00CB               	movwf	?_send_s
   848  06AF  3000               	movlw	high u49
   849  06B0  00CC               	movwf	?_send_s+1
   850  06B1  257C               	fcall	_send_s
   851                           ;sd.h: 183: CMD[0] = 0x41;
   852  06B2  3041               	movlw	65
   853  06B3  00BC               	movwf	?a_MMC_Init+3
   854                           ;sd.h: 184: CMD[5] = 0xFF;
   855  06B4  30FF               	movlw	-1
   856  06B5  00C1               	movwf	?a_MMC_Init+8
   857                           ;sd.h: 185: retry=0;
   858  06B6  01BB               	clrf	?a_MMC_Init+2
   859  06B7                     l76
   860                           ;sd.h: 186: do
   861                           ;sd.h: 187: {
   862  06B7  303C               	movlw	?a_MMC_Init+3
   863  06B8  2626               	fcall	_Write_Command_MMC
   864  06B9  00BA               	movwf	?a_MMC_Init+1
   865                           ;sd.h: 189: retry++;
   866  06BA  0ABB               	incf	?a_MMC_Init+2
   867                           ;sd.h: 190: if(retry==100)
   868  06BB  083B               	movf	?a_MMC_Init+2,w
   869  06BC  3A64               	xorlw	100
   870  06BD  1903               	btfsc	3,2
   871                           ;sd.h: 191: {
   872  06BE  3402               	retlw	2
   873                           ;sd.h: 193: }
   874  06BF  08BA               	movf	?a_MMC_Init+1
   875  06C0  1D03               	btfss	3,2
   876  06C1  2EB7               	goto	l76
   877                           ;sd.h: 197: Init_Flag=0;
   878  06C2  01A0               	clrf	_Init_Flag
   879                           ;sd.h: 199: RC7=1;
   880  06C3  1787               	bsf	7,7
   881                           ;sd.h: 200: send_s("SD CARD Init Suc!!");
   882  06C4  3023               	movlw	low u59
   883  06C5  00CB               	movwf	?_send_s
   884  06C6  3001               	movlw	high u59
   885  06C7  00CC               	movwf	?_send_s+1
   886  06C8  257C               	fcall	_send_s
   887                           ;sd.h: 201: return(0x55);
   888  06C9  3455               	retlw	85
   889  06CA                     _Read_CID_MMC
   890                           ;	_Buffer assigned to ?a_Read_CID_MMC+0
   891  0000                     _Read_CID_MMC$Buffer	set	?a_Read_CID_MMC
   892                           ;	_temp assigned to ?a_Read_CID_MMC+1
   893  0000                     _Read_CID_MMC$temp	set	?a_Read_CID_MMC+1
   894                           ;	_CMD assigned to ?a_Read_CID_MMC+2
   895  0000                     _Read_CID_MMC$CMD	set	?a_Read_CID_MMC+2
   896                           ;_Buffer stored from w
   897  06CA  0183               	clrf	3	;select bank 0
   898  06CB  00CB               	movwf	?a_Read_CID_MMC
   899                           ;sd.h: 249: unsigned char Read_CID_MMC(unsigned
      +                           char *Buffer)
   900  06CC  304A               	movlw	74
   901  06CD  00CD               	movwf	?a_Read_CID_MMC+2
   902  06CE  01CE               	clrf	?a_Read_CID_MMC+3
   903  06CF  01CF               	clrf	?a_Read_CID_MMC+4
   904  06D0  01D0               	clrf	?a_Read_CID_MMC+5
   905  06D1  01D1               	clrf	?a_Read_CID_MMC+6
   906  06D2  30FF               	movlw	-1
   907  06D3  00D2               	movwf	?a_Read_CID_MMC+7
   908                           ;sd.h: 254: unsigned char temp;
   909  06D4  084B               	movf	?a_Read_CID_MMC,w
   910  06D5  00D3               	movwf	?_MMC_Read_Block
   911  06D6  3010               	movlw	16
   912  06D7  00D4               	movwf	?_MMC_Read_Block+1
   913  06D8  01D5               	clrf	?_MMC_Read_Block+2
   914  06D9  304D               	movlw	?a_Read_CID_MMC+2
   915  06DA  2645  118A         	fcall	_MMC_Read_Block
   916  06DC  00CC               	movwf	?a_Read_CID_MMC+1
   917                           ;sd.h: 258: }
   918  06DD  0008               	return	;uses W
   919  06DE                     _Read_CSD_MMC
   920                           ;	_Buffer assigned to ?a_Read_CSD_MMC+0
   921  0000                     _Read_CSD_MMC$Buffer	set	?a_Read_CSD_MMC
   922                           ;	_temp assigned to ?a_Read_CSD_MMC+1
   923  0000                     _Read_CSD_MMC$temp	set	?a_Read_CSD_MMC+1
   924                           ;	_CMD assigned to ?a_Read_CSD_MMC+2
   925  0000                     _Read_CSD_MMC$CMD	set	?a_Read_CSD_MMC+2
   926                           ;_Buffer stored from w
   927  06DE  0183               	clrf	3	;select bank 0
   928  06DF  00CB               	movwf	?a_Read_CSD_MMC
   929                           ;sd.h: 239: unsigned char Read_CSD_MMC(unsigned
      +                           char *Buffer)
   930  06E0  3049               	movlw	73
   931  06E1  00CD               	movwf	?a_Read_CSD_MMC+2
   932  06E2  01CE               	clrf	?a_Read_CSD_MMC+3
   933  06E3  01CF               	clrf	?a_Read_CSD_MMC+4
   934  06E4  01D0               	clrf	?a_Read_CSD_MMC+5
   935  06E5  01D1               	clrf	?a_Read_CSD_MMC+6
   936  06E6  30FF               	movlw	-1
   937  06E7  00D2               	movwf	?a_Read_CSD_MMC+7
   938                           ;sd.h: 244: unsigned char temp;
   939  06E8  084B               	movf	?a_Read_CSD_MMC,w
   940  06E9  00D3               	movwf	?_MMC_Read_Block
   941  06EA  3010               	movlw	16
   942  06EB  00D4               	movwf	?_MMC_Read_Block+1
   943  06EC  01D5               	clrf	?_MMC_Read_Block+2
   944  06ED  304D               	movlw	?a_Read_CSD_MMC+2
   945  06EE  2645  118A         	fcall	_MMC_Read_Block
   946  06F0  00CC               	movwf	?a_Read_CSD_MMC+1
   947                           ;sd.h: 248: }
   948  06F1  0008               	return	;uses W
   949  06F2                     _MMC_get_volume_info
   950                           ;	_i assigned to ?a_MMC_get_volume_info+0
   951  0000                     _MMC_get_volume_info$i	set	?a_MMC_get_volume_in
      +                          fo
   952                           ;	_vinf assigned to ?a_MMC_get_volume_info+1
   953  0000                     _MMC_get_volume_info$vinf	set	?a_MMC_get_volume
      +                          _info+1
   954                           ;	_c_temp assigned to ?a_MMC_get_volume_info+2
   955  0000                     _MMC_get_volume_info$c_temp	set	?a_MMC_get_volu
      +                          me_info+2
   956                           ;	_MMC_volume_Info assigned to ?a_MMC_get_volum
      +                          e_info+7
   957  0000                     _MMC_get_volume_info$MMC_volume_Info	set	?a_MMC
      +                          _get_volume_info+7
   958                           ;sd.h: 259: void MMC_get_volume_info(void)
   959  06F2  3008               	movlw	low u69
   960  06F3  0183               	clrf	3	;select bank 0
   961  06F4  00CB               	movwf	?_send_s
   962  06F5  3001               	movlw	high u69
   963  06F6  00CC               	movwf	?_send_s+1
   964  06F7  257C               	fcall	_send_s
   965                           ;sd.h: 265: vinf=&MMC_volume_Info;
   966  06F8  3040               	movlw	?a_MMC_get_volume_info+7
   967  06F9  00BA               	movwf	?a_MMC_get_volume_info+1
   968                           ;sd.h: 266: Read_CSD_MMC(sectorBuffer.dat);
   969  06FA  3023               	movlw	_sectorBuffer
   970  06FB  26DE  118A         	fcall	_Read_CSD_MMC
   971                           ;sd.h: 267: vinf->sector_count = sectorBuffer.d
      +                          at[6] & 0x03;
   972  06FD  0829               	movf	_sectorBuffer+6,w
   973  06FE  3903               	andlw	3
   974  06FF  00F0               	movwf	btemp
   975  0700  01F1               	clrf	btemp+1

⌨️ 快捷键说明

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