基于點(diǎn)陣液晶屏的語音錄放系統(tǒng)設(shè)計(jì)_第1頁
基于點(diǎn)陣液晶屏的語音錄放系統(tǒng)設(shè)計(jì)_第2頁
基于點(diǎn)陣液晶屏的語音錄放系統(tǒng)設(shè)計(jì)_第3頁
基于點(diǎn)陣液晶屏的語音錄放系統(tǒng)設(shè)計(jì)_第4頁
基于點(diǎn)陣液晶屏的語音錄放系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 成人高等學(xué)歷教育畢 業(yè) 設(shè) 計(jì)(論 文)題 目: 基于點(diǎn)陣液晶屏的語音錄放系統(tǒng)設(shè)計(jì) 姓 名: 黃生祿 學(xué) 號(hào): 專 業(yè): 通信工程 級(jí)別專業(yè)(形式層次): 指導(dǎo)教師: (簽名)2013年 12月12日目錄摘要1第1章 緒論111 引言212 研究背景213本文主要研究?jī)?nèi)容2第2章 系統(tǒng)的硬件設(shè)計(jì)方案321 系統(tǒng)硬件總體設(shè)計(jì)方案323 液晶部分的設(shè)計(jì)方案424 電源部分的設(shè)計(jì)方案525 存儲(chǔ)部分的設(shè)計(jì)方案626 程序下載部分的設(shè)計(jì)方案727系統(tǒng)核心硬件部分的設(shè)計(jì)方案7第3章 系統(tǒng)軟件的開發(fā)方案1031系統(tǒng)核心軟件的開發(fā)流程1032 存儲(chǔ)器的軟件流程1133 液晶顯示模塊的軟件開發(fā)流程1334

2、ISD4004的軟件開發(fā)流程1535 系統(tǒng)的應(yīng)用軟件開發(fā)流程16第4章 應(yīng)用系統(tǒng)部分代碼1741 系統(tǒng)核心軟件1742 存儲(chǔ)器部分代碼1943 液晶顯示模塊的部分代碼112144 ISD4004語音模塊的部分代碼22第五章 系統(tǒng)測(cè)試2251 硬件部分系統(tǒng)測(cè)試2252 軟件部分系統(tǒng)測(cè)試23總結(jié)25致謝26參考文獻(xiàn)27摘要本文主要實(shí)現(xiàn)了語音錄放系統(tǒng)的設(shè)計(jì)。語音錄放系統(tǒng)主要包括單片機(jī)控制模塊、語音采集模塊、語音處理模塊、信號(hào)放大模塊,其中單片機(jī)控制模塊是整個(gè)系統(tǒng)設(shè)計(jì)的關(guān)鍵。在語音錄放過程中,單片機(jī)通過SPI通信方式與語音模塊進(jìn)行通訊,來實(shí)現(xiàn)語音的錄放與播放。通過單片機(jī)發(fā)送不同地址給語音模塊來實(shí)現(xiàn)語音

3、的錄音和放音。單片機(jī)的主要功能是通過串行接口連接語音模塊和顯示模塊以及按鍵,實(shí)現(xiàn)通過按鍵功能即可選擇錄音、放音、屏幕顯示等功能,本次設(shè)計(jì)使用PHY公司的LPC2138系列單片機(jī)作為CPU作為主控制器,用ISD4004語音模塊用來采集聲音數(shù)據(jù),通過LM386放大語音達(dá)到揚(yáng)聲器。關(guān)鍵詞:微控器;語音錄放;MCU;ISD4004ABSTRACTThe main aim of this paper is to realize the function of voice recording and playback system .The key to the overall system design

4、 of the voice recording system which includes a single-chip control module,voice acquisition module, voice processing module, signal amplification module,is MCU control module. In the voice playback process,the microcontroller communicates through SPI communication voice module, thus realizing voice

5、 recording and playback. Via microcontroller send different address to voice module to realize the voice recording and playback. The main function of the MCU through a serial interface to connect the voice module, display module and also keyboard. It can realize the function which according the key

6、value to select recording, playback,display.The Design we chose PHY companys LPC2138 serious microcontroller as main control system,The ISD4004 module to collect the voice single,and via LM386 the amplify the voice.Key Words: Microcontroller; Voice recording and playback;MCU;ISD4004第1章 緒論11 引言語音錄放產(chǎn)品

7、在市面上已經(jīng)很成熟,各種錄音筆,錄音機(jī)等等,零零總總,讓人眼花繚亂,不過本文主要目的是通過自己動(dòng)手獨(dú)立設(shè)計(jì)出一套實(shí)用的小型系統(tǒng),用以提高畢業(yè)生的設(shè)計(jì),應(yīng)用能力。因?yàn)檎Z音錄放產(chǎn)品,應(yīng)用非常廣泛,因此本次設(shè)計(jì)具有非常實(shí)用的應(yīng)用意義,另外本次采用ARM芯片,所以本次設(shè)計(jì)的成功與否,對(duì)畢業(yè)生日后走入工作崗位,尤其是嵌入式應(yīng)用具有非常大的幫助。12 研究背景目前市面上的語音錄放產(chǎn)品主要采用的是以下兩種方案:一種是數(shù)字語音存儲(chǔ),通過采樣,量化,編碼等形式將模擬的語音信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)保存在存儲(chǔ)器當(dāng)中,此方法優(yōu)點(diǎn)是:語音成本低,需要存儲(chǔ)空間小,操作簡(jiǎn)單。缺點(diǎn)是:系統(tǒng)設(shè)計(jì)復(fù)雜,特別是軟件系統(tǒng)。而另一種采用直接

