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