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

📄 sd_4.asm

📁 atmega8芯片上实现的MP3 汇编源程序(转自www.ouravr.com)
💻 ASM
字号:
;MP3 Player kunio.h  Ver1.7 H15.9.22
;**** 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	p_hold	= 7	;power hold & MP3~reset
;**  PORTD  **
.equ	mp3_dreq= 0
.equ	lcd_rs	 = 1	
.equ	lcd_rw	 = 2
.equ	lcd_enb = 3
.equ	lcd_db4 = 4
.equ	lcd_db5 = 5
.equ	lcd_db6 = 6
.equ	lcd_db7 = 7
.equ	mp3_so  = 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= 0b00000011
.equ	key_ff	 = 0b00000001
.equ	key_rew = 0b01000001
.equ	key_vp	 = 0b01000000
.equ	key_vm	 = 0b01000010

.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
vol_t:		.BYTE	1
v_t:		.BYTE	2
play_time:	.BYTE	2	;PLAY TIME SAVE	
id3:		.BYTE 128	;TAG V1
.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_pt:	.BYTE	2	;play_time
rom_vo:	.BYTE	1	;volume
rom_mo:	.BYTE	1	;mode
.cseg
;*********************
;* 妱崬傒儀僋僞乕 *
;*********************
	rjmp start ;奺庬鼐

⌨️ 快捷键说明

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