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