版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 基于fpga的程控穩(wěn)壓電源設(shè)計 學(xué)院名稱: 專 業(yè): 班 級: 姓 名: 指導(dǎo)教師姓名: 指導(dǎo)教師職稱: 2012年 6 月 江蘇技術(shù)師范學(xué)院畢業(yè)設(shè)計說明書(論文)基于fpga的程控穩(wěn)壓電源設(shè)計摘 要:直流穩(wěn)壓源是一種常見的電子儀器,其廣泛應(yīng)用于實驗教學(xué)和科學(xué)研究等領(lǐng)域。本設(shè)計提出了一個基于fpga的程控穩(wěn)壓電源的方案。通過按鍵向fpga輸入信號,fpga得到“十位”和“各位”計數(shù)脈沖信號,通過計數(shù)器模塊計數(shù),內(nèi)部計數(shù)器的信號一路送給外部顯示電路來顯示當(dāng)前的電壓值,另一路經(jīng)過d/a轉(zhuǎn)換器(dac0832)輸出模擬量,再經(jīng)過運算放大器隔離放大,控制輸出功率管的基極,隨著功率管基極電壓的變化而輸
2、出不同的電壓,同時實現(xiàn)雙路輸出。實際測試結(jié)果表明,本系統(tǒng)具有易調(diào)節(jié),高可靠性,操作方便,電壓穩(wěn)定度高,其輸出電壓采用了數(shù)字顯示的特點。關(guān)鍵詞:直流穩(wěn)壓電源;程控電源;fpga;vhdlithe program-controlled power supply design based on fpgaabstract:dc source is a kind of common electronic instrument, it is widely applied in the experimental teaching and scientific research. this project i
3、s to design a fpga based programmable power supply. the key to the system through the fpga input signal, fpga is" ten" and" you" counting pulse signal, the counter module count, internal counter signal path to an external display circuit to display the current voltage value, via
4、a d/a converter ( dac0832) output analog quantity, then pass through an operational amplifier isolation amplifier, to control the output power pipe base, with the power transistor base-emitter voltage change and different voltage output, while achieving dual output. the actual test results show that
5、, the system has easy adjustment, high reliability, convenient operation, high voltage stability, the output voltage by the digital display characteristics.keywords: dc power supply;programmable power supply; fpga; vhdl目 錄前言1第1章 程控直流穩(wěn)壓電源設(shè)計原理21.1直流穩(wěn)壓電源基本原理21.2程控電源的基本原理41.3基于fpga的電源的基本原理6第2章 硬件電路設(shè)計72.
6、1按鍵電路72.2顯示電路72.3 dac0832轉(zhuǎn)換電路82.4 fpga電路92.4.1供電電源部分92.4.2 i/o電壓、內(nèi)核電壓供電連接部分92.4.3 時鐘信號部分102.4.4 ep2c5t144芯片部分102.4.5 配置芯片部分11第3章 系統(tǒng)軟件設(shè)計123.1系統(tǒng)軟件整體設(shè)計123.2軟件模塊設(shè)計123.2.1分頻器模塊設(shè)計123.2.2鍵盤輸入模塊設(shè)計153.2.3 100進(jìn)制計數(shù)器模塊設(shè)計173.2.4 數(shù)據(jù)選擇器模塊設(shè)計193.3.5位碼選擇器模塊設(shè)計203.2.6驅(qū)動共陰極數(shù)碼管七段譯碼器模塊設(shè)計213.2.6二-十進(jìn)制譯碼器模塊設(shè)計223.2.7層次化設(shè)計23第4
7、章 系統(tǒng)運行與調(diào)試274.1系統(tǒng)運行過程274.2測試結(jié)果30結(jié)束語33參考文獻(xiàn)34致 謝36附錄1 硬件實物圖37附錄2 硬件電路圖38附錄3 元器件清單40附錄4 程序代碼41江蘇技術(shù)師范學(xué)院畢業(yè)說明書(論文)前言電源技術(shù)尤其是數(shù)控電源技術(shù)是一門實踐性很強(qiáng)的工程技術(shù),被廣泛的應(yīng)用于電子產(chǎn)品生產(chǎn)線、實驗室、工業(yè)控制和信息通訊等領(lǐng)域。當(dāng)今電源技術(shù)融合了電氣、電子、系統(tǒng)集成、控制理論、材料等諸多學(xué)科領(lǐng)域。計算機(jī)和通訊技術(shù)發(fā)展而來的現(xiàn)代信息技術(shù)革命,給電源技術(shù)提供了廣闊的發(fā)展前景,同時也給電源提出了更高的要求1。隨著科學(xué)技術(shù)飛速發(fā)展,對電源可靠性、輸出精度和穩(wěn)定性要求越來越高, 從傳統(tǒng)應(yīng)用中小規(guī)模
8、芯片構(gòu)造電路系統(tǒng)到廣泛地應(yīng)用單片機(jī)2,到今天dsp及fpga在系統(tǒng)設(shè)計中的應(yīng)用,電子設(shè)計技術(shù)已邁入了一個全新階段。fpga不僅具有容量大,邏輯功能強(qiáng)的特點,而且兼有高速、高可靠性。隨著eda技術(shù)的發(fā)展和vlsi工藝技術(shù)的進(jìn)步,特別是軟/硬件ip芯核產(chǎn)業(yè)的迅猛發(fā)展,可編程片上系統(tǒng)(sopc)己經(jīng)大量使用3。目前產(chǎn)生直流穩(wěn)壓電源的方法大致分為兩種:一種是模擬方法,另一種是數(shù)字方法。前者的電路均采用模擬電路控制,而后者則是通過數(shù)字電路進(jìn)行自動控制4。直流穩(wěn)壓電源朝著數(shù)字化方向發(fā)展。因此對于程控穩(wěn)壓電源的研究是必要的5。本文介紹了一種基于fpga的程控直流穩(wěn)壓電源,它以直流電壓源為核心,fpga為主控
9、制器,通過鍵盤來設(shè)置直流電源的輸出電壓,設(shè)置步進(jìn)等級可達(dá)0.1v,輸出電壓范圍為09.9v,同時實現(xiàn)雙路輸出。fpga輸出信號送給d/a轉(zhuǎn)換,d/a轉(zhuǎn)換電路將數(shù)字量按比例,轉(zhuǎn)換成模擬電壓,再經(jīng)過調(diào)整,從而輸出穩(wěn)定的直流電壓6。本文共分為四章,第一章是程控直流穩(wěn)壓電源的原理,其中分三個小節(jié)分別對穩(wěn)壓電源;程控電源;基于fpga的程控穩(wěn)壓電源的原理做了介紹,第二章是硬件電路的設(shè)計,介紹了四個電路模塊,第三章是系統(tǒng)的軟件設(shè)計,分六個模塊進(jìn)行了介紹,最后一章是調(diào)試過程和數(shù)據(jù)記錄表格以及結(jié)果分析。第45頁 共43頁第1章 程控直流穩(wěn)壓電源設(shè)計原理1.1直流穩(wěn)壓電源基本原理直流穩(wěn)壓電源又稱直流穩(wěn)壓器。它的
10、供電電壓大都是交流電壓,當(dāng)交流供電電壓的電壓或輸出負(fù)載電阻變化時,穩(wěn)壓器的直接輸出電壓都能保持穩(wěn)定。穩(wěn)壓器的參數(shù)有電壓穩(wěn)定度、紋波系數(shù)和響應(yīng)速度等。前者表示輸入電壓的變化對輸出電壓的影響。紋波系數(shù)表示在額定工作情況下,輸出電壓中交流分量的大?。缓笳弑硎据斎腚妷夯蜇?fù)載急劇變化時,電壓回到正常值所需時間。直流穩(wěn)壓電源分連續(xù)導(dǎo)電式與開關(guān)式兩類。前者由工頻變壓器把單相或三相交流電壓變到適當(dāng)值,然后經(jīng)整流、濾波,獲得不穩(wěn)定的直流電源,再經(jīng)穩(wěn)壓電路得到穩(wěn)定電壓(或電流)。這種電源線路簡單、紋波小、相互干擾小,但體積大、耗材多,效率低(常低于40%60%)。后者以改變調(diào)整元件(或開關(guān))的通斷時間比來調(diào)節(jié)輸出
11、電壓,從而達(dá)到穩(wěn)壓。這類電源功耗小,效率可達(dá)85%左右,但缺點是紋波大、相互干擾大。所以,80年代以來發(fā)展迅速7。直流穩(wěn)壓電源是先把交流電變?yōu)槊}動的直流電,再通過濾波電路、穩(wěn)壓電路,使輸出直流電壓維持穩(wěn)定。直流穩(wěn)壓電源一般包括以下幾部分:(1) 電源變壓器將電網(wǎng)供給的交流電壓變換為符合整流電路需要的交流電壓;(2) 整流電路將變壓器次級交流電壓變換為單向脈動的直流電壓;(3) 濾波電路將脈動的直流電壓變換為平滑的直流電壓;(4) 穩(wěn)壓電路使直流輸出電壓穩(wěn)定。本設(shè)計共用到電源有四種:即±12v、+5v、負(fù)載電源??蛇x用的有開關(guān)電源和穩(wěn)壓電源兩種,由于開關(guān)電源的紋波系數(shù)比較大。因此采用常
12、用的穩(wěn)壓電源來作為整個系統(tǒng)的電源。穩(wěn)壓電源由電源變壓器、整流電路、濾波電路和穩(wěn)壓電路組成,如圖1-1所示。(a)(b)圖1-1 穩(wěn)壓電源框圖及波形圖整流和濾波電路:整流作用是將交流電壓u2變換成脈動電壓u3。濾波電路一般由電容組成,其作用是脈動電壓u3中的大部分紋波加以濾除,以得到較平滑的直流電壓u4。再通過穩(wěn)壓電路得到平直的直流電壓8。直流穩(wěn)壓電源電路圖如圖1-2所示9。圖1-2 直流穩(wěn)壓電源電路圖電源變壓器次級電壓為 = (1-1) 定義為整流輸出電壓在一個周期內(nèi)的平均值,即的直流分量,把輸出電壓用傅里葉級數(shù)分解得到的直流分量就是。所以 (1-2)調(diào)整管工作在線性放大區(qū),當(dāng)電網(wǎng)電壓或負(fù)載電
13、阻發(fā)生變化使輸出電壓發(fā)生變化時,系統(tǒng)的負(fù)載作用將使輸出電壓維持穩(wěn)定。例如,當(dāng)電網(wǎng)電壓(用輸入直流電壓表示)升高或負(fù)載電阻增加引起輸出電壓高于設(shè)定值時,反饋電壓就會相應(yīng)地增加,基準(zhǔn)電壓與反饋電壓的差值就會相應(yīng)的減小,經(jīng)誤差放大器放大后的控制電壓隨之而減小,由于調(diào)整管接成射極輸出器形式,因此,調(diào)整管集電極與發(fā)射極之間的電壓增大,是輸出直流電壓減小,從而維持輸出電壓保持不變10。1.2 程控電源的基本原理程控電源指通過外部控制來設(shè)定輸出電壓、輸出電流的穩(wěn)壓、穩(wěn)流或穩(wěn)壓穩(wěn)流的電源。程控電源的控制方式一般有無源編程、有源編程、數(shù)字式三種。用外部電阻對穩(wěn)壓電源實施無源編程的電路如圖1-3所示。圖1-3 無
14、源編程電路因為 (1-3)式中 就是電流通路中放大器的基準(zhǔn)電壓,所以,改變反饋電阻或輸人電阻,或者同時改變和都可改變輸出值,此即所謂的無源編程法。有源編程電路如圖1-2所示。圖1-3有源編程電路控制系數(shù)是程控電源的一項主要技術(shù)指標(biāo)。對用制系數(shù)是產(chǎn)生單位電壓變化所要求的電阻變化,單位為v。因此,電源的輸出電壓為 (1-4) 式中為編程電阻。為了獲得比較高的輸出電壓分辨率,控制系數(shù)常選用1kv或10kv。程控電源的另一項主要指標(biāo)是編程速度。這是控制元件改變后,(或)達(dá)到要求的標(biāo)稱值所需要的時間。數(shù)字式程控電源的一般結(jié)構(gòu)。其數(shù)字電路部分由數(shù)據(jù)輸人緩沖器、光電隔離器、鎖存器和da轉(zhuǎn)換器組成。數(shù)字式穩(wěn)壓
15、電源的原理電路如圖1-4所示。圖1-4 數(shù)字式穩(wěn)壓電源的原理電路通常,根據(jù)穩(wěn)壓電源所要求的輸出特性,可以控制電壓為步進(jìn)電壓或斜坡電壓等不同形式,產(chǎn)生額定輸出電壓的外部控制電壓為或。因為在電源的外面,所以,可在遠(yuǎn)地對電源進(jìn)行編程。為了獲得高分辨率的輸出設(shè)定值,也可用數(shù)字方式來控制。數(shù)字式程控電源在自動測試系統(tǒng)中,常要求以很高的編程速度來設(shè)定高分辨率的輸出值,數(shù)字式程控電源能滿足該要求。da轉(zhuǎn)換器把輸入的數(shù)字式數(shù)據(jù)轉(zhuǎn)換為基準(zhǔn)端的模擬電壓,它的分辨率由輸人的數(shù)據(jù)位數(shù)決定。例如,如果的量程為010v,輸入12位bcd碼(3位十進(jìn)制數(shù)),則數(shù)據(jù)的最低位增量為10mv。分為1000步,每步10mv。如果輸
16、人12位二進(jìn)制數(shù)據(jù),則分辨率達(dá)0.0244。因為圖1-4中的正比于,故按此方式,可以設(shè)定任意高的分辨率的輸出值和 11。1.3基于fpga的電源的基本原理在各種電子電路實驗中,電源是一種必不可少的儀器,目前實驗所用的電源大多是只有固定電壓輸出(例如常用的有:±5v、±12v或±15v),其缺點是輸出電壓不可人為改變,輸出精度和穩(wěn)定性都不高;在測量上,傳統(tǒng)的電源一般采用指針式或數(shù)字式來顯示電壓或電流,搭配電壓器調(diào)整所要的電壓和電流輸出。若要調(diào)整精確的電壓輸出,需搭配精確的顯示儀表監(jiān)測;又因電位器的阻值特性非線性,在調(diào)整時,需要花費一定的時間12。利用d/a轉(zhuǎn)換器的高
17、分辨率和fpga的自動檢測技術(shù)設(shè)計程控電源就顯示其優(yōu)越性,程控電源既能方便輸入和選定預(yù)定電壓值,同時能實現(xiàn)雙路輸出,相比單路輸出而言,安全性更高,每路的輸出電流減小,過載保護(hù)更容易。所有功能由面板上的鍵盤實現(xiàn),給電路實驗帶來極大的方便,提高工作效率。本電源以常規(guī)穩(wěn)壓電源為基礎(chǔ)電源,以高性能fpga和數(shù)模轉(zhuǎn)換器為控制電路,在控制和檢驗軟件支持下,把預(yù)先給定值通過fpga的輸出口送至d/a轉(zhuǎn)換器轉(zhuǎn)換為給定模擬電壓,以代替常規(guī)穩(wěn)壓電源中的參考電壓,使輸出電壓隨著參考電壓的變化而變化。基于fpga的程控穩(wěn)壓電源電路框圖如圖1-6所示。 圖1-6 基于fpga的程控穩(wěn)壓電源框圖+5v、+12v及-12v
18、由電源模塊提供,+5v為fpga工作電壓,也是d/a芯片的工作電壓,+12v及-12v為運算放大器供電;通過“十位”按鍵或“各位”按鍵向fpga輸入信號,fpga得到計數(shù)脈沖信號,通過其內(nèi)部相關(guān)電路從而計數(shù),內(nèi)部計數(shù)器的信號一路送給外部顯示電路來顯示當(dāng)前的電壓值,另一路分兩路分別送給兩個d/a轉(zhuǎn)換器,d/a轉(zhuǎn)換電路將數(shù)字量按比例,轉(zhuǎn)換成模擬電壓,再經(jīng)過調(diào)整,從而輸出穩(wěn)定的直流電壓13。第2章 硬件電路設(shè)計本章主要對硬件電路中按鍵電路,顯示電路,d/a轉(zhuǎn)換電路,fpga電路做了詳細(xì)的介紹。2.1按鍵電路本設(shè)計采用的機(jī)械鍵盤工作原理是:按下鍵帽時,按鍵內(nèi)的復(fù)位彈簧被壓縮,動片觸點與靜片觸點相連,按
19、鍵兩個引腳連通,接觸電阻大小與按鍵觸點面積及材料有關(guān),一般在數(shù)十歐姆以下;松手后,復(fù)位彈簧將動片彈開,使動片觸點與靜片觸點脫離接觸,兩引腳返回斷開狀態(tài)。可見 ,機(jī)械鍵盤或按扭的基本工作原理就是利用動片觸點和靜片觸點的接觸和斷開來實現(xiàn)鍵盤或按鈕兩引腳的通、斷14。按鍵電路如圖2-1所示。圖2-1 按鍵電路本設(shè)計是雙路輸出,所以有兩組按鍵控制,con4口的1、2口為一組,3、4口為一組,當(dāng)s1、s2、s3、s4沒有被按下時,con4口的上拉電阻rs1-rs4將引腳置為高電平,而當(dāng)s1-s4被按下時,相應(yīng)的按鍵兩引腳連通,con4口對應(yīng)的引腳接地。2.2 顯示電路數(shù)碼管顯示電路如圖2-2所示。圖2-
20、2 數(shù)碼管顯示電路本設(shè)計采用共陰極數(shù)碼管靜態(tài)顯示,靜態(tài)顯示就是當(dāng)顯示某一字符時,相應(yīng)段的發(fā)光二極管恒定地截止。這種顯示方法為每一門都需要有一個8位輸出口控制,通過con1、con2、con3、con4連接到fpga芯片的i/o口上。圖上的電阻為300歐姆,使數(shù)碼管小數(shù)位輸出低電平。靜態(tài)顯示器的優(yōu)點是顯示穩(wěn)定,在發(fā)光二極管導(dǎo)通電一定的情況下顯示器的亮度高,控制系統(tǒng)在運行過程中,僅僅在需要更新顯示內(nèi)容時,fpga才執(zhí)行一次顯示更新子程序,這樣大大節(jié)省了處理時間,提高了fpga的工作效率15。2.3 dac0832轉(zhuǎn)換電路d/a轉(zhuǎn)換電路如圖2-3所示。圖2-3 d/a轉(zhuǎn)換電路本電路采用d/ac083
21、2芯片,其內(nèi)部結(jié)構(gòu)由8位輸入寄存器、8位dac寄存器、8位d/a轉(zhuǎn)換器組成。vcc是芯片電源電壓,電壓為12v,為參考電壓,大小為5v,rfb為反饋電阻引出端,此端可接運算放大器輸出端,gnd分為agnd和dgna,即模擬信號地和數(shù)字信號地。引腳d0-d7為數(shù)字量輸入信號,其中d0為最低位,d7為最高位。引腳cs為片選信號,低電平有效,wr1為寫信號1,低電平有效,ile為輸入鎖存允許信號,高電平有效,當(dāng)ile、cs、wr1同時有效時,le=1,輸入寄存器的輸出隨輸入變化而變化,le=0時,將輸入數(shù)據(jù)鎖存到輸入寄存器。xfer為轉(zhuǎn)移控制信號,低電平有效,wr2為寫信號2,低電平有效,當(dāng)wr2、
22、xfer同時有效時,le2=1,dac寄存器輸出隨輸入變化而變化,le=0,將輸入數(shù)據(jù)鎖存到dac寄存器,數(shù)據(jù)進(jìn)入d/a轉(zhuǎn)換器,開始轉(zhuǎn)換。iout1為模擬電流輸出端1,當(dāng)輸入數(shù)字為全1時,輸入電流最大,全0時,輸出電流為0,iout2為模擬電流輸出端2,iout1+iout2=常數(shù)。為了將模擬電流轉(zhuǎn)換為模擬電壓,需把兩個輸出端iout1和iout2分別接到運算放大器的兩個輸入端,經(jīng)過一級運放得到單極性輸出電壓16 。2.4 fpga電路本系統(tǒng) fpga 型號為 altera 公司 cycloneii 系列的ep2c5t144,等效門數(shù)為 23 萬門。電源采用 5v 直流電,通過板上完善的電源系
23、統(tǒng),為 fpga 等元件提供所需的各種電壓,并可向外輸出 5v、3.3v、1.2v 電壓。配有 epcsisi8 配置芯片,jtag 和 as 兩種下載端口,50mhz 有源晶振。設(shè)有 6 個 led 發(fā)光二極管,用作簡單輸出。fpga 的所有引腳均通過2.54mm標(biāo)準(zhǔn)排針引出。2.4.1供電電源部分供電電源部分電路如圖2-4所示。圖2-4供電電源部分電路圖電源部分的輸入電壓是5v。通過u3:ams1117-3.3 的ldo芯片,得到 3.3v 電壓。此芯片最大電流支持到 3a。再通過 ams1117-1.5獲取1.5v電壓。 3.3v 電壓是提供給 fpga 的 i/o 使用的。也就是說,f
24、pga 的 i/o 引腳電平采用的是3.3v。1.5v電壓是提供給 fpga內(nèi)核的工作電壓,以及fpga內(nèi)部pll的工作電壓。1.5v電壓的純凈程度要求比較高,故采用c3鉭電容濾波。2.4.2 io電壓、內(nèi)核電壓供電連接。2.4.2 i/o電壓、內(nèi)核電壓供電連接部分i/o電壓、內(nèi)核電壓供電連接電路如圖2-5所示。圖2-5 io電壓、內(nèi)核電壓供電連接電路圖如上圖,vccio 兩組電壓均連接3.3v。fpga有很多的 i/o,它們是分組的。在 ep2c5t144 芯片中,分為四組(bank),每組(每個bank)的i/o引腳供電是獨立的,因此可以采用不同的電平標(biāo)準(zhǔn)。本開發(fā)板的所有 io 腳都采用
25、3.3v 電壓標(biāo)準(zhǔn),所以所有的vccio都連接 3.3v。 vccint 為 fpga 內(nèi)核工作電壓輸入。cycloneii 系列的 fpga 均采用 1.2v的內(nèi)核電壓,所以這里連接1.2v。2.4.3 時鐘信號部分時鐘信號電路如圖2-6所示。圖2-6 時鐘信號電路圖ep2c5t144提供8路時鐘供用戶使用,板載50m有源晶振,直接分頻處理得到25hz頻率,其余7 路有3 路接到接口板上使用,另外 4路直接擴(kuò)展到板子上,供外部時鐘輸入的時候使用,為了增加穩(wěn)定性,對時鐘輸入部分做了型濾波處理,同時含有電阻緩沖。 2.4.4 ep2c5t144芯片部分ep2c5t144芯片引腳圖如圖2-7所示。
26、圖2-7 ep2c5t144芯片引腳圖電源對外接口:提供一路電源輸出接口 p6 ,獨立 i/o個數(shù)是76 個,這其中有3路時鐘信號clk1 clk2 clk3 這3 個管腳只能做為輸入,使用時需要注意,另外的四路時鐘采用 4個獨立的接口引出,實際可用 i/o為80個。17 。2.4.5 配置芯片部分配置芯片如圖2-8所示。圖2-8 配置芯片下載指示燈,jtag或者asp工作下載的時候,指示燈點亮,成功后熄滅。 按鍵,可以重新配置fpga,相當(dāng)于復(fù)位,按下之后,指示燈亮,從配置芯片中讀取程序,成功讀取之后,程序開始正常運行,led熄滅asp以及 jtag 接口電路,采用epcsisi8配置芯片,
27、1m容量,適合ep2c5t使用。第3章 系統(tǒng)軟件設(shè)計3.1系統(tǒng)軟件整體設(shè)計由于fpga芯片自帶50mhz的有源晶振,其頻率太高,必須經(jīng)過合適的分頻才能使用。經(jīng)過100萬分頻器即得到50hz的信號,再作為100進(jìn)制計數(shù)器模塊的工作時鐘,同時作為鍵盤的輸入信號;50mhz經(jīng)過200萬分頻器即得到25hz的信號作為鍵盤模塊的工作時鐘;鍵盤模塊對輸入的計數(shù)脈沖信號進(jìn)行消抖處理;100進(jìn)制可逆計數(shù)器模塊實現(xiàn)099的計數(shù)功能;2選1模塊實現(xiàn)選擇顯示數(shù)據(jù)的整數(shù)和小數(shù)的功能;7段譯碼器模塊實現(xiàn)把計數(shù)器的輸出二進(jìn)制轉(zhuǎn)換為數(shù)碼管顯示的字符碼;二-十進(jìn)制譯碼器模塊實現(xiàn)將計數(shù)器的輸出信號轉(zhuǎn)換為d/a所需要的二進(jìn)制數(shù)據(jù)
28、18。軟件整體框圖設(shè)計如圖3-1所示。圖3-1 軟件整體框圖3.2軟件模塊設(shè)計3.2.1分頻器模塊設(shè)計100萬分頻器dvf模塊如圖3-2所示。圖3-2 dvf模塊輸入clk是50mhz頻率,經(jīng)過分頻模塊分頻得到50hz的輸出fout。源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dvf isport(clk:in std_logic; fout:out std_logic);end;architecture one of dvf isbeginprocess(clk)v
29、ariable cnt:integer range 0 to 500000;variable x:std_logic;begin if clk'event and clk='1' thenif cnt<500000 thencnt:=cnt+1;else cnt:=0;x:=not x;end if;end if;fout<=x;end process ;end one;仿真波形如圖3-3所示。圖3-3 仿真波形仿真結(jié)果分析:輸入clk的頻率為50mhz(即tclk=20ns),而輸出f1=50hz, (即tfout=20ms)則次分頻器設(shè)計符合要求。200
30、萬分頻器dvf模塊如圖3-2所示。圖3-4 dvf模塊源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dvf1 isport(clk:in std_logic; fout:out std_logic);end;architecture one of dvf1 isbeginprocess(clk)variable cnt:integer range 0 to 1000000;variable x:std_logic;begin if clk'event and c
31、lk='1' thenif cnt<1000000 thencnt:=cnt+1;else cnt:=0;x:=not x;end if;end if;fout<=x;end process ;end one;仿真波形如圖3-5所示。圖3-5 仿真波形仿真結(jié)果分析:輸入clk的頻率為50hz(即tclk=20ms),而輸出f1=25hz, (即tfout=40ms)則次分頻器設(shè)計符合要求。3.2.2鍵盤輸入模塊設(shè)計鍵盤模塊如圖3-3所示。圖3-6 鍵盤模塊up和down為輸入脈沖,經(jīng)過消抖處理得到時鐘信號clk和clk1,再得到輸出脈沖up0和down0。源程序如下
32、:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity key isport( up:in std_logic;down:in std_logic;clk:in std_logic;clk1:in std_logic;up0:out std_logic;down0:out std_logic);end key;architecture one of key issignalupt1,upt2,upt3,downt1,downt2,d
33、ownt3:std_logic;beginprocess(clk1)beginif(clk1'event and clk1='1')thenupt1<=up;upt2<= upt1;downt1<=down;downt2<=downt1;end if;end process;upt3<=not upt2;downt3<=not downt2;process(clk)beginif(clk'event and clk='1') thenup0<=clk1andupt1 and upt3;down0 <
34、=clk1 and downt1 and downt3;end if;end process;end one;仿真波形如圖3-5所示。圖3-7 仿真波形仿真結(jié)果分析:經(jīng)過抖動處理,按鍵的輸出脈沖均變?yōu)橐粋€clk1時鐘周期的寬度,因開關(guān)及外界一系列因素引起的電平抖動的干擾脈沖信號全被濾掉。則此鍵盤模塊符合設(shè)計要求。3.2.3 100進(jìn)制計數(shù)器模塊設(shè)計計數(shù)器模塊如圖3-8所示。圖3-8 計數(shù)器模塊源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt100 isport (
35、clk:in std_logic; up,down:in std_logic; q1,q2:out std_logic_vector(3 downto 0);end cnt100;architecture one of cnt100 issignal cout2,cout1:std_logic_vector(3 downto 0);begin process(clk,up,down) begin if(clk'event and clk='1') then if(up='0' and down='1') thenif (cout2=9 a
36、nd cout1=9) then cout2<="1001"cout1<="1001" else if (cout1=9) thencout2<=cout2+1; cout1<="0000"elsecout2<=cout2; cout1<=cout1+1;end if;end if;elsif(down='0' and up='1') thenif (cout2=0 and cout1=0) thencout2<="0000"cout1<
37、;="0000"else if (cout1=0) thencout2<=cout2-1; cout1<="1001"elsecout2<=cout2; cout1<=cout1-1;end if;end if;elsif(down='1' and up='1') thencout1<="0110"cout2<="0110"end if;end if;end process;q1<=cout1;q2<=cout2;end one;仿真波
38、形如圖3-9所示。圖3-9 仿真波形分析結(jié)果:由波形可知,當(dāng)up=0,down=1時,每當(dāng)clk的上升沿來臨時,則計數(shù)器加1,當(dāng)計數(shù)到99時,就不會再增計數(shù),將一直保持在99。綜上所述,則此模塊符合設(shè)計要求。3.2.4 數(shù)據(jù)選擇器模塊設(shè)計數(shù)據(jù)選擇器模塊如圖3-10所示。圖3-10 數(shù)據(jù)選擇器模塊源程序如下:library ieee;use ieee.std_logic_1164.all;entity mux21 isport(sel:in std_logic; a,b:in std_logic_vector(3 downto 0); q:out std_logic_vector(3 downt
39、o 0);end ;architecture one of mux21 isbegin process(a,b,sel)begin case sel is when '0'=>q<=a; when '1'=>q<=b; when others=>q<="xxxx"end case;end process;end one;仿真波形如圖3-11所示。圖3-11 仿真波形分析結(jié)果:由波形可知,當(dāng)sel=1時,輸出信號q=b; 當(dāng)sel=0時,輸出信號q=a。顯然此模塊符合設(shè)計要求。3.3.5位碼選擇器模塊設(shè)計顯示
40、模塊如圖3-12所示。圖3-14 顯示模塊源程序如下:library ieee;use ieee.std_logic_1164.all;entity decoder1_2 is port ( a:in std_logic; choose_wei_ma:out std_logic_vector(1 downto 0);end decoder1_2;architecture one of decoder1_2 is beginprocess(a) begin case a is when '0'=>choose_wei_ma<="01" when &
41、#39;1'=>choose_wei_ma<="10" when others=>choose_wei_ma<="xx" end case;end process;end one;圖3-15 仿真波形分析結(jié)果:由波形可知,當(dāng)a=1時,輸出信號choose_wei_ma=10; 當(dāng)a=0時,輸出信號choose_wei_ma=01;由此可知,每次只能選通一個數(shù)碼管,通過改變選擇信號a的頻率達(dá)到顯示要求。顯然此模塊符合設(shè)計要求。3.2.6驅(qū)動共陰極數(shù)碼管七段譯碼器模塊設(shè)計顯示模塊如圖3-12所示。圖3-14 顯示模塊源程序如下
42、:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all; entity segment7 is port ( datain:in std_logic_vector(3 downto 0); dataout:out std_logic_vector(6 downto 0); end segment7 ; architecture one of segment7 isbeginwith datain select dataout<="
43、1111110" when "0000", "0110000" when "0001", "1101101" when "0010", "1111001" when "0011", "0110011" when "0100", "1011011" when "0101", "1011111" when "0110", "
44、;1110000" when "0111", "1111111" when "1000", "1111011" when "1001", "1111111" when others; end one;仿真波形如圖3-13。圖3-15 仿真波形分析結(jié)果:dataout(6)=a, dataout(5)=b, dataout(6)=c, dataout(6)=d, dataout(6)=e, dataout(6)=f, dataout(6)=g。當(dāng)datain=&quo
45、t;0000"時,dataout="1111110",此時只有g(shù)段不亮,顯示0;當(dāng)datain="0111"時,dataout ="1110000",即a,b,c三段亮,顯示字符7。其余分析類似。顯然此模塊設(shè)計符合要求。3.2.6二-十進(jìn)制譯碼器模塊設(shè)計譯碼器模塊如圖3-14所示。圖3-16 譯碼器模塊源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entit
46、y bcd2_10 isport(bcd1,bcd2:in std_logic_vector(3 downto 0); b_out:out std_logic_vector(7 downto 0);end bcd2_10;architecture one of bcd2_10 isbegin b_out<=bcd2*"1010"+bcd1;end one;仿真波形如圖3-15所示:圖3-17 仿真波形分析結(jié)果:將高四位bcd1 10 +低四位bcd2即可得到結(jié)果b_out,由波形圖即可驗證,顯然此模塊符合設(shè)計要求。3.2.7層次化設(shè)計總電路如圖3-16所示。圖3-18
47、 總電路圖源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity display isport(cp1,up1,down1:in std_logic; data_to_da:out std_logic_vector(7 downto 0); duan_ma_choose:out std_logic_vector(6 downto 0); wei_ma_choose:out std_logic_vector(1 downto 0);end display;architecture
48、one of display iscomponent dvfport(clk:in std_logic; fout:out std_logic);end component;component bcd2_10 port(bcd1,bcd2:in std_logic_vector(3 downto 0); b_out:out std_logic_vector(7 downto 0);end component;component segment7 port ( datain:in std_logic_vector(3 downto 0); dataout:out std_logic_vector
49、(6 downto 0); end component ; component key port( up:in std_logic;down:in std_logic;clk:in std_logic;clk1:in std_logic;up0:out std_logic;down0:out std_logic);end component;component cnt100 port ( clk:in std_logic; up,down:in std_logic; q1,q2:out std_logic_vector(3 downto 0);end component;component d
50、ecoder1_2 port ( a:in std_logic; choose_wei_ma:out std_logic_vector(1 downto 0);end component;component mux21 port(sel:in std_logic; a,b:in std_logic_vector(3 downto 0); q:out std_logic_vector(3 downto 0);end component;component dvf1 port(clk:in std_logic; fout:out std_logic);end component;signal cl
51、k1,clk2,clk_key,down11,up11: std_logic;signal q22,q11:std_logic_vector(3 downto 0);signal q33:std_logic_vector(3 downto 0);beginu1:dvf port map(clk=>cp1,fout=>clk2);u2:dvf1 port map(clk=>cp1,fout=>clk_key);u3:cnt100 port map(clk=>clk2,up=>up11,down=>down11,q2=>q22,q1=>q11)
52、;u4:key port map (clk=>clk2,clk1=>clk_key,up0=>up11,down0=>down11,up=>up1,down=>down1);u5:decoder1_2 port map(a=>clk2,choose_wei_ma=>wei_ma_choose);u6:bcd2_10 port map(bcd1=>q11,bcd2=>q22,b_out=> data_to_da);u7:mux21 port map(a=>q11,b=>q22,q=>q33,sel=>clk
53、2);u8:segment7 port map(datain=>q33,dataout=>duan_ma_choose);end one;仿真波形如圖3-17。圖3-19 仿真波形分析結(jié)果:上述波形為部分仿真結(jié)果。段碼信號根據(jù)按鍵輸入的信號及時鐘信號而發(fā)生變化。由段碼信號"1111110"則顯示的是0的字符碼值;而"0110000"則顯示的是1的字符碼值。因按鍵存在抖動,內(nèi)部必須加上一定延遲才能接受到真正的按鍵信號,以防接受干擾信號而造成誤操作。第4章 系統(tǒng)運行與調(diào)試4.1系統(tǒng)運行過程步驟一:安裝驅(qū)動。插入usb下載線后,自動彈出窗口,手動設(shè)
54、置,d:alteraquartus 9.0driverusbblaster。具體查找目錄根據(jù)自己安裝軟件quartus 9.0的所在的根目錄。具體操作如圖4-1所示。(a)(b)(c)圖4-1 操作步驟步驟二: 鎖引腳。assignments-àpins-à鎖好如圖4-2所示-à編譯圖4-2 鎖引腳圖步驟三: ide環(huán)境設(shè)置。 (1)asignments-àdevice-àep2c5t144-àdevice&pin options-àconfiguration-àuse configuration device-àe
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度儲煤場煤炭交易代理服務(wù)合同3篇
- 2025年度金融機(jī)構(gòu)外匯借款合同綠色金融創(chuàng)新實踐
- 二零二五年度碼頭租賃項目環(huán)保驗收及服務(wù)合同4篇
- 二零二五年度錄音系統(tǒng)定制開發(fā)與實施合同3篇
- 2025年度蘋果水果產(chǎn)地直供直銷采購合同4篇
- 2025版木工模板租賃與園林景觀設(shè)計施工承包合同范本3篇
- 二零二五年度寵物醫(yī)院寵物食品研發(fā)與生產(chǎn)合作協(xié)議3篇
- 二零二五年度辦公家具銷售合同(含安裝)2篇
- 二零二五年度天使投資協(xié)議書:生物科技研發(fā)項目風(fēng)險投資合同
- 二零二五年度商標(biāo)授權(quán)及商標(biāo)市場推廣合同范本2篇
- 2024-2030年中國招標(biāo)代理行業(yè)深度分析及發(fā)展前景與發(fā)展戰(zhàn)略研究報告
- 醫(yī)師定期考核 (公共衛(wèi)生)試題庫500題(含答案)
- 基因突變和基因重組(第1課時)高一下學(xué)期生物人教版(2019)必修2
- 內(nèi)科學(xué)(醫(yī)學(xué)高級):風(fēng)濕性疾病試題及答案(強(qiáng)化練習(xí))
- 音樂劇好看智慧樹知到期末考試答案2024年
- 辦公設(shè)備(電腦、一體機(jī)、投影機(jī)等)采購 投標(biāo)方案(技術(shù)方案)
- 案卷評查培訓(xùn)課件模板
- 2024年江蘇省樣卷五年級數(shù)學(xué)上冊期末試卷及答案
- 人教版初中英語七八九全部單詞(打印版)
- 波浪理論要點圖解完美版
- 金融交易數(shù)據(jù)分析與風(fēng)險評估項目環(huán)境敏感性分析
評論
0/150
提交評論