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

📄 main.lst

📁 PIC16F689驱动SD卡程序,可以实现对SD的ID读取和内存读取,并且可以通过串口调试精灵看到相应信息
💻 LST
📖 第 1 页 / 共 5 页
字号:
   976  0701  083A               	movf	?a_MMC_get_volume_info+1,w
   977  0702  3E03               	addlw	3
   978  0703  0084               	movwf	4
   979  0704  1383               	bcf	3,7
   980  0705  0870               	movf	btemp,w
   981  0706  0080               	movwf	0
   982  0707  0A84               	incf	4
   983  0708  0871               	movf	btemp+1,w
   984  0709  0080               	movwf	0
   985                           ;sd.h: 268: vinf->sector_count <<= 8;
   986  070A  083A               	movf	?a_MMC_get_volume_info+1,w
   987  070B  3E03               	addlw	3
   988  070C  0084               	movwf	4
   989  070D  1383               	bcf	3,7
   990  070E  0800               	movf	0,w
   991  070F  0180               	clrf	0
   992  0710  0A84               	incf	4
   993  0711  0080               	movwf	0
   994  0712  0384               	decf	4
   995                           ;sd.h: 269: vinf->sector_count += sectorBuffer.
      +                          dat[7];
   996  0713  083A               	movf	?a_MMC_get_volume_info+1,w
   997  0714  3E03               	addlw	3
   998  0715  0084               	movwf	4
   999  0716  1383               	bcf	3,7
  1000  0717  082A               	movf	_sectorBuffer+7,w
  1001  0718  0780               	addwf	0
  1002  0719  0A84               	incf	4
  1003  071A  1803               	btfsc	3,0
  1004  071B  0A80               	incf	0
  1005                           ;sd.h: 270: vinf->sector_count <<= 2;
  1006  071C  3002               	movlw	2
  1007  071D  00F0               	movwf	btemp
  1008  071E  083A               	movf	?a_MMC_get_volume_info+1,w
  1009  071F  3E03               	addlw	3
  1010  0720  0084               	movwf	4
  1011  0721  1383               	bcf	3,7
  1012  0722  0A70               	incf	btemp,w
  1013  0723  00F1               	movwf	btemp+1
  1014  0724  2F2A               	goto	u330
  1015  0725                     u335
  1016  0725  1003               	bcf	3,0
  1017  0726  0D80               	rlf	0
  1018  0727  0F84               	incfsz	4
  1019  0728  0D80               	rlf	0
  1020  0729  0384               	decf	4
  1021  072A                     u330
  1022  072A  0BF1               	decfsz	btemp+1
  1023  072B  2F25               	goto	u335
  1024                           ;sd.h: 271: vinf->sector_count += (sectorBuffer
      +                          .dat[8] & 0xc0) >> 6;
  1025  072C  083A               	movf	?a_MMC_get_volume_info+1,w
  1026  072D  3E03               	addlw	3
  1027  072E  0084               	movwf	4
  1028  072F  1383               	bcf	3,7
  1029  0730  082B               	movf	_sectorBuffer+8,w
  1030  0731  39C0               	andlw	-64
  1031  0732  00F0               	movwf	btemp
  1032  0733  3006               	movlw	6
  1033  0734  00F1               	movwf	btemp+1
  1034  0735                     u345
  1035  0735  1003               	bcf	3,0
  1036  0736  0CF0               	rrf	btemp
  1037  0737  0BF1               	decfsz	btemp+1
  1038  0738  2F35               	goto	u345
  1039  0739  0870               	movf	btemp,w
  1040  073A  0780               	addwf	0
  1041  073B  0A84               	incf	4
  1042  073C  1803               	btfsc	3,0
  1043  073D  0A80               	incf	0
  1044                           ;sd.h: 272: vinf->sector_multiply = sectorBuffe
      +                          r.dat[9] & 0x03;
  1045  073E  083A               	movf	?a_MMC_get_volume_info+1,w
  1046  073F  3E02               	addlw	2
  1047  0740  0084               	movwf	4
  1048  0741  1383               	bcf	3,7
  1049  0742  082C               	movf	_sectorBuffer+9,w
  1050  0743  3903               	andlw	3
  1051  0744  0080               	movwf	0
  1052                           ;sd.h: 273: vinf->sector_multiply <<= 1;
  1053  0745  083A               	movf	?a_MMC_get_volume_info+1,w
  1054  0746  3E02               	addlw	2
  1055  0747  0084               	movwf	4
  1056  0748  1383               	bcf	3,7
  1057  0749  1003               	bcf	3,0
  1058  074A  0D80               	rlf	0
  1059                           ;sd.h: 274: vinf->sector_multiply += (sectorBuf
      +                          fer.dat[10] & 0x80) >> 7;
  1060  074B  083A               	movf	?a_MMC_get_volume_info+1,w
  1061  074C  3E02               	addlw	2
  1062  074D  0084               	movwf	4
  1063  074E  1383               	bcf	3,7
  1064  074F  082D               	movf	_sectorBuffer+10,w
  1065  0750  3980               	andlw	-128
  1066  0751  00F0               	movwf	btemp
  1067  0752  3007               	movlw	7
  1068  0753  00F1               	movwf	btemp+1
  1069  0754                     u355
  1070  0754  1003               	bcf	3,0
  1071  0755  0CF0               	rrf	btemp
  1072  0756  0BF1               	decfsz	btemp+1
  1073  0757  2F54               	goto	u355
  1074  0758  0870               	movf	btemp,w
  1075  0759  0780               	addwf	0
  1076                           ;sd.h: 275: vinf->size_MB = vinf->sector_count 
      +                          >> (9-vinf->sector_multiply);
  1077  075A  083A               	movf	?a_MMC_get_volume_info+1,w
  1078  075B  3E02               	addlw	2
  1079  075C  0084               	movwf	4
  1080  075D  1383               	bcf	3,7
  1081  075E  0800               	movf	0,w
  1082  075F  3C09               	sublw	9
  1083  0760  00F2               	movwf	btemp+2
  1084  0761  083A               	movf	?a_MMC_get_volume_info+1,w
  1085  0762  3E03               	addlw	3
  1086  0763  0084               	movwf	4
  1087  0764  1383               	bcf	3,7
  1088  0765  0800               	movf	0,w
  1089  0766  00F0               	movwf	btemp
  1090  0767  0A84               	incf	4
  1091  0768  0800               	movf	0,w
  1092  0769  00F1               	movwf	btemp+1
  1093  076A  0AF2               	incf	btemp+2
  1094  076B  2F6F               	goto	u364
  1095  076C                     u365
  1096  076C  1003               	bcf	3,0
  1097  076D  0CF1               	rrf	btemp+1
  1098  076E  0CF0               	rrf	btemp
  1099  076F                     u364
  1100  076F  0BF2               	decfsz	btemp+2
  1101  0770  2F6C               	goto	u365
  1102  0771  083A               	movf	?a_MMC_get_volume_info+1,w
  1103  0772  0084               	movwf	4
  1104  0773  1383               	bcf	3,7
  1105  0774  0870               	movf	btemp,w
  1106  0775  0080               	movwf	0
  1107  0776  0A84               	incf	4
  1108  0777  0871               	movf	btemp+1,w
  1109  0778  0080               	movwf	0
  1110                           ;sd.h: 277: Read_CID_MMC(sectorBuffer.dat);
  1111  0779  3023               	movlw	_sectorBuffer
  1112  077A  26CA  118A         	fcall	_Read_CID_MMC
  1113                           ;sd.h: 279: vinf->name[0]=sectorBuffer.dat[3];
  1114  077C  083A               	movf	?a_MMC_get_volume_info+1,w
  1115  077D  3E05               	addlw	5
  1116  077E  0084               	movwf	4
  1117  077F  1383               	bcf	3,7
  1118  0780  0826               	movf	_sectorBuffer+3,w
  1119  0781  0080               	movwf	0
  1120                           ;sd.h: 280: vinf->name[1] = sectorBuffer.dat[4]
      +                          ;
  1121  0782  083A               	movf	?a_MMC_get_volume_info+1,w
  1122  0783  3E06               	addlw	6
  1123  0784  0084               	movwf	4
  1124  0785  1383               	bcf	3,7
  1125  0786  0827               	movf	_sectorBuffer+4,w
  1126  0787  0080               	movwf	0
  1127                           ;sd.h: 281: vinf->name[2] = sectorBuffer.dat[5]
      +                          ;
  1128  0788  083A               	movf	?a_MMC_get_volume_info+1,w
  1129  0789  3E07               	addlw	7
  1130  078A  0084               	movwf	4
  1131  078B  1383               	bcf	3,7
  1132  078C  0828               	movf	_sectorBuffer+5,w
  1133  078D  0080               	movwf	0
  1134                           ;sd.h: 282: vinf->name[3] = sectorBuffer.dat[6]
      +                          ;
  1135  078E  083A               	movf	?a_MMC_get_volume_info+1,w
  1136  078F  3E08               	addlw	8
  1137  0790  0084               	movwf	4
  1138  0791  1383               	bcf	3,7
  1139  0792  0829               	movf	_sectorBuffer+6,w
  1140  0793  0080               	movwf	0
  1141                           ;sd.h: 283: vinf->name[4] = sectorBuffer.dat[7]
      +                          ;
  1142  0794  083A               	movf	?a_MMC_get_volume_info+1,w
  1143  0795  3E09               	addlw	9
  1144  0796  0084               	movwf	4
  1145  0797  1383               	bcf	3,7
  1146  0798  082A               	movf	_sectorBuffer+7,w
  1147  0799  0080               	movwf	0
  1148                           ;sd.h: 284: vinf->name[5] = 0x00;
  1149  079A  083A               	movf	?a_MMC_get_volume_info+1,w
  1150  079B  3E0A               	addlw	10
  1151  079C  0084               	movwf	4
  1152  079D  1383               	bcf	3,7
  1153  079E  0180               	clrf	0
  1154                           ;sd.h: 286: i=0;
  1155  079F  01B9               	clrf	?a_MMC_get_volume_info
  1156                           ;sd.h: 287: send_s("Product Name:");
  1157  07A0  308D               	movlw	low u79
  1158  07A1  00CB               	movwf	?_send_s
  1159  07A2  3000               	movlw	high u79
  1160  07A3  00CC               	movwf	?_send_s+1
  1161  07A4  257C               	fcall	_send_s
  1162                           ;sd.h: 288: send_s(vinf->name);
  1163  07A5  083A               	movf	?a_MMC_get_volume_info+1,w
  1164  07A6  3E05               	addlw	5
  1165  07A7  00CB               	movwf	?_send_s
  1166  07A8  3080               	movlw	128
  1167  07A9  00CC               	movwf	?_send_s+1
  1168  07AA  257C               	fcall	_send_s
  1169                           ;sd.h: 289: send_s("Tot:");
  1170  07AB  3088               	movlw	low u89
  1171  07AC  00CB               	movwf	?_send_s
  1172  07AD  3000               	movlw	high u89
  1173  07AE  00CC               	movwf	?_send_s+1
  1174  07AF  257C               	fcall	_send_s
  1175                           ;sd.h: 290: int_to_char(vinf->size_MB,c_temp);
  1176  07B0  083A               	movf	?a_MMC_get_volume_info+1,w
  1177  07B1  0084               	movwf	4
  1178  07B2  1383               	bcf	3,7
  1179  07B3  0800               	movf	0,w
  1180  07B4  00CB               	movwf	?_int_to_char
  1181  07B5  0A84               	incf	4
  1182  07B6  0800               	movf	0,w
  1183  07B7  00CC               	movwf	?_int_to_char+1
  1184  07B8  303B               	movlw	?a_MMC_get_volume_info+2
  1185  07B9  00CD               	movwf	?_int_to_char+2
  1186  07BA  24BA  118A         	fcall	_int_to_char
  1187                           ;sd.h: 292: send_s(c_temp);
  1188  07BC  303B               	movlw	?a_MMC_get_volume_info+2
  1189  07BD  00CB               	movwf	?_send_s
  1190  07BE  3080               	movlw	128
  1191  07BF  00CC               	movwf	?_send_s+1
  1192  07C0  257C               	fcall	_send_s
  1193                           ;sd.h: 293: send_s("MB ");
  1194  07C1  3036               	movlw	low u99
  1195  07C2  00CB               	movwf	?_send_s
  1196  07C3  3001               	movlw	high u99
  1197  07C4  00CC               	movwf	?_send_s+1
  1198  07C5  2D7C               	ljmp	_send_s
  1199                           
  1200                           	psect	text9
  1201  0498                     _delay1
  1202                           ;sd.h: 51: void delay1(unsigned int time)
  1203  0498                     l41
  1204  0498  0183               	clrf	3	;select bank 0
  1205  0499  0837               	movf	?_delay1,w
  1206  049A  1903               	btfsc	3,2
  1207  049B  03B8               	decf	?_delay1+1
  1208  049C  03B7               	decf	?_delay1
  1209  049D  0A37               	incf	?_delay1,w
  1210  049E  1903               	btfsc	3,2
  1211  049F  0A38               	incf	?_delay1+1,w
  1212  04A0  1903               	btfsc	3,2

⌨️ 快捷键说明

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