雙路信號(hào)采集存儲(chǔ)分析系統(tǒng)_第1頁(yè)
已閱讀1頁(yè),還剩37頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  雙路信號(hào)采集存儲(chǔ)分析系統(tǒng)</p><p>  關(guān)鍵詞:自動(dòng)衰減前級(jí) 可變參考電壓 液晶顯示 并行處理 文件存儲(chǔ)</p><p>  摘要:闡述了一種基于16位單片機(jī)與8位單片機(jī)技術(shù)的高性能雙路信號(hào)采集存儲(chǔ)分析系統(tǒng)的設(shè)計(jì)思路和結(jié)構(gòu)特點(diǎn)。</p><p>  多路數(shù)據(jù)采集分析系統(tǒng)主要涉及數(shù)據(jù)采集、波形分析、數(shù)據(jù)壓縮存儲(chǔ)、人機(jī)界面、液晶顯示及緩存技術(shù)

2、。其中數(shù)據(jù)的采集和壓縮存儲(chǔ)最為重要。設(shè)計(jì)的目的是以最簡(jiǎn)單的硬件發(fā)揮它最大的效能,使采集和存儲(chǔ)速率達(dá)到最大。但是在一定范圍內(nèi)采集速率和存儲(chǔ)速率是有一定矛盾的,由于此兩種操作均消耗整體系統(tǒng)資源,所以在并行處理的時(shí)候勢(shì)必會(huì)造成此消彼長(zhǎng)的問(wèn)題。此時(shí)就需要一種超線程并行處理模式,同時(shí)處理數(shù)據(jù)采集存儲(chǔ)顯示人機(jī)交換等操作。 以下為幾種方案:</p><p>  一、采用OS2 R2TX-TINV等可用于單片機(jī)的嵌入式操作系統(tǒng)

3、利用任務(wù)切換形式完成多程序并行操作與響應(yīng)。這種方案的優(yōu)點(diǎn)是編程相對(duì)簡(jiǎn)單、任務(wù)明確、易于擴(kuò)展。它的缺點(diǎn)是當(dāng)利用于51單片機(jī)等低端8位單片機(jī)時(shí),占用系統(tǒng)資源過(guò)大。往往需要外擴(kuò)SRAM和ROM等手段擴(kuò)充硬件資源,增加系統(tǒng)硬件的復(fù)雜程度。在任務(wù)為較簡(jiǎn)單的操作時(shí)往往得不償失,實(shí)時(shí)性也很難保證。若采用高端的單片機(jī)勢(shì)必會(huì)增加成本,所以未選擇此種方案。</p><p>  二、協(xié)調(diào)和利用單片機(jī)內(nèi)部多個(gè)時(shí)鐘中斷源。時(shí)分制的并行處理

4、多個(gè)任務(wù)與響應(yīng),這種方案的優(yōu)點(diǎn)是在任務(wù)較簡(jiǎn)單時(shí),占用系統(tǒng)資源極少,系統(tǒng)利用率高且無(wú)須外擴(kuò)硬件,可靠性好,容易把握實(shí)時(shí)性。它的缺點(diǎn)是當(dāng)任務(wù)較大時(shí)會(huì)造成時(shí)鐘中斷過(guò)長(zhǎng),多中斷互相嵌套冗雜等情況,造成程序混亂,尤其是在各任務(wù)所需處理中斷時(shí)間不一的時(shí)候,最容易發(fā)生。同時(shí)由于單個(gè)單片機(jī)數(shù)據(jù)處理能力有限,不可能處理過(guò)于復(fù)雜的任務(wù),所以我們未采用此種方案。</p><p>  三、用多個(gè)單片機(jī)各司其職協(xié)調(diào)合作,分別完成不同的任務(wù)

5、。雖然一定程度上增加了硬件的復(fù)雜程度,但有利于模塊化設(shè)計(jì),并且與采用高端單片機(jī)相比更可行,低廉。所以我們選用此種方案。</p><p>  在多單片機(jī)合作協(xié)調(diào)時(shí),最大的難點(diǎn)是數(shù)據(jù)和命令在各單片機(jī)間傳輸?shù)目偩€的結(jié)構(gòu)設(shè)計(jì)問(wèn)題。有以下幾種方案:</p><p>  1、采用單總線分支機(jī)構(gòu),以相同的數(shù)據(jù)命令傳輸協(xié)議,用呼號(hào)形式統(tǒng)一傳輸數(shù)據(jù)和命令。其優(yōu)點(diǎn)是:可在任意分支單片機(jī)間雙向數(shù)據(jù)連接,且硬件相

6、對(duì)簡(jiǎn)單,可廣播式發(fā)送數(shù)據(jù)與命令,且不用區(qū)分主從機(jī)。其缺點(diǎn)是:傳輸數(shù)據(jù)時(shí)只能有一個(gè)單片機(jī)發(fā)送信號(hào),其他單片機(jī)只能接收,容易形成各單片機(jī)間搶占總線等問(wèn)題。需要相應(yīng)的總線仲裁機(jī)構(gòu)來(lái)完成總線資源分配,硬件將相對(duì)復(fù)雜。我們的系統(tǒng)需要大數(shù)據(jù)流單向傳輸和小命令流雙向傳輸,所以不能用此結(jié)構(gòu)。</p><p>  2、樹(shù)狀主從式總線機(jī)構(gòu),這種總線的最大優(yōu)點(diǎn)是有利于數(shù)據(jù)從主機(jī)到從機(jī)之間的傳輸,易于尋址。適合于多路信號(hào)采集的匯總和主機(jī)

7、對(duì)從機(jī)的操作。其缺點(diǎn)是:數(shù)據(jù)傳輸路徑固定,在中繼單片機(jī)運(yùn)行時(shí)占用不必要的系統(tǒng)資源,不利于各分機(jī)之間的數(shù)據(jù)交流。</p><p>  3、多總線、控制線傳輸機(jī)構(gòu),由于本作品設(shè)計(jì)的獨(dú)特性,結(jié)合51單片機(jī)硬件特點(diǎn),采用兩條總線。一條是命令總線,一條是數(shù)據(jù)總線。由于在本系統(tǒng)內(nèi)部數(shù)據(jù)的流向是單向的,且數(shù)據(jù)量很大,連接在凌陽(yáng)數(shù)據(jù)采集板、數(shù)據(jù)存儲(chǔ)器和液晶波形顯示緩沖板之間。為10位并口數(shù)據(jù)總線且共用一條時(shí)鐘線,沒(méi)有傳輸協(xié)議,以

8、增大傳輸速率。</p><p>  最終定下方案:整體方框圖如下:</p><p>  輔助CPU連接著前級(jí)衰減控制器,參考、偏置電壓生成器,5*8鍵盤等模塊。由于數(shù)據(jù)傳輸較為簡(jiǎn)單,分別采用若干控制線對(duì)其控制。輔助CPU、主CPU和存儲(chǔ)器、顯示緩沖區(qū)之間通信采用串口數(shù)據(jù)總線,以不同的命令頭、命令尾來(lái)識(shí)別起始和目標(biāo)單片機(jī)來(lái)完成互相間控制通訊。</p><p>  以下

9、將詳細(xì)介紹各個(gè)組成部分:</p><p><b>  一 輸入部分 </b></p><p>  前向通道的作用是對(duì)被測(cè)信號(hào)進(jìn)行調(diào)理、量化。并將量化結(jié)果存入存儲(chǔ)器,以被顯示之用。它是整個(gè)設(shè)計(jì)的核心。</p><p><b>  信號(hào)條理電路的設(shè)計(jì)</b></p><p>  A/D對(duì)輸入的模擬信號(hào)

