程控穩(wěn)壓電源設計_第1頁
程控穩(wěn)壓電源設計_第2頁
程控穩(wěn)壓電源設計_第3頁
程控穩(wěn)壓電源設計_第4頁
程控穩(wěn)壓電源設計_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、 基于fpga的程控穩(wěn)壓電源設計 學院名稱: 專 業(yè): 班 級: 姓 名: 指導教師姓名: 指導教師職稱: 2012年 6 月 基于fpga的程控穩(wěn)壓電源設計摘 要:直流穩(wěn)壓源是一種常見的電子儀器,其廣泛應用于實驗教學和科學研究等領域。本設計提出了一個基于fpga的程控穩(wěn)壓電源的方案。通過按鍵向fpga輸入信號,fpga得到“十位”和“各位”計數(shù)脈沖信號,通過計數(shù)器模塊計數(shù),內(nèi)部計數(shù)器的信號一路送給外部顯示電路來顯示當前的電壓值,另一路經(jīng)過d/a轉(zhuǎn)換器(dac0832)輸出模擬量,再經(jīng)過運算放大器隔離放大,控制輸出功率管的基極,隨著功率管基極電壓的變化而輸出不同的電壓,同時實現(xiàn)雙路輸出。實際測

2、試結果表明,本系統(tǒng)具有易調(diào)節(jié),高可靠性,操作方便,電壓穩(wěn)定度高,其輸出電壓采用了數(shù)字顯示的特點。關鍵詞:直流穩(wěn)壓電源;程控電源;fpga;vhdlthe 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 is to design a fpga b

3、ased 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 a d/a converter ( dac0832) output analog qua

4、ntity, 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, the system has easy adjustment, high relia

5、bility, 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)壓電源設計原理21.1直流穩(wěn)壓電源基本原理21.2程控電源的基本原理41.3基于fpga的電源的基本原理6第2章 硬件電路設計72.1按鍵電路72.2顯示電路72.3 dac0832轉(zhuǎn)換電路82.4 fpga電路92.4

6、.1供電電源部分92.4.2 i/o電壓、內(nèi)核電壓供電連接部分92.4.3 時鐘信號部分102.4.4 ep2c5t144芯片部分102.4.5 配置芯片部分11第3章 系統(tǒng)軟件設計123.1系統(tǒng)軟件整體設計123.2軟件模塊設計123.2.1分頻器模塊設計123.2.2鍵盤輸入模塊設計153.2.3 100進制計數(shù)器模塊設計173.2.4 數(shù)據(jù)選擇器模塊設計193.3.5位碼選擇器模塊設計203.2.6驅(qū)動共陰極數(shù)碼管七段譯碼器模塊設計213.2.6二-十進制譯碼器模塊設計223.2.7層次化設計23第4章 系統(tǒng)運行與調(diào)試274.1系統(tǒng)運行過程274.2測試結果30結束語33參考文獻34致

7、謝36附錄1 硬件實物圖37附錄2 硬件電路圖38附錄3 元器件清單40附錄4 程序代碼41前言電源技術尤其是數(shù)控電源技術是一門實踐性很強的工程技術,被廣泛的應用于電子產(chǎn)品生產(chǎn)線、實驗室、工業(yè)控制和信息通訊等領域。當今電源技術融合了電氣、電子、系統(tǒng)集成、控制理論、材料等諸多學科領域。計算機和通訊技術發(fā)展而來的現(xiàn)代信息技術革命,給電源技術提供了廣闊的發(fā)展前景,同時也給電源提出了更高的要求1。隨著科學技術飛速發(fā)展,對電源可靠性、輸出精度和穩(wěn)定性要求越來越高, 從傳統(tǒng)應用中小規(guī)模芯片構造電路系統(tǒng)到廣泛地應用單片機2,到今天dsp及fpga在系統(tǒng)設計中的應用,電子設計技術已邁入了一個全新階段。fpga

8、不僅具有容量大,邏輯功能強的特點,而且兼有高速、高可靠性。隨著eda技術的發(fā)展和vlsi工藝技術的進步,特別是軟/硬件ip芯核產(chǎn)業(yè)的迅猛發(fā)展,可編程片上系統(tǒng)(sopc)己經(jīng)大量使用3。目前產(chǎn)生直流穩(wěn)壓電源的方法大致分為兩種:一種是模擬方法,另一種是數(shù)字方法。前者的電路均采用模擬電路控制,而后者則是通過數(shù)字電路進行自動控制4。直流穩(wěn)壓電源朝著數(shù)字化方向發(fā)展。因此對于程控穩(wěn)壓電源的研究是必要的5。本文介紹了一種基于fpga的程控直流穩(wěn)壓電源,它以直流電壓源為核心,fpga為主控制器,通過鍵盤來設置直流電源的輸出電壓,設置步進等級可達0.1v,輸出電壓范圍為09.9v,同時實現(xiàn)雙路輸出。fpga輸出