8、的模擬信號(hào)存儲(chǔ),其優(yōu)點(diǎn)是:系統(tǒng)簡(jiǎn)單,硬件簡(jiǎn)單,語音質(zhì)量清晰。缺點(diǎn)是:存儲(chǔ)長(zhǎng)度短,成本相對(duì)較高。因此綜合考慮兩個(gè)方案,本次課題采用第二種方案。本次畢業(yè)設(shè)計(jì)的內(nèi)容是設(shè)計(jì)一款基于ARM7內(nèi)核的微處理器并且集成ISD4004,VTM88657單色液晶顯示模塊的語錄錄放系統(tǒng),此系統(tǒng)可以存儲(chǔ)最長(zhǎng)達(dá)16分鐘的高清晰度的語音信息。并根據(jù)各自按鍵選擇不同的功能,例如錄音,播放,停止等,因此本系統(tǒng)可以作為一個(gè)簡(jiǎn)單的復(fù)讀機(jī)來使用。13本文主要研究?jī)?nèi)容一個(gè)完整的語音錄放模塊包括話筒,存儲(chǔ)器,功放,揚(yáng)聲器,人機(jī)接口等。話筒,話筒的是一個(gè)系統(tǒng)最前端,也是錄音的關(guān)鍵器件,在硬件上,話筒的設(shè)計(jì)成功與否起著決定性的作用。語音采

9、集模塊,當(dāng)話筒將聲音信號(hào)轉(zhuǎn)化為模擬信號(hào)的時(shí)候,這時(shí)語音采集模塊必須能夠?qū)崟r(shí)存儲(chǔ)聲音信號(hào),并且保存起來,否則本次系統(tǒng)最多只是一個(gè)擴(kuò)音器,根本無法實(shí)現(xiàn)播放,另外本次的語音采集模塊還具有語音播放功能,更重要的是,本模塊支持模擬語音存儲(chǔ),模擬語音播放的功能,這樣也為我們大大減少了硬件的開銷。另外 ,本模塊的語音錄取,與播放,均采用SPI總線,只需向模塊發(fā)送相應(yīng)的控制命令,本模塊就會(huì)自動(dòng)開始錄音或者放音,這樣的設(shè)計(jì)業(yè)為我們大大的節(jié)省了系統(tǒng)的軟件設(shè)計(jì)的復(fù)雜性。語音放大,雖然語音模塊功能非常強(qiáng)大,但其輸出的聲音信號(hào),還是不足以直接驅(qū)動(dòng)揚(yáng)聲器,所以,在系統(tǒng)設(shè)計(jì)的時(shí)候必須加入語音放大部分,否則即使語音錄音,放音

10、都實(shí)現(xiàn)了,但是還是無法播放出聲音來。另外本次畢業(yè)設(shè)的硬件設(shè)計(jì)一款基于飛利浦的LPC213X系列MCU組成的一個(gè)模擬語音的錄放系統(tǒng)。此系統(tǒng)設(shè)計(jì)時(shí)為了增加可操作性,還增加了通過檢測(cè)按鍵鍵值,系統(tǒng)對(duì)應(yīng)的響應(yīng)對(duì)各個(gè)按鍵定義的功能,達(dá)到語音的錄音,播放,停止,同時(shí)通過LCD顯示器顯示語音的錄放狀態(tài)。這樣的設(shè)計(jì)目的,能夠更適應(yīng)實(shí)際應(yīng)用,以及屏幕的狀態(tài)顯示,使本次設(shè)計(jì)脫離枯燥的畢業(yè)設(shè)計(jì),變得更加人性化,更具有可操作性,更接近實(shí)際產(chǎn)品。第2章 系統(tǒng)的硬件設(shè)計(jì)方案21 系統(tǒng)硬件總體設(shè)計(jì)方案本次畢業(yè)設(shè)計(jì)的內(nèi)容是設(shè)計(jì)一款基于ARM7內(nèi)核的微處理器并且集成ISD4004,VTM88657單色液晶顯示模塊的語錄錄放系統(tǒng)

11、,此系統(tǒng)可以存儲(chǔ)最長(zhǎng)達(dá)16分鐘的高清晰度的語音信息。并根據(jù)各自按鍵選擇不同的功能,例如錄音,播放,停止等,因此本系統(tǒng)可以作為一個(gè)簡(jiǎn)單的復(fù)讀機(jī)來使用。系統(tǒng)總體設(shè)計(jì)框圖如圖2-1所示。圖2-1 系統(tǒng)總體設(shè)計(jì)框圖22 語音錄放部分的設(shè)計(jì)方案 本次設(shè)計(jì)語音錄放部分采用ISD4004芯片作為本次設(shè)計(jì)的語音錄放模塊。ISD4004芯片采用SPI總線模式,最高支持16分鐘的語音錄放,另外本次采用的是IC直接模擬信號(hào)存儲(chǔ)模擬信號(hào)播放的方式,因此無需復(fù)雜的AD、DA轉(zhuǎn)換,即可直接還原出語音信號(hào),從而減少外圍器件以及系統(tǒng)的復(fù)雜程度。ISD4004提供了4.0KHZ、5.03HZ、6、4KHZ和8.0KHZ的采樣頻

