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

📄 main.lst

📁 PIC16F689驱动SD卡程序,可以实现对SD的ID读取和内存读取,并且可以通过串口调试精灵看到相应信息
💻 LST
📖 第 1 页 / 共 5 页
字号:
   488  05C2  08A0               	movf	_Init_Flag
   489  05C3  1903               	btfsc	3,2
   490  05C4  2DC9               	goto	l52
   491                           ;sd.h: 93: delay(8);
   492  05C5  3008               	movlw	8
   493  05C6  00E3               	movwf	?_delay
   494  05C7  01E4               	clrf	?_delay+1
   495  05C8  254B               	fcall	_delay
   496  05C9                     l52
   497  05C9  0AE2               	incf	?a_Write_Byte_MMC+1
   498  05CA  3008               	movlw	8
   499  05CB  0262               	subwf	?a_Write_Byte_MMC+1,w
   500  05CC  1803               	btfsc	3,0
   501  05CD  0008               	return
   502  05CE  2DA7               	goto	l46
   503  05CF                     _Read_Byte_MMC
   504                           ;	_i assigned to ?a_Read_Byte_MMC+0
   505  0000                     _Read_Byte_MMC$i	set	?a_Read_Byte_MMC
   506                           ;	_temp assigned to ?a_Read_Byte_MMC+1
   507  0000                     _Read_Byte_MMC$temp	set	?a_Read_Byte_MMC+1
   508                           ;sd.h: 97: unsigned char Read_Byte_MMC()
   509  05CF  0183               	clrf	3	;select bank 0
   510  05D0  01E2               	clrf	?a_Read_Byte_MMC+1
   511                           ;sd.h: 101: unsigned char i;
   512  05D1  1187               	bcf	7,3
   513                           ;sd.h: 105: for (i=0;i<8;i++)
   514  05D2  01E1               	clrf	?a_Read_Byte_MMC
   515  05D3                     l54
   516                           ;sd.h: 106: {
   517  05D3  1507               	bsf	7,2
   518                           ;sd.h: 108: RC6=0;
   519  05D4  1307               	bcf	7,6
   520                           ;sd.h: 109: if(Init_Flag)
   521  05D5  08A0               	movf	_Init_Flag
   522  05D6  1903               	btfsc	3,2
   523  05D7  2DDC               	goto	l57
   524                           ;sd.h: 110: delay(8);
   525  05D8  3008               	movlw	8
   526  05D9  00E3               	movwf	?_delay
   527  05DA  01E4               	clrf	?_delay+1
   528  05DB  254B               	fcall	_delay
   529  05DC                     l57
   530                           ;sd.h: 111: temp=(temp<<1)+(unsigned char)RC2;
   531  05DC  0862               	movf	?a_Read_Byte_MMC+1,w
   532  05DD  0762               	addwf	?a_Read_Byte_MMC+1,w
   533  05DE  00F0               	movwf	btemp
   534  05DF  3000               	movlw	0
   535  05E0  1907               	btfsc	7,2
   536  05E1  3001               	movlw	1
   537  05E2  0770               	addwf	btemp,w
   538  05E3  00E2               	movwf	?a_Read_Byte_MMC+1
   539                           ;sd.h: 112: RC6=1;
   540  05E4  1707               	bsf	7,6
   541                           ;sd.h: 113: if(Init_Flag)
   542  05E5  08A0               	movf	_Init_Flag
   543  05E6  1903               	btfsc	3,2
   544  05E7  2DEC               	goto	l58
   545                           ;sd.h: 114: delay(8);
   546  05E8  3008               	movlw	8
   547  05E9  00E3               	movwf	?_delay
   548  05EA  01E4               	clrf	?_delay+1
   549  05EB  254B               	fcall	_delay
   550  05EC                     l58
   551  05EC  0AE1               	incf	?a_Read_Byte_MMC
   552  05ED  3008               	movlw	8
   553  05EE  0261               	subwf	?a_Read_Byte_MMC,w
   554  05EF  1C03               	btfss	3,0
   555  05F0  2DD3               	goto	l54
   556                           ;sd.h: 115: }
   557  05F1  1587               	bsf	7,3
   558                           ;sd.h: 117: return (temp);
   559  05F2  0862               	movf	?a_Read_Byte_MMC+1,w
   560                           ;sd.h: 118: }
   561  05F3  0008               	return	;uses W
   562  05F4                     _main
   563                           ;	_string assigned to ?a_main+0
   564  0000                     _main$string	set	?a_main
   565                           ;main.c: 4: void main(void)
   566  05F4  3010               	movlw	16
   567  05F5  1283               	bcf	3,5
   568  05F6  1303               	bcf	3,6	;carry unused
   569  05F7  00E3               	movwf	?_delay
   570  05F8  3027               	movlw	39
   571  05F9  00E4               	movwf	?_delay+1
   572  05FA  254B               	fcall	_delay
   573                           ;main.c: 8: string="i love you";
   574  05FB  303B               	movlw	low u109
   575  05FC  00B7               	movwf	?a_main
   576  05FD  3000               	movlw	high u109
   577  05FE  00B8               	movwf	?a_main+1
   578                           ;main.c: 9: init();
   579  05FF  2538               	fcall	_init
   580                           ;main.c: 10: usart_initial();
   581  0600  252A               	fcall	_usart_initial
   582                           ;main.c: 11: MMC_Init();
   583  0601  267F  118A         	fcall	_MMC_Init
   584                           ;main.c: 12: delay(10000);
   585  0603  3010               	movlw	16
   586  0604  00E3               	movwf	?_delay
   587  0605  3027               	movlw	39
   588  0606  00E4               	movwf	?_delay+1
   589  0607  254B               	fcall	_delay
   590                           ;main.c: 13: delay(1000);
   591  0608  30E8               	movlw	232
   592  0609  00E3               	movwf	?_delay
   593  060A  3003               	movlw	3
   594  060B  00E4               	movwf	?_delay+1
   595  060C  254B               	fcall	_delay
   596                           ;main.c: 14: MMC_get_volume_info();
   597  060D  26F2  118A         	fcall	_MMC_get_volume_info
   598                           ;main.c: 15: send_s("my mp3 starting....");
   599  060F  30B0               	movlw	low u119
   600  0610  00CB               	movwf	?_send_s
   601  0611  3000               	movlw	high u119
   602  0612  00CC               	movwf	?_send_s+1
   603  0613  257C               	fcall	_send_s
   604                           ;main.c: 17: send_s("sin sound test.....");
   605  0614  30C4               	movlw	low u129
   606  0615  00CB               	movwf	?_send_s
   607  0616  3000               	movlw	high u129
   608  0617  00CC               	movwf	?_send_s+1
   609  0618  257C               	fcall	_send_s
   610                           ;main.c: 19: send_s("sin sound test is ok!!");
   611  0619  30F1               	movlw	low u139
   612  061A  00CB               	movwf	?_send_s
   613  061B  3000               	movlw	high u139
   614  061C  00CC               	movwf	?_send_s+1
   615  061D  257C               	fcall	_send_s
   616                           ;main.c: 20: send_s("Starting playing....");
   617  061E  309B               	movlw	low u149
   618  061F  00CB               	movwf	?_send_s
   619  0620  3000               	movlw	high u149
   620  0621  00CC               	movwf	?_send_s+1
   621  0622  257C               	fcall	_send_s
   622                           ;main.c: 23: }
   623  0623  0183               	clrf	3
   624  0624  118A  2813         	ljmp	start
   625  0626                     _Write_Command_MMC
   626                           ;	_CMD assigned to ?a_Write_Command_MMC+0
   627  0000                     _Write_Command_MMC$CMD	set	?a_Write_Command_MMC
   628                           ;	_tmp assigned to ?a_Write_Command_MMC+1
   629  0000                     _Write_Command_MMC$tmp	set	?a_Write_Command_MMC
      +                          +1
   630                           ;	_i assigned to ?a_Write_Command_MMC+2
   631  0000                     _Write_Command_MMC$i	set	?a_Write_Command_MMC+2
   632                           ;	_retry assigned to ?a_Write_Command_MMC+3
   633  0000                     _Write_Command_MMC$retry	set	?a_Write_Command_M
      +                          MC+3
   634                           ;_CMD stored from w
   635  0626  0183               	clrf	3	;select bank 0
   636  0627  00DD               	movwf	?a_Write_Command_MMC
   637                           ;sd.h: 119: unsigned char Write_Command_MMC(uns
      +                          igned char *CMD)
   638  0628  01E0               	clrf	?a_Write_Command_MMC+3
   639                           ;sd.h: 124: unsigned char i;
   640  0629  1787               	bsf	7,7
   641                           ;sd.h: 129: Write_Byte_MMC(0xFF);
   642  062A  30FF               	movlw	-1
   643  062B  25A3               	fcall	_Write_Byte_MMC
   644                           ;sd.h: 131: RC7=0;
   645  062C  1387               	bcf	7,7
   646                           ;sd.h: 134: for (i=0;i<0x06;i++)
   647  062D  01DF               	clrf	?a_Write_Command_MMC+2
   648  062E                     l60
   649                           ;sd.h: 135: {
   650  062E  0ADD               	incf	?a_Write_Command_MMC
   651  062F  035D               	decf	?a_Write_Command_MMC,w
   652  0630  0084               	movwf	4
   653  0631  1383               	bcf	3,7
   654  0632  0800               	movf	0,w
   655  0633  25A3               	fcall	_Write_Byte_MMC
   656  0634  0ADF               	incf	?a_Write_Command_MMC+2
   657  0635  3006               	movlw	6
   658  0636  025F               	subwf	?a_Write_Command_MMC+2,w
   659  0637  1C03               	btfss	3,0
   660  0638  2E2E               	goto	l60
   661                           ;sd.h: 137: }
   662  0639  25CF               	fcall	_Read_Byte_MMC
   663  063A                     l65
   664                           ;sd.h: 141: do
   665                           ;sd.h: 142: {
   666  063A  25CF               	fcall	_Read_Byte_MMC
   667  063B  00DE               	movwf	?a_Write_Command_MMC+1
   668                           ;sd.h: 144: retry++;
   669  063C  0AE0               	incf	?a_Write_Command_MMC+3
   670                           ;sd.h: 145: }
   671  063D  0F5E               	incfsz	?a_Write_Command_MMC+1,w
   672  063E  2E43               	goto	l64
   673  063F  3064               	movlw	100
   674  0640  0260               	subwf	?a_Write_Command_MMC+3,w
   675  0641  1C03               	btfss	3,0
   676  0642  2E3A               	goto	l65
   677  0643                     l64
   678                           ;sd.h: 147: return(tmp);
   679  0643  085E               	movf	?a_Write_Command_MMC+1,w
   680                           ;sd.h: 148: }
   681  0644  0008               	return	;uses W
   682  0645                     _MMC_Read_Block
   683                           ;	_CMD assigned to ?a_MMC_Read_Block+0
   684  0000                     _MMC_Read_Block$CMD	set	?a_MMC_Read_Block
   685                           ;	_temp assigned to ?a_MMC_Read_Block+1
   686  0000                     _MMC_Read_Block$temp	set	?a_MMC_Read_Block+1
   687                           ;	_i assigned to ?a_MMC_Read_Block+3
   688  0000                     _MMC_Read_Block$i	set	?a_MMC_Read_Block+3
   689                           ;	_retry assigned to ?a_MMC_Read_Block+5
   690  0000                     _MMC_Read_Block$retry	set	?a_MMC_Read_Block+5
   691                           ;_CMD stored from w
   692  0645  0183               	clrf	3	;select bank 0
   693  0646  00D6               	movwf	?a_MMC_Read_Block
   694                           ;sd.h: 203: unsigned char MMC_Read_Block(unsign
      +                          ed char *CMD,unsigned char *Buffer,unsigned int
      +                           Bytes)
   695  0647  01DB               	clrf	?a_MMC_Read_Block+5
   696  0648  01DC               	clrf	?a_MMC_Read_Block+6
   697  0649                     l81
   698                           ;sd.h: 211: do
   699                           ;sd.h: 212: {
   700  0649  0856               	movf	?a_MMC_Read_Block,w
   701  064A  2626               	fcall	_Write_Command_MMC
   702  064B  00D7               	movwf	?a_MMC_Read_Block+1
   703  064C  01D8               	clrf	?a_MMC_Read_Block+2
   704                           ;sd.h: 214: retry++;
   705  064D  0ADB               	incf	?a_MMC_Read_Block+5
   706  064E  1903               	btfsc	3,2
   707  064F  0ADC               	incf	?a_MMC_Read_Block+6
   708                           ;sd.h: 215: if(retry==100)
   709  0650  085B               	movf	?a_MMC_Read_Block+5,w
   710  0651  3A64               	xorlw	100
   711  0652  045C               	iorwf	?a_MMC_Read_Block+6,w
   712  0653  1903               	btfsc	3,2
   713                           ;sd.h: 216: {
   714  0654  3404               	retlw	4
   715                           ;sd.h: 218: }
   716  0655  0858               	movf	?a_MMC_Read_Block+2,w
   717  0656  0457               	iorwf	?a_MMC_Read_Block+1,w
   718  0657  1D03               	btfss	3,2
   719  0658  2E49               	goto	l81
   720                           ;sd.h: 223: while (Read_Byte_MMC()!=0xfe);
   721  0659                     l83
   722  0659  25CF               	fcall	_Read_Byte_MMC
   723  065A  3AFE               	xorlw	-2
   724  065B  1D03               	btfss	3,2
   725  065C  2E59               	goto	l83
   726                           ;sd.h: 226: for (i=0;i<Bytes;i++)
   727  065D  01D9               	clrf	?a_MMC_Read_Block+3
   728  065E  01DA               	clrf	?a_MMC_Read_Block+4
   729  065F                     l89
   730  065F  0855               	movf	?_MMC_Read_Block+2,w
   731  0660  025A               	subwf	?a_MMC_Read_Block+4,w
   732  0661  1D03               	btfss	3,2
   733  0662  2E65               	goto	u325

⌨️ 快捷键说明

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