10、的幅值有一定的要求范圍。為0~3.3V,而對(duì)于待測(cè)信號(hào)來(lái)說(shuō)其幅值各不相同,有時(shí)大大超出了A/D所如許的最大輸入范圍,造成飽和失真,甚至燒毀硬件。有時(shí)信號(hào)較小,使A/D轉(zhuǎn)換結(jié)果產(chǎn)生很大相對(duì)誤差,甚至不響應(yīng)。這些因素都使得無(wú)法對(duì)信號(hào)進(jìn)行準(zhǔn)確的測(cè)量。</p><p>  信號(hào)條理電路的作用就是將不同幅度的輸入信號(hào)都?xì)w整到適合A/D采集的輸入信號(hào)范圍,具體來(lái)說(shuō),就是對(duì)大的輸入信號(hào)進(jìn)行衰減,對(duì)小信號(hào)則要放大。</p&

11、gt;<p>  方案一:采用可編程增益放大器。如PGA103,對(duì)輸入信號(hào)進(jìn)行調(diào)理。通過(guò)對(duì)可編程器件的控制,使其放大倍數(shù)可以為*1、*10兩種不同值,來(lái)滿足對(duì)大小不同信號(hào)的放大要求。但這種方法無(wú)法滿足精確幅度的控制,將信號(hào)放大的同時(shí),也將干擾信號(hào)放大,而且可編程增益放大器的價(jià)格較高。</p><p>  方案二:我們摒棄了傳統(tǒng)的理念。在信號(hào)較小時(shí),通過(guò)實(shí)時(shí)的精確的改變A/D的參考電壓,改變采樣范圍,

12、以保證測(cè)量精度。</p><p>  通常生成參考電壓的方法是由一個(gè)D/A輸出電壓。對(duì)D/A的控制較為占單片機(jī)口線資源,并且通常D/A輸出為電流,所以后級(jí)還要加放大器做電流—電壓轉(zhuǎn)換,這樣使系統(tǒng)較為復(fù)雜,不利于系統(tǒng)調(diào)試,其最為欠缺的是數(shù)據(jù)的易失性,斷電后此數(shù)據(jù)無(wú)法保存。經(jīng)過(guò)仔細(xì)分析,我們采用一片數(shù)字電位器來(lái)完成此功能。我們采用256抽頭的DCP(數(shù)字電位器),此數(shù)字電位器與系統(tǒng)采用SPI串行通訊方式,其控制總線少

13、,體積結(jié)構(gòu)小,對(duì)其控制較為靈活、方便,其最大的優(yōu)點(diǎn)是數(shù)據(jù)的非易失性,當(dāng)系統(tǒng)突然掉電時(shí),數(shù)字電位器內(nèi)部的存儲(chǔ)單元會(huì)將當(dāng)前值進(jìn)行存儲(chǔ),待系統(tǒng)上電時(shí),其存儲(chǔ)數(shù)據(jù)即可恢復(fù),實(shí)現(xiàn)數(shù)據(jù)的保存。</p><p>  對(duì)于待測(cè)信號(hào)來(lái)說(shuō)其幅值各不相同,我們?cè)谛盘?hào)輸入端加了前級(jí)衰減,從而將大信號(hào)進(jìn)行相應(yīng)的衰減,以滿足不同幅度的輸入信號(hào)都?xì)w整到適合A/D的輸入信號(hào)范圍。具體方法實(shí)現(xiàn)同樣是采用數(shù)字電位器做精密衰減控制。其控制方法簡(jiǎn)潔,方

14、便,并且精度較高。</p><p>  經(jīng)綜合考慮,在本設(shè)計(jì)中采用方案二實(shí)現(xiàn)信號(hào)的前端調(diào)理。</p><p><b>  采樣方式的選擇</b></p><p>  再現(xiàn)代數(shù)字采集、存儲(chǔ)系統(tǒng)中,通常有兩種采樣方式:實(shí)時(shí)采樣和等效采樣。、</p><p><b>  方案一:實(shí)時(shí)采樣</b><

15、/p><p>  實(shí)時(shí)采樣是在信號(hào)存在期間對(duì)其采樣。根據(jù)奈奎斯特采樣定理,采樣頻率必須高于被測(cè)信號(hào)中最高頻率分量的2倍,對(duì)于周期正弦信號(hào),一個(gè)周期應(yīng)該有兩個(gè)采樣點(diǎn),考慮到實(shí)際因素的影響,為了不失真的恢復(fù)原被信號(hào),通常對(duì)被測(cè)信號(hào)的一個(gè)周期至少應(yīng)該有5個(gè)采樣點(diǎn),原被測(cè)信號(hào)不失真的恢復(fù)也受到A/D的采樣深度的限制。實(shí)時(shí)采樣方法簡(jiǎn)單,易于實(shí)現(xiàn),當(dāng)被測(cè)信號(hào)頻率不是很高時(shí),實(shí)時(shí)采樣方法較為理想。如圖1—1所示</p>

16、<p><b>  方案二:等效采樣</b></p><p>  由于采樣器工作的速率的限制,實(shí)際上在被測(cè)信號(hào)的頻率較高時(shí)很難實(shí)現(xiàn)實(shí)時(shí)采樣。并且采樣速率愈高,要求A/D的轉(zhuǎn)換速率愈高,其價(jià)格愈高。所以在價(jià)格上很難接受。但對(duì)于周期信號(hào)可以采用等效采樣方法。其中又分為順序和隨機(jī)等效采樣方法。所謂順序采樣是對(duì)每一個(gè)信號(hào)周期僅采樣一點(diǎn),經(jīng)過(guò)若干個(gè)信號(hào)周期后,就可以將被測(cè)信號(hào)的各個(gè)部分采

17、樣一遍,這種采樣方法可以使采樣點(diǎn)借助于“步進(jìn)延遲”方法均勻的分布于被測(cè)信號(hào)波行的不同位置。所謂步進(jìn)延時(shí),是每一次采樣比上一次采樣點(diǎn)的位置延時(shí)Δt時(shí)間。如圖1—2。</p><p>  等效采樣雖然對(duì)很高頻率的信號(hào)進(jìn)行采樣,但“步進(jìn)延遲”的方法很難在短時(shí)間內(nèi)實(shí)現(xiàn),本設(shè)計(jì)要求信號(hào)頻率最大為10KHz,按對(duì)信號(hào)的每個(gè)周期的采樣點(diǎn)為5個(gè)算故要求的最高采樣速率不是很高。所以,在本設(shè)計(jì)中我們采用實(shí)時(shí)采樣方法。</p&g

18、t;<p>  3。 電平移位電路</p><p>  由于被測(cè)信號(hào)是雙極性的,即被轉(zhuǎn)換的模擬信號(hào)為正或負(fù)極性,而A/D的輸入信號(hào)通常為單極性信號(hào)。為了對(duì)雙極性信號(hào)的測(cè)量,以及適應(yīng)A/D的要求,在進(jìn)行A/D轉(zhuǎn)換之前必須將雙極性信號(hào)轉(zhuǎn)換為單極性信號(hào),所以我們?cè)O(shè)計(jì)了電平移位電路,在本設(shè)計(jì)中可將被測(cè)信號(hào)移位為單極性信號(hào)。電平轉(zhuǎn)換電路,如圖1—3。 </p><p>  用電阻分壓