12、率,因此他可以存儲(chǔ)16、12、10、8分鐘的時(shí)長(zhǎng)語音信息,完全能夠滿足一般的語音錄放,以及復(fù)讀功能。ISD4004能夠在掉電下保持100年的語音存儲(chǔ),并且能夠重復(fù)錄放10萬次。其采用四條線的SPI總線,使它能夠很容易的和MCU相連,該總線允許讀寫ISD4004所有的內(nèi)部寄存器。通過INT管腳作為中斷腳以及內(nèi)部狀態(tài)寄存器作為對(duì)外的握手連接。ISD4004采用3V的電源供電,模擬地與數(shù)字地分開的方式,保證信號(hào)不互相干擾,而且還允許差分的最大輸入信號(hào)16mV的峰峰值語音信號(hào)輸入作為輸入源。ISD4004的語音輸出能夠驅(qū)動(dòng)5千歐的負(fù)載,若想要直接驅(qū)動(dòng)一個(gè)5歐的揚(yáng)聲器,顯然ISD4004有些力不從心,因

13、此在本處增加了一個(gè)放大電路。LM3862音頻功率放大器主要應(yīng)用于低電壓消費(fèi)類產(chǎn)品。要使外圍器件最少,電壓增益內(nèi)置為20 DB。但是如果在1腳和8叫之間增加一只外接電阻和電容,便可將電壓增益調(diào)為任意值,直至200 DB,在這里我需要將增益提升到50DB,因此根據(jù)LM386的特性我們?cè)贚M386的1腳和8腳之間串入一個(gè)10K的電阻和一個(gè)10uF的電容,同時(shí)在第5腳輸出腳并一個(gè)470uF的大電容耦合到外面負(fù)載。因此,有關(guān)ISD4004語音錄放芯片及其外圍器件,和LM386放大電路的原理圖設(shè)計(jì)圖2-2所示。圖2-2 ISD4004以及LM386放大電路原理圖23 液晶部分的設(shè)計(jì)方案VTM88657A是

14、一個(gè)低功耗,擁有四級(jí)灰度的帶有內(nèi)部控制器的點(diǎn)陣液晶屏,它的像素有128*96個(gè)點(diǎn)陣,采用串行的SPI總線驅(qū)動(dòng)屏幕,擁有白色的LED背光,需要3.3V電壓,功耗為60mA。VTM88657A共有16個(gè)引腳。其中1腳為片選,低電平有效,第2叫為復(fù)位腳,也是低電平有效,第3腳為讀寫控制腳,411腳為空,第12腳為串行時(shí)鐘輸入腳,第13腳為串行數(shù)據(jù)輸入,第14腳為3.3V電源供應(yīng),第15腳為接地,第16腳為液晶的背光電壓。VTM88657A的點(diǎn)外圍器件比較簡(jiǎn)單,只有背光這一條信號(hào),我們專門用一個(gè)MOS管來驅(qū)動(dòng),并接到CPU的P0.31叫來控制。他的具體電路圖如圖2-3所示。圖2-3 液晶接口電路24

15、電源部分的設(shè)計(jì)方案本系統(tǒng)電源部分采用寬電壓設(shè)計(jì),理論上可以支持4.828V的電壓輸入,電源從CN3輸入,經(jīng)過一個(gè)自鎖開關(guān),然后送給ATC4088DC-DC電源轉(zhuǎn)換器,然后輸出一個(gè)5V電壓,給電路的外設(shè)供電,而5V電壓在經(jīng)過一個(gè)LDO轉(zhuǎn)換成3.3V,給系統(tǒng)內(nèi)核供電。 ACT4088是一個(gè)1.48MHZ的降壓式DC-DC轉(zhuǎn)換器,它支持4.5V28V的寬電壓輸入,在12V到5V輸出范圍內(nèi)是最大可以輸出1.5A電流,它通過內(nèi)部的環(huán)形補(bǔ)償來提高穩(wěn)定性,并且以最少的外圍器件提供一個(gè)簡(jiǎn)單的、穩(wěn)定的電壓輸出。ACT4088小型的SOT-23的封裝特別適合給TFT液晶屏,MP3,手機(jī)等小型設(shè)備供電。ACT408

16、8的輸出電壓可以通過如圖2-4所示的電路圖,并按照2-1的公式來計(jì)算9。 圖2-4 ACT4088輸出電壓設(shè)置2-1 ACT4088輸出電壓計(jì)算公式ATC4088的SW引腳推薦接一個(gè)4.7uH的電感,然后在SW引腳再接一個(gè)反向的二極管,以保證輸出電壓穩(wěn)定,第3腳EN必須為高電平,并且在輸入和輸出推薦各接一個(gè)22uF的電容。SPX1117M3 3-3是一個(gè)低功耗,正電壓調(diào)節(jié)器,用來滿足中等功率以及微控器的應(yīng)用要求,該LDO保證了800mA的電壓輸出,具有多種輸出電壓可供選擇(有1.5,1.8,2.5,2.85,3,3.3,5)。電源部分的原理圖由如圖2-5所示設(shè)計(jì)。圖2-5 電源部分原理圖25

17、存儲(chǔ)部分的設(shè)計(jì)方案由于本系統(tǒng)采用的是VTM88657A液晶屏,因?yàn)樵撘壕翛]有自帶字庫,所以需要外擴(kuò)一個(gè)Flash存儲(chǔ)器用以存儲(chǔ)字庫信息。PCT25VF032是SST公司生產(chǎn)的25系列的SPI總線接口的Flash家族的一員,該Flash最大存儲(chǔ)空間為4MB,支持單電源2.73.6V的讀寫操作,支持SPI 模式0以及模式3,最高可支持80MHZ的時(shí)鐘頻率。它具有可編程的4KB,32KB,64KB的塊,片擦除只需35ms,塊擦除只需18ms,支持自動(dòng)地址增加的字節(jié)編程能力。具有軟件的寫保護(hù)。該Flash的硬件部分設(shè)置如圖2-6所示。圖2-6 存儲(chǔ)部分原理圖26 程序下載部分的設(shè)計(jì)方案為了支持在線下