9、信號送給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)壓電源的原理做了介紹,第二章是硬件電路的設計,介紹了四個電路模塊,第三章是系統(tǒng)的軟件設計,分六個模塊進行了介紹,最后一章是調(diào)試過程和數(shù)據(jù)記錄表格以及結果分析。第1章 程控直流穩(wěn)壓電源設計原理1.1直流穩(wěn)壓電源基本原理直流穩(wěn)壓電源又稱直流穩(wěn)壓器。它的供電電壓大都是交流電壓,當交流供電電壓的電壓或輸出負載電阻變化時,穩(wěn)壓器的直接輸出電壓都能保持穩(wěn)定。穩(wěn)壓器的參數(shù)有電壓穩(wěn)定度、紋波系數(shù)和響應

10、速度等。前者表示輸入電壓的變化對輸出電壓的影響。紋波系數(shù)表示在額定工作情況下,輸出電壓中交流分量的大??;后者表示輸入電壓或負載急劇變化時,電壓回到正常值所需時間。直流穩(wěn)壓電源分連續(xù)導電式與開關式兩類。前者由工頻變壓器把單相或三相交流電壓變到適當值,然后經(jīng)整流、濾波,獲得不穩(wěn)定的直流電源,再經(jīng)穩(wěn)壓電路得到穩(wěn)定電壓(或電流)。這種電源線路簡單、紋波小、相互干擾小,但體積大、耗材多,效率低(常低于40%60%)。后者以改變調(diào)整元件(或開關)的通斷時間比來調(diào)節(jié)輸出電壓,從而達到穩(wěn)壓。這類電源功耗小,效率可達85%左右,但缺點是紋波大、相互干擾大。所以,80年代以來發(fā)展迅速7。直流穩(wěn)壓電源是先把交流電變

11、為脈動的直流電,再通過濾波電路、穩(wěn)壓電路,使輸出直流電壓維持穩(wěn)定。直流穩(wěn)壓電源一般包括以下幾部分:(1) 電源變壓器將電網(wǎng)供給的交流電壓變換為符合整流電路需要的交流電壓;(2) 整流電路將變壓器次級交流電壓變換為單向脈動的直流電壓;(3) 濾波電路將脈動的直流電壓變換為平滑的直流電壓;(4) 穩(wěn)壓電路使直流輸出電壓穩(wěn)定。本設計共用到電源有四種:即12v、+5v、負載電源??蛇x用的有開關電源和穩(wěn)壓電源兩種,由于開關電源的紋波系數(shù)比較大。因此采用常用的穩(wěn)壓電源來作為整個系統(tǒng)的電源。穩(wěn)壓電源由電源變壓器、整流電路、濾波電路和穩(wěn)壓電路組成,如圖1-1所示。(a)(b)圖1-1 穩(wěn)壓電源框圖及波形圖整流

12、和濾波電路:整流作用是將交流電壓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ū),當電網(wǎng)電壓或負載電阻發(fā)生變化使輸出電壓發(fā)生變化時,系統(tǒng)的負載作用將使輸出電壓維持穩(wěn)定。例如,當電網(wǎng)電壓(用輸入直流電壓表示)升高或負載電阻增加引起輸出電壓高于設定值時,反

13、饋電壓就會相應地增加,基準電壓與反饋電壓的差值就會相應的減小,經(jīng)誤差放大器放大后的控制電壓隨之而減小,由于調(diào)整管接成射極輸出器形式,因此,調(diào)整管集電極與發(fā)射極之間的電壓增大,是輸出直流電壓減小,從而維持輸出電壓保持不變10。1.2 程控電源的基本原理程控電源指通過外部控制來設定輸出電壓、輸出電流的穩(wěn)壓、穩(wěn)流或穩(wěn)壓穩(wěn)流的電源。程控電源的控制方式一般有無源編程、有源編程、數(shù)字式三種。用外部電阻對穩(wěn)壓電源實施無源編程的電路如圖1-3所示。圖1-3 無源編程電路因為 (1-3)式中 就是電流通路中放大器的基準電壓,所以,改變反饋電阻或輸人電阻,或者同時改變和都可改變輸出值,此即所謂的無源編程法。有源編