19、生成一個(gè)電壓為參考電壓二分之一的偏置信號(hào),然后通過(guò)OP-07組成的射隨器隔離放大,然后跟輸入信號(hào)混合,完成電平移位。</p><p>  4. 雙路信號(hào)輸入</p><p>  為了對(duì)雙路信號(hào)(A.B)同時(shí)進(jìn)行顯示,必須同時(shí)對(duì)A.B雙路信號(hào)進(jìn)行采集、存儲(chǔ)、顯示。通常,對(duì)雙路信號(hào)進(jìn)行調(diào)理、采集、存儲(chǔ)有兩種方法,即斷續(xù)采樣方法和交替采樣方法。斷續(xù)采樣方法是在各采樣點(diǎn)對(duì)A.B信號(hào)進(jìn)行采樣,即每

20、次采樣都需要切換一次被測(cè)信號(hào);而交替采樣方法是當(dāng)對(duì)某一被測(cè)信號(hào)采樣滿一屏數(shù)據(jù)后,切換對(duì)另一路被測(cè)信號(hào)進(jìn)行采樣。本設(shè)計(jì)中被測(cè)信號(hào)的頻率不是很高,甚至為直流信號(hào),故本設(shè)計(jì)采用斷續(xù)采樣方法。</p><p>  從電路上來(lái)說(shuō),有以下幾種方案實(shí)現(xiàn)雙路采集、顯示。</p><p>  方案一:用模擬開(kāi)關(guān)實(shí)現(xiàn)斷續(xù)采樣方法,將A.B雙路信號(hào)接入模擬開(kāi)關(guān),由控制器切換輸入信號(hào),分時(shí)將被測(cè)信號(hào)值A(chǔ)/D。如圖

21、1—4。 </p><p>  方案二:將雙路被測(cè)信號(hào)A.B各自接入相應(yīng)的A/D,同時(shí)開(kāi)始模數(shù)轉(zhuǎn)換,將轉(zhuǎn)換得數(shù)據(jù)分別存入各自的RAM中,如圖1—5, 此方法軟件簡(jiǎn)單,硬件較為復(fù)雜,而且需要兩片A/D,成本相對(duì)較高。</p><p>  方案三:借助兩對(duì)MOS管實(shí)現(xiàn)端緒測(cè)量方法,用兩個(gè)根控制線控制MOS管的關(guān)斷和導(dǎo)通,用選通的方法將被測(cè)信號(hào)接至A/D,進(jìn)行采集。如圖1—6, MOS管的導(dǎo)通電

22、阻極小,不會(huì)對(duì)被測(cè)信號(hào)有影響。</p><p>  考慮到模擬開(kāi)關(guān)的導(dǎo)通電阻較大,有損耗,并且存在著門延遲;而若采用雙D/A在成本上又大大提高。所以,綜合考慮各種因素,我們采用兩對(duì)MOS管的方案來(lái)實(shí)現(xiàn)雙路采集,其導(dǎo)通損耗較小,導(dǎo)通延時(shí)短,易于實(shí)現(xiàn)。</p><p>  5 濾波電路的設(shè)計(jì)</p><p>  被測(cè)信號(hào)的頻譜分量較多,其中必然夾雜著許多高次諧波的干

23、擾,這樣對(duì)測(cè)量精度有嚴(yán)重的影響.所以,我們?cè)诒粶y(cè)信號(hào)的輸入端加了一級(jí)低通濾波器,它可以是有用的頻率信號(hào)通過(guò),而抑制(或大為衰減)無(wú)用的頻率信號(hào),這樣許多高頻干擾信號(hào)被濾除,提高了測(cè)量的精度。實(shí)現(xiàn)低通濾波器有下面幾種方案。</p><p>  方案一:采用切比雪夫?yàn)V波器</p><p>  切比雪夫?yàn)V波器的顯著特點(diǎn)是,其逼近誤差峰值在一定規(guī)定的范圍的頻段尚為最小,而且是等紋波的即誤差值在極大

24、和極小值之間擺動(dòng)。 </p><p>  方案二:二階BUTTERWORTH(巴特沃茲)低通濾波器</p><p>  二階巴特沃茲濾波器,如MAXIM公司的MAX291,其優(yōu)點(diǎn)是通帶內(nèi)特性曲線平坦,但是其從導(dǎo)通到截至頻率的坡度較為緩慢,且價(jià)格較高。方案三:RC積分濾波器</p><p>  RC積分濾波器使用方便,體積小,卻完全滿足本設(shè)計(jì)要求。其頻率特性為:F

25、(jΩ)=1/(1+jΩτ) ,其中τ=RC為時(shí)間常數(shù)。如圖1—7。</p><p><b>  二 數(shù)據(jù)采集部分</b></p><p>  數(shù)據(jù)采集是以一塊凌陽(yáng)SPCE061A為核心。它是μ’nSP系列產(chǎn)品SPCE500A之后凌陽(yáng)科技推出的又一個(gè)16位結(jié)構(gòu)的微控制器。與SPCE500A不同的是,在存儲(chǔ)器資源方面考慮到用戶的較少資源的需求以及便于程序調(diào)試等功能,SP

26、CE061A內(nèi)僅內(nèi)嵌32K字的閃存(FLASH)。較高的處理速度使μ’nSP能夠非常容易地、快速地處理復(fù)雜的數(shù)字信號(hào)。因此,與SPCE500A相比,以μ’nSP為核心的SPCE061A微控制器是適用于數(shù)字語(yǔ)音識(shí)別應(yīng)用領(lǐng)域產(chǎn)品的一種經(jīng)濟(jì)的選擇。 </p><p><b>  主要性能為:</b></p><p>  16位μ’nSP微處理器; </p>&

27、lt;p>  工作電壓:VDD為2.6~3.6V(CPU), VDDH為VDD~5.5V(I/O); </p><p>  CPU時(shí)鐘:0.32MHz~49.152MHz ; </p><p>  內(nèi)置2K Words 的SRAM; </p><p>  內(nèi)置32K Words 的FLASH; </p><p><b>  可

28、編程音頻處理; </b></p><p>  系統(tǒng)處于備用狀態(tài)下(時(shí)鐘處于停止?fàn)顟B(tài)),耗電小于2μA@3.6V; </p><p>  2個(gè)16位可編程定時(shí)器/計(jì)數(shù)器(可自動(dòng)預(yù)置初始計(jì)數(shù)值); </p><p>  2個(gè)10位DAC(數(shù)-模轉(zhuǎn)換)輸出通道; </p><p>  32位通用可編程輸入/輸出端口; </p>

29、;<p>  14個(gè)中斷源可來(lái)自定時(shí)器A / B,時(shí)基,2個(gè)外部時(shí)鐘源輸入,鍵喚醒; </p><p>  具備觸鍵喚醒的功能; </p><p>  使用凌陽(yáng)音頻編碼SACM_S240方式(2.4K位/秒),能容納210秒的語(yǔ)音數(shù)據(jù); </p><p>  鎖相環(huán)PLL振蕩器提供系統(tǒng)時(shí)鐘信號(hào); </p><p>  32768