18、載,調(diào)試程序,本設(shè)計(jì)還增加了一個(gè)功能,那就是UART功能,也就是串口。LPC2138的UART接口是無法直接連接計(jì)算機(jī)進(jìn)行通信,因此必須使用一個(gè)轉(zhuǎn)換芯片,在此我選擇SPX323EEN作為轉(zhuǎn)換芯片。該轉(zhuǎn)換芯片支持兩個(gè)串口的電平轉(zhuǎn)換,串口1、和串口2 。為了日后擴(kuò)展,本次設(shè)計(jì)把兩個(gè)串口全部接上RS232電平。RS232轉(zhuǎn)換原理圖如圖2-7部分所示9。圖2-7 RS23串口轉(zhuǎn)換電路27系統(tǒng)核心硬件部分的設(shè)計(jì)方案由于本人對(duì)LPC系列MCU比較熟悉,所以本次MCU理所當(dāng)然選擇自己最得心應(yīng)手的型號(hào)。下面簡(jiǎn)單介紹一下LPC2138的外設(shè)5:LPC2131/2132/2138是基于一個(gè)支持實(shí)時(shí)仿真和嵌入式跟蹤

19、的32/16位ARM7/TDMI-Stm CPU 的微控制器,并帶有32KB、64KB、512KB的嵌入式的高速Flash存儲(chǔ)器。128位寬度的存儲(chǔ)器接口和獨(dú)特的加速結(jié)構(gòu)使32位代碼能夠在最大時(shí)鐘速率下運(yùn)行。對(duì)代碼規(guī)模有嚴(yán)格控制的應(yīng)用可使用16位Thumbs模式將代碼規(guī)模降低超過30%,而且性能的損失很小。特性5l 小型LQFP64 封裝的16/32 位ARM7TDMI-S 微控制器。l 8/16/32kB 片內(nèi)靜態(tài)RAM。l 片內(nèi)Boot 裝載軟件實(shí)現(xiàn)在系統(tǒng)/在應(yīng)用中編程(ISP/IAP)。扇區(qū)擦除或整片擦除的時(shí)間為400ms,1ms 可編程256 字節(jié)。l E目標(biāo)eddeICERT和嵌入式

20、跟蹤接口實(shí)時(shí)調(diào)試(利用片內(nèi)RealMonitor軟件)和高 速跟蹤執(zhí)行代碼l 1 個(gè)(LPC2132/2132)或2 個(gè)(LPC2138)8 路10 位A/D 轉(zhuǎn)換器共包含16 個(gè)模擬輸入,每個(gè)通道的轉(zhuǎn)換時(shí)間低至2.44us。l 1 個(gè)10 位D/A 轉(zhuǎn)換器,可提供不同的模擬輸出(LPC2132/2138)。l 2 個(gè)32 位定時(shí)器/計(jì)數(shù)器(帶4 路捕獲和4 路比較通道)、PWM 單元(6 路輸出)和看門狗。l 實(shí)時(shí)時(shí)鐘具有獨(dú)立的電源和時(shí)鐘源,在節(jié)電模式下極大地降低了功耗。l 多個(gè)串行接口,包括2 個(gè)16C550 工業(yè)標(biāo)準(zhǔn)UART、2 個(gè)高速I2C 接口(400 kbit/s)、SPITM 和

21、SSP具有緩沖功能,數(shù)據(jù)長(zhǎng)度可變)。l 向量中斷控制器??膳渲脙?yōu)先級(jí)和向量地址。l 多達(dá)47 個(gè)5V 的通用I/O 口(LQFP64 封裝)。l 9 個(gè)邊沿或電平觸發(fā)的外部中斷引腳。l 通過片內(nèi)PLL 可實(shí)現(xiàn)最大為60MHz 的 CPU 操作頻率,PLL 的穩(wěn)定時(shí)間為100us。l 片內(nèi)晶振頻率范圍:130 MHz。l 2 個(gè)低功耗模式:空閑和掉電。l 可通過個(gè)別使能/禁止外部功能和降低外部時(shí)鐘來優(yōu)化功耗。l 通過外部中斷將處理器從掉電模式中喚醒。l 單個(gè)電源供電,含有上電復(fù)位(POR)和掉電檢測(cè)(BOD)電路:l CPU 操作電壓范圍:3.03.6 V (3.3 V+/ 10%),I/O 口

22、可承受5V 的最大電壓。系統(tǒng)硬件部分有幾個(gè)核心電路這里需要需要特別注意。第一個(gè)是系統(tǒng)的復(fù)位電源部分,由于NXP處理器的系統(tǒng)對(duì)復(fù)位比較嚴(yán)格,復(fù)位電路一定要等系統(tǒng)上電,并且供電電壓穩(wěn)定之后才能對(duì)處理器的管腳進(jìn)行復(fù)位,否則可能導(dǎo)致不可預(yù)知的結(jié)果。這里有一款專門的復(fù)位芯片,那就是CAT809的復(fù)位芯片。CAT809是一款推挽式的低電平有效的復(fù)位芯片,其最大可達(dá)6uA的供電電流,以及其小型的SOT32的封裝,使其容易的應(yīng)用于計(jì)算機(jī)復(fù)位、有線調(diào)制,無線通信、嵌入式控制系統(tǒng)等領(lǐng)域。CAT809的復(fù)位時(shí)間周期在140450ms之間,典型值在240ms左右,完全能夠滿足NXP系列微處理器復(fù)位時(shí)對(duì)時(shí)間的要求。圖2