14、程電路如圖1-2所示。圖1-3有源編程電路控制系數(shù)是程控電源的一項主要技術指標。對用制系數(shù)是產(chǎn)生單位電壓變化所要求的電阻變化,單位為v。因此,電源的輸出電壓為 (1-4) 式中為編程電阻。為了獲得比較高的輸出電壓分辨率,控制系數(shù)常選用1kv或10kv。程控電源的另一項主要指標是編程速度。這是控制元件改變后,(或)達到要求的標稱值所需要的時間。數(shù)字式程控電源的一般結構。其數(shù)字電路部分由數(shù)據(jù)輸人緩沖器、光電隔離器、鎖存器和da轉(zhuǎn)換器組成。數(shù)字式穩(wěn)壓電源的原理電路如圖1-4所示。圖1-4 數(shù)字式穩(wěn)壓電源的原理電路通常,根據(jù)穩(wěn)壓電源所要求的輸出特性,可以控制電壓為步進電壓或斜坡電壓等不同形式,產(chǎn)生額定

15、輸出電壓的外部控制電壓為或。因為在電源的外面,所以,可在遠地對電源進行編程。為了獲得高分辨率的輸出設定值,也可用數(shù)字方式來控制。數(shù)字式程控電源在自動測試系統(tǒng)中,常要求以很高的編程速度來設定高分辨率的輸出值,數(shù)字式程控電源能滿足該要求。da轉(zhuǎn)換器把輸入的數(shù)字式數(shù)據(jù)轉(zhuǎn)換為基準端的模擬電壓,它的分辨率由輸人的數(shù)據(jù)位數(shù)決定。例如,如果的量程為010v,輸入12位bcd碼(3位十進制數(shù)),則數(shù)據(jù)的最低位增量為10mv。分為1000步,每步10mv。如果輸人12位二進制數(shù)據(jù),則分辨率達0.0244。因為圖1-4中的正比于,故按此方式,可以設定任意高的分辨率的輸出值和 11。1.3基于fpga的電源的基本原

16、理在各種電子電路實驗中,電源是一種必不可少的儀器,目前實驗所用的電源大多是只有固定電壓輸出(例如常用的有:5v、12v或15v),其缺點是輸出電壓不可人為改變,輸出精度和穩(wěn)定性都不高;在測量上,傳統(tǒng)的電源一般采用指針式或數(shù)字式來顯示電壓或電流,搭配電壓器調(diào)整所要的電壓和電流輸出。若要調(diào)整精確的電壓輸出,需搭配精確的顯示儀表監(jiān)測;又因電位器的阻值特性非線性,在調(diào)整時,需要花費一定的時間12。利用d/a轉(zhuǎn)換器的高分辨率和fpga的自動檢測技術設計程控電源就顯示其優(yōu)越性,程控電源既能方便輸入和選定預定電壓值,同時能實現(xiàn)雙路輸出,相比單路輸出而言,安全性更高,每路的輸出電流減小,過載保護更容易。所有功

17、能由面板上的鍵盤實現(xiàn),給電路實驗帶來極大的方便,提高工作效率。本電源以常規(guī)穩(wěn)壓電源為基礎電源,以高性能fpga和數(shù)模轉(zhuǎn)換器為控制電路,在控制和檢驗軟件支持下,把預先給定值通過fpga的輸出口送至d/a轉(zhuǎn)換器轉(zhuǎn)換為給定模擬電壓,以代替常規(guī)穩(wěn)壓電源中的參考電壓,使輸出電壓隨著參考電壓的變化而變化?;趂pga的程控穩(wěn)壓電源電路框圖如圖1-6所示。 圖1-6 基于fpga的程控穩(wěn)壓電源框圖+5v、+12v及-12v由電源模塊提供,+5v為fpga工作電壓,也是d/a芯片的工作電壓,+12v及-12v為運算放大器供電;通過“十位”按鍵或“各位”按鍵向fpga輸入信號,fpga得到計數(shù)脈沖信號,通過其內(nèi)

