版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目 錄</b></p><p> 1.設(shè)計(jì)的任務(wù)與要求</p><p><b> 2.方案論證與選擇</b></p><p> 3.簡(jiǎn)易邏輯分析儀方案實(shí)現(xiàn)</p><p><b> ?。?)結(jié)構(gòu)組成</b></p><p
2、> ?。?)數(shù)據(jù)采集和存儲(chǔ)部分</p><p> ?。?)邏輯狀態(tài)與波形顯示部分</p><p> (4)簡(jiǎn)易邏輯分析儀的軟件流程:</p><p> 5)實(shí)時(shí)波形存儲(chǔ)與上下翻頁(yè)</p><p> 4. 測(cè)試及結(jié)果分析</p><p><b> 5.附錄</b></p>
3、<p> 簡(jiǎn)易邏輯分析儀的設(shè)計(jì)</p><p> 1. 設(shè)計(jì)的任務(wù)與要求</p><p> 設(shè)計(jì)并制作一個(gè) 8 路數(shù)字信號(hào)發(fā)生器與簡(jiǎn)易邏輯分析儀,其結(jié)構(gòu)框圖如圖 1 所示:</p><p> 圖12.1. 簡(jiǎn)易邏輯分析儀系統(tǒng)結(jié)構(gòu)框圖 </p><p> 1.1設(shè)計(jì)基本要求 </p><p>&
4、lt;b> 基本要求 :</b></p><p> (1)制作數(shù)字信號(hào)發(fā)生器能產(chǎn)生8路可預(yù)置的循環(huán)移位邏輯信號(hào)序列,輸出信號(hào)為TTL 電平,序列時(shí)鐘頻率為100Hz,并能夠重復(fù)輸出。邏輯信號(hào)序列示例如圖2所示。 </p><p> (2)制作簡(jiǎn)易邏輯分析儀 </p><p> a.具有采集8路邏輯信號(hào)的功能,并可設(shè)置單級(jí)觸發(fā)字。信號(hào)
5、采集的觸發(fā)條件為各路被測(cè)信號(hào)電平與觸發(fā)字所設(shè)定的邏輯狀態(tài)相同。在滿足觸發(fā)條件時(shí),能對(duì)被測(cè)信號(hào)進(jìn)行一次采集、存儲(chǔ)。</p><p> b .能利用模擬示波器清晰穩(wěn)定地顯示所采集到的8路信號(hào)波形,并顯示觸發(fā)點(diǎn)位置。 </p><p> c.8位輸入電路的輸入阻抗大于50k Ω,其邏輯信號(hào)門限電壓可在0.25~4V范圍內(nèi)按16級(jí)變化,以適應(yīng)各種輸入信號(hào)的邏輯電平。 </p>
6、;<p> d.每通道的存儲(chǔ)深度為20bit。 </p><p> 圖12.2 重復(fù)輸出循環(huán)移位邏輯序列00000101</p><p> 1.2 設(shè)計(jì)發(fā)揮部分</p><p> ?。?)能在示波器上顯示可移動(dòng)的時(shí)間標(biāo)志線,并采用LED或其它方式顯示時(shí)間標(biāo)志線所對(duì)應(yīng)時(shí)刻的8路輸入信號(hào)邏輯狀態(tài)。 </p><p>
7、(2)簡(jiǎn)易邏輯分析儀應(yīng)具備3級(jí)邏輯狀態(tài)分析觸發(fā)功能,即當(dāng)連續(xù)依次捕捉到設(shè)定的3 個(gè)觸發(fā)字時(shí),開(kāi)始對(duì)被測(cè)信號(hào)進(jìn)行一次采集、存儲(chǔ)與顯示,并顯示觸發(fā)點(diǎn)位置。3級(jí)觸發(fā)字可任意設(shè)定(例如:在8路信號(hào)中指定連續(xù)依次捕捉到兩路信號(hào)11、01、00作為三級(jí)觸發(fā)狀態(tài)字)。 </p><p> ?。?)觸發(fā)位置可調(diào)(即可選擇顯示觸發(fā)前、后所保存的邏輯狀態(tài)字?jǐn)?shù))。 </p><p> (4)其它(如增
8、加存儲(chǔ)深度后分頁(yè)顯示等)。</p><p> 2. 方案論證與選擇</p><p> 2.1 數(shù)字信號(hào)發(fā)生器方案</p><p> 利用單片機(jī)內(nèi)的定時(shí)器,產(chǎn)生計(jì)數(shù)溢出中斷,從而實(shí)現(xiàn)信號(hào)頻率要達(dá)到100Hz的要求。</p><p> 當(dāng)改變撥段開(kāi)關(guān)的預(yù)設(shè)值后,按下數(shù)字開(kāi)關(guān),單片機(jī)會(huì)重新讀入8位數(shù)據(jù),并對(duì)改變后的數(shù)據(jù)進(jìn)行讀取和輸出。<
9、;/p><p> 在中斷程序中對(duì)信號(hào)實(shí)現(xiàn)循環(huán)右移和輸出,每次中斷到來(lái)的時(shí)候,單片機(jī)便對(duì)輸出端口輸送一組信號(hào)。</p><p> 圖1 數(shù)字信號(hào)發(fā)生器</p><p> 2.2 邏輯分析儀的設(shè)計(jì)</p><p> 方案一:采用高性能單CPU系統(tǒng)實(shí)現(xiàn),比如32位的ARM芯片作為控制系統(tǒng)核心。如果采用此方案,可以很好的解決同時(shí)采樣和控制顯示的功
10、能,但是ARM系統(tǒng)設(shè)計(jì)調(diào)試復(fù)雜,在短時(shí)間內(nèi)難以很好的完成設(shè)計(jì),所以不宜采用此方案。</p><p> 方案二:針對(duì)分析中提出的問(wèn)題,我們也可以采用兩片普通51單片機(jī)來(lái)實(shí)現(xiàn)系統(tǒng)設(shè)計(jì),一片51實(shí)現(xiàn)數(shù)據(jù)采集,存儲(chǔ);另一片51實(shí)現(xiàn)控制示波器實(shí)時(shí)顯示功能,兩片51之間采用串行通信來(lái)解決數(shù)據(jù)通信問(wèn)題,這樣的方案可以滿足題目提出的設(shè)計(jì)要求。</p><p> 方案三:采用大規(guī)模FPGA來(lái)實(shí)現(xiàn)系統(tǒng),
11、</p><p> 采用FPGA來(lái)實(shí)現(xiàn)相應(yīng)功能,一般是使用狀態(tài)機(jī)方式來(lái)實(shí)現(xiàn),即所解決的問(wèn)題都是規(guī)則的有限狀態(tài)轉(zhuǎn)換問(wèn)題。分析本題目的要求,可以看出,其中的邏輯控制靈活多變,適合于采用程序控制的cpu執(zhí)行方式,如使用FPGA來(lái)實(shí)現(xiàn),大部分的資源會(huì)消耗用來(lái)控制鍵盤和顯示等輔助功能,用在主邏輯控制方面的資源相對(duì)比較少。另外,考慮到邏輯復(fù)雜程度和實(shí)現(xiàn)規(guī)模,可采用芯片大概要到Alter EPF11C50、Alter E
12、P1C6等級(jí)別的芯片來(lái)實(shí)現(xiàn),但此種規(guī)模PLD系統(tǒng)受實(shí)驗(yàn)室條件限制,無(wú)法順利開(kāi)發(fā),而且其所需元器件和EPC配置芯片在本地?zé)o法買到,因而綜合比較后我們淘汰掉本方案。</p><p> 綜合分析上述各方案,比較其優(yōu)缺點(diǎn),包括靈活性、可靠性、可擴(kuò)展性和易操作性,所以選用方案二。</p><p> 3. 簡(jiǎn)易邏輯分析儀方案實(shí)現(xiàn)</p><p><b> ?。?)
13、結(jié)構(gòu)組成:</b></p><p> 本分析儀由數(shù)據(jù)采集存儲(chǔ)和控制顯示兩部分構(gòu)成:數(shù)據(jù)采集存儲(chǔ)模塊由信號(hào)輸入電路、89C52單片機(jī)、小鍵盤和液晶顯示模塊組成;邏輯狀態(tài)與波形顯示模塊由D/A變換器(TLC7226)和89C52構(gòu)成。兩模塊之間采用串行通信方式。</p><p><b> 結(jié)構(gòu)框圖如下:</b></p><p>
14、(2)數(shù)據(jù)采集和存儲(chǔ)部分</p><p> 此部分對(duì)應(yīng)框圖中的MCU1、電壓比較器、鍵盤和LCD液晶顯示</p><p><b> 輸入電路:</b></p><p> 八路輸入信號(hào)通過(guò)電壓比較器LM339和D/A轉(zhuǎn)換器TLC7226提供的基準(zhǔn)電壓作比較后,作為存儲(chǔ)單片的輸入,8路信號(hào)接入LM339同相輸入端,可以獲得較大阻抗。</
15、p><p><b> 觸發(fā)和存儲(chǔ)原理:</b></p><p> 本部分功能主要依靠51單片機(jī)來(lái)實(shí)現(xiàn)。</p><p> 根據(jù)題目要求,對(duì)邏輯信號(hào)的采集是要依靠觸發(fā)字來(lái)觸發(fā)的。觸發(fā)字又分單級(jí)觸發(fā)字和三級(jí)觸發(fā)字兩種,單級(jí)觸發(fā)字的預(yù)置依靠小鍵盤輸入實(shí)現(xiàn)。當(dāng)單片機(jī)采集到的狀態(tài)字和用戶所提供的觸發(fā)字8位邏輯狀態(tài)完全一致時(shí),開(kāi)始一次數(shù)據(jù)采集,連續(xù)采集2
16、4位,然后存儲(chǔ)到顯示緩沖區(qū)中,這樣每個(gè)顯示通道的存儲(chǔ)深度為 24bit;</p><p> 對(duì)于三級(jí)觸發(fā)字方式,設(shè)定從外部采兩位的狀態(tài),連續(xù)取三次,都和我們?cè)O(shè)定的兩位邏輯狀態(tài)一樣的情況下,將進(jìn)入3級(jí)觸發(fā)采集狀態(tài),開(kāi)始采集。</p><p> 采集完24位數(shù)據(jù)后,存儲(chǔ)起來(lái)。為了同時(shí)顯示8路信號(hào),所以數(shù)據(jù)送去顯示前要把采集到的數(shù)據(jù)進(jìn)行拼裝處理,把采集到的24個(gè)字節(jié)排列成適合顯示的8通道數(shù)據(jù)
17、組合,每一通道存放從同一輸入端口采集到的24BIT信息即組合形成8個(gè)存儲(chǔ)深度為24BIT的數(shù)據(jù)顯示通道,這樣就可以把數(shù)據(jù)依次送到示波器上按行掃描顯示。</p><p> ?。?)邏輯狀態(tài)與波形顯示部分</p><p> 此部分對(duì)應(yīng)框圖中的MCU2、D/A轉(zhuǎn)換器和示波器。本部分的主要難點(diǎn)集中在示波器顯示控制上,我們先對(duì)示波器的顯示方法進(jìn)行分析討論:</p><p>
18、<b> 1、顯示方法分析:</b></p><p> 要能同時(shí)在示波器上看到8路信號(hào)波形,模擬示波器需要用外接掃描信號(hào)方式工作示波器上顯示數(shù)字信號(hào)發(fā)生器的8路信號(hào)和1路觸發(fā)點(diǎn)位置標(biāo)識(shí),共需9個(gè)通道。同時(shí)顯示這9個(gè)通道的信號(hào),需要采用動(dòng)態(tài)掃描的方法:借助9個(gè)不同的基準(zhǔn)電壓,使顯示的9路波形分別處在不同的位置上,即把要在示波器上顯示的信號(hào)電平Qi+Vi偏置電平(i=0~7)加與示波器Y軸輸
19、入端。X軸輸入則是由TLC7226提供的線性鋸齒波。</p><p> 顯示的信號(hào)電平Qi+Vi其疊加效果如下圖的Y++所示:</p><p> 具體掃描方式有三種方案可供選擇:</p><p> ?。?)、按行掃描方式,X用外觸發(fā)方式,掃描10次掃完一屏。X要外接線性的鋸齒波信號(hào),Y和上述說(shuō)明中沒(méi)有變化。按行掃描送的數(shù)據(jù)是把數(shù)據(jù)采集存儲(chǔ)24BIT深度后,把Q0
20、--Q7的數(shù)據(jù)串行送到示波器,即先送Q0的24BIT,再依次送Q1--Q7的24BIT,掃完一屏要送9次(還有時(shí)標(biāo)數(shù)據(jù))。</p><p> 時(shí)標(biāo)的掃描方法:掃描光標(biāo)是單獨(dú)進(jìn)行的一行掃描。我們?cè)趻呙韫鈽?biāo)亮點(diǎn)的時(shí)候,給X提供一個(gè)小平臺(tái)電壓,這樣掃描光點(diǎn)在平臺(tái)電壓的持續(xù)時(shí)間內(nèi)水平方向不移動(dòng),而與此同一時(shí)間,Y方向上快速掃描,形成一豎直的時(shí)標(biāo)線。這樣X(jué)軸的電壓是帶一個(gè)小平臺(tái)的鋸齒波。</p><p
21、> ?。?)、按行掃描方式,X用外觸發(fā)方式,掃描9次掃完一屏,X、Y接法和方案一一樣。此掃描方法沒(méi)有單獨(dú)去實(shí)現(xiàn)時(shí)標(biāo)的顯示掃描,時(shí)標(biāo)的掃描顯示通過(guò)將時(shí)標(biāo)分成9次顯示分別在各頻道的掃描顯示中打點(diǎn)顯示,由于一屏的掃描時(shí)間為(1/25)S,眼睛是覺(jué)察不到時(shí)標(biāo)的分段顯示過(guò)程的。這樣也可減少一次掃描時(shí)間,提高顯示質(zhì)量,且同樣可以實(shí)現(xiàn)方案二中的豎直時(shí)標(biāo)線,也不至于造成產(chǎn)生小平臺(tái)鋸齒波的問(wèn)題。此方法較簡(jiǎn)單,且效果也不錯(cuò)。</p>&
22、lt;p> ?。?)、按列掃描方式,X采用外觸發(fā)方式,故X、Y接法同方案2。</p><p> 具體掃描過(guò)程是:按列掃描時(shí)送數(shù)據(jù)的順序是8位為一組,即單片機(jī)采集一次的Q0--Q7共8BIT數(shù)據(jù),掃完一屏需送24次。掃描第一個(gè)通道的10點(diǎn)(即1BIT)結(jié)束后,X輸入的電平立刻變?yōu)榇薆IT的起始處的電平值,Y方向同時(shí)變化一臺(tái)階,再掃描第二個(gè)頻道的10點(diǎn),重復(fù)第一頻道的操作,一直掃描到存儲(chǔ)深度24(第0頁(yè)),則
23、掃完一屏。</p><p> 此方案中X端的不規(guī)則鋸齒輸入的提供也是一個(gè)問(wèn)題,這種方案情況下的時(shí)標(biāo)輸入也是先計(jì)算好位置,在單BIT掃描中打點(diǎn)實(shí)現(xiàn)的。</p><p> 綜合以上幾種方案的分析比較,我們選用方案2,此方案靈活簡(jiǎn)單,實(shí)現(xiàn)起來(lái)相對(duì)方便,而且可以達(dá)到較好的效果。</p><p><b> 2、具體硬件實(shí)現(xiàn):</b></p&g
24、t;<p> ?。?)、D/A轉(zhuǎn)換器:</p><p> TLC7226提供的基準(zhǔn)電壓變化范圍大(0~5V),可適應(yīng)各種輸入信號(hào)的邏輯電平,提高了測(cè)量范圍和測(cè)量精度。</p><p> 此輸入電路在本設(shè)計(jì)中,由于信號(hào)發(fā)生器輸出TTL電平,沒(méi)有將這一優(yōu)點(diǎn)體現(xiàn)出來(lái)。</p><p> 數(shù)據(jù)顯示模塊用一片162A液晶顯示,用高四位傳輸數(shù)據(jù),接法與信號(hào)發(fā)
25、生器中一樣。</p><p> TLC7266加示波器顯示模塊</p><p> 產(chǎn)生周期相同的X和Y信號(hào),便于波形顯示的同步,且可以顯示較復(fù)雜的波形。但單片機(jī)通過(guò)D/A轉(zhuǎn)換器產(chǎn)生波形產(chǎn)生信號(hào)波形時(shí),輸出頻率會(huì)受到單片機(jī)本身工作速度的限制(12MHZ晶振主頻時(shí),機(jī)器周期為1us);其次,要有一定的顯示質(zhì)量,在信號(hào)的一個(gè)周期內(nèi)取樣點(diǎn)不能太少,這進(jìn)一步限制了信號(hào)的頻率。</p>
26、<p> TLC7226是高性能D/A轉(zhuǎn)換器,片內(nèi)包含四路8位電壓輸出數(shù)/模轉(zhuǎn)換器(DAC),每個(gè)DAC都有分離的片內(nèi)鎖存器,數(shù)據(jù)通過(guò)一個(gè)公共的8位TTL/CMOS兼容(5V)輸入口送入這些數(shù)據(jù)寄存器之一。由A0和A1決定/WR變低時(shí)哪個(gè)DAC被加載。在/WR的上升沿,數(shù)據(jù)被鎖存在被尋址的輸入寄存器,只有保存在DAC寄存器中的數(shù)據(jù)決定轉(zhuǎn)換器的模擬輸出。</p><p> 由D/A轉(zhuǎn)換器TLC72
27、26和示波器組成,采用一片TLC7226產(chǎn)生三路模擬信號(hào),OUT C提供基準(zhǔn)電壓,使邏輯信號(hào)門限電壓在0~5V范圍內(nèi)按32級(jí)變化;OUT B提供線性鋸齒波作為示波器X方向輸入,用這個(gè)線性增長(zhǎng)的電壓作為掃描電壓控制電子束移動(dòng),以產(chǎn)生示波器上光點(diǎn)的水平移動(dòng);OUT A提供Y軸偏置電平以區(qū)分各頻段顯示位置,一共需要9個(gè)電平以區(qū)分9個(gè)頻段的輸出顯示。此9個(gè)偏置電平和T0輸出的信號(hào)相迭加,實(shí)現(xiàn)T0信號(hào)在示波器上的的分頻段顯示。</p>
28、<p> (2)、產(chǎn)生和使用門限</p><p> 單片機(jī)通過(guò)對(duì)D/A設(shè)置不同輸出電壓,得到門限電平從D/A轉(zhuǎn)換器輸出到LM339反相輸入端。</p><p> ?。?)、產(chǎn)生Y軸偏置信號(hào)</p><p> 針對(duì)分通道顯示時(shí),我們注意到并不是簡(jiǎn)單的疊加偏置電平就可以的,因?yàn)榀B加到偏置電平上的信號(hào)電壓本身可能就很高,超過(guò)相鄰偏置電平的變化值,這樣就
29、會(huì)發(fā)生相鄰頻道信號(hào)甚至多頻道信號(hào)波形的疊加,這樣我們的分頻道實(shí)現(xiàn)多路顯示也就已經(jīng)沒(méi)有了任何意義。考慮到這種情況,我們就需要對(duì)信號(hào)疊加偏置電壓前進(jìn)行限幅處理,以使各路頻道信號(hào)均勻的分布于示波器的屏幕上得以清晰顯示。并且要保證各信號(hào)之間要有一定的空白間隔,以區(qū)分顯示9個(gè)頻段。針對(duì)此方案,我們?cè)O(shè)計(jì)了如下電路圖2.2所示作為示波器的輸入電路來(lái)實(shí)現(xiàn)在示波器上清晰顯示,此電路不僅解決了上面我們注意到的存在問(wèn)題即輸入電平的幅度問(wèn)題,同時(shí)簡(jiǎn)單的實(shí)現(xiàn)了時(shí)
30、標(biāo)的掃描顯示。這是一個(gè)同相求和的運(yùn)算電路,運(yùn)放接成電壓跟隨器形式:</p><p> Vdot、Vdat、Vbase分別通過(guò)R1、R2、R3接運(yùn)算放大器的同相輸入端V2,并通過(guò)電阻R4接地,運(yùn)算放大器的輸出端接入反相輸入端,接成電壓跟隨器。</p><p> 由電壓跟隨器的特點(diǎn)可列寫:</p><p> Vo=V1 ,V1=V2</p>&
31、lt;p> V2/R4 + (V2-Vdot)/R1+(V2-Vdat)/R2+(V2-Vbase)/R3=0</p><p> 所以 V0=K1*Vdot + K2*Vdat + K3*Vbas</p><p> 其中: K1=K/R1 ; K2=K/R2; K3=K/R3 ;</p><p> ?。保耍剑保疪1+
32、 1/ R2+1/ R3+1/R4 ;</p><p> Vbas是在0~5v范圍內(nèi)變化的模擬電壓</p><p> 則在V0處的變化范圍是0~2.68V即△V0=2.68;</p><p> 要在示波器上實(shí)現(xiàn)9頻道的輸出,則每一頻道所占的變化電壓是:</p><p> △V=△V0 / 9=0.29;</p>&l
33、t;p> 要使各頻段的波形由空白間隔的顯示,則讓顯示波形占頻道的4/5,而留下1/5的空白區(qū)分各頻道的波形使之不會(huì)發(fā)生相鄰波形的重影現(xiàn)象,這樣由于加法器的輸入端接法,使得本來(lái)應(yīng)該是0~5V的大幅度變化變?yōu)?~2.68V小幅度輸出,再被9個(gè)頻段平分,</p><p> 這時(shí)可計(jì)算得到每頻道內(nèi)顯示的波形電壓幅值為:</p><p> △V2=△V* 4 / 5=0.232V;&l
34、t;/p><p> 使Vdat的值從低電壓0V變到5V時(shí),調(diào)節(jié)R2合適數(shù)值,使△V2恰好為0.232V;</p><p> 若要顯示光標(biāo),則需在空白的中間顯示,這樣疊加在△V2上顯示 時(shí)標(biāo)亮點(diǎn)的</p><p> △V1=(△V/5)/ 2=0.029V;</p><p> 此時(shí)使Vdot的值從低電壓0V變到高電壓5V時(shí),調(diào)節(jié)R1數(shù)值使
35、 △V1恰好為0.029V;</p><p> 實(shí)際電路調(diào)節(jié)合適后可以得到電路的各參數(shù):</p><p> R1=2M歐 ,R2= 470K歐,R3= 36K歐,R4= 47K歐</p><p> Vdot=0時(shí),為正常的掃描模式:</p><p> Vdot=1時(shí),為打點(diǎn)掃描模式:</p><p> 在屏
36、幕上顯示的效果為:</p><p> 第一行為觸發(fā)點(diǎn)顯示行,在沒(méi)有觸發(fā)點(diǎn)的時(shí)候觸發(fā)點(diǎn)顯示行顯示一條低電平的亮線,有觸發(fā)點(diǎn)時(shí)則在觸發(fā)字處顯示持續(xù)一個(gè)周期的高電平,然后降下來(lái)顯示低電平亮線,所以出現(xiàn)1BIT的高電平時(shí),則表明有觸發(fā)點(diǎn)且觸發(fā)點(diǎn)就在這一位上,并且此觸發(fā)點(diǎn)的位置是可以人工調(diào)節(jié)的。</p><p> 第二行~第九行依次顯示采集到的Q0~Q7信號(hào)邏輯狀態(tài)。</p>&l
37、t;p> 時(shí)標(biāo)的掃描是通過(guò)Vdot和輸入顯示的Vdat相疊加,因而會(huì)在顯示的數(shù)據(jù)電平上疊加一個(gè)△V1,連續(xù)掃描4個(gè)點(diǎn);</p><p> 若原來(lái)的Vdat是高電平,則接著將原來(lái)光標(biāo)的顯示電平減去△V2,這樣光標(biāo)相當(dāng)于疊加在此頻道的輸入低電平上,反之,若原來(lái)的Vdat是低電平,則在原來(lái)光標(biāo)的顯示電平加上△V2,這樣光標(biāo)相當(dāng)于疊加在此頻道的輸入高電平上,再連續(xù)掃描4點(diǎn)后,這樣就在這一頻道上出現(xiàn)兩條有高度差的
38、小光標(biāo),由于一個(gè)持續(xù)電平時(shí)間時(shí)間較短,兩段光標(biāo)有傾斜度,仔細(xì)觀察是會(huì)發(fā)現(xiàn)每個(gè)頻道的時(shí)標(biāo)段都有一定的小弧度,但對(duì)顯示效果的影響不明顯,可以忽略。</p><p> 同樣的方法掃描完一屏后,每個(gè)頻段都在此位上有兩段亮點(diǎn),豎向看起來(lái)就是一條接近豎直線的亮線顯示于屏幕上,這就是我們想要顯示的時(shí)標(biāo)。時(shí)標(biāo)可以左右移動(dòng),也可以實(shí)現(xiàn)顯示消隱。不顯示時(shí)標(biāo)時(shí),使Vdot=0即可。</p><p> ?。?)
39、簡(jiǎn)易邏輯分析儀的軟件流程:</p><p> 簡(jiǎn)易邏輯分析儀的開(kāi)機(jī)狀態(tài):閾值為2.5V,開(kāi)機(jī)初始為未觸發(fā)狀態(tài),為示波器工作模式,LCD顯示第0頁(yè)信息,時(shí)間標(biāo)志線在屏幕最左端。</p><p><b> 數(shù)據(jù)采集流程:</b></p><p><b> 數(shù)據(jù)顯示流程:</b></p><p>
40、?。?)實(shí)時(shí)波形存儲(chǔ)與上下翻頁(yè)</p><p> 在沒(méi)有觸發(fā)字的狀態(tài)下,簡(jiǎn)易邏輯分析儀做示波器使用,將采集到的信號(hào)即時(shí)發(fā)送到MCU2上實(shí)現(xiàn)對(duì)信號(hào)的實(shí)時(shí)顯示,如果想保存波形可以通過(guò)STORE功能鍵完成,將顯示器上的波形信息保存下來(lái),恒定顯示在示波器上,也可以以后回放觀看。實(shí)時(shí)波形存儲(chǔ),既方便有快捷,.我們稱之為實(shí)時(shí)波形存儲(chǔ). </p><p> 通過(guò)STORE鍵操作,我們可以隨時(shí)存儲(chǔ)實(shí)時(shí)
41、的波形.在正常的數(shù)據(jù)傳遞、波形顯示的情況下,按下STORE保存下當(dāng)前的波形,以備以后回放之用。此時(shí),正常的數(shù)據(jù)傳遞被打斷,簡(jiǎn)易邏輯分析儀將波形恒定的顯示在示波器上,直到通過(guò)按鍵操作被釋放為止。</p><p> 由于我們的簡(jiǎn)易邏輯分析儀采用雙頁(yè)式存儲(chǔ)結(jié)構(gòu),可以存儲(chǔ)兩顯示屏的數(shù)據(jù),所以我們通過(guò)UP/DOWN 鍵來(lái)翻看波形情況。在實(shí)時(shí)波形存儲(chǔ)情況下,可以存儲(chǔ)兩顯示屏的波形信息。查看這些波形信息,我們只需要通過(guò)UP/
42、DOWN鍵就可以上下翻看兩屏波形信息。我們稱此為實(shí)時(shí)波形存儲(chǔ)與上下翻頁(yè)。</p><p> 實(shí)時(shí)波形存儲(chǔ)與上下翻頁(yè)功能的開(kāi)發(fā)是基于示波器的顯示存儲(chǔ)思想而來(lái)的。通過(guò)軟件編程,我們可以方便的分析數(shù)字邏輯信號(hào)的邏輯功能,直觀的顯示出來(lái),還可以方便地存儲(chǔ)我們想要的波形信息并回放。這是我們這個(gè)簡(jiǎn)易邏輯分析儀的特色功能之一。</p><p> 第四部分、測(cè)試及結(jié)果分析:</p>&l
43、t;p><b> 一、信號(hào)發(fā)生器測(cè)試</b></p><p> 我們將數(shù)字信號(hào)發(fā)生器的組成部分封裝到盒子中,外接出控制按鍵和用戶依靠液晶顯示的提示進(jìn)行操作,實(shí)現(xiàn)人機(jī)交換操作,需要監(jiān)測(cè)的引腳和輸出引腳通過(guò)插孔引出,外接檢測(cè)和提供輸出時(shí),只需用插線插進(jìn)插孔和外部電路連接即可,這是一種可靈活改變的跳線結(jié)構(gòu),簡(jiǎn)單易操作。</p><p><b> 1、測(cè)
44、試儀器:</b></p><p> 數(shù)字存儲(chǔ)示波器TDS210</p><p> TDS210技術(shù)參數(shù): 60MHz帶寬,lGS/s采樣率,雙通道數(shù)字示波器,2.5K記錄長(zhǎng)度,3%垂直精度,2mV垂直靈敏度,可選三種擴(kuò)充模塊,高亮液晶顯示。</p><p><b> 2、測(cè)試步驟:</b></p><p&g
45、t; ?。?)、觀察上電起始顯示情況。用插線連接好電源,接好地,把CLK輸出和P0各口的用插線接到示波器TDS210上,液晶屏幕上將顯示歡迎信息和當(dāng)前P0口循環(huán)輸出的默認(rèn)序列0000 0101,8位序列結(jié)束處有閃爍標(biāo)志,僅接其后顯示的是輸出CLK信號(hào)的頻率100HZ。</p><p> 用示波器TDS210監(jiān)視P0口的輸出波形Q0~Q7,觀察它的輸出規(guī)律是0000 0101序列在循環(huán)移位顯示;同時(shí)可從屏幕上可觀
46、察P0口波形的電壓值(高電平和低電平的峰峰值):</p><p> 用示波器TDS210監(jiān)視CLK輸出口波形;同時(shí)可從屏幕上讀出CLK信號(hào)的頻率: </p><p> ?。?)、預(yù)置8位循環(huán)信號(hào)序列,并檢測(cè)輸出信號(hào)電平。</p><p> 按下SET鍵1號(hào),進(jìn)入設(shè)置狀態(tài)后,閃爍標(biāo)志停,等待2號(hào)和3號(hào)鍵的輸入進(jìn)行0/1設(shè)置,按動(dòng)輸入8位后,輸入中若輸錯(cuò)
47、了值,則按動(dòng)4號(hào)撤銷鍵,光標(biāo)前移。按ENTER后,則設(shè)置結(jié)束,新設(shè)的序列在液晶上顯示出來(lái),用示波器檢測(cè)P0口輸出脈沖循環(huán)情況確為新設(shè)脈沖的重復(fù)循環(huán)移位顯示。</p><p> 用TDS210檢測(cè)輸出P0信號(hào)的峰峰值電平差,并記錄下來(lái)。</p><p> ?。?)、測(cè)試序列的時(shí)鐘頻率</p><p> 用示波器TDS210監(jiān)視CLK輸出口波形;同時(shí)可從屏幕上讀出C
48、LK信號(hào)的頻率穩(wěn)定顯示,且輸出波形穩(wěn)定清晰。</p><p> 拔出電源插線,結(jié)束檢測(cè),整理測(cè)試結(jié)果,分析實(shí)驗(yàn)過(guò)程。 </p><p><b> 3、測(cè)試結(jié)果:</b></p><p> 基準(zhǔn)電壓為0v,測(cè)量數(shù)據(jù)如下:</p><p><b> 波形顯示:</b></p>
49、<p><b> 4、結(jié)果分析:</b></p><p> ●由測(cè)試頻率表可看出所測(cè)結(jié)果符合要求:CLK的頻率基本為100HZ,與液晶顯示0.1K的頻率值相符合。</p><p> ●由所測(cè)電平的峰峰值記錄可知,輸出電平變化范圍大,接近5V,輸出信號(hào)必定滿足TTL電平要求。</p><p> ●由步驟2的操作過(guò)程可知,可以實(shí)
50、現(xiàn)8路邏輯信號(hào)的預(yù)置入功能,并且順利的實(shí)現(xiàn)了置入邏輯信號(hào)序列的重復(fù)循環(huán)移位輸出,所畫波形圖即為循環(huán)顯示的默認(rèn)邏輯序列情況。</p><p> 總之,數(shù)字信號(hào)發(fā)生器已經(jīng)實(shí)現(xiàn)了所有的基本要求,并且加了一片液晶實(shí)時(shí)顯示P0口的循環(huán)序列,一邊置數(shù)另一邊會(huì)在液晶上顯示出輸入的數(shù)字,為使用用戶提供了友好的界面提示,且允許用戶回退光標(biāo)。由于時(shí)間限制,頻率選擇鍵的選擇功能還未擴(kuò)展寫入。此數(shù)字信號(hào)發(fā)生器經(jīng)測(cè)試已驗(yàn)證其精度相對(duì)較高
51、,其效果較為理想。</p><p> 二、簡(jiǎn)易邏輯分析儀的測(cè)試過(guò)程和結(jié)果分析</p><p> 簡(jiǎn)易邏輯分析儀電路系統(tǒng)被封裝起來(lái),外接可插拔的電路接口</p><p><b> 1、測(cè)試儀器:</b></p><p> 萬(wàn)用電表、模擬示波器 </p><p><b> 2、測(cè)試
52、步驟:</b></p><p> ?。?)、首先接上電源觀察簡(jiǎn)易邏輯分析儀的開(kāi)機(jī)狀態(tài):</p><p> 第一行沒(méi)有高電平觸發(fā)標(biāo)志,處于未觸發(fā)狀態(tài);時(shí)間標(biāo)志線可以清晰的看到顯示于屏幕的最左端。</p><p> ?。?)、按下設(shè)置鍵進(jìn)入設(shè)置狀態(tài),再按動(dòng)一下進(jìn)入單極觸發(fā)字設(shè)置狀態(tài),依次按0/1鍵進(jìn)行單極觸發(fā)初始字的設(shè)置,同時(shí)對(duì)信號(hào)發(fā)生器也設(shè)置一個(gè)和出發(fā)字
53、相同的脈沖序列,然后在示波器屏幕上就會(huì)看到我們所設(shè)信號(hào)發(fā)生器的信號(hào)在示波器上清晰穩(wěn)定的顯示,并且在Q0—Q7即第二通道向下到最后一通道的所顯示的狀態(tài)字與單級(jí)觸發(fā)字恰好相同處的一條垂直方向處有高電平升起,這便是觸發(fā)處。這證明單極觸發(fā)字被順利寫入,且在各路被測(cè)信號(hào)電平與觸發(fā)字所設(shè)定的邏輯狀態(tài)相同時(shí),即在滿足觸發(fā)條件下進(jìn)行了一次采集、存儲(chǔ)。</p><p> 在步驟1和步驟2中,我們?cè)谀M示波器上看到了清晰穩(wěn)定的波形
54、顯示,并且在步驟2中看到了觸發(fā)高電平,證明其可以清晰的顯示出發(fā)點(diǎn)位置。</p><p> 我們觀察屏幕上的波形,數(shù)一下,會(huì)發(fā)現(xiàn)恰好是我們的存儲(chǔ)深度24bit.</p><p><b> 其電壓,測(cè)得V2.</b></p><p><b> 3、測(cè)試結(jié)果:</b></p><p><b&g
55、t; 4、結(jié)果分析:</b></p><p> 從上面可以看出三次的測(cè)量關(guān)系:v1接近于v2的兩倍。</p><p> 故而,輸入電阻就和所接如電阻數(shù)值相當(dāng)。即大約為100k</p><p> 即得到結(jié)論8位輸入電阻的阻抗大于50千歐。</p><p><b> 附錄</b></p>
56、<p> 簡(jiǎn)易邏輯分析儀的數(shù)字信號(hào)采集、處理、串行發(fā)送的部分程序.</p><p> // LOGICAL ANALIST</p><p> // main.c @12MHz</p><p> #include <89C51C.H></p><p> #include <stdio.h></
57、p><p> #include <math.h></p><p> #define lint unsigned long</p><p> #define uint unsigned int</p><p> #define uchar unsigned char</p><p> idat
58、a struct series</p><p> { uchar Series[48]; //signal series 24 bits&2 pages</p><p> uchar Time_flag_line; //0--23</p><p> uchar Trigger_Position; //single trigge
59、r position -3---19</p><p> uchar Gate_Voltage;//2.5V default</p><p><b> } Series;</b></p><p> uchar temp1[3];</p><p> uchar Series_Number=0;//signa
60、l series</p><p> uchar DispArray[8],DispArrayTemp[8]; //disp series array</p><p> uchar Trigger_Word=0x03,Trigger_Word_Temp; //single trigger word temp</p><p> uchar Trigg
61、er_Level=0,Trigger_Level_Temp; //trigger level (0)NoTrigger</p><p> int Trigger_Position_Temp=0,j=0;</p><p> uchar key; //keyValue</p><p> uchar i,temp;</p&g
62、t;<p> uchar idata PageFull; //Page being displayed. (_NO)</p><p> bit enter=0;</p><p> bit sent=0; //send done</p><p> bit send_ok=0; //send_ok&l
63、t;/p><p> bit flag0=0,flag1=0,flag2=0,flag3=0,flag4=0,flag5=0;</p><p> bit start_flag=0; //single trigger is triggerred.</p><p> uchar setmode=0; //setmode:0 no_set;
64、 1:Trigger_Level=1(set Trigger_Word);</p><p> //2:Multiple_Level_Set; 3:Set Gate_Voltage</p><p> sbit WDI=P3^7;</p><p> extern uchar readkey();</p><p> //
65、NOKEY FF;set 00; 0/1 01;updown 02;read 03;store 04;left 05;right 06;ENTER 07.</p><p> //extern void delay250us(void);</p><p> //extern void delay500us(void);</p><p> //extern v
66、oid delay1ms(void);</p><p> //extern void delay5ms(void);</p><p> //extern void delay10ms(void);</p><p> extern void delay50ms(void);</p><p> //extern void delay20m
67、s(void);</p><p> extern void Disp_Init();</p><p> extern void Disp_LocateCursor(const uchar );</p><p> extern void Disp_HideCursor(void);</p><p> extern void Disp_C
68、learInfoLine(void);</p><p> extern void Disp_ClearFuncLine(void);</p><p> extern void Disp_InfoLinePos(uchar, const char *);</p><p> extern void Disp_InfoLine(const char *);</
69、p><p> extern void Disp_FuncLine(const char * );</p><p> extern void Disp_InfoLineSlideFromRight(const char *);</p><p> extern void Disp_FuncPos(uchar, const char *);</p><
70、;p> extern void Disp_Notice(const char *);</p><p> extern void Transfer(void);</p><p> //Disp Function</p><p> void sys_init(void);</p><p> void intt0P(void);&l
71、t;/p><p> void SeriesDisp(char); //Series to DispArray;</p><p> void TriggerWordTempDisp(void);</p><p> void TriggerWordDisp(void);</p><p> void start_hello(void);<
72、/p><p> void DispTrigger_Position_Temp(void);</p><p> //Trans Function</p><p> void DispArraytoTriggerWord(void);</p><p> void DispArraytoSeries(void); //DispArray to
73、Series;</p><p> void DispPosition(char);</p><p> void GateVoltageDisp(char);</p><p> void Read_data(void);</p><p> extern void Send_Data(void);</p><p>
74、 void StoreWaves(void);</p><p> void frequency_count(void);</p><p> void exit(void);</p><p> void delay1s(void);</p><p> //LOGICAL ANALIST</p><p> vo
75、id main (void)</p><p><b> {</b></p><p> /*INITIALIZE 89C52 */</p><p> sys_init();</p><p> //lcd welcome information</p><p> start_hello();
76、</p><p> delay1s();</p><p> delay1s();</p><p> delay50ms();delay50ms();WDI=0;WDI=1;</p><p> for(i=0;i<8;i++) DispArrayTemp[i]=DispArray[i];</p><p>
77、 Trigger_Word_Temp=Trigger_Word;</p><p> //Disp_InfoLineSlideFromRight("SET:TRG CUR TIM");</p><p> //Disp_FuncLine(" SET <-> SET");</p><p><b>
78、; while(1){</b></p><p> if(j==30000)</p><p><b> {j=0;</b></p><p> Disp_InfoLineSlideFromRight("SET: TRG CUR TIM");</p><p> Disp_FuncLin
79、e("KEY: SET <-> SET");</p><p><b> }</b></p><p><b> j++;</b></p><p><b> flag1=0;</b></p><p> //key operation</
80、p><p> key=readkey();</p><p> switch(key)</p><p> {case 0x00: </p><p> while(flag1==0)</p><p> { setmode=1; //set</p><p> Disp_InfoLine(&q
81、uot;TRL TRW TRP GVO");</p><p> Disp_FuncLine(" 0 1 RD ST");</p><p><b> flag0=0;</b></p><p> key=readkey();</p><p> switch(key)
82、 //0/1/read</p><p> {//trigger level</p><p> case 0x01: while(flag0==0)</p><p> {Disp_InfoLine(" TRIGGER LEVEL ");</p><p> Disp_FuncLine(" <
83、-- 0L || -->1L");</p><p> key=readkey();</p><p> if(key==0x05) Trigger_Level_Temp=0;</p><p> if(key==0x06) Trigger_Level_Temp=1;</p><p> if(key==0x07) fl
84、ag0=1;</p><p><b> }</b></p><p> if(Trigger_Level_Temp==0) Disp_FuncLine(" ZERO LEVEL ");</p><p> if(Trigger_Level_Temp==1) Disp_FuncLine(" ONE LEVEL
85、 ");</p><p> delay1s();</p><p><b> break;</b></p><p> //Trigger_position</p><p> case 0x03: flag2=0; Trigger_Position_Temp=Series.Trigger_Positio
86、n;</p><p> DispPosition(Trigger_Position_Temp);</p><p> while(flag2==0)</p><p> {Disp_InfoLine("TRIGGER POSITION");</p><p> DispPosition(Trigger_Position_
87、Temp);</p><p> key=readkey();</p><p> if((key==0x05)&&(Trigger_Position_Temp>-3)) Trigger_Position_Temp--;</p><p> if((key==0x06)&&(Trigger_Position_Temp<1
88、9)) Trigger_Position_Temp++;</p><p> if(key==0x07) {flag2=1;</p><p> Series.Trigger_Position=Trigger_Position_Temp+3;</p><p> Trigger_Position_Temp=0;}</p><p> //D
89、ispPosition(Series.Trigger_Position);</p><p><b> }</b></p><p><b> break;</b></p><p> //trigger_word</p><p> case 0x02:j=0;flag3=0; //flag<
90、;/p><p> Disp_InfoLine("TRIGGER WORD");</p><p> TriggerWordDisp();</p><p> while(flag3==0)</p><p> {TriggerWordDisp();delay1s();</p><p> for(j=
91、0;j<8;j++) DispArray[j]=' ';</p><p><b> flag4=0;</b></p><p><b> j=0;</b></p><p> while(flag4==0)</p><p><b> {</b><
92、/p><p> key=readkey();</p><p> if((key==0x01)&&(j>=0)&&(j<=7)) {DispArray[j]='0';j++; }</p><p> if((key==0x02)&&(j>=0)&&(j<=7)) {
93、DispArray[j]='1';j++; }</p><p> if((key==0x05)&&(j>=0)&&(j<=8)) {DispArray[j-1]=' ';j-=1; }</p><p> if(key==0x07) {flag3=1;flag4=1;DispArraytoTriggerWord
94、();}</p><p> Disp_FuncLine("WORD:");</p><p> Disp_FuncPos(6,DispArray); Disp_FuncPos(14," ");</p><p><b> }</b></p><p><b> }&l
95、t;/b></p><p> TriggerWordDisp();delay1s();</p><p> delay1s();</p><p><b> break;</b></p><p> //set Gate_Voltage</p><p> case 0x04:flag5
96、=0;temp=Series.Gate_Voltage;</p><p> while(flag5==0)</p><p> {Disp_InfoLine("GAT VOL(0-5V/32)");</p><p> Series.Gate_Voltage=128;</p><p> key=readkey();&l
97、t;/p><p> if((key==0x05)&&(temp>=8)) temp-=8;</p><p> if((key==0x06)&&(temp<=256)) temp+=8;</p><p> if(key==0x07) {flag5=1;Series.Gate_Voltage=temp;}</p>
98、<p> GateVoltageDisp(temp);</p><p><b> }</b></p><p> GateVoltageDisp(Series.Gate_Voltage);</p><p><b> break;</b></p><p> default: br
99、eak;</p><p><b> }</b></p><p> key=readkey();</p><p> if(key==0x07) {flag1=1;//exit and store</p><p><b> }</b></p><p><b>
100、 }</b></p><p><b> break;</b></p><p><b> //READ</b></p><p> case 0x03: Read_data();</p><p><b> break;</b></p><p&
101、gt;<b> //STORE</b></p><p> case 0x04: StoreWaves(); WDI=0;WDI=1;</p><p><b> break;</b></p><p><b> //<---</b></p><p> case 0x
102、05:if(Series.Time_flag_line>0) Series.Time_flag_line--;</p><p> Disp_InfoLine("TIME FLAG LINE");DispPosition(Series.Time_flag_line);</p><p> delay1s();</p><p><b&g
103、t; break;</b></p><p><b> //---></b></p><p> case 0x06:if(Series.Time_flag_line<24) Series.Time_flag_line++;</p><p> Disp_InfoLine("TIME FLAG LINE&qu
104、ot;);DispPosition(Series.Time_flag_line);</p><p> delay1s();</p><p><b> break;</b></p><p> default : break;</p><p><b> }</b></p><
105、;p><b> }</b></p><p> } //main end</p><p> //INTERRUPT PROCESSING FUNCTION</p><p> //read data</p><p> void intt0P(void) interrupt 0</p><
106、p><b> { i=P1;</b></p><p> switch(Trigger_Level) //0 1 2</p><p> {case 0: Series.Series[Series_Number]=i; //no trigger word</p><p> Series_Number++;</p>
107、<p> if(Series_Number>=24) PageFull=0; //page 0 is ok</p><p> else PageFull=1; //page 1 ok</p><p> if(Series_Number>=48) Series_Number=0;</p><p> if((S
108、eries_Number==24)||(Series_Number==48)) send_ok=1;</p><p> sent=0; //data changes: sent no done</p><p><b> break;</b></p><p> //check trigg
109、er_word</p><p> case 1: if((i!=Trigger_Word)&&(start_flag==0)) //store temp data</p><p> {temp1[0]=temp1[1];temp1[1]=temp1[2]; temp1[2]=i;}</p><p> if((i==Trigger_Word)&a
110、mp;&(start_flag==0))</p><p> {start_flag=1; //single trigger start</p><p> switch(Series.Trigger_Position)</p><p> {case 3:Series.Series[0]=temp1[0];</p&g
111、t;<p> Series.Series[1]=temp1[1];</p><p> Series.Series[2]=temp1[2];</p><p> Series_Number=3;break;</p><p> case 2:Series.Series[0]=temp1[0];</p><p> Series
112、.Series[1]=temp1[1];</p><p> Series_Number=2;break;</p><p> case 1:Series.Series[0]=temp1[0];</p><p> Series_Number=1;break;</p><p> default:break;</p><p
113、><b> }</b></p><p> Series.Series[Series_Number]=i;</p><p> Series_Number++;</p><p><b> }</b></p><p> if(start_flag==1) //started &re
114、ad data</p><p> { Series.Series[Series_Number]=i;</p><p> if(Series_Number>=24) PageFull=0; //page 0 ok</p><p> else PageFull=1; //page 1 ok</p><p> if(S
115、eries_Number>=48) Series_Number=0;</p><p> if((Series_Number==24)||(Series_Number==48)) send_ok=1;</p><p> sent=0; //data changes: sent no done</p><p><b> }</b>
116、;</p><p> default:break;</p><p><b> }</b></p><p><b> }</b></p><p> //send data from serial port</p><p> void intt1p(void) inte
117、rrupt 2</p><p> { if((sent==0)&&(send_ok==1)){Send_Data();</p><p> sent=1; //send done</p><p> send_ok=0;//data not ok</p><p><b> }</b></p&g
118、t;<p><b> }</b></p><p> //sys_initilize</p><p> void sys_init()</p><p><b> {</b></p><p><b> P1=0x0ff;</b></p><
119、;p><b> P2=0x0ff;</b></p><p><b> P0=0x0ff;</b></p><p><b> P3=0x0ff;</b></p><p> EA=1;ET1=1;</p><p> Series.Time_flag_line=0;&
120、lt;/p><p> Series.Trigger_Position=0;</p><p> Series.Gate_Voltage=128;</p><p> Series_Number=0;</p><p> sent=0; //no sent</p><p> Trigger_Level=0; //
121、trigger level default(0)</p><p> Trigger_Position_Temp=0;</p><p> send_ok=0; //no ready</p><p> start_flag=0;</p><p><b> }</b></p><p> voi
122、d start_hello(void)</p><p> { Disp_Init();</p><p> Disp_InfoLineSlideFromRight("WELCOME TO LG-1");</p><p> Disp_FuncLine("LOGICAL ANALIST");</p><p&
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 簡(jiǎn)易頻譜分析儀課程設(shè)計(jì)
- eda課程設(shè)計(jì)--eda課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告
- eda課程設(shè)計(jì)--簡(jiǎn)易頻率計(jì)設(shè)計(jì)
- 基于單片機(jī)的簡(jiǎn)易邏輯分析儀設(shè)計(jì)論文資料
- eda課程設(shè)計(jì)---簡(jiǎn)易售貨機(jī)
- eda課程設(shè)計(jì)---簡(jiǎn)易售貨機(jī)
- eda課程設(shè)計(jì)報(bào)告
- eda課程設(shè)計(jì)報(bào)告
- 音頻信號(hào)分析儀課程設(shè)計(jì)
- eda課程設(shè)計(jì)報(bào)告
- 數(shù)字邏輯課程設(shè)計(jì)報(bào)告--簡(jiǎn)易售貨機(jī)的設(shè)計(jì)
- eda課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)綜合分析儀邏輯分析儀模塊軟件設(shè)計(jì)
- eda課程設(shè)計(jì)-簡(jiǎn)易信號(hào)發(fā)生器
- 基于labview的虛擬邏輯分析儀設(shè)計(jì)【開(kāi)題報(bào)告】
- 簡(jiǎn)易心電圖儀設(shè)計(jì)(課程設(shè)計(jì))
- 簡(jiǎn)易手指血氧儀課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)綜合分析儀邏輯分析儀模塊軟件設(shè)計(jì).pdf
- 畢業(yè)論文--邏輯分析儀的設(shè)計(jì)
- 虛擬儀器課程設(shè)計(jì)---虛擬功率分析儀設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論