📄 sd_5_4m_1.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 + -