18、部相關電路從而計數(shù),內(nèi)部計數(shù)器的信號一路送給外部顯示電路來顯示當前的電壓值,另一路分兩路分別送給兩個d/a轉(zhuǎn)換器,d/a轉(zhuǎn)換電路將數(shù)字量按比例,轉(zhuǎn)換成模擬電壓,再經(jīng)過調(diào)整,從而輸出穩(wěn)定的直流電壓13。第2章 硬件電路設計本章主要對硬件電路中按鍵電路,顯示電路,d/a轉(zhuǎn)換電路,fpga電路做了詳細的介紹。2.1按鍵電路本設計采用的機械鍵盤工作原理是:按下鍵帽時,按鍵內(nèi)的復位彈簧被壓縮,動片觸點與靜片觸點相連,按鍵兩個引腳連通,接觸電阻大小與按鍵觸點面積及材料有關,一般在數(shù)十歐姆以下;松手后,復位彈簧將動片彈開,使動片觸點與靜片觸點脫離接觸,兩引腳返回斷開狀態(tài)??梢?,機械鍵盤或按扭的基本工作原理

19、就是利用動片觸點和靜片觸點的接觸和斷開來實現(xiàn)鍵盤或按鈕兩引腳的通、斷14。按鍵電路如圖2-1所示。圖2-1 按鍵電路本設計是雙路輸出,所以有兩組按鍵控制,con4口的1、2口為一組,3、4口為一組,當s1、s2、s3、s4沒有被按下時,con4口的上拉電阻rs1-rs4將引腳置為高電平,而當s1-s4被按下時,相應的按鍵兩引腳連通,con4口對應的引腳接地。2.2 顯示電路數(shù)碼管顯示電路如圖2-2所示。圖2-2 數(shù)碼管顯示電路本設計采用共陰極數(shù)碼管靜態(tài)顯示,靜態(tài)顯示就是當顯示某一字符時,相應段的發(fā)光二極管恒定地截止。這種顯示方法為每一門都需要有一個8位輸出口控制,通過con1、con2、con

