版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 電子課程設(shè)計(jì)</b></p><p><b> —數(shù)字電壓表的設(shè)計(jì)</b></p><p><b> 目錄</b></p><p> 目錄……………………………………………………1</p><p> 一、前言…………………………………………
2、……2</p><p> 二、設(shè)計(jì)任務(wù)與要求……………………………………6</p><p> 三、總體框圖……………………………………………6</p><p> 四、選擇器件……………………………………………8</p><p> 五、模塊功能…………………………………………11</p><p> 六、總體設(shè)計(jì)
3、電路圖…………………………………20</p><p><b> 七、總結(jié)</b></p><p> 1,心得……………………………………………22</p><p> 2,展望……………………………………………22</p><p> 3,致謝……………………………………………23</p><p&
4、gt; 八,參考文獻(xiàn)…………………………………………23</p><p><b> 一、前言</b></p><p><b> 課題研究的背景</b></p><p> 隨著信息技術(shù)獲得了突飛猛進(jìn)的發(fā)展,信息技術(shù)滲透了我們生活的幾乎全部領(lǐng)域,改變著人類的生存狀態(tài)和思維模式。而我們的課題所涉及的電子設(shè)計(jì)自動(dòng)化(EDA
5、)技術(shù)就是在這種時(shí)代背景下產(chǎn)生的,并影響巨大。FPGA是新型的可編程邏輯器件,與傳統(tǒng) ASIC 相比,具有設(shè)計(jì)開發(fā)周期短、設(shè)計(jì)制造成本低、開發(fā)工具先進(jìn) 等優(yōu)點(diǎn),特別適合于產(chǎn)品的樣品開發(fā)和小批量生產(chǎn)。傳統(tǒng)的數(shù)字電壓表多以單片機(jī)為控制核心,芯片集成度不高,系統(tǒng)連線復(fù)雜,難以小型化,尤其在產(chǎn)品需求發(fā)生變化時(shí),不得不重新布版、調(diào)試,增加了投資風(fēng)險(xiǎn)和成本。而采用 FPGA 進(jìn)行產(chǎn)品開發(fā),可以靈活地進(jìn)行模塊配置,大大縮短了開發(fā)周期,也有利于數(shù)字電壓
6、表向小型化、集成化的方向發(fā)展。 隨著電子技術(shù)的發(fā)展,當(dāng)前數(shù)字電子系統(tǒng)的設(shè)計(jì)正朝著速度快、容量大、體積小、重量輕的方向發(fā)展。推動(dòng)該潮流發(fā)展的引擎就是日趨進(jìn)步和完善的ASIC設(shè)計(jì)技術(shù)。目前數(shù)字系統(tǒng)的設(shè)計(jì)可以直接面向用戶需求,根據(jù)系統(tǒng)的行為和功能的要求,自上而下的完成相應(yīng)的描述、綜合、優(yōu)化、仿真與驗(yàn)證,直接生成器件。上述設(shè)計(jì)過程除了系統(tǒng)行為和功能描述以外,其余所有的設(shè)計(jì)幾乎都可以用計(jì)算機(jī)來自動(dòng)完成,也就說做到了電子設(shè)</p>&
7、lt;p> 伴隨著集成電路(IC)技術(shù)的發(fā)展,電子設(shè)計(jì)自動(dòng)化(EDA)逐漸成為重要的設(shè)計(jì)手段,己經(jīng)廣泛應(yīng)用于模擬與數(shù)子電路系統(tǒng)等許多領(lǐng)域。目前電子技術(shù)的發(fā)展主要體現(xiàn)在EDA領(lǐng)域,數(shù)字系統(tǒng)的設(shè)計(jì)正朝著速度快、容量大、體積小、重量輕的方向發(fā)展。電子設(shè)計(jì)自動(dòng)化是近幾年迅速發(fā)展起來的將計(jì)算機(jī)軟件、硬件、微電子技術(shù)交叉運(yùn)用的現(xiàn)代電子設(shè)計(jì)學(xué)科。其中EDA設(shè)計(jì)語言中的VHDL語言是一種快速的電路設(shè)計(jì)工具,功能涵蓋了電路描述、電路合成、電路仿真
8、等三大電路設(shè)計(jì)工作。本電壓表的電路設(shè)計(jì)正是用VHDL語言完成的。此次設(shè)計(jì)主要應(yīng)用的軟件是美國ALTERA公司自行設(shè)計(jì)的Quartus II。</p><p> FPGA設(shè)計(jì)具有以下優(yōu)點(diǎn):</p><p> (1)硬件設(shè)計(jì)軟件化</p><p> 這是FPGA開發(fā)的最大優(yōu)勢(shì)。傳統(tǒng)硬件電路設(shè)計(jì)先要進(jìn)行功能設(shè)計(jì),然后進(jìn)行電路板級(jí)設(shè)計(jì)并做稱電路板后進(jìn)行調(diào)試,如果電路中
9、有什么錯(cuò)誤,整個(gè)電路板都將作廢,這是很不經(jīng)濟(jì)的。FPGA的開發(fā)在功能層面上可以完全脫離硬件而在EDA軟件上做軟仿真。當(dāng)功能確定無誤后可以進(jìn)行硬件電路板的設(shè)計(jì)。最后將設(shè)計(jì)好的,由EDA軟件生成的燒寫文件下載到配置設(shè)備中去,進(jìn)行在線調(diào)試,如果這時(shí)的結(jié)果與要求不一致,可以立即更改設(shè)計(jì)軟件,并再次燒寫到配置芯片中而不必改動(dòng)外接硬件電路。</p><p> (2)高度集成化,高工作頻率</p><p&
10、gt; 一般的FPGA內(nèi)部都集成有上百萬的邏輯門,可以在其內(nèi)部規(guī)劃出多個(gè)與傳統(tǒng)小規(guī)模集成器件功能相當(dāng)?shù)哪K。這樣將多個(gè)傳統(tǒng)器件集成在同一芯片內(nèi)部的方法不但可以改進(jìn)電路板的規(guī)模,還可以減少PCB布線的工作。由于各個(gè)模塊都是集成在FPGA芯片內(nèi)部,這就很大程度地解決了信號(hào)的干擾問題,使得FPGA的工作頻率可以大幅度的提高。另外,一般的FPGA內(nèi)部都有PLL倍頻的時(shí)鐘,這進(jìn)一步解決了電磁干擾和電磁兼容問題。</p><p
11、><b> (3)支持多種接口</b></p><p> FPGA芯片可支持多種標(biāo)準(zhǔn)的接口電平,可通過EDA開發(fā)工具來選定采用什么樣的接口標(biāo)準(zhǔn),包括常用的TTL和差分輸入等。這便于后端各種不同接口電路的匹配。</p><p><b> FPGA設(shè)計(jì)流程</b></p><p> 可編程邏輯器件的設(shè)計(jì)是利用ED
12、A開發(fā)軟件和編程土具對(duì)器件開發(fā)的過程。它包括設(shè)計(jì)準(zhǔn)備、設(shè)計(jì)輸入、功能仿真、設(shè)計(jì)處理、時(shí)序仿真和器件編程及測(cè)試等七個(gè)步驟。</p><p><b> 1.設(shè)計(jì)準(zhǔn)備</b></p><p> 在系統(tǒng)設(shè)計(jì)之前,首先要進(jìn)行方案論證、系統(tǒng)設(shè)計(jì)和器件選擇等準(zhǔn)備工作。</p><p> 一般采用自上而下的設(shè)計(jì)方法,也可采用傳統(tǒng)的自下而上的設(shè)計(jì)方法。&l
13、t;/p><p><b> 2.設(shè)計(jì)輸入</b></p><p> 設(shè)計(jì)輸入將所設(shè)計(jì)的系統(tǒng)或電路以開發(fā)軟件要求的某種形式表示出來,并送入計(jì)算機(jī)的過程稱為設(shè)計(jì)輸入。設(shè)計(jì)輸入通常有以下集中形式:</p><p><b> 1)原理圖輸入方式</b></p><p> 2)硬件描述語言輸入方式<
14、/p><p><b> 3)波形輸入方式</b></p><p><b> 3.功能仿真</b></p><p> 功能仿真也叫做前仿真。用戶所設(shè)計(jì)的電路必須在編譯之前進(jìn)行邏輯功能驗(yàn)證,此時(shí)的仿真沒有延時(shí)信息,對(duì)于初步的功能檢測(cè)非常方便。仿真中如發(fā)現(xiàn)錯(cuò)誤,則返回設(shè)計(jì)輸入中修改邏輯設(shè)計(jì)。</p><p&
15、gt;<b> 4.設(shè)計(jì)處理</b></p><p> 設(shè)計(jì)處理是器件設(shè)計(jì)中的核心環(huán)節(jié)。在設(shè)計(jì)處理過程中,編譯軟件將對(duì)設(shè)計(jì)輸入文件進(jìn)行邏輯化簡(jiǎn)、綜合優(yōu)化和適配,最后產(chǎn)生編程用的編程文件。主要有: 1) 語法檢查和設(shè)計(jì)規(guī)則檢查</p><p><b> 2)邏輯優(yōu)化和綜合</b></p><p><b
16、> 3)適配和分割</b></p><p><b> 4)布局和布線</b></p><p><b> 5.時(shí)序仿真</b></p><p> 時(shí)序仿真又稱后仿真或延時(shí)仿真。由于不同器件的內(nèi)部延時(shí)不一樣,不同的布局布線方案也給延時(shí)造成不同的影響,因此在設(shè)計(jì)處理以后,對(duì)系統(tǒng)和各模塊進(jìn)行時(shí)序仿真,分析
17、其時(shí)序關(guān)系,估計(jì)設(shè)計(jì)的性能,以及檢查和消除竟?fàn)幟半U(xiǎn)等是非常有必要的。</p><p><b> 6.器件編程測(cè)試</b></p><p> 時(shí)序仿真完成后,軟件就可產(chǎn)生供器件編程使用的數(shù)據(jù)文件。</p><p><b> VHDL語言描述</b></p><p> 硬件描述語言(hardwa
18、re description language,HDL)是電子系統(tǒng)硬件行為描述,結(jié)構(gòu)描述,數(shù)據(jù)流描述的語言.目前,利用硬件描述語言可以進(jìn)行數(shù)字電子系統(tǒng)的設(shè)計(jì).隨著研究的深入,利用硬件描述語言進(jìn)行模擬電子系統(tǒng)設(shè)計(jì)或混合電</p><p> 子系統(tǒng)設(shè)計(jì)也正在探索中。</p><p> 國外硬件描述語言種類很多,有的從Pascal發(fā)展而來,也有一些從C語言發(fā)展而來.有些HDL成為IEEE標(biāo)準(zhǔn)
19、,但大部分是企業(yè)標(biāo)準(zhǔn).VHDL來源于美國軍方,其他的硬件描述語言則多來源于民間公司.可謂百家爭(zhēng)鳴,百花齊放.這些不同的語言傳播到國內(nèi),同樣也引起了不同的影響.在我國比較有影響的有兩種硬件描述語言:VHDL語言和Verilog HDL語言.這兩種語言已成為IEEE標(biāo)準(zhǔn)語言。</p><p> VHDL語言的設(shè)計(jì)流程</p><p> 采用VHDL語言設(shè)計(jì)硬件電路系統(tǒng)的設(shè)計(jì)流程一般可以分為
20、以下幾個(gè)步驟。①硬件電路系統(tǒng)設(shè)計(jì)要求的定義。②編寫描述硬件電路系統(tǒng)功能的VHDL語言程序。③VHDL語言程序的模擬。④VHDL語言的綜合、優(yōu)化和布局布線。⑤布局布線后的設(shè)計(jì)模擬。⑥器件的編程。設(shè)計(jì)人員在從事硬件電路系統(tǒng)的合計(jì)過程中,編寫VHDL語言程序之前必須對(duì)硬件電路系統(tǒng)的設(shè)計(jì)目的和設(shè)計(jì)要求有一個(gè)非常明確的認(rèn)識(shí)才行。</p><p> Quartus II開發(fā)平臺(tái)簡(jiǎn)介 </p><p&g
21、t; Quartus II是Altera提供的FPGA/CPLD開發(fā)集成環(huán)境,Altera是世界最大可編程邏輯器件供應(yīng)商之一。Quartus II在21世紀(jì)初推出,是Altera前一代FPGA/CPLD集成開發(fā)環(huán)境MAX+plus II的更新?lián)Q代產(chǎn)品,其界面友好,使用便捷。在Quartus II上可以完成設(shè)計(jì)輸入、HDL綜合、布線布局(適配)、仿真和下載和硬件測(cè)試等流程,它提供了一種與結(jié)構(gòu)無關(guān)的設(shè)計(jì)環(huán)境,使設(shè)計(jì)者能方便地進(jìn)行設(shè)計(jì)輸入、
22、快速處理和器件編程。</p><p> 本次所設(shè)計(jì)的電壓表的測(cè)量范圍是0~5V,精度為0.01V。此電壓表的設(shè)計(jì)特點(diǎn)為:通過軟件編程下載到硬件實(shí)現(xiàn),設(shè)計(jì)周期短,開發(fā)效率高。</p><p> 關(guān)鍵字:電子設(shè)計(jì)自動(dòng)化(EDA);FPGA;VHDL;A/D;數(shù)字電壓表。</p><p><b> 二、設(shè)計(jì)任務(wù)與要求</b></p>
23、<p> 要求利用FPGA控制模塊數(shù)轉(zhuǎn)換器對(duì)外部輸入的模擬信號(hào)進(jìn)行采樣,獲取當(dāng)前電壓值,并在數(shù)碼管上顯示。</p><p> 傳統(tǒng)的數(shù)字電壓表設(shè)計(jì)通常以大規(guī)模ASIC(專用集成電路)為核心器件,輔以少量中規(guī)模集成電路及顯示器件構(gòu)成。ASIC完成從模擬量的輸入到數(shù)字量的輸出,是數(shù)字電壓表的心臟,這種電壓表的設(shè)計(jì)簡(jiǎn)單、精確度高,但是這種設(shè)計(jì)方法由于采用了ASIC器件使得的它欠缺靈活性,其系統(tǒng)功能固定
24、,難以更新擴(kuò)展,。后來發(fā)展起來的微處理器(單片機(jī))控制通用A/D轉(zhuǎn)換器件的數(shù)字電壓表的設(shè)計(jì)的靈活性有所提高,系統(tǒng)功能的擴(kuò)展性變得簡(jiǎn)單,但是由于微處理機(jī)的引腳數(shù)量有限,其控制轉(zhuǎn)換速度和靈活性還是不能滿足日益發(fā)展的電子工業(yè)的需求。而應(yīng)以EDA技術(shù)及FPGA,其集成度高、速度快、性能十分可靠、用戶可自由編程且編程語言通俗易懂、系統(tǒng)工程擴(kuò)展非常方便。采用FPGA芯片控制通用A/D轉(zhuǎn)換器可是速度、靈活性大大優(yōu)于微處理器和通用A/D轉(zhuǎn)換器構(gòu)成的數(shù)字
25、電壓表。</p><p> a,能夠?qū)崿F(xiàn)一個(gè)通道的采樣控制;</p><p> b,產(chǎn)生ADC0809工作所需的各種控制信號(hào);</p><p> c,計(jì)算轉(zhuǎn)換后的數(shù)字電壓信號(hào),并以BCD碼方式表示。</p><p><b> 總體框圖</b></p><p><b> 方案一:
26、</b></p><p> 本利用ADC0809作為電壓采樣端口,F(xiàn)PGA作為系統(tǒng)的核心器件,用LED進(jìn)行數(shù)碼顯示,把讀取的8位二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成便利于輸出3位十進(jìn)制BCD碼送給數(shù)碼管。</p><p> 采用FPGA芯片作為系統(tǒng)的核心器件,負(fù)責(zé)ADC0809的A/D轉(zhuǎn)換的啟動(dòng)、地址鎖存、輸入通道的選擇、數(shù)據(jù)的讀取。同時(shí),把讀取的8位二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成便于輸出3位十進(jìn)制的BCD
27、碼送給數(shù)碼管,以顯示當(dāng)前測(cè)量電壓值。這些工作由ADC0809轉(zhuǎn)換控制模塊、數(shù)據(jù)轉(zhuǎn)換模塊、譯碼模塊完成。</p><p><b> 圖1</b></p><p><b> 圖2</b></p><p><b> 方案二:</b></p><p> 基于VHDL語言的系統(tǒng)設(shè)
28、計(jì)是采用自頂向下的設(shè)計(jì)方法,將系統(tǒng)劃分為多個(gè)功能模塊,然后再逐個(gè)實(shí)現(xiàn)各個(gè)模塊的功能,最終把他們組合在一起,形成一個(gè)大的系統(tǒng)。</p><p> 本系統(tǒng)共分為6個(gè)模塊,分別為時(shí)鐘分頻(div_f)、數(shù)據(jù)采集控制(cs_control)、數(shù)據(jù)串轉(zhuǎn)并(chuan2bing)、顯示數(shù)值計(jì)算(data_calculate)、數(shù)碼管掃描(led_select)、顯示譯碼(led_translate)。</p>
29、<p> 在設(shè)計(jì)中,主要采用分模塊的方式,先實(shí)現(xiàn)各個(gè)模塊,然后組成整個(gè)系統(tǒng)。主要分為如下幾個(gè)模塊:時(shí)鐘分頻(div_f)、數(shù)據(jù)采集控制(cs_control)、數(shù)據(jù)串轉(zhuǎn)并(chuan2bing)、顯示數(shù)值計(jì)算(data_calculate)、數(shù)碼管掃描(led_select)、顯示譯碼(led_translate)。其中時(shí)鐘分頻主要用計(jì)數(shù)器實(shí)現(xiàn),采樣數(shù)據(jù)暫存于一寄存器。利用TLC549就可以采集外部模擬電壓的大小并轉(zhuǎn)換成數(shù)
30、字信號(hào),通過串行輸入到控制器,經(jīng)過控制器對(duì)數(shù)據(jù)處理如計(jì)算成實(shí)際電壓、保留三位小數(shù),再經(jīng)過控制器設(shè)計(jì)的數(shù)碼管控制模塊控制四個(gè)數(shù)碼管顯示處理過后的數(shù)據(jù),就實(shí)現(xiàn)了將外部電壓值顯示在數(shù)碼管的功能,這樣就實(shí)現(xiàn)了數(shù)字電壓表的顯示。</p><p> 這里我們采用方案一。</p><p><b> 四、選擇器件</b></p><p> (1)A/D轉(zhuǎn)
31、換器ADC0809控制電路</p><p><b> 編程說明</b></p><p> 利用ADC0809作為電壓采樣端口,F(xiàn)PGA作為系統(tǒng)的核心器件,用LED進(jìn)行數(shù)碼顯示,把讀取的8位二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成便于輸出3位十進(jìn)制BCD碼送給數(shù)碼管。</p><p> 由FPGA設(shè)計(jì)的ASIC芯片:</p><p> 一
32、方面產(chǎn)生ADC0809的控制信號(hào),控制ADC0809實(shí)現(xiàn)0~5v的模擬電壓到8位數(shù)字量DB0~DB7的變換;</p><p> 另一方面將讀入的數(shù)字量轉(zhuǎn)化成電壓工程值,并轉(zhuǎn)換為3位BCD碼的七段數(shù)字顯示字符碼送到LED數(shù)碼管進(jìn)行顯示。</p><p> FPGA構(gòu)成的ASIC芯片中包括三部分電路:</p><p> 用有限狀態(tài)機(jī)設(shè)計(jì)的A/D轉(zhuǎn)換控制電路;<
33、;/p><p> 將8位數(shù)字量DB0~DB7轉(zhuǎn)換為3位BCD碼的電壓值的轉(zhuǎn)換電路;</p><p> 3位LED顯示器的譯碼顯示電路。</p><p> 所用芯片ADC0809的技術(shù)資料:</p><p> 工作電壓:+5v,即VCC=+5v。采用逐次逼近的方法實(shí)現(xiàn)A/D轉(zhuǎn)換。</p><p> 2, 模擬輸入電
34、壓范圍:0~+5v。</p><p> 3, 分辨率:8位。</p><p> 轉(zhuǎn)換時(shí)間:100us。</p><p> 轉(zhuǎn)換誤差:±1LSB。</p><p> 參考電壓:2.5v。</p><p> 圖3,ADC0809控制器的狀態(tài)轉(zhuǎn)換圖</p><p><b&g
35、t; 圖4</b></p><p> 外部特性(引腳功能) ADC0809芯片有28條引腳,采用雙列直插式封裝,如圖13.23所示。下面說明各引腳功能。 IN0~I(xiàn)N7:8路模擬量輸入端。2-1~2-8:8位數(shù)字量輸出端。ADDA、ADDB、ADDC:3位地址輸入線,用于選通8路模擬輸入中的一路ALE:地址鎖存允許信號(hào),輸入,高電平有效。 START: A/D轉(zhuǎn)換啟動(dòng)脈沖輸入端,輸
36、入一個(gè)正脈沖(至少100ns寬)使其啟動(dòng)(脈沖上升沿使0809復(fù)位,下降沿啟動(dòng)A/D轉(zhuǎn)換)。 EOC: A/D轉(zhuǎn)換結(jié)束信號(hào),輸出,當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),此端輸出一個(gè)高電平(轉(zhuǎn)換期間一直為低電平)。 OE:數(shù)據(jù)輸出允許信號(hào),輸入,高電平有效。當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),此端輸入一個(gè)高電平,才能打開輸出三態(tài)門,輸出數(shù)字量。CLK:時(shí)鐘脈沖輸入端。要求時(shí)鐘頻率不高于640KHZ。 REF(+)、REF(-):基準(zhǔn)電壓。 Vcc:電源,單一+5
37、V。 GND:地。</p><p> ADC0809芯片的控制方法及轉(zhuǎn)換過程:</p><p> 控制ADC0809動(dòng)作的信號(hào)有:ALE,START,OE,EOC。</p><p> ADC0809的動(dòng)作大致分為5個(gè)步驟區(qū)間:S0,S1,S2,S3,S4。每個(gè)步驟區(qū)間的動(dòng)作方式如下:</p><p> 步驟S0:對(duì)ADC0809進(jìn)行
38、復(fù)位操作;</p><p> 步驟S1:由FPGA發(fā)出信號(hào)要求ADC0809進(jìn)行A/D轉(zhuǎn)換;</p><p> 步驟S2:轉(zhuǎn)換后,轉(zhuǎn)換完畢后的EOC將高電位降到低電位,而轉(zhuǎn)換時(shí)間>100us;</p><p> 步驟S3:轉(zhuǎn)換結(jié)束,有FPGA發(fā)出讀命令;</p><p> 步驟S4:有FPGA讀取DB0~DB7上的數(shù)字轉(zhuǎn)換資料,
39、并鎖存數(shù)據(jù)。</p><p> ?。?)將采樣數(shù)字量轉(zhuǎn)換成3位BCD碼</p><p><b> 編程說明</b></p><p> 8位數(shù)字量BD0~BD7如何變成3位BCD碼?用FPGA實(shí)現(xiàn)乘除法是很耗資源的,因而,下面采用查表方法求取BD0~BD7與模擬輸入電壓0~5v的對(duì)應(yīng)關(guān)系。</p><p> 編一個(gè)
40、查表程序,對(duì)上述電壓進(jìn)行BCD編碼,然后根據(jù)對(duì)應(yīng)的4位BCD碼相加的結(jié)果決定是否進(jìn)位,從而得到待處理數(shù)據(jù)的BCD碼。例如:從AD0809上取得的數(shù)據(jù)位“11011110”,“1101”對(duì)應(yīng)的電壓值位4.16v,其對(duì)應(yīng)的BCD編碼為“010000010110”,“1110”對(duì)應(yīng)的電壓值為0.28v,其對(duì)應(yīng)的BCD編碼為“000000101000”。低4位相加為“1110”,大于9,加6將其調(diào)整為BCD碼,其值為0100,并且向前有一進(jìn)位。
41、四位相加的結(jié)果為0011,由于低位有進(jìn)位,因此最終結(jié)果為0100,。高四位的結(jié)果為0100.三位合計(jì)值為4.44v,與4.16+0.28的結(jié)果一樣。</p><p> 表中將8位數(shù)字量分為高4位HB和低4位LB,這樣每個(gè)4位碼的編程都是從0000~1111的16組碼,由于5V被8位二進(jìn)制碼最大值除得到的結(jié)果是0.02v,即數(shù)字量每增大1對(duì)應(yīng)模擬電壓增大0.02v。</p><p> 表
42、中ADC0809采樣的參考電壓值是2.56v。</p><p><b> 圖5</b></p><p> 2, 從表中得到的模擬電壓值必須用BCD碼表示才能便于用LED數(shù)碼管顯示。</p><p> 例如,ADC0809的DB0~DB7是89H(10001001B),高4位HB是1000,低4位LB是1001,表中查詢到高四位1000對(duì)應(yīng)
43、的2.56v,寫成BCD碼是0010,0101,0110;低四位1001對(duì)應(yīng)的是0.18v,寫成BCD碼是0000,0001,1000.其和是2.74v,求的BCD碼的運(yùn)算如下:</p><p> HB 0010 0101 0110</p><p> LB 0000 0001 1000</p><p> +進(jìn)位
44、 1 0110</p><p> 結(jié)果 0010 0111 0100</p><p> (3)譯碼,顯示電路</p><p><b> 編程說明</b></p><p> 譯碼、顯示電路可以采用動(dòng)態(tài)掃描顯示和靜態(tài)顯示兩種方法。這里采用動(dòng)態(tài)顯示。</p
45、><p> 動(dòng)態(tài)顯示的字位更新采用一個(gè)計(jì)數(shù)器頻率約為125Hz的信號(hào)輪流接通各位數(shù)碼管的位線,并對(duì)顯示字符進(jìn)行掃描,應(yīng)保證顯示不閃爍。</p><p> (4)EP1C12Q240C8</p><p> FPGA EP1C12Q240C8開發(fā)板是基于FPGA的硬件描述語言EDA和軟內(nèi)核嵌入式系統(tǒng)的SOPC開發(fā)平臺(tái)。系統(tǒng)采用多層PCB板設(shè)計(jì),完善的電源和時(shí)鐘設(shè)計(jì),性
46、能穩(wěn)定可靠、結(jié)構(gòu)緊湊美觀。系統(tǒng)采用主流FPGA構(gòu)建平臺(tái),片內(nèi)資源豐富,板載器件多、周邊接口多、可擴(kuò)展性強(qiáng)。優(yōu)化設(shè)計(jì)使系統(tǒng)調(diào)試方便,配置容易。配備豐富的例程有利于FPGA和SOPC的學(xué)習(xí)、快速入門與提高。FPGA/SOPC開發(fā)平臺(tái)是電子、信息類專業(yè)學(xué)生學(xué)習(xí)FPGA和SOPC的理想良師益友,是各大專院校教學(xué)科研的良好工具,也可用于科研機(jī)構(gòu)研發(fā)特色新產(chǎn)品。</p><p><b> 五、功能模塊</b
47、></p><p> 1,ADC0809(ad)</p><p> 功能:利用ADC0809作為電壓采樣端口,進(jìn)行A/D轉(zhuǎn)換。</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic
48、_unsigned.all;</p><p> entity ad is</p><p> port(clk:in std_logic;</p><p> eoc:in std_logic;</p><p> datain:in std_logic_vector(7 downto 0);</p><p> d
49、ataout:out std_logic_vector(7 downto 0); </p><p> oe:out std_logic;</p><p> ale:out std_logic;</p><p> start:out std_logic;</p><p> add:out std_logic_vector(2 downt
50、o 0));</p><p><b> end ad;</b></p><p> architecture one of ad is</p><p> type states is(st0,st1,st2,st3,st4);</p><p> signal current_state,next_state:sta
51、tes:=st0;</p><p> signal temp:std_logic_vector(7 downto 0);</p><p> signal lock:std_logic;</p><p><b> begin</b></p><p> add<="001";</p&g
52、t;<p> dataout<=temp;</p><p> process(current_state,eoc)</p><p><b> begin</b></p><p> case current_state is</p><p> when st0=>ale<='
53、;0';start<='0';oe<='0';lock<='0';</p><p> next_state<=st1;</p><p> when st1=>ale<='1';start<='1';oe<='0';lock<=
54、39;0';</p><p> next_state<=st2;</p><p> when st2=>ale<='0';start<='0';oe<='0';lock<='0';</p><p> if (eoc='1')then ne
55、xt_state<=st3;</p><p> else next_state<=st2;</p><p><b> end if;</b></p><p> when st3=>ale<='0';start<='0';oe<='1';lock<=&
56、#39;1';</p><p> next_state<=st4;</p><p> when st4=>ale<='0';start<='0';oe<='1';lock<='1';</p><p> next_state<=st0;</p&
57、gt;<p><b> end case;</b></p><p> end process;</p><p> process(clk)</p><p><b> begin</b></p><p> if(clk 'event and clk='1'
58、;) then current_state<=next_state;</p><p><b> end if;</b></p><p> end process;</p><p> process(lock)</p><p><b> begin</b></p><
59、p> if lock='1' and lock 'event then temp<=datain;</p><p><b> end if;</b></p><p> end process;</p><p> end architecture one;</p><p><
60、;b> 其生成項(xiàng)目符號(hào):</b></p><p><b> 圖6</b></p><p> 該模塊時(shí)序仿真圖如下:</p><p><b> 圖7</b></p><p><b> 如圖:</b></p><p> Data
61、in、EOC、CLK:輸入端</p><p> Dataut、OE、ALE、START、ADD:輸出端</p><p> 當(dāng)輸入時(shí)鐘信號(hào)時(shí),八位數(shù)字量在EOC有高電位變?yōu)榈碗娢粫r(shí),標(biāo)志著A/D轉(zhuǎn)換結(jié)束。</p><p> Dataprocess</p><p> 功能:將采樣數(shù)字量轉(zhuǎn)換成3位BCD碼。</p><p
62、> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity dataprocess is</p><p> port(b_datain:in std_logic_v
63、ector(7 downto 0);</p><p> b_dataout:out std_logic_vector(11 downto 0));</p><p> end dataprocess;</p><p> architecture one of dataprocess is</p><p> signal middata:
64、std_logic_vector(7 downto 0);</p><p> signal vdata:std_logic_vector(11 downto 0);</p><p> signal hdata:std_logic_vector(11 downto 0);</p><p> signal ldata:std_logic_vector(11 dow
65、nto 0);</p><p> signal c0:std_logic;</p><p> signal c1:std_logic;</p><p> signal c2:std_logic;</p><p><b> begin</b></p><p> middata<=b_
66、datain;</p><p> hdata<="010010000000"when middata(7 downto 4)="1111"else</p><p> "010001001000"when middata(7 downto 4)="1110"else</p><p&g
67、t; "010000010110"when middata(7 downto 4)="1101"else</p><p> "001110000100"when middata(7 downto 4)="1100"else</p><p> "001101010010"when mid
68、data(7 downto 4)="1011"else</p><p> "001100100000"when middata(7 downto 4)="1010"else</p><p> "001010001000"when middata(7 downto 4)="1001"els
69、e</p><p> "001001010110"when middata(7 downto 4)="1000"else</p><p> "001000100100"when middata(7 downto 4)="0111"else</p><p> "000110
70、010010"when middata(7 downto 4)="0110"else</p><p> "000101100000"when middata(7 downto 4)="0101"else</p><p> "000100101000"when middata(7 downto 4)
71、="0100"else</p><p> "000010010110"when middata(7 downto 4)="0011"else</p><p> "000001100100"when middata(7 downto 4)="0010"else</p><
72、;p> "000000110010"when middata(7 downto 4)="0001"else</p><p> "000000000000";</p><p> ldata<="000000110000"when middata(3 downto 0)="1111&qu
73、ot;else</p><p> "000000101000"when middata(3 downto 0)="1110"else</p><p> "000000100100"when middata(3 downto 0)="1101"else</p><p> "
74、000000100100"when middata(3 downto 0)="1100"else</p><p> "000000100010"when middata(3 downto 0)="1011"else</p><p> "000000100000"when middata(3 dow
75、nto 0)="1010"else</p><p> "000000011000"when middata(3 downto 0)="1001"else</p><p> "000000010110"when middata(3 downto 0)="1000"else</p>
76、;<p> "000000010100"when middata(3 downto 0)="0111"else</p><p> "000000010010"when middata(3 downto 0)="0110"else</p><p> "000000010000&quo
77、t;when middata(3 downto 0)="0101"else</p><p> "000000001000"when middata(3 downto 0)="0100"else</p><p> "000000000110"when middata(3 downto 0)="001
78、1"else</p><p> "000000000100"when middata(3 downto 0)="0010"else</p><p> "000000000010"when middata(3 downto 0)="0001"else</p><p> &q
79、uot;000000000000";</p><p> c0<='1' when hdata(3 downto 0)+ldata(3 downto 0)>"01001" else '0';</p><p> c1<='1' when hdata(7 downto 4)+ldata(7 dow
80、nto 4)>"01001" else '0';</p><p> c2<='1' when hdata(11 downto 8)+ldata(11 downto 8)>"01001" else '0';</p><p> vdata(3 downto 0)<=hdata(3
81、 downto 0)+ldata(3 downto 0)+"0110" when c0='1' else</p><p> hdata(3 downto 0)+ldata(3 downto 0);</p><p> vdata(7 downto 4)<=hdata(7 downto 4)+ldata(7 downto 4)+"0111
82、" when c1='1' and c0='1' else</p><p> hdata(7 downto 4)+ldata(7 downto 4)+"0110" when c1='1' and c0='0'</p><p> else hdata(7 downto 4)+ldata(7 do
83、wnto 4)+"0001" when c1='0' and c0='1'</p><p> else hdata(7 downto 4)+ldata(7 downto 4);</p><p> vdata(11 downto 8)<=hdata(11 downto 8)+ldata(11 downto 8)+"011
84、1" when c2='1' and c1='1' else</p><p> hdata(11 downto 8)+ldata(11 downto 8)+"0110" when c2='1' and c1='0'</p><p> else hdata(11 downto 8)+ldata(
85、11 downto 8)+"0001" when c2='0' and c1='1'</p><p> else hdata(11 downto 8)+ldata(11 downto 8);</p><p> b_dataout<=vdata;</p><p> end architecture one
86、;</p><p><b> 其生成項(xiàng)目符號(hào):</b></p><p><b> 圖8</b></p><p> 該模塊時(shí)序仿真圖如下:</p><p><b> 圖9</b></p><p><b> 如圖:</b>&l
87、t;/p><p> B_Datain:輸入, B_Dataout:輸出。</p><p> 將8位數(shù)字量轉(zhuǎn)化為3位BCD碼</p><p> 圖中Datain“11011110”,“1101”對(duì)應(yīng)的電壓值位4.16v,其對(duì)應(yīng)的BCD編碼為“010000010110”,“1110”對(duì)應(yīng)的電壓值為0.28v,其對(duì)應(yīng)的BCD編碼為“000000101000”。低4位相
88、加為“1110”,大于9,加6將其調(diào)整為BCD碼,其值為0100,并且向前有一進(jìn)位。四位相加的結(jié)果為0011,由于低位有進(jìn)位,因此最終結(jié)果為0100,。高四位的結(jié)果為0100.三位合計(jì)值為4.44v,與4.16+0.28的結(jié)果一樣。</p><p> Leddisplay</p><p> 功能:用LED進(jìn)行數(shù)碼顯示。</p><p> library iee
89、e;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_arith.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity leddisplay is</p><p
90、> port(bcdcode:in std_logic_vector(11 downto 0);</p><p> ck:in std_logic;</p><p> led_dp:out std_logic;</p><p> seg:out std_logic_vector(6 downto 0);</p><p> se
91、l:out std_logic_vector(1 downto 0));</p><p> end leddisplay;</p><p> architecture one of leddisplay is</p><p> signal num:std_logic_vector(3 downto 0);</p><p> sign
92、al count:std_logic_vector(1 downto 0);</p><p><b> begin</b></p><p> process(ck)</p><p><b> begin</b></p><p> if ck 'event and ck='1&
93、#39; then count<=count+1;</p><p><b> end if;</b></p><p> end process;</p><p> sel<=count;</p><p> num<=bcdcode(3 downto 0) when count=0 else<
94、;/p><p> bcdcode(7 downto 4) when count=1 else</p><p> bcdcode(11 downto 8) when count=2 else</p><p><b> "0000";</b></p><p> led_dp<='1
95、9; when count=2 else '0';</p><p> seg<="0111111" when num =0 else</p><p> "0000110" when num =1 else</p><p> "1011011" when num =2 else&l
96、t;/p><p> "1001111" when num =3 else</p><p> "1100110" when num =4 else</p><p> "1101101" when num =5 else</p><p> "1111101" wh
97、en num =6 else</p><p> "0000111" when num =7 else</p><p> "1111111" when num =8 else</p><p> "1101111" when num =9 else</p><p> "
98、1110111" when num =10 else</p><p> "1111100" when num =11 else</p><p> "0111001" when num =12 else</p><p> "1011110" when num =13 else</p>
99、;<p> "1111001" when num =14 else</p><p> "1110001" when num =15 else</p><p> "0000000";</p><p><b> end one;</b></p><
100、p><b> 其生成項(xiàng)目符號(hào)為:</b></p><p><b> 圖10</b></p><p> 該模塊時(shí)序仿真圖如下:</p><p><b> 圖11</b></p><p><b> 如圖:</b></p><
101、p> Bcdcode、CK:輸入</p><p> Led_dp、seg、sel:輸出</p><p> 輸出隨輸入發(fā)生相應(yīng)的變化</p><p> 4,Decoder2_to_4_t</p><p> library ieee;</p><p> use ieee.std_logic_1164.al
102、l;</p><p> entity decoder2_to_4_t is</p><p> port(sel:in std_logic_vector(1 downto 0);</p><p> sel00,sel01,sel10,sel11:out std_logic);</p><p> end entity decoder2_t
103、o_4_t;</p><p> architecture dec of decoder2_to_4_t is</p><p><b> begin</b></p><p> process(sel)</p><p><b> begin</b></p><p> c
104、ase sel is</p><p> when"00"=>sel00<='1';sel01<='0';sel10<='0';sel11<='0';</p><p> when"01"=>sel00<='0';sel01<
105、;='1';sel10<='0';sel11<='0';</p><p> when"10"=>sel00<='0';sel01<='0';sel10<='1';sel11<='0';</p><p> when&
106、quot;11"=>sel00<='0';sel01<='0';sel10<='0';sel11<='1';</p><p> when others=>null;</p><p><b> end case;</b></p><p&g
107、t; end process;</p><p> end architecture dec;</p><p><b> 其生成項(xiàng)目符號(hào):</b></p><p><b> 圖12</b></p><p> 該模塊時(shí)序仿真圖如下:</p><p><b>
108、 圖13</b></p><p><b> Sel:輸入</b></p><p> Sel00,Sel01,Sel10Sel11:輸出</p><p> 如圖所示,輸出Sel00,Sel01,Sel10Sel11隨輸入Sel發(fā)生相應(yīng)的變化。</p><p><b> 5,Div</b&
109、gt;</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity div is</p><p> PORT(clk : INst
110、d_logic;</p><p> clk_div: OUT std_logic);</p><p><b> END div;</b></p><p> ARCHITECTURE a OF div IS</p><p> SIGNAL fre_N : integer range 0 to 100000;&l
111、t;/p><p> SIGNAL clk_tmp: std_logic;</p><p><b> BEGIN</b></p><p> clk_div <= clk_tmp;</p><p> process(clk)</p><p><b> begin</b>
112、;</p><p> if rising_edge(clk) then</p><p> if fre_N >= 99999 then</p><p> fre_N <= 0;</p><p> clk_tmp <= not clk_tmp;</p><p><b> else&l
113、t;/b></p><p> fre_N <= fre_N + 1;</p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process;</p><p><b> EN
114、D a;</b></p><p><b> 其生成項(xiàng)目為:</b></p><p><b> 圖14</b></p><p> 該模塊時(shí)序仿真圖如下:</p><p><b> 圖15</b></p><p><b> C
115、LK:輸入</b></p><p> CLK_DIV:輸出</p><p> 將CLK進(jìn)行時(shí)鐘分頻如圖所示。</p><p><b> 6,Div1</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all
116、;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity div1 is</p><p> PORT(clk : INstd_logic;</p><p> clk_div: OUT std_logic);</p><p><b>
117、 END div1;</b></p><p> ARCHITECTURE a OF div1 IS</p><p> SIGNAL fre_N : integer range 0 to 20000000;</p><p> SIGNAL clk_tmp: std_logic;</p><p><b> BEGIN
118、</b></p><p> clk_div <= clk_tmp;</p><p> process(clk)</p><p><b> begin</b></p><p> if rising_edge(clk) then</p><p> if fre_N >
119、= 19999999 then</p><p> fre_N <= 0;</p><p> clk_tmp <= not clk_tmp;</p><p><b> else</b></p><p> fre_N <= fre_N + 1;</p><p><b&g
120、t; end if;</b></p><p><b> end if;</b></p><p> end process;</p><p><b> END a;</b></p><p><b> 其生成項(xiàng)目為:</b></p><p&
121、gt;<b> 圖16</b></p><p> 該模塊時(shí)序仿真圖如下:</p><p><b> 圖17</b></p><p><b> CLK:輸入</b></p><p> CLK_DIV:輸出</p><p> 將輸入信號(hào)CLK進(jìn)行
122、時(shí)鐘分頻如圖所示。</p><p><b> 總體設(shè)計(jì)電路圖</b></p><p><b> 管腳分配: </b></p><p><b> 圖18</b></p><p><b> 硬件連接及測(cè)試:</b></p><p&g
123、t; 創(chuàng)建完模塊后,再新建一個(gè)頂層.bdf文件,在新的窗口單擊按鈕 ,可以看到library庫里多了六個(gè)元件(如電路圖所示):</p><p><b> 圖19</b></p><p><b> 圖20</b></p><p> 如圖所示,圖中共有6個(gè)模塊,分別是:</p><p> AD
124、,Dataprocess,Leddisplay,Decoder_2_to_4_t,Div,Div1</p><p> 再按以下步驟進(jìn)行硬件測(cè)試</p><p><b> A,VGA接口連接</b></p><p> B,用連線將電路板上接口正確連接</p><p> C,在選對(duì)設(shè)備和文件之后,將實(shí)驗(yàn)箱和顯示器電源
125、打開,執(zhí)行下載命令,把程序下載到FPGA器件中。扭動(dòng)ADC0809模塊的變阻器,就可以在對(duì)應(yīng)數(shù)碼管上看 到顯示值的變化,變化比較連續(xù)、平滑,總體效果比較不錯(cuò),設(shè)計(jì)成功。</p><p><b> 七、總結(jié)</b></p><p><b> 心得:</b></p><p> 經(jīng)過兩周的課程設(shè)計(jì),在老師的輔導(dǎo)下,查閱了相
126、關(guān)資料,寫出了與課題有關(guān)的文獻(xiàn)綜述,翻譯了英文資料。對(duì)課題內(nèi)容有了更深一步的了解。在VHDL硬件描述語言下,設(shè)計(jì)了該數(shù)字式電壓表。并進(jìn)行了硬件設(shè)計(jì),以及在Quartus編譯平臺(tái)上仿真得出結(jié)果,驗(yàn)證了系統(tǒng)的可行性。由測(cè)試結(jié)果,可看出該儀表測(cè)量范圍較寬,測(cè)量精度較高,能夠滿足物理實(shí)驗(yàn)中電量的測(cè)量要求。經(jīng)實(shí)際使用證明,系統(tǒng)運(yùn)行穩(wěn)定、操作方便。 </p><p> 通過對(duì)課題的研究,加深了我對(duì)數(shù)字電壓表一般設(shè)計(jì)原理的理
127、解,同時(shí)也讓我初步了解了從算法到系統(tǒng)設(shè)計(jì)的整個(gè)過程。在課題研究的過程中,我總結(jié)出在進(jìn)行系統(tǒng)設(shè)計(jì)之前應(yīng)該仔細(xì)分析考慮可能遇到的各種問題的細(xì)節(jié)以減少出錯(cuò)的機(jī)率,更要注重在實(shí)踐中總結(jié)經(jīng)驗(yàn)。 </p><p><b> 展望:</b></p><p> 本系統(tǒng)是用FPGA實(shí)現(xiàn)的數(shù)字電壓表。隨著EDA技術(shù)的廣泛應(yīng)用,F(xiàn)PGA已成為現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)的主要手段,在QUARTU
128、S II環(huán)境下采用VHDL語言實(shí)現(xiàn)了數(shù)據(jù)采集、轉(zhuǎn)換及顯示。 </p><p> 數(shù)字電壓表是大學(xué)物理教學(xué)和實(shí)驗(yàn)中的重要儀表,其數(shù)字化是指將連續(xù)的模擬電壓量轉(zhuǎn)換成不連續(xù)、離散的數(shù)字量并加以顯示。傳統(tǒng)的實(shí)驗(yàn)用模擬電壓表功能單一、精度低、體積大,且存在讀數(shù)時(shí)的視差,長(zhǎng)時(shí)間連續(xù)使用易引起視覺疲勞,使用中存在諸多不便。而目前數(shù)字萬用表的內(nèi)部核心多是模/數(shù)轉(zhuǎn)換器,其精度很大程度上限制了整個(gè)表的準(zhǔn)確度,可靠性較差。本文采用性
129、能優(yōu)越的8位A/D轉(zhuǎn)換器對(duì)模擬電壓采樣,以一片高性能FPGA芯片為控制核心,分別在軟件和硬件上實(shí)現(xiàn)了諸多功能,對(duì)電壓信號(hào)的轉(zhuǎn)換結(jié)果進(jìn)行準(zhǔn)確實(shí)時(shí)的運(yùn)算處理并送出顯示。 </p><p> 采用現(xiàn)場(chǎng)可編程門陣列即FPGA為系統(tǒng)核心,是當(dāng)今電子產(chǎn)品設(shè)計(jì)的熱門發(fā)展方向。系統(tǒng)最大限度地將所有器件集成在FPGA芯片上。體積大大減小、降低了功耗、集成度高,可靠性高,較好地實(shí)現(xiàn)了電壓的精準(zhǔn)測(cè)量。而且邏輯單元控制靈活、適用范圍極
溫馨提示
- 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. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字電壓表課程設(shè)計(jì)--簡(jiǎn)易數(shù)字電壓表的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)數(shù)字電壓表
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)
- 數(shù)字電壓表設(shè)計(jì)-課程設(shè)計(jì)
- 課程設(shè)計(jì)---數(shù)字電壓表設(shè)計(jì)
- 數(shù)字電壓表設(shè)計(jì)課程設(shè)計(jì)
- 數(shù)字電壓表設(shè)計(jì)-課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)數(shù)字電壓表6
- 數(shù)字電壓表的課程設(shè)計(jì)
- eda數(shù)字電壓表設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)----數(shù)字電壓表的設(shè)計(jì)
- 簡(jiǎn)易數(shù)字電壓表課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論