23、-8是這個(gè)復(fù)位芯片的典型電路應(yīng)用。圖2-8復(fù)位電路 另外NXP處理系統(tǒng)的時(shí)鐘設(shè)計(jì)也是一個(gè)重點(diǎn),本次系統(tǒng)時(shí)鐘采用一個(gè)14.7456MHz的晶振作時(shí)鐘源。圖2-9為本系統(tǒng)的時(shí)鐘設(shè)計(jì)電路2。圖2-9 CPU的時(shí)鐘電路 最后本系統(tǒng)的MCU部分的管腳連接和處理器的電源部分電路圖如圖2-10所示。圖2-10 本系統(tǒng)的處理器電路第3章 系統(tǒng)軟件的開發(fā)方案31系統(tǒng)核心軟件的開發(fā)流程CPU的上電初始化流程,本次系統(tǒng)設(shè)計(jì)CPU上電流程如下:系統(tǒng)上電后軟件首先關(guān)閉PLL鎖存;然后對(duì)更改PLL的分頻值;然后打開PLL鎖存;接著執(zhí)行PLL鎖定序列,之后等待PLL鎖定直到鎖定成功;PLL鎖定成功后,啟動(dòng)PLL時(shí)鐘;當(dāng)PL

24、L時(shí)鐘穩(wěn)定之后,再配置存儲(chǔ)器加速模塊,啟用存儲(chǔ)器加速模塊;接下來就開始設(shè)置定時(shí)器1,定時(shí)時(shí)間設(shè)為1ms,并把它作為系統(tǒng)的系統(tǒng)時(shí)鐘,以后系統(tǒng)很多定時(shí)都根據(jù)該時(shí)鐘操作;然后再根據(jù)硬件連接情況進(jìn)行管腳配置,選擇相應(yīng)的管腳功能;接下來設(shè)置定時(shí)器,串口等中斷向量,以及中斷地址。至此CPU的上電步驟執(zhí)行完畢,圖3-1為本次上電的方框圖。圖3-1 CPU的上電步驟系統(tǒng)外設(shè)的上電流程:首先先對(duì)CPU進(jìn)行初始化,其次對(duì)串口初始化,然后打開系統(tǒng)重映射,之后再啟動(dòng)VIC中斷,接著開始執(zhí)行打開串口動(dòng)作,接下來對(duì)SPI接口進(jìn)行初始化,在接著就對(duì)LCD顯示屏進(jìn)行初始化,最后對(duì)Flash進(jìn)行初始化。圖3-2顯示的是系統(tǒng)外設(shè)

25、的上電步驟。圖3-2 系統(tǒng)外設(shè)初始化步驟此外介紹一下本次系統(tǒng)設(shè)計(jì)的一些重要參數(shù)。PLL時(shí)鐘:在本次設(shè)計(jì)中的PLL時(shí)鐘的頻率設(shè)計(jì)非常關(guān)鍵,因?yàn)榇藚?shù)為本系統(tǒng)的系統(tǒng)內(nèi)部時(shí)鐘即CPU時(shí)鐘。他關(guān)系到本系統(tǒng)的方方面面,比如本系統(tǒng)的代碼執(zhí)行速度,也就是一行代碼所需的時(shí)間;還有本系統(tǒng)的系統(tǒng)時(shí)鐘,也就是本系統(tǒng)使用的最小時(shí)間單位;還有本系統(tǒng)的串口波特率等。因此PLL時(shí)鐘能否正確的配置關(guān)系到本次設(shè)計(jì)的成敗。根據(jù)公式Fcclk = Fsc*M,F(xiàn)cco = Fcclk * 2 *p以及Pclk = Fcclk/M 。另外再根據(jù)Fcco的值必須小于260MHZ,F(xiàn)cclk的值必須小于60MHZ。我們可以計(jì)算出M,以及

26、P的值。在這里我們要設(shè)置Fcclk=58Mhz,Pclk = 14Mhz。根據(jù)以上的計(jì)算計(jì)算公式,我們可以得出M值和P值分別為4、和2 。定時(shí)器:本次系統(tǒng)設(shè)計(jì)的要求是,定時(shí)時(shí)間為1ms,根據(jù)上次的PLL時(shí)鐘配置可以得出系統(tǒng)的Pclk為14MHz,因此我們可以配置定時(shí)器的預(yù)分頻值為14,即每1us計(jì)數(shù)一次。然后再配置系統(tǒng)的中斷匹配值為1000即可產(chǎn)生1ms的中斷。32 存儲(chǔ)器的軟件流程要想向SST25VF032 寫入數(shù)據(jù)必須執(zhí)行以下步驟:一,擦除要寫入數(shù)據(jù)的存儲(chǔ)塊,二、執(zhí)行寫數(shù)據(jù)命令,三、寫入數(shù)據(jù),四、數(shù)據(jù)寫入成功。Flash的基本數(shù)據(jù)通信操作:把Flash的CS管腳拉低,向SPI總線讀或?qū)憯?shù)據(jù)