20、3、con4連接到fpga芯片的i/o口上。圖上的電阻為300歐姆,使數(shù)碼管小數(shù)位輸出低電平。靜態(tài)顯示器的優(yōu)點是顯示穩(wěn)定,在發(fā)光二極管導通電一定的情況下顯示器的亮度高,控制系統(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/ac0832芯片,其內(nèi)部結構由8位輸入寄存器、8位dac寄存器、8位d/a轉(zhuǎn)換器組成。vcc是芯片電源電壓,電壓為12v,為參考電壓,大小為5v,rfb為反饋電阻引出端,此端可接運算放大器輸出端,g

21、nd分為agnd和dgna,即模擬信號地和數(shù)字信號地。引腳d0-d7為數(shù)字量輸入信號,其中d0為最低位,d7為最高位。引腳cs為片選信號,低電平有效,wr1為寫信號1,低電平有效,ile為輸入鎖存允許信號,高電平有效,當ile、cs、wr1同時有效時,le=1,輸入寄存器的輸出隨輸入變化而變化,le=0時,將輸入數(shù)據(jù)鎖存到輸入寄存器。xfer為轉(zhuǎn)移控制信號,低電平有效,wr2為寫信號2,低電平有效,當wr2、xfer同時有效時,le2=1,dac寄存器輸出隨輸入變化而變化,le=0,將輸入數(shù)據(jù)鎖存到dac寄存器,數(shù)據(jù)進入d/a轉(zhuǎn)換器,開始轉(zhuǎn)換。iout1為模擬電流輸出端1,當輸入數(shù)字為全1時,

22、輸入電流最大,全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 直流電,通過板上完善的電源系統(tǒng),為 fpga 等元件提供所需的各種電壓,并可向外輸出 5v、3.3v、1.2v 電壓。配有 epcsisi8 配置芯片,jtag 和 as 兩種下載端口,50mhz 有源晶振。設有 6

23、 個 led 發(fā)光二極管,用作簡單輸出。fpga 的所有引腳均通過2.54mm標準排針引出。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 使用的。也就是說,fpga 的 i/o 引腳電平采用的是3.3v。1.5v電壓是提供給 fpga內(nèi)核的工作電壓,以及fpga內(nèi)部pll的工作電壓。1.5v電壓的純凈程度要求比較高,故采用c3鉭電容濾波。2.4

24、.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引腳供電是獨立的,因此可以采用不同的電平標準。本開發(fā)板的所有 io 腳都采用 3.3v 電壓標準,所以所有的vccio都連接 3.3v。 vccint 為 fpga 內(nèi)核工作電壓輸入。cycloneii 系列的 fpga 均采用 1.2v的內(nèi)核電壓,所以這里連接1.

25、2v。2.4.3 時鐘信號部分時鐘信號電路如圖2-6所示。圖2-6 時鐘信號電路圖ep2c5t144提供8路時鐘供用戶使用,板載50m有源晶振,直接分頻處理得到25hz頻率,其余7 路有3 路接到接口板上使用,另外 4路直接擴展到板子上,供外部時鐘輸入的時候使用,為了增加穩(wěn)定性,對時鐘輸入部分做了型濾波處理,同時含有電阻緩沖。 2.4.4 ep2c5t144芯片部分ep2c5t144芯片引腳圖如圖2-7所示。圖2-7 ep2c5t144芯片引腳圖電源對外接口:提供一路電源輸出接口 p6 ,獨立 i/o個數(shù)是76 個,這其中有3路時鐘信號clk1 clk2 clk3 這3 個管腳只能做為輸入,使

26、用時需要注意,另外的四路時鐘采用 4個獨立的接口引出,實際可用 i/o為80個。17 。2.4.5 配置芯片部分配置芯片如圖2-8所示。圖2-8 配置芯片下載指示燈,jtag或者asp工作下載的時候,指示燈點亮,成功后熄滅。 按鍵,可以重新配置fpga,相當于復位,按下之后,指示燈亮,從配置芯片中讀取程序,成功讀取之后,程序開始正常運行,led熄滅asp以及 jtag 接口電路,采用epcsisi8配置芯片,1m容量,適合ep2c5t使用。第3章 系統(tǒng)軟件設計3.1系統(tǒng)軟件整體設計由于fpga芯片自帶50mhz的有源晶振,其頻率太高,必須經(jīng)過合適的分頻才能使用。經(jīng)過100萬分頻器即得到50hz

27、的信號,再作為100進制計數(shù)器模塊的工作時鐘,同時作為鍵盤的輸入信號;50mhz經(jīng)過200萬分頻器即得到25hz的信號作為鍵盤模塊的工作時鐘;鍵盤模塊對輸入的計數(shù)脈沖信號進行消抖處理;100進制可逆計數(shù)器模塊實現(xiàn)099的計數(shù)功能;2選1模塊實現(xiàn)選擇顯示數(shù)據(jù)的整數(shù)和小數(shù)的功能;7段譯碼器模塊實現(xiàn)把計數(shù)器的輸出二進制轉(zhuǎn)換為數(shù)碼管顯示的字符碼;二-十進制譯碼器模塊實現(xiàn)將計數(shù)器的輸出信號轉(zhuǎn)換為d/a所需要的二進制數(shù)據(jù)18。軟件整體框圖設計如圖3-1所示。圖3-1 軟件整體框圖3.2軟件模塊設計3.2.1分頻器模塊設計100萬分頻器dvf模塊如圖3-2所示。圖3-2 dvf模塊輸入clk是50mhz頻率

28、,經(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)variable cnt:integer range 0 to 500000;variable x:std_logic;begin if clkevent and clk=1 thenif

29、cnt500000 thencnt:=cnt+1;else cnt:=0;x:=not x;end if;end if;fout=x;end process ;end one;仿真波形如圖3-3所示。圖3-3 仿真波形仿真結果分析:輸入clk的頻率為50mhz(即tclk=20ns),而輸出f1=50hz, (即tfout=20ms)則次分頻器設計符合要求。200萬分頻器dvf模塊如圖3-2所示。圖3-4 dvf模塊源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dvf1

30、 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 clkevent and clk=1 thenif cnt1000000 thencnt:=cnt+1;else cnt:=0;x:=not x;end if;end if;fout=x;end process ;end one;仿真波形如圖3-5所示。圖3-5 仿真波形

31、仿真結果分析:輸入clk的頻率為50hz(即tclk=20ms),而輸出f1=25hz, (即tfout=40ms)則次分頻器設計符合要求。3.2.2鍵盤輸入模塊設計鍵盤模塊如圖3-3所示。圖3-6 鍵盤模塊up和down為輸入脈沖,經(jīng)過消抖處理得到時鐘信號clk和clk1,再得到輸出脈沖up0和down0。源程序如下: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;do

32、wn: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,downt3:std_logic;beginprocess(clk1)beginif(clk1event and clk1=1)thenupt1=up;upt2= upt1;downt1=down;downt2=downt1;end if;end process;upt3=not

33、upt2;downt3=not downt2;process(clk)beginif(clkevent and clk=1) thenup0=clk1andupt1 and upt3;down0 =clk1 and downt1 and downt3;end if;end process;end one;仿真波形如圖3-5所示。圖3-7 仿真波形仿真結果分析:經(jīng)過抖動處理,按鍵的輸出脈沖均變?yōu)橐粋€clk1時鐘周期的寬度,因開關及外界一系列因素引起的電平抖動的干擾脈沖信號全被濾掉。則此鍵盤模塊符合設計要求。3.2.3 100進制計數(shù)器模塊設計計數(shù)器模塊如圖3-8所示。圖3-8 計數(shù)器模塊源程序如