30、Hz實(shí)時(shí)時(shí)鐘; </p><p>  7通道10位電壓模-數(shù)轉(zhuǎn)換器(ADC)和一個(gè)單通道的聲音專用模-數(shù)轉(zhuǎn)換器; </p><p>  聲音模-數(shù)轉(zhuǎn)換器輸入通道內(nèi)置麥克風(fēng)放大器和自動(dòng)增益控制(AGC)電路; </p><p>  具備串行設(shè)備接口; </p><p>  具有低電壓復(fù)位(LVR)功能和低電壓監(jiān)測(cè)(LVD)功能; </p&

31、gt;<p>  內(nèi)置在線仿真電路ICE(In- Circuit Emulator)接口; </p><p><b>  具有保密能力; </b></p><p>  具有WatchDog功能。</p><p>  在此系統(tǒng)中,利用它來(lái)完成數(shù)據(jù)的采集,初步分析和高頻濾波。由于它的CPU與八路A/D模塊成為一體,所以在數(shù)據(jù)采集過(guò)程當(dāng)

32、中必將耗費(fèi)CPU的資源,CPU系統(tǒng)占用率也直接影響著A/D模塊的采樣速率,為提高采樣速率的高速性和完整性,CPU不能有過(guò)多得任務(wù)且不能使用外部中斷等隨機(jī)資源,所以它僅用于將外部信號(hào)采集后初步分析,從IOB中輸出有十位精度的數(shù)據(jù)流。通道切換靠前級(jí)來(lái)完成。</p><p>  ADC采用自動(dòng)方式工作,硬件ADC的最高速率限定為(Fosc/32/12)Hz,如果速率超過(guò)此值,當(dāng)從P_ADC(讀)(S7014H) 單元讀

33、取數(shù)據(jù)時(shí)會(huì)發(fā)聲錯(cuò)誤。ADC在各種系統(tǒng)時(shí)鐘下的頻率響應(yīng)為:</p><p>  最大采樣率(Samplerate_max)為 Samplerate_max=ADC響應(yīng)率/16=1536KHz/16=96KHz。</p><p>  此數(shù)據(jù)流通過(guò)數(shù)據(jù)總線在無(wú)傳輸協(xié)議、無(wú)其他數(shù)據(jù)干擾、單向引入存儲(chǔ)器和圖像緩沖器。</p><p><b>  三 數(shù)據(jù)存儲(chǔ)部分&

34、lt;/b></p><p>  存儲(chǔ)部分的功能是完成程序與數(shù)據(jù)的存儲(chǔ)(單片機(jī)的程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器是截然分開(kāi)的)。由于各個(gè)模塊的單片機(jī)都集成有8K以上的程序存儲(chǔ)器,而各單片機(jī)所集成的內(nèi)部數(shù)據(jù)存儲(chǔ)器只有256字節(jié),這樣的容量對(duì)于采集后的數(shù)據(jù)的存儲(chǔ)是顯然不夠的。所以在內(nèi)部程序存儲(chǔ)器夠用的情況下,只需要擴(kuò)展外部數(shù)據(jù)存儲(chǔ)器。</p><p><b>  有以下幾種方案:<

35、/b></p><p>  方案一:用FLASH存儲(chǔ)器擴(kuò)展外部數(shù)據(jù)存儲(chǔ)器</p><p>  FLASH存儲(chǔ)器是一種電擦除與再編程的快速存儲(chǔ)器,又稱為閃速存儲(chǔ)器。存儲(chǔ)容量能達(dá)到兆位以上,在商業(yè)和工業(yè)上具有廣闊的前景,但目前市面上的FLASH由于沒(méi)有統(tǒng)一協(xié)議,各個(gè)廠家所生產(chǎn)的FLASH相互間差異很大。編程的指令系統(tǒng)各不相同,互不兼容,使用起來(lái)非常不便。FLASH存儲(chǔ)器的內(nèi)部分為許多相等

36、的段,每段對(duì)應(yīng)于一個(gè)頁(yè)面,每一頁(yè)的存儲(chǔ)地址與存儲(chǔ)容量是固定的,所以FLASH是以分區(qū)為單位進(jìn)行再編程的,讀寫時(shí)必須保證連續(xù)地把某一分區(qū)讀寫完,如果某一分區(qū)中的一個(gè)數(shù)據(jù)需要改變,那么這一分區(qū)中的所有數(shù)據(jù)必須重新裝入。一旦某一分區(qū)中的字節(jié)被裝入,這些字節(jié)將同時(shí)在內(nèi)部編程時(shí)間內(nèi)進(jìn)行編程,在此時(shí)間內(nèi)若有數(shù)據(jù)裝入,則會(huì)產(chǎn)生不確定的數(shù)據(jù)。</p><p>  方案二:用隨機(jī)存儲(chǔ)器擴(kuò)展外部數(shù)據(jù)存儲(chǔ)器</p>&l

37、t;p>  在單片機(jī)里數(shù)據(jù)的存儲(chǔ)用的較多的是隨機(jī)存儲(chǔ)器(Random Access Memory)簡(jiǎn)稱為RAM,按其工作方式,RAM又分為靜態(tài)(SRAM)和動(dòng)態(tài)(DRAM)兩種。SRAM只要電源加上,所存儲(chǔ)的信息就能可靠保存。而DRAM使用的是動(dòng)態(tài)存儲(chǔ)單元,需要不斷進(jìn)行刷新以便周期性地再生,才能保存信息。DRAM的集成密度大,集成同樣的位容量,DRAM所占芯片面積只是SRAM的四分之一。此外DRAM的功耗低,價(jià)格便宜。但動(dòng)態(tài)存儲(chǔ)器

38、要增加刷新電路,因此對(duì)于采集后的數(shù)據(jù)存儲(chǔ)很不方便。</p><p>  鑒于本系統(tǒng)的存儲(chǔ)部分主要用于對(duì)信號(hào)采集后的數(shù)據(jù)的存儲(chǔ),考慮到所要求的存儲(chǔ)速度和容量問(wèn)題可采用AT89C52外擴(kuò)兩片62256SRAM(共64K字節(jié))來(lái)完成數(shù)據(jù)存儲(chǔ)的功能。</p><p>  硬件連接如圖所示:P0口分別與兩片62256相連作為數(shù)據(jù)總線,同時(shí)P0口通過(guò)鎖存器373與兩片62256的低8位地址A0~A7相

39、連,兩片62256的高7位地址A8~A14與P2口的低7位相連。P2口的最高位作為兩片62256的片選信號(hào)線,當(dāng)它為高電平時(shí)選的是1#62256,而當(dāng)它是低時(shí)選的時(shí)2#62256。如圖2—1所示。</p><p>  AT89C52內(nèi)部有8K的ROM,作為存儲(chǔ)模塊的CPU可以在其上運(yùn)行文件系統(tǒng)。該文件系統(tǒng)實(shí)行對(duì)采集后的數(shù)據(jù)進(jìn)行按文件名存儲(chǔ)。在存儲(chǔ)器容量限度內(nèi),能達(dá)到隨時(shí)存儲(chǔ)隨時(shí)讀取的功能。同時(shí)如果采集的數(shù)據(jù)超過(guò)存