27、,把Flash的CS管腳拉回高電平。擦除數(shù)據(jù):首先向Flash發(fā)送寫允許命令,然后清空Flash的狀態(tài)寄存器,再發(fā)送一個(gè)寫允許命令,接著發(fā)送擦除Flash的命令并且后面跟著要擦除的地址,接下來讀取Flash的狀態(tài)寄存器,直到他為空閑是退出來即0x01,然后在發(fā)送寫允許命令,之后再設(shè)置Flash寫保護(hù),以防止Flash的誤操作發(fā)送。圖3-3為Flash的擦除動(dòng)作的流程。圖3-3 Flash的擦除流程寫入數(shù)據(jù):首先向Flash發(fā)送寫允許命令,然后清空Flash的狀態(tài)寄存器,再發(fā)送一個(gè)寫允許命令,接著發(fā)送Flash編程命令并且后面跟著要寫入數(shù)據(jù)的地址,然后開始寫入要寫入的數(shù)據(jù),接下來讀取Flash的

28、狀態(tài)寄存器,直到他為空閑是退出來即0x01,判斷數(shù)據(jù)是否寫完,如果沒寫完繼續(xù)寫入數(shù)據(jù),如果寫完則發(fā)送寫允許命令,之后再設(shè)置Flash寫保護(hù),以防止Flash的誤操作發(fā)送。圖3-4為Flash的寫入數(shù)據(jù)動(dòng)作的流程。圖3-4 Flash寫入數(shù)據(jù)流程讀取數(shù)據(jù):Flash的讀取數(shù)據(jù)比較簡(jiǎn)單,只需要寫Flash 發(fā)送讀取數(shù)據(jù)命令即可直接對(duì)Flash進(jìn)行讀取數(shù)據(jù)。圖3-5為Flash的讀取數(shù)據(jù)流程。圖3-5 Flash讀取數(shù)據(jù)的流程33 液晶顯示模塊的軟件開發(fā)流程晶彩液晶屏是采用SPI總線控制,它具有可調(diào)節(jié)對(duì)比度,字體反白,可設(shè)置占空比,不帶字庫等特點(diǎn)。對(duì)于液晶屏的上電后的操作首先要對(duì)其進(jìn)行初始化,液晶屏

29、的初始化軟件流程主要對(duì)液晶顯示的占空比、反顯示、窗口的滾動(dòng)方式、起始行、對(duì)比度、字體的傾斜等進(jìn)行設(shè)置。然后再讀取Flash存儲(chǔ)器內(nèi)部要顯示相應(yīng)字體的字庫數(shù)據(jù),然后對(duì)液晶屏進(jìn)行逐行掃描、描點(diǎn)。這樣就能夠完整的顯示你所想要顯示的內(nèi)容。圖3-6為液晶屏完整的操作流程。圖3-6 液晶屏的操作流程液晶屏寫命令:按照晶彩液晶的數(shù)據(jù)手冊(cè),可知要向液晶屏發(fā)送命令必須遵循以下時(shí)序:一、把液晶屏的CS、RS管腳拉低;二、串口向液晶屏發(fā)送命令;三、把CS管腳拉高。圖3-7顯示液晶屏的命令操作流程。圖3-7 液晶屏寫命令液晶屏寫數(shù)據(jù):液晶屏寫數(shù)據(jù)與液晶屏寫命令差不多,這是只需把RS拉高就是寫數(shù)據(jù)。具體操作流程如圖3-

30、8所示。圖3-8 液晶屏寫數(shù)據(jù)液晶屏描點(diǎn):要想在液晶屏上正常的顯示字符,那么必須實(shí)現(xiàn)對(duì)液晶屏的描點(diǎn)。也就是要實(shí)現(xiàn)一個(gè)功能,這個(gè)功能就是要能夠?qū)崿F(xiàn)在屏幕上任意位置上顯示單一的一個(gè)點(diǎn)。想要在液晶屏上顯示一個(gè)點(diǎn),首先必須給液晶屏一個(gè)想要顯示點(diǎn)位置的X軸、Y軸坐標(biāo);然后設(shè)置液晶屏的列地址、行地址;接著就顯示該點(diǎn)的顏色,即黑色和白色。圖3-9顯示液晶屏描點(diǎn)的操作步驟。圖3-9 液晶屏描點(diǎn)顯示字符:要在屏幕上顯示字符,除了要能夠描點(diǎn)外,還遠(yuǎn)遠(yuǎn)不夠,因此這里可以需要增加一些步驟:首先,設(shè)置要顯示字符的X、Y軸坐標(biāo);其次讀取存儲(chǔ)器中的字庫數(shù)據(jù);再次,設(shè)置字體顯示的方式(例如傾斜顯示,是否透明顯示,字符間隔,下

31、劃線等);最后,按照讀取字庫的數(shù)據(jù)進(jìn)行描點(diǎn)。下圖顯示的是液晶屏顯示字符的操作步驟。圖3-10 液晶屏顯示字符34 ISD4004的軟件開發(fā)流程ISD4004語音模塊也是采用SPI總線方式控制。該模塊控制比較簡(jiǎn)單,主要包括錄音、放音、停止當(dāng)前操作等。錄音:ISD4004語音模塊想要錄音一段語音,必須遵循以下時(shí)序:1、發(fā)POWERUP命令;2、等待TPUD(上電延時(shí));3、再發(fā)送POWERUP命令;4、等待2個(gè)TPUD;5、發(fā)送帶地址的SETREC命令;6、發(fā)送REC命令;7發(fā)送STOP命令。圖3-11顯示該操作流程。圖3-11 ISD4004錄音步驟放音:ISD4004語音模塊想要播放一段語音,

