版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 波形發(fā)生器、頻率計(jì)和數(shù)字電壓表設(shè)計(jì)電氣091 王亞運(yùn)摘要: 本系統(tǒng)以fpga為核心,將波形發(fā)生器、頻率計(jì)和數(shù)字電壓表有機(jī)結(jié)合在一起。fpga具有豐富的資源,使用方便靈活,且易于進(jìn)行功能擴(kuò)展,完全可以滿足設(shè)計(jì)的要求。主要模塊有波形生成模塊、頻率設(shè)置模塊、數(shù)模轉(zhuǎn)換模塊、顯示模塊和濾波網(wǎng)絡(luò)。其中fpga用來(lái)實(shí)現(xiàn)波形表生成和頻率控制;正弦波的數(shù)模轉(zhuǎn)換由dac8032實(shí)現(xiàn);整形采用三極管s9018來(lái)實(shí)現(xiàn);并通過(guò)低通濾波器提高輸出波形的質(zhì)量。本設(shè)計(jì)采用雙da來(lái)控制波形的幅度,實(shí)現(xiàn)了幅度連續(xù)可調(diào)。 關(guān)鍵詞:fpga 雙d/a調(diào)幅 數(shù)模轉(zhuǎn)換 目 錄第一章 系統(tǒng)設(shè)計(jì).31.1總體設(shè)計(jì)方案.31.1.1 設(shè)計(jì)要
2、求.3 1.1.2 設(shè)計(jì)思路.3 1.1.3 方案論證與比較.3 1.1.4 系統(tǒng)組成.4第二章 單元電路設(shè)計(jì).42.1 波形合成器的設(shè)計(jì)4 2.1.1 正弦波合成.4 2.1.2 三角波、鋸齒波、矩形波的合成.52.2 頻率與幅度調(diào)節(jié)的原理及實(shí)現(xiàn)52.2.1 頻率等步進(jìn)調(diào)節(jié)的實(shí)現(xiàn).52.2.2 幅度調(diào)節(jié)模塊的設(shè)計(jì).62.3 波形選擇模塊與鍵盤控制模塊設(shè)計(jì)62.4 自動(dòng)換檔模塊設(shè)計(jì)62.5 模數(shù)轉(zhuǎn)換電路設(shè)計(jì)62.6 整形電路設(shè)計(jì).7第三章 軟件設(shè)計(jì).73.1 正弦波合成器設(shè)計(jì).73.1.1 正弦波波形數(shù)據(jù)產(chǎn)生.73.1.2 波形存儲(chǔ)器的設(shè)計(jì).83.2 三角波、矩形波、鋸齒波發(fā)生器及相位累加器.
3、83.3 頻率測(cè)量.83.4 鍵盤控制模塊.93.5 波形選擇模塊.93.6 數(shù)字電壓處理模塊.9第四章 系統(tǒng)測(cè)試.104.1 波形的測(cè)試.104.2 各種波形的測(cè)試數(shù)據(jù).104.2.1 波形發(fā)生器.104.2.2 頻率計(jì).10 4.2.3數(shù)字電壓表.11第五章 結(jié) 論.11參考文獻(xiàn).11附錄.11第一章 系統(tǒng)設(shè)計(jì)1.1 總體方案設(shè)計(jì)1.1.1設(shè)計(jì)要求 利用現(xiàn)成的fpga,在一塊電路板上實(shí)現(xiàn)波形發(fā)生器、數(shù)字頻率計(jì)和數(shù)字電壓表三種功能。而且要求其指標(biāo)越高越好,所產(chǎn)生的波形越清晰越好。頻率、幅度不限。1.1.2 設(shè)計(jì)思路 由于要在一個(gè)電路里面實(shí)現(xiàn)三種功能,因而我們打算分模塊來(lái)設(shè)計(jì)。即分別考慮實(shí)現(xiàn)波
4、形發(fā)生器、數(shù)字電壓表和數(shù)字頻率計(jì)。然后再將它們有機(jī)的結(jié)合起來(lái),在一個(gè)電路里面實(shí)現(xiàn)。這樣設(shè)計(jì)起來(lái)比較容易,也比較好考慮。同時(shí)增加了液晶顯示,顯示是什么波形、波形的頻率和電壓幅度,從而實(shí)現(xiàn)很好的人機(jī)界面。 1.1.3 方案論證與比較 1. 波形發(fā)生器設(shè)計(jì)方案方案一:采用模擬直接合成法,轉(zhuǎn)換速度快,頻率分辨力高,但電路復(fù)雜,難以集成,發(fā)展受到一定限制.方案二:采用鎖相環(huán)合成法,輸出信號(hào)頻率可達(dá)到超高頻甚至微波段,且輸出信號(hào)頻譜純度較高,但轉(zhuǎn)換要幾毫秒的時(shí)間,速度慢.方案三:采用直接數(shù)字合成器(dds),可用硬件或軟件實(shí)現(xiàn)。即用累加器按頻率要求對(duì)相應(yīng)的相位增量進(jìn)行累加,再以累加相位值作為地址碼,取存放
5、于rom中的波形數(shù)據(jù),經(jīng)d/a轉(zhuǎn)換、濾波即得所需波形。方法簡(jiǎn)單,頻率穩(wěn)定度高,易于程控。 分析以上三種方案的優(yōu)缺點(diǎn),顯然第三種方案具有更大的優(yōu)越性、靈活性,所以采用第三種方案進(jìn)行設(shè)計(jì)。 2. 波形數(shù)據(jù)的產(chǎn)生方案一:使用visual c+計(jì)算正弦波及指定函數(shù)波的n點(diǎn)采樣值,然后寫入到rom中待用。方案二:使用matlab計(jì)算上述數(shù)據(jù)。兩種方案都是利用軟件計(jì)算波形參數(shù)的較佳方案。vc+對(duì)計(jì)算值的舍入是直接取整,因此方案一得到的數(shù)據(jù)有較大誤差,而且該方案編程復(fù)雜。matlab能對(duì)數(shù)據(jù)進(jìn)行四舍五入,因此方案二得到的數(shù)據(jù)誤差較小,且編程簡(jiǎn)單,修改容易,調(diào)用方便。因此采用方案二。3. 頻率調(diào)節(jié)方案一:通過(guò)
6、預(yù)置fpga的分頻系數(shù)調(diào)節(jié)頻率。方案二:通過(guò)預(yù)置fpga的分頻系數(shù)以及改變相位步進(jìn)調(diào)節(jié)頻率。方案一的調(diào)節(jié)步進(jìn)只能以指數(shù)形式遞增,對(duì)于較高的頻率范圍有較多空白,無(wú)法等步進(jìn)調(diào)頻;方案二采用粗調(diào)與細(xì)調(diào)相結(jié)合,可以實(shí)現(xiàn)等步進(jìn)調(diào)頻,因此選用方案二。4. 幅度調(diào)節(jié)方案一:采用可調(diào)電阻對(duì)電壓分流。該方案簡(jiǎn)單,由于其可調(diào)電阻不可能太低,因此導(dǎo)致電壓精度不高,且電壓變化范圍較大,安全性比較低。方案二:幅度控制部分采用雙d/a技術(shù),由控制模塊對(duì)dac0832置數(shù),第一級(jí)d/a的輸出作為第二級(jí)d/a轉(zhuǎn)換的參考電壓,以此來(lái)控制信號(hào)發(fā)生器的輸出電壓。該方案結(jié)構(gòu)簡(jiǎn)單,易于調(diào)整?;谏鲜隼碚摲治?,擬訂方案二。 5. 整形電
7、路 方案一:采用專門的整形網(wǎng)絡(luò)整形。該方案得出的波形比較好,頻率也比較高。但電路連接比較麻煩,在此處不適宜。 方案二:采用三極管來(lái)實(shí)現(xiàn)。利用三極管的導(dǎo)通特性,將輸入的波形變?yōu)榉讲?,以便進(jìn)行頻率的測(cè)量。此方法比較簡(jiǎn)單,而且經(jīng)過(guò)實(shí)踐證明在一定的頻率范圍內(nèi)確實(shí)可得到很好的波形。 綜上,擬訂方案二采用三極管實(shí)現(xiàn)整形。 6. 顯示方式選擇方案一:采用led數(shù)碼管顯示。該方案只能顯示有限的符號(hào)和數(shù)碼字,而且功耗大。而本設(shè)計(jì)中要求顯示的內(nèi)容豐富,不適應(yīng)利用該方法。方案二:采用字符型lcd顯示。可以顯示英文及數(shù)字,質(zhì)量輕,耗電小,顯示內(nèi)容多。綜上,擬定方案二采用lcd實(shí)時(shí)顯示載頻頻率。 7. 換檔方式選擇 方
8、案一:采用手工換檔。在需要測(cè)某個(gè)電壓時(shí),選擇適宜的檔位進(jìn)行測(cè)量。此方案使用起來(lái)比較麻煩。 方案二:采用自動(dòng)換檔。利用電阻所分得的電壓與輸入電壓進(jìn)行比較,產(chǎn)生控制信號(hào)實(shí)現(xiàn)自動(dòng)換檔。該方案不需要手動(dòng),較為智能化。 基于上述理論分析,顯然方案二更好。因此采用方案二。 1.1.4 綜上方案論證,得到系統(tǒng)框圖如圖1.1所示。 圖1.1 系統(tǒng)組成框圖 第二章 單元電路設(shè)計(jì)2.1 波形合成器的設(shè)計(jì)2.1.1 正弦波合成對(duì)一個(gè)幅度為1的正弦波的一個(gè)周期進(jìn)行1024點(diǎn)采樣,用matlab計(jì)算得到每一點(diǎn)對(duì)應(yīng)的幅度值,然后量化成8位二進(jìn)制數(shù)據(jù)存放在rom中,理論上,采樣的點(diǎn)數(shù)及量化的位數(shù)越多,合成的波形精確度越高,
9、但是,d/ac0832的位數(shù)只有8位,量化等級(jí)最高為256,其量化誤差已能達(dá)到要求,對(duì)于查正弦表的舍入誤差也可忽略,故不再細(xì)分。這里采用1024個(gè)采樣點(diǎn),是為了調(diào)頻時(shí)能得到較好的波形。依次取出rom中的數(shù)據(jù),即可得到幅度上是階梯型的正弦波。再經(jīng)過(guò)d/a轉(zhuǎn)換,便可得到連續(xù)的正弦波。2.1.2 三角波、鋸齒波、矩形波的合成由于三角波、鋸齒波、矩形波波形變化是線性,因此不需要進(jìn)行波形存儲(chǔ)。三角波的產(chǎn)生是使幅度逐次增加一個(gè)相位進(jìn),一直到最大值后變?yōu)椴街鸫螠p少一個(gè)相位步進(jìn),如此便產(chǎn)生一個(gè)周期的波形,鋸齒波與三角波類似,只是到達(dá)最大值后又從0開(kāi)始。矩形波的產(chǎn)生更為簡(jiǎn)單,只需根據(jù)占空比,調(diào)節(jié)一個(gè)周期內(nèi)輸出高
10、、低電平的時(shí)間即可。2.2 頻率與幅度調(diào)節(jié)的原理及實(shí)現(xiàn)2.2.1 頻率等步進(jìn)調(diào)節(jié)的實(shí)現(xiàn)由于采用ddfs,在rom中存有波形一個(gè)周期的n個(gè)等間隔歸一化采樣數(shù)據(jù),改變相位累加器的步進(jìn),從而改變對(duì)rom中數(shù)據(jù)的讀取速度,即可合成不同頻率的波形,存儲(chǔ)器中存入過(guò)量的采樣值,使得采樣點(diǎn)數(shù)較少時(shí),依然能夠得到較好的波形輸出,從而得到較高的頻率輸出。否則,采樣點(diǎn)數(shù)太少會(huì)使產(chǎn)生的波形嚴(yán)重失真。輸出波形的頻率可由式(2-1)計(jì)算: 式(2-1)其中,fosc為晶振頻率,k為分頻系數(shù),n為相位累加器位數(shù),s為相位累加器步長(zhǎng)。若取fosc32.768mhz,k=50,n16,帶入上式得到f010s(hz)。因此,只要
11、控制s的值就可以準(zhǔn)確地實(shí)現(xiàn)頻率步進(jìn)為10hz的等步進(jìn)調(diào)頻。但是,現(xiàn)有的晶振為32mhz,通過(guò)實(shí)驗(yàn)測(cè)試、比較,可用下式計(jì)算頻率: 式(2-2)也能得到10hz精確的等步進(jìn)調(diào)節(jié),但犧牲了波形的質(zhì)量,因?yàn)?5306不是一個(gè)2n的數(shù),這樣波形會(huì)漏掉少量采樣點(diǎn)。不過(guò),即使這樣,得到的波形依然很平滑,可以滿足設(shè)計(jì)要求。若要使頻率調(diào)節(jié)步進(jìn)減小到1hz,對(duì)晶振有特殊要求,它的振蕩頻率必須是2的n次冪。由式(2-1)舉例說(shuō)明累加器位數(shù)不同產(chǎn)生的差異: 式(2-3) 式(2-4)式(2-4)產(chǎn)生的波形將遠(yuǎn)遠(yuǎn)優(yōu)于式(2-3),更優(yōu)于我們現(xiàn)在所得到的波形,最高頻率可提高幾倍。另外,由于dac0832的電流建立時(shí)間是1
12、s,因此輸出波形的最高頻率由下式?jīng)Q定:因此,要得到更高頻率的波形需使用更高速的d/a轉(zhuǎn)換器。2.2.2 幅度調(diào)節(jié)模塊的設(shè)計(jì)在幅度控制上,采用了雙d/a轉(zhuǎn)換來(lái)實(shí)現(xiàn)幅度調(diào)節(jié),第一級(jí)的d/a的電壓輸出作為第圖2.1 雙da調(diào)節(jié)二級(jí)d/a轉(zhuǎn)換的參考電壓,其中第一級(jí)的輸出電壓值可由鍵盤設(shè)置,以此來(lái)控制信號(hào)的輸出電壓。d/a轉(zhuǎn)換器的電流建立時(shí)間將直接影響到輸出的最高頻率。本系統(tǒng)采用的是dac0832,電流建立時(shí)間為1s,在最高頻率點(diǎn),一個(gè)周期輸出64點(diǎn),因此極限頻率大約是10.32khz,本系統(tǒng)的設(shè)計(jì)為10.32khz。由于幅度控制用8位d/a控制,最高峰-峰值為10v,因此幅度分辨率為1v。實(shí)際電路圖如
13、圖所示。如圖,幅度數(shù)據(jù)由i/o200-207腳輸入第一級(jí)dac0832并轉(zhuǎn)換成電壓信號(hào),由它作為第二級(jí)dac0832的參考電壓,幅度比例系數(shù)由i/o176-188腳輸入。2.3 波形選擇模塊與鍵盤控制模塊設(shè)計(jì)波形選擇用于按鍵選擇輸出的波形類型,采用一個(gè)按鍵,每按一次變換一種波形,選到最后一個(gè)之后又重頭開(kāi)始。鍵盤控制模塊連接相位步進(jìn)累加器和波形選擇模塊,是完成波形選擇與調(diào)頻的人機(jī)界面。使用有限狀態(tài)機(jī)設(shè)計(jì),可以減少大量的按鍵,操作簡(jiǎn)單。2.4 自動(dòng)換檔模塊設(shè)計(jì) 用電阻所分得的電壓與輸入電壓進(jìn)行比較,產(chǎn)生控制信號(hào)實(shí)現(xiàn)其自動(dòng)換檔。此種方法比較智能化,不需要人為的去選擇檔位。但此種方法的設(shè)計(jì)還有待改進(jìn),
14、在實(shí)際的設(shè)計(jì)中還不能很好的實(shí)現(xiàn)。2.5 模數(shù)轉(zhuǎn)換電路設(shè)計(jì) 為了能很好的測(cè)量波形的幅度,將各種波形送入ad0809進(jìn)行模數(shù)轉(zhuǎn)換,得到相應(yīng)的數(shù)字代碼,然后送入fpga處理,并顯示出來(lái)。方框圖如下:波形輸入ad轉(zhuǎn)換fpga處理lcd顯示 圖2.2 模數(shù)轉(zhuǎn)換 2.6 整形電路 為了能很好的測(cè)出各種波形的頻率,在進(jìn)入fpga以前必須經(jīng)過(guò)整形電路整形。本電路采用三極管來(lái)完成。利用三極管導(dǎo)通前后的特性,即導(dǎo)通前集電極輸出為高電平,而導(dǎo)通后集電極的輸出只比發(fā)射極高一點(diǎn),是低電平。以此使輸入波形只有達(dá)到某個(gè)電壓時(shí)才導(dǎo)通,導(dǎo)通后輸出即為低電平。這樣就將輸入波形變成了方波。再將方波送入fpga進(jìn)行處理。但這種方法也
15、有一定的缺陷,那就是波形的頻率受到三極管的頻帶限制,不能實(shí)現(xiàn)高頻的整形。具體電路如下: 圖2.3 整形電路第三章 軟件設(shè)計(jì)3.1正弦波合成器設(shè)計(jì)3.1.1 正弦波波形數(shù)據(jù)產(chǎn)生利用matlab6.5計(jì)算波形數(shù)據(jù),程序及結(jié)果如下: step=2*pi/1023; x=0:step:2*pi; y=127.5*sin(x)+127.5; z=round(y)z = columns 1 through 10 128 128 129 130 131 131 132 133 134 135 columns 11 through 20 135 136 137 138 138 139 140 141 142
16、142 columns 1021 through 1024 125 126 127 1273.1.2 波形存儲(chǔ)器的設(shè)計(jì)使用開(kāi)發(fā)軟件為xilinx ise 4.2,編程語(yǔ)言為vhdl,仿真工具為modelsim xilinx edition 5.3d xe,程序見(jiàn)附錄。3.2 三角波、矩形波、鋸齒波發(fā)生器及相位累加器三角波、矩形波、鋸齒波發(fā)生器及相位累加器集成于同一個(gè)模塊中,程序流程圖如圖3.1所示。程序見(jiàn)附錄。圖3.1 三角波、矩形波、鋸齒波發(fā)生器及相位累加器程序流程3.3 頻率測(cè)量一共采用八位計(jì)數(shù),理論上可計(jì)50mhz以內(nèi)的所有頻率。根據(jù)某一位(最低位除外)與其前一位(即判斷是否有溢出顯示位
17、)的數(shù)值,來(lái)選擇適當(dāng)?shù)臋n位,再對(duì)頻率值進(jìn)行測(cè)量。實(shí)際結(jié)果即為在顯示器上顯示被測(cè)結(jié)果乘以其適當(dāng)檔位。程序流圖如圖3.1.1。程序見(jiàn)附錄。 圖3.2 頻率測(cè)量流程圖3.4 鍵盤控制模塊程序見(jiàn)附錄。3.5 波形選擇模塊程序見(jiàn)附錄。3.6 數(shù)字電壓處理模塊 數(shù)字電壓處理的模塊圖如圖3.3所示。利用了adc0908的四個(gè)通道。一個(gè)處理0-5v,一個(gè)處理5-10v,一個(gè)處理10-25v,還有一個(gè)處理25-50v。具體程序見(jiàn)附錄。 圖3.3 數(shù)字電壓處理方框圖第四章 系統(tǒng)測(cè)試4.1 波形的測(cè)試 我們分別測(cè)試了三種波形,來(lái)觀察他們的幅度、頻率以及波形。在自己做的板子上檢測(cè)時(shí),波形出現(xiàn)了晃動(dòng),在一段頻率范圍內(nèi)不
18、能穩(wěn)定。為此一直以為是軟件問(wèn)題,后來(lái)改用學(xué)校的那塊fpga板子引出接口進(jìn)行測(cè)量,發(fā)現(xiàn)軟件沒(méi)什么問(wèn)題,波形比較穩(wěn)定,頻率測(cè)量也很準(zhǔn)。但檢查自己電路時(shí)并沒(méi)發(fā)現(xiàn)什么錯(cuò)誤,鎖腳也沒(méi)什么錯(cuò),可能是板子的某個(gè)引腳出了問(wèn)題。但系統(tǒng)總體來(lái)說(shuō)還是達(dá)到設(shè)計(jì)的要求的,在學(xué)校的那塊板子上實(shí)現(xiàn)的更好。4.2 各種波形的測(cè)試數(shù)據(jù) 由于測(cè)試數(shù)據(jù)太多,在此只列出其中一部分。 誤差公式: 其中f0 為理論值,f1為實(shí)測(cè)值。4.2.1 波形發(fā)生器 表1理論值(hz)實(shí)測(cè)值(hz)誤差()理論值(hz)實(shí)測(cè)值(hz)誤差()1010.000.0000800798.860.001432020.010.00051000998.250.
19、001753030.010.000320001996.560.001724040.000.000050004984.120.003185050.010.000280007975.560.00305510099.980.000290008970.670.003259200199.890.00061023010189.580.003951500499.570.0086表4.1 正弦波理論值與實(shí)測(cè)值比較 4.2.2 頻率計(jì) 表2理論值(hz)實(shí)測(cè)值(hz)誤差()理論值(hz)實(shí)測(cè)值(hz)誤差()11.120.1200800799.340.008252020.040.00201000998.570
20、.001433030.080.001220001997.140.001434040.060.001550004985.240.0029525050.020.000480007975.030.00312110099.980.00021mhz999904.690.000095200199.890.00063mhz299842.470.000052500499.570.00094.2.3 數(shù)字電壓表 數(shù)字電壓表可測(cè)正也可測(cè)負(fù)。在具體實(shí)現(xiàn)時(shí)將負(fù)電壓轉(zhuǎn)換為正電壓進(jìn)行測(cè)量。在此只列出了正電壓的值。理論值可達(dá)到50v,但為了安全,只測(cè)到25v。由于測(cè)量時(shí)我們?cè)O(shè)置的位數(shù)比電源輸入的位數(shù)高許多,在此只取了三位,
21、因而誤差并不是很準(zhǔn)確。 表3理論值(v)實(shí)測(cè)值(v)誤差()理論值(v)實(shí)測(cè)值(v)誤差()0.00.0000.00002.02.0040.00205.05.0120.00248.08.0210.002610.010.0140.001415.014.920.005320.019.890.005525.024.570.0172第五章 結(jié)論本系統(tǒng)以fpga芯片為核心部件,將ddfs技術(shù)與fpga相結(jié)合,實(shí)現(xiàn)了各種波形的產(chǎn)生,且波形平滑,無(wú)毛刺,質(zhì)量較高,采用matlab計(jì)算波形數(shù)據(jù),更符合工程要求。且波形的幅度實(shí)現(xiàn)了在一定范圍類連續(xù)可調(diào)。穩(wěn)定度和精準(zhǔn)度在一定范圍內(nèi)達(dá)到要求。而且頻率測(cè)量和數(shù)字電壓測(cè)
22、量都很準(zhǔn),誤差很低。人機(jī)界面經(jīng)過(guò)精簡(jiǎn),按鍵少且操作方便。而且為了能有效的實(shí)現(xiàn)三種功能,我們自己設(shè)計(jì)了一些連接電路,但這些電路有些還不夠完善,在測(cè)試中還達(dá)不到要求,有待進(jìn)一步改進(jìn)(如自動(dòng)換檔)。參考文獻(xiàn):1. 黃正謹(jǐn),徐堅(jiān),章小麗等.cpld系統(tǒng)設(shè)計(jì)技術(shù)入門與應(yīng)用【m】. 北京:電子工業(yè)出版社.2002。2. 潘松,黃繼業(yè).eda 技術(shù)實(shí)用教程【m】.北京:科學(xué)出版社.2002。3. 趙俊超等.集成電路設(shè)計(jì)vhdl教程.【m】.北京.北京希望電子出版社.2002。4. 周俊峰 陳 濤. 基于fpga的直接數(shù)字頻率合成器的設(shè)計(jì)和實(shí)現(xiàn).2003年5. 高書莉、羅朝霞. 可編程邏輯設(shè)計(jì)技術(shù)及應(yīng)用m.北
23、京:人民郵電出版社,2001年(第一版)。6. 閻石.數(shù)字電子技術(shù)基礎(chǔ)m.北京:高等教育出版社,2002年(第四版)。7. 胡恩蔚、高信令、蔡明政.標(biāo)準(zhǔn)集成電路數(shù)據(jù)手冊(cè)接口電路【m】北京:電子工業(yè)出版社。1994年第1版 8-90。附錄:1. 數(shù)字電壓表-頂層程序 -文件名:topp.vhd-library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;- uncomment the following lines to use the declarat
24、ions that are- provided for instantiating xilinx primitive components.-library unisim;-use unisim.vcomponents.all;entity topp is port (clk,reset,eoc:in std_logic; d:in std_logic_vector(7 downto 0); lock1,start,oe,ale:out std_logic; access1:out std_logic_vector(2 downto 0); lcdda : out std_logic; lcd
25、rw : out std_logic; lcden : out std_logic; data : inout std_logic_vector(7 downto 0) );end topp;architecture behavioral of topp iscomponent lcd isgeneric(n:integer:=5000; delay:integer:=100); port ( clk,reset: in std_logic; d1,d2,d3,d4,d5,d6: in std_logic_vector(3 downto 0); lcdda : out std_logic; l
26、cdrw : out std_logic; lcden : out std_logic; data : inout std_logic_vector(7 downto 0) );end component;component ad is port (clk,eoc,reset:in std_logic; - clk50mhz是外部32mhz時(shí)鐘信號(hào) d:in std_logic_vector(7 downto 0); -adc0809的8位轉(zhuǎn)換數(shù)據(jù)輸出 lock1,start,oe,ale:out std_logic;access1:out std_logic_vector(2 downto
27、0); -輸出到adc0809的控制信號(hào) dd1,dd2,dd3,dd4,dd5,dd6: out std_logic_vector(3 downto 0); -最終輸出信號(hào)end component;signal data1,data2,data3,data4,data5,data6: std_logic_vector(3 downto 0);beginu1:ad port map(clk=clk,reset=reset,eoc=eoc,d=d,lock1=lock1,start=start,oe=oe,ale=ale,access1=access1, dd1=data1,dd2=data2
28、,dd3=data3,dd4=data4,dd5=data5,dd6=data6);u2:lcd port map(reset=reset,clk=clk,d1=data1,d2=data2,d3=data3,d4=data4,d5=data5,d6=data6,data=data,lcdda=lcdda,lcdrw=lcdrw,lcden=lcden);end behavioral;-adc0809驅(qū)動(dòng)-library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsign
29、ed.all;entity ad is port (clk,reset,eoc:in std_logic; - clk50mhz是外部32mhz時(shí)鐘信號(hào) d:in std_logic_vector(7 downto 0); -adc0809的8位轉(zhuǎn)換數(shù)據(jù)輸出 lock1,start,oe,ale:out std_logic;access1:out std_logic_vector(2 downto 0);-輸出到adc0809的控制信號(hào) dd1,dd2,dd3,dd4,dd5,dd6: out std_logic_vector(3 downto 0);-最終輸出信號(hào)end ad;archite
30、cture behavioral of ad issignal lock: std_logic;signal qq:std_logic_vector(7 downto 0);type state is (st0,st1,st2,st3);signal current_state1:state;type states is (st0,st1,st2,st3,st4,st5,st6); -定義7個(gè)狀態(tài)子類型signal state1,state2:states:=st0; -初始化statessignal reg:std_logic_vector(7 downto 0);signal clk10k
31、: std_logic;signal access2: std_logic_vector(2 downto 0);signal reg2,reg1,regg,reg3: integer range 255 downto 0;signal oe1:std_logic;type states1 is (st0,st1);signal states2:states1:=st0;begin process(clk,reset) -fen pin 5kvariable cnt: integer range 2500 downto 0;begin if reset=0 then cnt:=0;clk10k
32、=2500 then clk10k=1;cnt:=0; else clk10kstate2=st1; ale=0; start=0; oe=0; oe1state2=st2; ale=1; start=0; oestate2=st3; ale=0; start=1; oe ale=0; start=0; oe=0; if eoc=1 then state2=st3; -測(cè)試eoc的下降沿 else state2 ale=0; start=0; oe=0; -測(cè)試eoc的上升沿,=1表明轉(zhuǎn)換結(jié)束 if eoc=0 then state2=st4; -繼續(xù)等待 else state2state2=
33、st6; ale=0; start=0; oestate2=st0; ale=0; start=0; oe=1; reg=d;oe1state2=st0; ale=0; start=0; oe=0; end case;end process;process(clk,lock)begin if clkevent and clk=1 then qq=qq+1; if qq=01111111 then lock=1;state1=state2;- 01111111 elsif qq01111111 then lock=0; end if; end if; end process;-pro2:proc
34、ess(clk10k,reset,access2) -begin - if reset=0 then-access2 if regg=reg3 then- states2=st0;- else states2 access2states2 if regg=127 then access2=010;else reg2=regg;end if;- reg3if regg=102 then access2=001;else reg2=regg;end if;- reg3 if regg=127 then access2=000; else reg2=regg; end if;-reg3=regg;- reg2=regg;-reg3 -when others =null; -end case; - end if;- access1=access2;-end process; lock1=lock; reg2=conv_integer(reg); -十進(jìn)制bcd碼轉(zhuǎn)換;process(clk10k) variable reg1 : intege
溫馨提示
- 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ù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 貴州省事業(yè)單位聘用合同制試行辦法
- 合肥 采購(gòu)合同范本
- 大班數(shù)學(xué)課件《門牌號(hào)碼》
- 2024聘用兼職老師合同書范文
- 山東省東營(yíng)市利津縣2024-2025學(xué)年八年級(jí)上學(xué)期11月期中化學(xué)試題
- m材料力學(xué)第11章 能量法
- 2024劇本版權(quán)制作及發(fā)行權(quán)購(gòu)買合同參考范本
- 2024合同違約起訴狀范本
- 專題01 標(biāo)題的作用及含義-2022-2023學(xué)年小升初語(yǔ)文記敘文知識(shí)點(diǎn)銜接(部編版)
- 幼兒園防詐安全教育
- 《多彩的職業(yè)》參考課件
- 《綠色制造技術(shù)》課件
- 醫(yī)用放射儀器的工作原理
- 抖音傳媒管理制度
- 家畜繁殖學(xué)課件
- 浙江森馬服飾股份有限公司營(yíng)運(yùn)能力分析及提升策略研究
- 《數(shù)字化測(cè)圖》教學(xué)教案
- 圖像數(shù)據(jù)預(yù)處理詳述
- 室顫的搶救與護(hù)理課件
- 人教版 九年級(jí)化學(xué)上冊(cè) 第六單元 碳和碳的氧化物 課題2 二氧化碳的制取研究 說(shuō)課稿
- 2023人民音樂(lè)出版社招聘7人筆試參考題庫(kù)(共500題)答案詳解版
評(píng)論
0/150
提交評(píng)論