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

📄 sd_5_4m_1.asm

📁 atmega8芯片上实现的MP3 汇编源程序(转自www.ouravr.com)
💻 ASM
字号:
;MP3 Player kunio.h  Ver2.7(CPU:4MHz,VS1001K:12.288MHz) H16.2.25
;**** includes **** 
.include "m8def.inc"

; Load immediate word into the resister pair.
;	ldiw	Z(X,Y),var
.macro	ldiw
	ldi	@0L,low(@1)
	ldi	@0H,high(@1)
.endm
; Output immediate   outi	port,var
.macro	outi
	ldi	r16,@1
	out	@0,r16
.endm
.MACRO cpi16	;cpi16	ra,rb,0xHHHH	;ra:rb-0xHHHH	set flags:N,C,Z
	push	@0
	push	@1
	subi	@1,low(@2)
	sbci	@0,high(@2)
	pop	@1
	pop	@0
.ENDMACRO
.MACRO addi16	;addi16	ra,rb,0xHHHH
        subi	@1,low(-@2)
        sbci	@0,high(-@2)
.ENDMACRO
;*****************************
;* 儗僕僗僞曄悢丂愝掕 *
;*****************************
.def	temp1	= r16
.def	temp2	= r17
.def	temp3	= r18
.def	temp4	= r19
.def	lcd_data= r23

;*****************************
;*丂 價僢僩丂愝掕丂丂*
;*****************************

;**  PORTB  ***
.equ	sw_0	= 0
.equ	sw_1	= 1	
.equ	sd_cs	= 2	;SS
.equ	sd_in	= 3	;MOSI
.equ	sd_out	= 4	;MISO
.equ	sd_clk	= 5	;SCK
.equ	sw_6 	= 6
.equ	sw_7	= 7	
;**  PORTD  **
.equ	mp3_dreq= 0
.equ	p_hold	= 1	;power hold 
.equ	sw_2	= 2
.equ	led	= 3
.equ    mp3_reset=4	;MP3~reset
;.equ	 = 5
;.equ	 = 6
;.equ	 = 7

;**  PORTC  ***
.equ	v_in     = 0	;batt volt 
.equ	mp3_si	 = 1	
.equ	mp3_sclk = 2	
.equ	mp3_cs   = 3	
.equ	mp3_bsync= 4	
.equ	mp3_dclk = 5	
;key_in 	    76543210
.equ	key_stop= 0b11000011
.equ	key_ff	= 0b01000111
.equ	key_rew = 0b10000111
.equ	key_vp	= 0b11000101
.equ	key_vm	= 0b11000110

.dseg
mode:		.BYTE	1	;1:desk repeat,0:1time,2:1music repeat
fattype:	.BYTE	1	;FAT16:1,FAT12:0
datastart:	.BYTE	4	;DATAstart[3:0]
dirstart:	.BYTE	2	;DIRstart[1:0]
secpcl:		.BYTE	1	;sectorspercluster
fatstart:	.BYTE	2	;FATstart[1:0]
rdirent:	.BYTE	2	;rootdirentriescount[1:0]
spi_arg:	.BYTE   5	;cmd,arg[3:0]
read32_arg:	.BYTE	4	;adr[3:0]
musiccount:	.BYTE	1	;MP3 file count
playmusic:	.BYTE	1	;play music count
musicsize:	.BYTE 	4	;play file size
cluster:	.BYTE	2	;play cluster
remainsec:	.BYTE   2	;play remain sector
buff:		.BYTE  32	;buff[31:0]
fatcache:	.BYTE 512	;FATcache
fatsec:		.BYTE   3	;FATcache'sector
volume:		.BYTE	1
key_in:		.BYTE	1
key_input:	.BYTE	1
key_c:		.BYTE	1
v_t:		.BYTE	2
led_time:	.byte	1
.eseg	;EEPROM add
rom_pm:	.BYTE	1	;play music
rom_cl:	.BYTE	2	;cluster
rom_re:	.BYTE	2	;remainsec
rom_mu:	.BYTE	3	;musicsize
rom_vo:	.BYTE	1	;volume
rom_mo:	.BYTE	1	;mode
.cseg
;*********************
;* 妱崬傒儀僋僞乕 *
;*********************
	rjmp start ;奺庬鼐

⌨️ 快捷键说明

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