【正文】
MP3+0110。 ELSE TEMP3: =HB(11 DOWNTO 8)+LB(11 DOWNTO 8)。 END IF。 END IF。 VALUE=TEMP3amp。TEMP1。 將經(jīng)過(guò)BCD碼轉(zhuǎn)換處理后的數(shù)據(jù)輸出 BCDOUT=VALUE。 END ARCHITECTURE ART。數(shù)據(jù)運(yùn)算與處理模塊SJYSCL的VHDL源程序: 數(shù)據(jù)運(yùn)算與處理模塊符號(hào)編輯文件 LIBRARY IEEE。 USE 。 DABC: IN STD_LOGIC_VECTOR(11 DOWNTO 0)。 DTB: IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 QABC: OUT STD_LOGIC_VECTOR(11 DOWNTO 0))。 ARCHITECTURE ART OF SJYSCL IS SIGNAL DA,DB,DC: STD_LOGIC_VECTOR(3 DOWNTO 0)。 BEGIN DA=DABC(11 DOWNTO 8)。 DC=DABC(3 DOWNTO 0)。 DDB=DTB(3 DOWNTO 0)。 PROCESS IS VARIABLETEMPA,TEMPB,TEMPC: STD_LOGIC_VECTOR(3 DOWNTO 0)。139。 IF DADDA THEN IF DBDDB THEN IF DC=DDC THENTEMPC: =DCDDC。 TEMPA: =DADDA。 IF TEMPC1001 THEN TEMPC: =TEMPC+0110。 TEMPB: =DB39。DDB。 END IF。 TEMPB: =DBDDB。 ELSE TEMPC: =1010DDC+DC。 END IF。139。 IF TEMPB1001 THENTEMPC: =DCDDC。 TEMPA: =DADDA。 IF TEMPC1001 THEN TEMPC: =TEMPC+0110。 TEMPB: =DB39。DDB。 END IF。 TEMPB: =DBDDB。 ELSE TEMPC: =1010DDC+DC。 END IF。139。 IF TEMPB1001 THENTEMPB: =TEMPB+0110。 TEMPA: =DA39。DDA。 ELSE IF DC=DDC THEN TEMPC: =DCDDC。 IF TEMPB1001 THEN TEMPB: =TEMPB+0110。 TEMPA: =DA39。DDA。 IF TEMPC1001 THEN TEMPC: =TEMPC+0110。 TEMPB: =101039。DDB+DB。 END IF。139。 END IF。 ELSIF DA=DDA THENIF DBDDB THEN IF DC=DDC THEN TEMPC: =DCDDC。 TEMPA: =DADDA。 IF TEMPC1001 THEN TEMPC: =TEMPC+0110。 TEMPB: =DB39。DDB。 END IF。 TEMPB: =DBDDB。 ELSE TEMPC: =DDCDC。 TEMPA: =DDADA。 ELSEIF DDC=DC THEN TEMPC: =DDCDC。 TEMPA: =DDADA。 IF TEMPC1001 THEN TEMPC: =TEMPC+0110。 TEMPB: =DDB39。DB。 END IF。 ELSE IF DDBDB THEN IF DDC=DC THEN TEMPC: =DDCDC。 TEMPA: =DDADA。 IF TEMPC1001 THEN TEMPC: =TEMPC+0110。 TEMPB: =DDB39。DB。 END IF。 TEMPB: =DDBDB。 ELSE TEMPC: =1010DC+DDC。 END IF。139。 END IF。139。 END IF。 TEMPB: =1010DC+DDC。 END IF。139。 ELSE TEMPC: =1010DC+DDC。 END IF。139。 IF TEMPB1001 THEN TEMPB: =TEMPB+0110。 TEMPA: =DDA39。DA。 END IF。 QABC(11 DOWNTO 8)=TEMPA。 QABC(3 DOWNTO 0)=TEMPC。 END ARCHITECTURE ART。D/A轉(zhuǎn)換控制模塊DAZHKZ的VHDL源程序: D/A轉(zhuǎn)換控制模塊符號(hào)編輯文件LIBRARY IEEE。 USE 。 ENTITY DAZHKZ IS PORT(DATA_IN: IN STD_LOGIC_VECTOR(11 DOWNTO 0)。 KK: IN STD_LOGIC。 DATA_OUT: OUT STD_LOGIC_VECTOR(7 DOWNTO 0))。 ARCHITECTURE ART OF DAZHKZ IS SIGNAL TEMPG: INTEGER RANGE 0 TO 9。 BCDS SIGNAL TEMPB: INTEGER RANGE 0 TO 9。 SIGNAL DATA: STD_LOGIC_VECTOR(7 DOWNTO 0)。 TEMPS=CONV_INTEGER(DATA_IN(7 DOWNTO 4))。 TEMP=TEMPB*100+TEMPS*10+TEMPG。139。039。 ELSIF RISING_EDGE(CLK) THENDATA=CONV_STD_LOGIC_VECTOR(TEMP,8)。139。 ELSE NULL。 END IF。 END ARCHITECTURE ART。鍵盤(pán)輸入與數(shù)據(jù)顯示控制模塊JPXSKZ的VHDL源程序: 鍵盤(pán)輸入與數(shù)據(jù)顯示控制模塊符號(hào)編輯文件LIBRARY IEEE。 USE 。 KEYC: IN STD_LOGIC。 QA: IN STD_LOGIC_VECTOR(11 DOWNTO 0)。 END ENTITY JPXSKZ。 SIGNAL A: STD_LOGIC_VECTOR(11 DOWNTO 0)。 BEGINIF RISING_EDGE(KEYC) THEN IF TEMP=10 THEN TEMP: =00。139。 END IF。 END PROCESS CHOSEKEY 。 WHEN 01=DATAOUT=BCDOUT。 WHEN OTHERS=NULL。 END PROCESS CHOSEDISPLAY。 BEGIN WAIT UNTIL KEY=39。 IF STATE=00 THENIF TEMPA=1001 THEN TEMPA: =0000。139。 TEMPC: =TEMPC+39。 IF TEMPC=1001 THEN TEMPC: =0000。 END IF。139。 ELSE NULL。 A(11 DOWNTO 8)=TEMPC。 A(3 DOWNTO 0)=TEMPA。 END ARCHITECTURE ART。它是七段譯碼器, Q為輸出邏輯變量,用七位二進(jìn)制數(shù)來(lái)實(shí)現(xiàn)七段譯碼器的功能,最終顯示出顯示模塊要求的三類(lèi)數(shù)。 USE 。 Q:OUT STD_LOGIC_VECTOR(6 DOWNTO 0))。ARCHITECTURE DISP_ARC OF DISP IS BEGIN PROCESS(D) BEGIN CASE D IS WHEN0000=Q=1000000。 WHEN0010=Q=0100100。 WHEN0100=Q=0011001。 WHEN0110=Q=0000010。 WHEN1000=Q=0000000。 WHEN OTHERS=Q=1111111。END PROCESS。 DAC0832芯片介紹此模塊設(shè)計(jì)所使用的芯片是DAC0832。DAC0832有三種工作方式:?jiǎn)尉彌_方式、雙緩沖方式、直通方式 。:片選端,低電平有效ILE:數(shù)據(jù)鎖存允許控制端,高電平有效:第一級(jí)輸入寄存器寫(xiě)選通控制,低電平有效。:數(shù)據(jù)傳送控制,低電平有效。當(dāng)XFER=0,WR2=0時(shí),輸入寄存器狀態(tài)轉(zhuǎn)入8位DAC寄存器中。Iout2:D/A轉(zhuǎn)換器電流輸出1端,Iout1+ Iout2=常數(shù)。DGND:數(shù)字信號(hào)地。 DACO832接線(xiàn)圖圖中D0~D7為數(shù)字量信號(hào)輸入通道,運(yùn)放本身主要實(shí)現(xiàn)將信號(hào)放大2倍的功能。再送出ALE信號(hào)將地址信號(hào)鎖存,然后查詢(xún)EOC信號(hào),若EOC變?yōu)楦唠娖剑瑒t說(shuō)明轉(zhuǎn)換已結(jié)束。(注:ALE:地址鎖存允許信號(hào);START:轉(zhuǎn)換啟動(dòng)信號(hào);OE:輸出允許信號(hào),高電平允許轉(zhuǎn)換結(jié)果輸出;CLK:時(shí)鐘信號(hào);EOC:轉(zhuǎn)換結(jié)束信號(hào),為0代表正在轉(zhuǎn)換,1代表轉(zhuǎn)換結(jié)束),最終輸出12位BCD碼。 DAZHKZ的仿真結(jié)果圖,當(dāng)開(kāi)關(guān)KK有效時(shí)實(shí)行對(duì)差值進(jìn)行八位二進(jìn)制轉(zhuǎn)換。 DISP的仿真結(jié)果圖 總的仿真結(jié)果圖,開(kāi)關(guān)高電平有效,改變KEY,采集數(shù)據(jù)個(gè)數(shù)累加,改變KEYC,上升沿時(shí),輸入電壓、電壓差值、采集數(shù)據(jù)個(gè)數(shù)三個(gè)數(shù)循環(huán)變換。在長(zhǎng)時(shí)間的熟悉EDA下,我漸漸入門(mén)了,編寫(xiě)、調(diào)試、仿真程序這一系列過(guò)程令我感到無(wú)比充實(shí)。在指導(dǎo)老師極其認(rèn)真、耐心地指導(dǎo)下,我順利的完成了整個(gè)畢業(yè)設(shè)計(jì)。在設(shè)計(jì)中,采用多進(jìn)程描述的方法來(lái)進(jìn)行程序設(shè)計(jì),通過(guò)使用進(jìn)程可以把整體的功能局部化、分塊設(shè)計(jì)。當(dāng)進(jìn)程比較多的時(shí)候,它們之間的配合問(wèn)題就比較復(fù)雜,因此在設(shè)計(jì)之前應(yīng)該合理規(guī)劃安排。致謝本次畢業(yè)論文是在我的指導(dǎo)老師的不斷督促和悉心指導(dǎo)下完成的。參考文獻(xiàn)[1] EDA技術(shù)綜合應(yīng)用實(shí)例與分析 西安電子科技大學(xué)出版社.[2] 錢(qián)敏,黃秋萍,[].電子工程師,06年,32卷第2期:6667. .[3] [M] 北京:機(jī)械工業(yè)出版社,2005.[4] [M].西安:西北工業(yè)大學(xué)出版社,2001.[5] 王振紅,[M].北京:北方工業(yè)大學(xué)出版社,2003.[6] [M].成都:電子科技大學(xué)出版社,2000.[7] 潘松, 黃繼業(yè). EDA技術(shù)實(shí)用教程[M]. 北京: 科學(xué)出版社, 2002.[8] 王林,商周,[J].電測(cè)與儀表,04年,第八期:17.第 38 頁(yè) 共 38 頁(yè)