40、儲(chǔ)器容量,可以基于此文件系統(tǒng)和存儲(chǔ)模塊下進(jìn)行再次的擴(kuò)展。對(duì)于擴(kuò)展此存儲(chǔ)模塊有很好的兼容性。本文在擴(kuò)展部分重點(diǎn)討論了基于單片機(jī)的海量存儲(chǔ)-----單片機(jī)對(duì)硬盤的讀寫。</p><p>  存儲(chǔ)模塊受主CPU控制,實(shí)時(shí)響應(yīng)從主CPU發(fā)過(guò)來(lái)的命令。主CPU通過(guò)命令與存儲(chǔ)模塊的CPU進(jìn)行通信,并通過(guò)數(shù)據(jù)總線接收數(shù)據(jù)。存儲(chǔ)模塊的CPU接收主CPU發(fā)過(guò)來(lái)的指令,把信號(hào)采集CPU所采集的數(shù)據(jù)分配存儲(chǔ)空間,按文件名存儲(chǔ)。<

41、/p><p>  方案三:用硬盤海量存儲(chǔ)擴(kuò)展外部數(shù)據(jù)存儲(chǔ)器</p><p>  在PC上,硬盤通過(guò)IDE40芯的扁平非屏蔽電纜與主板連接,數(shù)據(jù)和命令在其上異步傳輸。與硬盤通信是通過(guò)IO寄存器來(lái)完成的,硬盤的寄存器分為命令寄存器組和控制寄存器組。訪問(wèn)硬盤上的寄存器是由CS0FX,CS3FX,A2,A1,A0來(lái)譯碼完成的。</p><p>  IDE硬盤驅(qū)動(dòng)器中的寄存器及地

42、址分配</p><p>  IDE接口的硬盤驅(qū)動(dòng)器提供了兩種數(shù)據(jù)傳輸模式:PIO模式和DMA模式。</p><p><b>  PIO模式:</b></p><p>  由于PIO模式控制相對(duì)容易,提供了一種編程控制輸入/輸出的快速傳輸方法。該模式采用高速的數(shù)據(jù)塊I/O,以扇區(qū)為單位,用中斷請(qǐng)求方式與CPU進(jìn)行批量數(shù)據(jù)交換。在扇區(qū)讀寫操作時(shí),一

43、次按16位長(zhǎng)度通過(guò)內(nèi)部的高速PIO數(shù)據(jù)寄存器傳輸。通常情況下,數(shù)據(jù)傳輸以扇區(qū)為單位,每傳輸一扇區(qū)數(shù)據(jù)產(chǎn)生一個(gè)中斷。錯(cuò)誤信息寄存器為只讀,寄存器位如置1代表不同的錯(cuò)誤信息。屬性寄存器為只寫,對(duì)該寄存器的操作可使硬盤工作在不同的模式。由于單片機(jī)為8位的數(shù)據(jù)總線,而硬盤默認(rèn)為16位IO,需要對(duì)屬性寄存器寫0x01,使其工作在8位總線模式。 扇區(qū)數(shù)目寄存器的值表示需對(duì)硬盤讀寫的扇區(qū)數(shù)目,對(duì)硬盤的操作都是以扇區(qū)位單位,每個(gè)扇區(qū)包含512個(gè)字節(jié),即

44、每次對(duì)硬盤的數(shù)據(jù)讀寫都是512個(gè)字節(jié)的倍數(shù)。 本文中對(duì)硬盤的操作是以LBA模式進(jìn)行,即硬盤上的存儲(chǔ)扇區(qū)映射成連續(xù)的邏輯塊地址。要使能LBA模式,需要對(duì)模式寄存器的第6位置1。</p><p>  6) LBA 地址8-15位寄存器,在CS3FX,A2為高電平,CS0FX,A1,A0為低電平時(shí)選通,其地址為0x8004。LBA地址共28位表示。</p><p>  7) LBA 地址16-2

45、3位寄存器,在CS3FX,A2,A0為高電平,CS0FX,A1為低電平時(shí)選通,其地址為0x8005。</p><p>  8) 模式寄存器,在CS3FX,A2,A1為高電平,CS0FX,A0為低電平時(shí)選通,參照原理圖1,其地址為0x8006。其低4位為L(zhǎng)BA地址的24-27位,第4位為主從硬盤選擇位,若連接J1,則硬盤設(shè)為主設(shè)備,相應(yīng)的第4位應(yīng)為0;若斷開(kāi)J1,則硬盤為從設(shè)備,相應(yīng)的第4位應(yīng)置1。</p&g

46、t;<p>  9) 狀態(tài)寄存器,在CS3FX, A2, A1, A0為高電平,CS0FX為低電平時(shí)選通,其地址為0x8007。該寄存器為只讀。其中第7位若為1,表示硬盤處于忙狀態(tài),第3位若為1,表示數(shù)據(jù)準(zhǔn)備好,等待傳輸。詳細(xì)的檢驗(yàn)程序請(qǐng)參照所附的程序。</p><p>  10) 命令寄存器,在CS3FX, A2, A1, A0為高電平,CS0FX為低電平時(shí)選通,其地址為0x8007。該寄存器為只

47、寫。注意硬盤的命令有帶參數(shù)和不帶參數(shù)兩種,在具有參數(shù)的命令操作時(shí),需要首先寫入所有的參數(shù)到各個(gè)寄存器,最后寫命令寄存器。</p><p><b>  硬件連接</b></p><p>  單片機(jī)的P0口與硬盤的低8位連接,A0 A1 A2經(jīng)74LS373鎖存后,連接到硬盤的A0 A1 A2腳,因其工作在8位模式,硬盤的高8位數(shù)據(jù)線懸空。 </p><

48、;p>  J1用來(lái)選擇主從硬盤,在連接J1時(shí),該硬盤位主硬盤,否則為從硬盤。8031應(yīng)檢測(cè)P1.0上的電平,相應(yīng)地設(shè)置模式寄存器的第4位。</p><p>  P1.1用于硬復(fù)位硬盤,在低電平時(shí)有效。因8031不支持DMA模式,硬盤工作于PIO模式,所以DMA請(qǐng)求與應(yīng)答信號(hào)懸空。所附軟件工作于查詢模式,中斷請(qǐng)求信號(hào)懸空。</p><p>  在硬盤讀寫操作時(shí),DASP腳為低電平,相應(yīng)

49、的LED指示燈亮。</p><p><b>  DMA模式:</b></p><p>  硬盤和FLASH一樣也是分區(qū)連續(xù)存取方式讀寫數(shù)據(jù),有512字節(jié)的緩沖區(qū),外部通過(guò)緩沖區(qū)讀寫硬盤的數(shù)據(jù)。由于單片機(jī)的內(nèi)部數(shù)據(jù)存儲(chǔ)器為256字節(jié),顯然不能通過(guò)單片機(jī)直接對(duì)硬盤的緩沖區(qū)對(duì)寫操作。單片機(jī)通常不具有DMA功能,也沒(méi)有現(xiàn)成的控制芯片可以利用,而且由于總線和系統(tǒng)組成方面的差異無(wú)

50、法將PC中的DMA電路移植到單片機(jī)系統(tǒng)中。但可以用兩片單片機(jī)搭一個(gè)DMA模塊解決這個(gè)問(wèn)題。</p><p>  DMA硬件連接如圖2—2。</p><p><b>  74HC623</b></p><p>  模塊由兩片AT89C51,兩片2K的SRAM6116,兩片地址鎖存373,以及8片總線切換器74HC623組成。74HC623為三態(tài)門

