版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 大容量信號(hào)采集存儲(chǔ)系統(tǒng)研制.pdf
- 雷達(dá)信號(hào)采集存儲(chǔ)與傳輸系統(tǒng)設(shè)計(jì).pdf
- 血細(xì)胞分析儀通用信號(hào)采集存儲(chǔ)系統(tǒng)設(shè)計(jì).pdf
- 1.5gsps高速信號(hào)采集存儲(chǔ)系統(tǒng)設(shè)計(jì)
- 高速信號(hào)采集與存儲(chǔ)系統(tǒng)——采集板及操作系統(tǒng)設(shè)計(jì).pdf
- 偏振oct雙路信號(hào)硬件處理系統(tǒng)
- 偏振OCT雙路信號(hào)硬件處理系統(tǒng).pdf
- SAR回波信號(hào)全程采集存儲(chǔ)系統(tǒng)的研究與實(shí)現(xiàn).pdf
- 微型生物電信號(hào)采集存儲(chǔ)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于ARM+FPGA的高速信號(hào)采集與存儲(chǔ)系統(tǒng)設(shè)計(jì).pdf
- 基于DSP的信號(hào)采集存儲(chǔ)與傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于單片機(jī)的雙路信號(hào)檢測(cè)系統(tǒng)綜合設(shè)計(jì)
- 波形的采集存儲(chǔ)與回放系統(tǒng)
- 雷達(dá)信號(hào)處理機(jī)采集存儲(chǔ)卡設(shè)計(jì).pdf
- 超大容量井下數(shù)據(jù)采集、存儲(chǔ)及分析系統(tǒng)研究
- 光幕立靶目標(biāo)信號(hào)采集及存儲(chǔ)研究.pdf
- 雙路DDS信號(hào)發(fā)生器.pdf
- 波形的采集存儲(chǔ)與回放系統(tǒng)
- 視頻信號(hào)的采集與高速存儲(chǔ)系統(tǒng)的研究與設(shè)計(jì).pdf
- 心音信號(hào)采集和分析系統(tǒng)的研制.pdf
評(píng)論
0/150
提交評(píng)論