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

📄 sd_test.asm

📁 mmc/sd卡的实现源码
💻 ASM
📖 第 1 页 / 共 5 页
字号:
$0508	$0E07	MOVLW	7
$050A	$255D	ADDWF	sd_test_printhex_local_hix, W, 1
$050C	$6F5D	MOVWF	sd_test_printhex_local_hix, 1
$050E	$	SD_test_L_7:
$050E	$	SD_test_L_4:
$050E	$0E0F	MOVLW	15
$0510	$155F	ANDWF	sd_test_printhex_param_ix, W, 1
$0512	$6F5E	MOVWF	sd_test_printhex_local_lox, 1
$0514	$0E30	MOVLW	$30
$0516	$275E	ADDWF	sd_test_printhex_local_lox, F, 1
$0518	$0E39	MOVLW	57
$051A	$6E02	MOVWF	STACK_2, 0
$051C	$515E	MOVF	sd_test_printhex_local_lox, W, 1
$051E	$5C02	SUBWF	STACK_2, W, 0
$0520	$E203	BC	SD_test_L_9
$0522	$	SD_test_L_8:
$0522	$0EFF	MOVLW	255
$0524	$6E01	MOVWF	STACK_1, 0
$0526	$D001	BRA	SD_test_L_11
$0528	$	SD_test_L_9:
$0528	$6A01	CLRF	STACK_1, 0
$052A	$	SD_test_L_11:
$052A	$0EFF	MOVLW	255
$052C	$5C01	SUBWF	STACK_1, W, 0
$052E	$E103	BNZ	SD_test_L_13
$0530	$	SD_test_L_12:
$0530	$0E07	MOVLW	7
$0532	$255E	ADDWF	sd_test_printhex_local_lox, W, 1
$0534	$6F5E	MOVWF	sd_test_printhex_local_lox, 1
$0536	$	SD_test_L_13:
$0536	$	SD_test_L_10:
$0536	$515D	MOVF	sd_test_printhex_local_hix, W, 1
$0538	$6F6B	MOVWF	usartlib_u_a_usart_write_param_data, 1
$053A	$EC23	F000	CALL	usartlib_u_a_usart_write
$053E	$515E	MOVF	sd_test_printhex_local_lox, W, 1
$0540	$6F6B	MOVWF	usartlib_u_a_usart_write_param_data, 1
$0542	$EC23	F000	CALL	usartlib_u_a_usart_write
$0546	$0012	RETURN
$0548	$	sdlib_sd_read_csd:
$0548	$0102	MOVLB	2
$054A	$6B5E	CLRF	sdlib_sd_read_csd_local_i, 1
$054C	$	sdlib_L_88:
$054C	$0E0F	MOVLW	15
$054E	$6E01	MOVWF	STACK_1, 0
$0550	$515E	MOVF	sdlib_sd_read_csd_local_i, W, 1
$0552	$5C01	SUBWF	STACK_1, W, 0
$0554	$E30C	BNC	sdlib_L_90
$0556	$	sdlib_L_89:
$0556	$515F	MOVF	sdlib_sd_read_csd_param_data_for_registers_1, W, 1
$0558	$6EE9	MOVWF	FSR0L, 0
$055A	$5160	MOVF	sdlib_sd_read_csd_param_data_for_registers_2, W, 1
$055C	$6EEA	MOVWF	FSR0H, 0
$055E	$515E	MOVF	sdlib_sd_read_csd_local_i, W, 1
$0560	$26E9	ADDWF	FSR0L, F, 0
$0562	$E301	BNC	sdlib_L_91
$0564	$2AEA	INCF	FSR0H, F, 0
$0566	$	sdlib_L_91:
$0566	$0E00	MOVLW	0
$0568	$6EEF	MOVWF	INDF0, 0
$056A	$2B5E	INCF	sdlib_sd_read_csd_local_i, F, 1
$056C	$D7EF	BRA	sdlib_L_88
$056E	$	sdlib_L_90:
$056E	$0E09	MOVLW	9
$0570	$6F6F	MOVWF	sdlib_sd_send_command_param_partial_cmm, 1
$0572	$6B70	CLRF	sdlib_sd_send_command_param_address_1, 1
$0574	$6B71	CLRF	sdlib_sd_send_command_param_address_2, 1
$0576	$6B72	CLRF	sdlib_sd_send_command_param_address_3, 1
$0578	$6B73	CLRF	sdlib_sd_send_command_param_address_4, 1
$057A	$0EFF	MOVLW	255
$057C	$6F74	MOVWF	sdlib_sd_send_command_param_crc, 1
$057E	$EC67	F000	CALL	sdlib_sd_send_command
$0582	$0E00	MOVLW	0
$0584	$5D6B	SUBWF	sdlib_sd_send_command_local_result, W, 1
$0586	$E003	BZ	sdlib_L_93
$0588	$	sdlib_L_92:
$0588	$0EFF	MOVLW	255
$058A	$6E01	MOVWF	STACK_1, 0
$058C	$D001	BRA	sdlib_L_95
$058E	$	sdlib_L_93:
$058E	$6A01	CLRF	STACK_1, 0
$0590	$	sdlib_L_95:
$0590	$0EFF	MOVLW	255
$0592	$5C01	SUBWF	STACK_1, W, 0
$0594	$E103	BNZ	sdlib_L_97
$0596	$	sdlib_L_96:
$0596	$0E01	MOVLW	1
$0598	$6F5D	MOVWF	sdlib_sd_read_csd_local_result, 1
$059A	$0012	return
$059C	$	sdlib_L_97:
$059C	$	sdlib_L_94:
$059C	$6B5E	CLRF	sdlib_sd_read_csd_local_i, 1
$059E	$	sdlib_L_98:
$059E	$0E0F	MOVLW	15
$05A0	$6E01	MOVWF	STACK_1, 0
$05A2	$515E	MOVF	sdlib_sd_read_csd_local_i, W, 1
$05A4	$5C01	SUBWF	STACK_1, W, 0
$05A6	$E310	BNC	sdlib_L_100
$05A8	$	sdlib_L_99:
$05A8	$0EFF	MOVLW	255
$05AA	$6F76	MOVWF	sdlib_sd_spi_param_data_out, 1
$05AC	$EC1B	F000	CALL	sdlib_sd_spi
$05B0	$515F	MOVF	sdlib_sd_read_csd_param_data_for_registers_1, W, 1
$05B2	$6EE9	MOVWF	FSR0L, 0
$05B4	$5160	MOVF	sdlib_sd_read_csd_param_data_for_registers_2, W, 1
$05B6	$6EEA	MOVWF	FSR0H, 0
$05B8	$515E	MOVF	sdlib_sd_read_csd_local_i, W, 1
$05BA	$26E9	ADDWF	FSR0L, F, 0
$05BC	$E301	BNC	sdlib_L_101
$05BE	$2AEA	INCF	FSR0H, F, 0
$05C0	$	sdlib_L_101:
$05C0	$5175	MOVF	sdlib_sd_spi_local_result, W, 1
$05C2	$6EEF	MOVWF	INDF0, 0
$05C4	$2B5E	INCF	sdlib_sd_read_csd_local_i, F, 1
$05C6	$D7EB	BRA	sdlib_L_98
$05C8	$	sdlib_L_100:
$05C8	$6B5D	CLRF	sdlib_sd_read_csd_local_result, 1
$05CA	$0012	RETURN
$05CC	$	lcd_lcd_cmd:
$05CC	$0102	MOVLB	2
$05CE	$C020	FFE9	MOVFF  LCD_MAIN_GLOBAL_PORTADDRESS_1, FSR0L
$05D2	$C021	FFEA	MOVFF  LCD_MAIN_GLOBAL_PORTADDRESS_2, FSR0H
$05D6	$6AEF	CLRF INDF0, 0
$05D8	$BF5D	BTFSC LCD_LCD_CMD_PARAM_OUT_CHAR, 7, 1
$05DA	$8EEF	BSF INDF0, ___DB7, 0
$05DC	$BD5D	BTFSC LCD_LCD_CMD_PARAM_OUT_CHAR, 6, 1
$05DE	$8CEF	BSF INDF0, ___DB6, 0
$05E0	$BB5D	BTFSC LCD_LCD_CMD_PARAM_OUT_CHAR, 5, 1
$05E2	$8AEF	BSF INDF0, ___DB5, 0
$05E4	$B95D	BTFSC LCD_LCD_CMD_PARAM_OUT_CHAR, 4, 1
$05E6	$88EF	BSF INDF0, ___DB4, 0
$05E8	$0E01	MOVLW	1
$05EA	$5C22	SUBWF	lcd_main_global_cmd, W, 0
$05EC	$E103	BNZ	lcd_L_1
$05EE	$	lcd_L_0:
$05EE	$0EFF	MOVLW	255
$05F0	$6E01	MOVWF	STACK_1, 0
$05F2	$D001	BRA	lcd_L_3
$05F4	$	lcd_L_1:
$05F4	$6A01	CLRF	STACK_1, 0
$05F6	$	lcd_L_3:
$05F6	$0EFF	MOVLW	255
$05F8	$5C01	SUBWF	STACK_1, W, 0
$05FA	$E102	BNZ	lcd_L_5
$05FC	$	lcd_L_4:
$05FC	$94EF	BCF INDF0, ___RS, 0
$05FE	$D001	BRA	lcd_L_2
$0600	$	lcd_L_5:
$0600	$84EF	BSF INDF0, ___RS, 0
$0602	$	lcd_L_2:
$0602	$86EF	BSF INDF0, ___ENABLE, 0
$0604	$ECCA	F000	CALL	delays_delay_1us
$0608	$96EF	BCF INDF0, ___ENABLE, 0
$060A	$6AEF	CLRF INDF0, 0
$060C	$B75D	BTFSC LCD_LCD_CMD_PARAM_OUT_CHAR, 3, 1
$060E	$8EEF	BSF INDF0, ___DB7, 0
$0610	$B55D	BTFSC LCD_LCD_CMD_PARAM_OUT_CHAR, 2, 1
$0612	$8CEF	BSF INDF0, ___DB6, 0
$0614	$B35D	BTFSC LCD_LCD_CMD_PARAM_OUT_CHAR, 1, 1
$0616	$8AEF	BSF INDF0, ___DB5, 0
$0618	$B15D	BTFSC LCD_LCD_CMD_PARAM_OUT_CHAR, 0, 1
$061A	$88EF	BSF INDF0, ___DB4, 0
$061C	$0E01	MOVLW	1
$061E	$5C22	SUBWF	lcd_main_global_cmd, W, 0
$0620	$E103	BNZ	lcd_L_7
$0622	$	lcd_L_6:
$0622	$0EFF	MOVLW	255
$0624	$6E01	MOVWF	STACK_1, 0
$0626	$D001	BRA	lcd_L_9
$0628	$	lcd_L_7:
$0628	$6A01	CLRF	STACK_1, 0
$062A	$	lcd_L_9:
$062A	$0EFF	MOVLW	255
$062C	$5C01	SUBWF	STACK_1, W, 0
$062E	$E102	BNZ	lcd_L_11
$0630	$	lcd_L_10:
$0630	$94EF	BCF INDF0, ___RS, 0
$0632	$D001	BRA	lcd_L_8
$0634	$	lcd_L_11:
$0634	$84EF	BSF INDF0, ___RS, 0
$0636	$	lcd_L_8:
$0636	$86EF	BSF INDF0, ___ENABLE, 0
$0638	$ECCA	F000	CALL	delays_delay_1us
$063C	$96EF	BCF INDF0, ___ENABLE, 0
$063E	$0E01	MOVLW	1
$0640	$5C22	SUBWF	lcd_main_global_cmd, W, 0
$0642	$E103	BNZ	lcd_L_13
$0644	$	lcd_L_12:
$0644	$0EFF	MOVLW	255
$0646	$6E01	MOVWF	STACK_1, 0
$0648	$D001	BRA	lcd_L_15
$064A	$	lcd_L_13:
$064A	$6A01	CLRF	STACK_1, 0
$064C	$	lcd_L_15:
$064C	$0EFF	MOVLW	255
$064E	$5C01	SUBWF	STACK_1, W, 0
$0650	$E103	BNZ	lcd_L_17
$0652	$	lcd_L_16:
$0652	$ECCE	F000	CALL	delays_delay_5500us
$0656	$D002	BRA	lcd_L_14
$0658	$	lcd_L_17:
$0658	$ECDF	F000	CALL	delays_delay_50us
$065C	$	lcd_L_14:
$065C	$0012	RETURN
$065E	$	usartlib_u_a_usart_data_ready:
$065E	$0100	MOVLB	0
$0660	$0E00	MOVLW	0
$0662	$BA9E	BTFSC	PIR1, 5, 0
$0664	$0E01	MOVLW	1
$0666	$0102	MOVLB	2
$0668	$6F5D	MOVWF	usartlib_u_a_usart_data_ready_local_result, 1
$066A	$0012	RETURN
$066C	$	usartlib_u_a_usart_read:
$066C	$0102	MOVLB	2
$066E	$50AE	MOVF	RCREG, W, 0
$0670	$6F5D	MOVWF	usartlib_u_a_usart_read_local_result, 1
$0672	$0E00	MOVLW	0
$0674	$B2AB	BTFSC	RCSTA, 1, 0
$0676	$0E01	MOVLW	1
$0678	$6E01	MOVWF	STACK_1, 0
$067A	$0E01	MOVLW	1
$067C	$5C01	SUBWF	STACK_1, W, 0
$067E	$E103	BNZ	usartlib_u_a_L_13
$0680	$	usartlib_u_a_L_12:
$0680	$0EFF	MOVLW	255
$0682	$6E02	MOVWF	STACK_2, 0
$0684	$D001	BRA	usartlib_u_a_L_15
$0686	$	usartlib_u_a_L_13:
$0686	$6A02	CLRF	STACK_2, 0
$0688	$	usartlib_u_a_L_15:
$0688	$0EFF	MOVLW	255
$068A	$5C02	SUBWF	STACK_2, W, 0
$068C	$E102	BNZ	usartlib_u_a_L_17
$068E	$	usartlib_u_a_L_16:
$068E	$98AB	BCF	RCSTA, 4, 0
$0690	$88AB	BSF	RCSTA, 4, 0
$0692	$	usartlib_u_a_L_17:
$0692	$	usartlib_u_a_L_14:
$0692	$0012	RETURN
$0694	$	sdlib_sd_read_sector:
$0694	$0102	MOVLB	2
$0696	$5164	MOVF	sdlib_sd_read_sector_param_sector_1, W, 1
$0698	$6F60	MOVWF	sdlib_sd_read_sector_local_byte_start_1, 1
$069A	$5165	MOVF	sdlib_sd_read_sector_param_sector_2, W, 1
$069C	$6F61	MOVWF	sdlib_sd_read_sector_local_byte_start_2, 1
$069E	$5166	MOVF	sdlib_sd_read_sector_param_sector_3, W, 1
$06A0	$6F62	MOVWF	sdlib_sd_read_sector_local_byte_start_3, 1
$06A2	$5167	MOVF	sdlib_sd_read_sector_param_sector_4, W, 1
$06A4	$6F63	MOVWF	sdlib_sd_read_sector_local_byte_start_4, 1
$06A6	$0E09	MOVLW	9
$06A8	$6E00	MOVWF	STACK_0, 0
$06AA	$	sdlib_L_30:
$06AA	$0E00	MOVLW	0
$06AC	$5C00	SUBWF	STACK_0, W, 0
$06AE	$E007	BZ	sdlib_L_31
$06B0	$3760	RLCF	sdlib_sd_read_sector_local_byte_start_1, F, 1
$06B2	$3761	RLCF	sdlib_sd_read_sector_local_byte_start_2, F, 1
$06B4	$3762	RLCF	sdlib_sd_read_sector_local_byte_start_3, F, 1
$06B6	$3763	RLCF	sdlib_sd_read_sector_local_byte_start_4, F, 1
$06B8	$9160	BCF	sdlib_sd_read_sector_local_byte_start_1, 0, 1
$06BA	$2E00	DECFSZ	STACK_0, F, 0
$06BC	$D7F6	BRA	sdlib_L_30
$06BE	$	sdlib_L_31:
$06BE	$0E11	MOVLW	17
$06C0	$6F6F	MOVWF	sdlib_sd_send_command_param_partial_cmm, 1
$06C2	$5160	MOVF	sdlib_sd_read_sector_local_byte_start_1, W, 1
$06C4	$6F70	MOVWF	sdlib_sd_send_command_param_address_1, 1
$06C6	$5161	MOVF	sdlib_sd_read_sector_local_byte_start_2, W, 1
$06C8	$6F71	MOVWF	sdlib_sd_send_command_param_address_2, 1
$06CA	$5162	MOVF	sdlib_sd_read_sector_local_byte_start_3, W, 1
$06CC	$6F72	MOVWF	sdlib_sd_send_command_param_address_3, 1
$06CE	$5163	MOVF	sdlib_sd_read_sector_local_byte_start_4, W, 1
$06D0	$6F73	MOVWF	sdlib_sd_send_command_param_address_4, 1
$06D2	$0EFF	MOVLW	255
$06D4	$6F74	MOVWF	sdlib_sd_send_command_param_crc, 1
$06D6	$EC67	F000	CALL	sdlib_sd_send_command
$06DA	$516B	MOVF	sdlib_sd_send_command_local_result, W, 1
$06DC	$6F5D	MOVWF	sdlib_sd_read_sector_local_result, 1
$06DE	$0E00	MOVLW	0
$06E0	$5D5D	SUBWF	sdlib_sd_read_sector_local_result, W, 1
$06E2	$E003	BZ	sdlib_L_33
$06E4	$	sdlib_L_32:
$06E4	$0EFF	MOVLW	255
$06E6	$6E01	MOVWF	STACK_1, 0
$06E8	$D001	BRA	sdlib_L_35
$06EA	$	sdlib_L_33:
$06EA	$6A01	CLRF	STACK_1, 0
$06EC	$	sdlib_L_35:
$06EC	$0EFF	MOVLW	255
$06EE	$5C01	SUBWF	STACK_1, W, 0
$06F0	$E103	BNZ	sdlib_L_37
$06F2	$	sdlib_L_36:
$06F2	$0E01	MOVLW	1
$06F4	$6F5D	MOVWF	sdlib_sd_read_sector_local_result, 1
$06F6	$0012	return
$06F8	$	sdlib_L_37:
$06F8	$	sdlib_L_34:
$06F8	$	sdlib_L_38:
$06F8	$0EFF	MOVLW	255
$06FA	$6F76	MOVWF	sdlib_sd_spi_param_data_out, 1
$06FC	$EC1B	F000	CALL	sdlib_sd_spi
$0700	$0EFE	MOVLW	254
$0702	$5D75	SUBWF	sdlib_sd_spi_local_result, W, 1
$0704	$E003	BZ	sdlib_L_40
$0706	$	sdlib_L_39:
$0706	$0EFF	MOVLW	255
$0708	$6E01	MOVWF	STACK_1, 0
$070A	$D001	BRA	sdlib_L_41
$070C	$	sdlib_L_40:
$070C	$6A01	CLRF	STACK_1, 0
$070E	$	sdlib_L_41:
$070E	$0EFF	MOVLW	255
$0710	$5C01	SUBWF	STACK_1, W, 0
$0712	$E102	BNZ	sdlib_L_43
$0714	$	sdlib_L_42:
$0714	$0000	nop
$0716	$D7F0	BRA	sdlib_L_38
$0718	$	sdlib_L_43:
$0718	$6B5E	CLRF	sdlib_sd_read_sector_local_i_1, 1
$071A	$6B5F	CLRF	sdlib_sd_read_sector_local_i_2, 1
$071C	$	sdlib_L_44:
$071C	$0EFF	MOVLW	255
$071E	$6E02	MOVWF	STACK_2, 0
$0720	$0E01	MOVLW	1
$0722	$6E03	MOVWF	STACK_3, 0
$0724	$515F	MOVF	sdlib_sd_read_sector_local_i_2, W, 1
$0726	$5C03	SUBWF	STACK_3, W, 0
$0728	$E102	BNZ	sdlib_L_47
$072A	$515E	MOVF	sdlib_sd_read_sector_local_i_1, W, 1
$072C	$5C02	SUBWF	STACK_2, W, 0
$072E	$	sdlib_L_47:
$072E	$E312	BNC	sdlib_L_46
$0730	$	sdlib_L_45:
$0730	$0EFF	MOVLW	255
$0732	$6F76	MOVWF	sdlib_sd_spi_param_data_out, 1
$0734	$EC1B	F000	CALL	sdlib_sd_spi
$0738	$5168	MOVF	sdlib_sd_read_sector_param_data_1, W, 1
$073A	$6EE9	MOVWF	FSR0L, 0
$073C	$5169	MOVF	sdlib_sd_read_sector_param_data_2, W, 1
$073E	$6EEA	MOVWF	FSR0H, 0
$0740	$515E	MOVF	sdlib_sd_read_sector_local_i_1, W, 1
$0742	$26E9	ADDWF	FSR0L, F, 0
$0744	$515F	MOVF	sdlib_sd_read_sector_local_i_2, W, 1
$0746	$22EA	ADDWFC	FSR0H, F, 0
$0748	$5175	MOVF	sdlib_sd_spi_local_result, W, 1
$074A	$6EEF	MOVWF	INDF0, 0
$074C	$2B5E	INCF	sdlib_sd_read_sector_local_i_1, F, 1
$074E	$B4D8	BTFSC	STATUS, Z, 0
$0750	$2B5F	INCF	sdlib_sd_read_sector_local_i_2, F, 1
$0752	$D7E4	BRA	sdlib_L_44
$0754	$	sdlib_L_46:
$0754	$0EFF	MOVLW	255
$0756	$6F76	MOVWF	sdlib_sd_spi_param_data_out, 1
$0758	$EC1B	F000	CALL	sdlib_sd_spi
$075C	$0EFF	MOVLW	255
$075E	$6F76	MOVWF	sdlib_sd_spi_param_data_out, 1
$0760	$EC1B	F000	CALL	sdlib_sd_spi
$0764	$6B5D	CLRF	sdlib_sd_read_sector_local_result, 1
$0766	$0012	RETURN
$0768	$	math_div_8x8_u:
$0768	$0102	MOVLB	2
$076A	$6B16	CLRF   MATH_MAIN_GLOBAL_REMAINDER_1,F
$076C	$0E08	MOVLW  8
$076E	$6E15	MOVWF  MATH_MAIN_GLOBAL_LOOPCOUNT, 0
$0770	$341A	RLCF    MATH_MAIN_GLOBAL_X_1,W, 0
$0772	$3616	RLCF    MATH_MAIN_GLOBAL_REMAINDER_1,F, 0
$0774	$5018	MOVF   MATH_MAIN_GLOBAL_Y_1,W, 0
$0776	$5E16	SUBWF  MATH_MAIN_GLOBAL_REMAINDER_1,F, 0
$0778	$B0D8	BTFSC  STATUS,C, 0
$077A	$EFC1	F003	GOTO   $+3
$077E	$2616	ADDWF  MATH_MAIN_GLOBAL_REMAINDER_1,F, 0
$0780	$90D8	BCF    STATUS,C, 0
$0782	$361A	RLCF    MATH_MAIN_GLOBAL_X_1,F, 0
$0784	$2E15	DECFSZ MATH_MAIN_GLOBAL_LOOPCOUNT,F, 0
$0786	$EFB8	F003	GOTO   $-10
$078A	$0012	RETURN
$078C	$	SD_test_main:
$078C	$0102	MOVLB	2
$078E	$6A82	CLRF	PORTC, 0
$0790	$0E19	MOVLW	25

⌨️ 快捷键说明

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