32、必須遵循以下時(shí)序:1、發(fā)POWERUP命令;2、等待TPUD(上電延時(shí));3、發(fā)送帶地址的SETPLAY命令;4、發(fā)送PLAY命令。圖3-12顯示該操作流程。圖3-12 ISD4004放音步驟35 系統(tǒng)的應(yīng)用軟件開發(fā)流程在前面已經(jīng)完成了系統(tǒng)各個(gè)分部分的軟件開發(fā)流程,至此想要讓這個(gè)系統(tǒng)按照我們之前設(shè)計(jì)的要求跑起來,這里還需要用一根繩索把各個(gè)部分串聯(lián)在一起形成一個(gè)真正的系統(tǒng)。按照設(shè)計(jì)的要求,首先系統(tǒng)軟件部分應(yīng)該對(duì)CPU,外設(shè)進(jìn)行初始化,其次系統(tǒng)間出現(xiàn)一個(gè)歡迎界面,接下來進(jìn)入循環(huán)部分,循環(huán)部分完成按鍵掃描,并根據(jù)掃描的鍵值執(zhí)行相應(yīng)的動(dòng)作。圖3-13清晰的展示了系統(tǒng)的整個(gè)應(yīng)用流程。圖3-13 系統(tǒng)流程

33、圖第4章 應(yīng)用系統(tǒng)部分代碼41 系統(tǒng)核心軟件CPU初始化部分4:CPU初始化包括設(shè)置PLL 值,PClk分頻值,各個(gè)管腳配置,中斷等系統(tǒng)最關(guān)鍵參數(shù)。其代碼如下:void lpc2138_Iint()long i;PLLCON = 0X00;PLLFEED = 0XAA;PLLFEED = 0X55;PLLCFG = 0X23; /M =4 P=2 FCCLK = 14.7456 * 4=58.9824 Pclk = Fcclk/4=14.7456 PLLCON = 0X01;PLLFEED = 0xAA;PLLFEED = 0x55;while (PLLSTAT&0X0400)PLLCON =

34、 0X03;PLLFEED = 0XAA;PLLFEED = 0X55; MAMCR = 0;MAMTIM = 3;MAMCR = 2;for (i = 0; i 1000;i+) /-設(shè)置定時(shí)器1,系統(tǒng)使用該定時(shí)器來做系統(tǒng)時(shí)鐘基準(zhǔn)- T1PR=14; /設(shè)置T1為1usT1MCR=3;/MR0 與TC 值的匹配將產(chǎn)生中斷 并復(fù)位TCT1MR0=1000;/1ms 123usT1TCR=0X03;/使能并復(fù)位計(jì)數(shù)器T1TCR=0X01;/啟動(dòng)定時(shí)器1OS_Time = 0;PINSEL0 = 0x;PINSEL1 = 0xa8;PINSEL2 = 0x00;IO0DIR = 0xfec03c0

35、0;IO0SET = 0xfec03c00;IO0CLR = 0xfec03c00;IO0SET = (128);/RSIO0SET = (129);/CSIO1DIR = 0xffff8000;IO1SET = 0xffff0000;IO1CLR = 0xffff0000;/VICIntSelect = 1 5;/ 默認(rèn)為IRQ中斷VICVectCntl0 = 0x20 | 5;/設(shè)置Timer1中斷到向量中斷0 VICVectCntl1 = 0x20 | 7;/設(shè)置UART1中斷到向量中斷1 VICVectCntl2 = 0x20 | 6;/設(shè)置UART1中斷到向量中斷2 VICVectA

36、ddr0 = (unsigned long)Timer1_INT;/設(shè)置中斷向量地址(TIMER1) VICVectAddr1 = (unsigned long)UART1_INT;/設(shè)置中斷向量地址(UART1) VICVectAddr2 = (unsigned long)UART0_INT;/設(shè)置中斷向量地址(UART0) 外設(shè)初始化部分:外設(shè)初始化部分包括串口初始化,SPI初始化,液晶初始化,F(xiàn)lash初始化等部分,代碼如下:void System_Init(unsigned char Debug)11long status;lpc2138_Iint();UART_Init();MEMM

37、AP = 0X02;/remapVICIntEnable |=(1 5);/啟動(dòng)VIC中斷(TIMER1)VICIntEnable |=(1 7);VICIntEnable |=(1 6);if (Debug = 1)status = Mscomm_Open(1,8,N,1);Debug_ON = 1;elseDebug_ON = 0;IO1SET = (1256)len = 256 -offset;a1 = (Addr 16) & 0xff;a2 = (Addr 8) &0xff; a3 = Addr &0xff;Flash_cs_en();SPI1_Send(0x50);Flash_cs_

38、dis();Flash_cs_en();SPI1_Send(0x06);Flash_cs_dis();Flash_cs_en();SPI1_Send(0x01);SPI1_Send(0x00);Flash_cs_dis();flag = 0;for(i=0;ilen;i+)if(flag=0)Flash_cs_en();SPI1_Send(0x06);Flash_cs_dis();Flash_cs_en();SPI1_Send(0x02);SPI1_Send(a1);SPI1_Send(a2);SPI1_Send(a3);flag = 1;SPI1_Send(bufi);Flash_cs_di

