基于單片機(jī)的電子導(dǎo)游MP3設(shè)計(jì)
NAND FLASH存儲(chǔ)器操作模塊實(shí)現(xiàn)存儲(chǔ)器的物理檢查、存儲(chǔ)器鏈表建立和映射、存儲(chǔ)器讀寫訪問等。
時(shí)鐘系統(tǒng)初始化模塊
MSP430單片機(jī)是多時(shí)鐘芯片,在降低系統(tǒng)功耗的同時(shí),為了充分發(fā)揮其性能,需要對(duì)系統(tǒng)時(shí)鐘進(jìn)行編程。
系統(tǒng)將XT2外接8MHz晶振,獲得8MHz的主系統(tǒng)時(shí)鐘MCLK。而子系統(tǒng)時(shí)鐘SMCLK為DCO振蕩器產(chǎn)生的頻率為800KHz的信號(hào)。時(shí)鐘調(diào)整程序?yàn)椋?P>BIS.W #OSCOFF,SR ;關(guān)閉LFXT1振蕩器
BIC.B #XT2OFF,BCSCTL1 ;啟動(dòng)XT2振蕩器
SETUPOSC:
BIC.B #OFIFG,IFG1 ;清除振蕩器失效中斷
MOV.W #0FFh,R15
SetupOsc1:
DEC.W R15 ;計(jì)算等待時(shí)間至"0"
JNZ SetupOsc1 ;等待循環(huán)
BIT.B #OFIFG,IFG ;測(cè)試振蕩器失效中斷標(biāo)志
JNZ SETUPOSC ;重復(fù)測(cè)試,直至標(biāo)志始終復(fù)位
BIC.B #OFIFG,IFG1 ;清除振蕩器失效中斷
BIS.B #80H,BCSCTL2;選擇SMCLK時(shí)鐘源
模擬I2C總線模塊
MSP430F133沒提供I2C的硬件電路,因此需要用IO口線模擬。用于通過(guò)I2C來(lái)控制MAS3507D和DAC3550A。模擬I2C時(shí)序的程序包括啟動(dòng)模塊、停止模塊、發(fā)送一個(gè)字節(jié)模塊、接收一個(gè)字節(jié)模塊、主應(yīng)答模塊(MACK)、主非應(yīng)答模塊(MNACK)、從應(yīng)答模塊(CACK)等。
在程序設(shè)計(jì)中,充分利用了MSP430F133 I/O端口的特性,減少相關(guān)寄存器的操作次數(shù),簡(jiǎn)化接口控制,縮小代碼量。下列程序段是模擬I2C總線的啟動(dòng)功能。要求置時(shí)鐘線為高,數(shù)據(jù)線為下降沿觸發(fā)。
BIC.B #SCL+SDA,PORT_DIR
BIS.B #SDA,PORT_DIR ;SDA為輸出
BIS.B #SCL,PORT_DIR ;SCL為輸出
RET
位流傳輸模塊
當(dāng)解碼芯片的請(qǐng)求信號(hào)有效時(shí),單片機(jī)要從外掛的FLASH中讀取存放的數(shù)據(jù),發(fā)送給解碼芯片。數(shù)據(jù)是按逐位傳輸?shù)模葌鬏敻呶?,后傳輸?shù)臀?,在SIC時(shí)鐘下降沿鎖存位數(shù)據(jù)到解碼芯片。
DATA_TO_MAS: BIT.B #REQ,P1DIR
JZ DATA_TO_MAS
;REQ為0表示MAS不需要數(shù)據(jù)
CALL #BYTE_READ
;從FLASH讀一個(gè)字節(jié)到RAM
MOV.B #8,R4 ;用R4計(jì)數(shù)
TRANSFER: RLA.B READ_BYTE_A
JC BIT_1
BIT_0: BIC.B #SID,P5OUT
JMP LOCK_BIT
BIT_1: BIS.B #SID,P5OUT
LOCK_BIT: BIS.B #SIC,P5OUT
BIC.B #SIC,P5OUT
DEC.B R4
JNZ TRANSFER
結(jié)束語(yǔ)
本文設(shè)計(jì)的電子導(dǎo)游以TI公司的MSP430F133為主控制芯片,使用Micronas公司的解碼芯片MAS3507D以及配套的D/A轉(zhuǎn)換芯片。本系統(tǒng)不僅具備了MP3播放器的全部功能,而且可作為便攜式存儲(chǔ)器,用于存儲(chǔ)文件、相片等。其特定的設(shè)計(jì)功能不僅可用于電子導(dǎo)游,還可用于公交報(bào)站、博物館、展覽館、無(wú)人值守交通路口的語(yǔ)音提示等。
參考文獻(xiàn):
[1]. MSP430F133 datasheet http://www.dzsc.com/datasheet/MSP430F133_307447.html.
[2]. MSP430 datasheet http://www.dzsc.com/datasheet/MSP430_490166.html.
[3]. RISC datasheet http://www.dzsc.com/datasheet/RISC_1189725.html.
[4]. MAS3507D datasheet http://www.dzsc.com/datasheet/MAS3507D_470629.html.
[5]. DAC3550A datasheet http://www.dzsc.com/datasheet/DAC3550A_253258.html.
評(píng)論