34、下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt100 isport ( 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

35、(clkevent and clk=1) then if(up=0 and down=1) thenif (cout2=9 and 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=0000;else if (cout1=0) thencout

36、2=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;q2qqqchoose_wei_machoose_wei_machoose_wei_ma=xx; end case;end process;end one;圖3-15 仿真波形分析結果:由波形可知,當a=1時,輸出信號choose_wei_ma=10; 當a=0時,輸出信號choose_wei_m

37、a=01;由此可知,每次只能選通一個數(shù)碼管,通過改變選擇信號a的頻率達到顯示要求。顯然此模塊符合設計要求。3.2.6驅(qū)動共陰極數(shù)碼管七段譯碼器模塊設計顯示模塊如圖3-12所示。圖3-14 顯示模塊源程序如下: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_vecto

38、r(6 downto 0); end segment7 ; architecture one of segment7 isbeginwith datain select dataout=1111110 when 0000, 0110000 when 0001, 1101101 when 0010, 1111001 when 0011, 0110011 when 0100, 1011011 when 0101, 1011111 when 0110, 1110000 when 0111, 1111111 when 1000, 1111011 when 1001, 1111111 when othe

39、rs; end one;仿真波形如圖3-13。圖3-15 仿真波形分析結果:dataout(6)=a, dataout(5)=b, dataout(6)=c, dataout(6)=d, dataout(6)=e, dataout(6)=f, dataout(6)=g。當datain=0000時,dataout=1111110,此時只有g段不亮,顯示0;當datain=0111時,dataout =1110000,即a,b,c三段亮,顯示字符7。其余分析類似。顯然此模塊設計符合要求。3.2.6二-十進制譯碼器模塊設計譯碼器模塊如圖3-14所示。圖3-16 譯碼器模塊源程序如下:library

40、ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity 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_outcp1,fout=clk2);u2:dvf1 port map(clk=cp1,fout=clk_

41、key);u3:cnt100 port map(clk=clk2,up=up11,down=down11,q2=q22,q1=q11);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,

42、sel=clk2);u8:segment7 port map(datain=q33,dataout=duan_ma_choose);end one;仿真波形如圖3-17。圖3-19 仿真波形分析結果:上述波形為部分仿真結果。段碼信號根據(jù)按鍵輸入的信號及時鐘信號而發(fā)生變化。由段碼信號1111110則顯示的是0的字符碼值;而0110000則顯示的是1的字符碼值。因按鍵存在抖動,內(nèi)部必須加上一定延遲才能接受到真正的按鍵信號,以防接受干擾信號而造成誤操作。第4章 系統(tǒng)運行與調(diào)試4.1系統(tǒng)運行過程步驟一:安裝驅(qū)動。插入usb下載線后,自動彈出窗口,手動設置,d:alteraquartus 9.0driv

43、erusbblaster。具體查找目錄根據(jù)自己安裝軟件quartus 9.0的所在的根目錄。具體操作如圖4-1所示。(a)(b)(c)圖4-1 操作步驟步驟二: 鎖引腳。assignments-pins-鎖好如圖4-2所示-編譯圖4-2 鎖引腳圖步驟三: ide環(huán)境設置。 (1)asignments-device-ep2c5t144-device&pin options-configuration-use configuration device-epcs1-編譯(2)tools-programmer-hardwaresetup-currently selected hardware-usb-blaster- mode-asp-選擇display.pof文件(a)(b)(c)(d)圖4-3配置文件下載-start19 。注:待程序下載完畢,先切斷電源,再拔usb下載線,再給fpga芯片及硬件上電后,程序才能生效。保證下載板在斷電的情況下進行asp接口的插拔。在軟硬件聯(lián)調(diào)時,首先給硬件上電單獨測試,檢驗數(shù)碼管顯示模塊是否正常以及d/a轉(zhuǎn)換部分是否正常工作。具體操作如下:數(shù)碼管顯示模塊-先給位碼控制信號端口加高電平,在給段碼控制信號端口加高低不同的電平,觀察是否能在0-9范圍內(nèi)正常顯示

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論