51、總線切換器,通過(guò)其方向控制線GAB和/GBA</p><p>  來(lái)控制總線的走向。兩片SRAM6116接地選通,在寫狀態(tài)時(shí)1#AT89C51接收其他CPU發(fā)過(guò)來(lái)的數(shù)據(jù)流寫到1#6116,當(dāng)寫完256字節(jié)時(shí),1#AT89C51轉(zhuǎn)向2#6116向其寫數(shù)據(jù),同時(shí),2#AT89C51從1#6116讀數(shù)據(jù),并寫到硬盤緩沖區(qū)。當(dāng)1#AT89C51對(duì)2#6116寫完256字節(jié)時(shí),又回到1#6116對(duì)其進(jìn)行寫數(shù)據(jù),而2#AT8

52、9C51此時(shí)也已經(jīng)把1#6116中的數(shù)據(jù)讀出并寫到了硬盤中,接著2#AT89C51轉(zhuǎn)到2#6116讀其數(shù)據(jù)并寫到硬盤緩沖區(qū)。當(dāng)讀完2#6116中的數(shù)據(jù)就完成一個(gè)寫周期,即把512字節(jié)的緩沖區(qū)寫滿,而且這個(gè)過(guò)程必須時(shí)一個(gè)連續(xù)的過(guò)程,因?yàn)橛脖P時(shí)分區(qū)存取的。而對(duì)于讀的過(guò)程也就是相反的過(guò)程。</p><p><b>  四 顯示部分</b></p><p>  波形的顯示系統(tǒng)

53、主要由一塊240*128分辨率的液晶屏,液晶屏驅(qū)動(dòng)器,圖像緩沖器組成,采用液晶屏的優(yōu)點(diǎn)是,圖像清晰、直觀、易于保存、攜帶方便,不詳示波管那樣需要高壓驅(qū)動(dòng),大大減小體積、能耗、重量。它的缺點(diǎn)是刷新速度慢,高速、大幅度跳變顯示時(shí)波形圖像有斷續(xù)現(xiàn)象。為此據(jù)需要一塊單片機(jī)對(duì)高速數(shù)據(jù)流緩存,并且使離散圖像點(diǎn)分析成連續(xù)的波形圖像。由于單片機(jī)內(nèi)存較少,無(wú)法緩存整屏圖像,所以使用了特殊的算法(詳見(jiàn)附錄源代碼)。在不外擴(kuò)系統(tǒng)資源的情況下,以51單片機(jī)完成

54、圖像緩存處理。</p><p>  液晶顯示驅(qū)動(dòng)器采用T6963芯片,T6963C 的液晶顯示模塊實(shí)現(xiàn)了T6963C 與行列驅(qū)動(dòng)器及顯示緩沖區(qū)RAM 的接口,同時(shí)也已用硬件設(shè)置了液晶屏的結(jié)構(gòu)(單雙屏) 數(shù)據(jù)傳輸方式顯示窗口長(zhǎng)度寬度等等。整體方塊如圖:</p><p>  T6963C 的特點(diǎn)</p><p>  (1) T6963C 是點(diǎn)陣式液晶圖形顯示控制器它能直

55、接與80 系列的8 位微處理器接口</p><p>  (2) T6963C 的字符字體可由硬件或軟件設(shè)置其字體有4 種</p><p>  (3) T6963C 的占空比可從1/16 到1/128</p><p>  (4) T6963C 可以圖形方式文本方式及圖形和文本合成方式進(jìn)行顯示以及文本</p><p>  方式下的特征顯示還可以實(shí)

56、現(xiàn)圖形拷貝操作等等</p><p>  (5) T6963C 具有內(nèi)部字符發(fā)生器CGROM 共有128 個(gè)字符T6963C 可管理64K(本系統(tǒng)使用8K)</p><p>  顯示緩沖區(qū)及字符發(fā)生器CGRAM 并允許MPU 隨時(shí)訪問(wèn)顯示緩沖區(qū)甚至可以進(jìn)行位操作</p><p>  本設(shè)計(jì)選用的液晶模塊是雙電源VDD/V0 供電,就需要提供一個(gè)負(fù)電壓,即液晶驅(qū)動(dòng)電壓V

57、0/VEE 。負(fù)壓電路是由兩片7660產(chǎn)生,在液晶模塊的V0 引腳上與地之間加一電位器,用以調(diào)節(jié)對(duì)比度上。因?yàn)橐壕Р牧系奈锢硖匦?,液晶的?duì)比度會(huì)隨著溫度的變化而相應(yīng)變化。所以加的負(fù)電壓值應(yīng)該隨溫度作相應(yīng)的調(diào)整。</p><p>  由于液晶顯示器刷新比較低,所以不能將整個(gè)數(shù)據(jù)流像示波管那樣反復(fù)刷新來(lái)得到完整圖像。所以必須有一個(gè)緩沖區(qū),來(lái)完成先期圖像的緩存、處理和分析,使數(shù)據(jù)流成為液晶顯示器能直接顯示的數(shù)據(jù)流。但是

58、單片機(jī)本身的內(nèi)存較小,不可能全屏進(jìn)行分析,所以需要一套特殊的算法來(lái)完成數(shù)據(jù)處理。(詳見(jiàn)源代碼)</p><p>  輔助CPU 的主要功能式驅(qū)動(dòng)鍵盤、偏置電壓生成器、參考電壓生成器。為提高可控性鍵盤采用掃描模式,偏置電壓生成器、參考電壓生成器由于操作次數(shù)不多,聯(lián)合使用一個(gè)外部中斷來(lái)控制。為不影響鍵盤掃描及去抖動(dòng)中斷函數(shù)盡可能的小,僅操作計(jì)數(shù)器和生成響應(yīng)符號(hào)。具體對(duì)它們的計(jì)算和操作要使用查詢方式,在適當(dāng)?shù)牡胤竭M(jìn)行。

59、</p><p>  鍵盤是人機(jī)界面的主要部件,通過(guò)鍵盤能隨時(shí)向系統(tǒng)發(fā)出各種控制命令和數(shù)據(jù)出入。鍵盤可以分為獨(dú)立連接式和矩陣式兩類,每一類按其編碼方法又都分為編碼及非編碼兩種類型。獨(dú)立式實(shí)際上就是一組相互獨(dú)立的按鍵,這些按鍵可直接與單片機(jī)的I/O口連接,即每個(gè)按鍵獨(dú)占一條口線,接口簡(jiǎn)單,當(dāng)占用資源。矩陣式鍵盤也稱行列式鍵盤,按鍵行列排列組成矩陣。編碼鍵盤主要是用硬件來(lái)實(shí)現(xiàn)對(duì)鍵的識(shí)別,非編碼鍵盤主要由軟件來(lái)實(shí)現(xiàn)鍵盤

60、的定義與識(shí)別。考慮到系統(tǒng)人機(jī)交流復(fù)雜,所須通過(guò)鍵盤輸入的指令較多。我們選用5*8矩陣式非編碼鍵盤。5*8矩陣式非編碼鍵盤,40個(gè)鍵按5行8列排列,用P1口控制列,P2的低5位控制行。</p><p>  這些功能模塊都是有主CPU控制其功能和操作的,如凌陽(yáng)采集部分的采集波特率、存儲(chǔ)與實(shí)時(shí)顯示之間的切換、顯示緩存的大小、數(shù)據(jù)存儲(chǔ)部分的單個(gè)文件大小、所要編輯的文件號(hào)、分析輸入波形的電壓大小從而生成參考電壓和衰減數(shù),并

