版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 數(shù)字電路課程設(shè)計(jì)報(bào)告</p><p> 課題:基于FPGA的高低位數(shù)字測溫計(jì)</p><p><b> 學(xué)院:機(jī)電工程學(xué)院</b></p><p><b> 專業(yè):自動化</b></p><p><b> 班級:</b></p>&l
2、t;p><b> 姓名:</b></p><p><b> 學(xué)號:</b></p><p><b> 指導(dǎo)老師:</b></p><p> 2014年10月14日星期二</p><p><b> 一、引言</b></p>&l
3、t;p> 課題確定過程:最初在網(wǎng)上搜過不少課題,如自動售貨機(jī)、3層電梯控制器、聲控電子鎖等,但每一個的信號采集模塊的設(shè)計(jì)以我現(xiàn)在的水平而言都很復(fù)雜,于是在嘗試了一段時間后就放棄了。后來我覺得自己必須先了解點(diǎn)關(guān)于FPGA、EDA、VHDL的一些基礎(chǔ)知識,于是到圖書館借閱了一些相關(guān)書籍,同時想到平時生活里測物體溫度時因?yàn)閷?dǎo)熱不均勻使得兩端極的溫度有較大的不同,于是就有了做高低位數(shù)字測溫計(jì)的想法。</p><p&g
4、t; 系統(tǒng)總體介紹:系統(tǒng)由FPGA器件實(shí)現(xiàn)數(shù)字測溫,利用溫度傳感器AD590采集溫度信號,產(chǎn)生的溫度信號經(jīng)調(diào)零、放大處理后,利用A/D轉(zhuǎn)換器ADC0809將模擬信號轉(zhuǎn)換成分高低位的數(shù)字信號,最后將高4位和低4位的數(shù)字信號分別連接到7段共陰極數(shù)碼顯示管上輸出溫度大?。ㄒ允M(jìn)制的形式)。</p><p><b> 二、硬件描述</b></p><p><b&g
5、t; 2.1系統(tǒng)組成框圖</b></p><p> 2.2測溫模塊(采集電路)</p><p> 溫度傳感器AD590簡介</p><p> AD590是美國ANALOG DEVICES公司的單片集成兩端感溫電流源,AD590適用于150°C以下、目前采用傳統(tǒng)電氣溫度傳感器的任何溫度檢測應(yīng)用。低成本的單芯片集成電路及無需支持電路的特點(diǎn),
6、使它成為許多溫度測量應(yīng)用的一種很有吸引力的備選方案。</p><p><b> 2.3模數(shù)轉(zhuǎn)換模塊</b></p><p> A/D轉(zhuǎn)換器ADC0809簡介</p><p> ADC0809是美國國家半導(dǎo)體公司生產(chǎn)的CMOS工藝8通道,8位逐次逼近式A/D模數(shù)轉(zhuǎn)換器。其內(nèi)部有一個8通道多路開關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號,只選通8路
7、模擬輸入信號中的一個進(jìn)行A/D轉(zhuǎn)換。</p><p> 本系統(tǒng)采集到的溫度與數(shù)字輸出量的關(guān)系</p><p> 2.4七段數(shù)碼管顯示模塊(執(zhí)行電路)</p><p> 數(shù)碼管的一種是半導(dǎo)體發(fā)光器件,數(shù)碼管可分為七段數(shù)碼管和八段數(shù)碼管,區(qū)別在于八段數(shù)碼管比七段數(shù)碼管多一個用于顯示小數(shù)點(diǎn)的發(fā)光二極管單元DP(decimal point),其基本單元是發(fā)光二極管。&
8、lt;/p><p><b> 三、軟件仿真</b></p><p><b> 3.1模數(shù)轉(zhuǎn)換模塊</b></p><p> 3.1.1VHDL語言描述</p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL
9、;</p><p> ENTITY ADC0809 IS</p><p> PORT(CLK:IN STD_LOGIC;--時鐘信號</p><p> EOC:IN STD_LOGIC;--轉(zhuǎn)換結(jié)束信號</p><p> DIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0);--采集溫度信號</p>&
10、lt;p> ALE:OUT STD_LOGIC;--地址鎖存允許信號</p><p> START:OUT STD_LOGIC;-- A/D轉(zhuǎn)換啟動脈沖輸入端</p><p> OE:OUT STD_LOGIC;--數(shù)據(jù)輸出允許信號</p><p> LOCK0:OUT STD_LOGIC;--觀察數(shù)據(jù)鎖存信號</p><p>
11、 ADDA:OUT STD_LOGIC;--3條地址輸入線</p><p> ADDB:OUT STD_LOGIC;</p><p> ADDC:OUT STD_LOGIC;</p><p> DOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));--輸出8位數(shù)字信號</p><p> END ADC0809
12、;</p><p> ARCHITECTURE BEHAV OF ADC0809 IS</p><p> TYPE STATE IS (S0,S1,S2,S3,S4);</p><p> SIGNAL CURRENT_STATE,NEXT_STATE:STATE:=S0;</p><p> SIGNAL REGL:STD_LOGIC_
13、VECTOR(7 DOWNTO 0);</p><p> SIGNAL LOCK:STD_LOGIC;</p><p><b> BEGIN</b></p><p> ADDA<='0'; --進(jìn)入通道1</p><p> ADDB<='0';<
14、/p><p> ADDC<='0';</p><p> DOUT<=REGL;</p><p> LOCK0<=LOCK; --轉(zhuǎn)換后輸出鎖存信號</p><p> COM:PROCESS(CURRENT_STATE,EOC)</p><p><b> BEGIN
15、</b></p><p> CASE CURRENT_STATE IS --5個狀態(tài)</p><p> WHEN S0=>ALE<='0'; --初始化</p><p> START<='0';</p><p> LOCK<=
16、39;0';</p><p><b> OE<='0';</b></p><p> NEXT_STATE<=S1;</p><p> WHEN S1=>ALE<='1'; --打開輸入通道</p><p> START<=
17、39;1';</p><p> LOCK<='0';</p><p><b> OE<='0';</b></p><p> NEXT_STATE<=S2;</p><p> WHEN S2=>ALE<='0';
18、--開始轉(zhuǎn)換</p><p> START<='0';</p><p> LOCK<='0';</p><p><b> OE<='0';</b></p><p> IF (EOC='1')THEN</p><p
19、> NEXT_STATE<=S3;</p><p> ELSE NEXT_STATE<=S2;</p><p><b> END IF;</b></p><p> WHEN S3=>ALE<='0';</p><p> START<='0';&
20、lt;/p><p> LOCK<='0'; --輸出數(shù)據(jù)</p><p><b> OE<='1';</b></p><p> NEXT_STATE<=S4;</p><p> WHEN S4=>ALE<='0';</p&
21、gt;<p> START<='0';</p><p> LOCK<='1'; --鎖存輸出數(shù)據(jù)</p><p> NEXT_STATE<=S0;</p><p> WHEN OTHERS=>NEXT_STATE<=S0;</p><p><
22、;b> END CASE;</b></p><p> END PROCESS COM;</p><p> REG:PROCESS(CLK)</p><p><b> BEGIN</b></p><p> IF(CLK'EVENT AND CLK='1')THEN<
23、/p><p> CURRENT_STATE<=NEXT_STATE;</p><p><b> END IF;</b></p><p> END PROCESS REG;</p><p> LATCH:PROCESS(LOCK) --數(shù)據(jù)鎖存</p><p>&l
24、t;b> BEGIN</b></p><p> IF LOCK='1' AND LOCK'EVENT THEN </p><p> REGL<=DIN; --lock上升沿鎖入轉(zhuǎn)換好的數(shù)據(jù)</p><p><b> END IF;</b></p>&l
25、t;p> END PROCESS LATCH;</p><p> END BEHAV;</p><p><b> 3.1.2統(tǒng)計(jì)報(bào)告</b></p><p><b> 3.1.3仿真波形</b></p><p> 注:(1)(2)(3)(4)(5)代表先后順序</p>
26、<p> 3.2七段數(shù)碼管顯示模塊</p><p> 3.2.1VHDL語言描述</p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> ENTITY YIMA7 IS</p><p> PORT(A:IN STD
27、_LOGIC_VECTOR(3 DOWNTO 0); --4位輸入信號</p><p> LED7S:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); --7位輸出控制數(shù)碼管</p><p><b> END;</b></p><p> ARCHITECTURE ART OF YIMA7 IS</p>
28、<p><b> BEGIN</b></p><p> PROCESS(A)</p><p><b> BEGIN</b></p><p> CASE A IS --輸入信號與數(shù)碼管顯示數(shù)字之間的關(guān)系</p><p> WHEN&q
29、uot;0000"=> LED7S<="0111111"; --分別對應(yīng)管腳圖中GFEDCBA</p><p> WHEN"0001"=> LED7S<="0000110";</p><p> WHEN"0010"=> LED7S<="1011011&
30、quot;;</p><p> WHEN"0011"=> LED7S<="1001111";</p><p> WHEN"0100"=> LED7S<="1100110";</p><p> WHEN"0101"=> LED7S&l
31、t;="1101101";</p><p> WHEN"0110"=> LED7S<="1111101";</p><p> WHEN"0111"=> LED7S<="0000111";</p><p> WHEN"1000&q
32、uot;=> LED7S<="1111111";</p><p> WHEN"1001"=> LED7S<="1101111";</p><p> WHEN"1010"=> LED7S<="1110111";</p><p>
33、 WHEN"1011"=> LED7S<="1111100";</p><p> WHEN"1100"=> LED7S<="0111001";</p><p> WHEN"1101"=> LED7S<="1011110";</
34、p><p> WHEN"1110"=> LED7S<="1111001";</p><p> WHEN"1111"=> LED7S<="1110001";</p><p> WHEN OTHERS=> NULL;</p><p>&
35、lt;b> END CASE;</b></p><p> END PROCESS;</p><p> END; </p><p><b> 3.2.2統(tǒng)計(jì)報(bào)告</b></p><p><b> 3.2.3波形仿真</b></p><p&g
36、t;<b> 3.3頂層文件模塊</b></p><p> 3.3.1VHDL語言描述</p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> ENTITY DCWJ IS</p><p> PORT(
37、 CLK:IN STD_LOGIC;</p><p> EOC:IN STD_LOGIC;</p><p> DIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p> ALE:OUT STD_LOGIC; </p><p> START:OUT STD_LOGIC;</p><
38、;p> OE:OUT STD_LOGIC;</p><p> LOCK0:OUT STD_LOGIC;</p><p> ADDA:OUT STD_LOGIC;</p><p> ADDB:OUT STD_LOGIC;</p><p> ADDC:OUT STD_LOGIC;--以上輸入輸出與ADC0809類似</p&g
39、t;<p> LED7SL:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);--低位數(shù)碼顯示管</p><p> LED7SH:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));--高位數(shù)碼顯示管</p><p><b> END DCWJ;</b></p><p> ARCHITECT
40、URE LINK OF DCWJ IS</p><p> COMPONENT ADC0809 --ADC0809的端口</p><p> PORT( CLK:IN STD_LOGIC;</p><p> EOC:IN STD_LOGIC;</p><p> DIN:IN STD_LOGIC_VECTOR(7
41、 DOWNTO 0);</p><p> ALE:OUT STD_LOGIC;</p><p> START:OUT STD_LOGIC;</p><p> OE:OUT STD_LOGIC;</p><p> LOCK0:OUT STD_LOGIC;</p><p> ADDA:OUT STD_LOGIC;
42、</p><p> ADDB:OUT STD_LOGIC;</p><p> ADDC:OUT STD_LOGIC;</p><p> DOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));</p><p> END COMPONENT;</p><p> COMPONENT YIMA
43、7 --YIMA7的端口</p><p> PORT(A:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> LED7S:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));</p><p> END COMPONENT;</p><p> SIGNAL CARRY
44、_OUTL:STD_LOGIC_VECTOR(3 DOWNTO 0); --采用名稱映射方法</p><p> SIGNAL CARRY_OUTH:STD_LOGIC_VECTOR(3 DOWNTO 0); --CARRY_OUTL和--CARRY_OUTH為中間信號</p><p><b> BEGIN</b></p><p>
45、U1:ADC0809 PORT MAP(CLK=>CLK,</p><p><b> EOC=>EOC,</b></p><p><b> DIN=>DIN,</b></p><p><b> ALE=>ALE,</b></p><p> STA
46、RT=>START,</p><p><b> OE=>OE,</b></p><p> LOCK0=>LOCK0,</p><p> ADDA=>ADDA,</p><p> ADDB=>ADDB,</p><p> ADDC=>ADDC,</
47、p><p> DOUT(7 DOWNTO 4)=>CARRY_OUTH, --高4位輸入</p><p> DOUT(3 DOWNTO 0)=>CARRY_OUTL); --低4位輸入</p><p> U2:YIMA7 PORT MAP(A(3 DOWNTO 0)=>CARRY_OUTL,--低4位輸出與低4位輸入連接</p
48、><p> LED7S=>LED7SL);--低位數(shù)碼管顯示</p><p> U3:YIMA7 PORT MAP(A(3 DOWNTO 0)=>CARRY_OUTH, --高4位輸出與高4位輸入連接</p><p> LED7S=>LED7SH);--高位數(shù)碼管顯示</p><p><b> END LINK
49、;</b></p><p><b> 3.3.2統(tǒng)計(jì)報(bào)告</b></p><p><b> 3.3.3波形仿真</b></p><p> 3.4總體模塊封裝圖</p><p><b> 3.5總結(jié)</b></p><p> 本系統(tǒng)通
50、過AD590采集溫度信號,后經(jīng)ADC0809進(jìn)行模數(shù)轉(zhuǎn)換,最后分高低位輸出到數(shù)碼顯示管上讀出溫度,以達(dá)到測量溫度的功能。</p><p><b> 四、感悟與思考</b></p><p> 最初聽到“數(shù)字電路課程設(shè)計(jì)”這門課的時候,我以為與上學(xué)期的數(shù)電實(shí)驗(yàn)是差不多的東西,于是就沒把課程設(shè)計(jì)放在心上,可是經(jīng)過一番了解后,才發(fā)現(xiàn)這對于我來說完全是一個未知的領(lǐng)域,像是F
51、PGA、VHDL這種詞匯我之前是完全沒有聽過的。雖然9月就知道了設(shè)計(jì)的要求,但真正開始進(jìn)行課程設(shè)計(jì)是從10月份開始的,無論是VHDL語言的編寫還是軟件的使用都是從零開始,甚至連上學(xué)期自認(rèn)為學(xué)的挺好的數(shù)電也忘得差不多了,時間緊任務(wù)重,所以最后完成的課程設(shè)計(jì)顯得比較簡單,一些問題也被擱置了下來,比如波形中出現(xiàn)的毛刺自己不會消除。說實(shí)話,設(shè)計(jì)過程中真的好多次想要放棄,VHDL語言不會描述,模塊不會連接,仿真波形一直在出錯,這些都一點(diǎn)一點(diǎn)打擊著
52、自己的信心,消磨著自己的耐心。但即便如此,我還是咬咬牙過來了,也許是受到了同學(xué)的感染,也許是因?yàn)樽约簝?nèi)心中小小的自尊,反正當(dāng)整個系統(tǒng)完成的時候,在自己長舒一口氣的同時,也體會到了激動與喜悅,還有小小的驕傲。如果時間能在充裕一點(diǎn),我相信自己肯定能做得更好。最后,向那些在課程設(shè)計(jì)過程中幫助過我的老師和同學(xué)們表示衷心的感謝。</p><p><b> 參考文獻(xiàn)</b></p>&l
53、t;p> [1] 楊頌華等,數(shù)字電子技術(shù)基礎(chǔ)(第二版).西安:西安電子科技大學(xué)出版社,2008</p><p> [2] 唐小華等,數(shù)字電路與EDA實(shí)踐教程.北京:科學(xué)出版社,2010</p><p> [3] 王革思,數(shù)字電路原理設(shè)計(jì)與實(shí)踐教程.哈爾濱:哈爾濱工程大學(xué)出版社,2007</p><p> [4] 賈秀美,數(shù)字電路硬件設(shè)計(jì)實(shí)踐.北京:高等
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字電路課程設(shè)計(jì)--數(shù)字溫度計(jì)的設(shè)計(jì)
- 基于數(shù)字電路的頻率計(jì)設(shè)計(jì)(課程設(shè)計(jì))
- 低頻與數(shù)字電路課程設(shè)計(jì)--數(shù)字溫度計(jì)
- 脈沖與數(shù)字電路課程設(shè)計(jì)報(bào)告--基于fpga的數(shù)字鐘
- 低頻與數(shù)字電路課程設(shè)計(jì)數(shù)字溫度計(jì)
- 數(shù)字電路課程設(shè)計(jì)
- 數(shù)字電路課程設(shè)計(jì)
- 數(shù)字電路課程設(shè)計(jì)--數(shù)字秒表
- 數(shù)字電路課程設(shè)計(jì)
- 數(shù)字電路課程設(shè)計(jì)--數(shù)字鐘
- 數(shù)字電路課程設(shè)計(jì)報(bào)告---數(shù)字秒表
- 數(shù)字電路課程設(shè)計(jì)-- 數(shù)字鐘
- 數(shù)字電路課程設(shè)計(jì)--簡易數(shù)字秒表
- 數(shù)字電路課程設(shè)計(jì) (2)
- 數(shù)字電路彩燈課程設(shè)計(jì)
- 數(shù)字電路課程設(shè)計(jì)報(bào)告
- 數(shù)字電路課程設(shè)計(jì)報(bào)告
- 基于數(shù)字電路的電子秒表課程設(shè)計(jì)
- 數(shù)字電路課程設(shè)計(jì)---數(shù)字密碼判斷電路
- 數(shù)字電路課程設(shè)計(jì)----多功能數(shù)字時鐘
評論
0/150
提交評論