39、s();status = sst25vf_wait_busy();if(status 0)return status;Flash_cs_en();SPI1_Send(0x04);Flash_cs_dis();Flash_cs_en();SPI1_Send(0x01);SPI1_Send(0x1c);Flash_cs_dis();status = sst25vf_wait_busy();if(status = SST25VF064C_SIZE)return (-1);a1 = (addr 16) &0xff;a2 = (addr 8) & 0xff;a3 = addr & 0xff;Flash_

40、cs_en();SPI1_Send(0x03);SPI1_Send(a1);SPI1_Send(a2);SPI1_Send(a3);for(i = 0; i len ;i+)*buf = SPI1_Read();buf+;Flash_cs_dis();return (len);43 液晶顯示模塊的部分代碼液晶寫命令11:本液晶屏的讀寫命令與數(shù)據(jù)最主要的差別在對(duì)于RS的控制,寫命令是RS=0。void LCD_COMMAND(unsigned char cmd)IO0CLR = (129);/CS =0IO0CLR = (128);/RS =0SPI1_Send(cmd);/IO0SET = 1

41、28;IO0SET = (129); 液晶屏的寫數(shù)據(jù):液晶屏的寫數(shù)據(jù)只需把RS置高即可。代碼如下:void LCD_Data(unsigned char data)IO0CLR = (129);/CS=0IO0SET = (128); /RS=1SPI1_Send(data);/IO0CLR = 128;IO0SET = (129);由于液晶屏的描點(diǎn)和液晶屏的字符顯示這部分代碼過長(zhǎng),為了解決論文空間再次就不作介紹。44 ISD4004語音模塊的部分代碼ISD4004錄音:ISD4004錄音步驟為:上電、等待延時(shí)、發(fā)送準(zhǔn)備錄音命令,開始錄音。代碼如下:void ISD4004_REC(unsig

42、ned long addr)ISD4004_Powerup();Delay(100);ISD4004_Powerup();Delay(200);ISD_Cmd(0xa0,addr);/發(fā)送準(zhǔn)備錄音命令I(lǐng)SD_Cmd(0xb0,addr);/開始錄音ISD4004放音:ISD4004放音的步驟為:上電、等待延時(shí)、發(fā)送準(zhǔn)備放音命令,發(fā)送放音命令。代碼如下:void ISD4004_PLAY(unsigned long addr)ISD4004_Powerup();Delay(100);ISD_Cmd(0xe0,addr);/發(fā)送準(zhǔn)備放音ISD_Cmd(0xf0,addr);/開始放音第五章 系統(tǒng)測(cè)

43、試51 硬件部分系統(tǒng)測(cè)試硬件部分的系統(tǒng)測(cè)試主要檢查電壓是否正常,CPU是否正常工作等。首先,檢查輸入電壓12V是否正常,接下來再檢查5V電壓是否正常,接下來檢查是否有產(chǎn)生3.3V的系統(tǒng)電壓。其次,檢查晶振是否起振,可用示波器查看,波形的頻率是否正確。再次,檢查系統(tǒng)的ISP下載是否正常工作,也就是boot管腳在ISP下載模式下是否為低電平,在應(yīng)用狀態(tài)是否高電平。接著,下載程序,檢查程序下載是否正常,若正常的話進(jìn)入下一步,若不正常檢查電路是否連接正確。若程序能夠正常下載,說明本系統(tǒng)的最小系統(tǒng),也就是核心系統(tǒng)是可以正常工作。那么接下來就可以調(diào)試外設(shè)部分的硬件,本設(shè)計(jì)外設(shè)主要接口就是IO口以及SPI接

44、口,因此調(diào)試的時(shí)候要特別這兩種接口的工作情況。IO口調(diào)試很簡(jiǎn)單,只需簡(jiǎn)單的拉高拉低電平,若管腳能夠正確響應(yīng)對(duì)應(yīng)的電平即為正常;SPI接口調(diào)試也很簡(jiǎn)單,只需向SPI總線寫入任意數(shù)據(jù),用示波器查看SPI總線的時(shí)鐘線(SCK)是否有波形(即方波),頻率是否正確,再查看MOSI,MISO管腳是否有數(shù)據(jù)輸出或輸入,判斷發(fā)送的數(shù)據(jù)是否正確。若這兩部調(diào)試成功,那么本次設(shè)計(jì)的硬件部分基本上就沒有問題了。52 軟件部分系統(tǒng)測(cè)試軟件部分測(cè)試相比硬件測(cè)試會(huì)稍微復(fù)雜一點(diǎn),不過只要遵循一定的方法,就不會(huì)很困難。首先,必須保證CPU配置部分系統(tǒng)頻率計(jì)算的正確,還有中斷要保證配置正確,各個(gè)管腳功能配置也必須保證準(zhǔn)確無誤,這樣才能保證系統(tǒng)能夠正常運(yùn)行。其次,系統(tǒng)最關(guān)鍵的配置成功了之后,就可以對(duì)串口進(jìn)行配置,串口的配置,波特率的選擇,等等必須嚴(yán)格按照MCU的規(guī)格書操作,串口配置完成之后,打開串口用串口連接計(jì)算機(jī),并在計(jì)算機(jī)上安裝串口調(diào)試助手,把本系統(tǒng)與計(jì)算機(jī)串口起來,設(shè)置好計(jì)算機(jī)串口調(diào)試工具的參數(shù),終端機(jī)子只需向串口發(fā)送簡(jiǎn)單的字符,這時(shí)調(diào)試時(shí)候只需保證終端機(jī)向計(jì)算機(jī)發(fā)送的字符與計(jì)算機(jī)接

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論