61、且通過(guò)鍵盤和字符液晶顯示器來(lái)完成人機(jī)界面,使人對(duì)其操作。同時(shí)在液晶屏上顯示各模塊狀態(tài)、反饋信號(hào)的分析信息。</p><p>  這是我們的設(shè)計(jì),望組委會(huì)批評(píng)、指導(dǎo)。最后,我們要特別感謝王克家老師的無(wú)私教導(dǎo),和我校電工電子教學(xué)基地的大力支持,還有比賽組委會(huì)給予我們的學(xué)習(xí)鍛煉的機(jī)會(huì)。</p><p><b>  參考資料:</b></p><p>

62、  《凌陽(yáng)十六位單片機(jī)應(yīng)用》主審:郭黎利 王克家 編著:李北明 哈工程電子電工教學(xué)基地</p><p>  《閃速存儲(chǔ)器AT29C010A及其應(yīng)用》作者:天津大學(xué)精密儀器與光電子工程學(xué)院,易志明,林凌,郝麗宏,李樹(shù)靖</p><p>  《基于GPIF的USB-ATA解決方案》作者:杭州浙江大學(xué)電氣工程學(xué)院(310027)張劍波  顏鋼鋒    來(lái)源

63、:《電子技術(shù)應(yīng)用》</p><p>  《SCSI總線和IDE接口》(德)FRIEDHELM SCHMIDT 著 中國(guó)電力出版社</p><p>  《液晶顯示屏應(yīng)用技術(shù)》深圳金鵬公司</p><p><b>  附錄:</b></p><p>  凌陽(yáng)數(shù)據(jù)采集部分原代碼:</p><p>  #

64、include "SPCE061V004.H"</p><p>  #include "Spce061.h"</p><p>  #define Fosc_CLK_RATE C_Fosc_49M; //select Fosc</p><p>  #define CPU_CLK_RATE C_Fosc;

65、 //select CPUClk</p><p>  unsigned int AD(void);</p><p><b>  main()</b></p><p><b>  { </b></p><p>  unsigned long int uiData;</p><p

66、>  unsigned inti;</p><p>  unsigned int Fosc_CLK,CPU_CLK;</p><p>  *P_IOB_Dir = 0xFFFF;</p><p>  *P_IOB_Attrib = 0xFFFF;</p><p>  *P_IOB_Data = 0;</p><p

67、>  Fosc_CLK = Fosc_CLK_RATE;</p><p>  CPU_CLK = CPU_CLK_RATE;</p><p>  *P_SystemClock = Fosc_CLK|CPU_CLK;</p><p>  *P_Watchdog_Clear=1;</p><p>  *P_ADC_MUX_Ctrl=C_AD

68、C_CH1;//LINE_IN-------IOA0</p><p>  *P_ADC_Ctrl= C_ADCE;//ADC enable </p><p>  uiData=*P_ADC_LINEIN_Data;//ADC start</p><p><b>  uiData=0;</b></p>&l

69、t;p>  *P_Watchdog_Clear=1;</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  *P_Watchdog_Clear=1;</p><p>  *P_IOB_Data=AD();//uiData;</p

70、><p>  } </p><p><b>  }</b></p><p>  unsigned int AD(void)</p><p><b>  {</b></p><p>  unsigned int uiData;</p><p&

71、gt;  while(!(*P_ADC_MUX_Ctrl&0x8000));//wait,until ADC complete </p><p>  uiData=*P_ADC_LINEIN_Data; </p><p>  return(uiData&0xffc0);</p><p><b>  }</b></p&

72、gt;<p><b>  主處理器原代碼</b></p><p>  #include <reg52.h></p><p>  #define uint unsigned int</p><p>  #define uchar unsigned char</p><p>  #define u

73、long unsigned long</p><p>  #define x 0x80</p><p>  #define y 0x80</p><p>  #define comm 0</p><p>  #define dat 1</p><p>  #define T1MS_1200bps

74、 0xe8; /* (e8,-24,SMOD=0) @4800bps pcon&=0x7f @11.0592MHz*/</p><p>  #define T1MS_2400bps 0xf4; /* (f4,-12,SMOD=0) @4800bps pcon&=0x7f */</p><p>  #define T1MS_4800bps 0xf

75、a; /* (fa, -6,SMOD=0) @4800bps pcon&=0x7f */</p><p>  #define T1MS_9600bps 0xfd; /* (fd, -3,SMOD=0) @9600bps pcon&=0x7f */</p><p>  #define T1MS_19k2bps 0xfd; /* (fd, -

76、3,SMOD=1) @19.2kbps pcon|=0x80 */</p><p>  #define FX_XINHAO 0x01</p><p>  #define AUTO_ZHOUQI 0x02</p><p>  #define ON_SHOW 0x03</p><p>  #define OFF_SHOW

77、 0x04</p><p>  bit recvendflag; /* recvendflag==1;收到幀 */</p><p>  bit recvfirstflag; /* recvendflag==1;接收幀頭 */</p><p>  bit dc;//直流交流標(biāo)志</p><p>  uchar idat

78、a recvstring[7]; /* receive string[] */</p><p>  uchar idata receive_address_pointer; /* receive pointer */</p><p>  uchar idata recvpacklength; /* receive byte */&l

79、t;/p><p>  //uchar idata num_1[8]; //接收到的第一個(gè)數(shù)據(jù)</p><p>  //uchar idata num_2[8]; //接收到的第二個(gè)數(shù)據(jù)</p><p>  uchar idata in_char[8];//輸入的字符</p><p>  uchar idata num=0;</p&g

80、t;<p>  uchar idata wjm[64];</p><p>  uchar idata wj;</p><p>  sbit rs = P3^2; //H=data; L=command;</p><p>  sbit rw = P3^3; //H=read; L=write;</p><p>  sb

81、it e = P3^4; //input enable;</p><p>  sbit busy=P1^7; //lcd busy bit</p><p>  sbit L_A= P3^5; //A通道</p><p>  //sbit L_B= P3^6; //B通道</p><p>  sbit ac = P3^7;

82、 //偏置控制</p><p>  sbit disp= P2^0; //顯示/存儲(chǔ)</p><p>  sbit full= P2^1; //滿幅輸入標(biāo)志</p><p>  sbit che=P2^2;</p><p>  void sel_bps(uchar sel);/* 選擇通訊速率:0=1200,1=2400,2=4800,3

83、=9600,4=19.2k */</p><p>  void tran_init();</p><p>  void sio_rxd(uchar z);</p><p>  void recvprocess(); /* 取數(shù)據(jù) */</p><p>  void wr_lcd (uchar dat_comm,uchar conten

84、t);</p><p>  void chk_busy (void);</p><p>  void out(uchar chn);</p><p>  void cls();</p><p>  void in(uchar add);</p><p>  void in_c(uchar chn);</p>

85、<p>  void out_num();</p><p>  uint chengfang(uchar n);</p><p>  uchar idata z=0;</p><p>  uchar code tab1[]={</p><p>  "多通道信號(hào)采集與 分析系統(tǒng) "</p&g

86、t;<p><b>  };</b></p><p>  uchar code tab2[]={</p><p>  "哈爾濱工程大學(xué)杜"</p><p>  "撰李凱謝維勇設(shè)計(jì)"</p><p><b>  };</b></p>

87、<p>  uchar code tab3[]={</p><p><b>  "請(qǐng)選擇功能"</b></p><p><b>  };</b></p><p>  uchar code tab4[]={</p><p>  "1.手動(dòng)選信號(hào)范圍2.自動(dòng)選信號(hào)

88、范圍"</p><p><b>  };</b></p><p>  uchar code tab6[]={</p><p>  "3.手動(dòng)選掃描周期4.自動(dòng)選掃描周期"</p><p><b>  };</b></p><p>  uchar

89、code tab8[]={</p><p>  "5.設(shè)定顯示周期值6.設(shè)定信號(hào)采樣率"</p><p><b>  };</b></p><p>  uchar code ta10[]={</p><p>  "正在分析中..."</p><p><

90、b>  };</b></p><p>  uchar code ta11[]={</p><p><b>  "振幅"</b></p><p><b>  };</b></p><p>  uchar code ta12[]={</p><p

91、><b>  "頻率"</b></p><p><b>  };</b></p><p>  uchar code ta13[]={</p><p><b>  "請(qǐng)輸入文件名:"</b></p><p><b>  };

92、</b></p><p>  uchar code ta14[]={</p><p>  "按回車開(kāi)始,空格結(jié)束!"</p><p><b>  };</b></p><p>  uchar code ta15[]={</p><p>  "正在存儲(chǔ)中..

93、."</p><p><b>  };</b></p><p>  uchar code ta16[]={</p><p><b>  "時(shí)間"</b></p><p><b>  };</b></p><p>  ucha

94、r code ta17[]={</p><p>  "1.目錄查找2.文件名查找"</p><p><b>  };</b></p><p>  uchar code ta18[]={</p><p><b>  "文件長(zhǎng)"</b></p>&l

95、t;p><b>  };</b></p><p>  uchar code ta19[]={</p><p>  "1.播放2.暫停3.定位"</p><p><b>  };</b></p><p>  uchar code ta20[]={</p><

96、;p><b>  "請(qǐng)輸入"</b></p><p><b>  };</b></p><p>  uchar code ta21[]={</p><p><b>  "納秒"</b></p><p><b>  };&l

97、t;/b></p><p>  uchar code ta22[]={</p><p><b>  "秒"</b></p><p><b>  };</b></p><p>  uchar code ta23[]={</p><p>  "

98、1.設(shè)置2.顯示3.存儲(chǔ)4.分析5.回放"</p><p><b>  };</b></p><p>  uchar code ta24[]={</p><p><b>  "毫伏"</b></p><p><b>  };</b></p&g

99、t;<p>  uchar code ta25[]={</p><p>  "7.設(shè)置信號(hào)的性質(zhì)8.設(shè)定輸入通道"</p><p><b>  };</b></p><p>  uchar code ta26[]={</p><p>  "1.直流2.交流"</

100、p><p><b>  };</b></p><p>  uchar code ta27[]={</p><p><b>  "交流"</b></p><p><b>  };</b></p><p>  uchar code ta28[

101、]={</p><p><b>  "直流"</b></p><p><b>  };</b></p><p>  uchar code ta29[]={</p><p><b>  "赫"</b></p><p>

102、;<b>  };</b></p><p>  uchar code ta30[]={</p><p><b>  "1~64"</b></p><p><b>  };</b></p><p>  uchar code ta31[]={</p>

103、<p><b>  "個(gè)"</b></p><p><b>  };</b></p><p>  uchar code ta32[]={</p><p><b>  "1~96000"</b></p><p><b&g

104、t;  };</b></p><p>  uchar code ta33[]={</p><p><b>  "請(qǐng)等候..."</b></p><p><b>  };</b></p><p>  uchar code ta34[]={</p><

105、p><b>  "顯示啟動(dòng)"</b></p><p><b>  };</b></p><p>  uchar code ta35[]={</p><p><b>  "顯示關(guān)閉"</b></p><p><b>  };

106、</b></p><p>  uchar code ta36[]={</p><p>  "1.A.通道2.B.通道 "</p><p><b>  };</b></p><p>  uchar code ta37[]={</p><p&g

107、t;<b>  "無(wú)此文件"</b></p><p><b>  };</b></p><p>  /*------------------初始化-----------------*/</p><p>  void init_lcd (void)</p><p><b>

108、;  {</b></p><p>  wr_lcd (comm,0x30); /*30---基本指令動(dòng)作*/</p><p>  wr_lcd (comm,0x01); /*清屏,地址指針指向00H*/</p><p>  wr_lcd (comm,0x06); /*光標(biāo)的移動(dòng)方向*/</p><p>  wr_lcd (c

109、omm,0x0c); /*開(kāi)顯示,關(guān)游標(biāo)*/</p><p><b>  }</b></p><p>  /*---------------顯示漢字或字符----------------*/</p><p>  void chn_disp (uchar *chn)</p><p><b>  {</b

110、></p><p>  uchar i,j;</p><p>  wr_lcd (comm,0x30);</p><p>  wr_lcd (comm,0x80);</p><p><b>  j=0;</b></p><p>  for (i=0;i<16;i++)</p>

111、;<p>  wr_lcd (dat,chn[j*16+i]);</p><p>  wr_lcd (comm,0x90);</p><p><b>  j=1;</b></p><p>  for (i=0;i<16;i++)</p><p>  wr_lcd (dat,chn[j*16+i]);&

112、lt;/p><p><b>  }</b></p><p>  void ch_disp (uchar *chn,uchar add,uchar l)</p><p><b>  {</b></p><p><b>  uchar i;</b></p><p&g

113、t;  wr_lcd (comm,0x30);</p><p>  wr_lcd (comm,add);</p><p>  for (i=0;i<l;i++)</p><p>  wr_lcd (dat,chn[i]);</p><p><b>  }</b></p><p>  void

114、 clrram (void)</p><p><b>  {</b></p><p>  wr_lcd (comm,0x30);</p><p>  wr_lcd (comm,0x01);</p><p><b>  }</b></p><p>  /*-----------

115、----------------------------*/</p><p>  void wr_lcd (uchar dat_comm,uchar content)</p><p><b>  {</b></p><p>  chk_busy ();</p><p>  if(dat_comm)</p>

116、<p><b>  {</b></p><p>  rs=1; //data</p><p>  rw=0; //write</p><p><b>  }</b></p><p><b>  else</b></p><p><

117、b>  {</b></p><p>  rs=0; //command</p><p>  rw=0; //write</p><p><b>  }</b></p><p>  P1=content; //output data or comm</p><p>&l

118、t;b>  e=1;</b></p><p><b>  ;</b></p><p><b>  e=0;</b></p><p><b>  }</b></p><p>  void chk_busy (void)</p><p>&

119、lt;b>  {</b></p><p><b>  P1=0xff;</b></p><p><b>  rs=0;</b></p><p><b>  rw=1;</b></p><p><b>  e =1;</b></p&g

120、t;<p>  while(busy==1);</p><p><b>  e =0;</b></p><p><b>  }</b></p><p>  /*---------------------------------------*/</p><p>  void delay

121、(uint us) //delay time</p><p><b>  {</b></p><p>  while(us--);</p><p><b>  }</b></p><p>  void delay1 (uint ms)</p><p><b> 

122、 {</b></p><p><b>  uint i,j;</b></p><p>  for(i=0;i<ms;i++)</p><p>  for(j=0;j<15;j++)</p><p><b>  delay(1);</b></p><p>

123、;<b>  }</b></p><p>  /*------------------主程序--------------------*/</p><p><b>  main ()</b></p><p><b>  {</b></p><p><b>  uchar

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論