版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課程設(shè)計(jì)說明書</b></p><p> 課程:EDA技術(shù)基礎(chǔ)</p><p><b> 組號(hào):B8組</b></p><p> 題 目:病房呼叫系統(tǒng)</p><p><b> 組 員:</b></p><p
2、> 專 業(yè):電子信息科學(xué)與技術(shù)</p><p><b> 指導(dǎo)教師:</b></p><p><b> 2010年1月8日</b></p><p><b> B8組整體設(shè)計(jì)報(bào)告</b></p><p><b> 目 錄</b><
3、;/p><p> 一、課程設(shè)計(jì)思路………………………………………………………1</p><p> 1、設(shè)計(jì)題目……………………………………………………1</p><p> 2、設(shè)計(jì)要求……………………………………………………1</p><p> 3、設(shè)計(jì)想法……………………………………………………1</p><p>
4、; 二、課程設(shè)計(jì)過程………………………………………………………2</p><p> 1、模塊分配……………………………………………………2</p><p> 2、模塊具體設(shè)計(jì)………………………………………………2</p><p> 三、課程設(shè)計(jì)綜合介紹…………………………………………………4</p><p> 1、整體原理圖…………
5、………………………………………4</p><p> 2、引腳配置……………………………………………………5</p><p> 3、整體設(shè)計(jì)實(shí)現(xiàn)………………………………………………5</p><p> 參考文獻(xiàn)…………………………………………………………………6</p><p> 附件(病房呼叫系統(tǒng)整體程序)……………………………………
6、…7</p><p><b> 一、課程設(shè)計(jì)思路</b></p><p> 一)、設(shè)計(jì)題目:病房呼叫系統(tǒng)</p><p><b> 二)、設(shè)計(jì)要求:</b></p><p> 用8個(gè)開關(guān)模擬8個(gè)病房的呼叫輸入信號(hào),1號(hào)優(yōu)先級(jí)最高;1~8優(yōu)先級(jí)依次降低;</p><p>
7、; 用一個(gè)數(shù)碼管顯示呼叫信號(hào)的號(hào)碼;沒信號(hào)時(shí)顯示0;有多個(gè)信號(hào)呼叫時(shí),顯示優(yōu)先級(jí)最高的呼叫號(hào)(其他呼叫用指示燈顯示);用四個(gè)數(shù)碼管顯示呼叫等待時(shí)間(mm ss)。</p><p> 凡有呼叫發(fā)出5秒的提示聲;呼叫3分鐘未處理輸出報(bào)警信號(hào)。</p><p> 發(fā)揮部分:對(duì)低優(yōu)先級(jí)的呼叫進(jìn)行存儲(chǔ),處理完高優(yōu)先級(jí)的呼叫,再進(jìn)行低優(yōu)先級(jí)呼叫的處理。</p><p>&
8、lt;b> 三)、設(shè)計(jì)想法:</b></p><p> 1、整體設(shè)計(jì)思路:根據(jù)設(shè)計(jì)要求,我們將設(shè)計(jì)分為幾個(gè)模塊來設(shè)計(jì),分別為:鎖存模塊、選優(yōu)模塊(對(duì)病房選優(yōu))、選優(yōu)模塊2(對(duì)復(fù)位選優(yōu))、計(jì)時(shí)模塊、顯示模塊、蜂鳴模塊。</p><p><b> 2、整體設(shè)計(jì)流程:</b></p><p> ?。?)、鎖存器:對(duì)病房呼叫的信
9、號(hào)進(jìn)行存儲(chǔ)并處理信號(hào),需要用一個(gè)對(duì)所有的呼叫信號(hào)進(jìn)行存儲(chǔ)的鎖存器。</p><p> ?。?)、數(shù)據(jù)選擇器(選優(yōu)):對(duì)發(fā)出呼叫的病房進(jìn)行優(yōu)先選擇,選擇優(yōu)先級(jí)最高的一個(gè)病房號(hào),病房號(hào)從1到8優(yōu)先級(jí)一次降低。</p><p> ?。?)、數(shù)據(jù)選擇器2(選優(yōu)2):對(duì)時(shí)間控制信號(hào)進(jìn)優(yōu)先選擇,這樣就是的數(shù)碼管顯示器顯示的時(shí)間為當(dāng)前優(yōu)先級(jí)最高的病房所呼叫的時(shí)間。</p><p>
10、; ?。?)、計(jì)時(shí)器:病房呼叫系統(tǒng)中要求凡有呼叫發(fā)出,呼叫3分種未處理輸出報(bào)警信號(hào),即要求一個(gè)模塊對(duì)呼叫時(shí)間計(jì)時(shí),因此我們?cè)O(shè)計(jì)一個(gè)分秒計(jì)時(shí)器,對(duì)呼叫時(shí)間計(jì)時(shí)。實(shí)驗(yàn)箱中時(shí)鐘頻率為20MHZ,故計(jì)時(shí)部分需加入分頻,我們使之為1s。</p><p> ?。?)、顯示器:用一個(gè)數(shù)碼管顯示呼叫信號(hào)的號(hào)碼,用四個(gè)數(shù)碼管顯示呼叫等待時(shí)間(mm ss),設(shè)計(jì)一七段數(shù)碼顯示器,數(shù)碼片選為低電平有效,掃描信號(hào)定為1KHZ。</
11、p><p><b> 二、課程設(shè)計(jì)過程</b></p><p><b> 一)、模塊分配</b></p><p><b> ?。烘i存模塊</b></p><p> ?。哼x優(yōu)模塊、對(duì)復(fù)位選優(yōu)模塊</p><p><b> ?。河?jì)時(shí)模塊</b
12、></p><p><b> ?。猴@示模塊</b></p><p> ?。哼B接模塊、蜂鳴器模塊</p><p><b> 二)、模塊具體設(shè)計(jì)</b></p><p> 鎖存模塊:由于有8個(gè)病房所以設(shè)計(jì)了8個(gè)輸入信號(hào)且高電平時(shí)為信號(hào)輸入,另外考慮到時(shí)間模塊顯示的是當(dāng)前等待時(shí)間,所以小組討論后
13、決定時(shí)間顯示當(dāng)前等待時(shí)間為最好,所以在鎖存模塊,把復(fù)位加到鎖存模塊,高電平的時(shí)候表示復(fù)位不工作,低電平的時(shí)候表示復(fù)位。鎖存器的一個(gè)輸入信號(hào)與LED燈相連,使得有呼叫信號(hào)時(shí),與病房相對(duì)應(yīng)的燈亮。另外一個(gè)相同的輸出信號(hào)連接選優(yōu)器,對(duì)信號(hào)進(jìn)行選優(yōu),還有一個(gè)相同輸出信號(hào)控制計(jì)時(shí)模塊中的SP信號(hào)。</p><p> 選優(yōu)模塊:由設(shè)計(jì)要求,數(shù)碼管要顯示優(yōu)先級(jí)最高的病房的呼叫信號(hào),所以我們須得對(duì)病房呼叫信號(hào)進(jìn)行選優(yōu),還考慮到
14、對(duì)時(shí)間的優(yōu)先級(jí)的問題,所以設(shè)計(jì)了兩個(gè)優(yōu)先輸出信號(hào)。程序功能部分按優(yōu)先病房號(hào)順序依次輸出BCD碼代表的1、2、3、4、5、6、7、8.</p><p> 選優(yōu)2:考慮到復(fù)位鍵一一對(duì)應(yīng)的問題,我們的時(shí)間模塊又只用了一個(gè),顯示當(dāng)前最優(yōu)先病房的等待時(shí)間,所以選優(yōu)2模塊連在選優(yōu)模塊的后面以及和8個(gè)位寬的復(fù)位信號(hào)相連,然后通過選優(yōu)模塊,使得輸出地復(fù)位信號(hào)為當(dāng)前最優(yōu)先的病房所對(duì)應(yīng)的復(fù)位信號(hào)。鎖存器模塊的一個(gè)輸出信號(hào)也在這時(shí)進(jìn)
15、行選優(yōu),選出來的優(yōu)先級(jí)最高的信號(hào)與時(shí)間模塊中的SP信號(hào)對(duì)應(yīng)。</p><p> 計(jì)時(shí)模塊:由設(shè)計(jì)要求計(jì)時(shí)用四個(gè)數(shù)碼管顯示mmss, 所以時(shí)間方面采用的是以秒進(jìn)位,實(shí)驗(yàn)箱中的時(shí)間頻率為20MHZ,所以選擇了0:20000000即一秒的分頻,另外由于有呼叫信號(hào)時(shí),SP=1,我們得立即計(jì)時(shí),所以定義了每個(gè)1秒之內(nèi)出現(xiàn)一個(gè)上升沿,當(dāng)上升沿到來時(shí)時(shí)間加計(jì)1s,另外mmss之中前一個(gè)m代表的是分的十位,后一個(gè)m代表的是分的
16、個(gè)位,前一個(gè)s代表的是秒的十位,后一個(gè)s代表的是秒的個(gè)位。</p><p> 顯示模塊:顯示模塊所要顯示的就是優(yōu)先級(jí)最高的呼叫病房的號(hào)碼以及呼叫等待的時(shí)間mmss,所以在模塊的設(shè)計(jì)當(dāng)中,我們用中間的六個(gè)數(shù)碼管依次顯示當(dāng)前最優(yōu)先呼叫病房號(hào),分的十位,分的個(gè)位,再一個(gè)數(shù)碼管顯示一橫杠,和秒計(jì)位區(qū)分開來。在依次是秒的十位,秒的個(gè)位。</p><p> 連接模塊:由于各個(gè)模塊成功之后進(jìn)行頂層設(shè)
17、計(jì)時(shí),時(shí)間模塊和蜂鳴器模塊的位寬不相等,故我設(shè)計(jì)了一個(gè)連接模塊,使得兩模塊能夠順利銜接起來。連接模塊的輸出部分和時(shí)間模塊的mmss各部分相互對(duì)應(yīng),模塊輸出部分位寬的15-12位與記秒的個(gè)位的3-0位對(duì)應(yīng),位寬的11-8位與記秒的十位的3-0相對(duì)應(yīng),位寬的7-4位與記分的個(gè)位的3-0相對(duì)應(yīng),位寬的3-0位與記分的十位的3-0位相對(duì)應(yīng)。</p><p> 蜂鳴器模塊:考慮到計(jì)時(shí)后發(fā)出5秒的提示聲以及燈亮3分鐘后進(jìn)行
18、報(bào)警,所以我設(shè)計(jì)的報(bào)警器模塊和時(shí)間的鏈接模塊是聯(lián)系起來的,當(dāng)輸入為0000 0001 0000 0000表示的是1秒,0000 0010 0000 0000表示的是2秒,以此類推,當(dāng)表示的時(shí)間是1-5秒時(shí)令蜂鳴器響,此時(shí)輸出為低電平,表是的是蜂鳴器工作。當(dāng)時(shí)間在6秒到3分鐘之間的時(shí)候,編寫程序另輸出為高電平,此時(shí)蜂鳴器不工作。超過三分鐘時(shí)再令蜂鳴器工作5秒,進(jìn)行報(bào)警工作,此時(shí)已經(jīng)達(dá)到設(shè)計(jì)要求。 </p><p>
19、; 三、課程設(shè)計(jì)綜合介紹</p><p> 我們對(duì)這個(gè)模塊剛開始設(shè)計(jì)了和現(xiàn)在不同的方案,然后頂層設(shè)計(jì)時(shí)發(fā)現(xiàn)并不好實(shí)現(xiàn),而且連接之后模塊也比較復(fù)雜,所以我們重新思考之后就有了現(xiàn)在模塊的初稿,但是在頂層設(shè)定好之后,跑實(shí)驗(yàn)箱是顯示的結(jié)果并不如預(yù)期的,多次調(diào)試沒出結(jié)果之后,我選擇了排除錯(cuò)誤,首先從自身下手,我把頂層的連接改成了用系統(tǒng)框圖表示,選它的優(yōu)點(diǎn)是比較直觀,設(shè)想正確的話基本上不會(huì)出現(xiàn)什么錯(cuò)誤,所以,當(dāng)問題再次出
20、現(xiàn)時(shí)我考慮到了每個(gè)模塊的邏輯問題,經(jīng)過一個(gè)一個(gè)找出現(xiàn)的問題,從時(shí)間模塊的SP的高低電平的修改,在到蜂鳴器和時(shí)間表示對(duì)應(yīng)的修改,在到對(duì)選優(yōu)模塊最后執(zhí)行語(yǔ)句YOU歸零的修改,解決了計(jì)時(shí)器一直計(jì)時(shí)、蜂鳴器不工作、病房顯示號(hào)不歸零等問題,終于圓滿的完成了實(shí)驗(yàn)的要求。</p><p> 一)、病房呼叫系統(tǒng)框圖如下:</p><p><b> 引腳配置如圖:</b></
21、p><p> 二)、綜合引腳配置如下:</p><p> 三)、整體設(shè)計(jì)實(shí)現(xiàn)描述:</p><p> 實(shí)驗(yàn)箱上有8個(gè)7段數(shù)碼管、16個(gè)用戶LED燈(8個(gè)大LED燈,8個(gè)小LED燈)、16個(gè)開關(guān)量輸入端口、8個(gè)撥碼開關(guān)、 蜂鳴器等。工程引腳鎖定下載完后,將其下載進(jìn)FPGA中,進(jìn)行硬件測(cè)試。具體實(shí)現(xiàn)如下:實(shí)驗(yàn)箱中有8個(gè)7段數(shù)碼管,我們只用到了其中的6個(gè),除前兩個(gè)外從左
22、到右分別顯示:病房號(hào)碼、minitue2、minitue1、——(橫杠)、second2、 second1。對(duì)應(yīng)病房號(hào)指示燈我們用8個(gè)小LED。接通電源,計(jì)時(shí)程序已下載進(jìn)實(shí)驗(yàn)箱,蜂鳴器開始時(shí)不響,6個(gè)數(shù)碼管顯示000--00,撥碼開關(guān)從SW1-SW7依次表示的是病房號(hào)1-7,當(dāng)按下?lián)艽a開關(guān)SW1時(shí)表示2號(hào)病房開始計(jì)時(shí),蜂鳴器接著響5秒鐘然后不響,到時(shí)間記為三分鐘時(shí)又開始報(bào)警。當(dāng)同時(shí)按開關(guān)SW2與SW3時(shí),病房號(hào)顯示的還是2,因?yàn)椴》?的
23、優(yōu)先級(jí)比病房三的要高,另外病房相應(yīng)的撥碼開關(guān)打開后,相應(yīng)的指示燈也開始亮,小燈從左到右依次顯示優(yōu)先級(jí)從低到高的8個(gè)病房的呼叫情況。我們的實(shí)驗(yàn)的一個(gè)特色是設(shè)置了8個(gè)復(fù)位信號(hào),我們主要考慮到一個(gè)實(shí)際問題,每一個(gè)復(fù)位鍵對(duì)應(yīng)了當(dāng)時(shí)優(yōu)先級(jí)最高的一個(gè)病房的燈控和時(shí)間控制,當(dāng)護(hù)士去處理優(yōu)先級(jí)最高病房的呼叫信號(hào)</p><p><b> 參考文獻(xiàn)</b></p><p> FPG
24、A實(shí)驗(yàn)指導(dǎo)書(5萬門).doc </p><p> EDA技術(shù)與VHDL 清華大學(xué)出版社 黃繼業(yè) </p><p> www.eetop.cn</p><p> (VHDL_與數(shù)字電路設(shè)計(jì)</p><p> 硬件語(yǔ)言描述與數(shù)字邏輯電路設(shè)計(jì) 侯伯亨 、顧新 編著)</p><p><b> 附件
25、:</b></p><p> 病房呼叫系統(tǒng)整體程序</p><p><b> 一、鎖存器</b></p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> ENTITY SUOCUNQI IS&
26、lt;/p><p> PORT(REST:IN STD_LOGIC_VECTOR(7 DOWNTO 0); </p><p> SIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p> SOUT1:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p> SOUT2
27、:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p> SOUT3:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));</p><p> END SUOCUNQI;</p><p> ARCHITECTURE bhv OF SUOCUNQI IS</p><p> SIGNAL SOU
28、T:STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p><b> BEGIN</b></p><p> PROCESS(REST,SIN)</p><p><b> BEGIN</b></p><p> IF REST(0)='1' AND SIN(0
29、)='0' THEN SOUT(0)<='1';</p><p> ELSE SOUT(0)<='0';</p><p><b> END IF;</b></p><p> IF REST(1)='1' AND SIN(1)='0' THEN S
30、OUT(1)<='1';</p><p> ELSE SOUT(1)<='0';</p><p><b> END IF;</b></p><p> IF REST(2)='1' AND SIN(2)='0' THEN SOUT(2)<='1'
31、;;</p><p> ELSE SOUT(2)<='0';</p><p><b> END IF;</b></p><p> IF REST(3)='1' AND SIN(3)='0' THEN SOUT(3)<='1';</p><p&g
32、t; ELSE SOUT(3)<='0';</p><p><b> END IF;</b></p><p> IF REST(4)='1' AND SIN(4)='0' THEN SOUT(4)<='1';</p><p> ELSE SOUT(4)<=
33、'0';</p><p><b> END IF;</b></p><p> IF REST(5)='1' AND SIN(5)='0' THEN SOUT(5)<='1';</p><p> ELSE SOUT(5)<='0';</p>
34、;<p><b> END IF;</b></p><p> IF REST(6)='1' AND SIN(6)='0' THEN SOUT(6)<='1';</p><p> ELSE SOUT(6)<='0';</p><p><b>
35、; END IF;</b></p><p> IF REST(7)='1' AND SIN(7)='0' THEN SOUT(7)<='1';</p><p> ELSE SOUT(7)<='0';</p><p><b> END IF;</b>
36、</p><p> END PROCESS;</p><p> SOUT1<=SOUT;</p><p> SOUT2<=SOUT;</p><p> SOUT3<=SOUT;</p><p> END ARCHITECTURE bhv;</p><p><b&
37、gt; 二、選優(yōu)模塊</b></p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> ENTITY XUANYOU IS</p><p> PORT(SOUT:IN STD_LOGIC_VECTOR(7 DOWNTO 0);</p&
38、gt;<p> YOU1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> YOU2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));</p><p> END XUANYOU;</p><p> ARCHITECTURE bhv OF XUANYOU IS</p><
39、p> SIGNAL YOU:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p><b> BEGIN</b></p><p> PROCESS(SOUT,YOU)</p><p><b> BEGIN</b></p><p> IF SOUT(0)='
40、1' THEN YOU<="0001";</p><p> ELSE IF SOUT(1)='1' THEN YOU<="0010";</p><p> ELSE IF SOUT(2)='1' THEN YOU<="0011";</p><p>
41、 ELSE IF SOUT(3)='1' THEN YOU<="0100";</p><p> ELSE IF SOUT(4)='1' THEN YOU<="0101";</p><p> ELSE IF SOUT(5)='1' THEN YOU<="0110"
42、;;</p><p> ELSE IF SOUT(6)='1' THEN YOU<="0111";</p><p> ELSE IF SOUT(7)='1' THEN YOU<="1000";</p><p> ELSE YOU1<="0000";&l
43、t;/p><p><b> END IF;</b></p><p><b> END IF;</b></p><p><b> END IF;</b></p><p><b> END IF;</b></p><p><b
44、> END IF;</b></p><p><b> END IF;</b></p><p><b> END IF;</b></p><p><b> END IF;</b></p><p> END PROCESS;</p><
45、;p> YOU1<=YOU;</p><p> YOU2<=YOU;</p><p> END ARCHITECTURE bhv;</p><p><b> 三、計(jì)時(shí)選優(yōu)模塊</b></p><p> LIBRARY IEEE;</p><p> USE IEEE.S
46、TD_LOGIC_1164.ALL;</p><p> ENTITY XUANYOU2 IS</p><p> PORT(REST:IN STD_LOGIC_VECTOR(7 DOWNTO 0); </p><p> SOUT3:IN STD_LOGIC_VECTOR(7 DOWNTO 0); </p><p> YOU
47、1:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> ZQ:OUT STD_LOGIC;</p><p> LJ:OUT STD_LOGIC);</p><p> END XUANYOU2;</p><p> ARCHITECTURE bhv OF XUANYOU2 IS</p><
48、;p><b> BEGIN</b></p><p> PROCESS(YOU1)</p><p><b> BEGIN</b></p><p> IF YOU1="0001" THEN LJ<=REST(0);</p><p> ELSE IF YOU1=&
49、quot;0010" THEN LJ<=REST(1);</p><p> ELSE IF YOU1="0011" THEN LJ<=REST(2);</p><p> ELSE IF YOU1="0100" THEN LJ<=REST(3);</p><p> ELSE IF YOU1=&q
50、uot;0101" THEN LJ<=REST(4);</p><p> ELSE IF YOU1="0110" THEN LJ<=REST(5);</p><p> ELSE IF YOU1="0111" THEN LJ<=REST(6);</p><p> ELSE IF YOU1=&qu
51、ot;1000" THEN LJ<=REST(7);</p><p><b> END IF; </b></p><p><b> END IF; </b></p><p><b> END IF; </b></p><p><b> END
52、 IF; </b></p><p><b> END IF; </b></p><p><b> END IF; </b></p><p><b> END IF; </b></p><p> END IF; </p><p
53、> END PROCESS;</p><p> PROCESS(SOUT3)</p><p><b> BEGIN</b></p><p> IF YOU1="0001" THEN ZQ<=SOUT3(0);</p><p> ELSE IF YOU1="0010&qu
54、ot; THEN ZQ<=SOUT3(1);</p><p> ELSE IF YOU1="0011" THEN ZQ<=SOUT3(2);</p><p> ELSE IF YOU1="0100" THEN ZQ<=SOUT3(3);</p><p> ELSE IF YOU1="0101&
55、quot; THEN ZQ<=SOUT3(4);</p><p> ELSE IF YOU1="0110" THEN ZQ<=SOUT3(5);</p><p> ELSE IF YOU1="0111" THEN ZQ<=SOUT3(6);</p><p> ELSE IF YOU1="100
56、0" THEN ZQ<=SOUT3(7);</p><p><b> END IF; </b></p><p><b> END IF; </b></p><p><b> END IF; </b></p><p><b> END IF;
57、</b></p><p><b> END IF; </b></p><p><b> END IF; </b></p><p><b> END IF; </b></p><p> END IF; </p><p>
58、 END PROCESS; </p><p> END ARCHITECTURE bhv;</p><p><b> 四、時(shí)間模塊</b></p><p> LIBRARY IEEE; </p><p> USE IEEE.STD_LOGIC_1164.ALL</p><p> USE
59、 IEEE.STD_LOGIC_UNSIGNED.ALL</p><p> ENTITY TIME IS</p><p> PORT(REST,SP,CLK :IN STD_LOGIC;</p><p> SECOND1,SECOND2,MINITUE1,MINITUE2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));</p&
60、gt;<p><b> END TIME;</b></p><p> ARCHITECTURE ONE OF TIME IS</p><p> SIGNAL TIMECLK,MINI:STD_LOGIC;</p><p> SIGNAL SEC1,SEC2:STD_LOGIC_VECTOR(3 DOWNTO 0);<
61、/p><p> SIGNAL MINI1,MINI2:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p><b> BEGIN</b></p><p> MINITUE1(3 DOWNTO 0)<=MINI1(3 DOWNTO 0);MINITUE2(3 DOWNTO 0)<=MINI2(3 DOWNTO
62、0);</p><p> SECOND1(3 DOWNTO 0)</p><p> PROCESS(CLK,SP)</p><p> VARIABLE CNT:INTEGER RANGE 0 TO 20000000;--分頻 1S</p><p><b> BEGIN</b></p><p&g
63、t; IF CLK'EVENT AND CLK='1'AND SP='1' THEN CNT:=CNT+1;</p><p> IF CNT<10000000 THEN TIMECLK<='1';</p><p> ELSIF CNT<20000000 THEN TIMECLK<='0';
64、</p><p> ELSE CNT:=0;TIMECLK<='0';</p><p><b> END IF;</b></p><p><b> END IF;</b></p><p> END PROCESS;</p><p> -----
65、---------</p><p> PROCESS(TIMECLK,REST) --計(jì)時(shí)部分程序</p><p><b> BEGIN </b></p><p> IF(REST='0') THEN </p><p> MINI2 <="0000"; MINI1 <
66、;="0000"; SEC2<="0000"; SEC1<="0000";</p><p> ELSIF (TIMECLK'EVENT AND TIMECLK='1')THEN --檢驗(yàn)時(shí)鐘上升沿</p><p> IF SEC1<"1001"THEN SEC1&l
67、t;=SEC1+1;</p><p><b> ELSE</b></p><p> SEC1<="0000";</p><p> IF SEC2<"0101"THEN SEC2<=SEC2+1;</p><p><b> ELSE</b&g
68、t;</p><p> SEC2<="0000";</p><p> IF MINI1<"1001"THEN MINI1<=MINI1+1;</p><p><b> ELSE</b></p><p> MINI1<="0000"
69、;</p><p> IF MINI2<"0101"THEN MINI2<=MINI2+1;</p><p><b> ELSE</b></p><p> MINI2<="0000";</p><p><b> END IF;</b>
70、</p><p><b> END IF;</b></p><p><b> END IF;</b></p><p><b> END IF;</b></p><p><b> END IF;</b></p><p> E
71、ND PROCESS; </p><p><b> END ONE;</b></p><p><b> 五、連接模塊</b></p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p>
72、 ENTITY SQU IS</p><p> PORT(SECOND1:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> SECOND2:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> MINITUE1:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p>
73、<p> MINITUE2:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> JISHI:OUT STD_LOGIC_VECTOR(15 DOWNTO 0));</p><p><b> END SQU;</b></p><p> ARCHITECTURE ONE OF SQU IS<
74、/p><p><b> BEGIN</b></p><p> JISHI(15 DOWNTO 12)<=SECOND1;</p><p> JISHI(11 DOWNTO 8)<=SECOND2;</p><p> JISHI(7 DOWNTO 4)<=MINITUE1;</p>&l
75、t;p> JISHI(3 DOWNTO 0)<=MINITUE2;</p><p> END ARCHITECTURE ONE;</p><p><b> 六、 蜂鳴模塊</b></p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL
76、;</p><p> ENTITY FENGMING IS</p><p> PORT( </p><p> BCD:IN STD_LOGIC_VECTOR(15 DOWNTO 0);</p><p> MING:OUT STD_LOGIC);</p><p> END FENGMING;<
77、/p><p> ARCHITECTURE bhv OF FENGMING IS</p><p> SIGNAL ING:STD_LOGIC;</p><p><b> BEGIN</b></p><p> PROCESS(BCD)</p><p><b> BEGIN</b&
78、gt;</p><p> IF BCD="0000000000000000" THEN ING<='1';</p><p> ELSE IF BCD="0001000000000000" THEN ING<='0';</p><p> ELSE IF BCD="001
79、0000000000000" THEN ING<='0';</p><p> ELSE IF BCD="0011000000000000" THEN ING<='0';</p><p> ELSE IF BCD="0100000000000000" THEN ING<='0
80、9;;</p><p> ELSE IF BCD="0101000000000000" THEN ING<='0';</p><p> ELSE ING<='1';</p><p> IF BCD="0000000000110000" THEN ING<='0
81、39;;</p><p> ELSE IF BCD="0001000000110000" THEN ING<='0'; </p><p> ELSE IF BCD="0010000000110000" THEN ING<='0';</p><p> ELSE IF BCD=&
82、quot;0011000000110000" THEN ING<='0';</p><p> ELSE IF BCD="0100000000110000" THEN ING<='0';</p><p><b> END IF;</b></p><p><b>
83、; END IF;</b></p><p><b> END IF;</b></p><p><b> END IF;</b></p><p><b> END IF;</b></p><p><b> END IF;</b><
84、/p><p><b> END IF;</b></p><p><b> END IF;</b></p><p><b> END IF;</b></p><p><b> END IF;</b></p><p><b&g
85、t; END IF;</b></p><p> MING<=ING;</p><p> END PROCESS;</p><p> END ARCHITECTURE bhv;</p><p><b> 七、顯示模塊</b></p><p> USE IEEE.STD
86、_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> USE IEEE.STD_LOGIC_ARITH.ALL;</p><p> ENTITY DISPLAY IS</p><p><b> PORT(</b></p>
87、<p> CLK:IN STD_LOGIC;</p><p> SECOND1,SECOND2,MINITUE1,MINITUE2:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> YOU:IN STD_LOGIC_VECTOR(3 DOWNTO 0);--顯示病房</p><p> DISP:OUT STD_
88、LOGIC_VECTOR(7 DOWNTO 0);--顯示代碼</p><p> LEDCS:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--數(shù)碼管片選</p><p><b> );</b></p><p> END DISPLAY;</p><p> ARCHITECTURE ONE OF
89、 DISPLAY IS</p><p> SIGNAL CLK_1K:STD_LOGIC; </p><p> SIGNAL DATA:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p><b> BEGIN</b></p><p> CLK_1KHZ:PROCESS(CLK)--產(chǎn)生1k
90、的掃描信號(hào)</p><p> VARIABLE CNT:INTEGER RANGE 0 TO 20000;</p><p><b> BEGIN</b></p><p> IF RISING_EDGE(CLK)THEN CNT:=CNT+1;</p><p> IF CNT<10000THEN CLK_1K
91、<='1';</p><p> ELSIF CNT<20000THEN CLK_1K<='0';</p><p> ELSE CNT:=0;CLK_1K<='0';</p><p><b> END IF;</b></p><p><b&
92、gt; END IF;</b></p><p> END PROCESS;</p><p> PROCESS (CLK_1K) --顯示</p><p> VARIABLE CNT2:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> VARIABLE CNT3:INTEGER RANGE 0
93、 TO 2;</p><p> VARIABLE CNT:INTEGER RANGE 0 TO 2500000;</p><p><b> BEGIN</b></p><p> IF CLK_1K'EVENT AND CLK_1K='1'THEN CNT2:=CNT2+1;</p><p>
94、 IF CNT2="0001"THEN </p><p> LEDCS<="00010000";</p><p> DATA<=MINITUE2;</p><p> ELSIF CNT2="0010" THEN</p><p> LEDCS<="
95、00001000";</p><p> DATA<=MINITUE1; </p><p> ELSIF CNT2="0011" THEN</p><p> LEDCS<="00000100";</p><p> DATA<="1010"; <
96、;/p><p> ELSIF CNT2="0100" THEN </p><p> LEDCS<="00000010";</p><p> DATA<=SECOND2;</p><p> ELSIF CNT2="0101" THEN</p><p&
97、gt; LEDCS<="00000001";</p><p> DATA<=SECOND1;</p><p> ELSIF CNT2="0110" THEN </p><p> LEDCS<="00100000";</p><p> DATA<=YO
98、U; </p><p> CNT2:="0000";</p><p><b> END IF;</b></p><p><b> END IF;</b></p><p> END PROCESS;</p><p> PROCESS(DATA)&l
99、t;/p><p><b> BEGIN</b></p><p> CASE DATA IS</p><p> WHEN "0000"=>DISP<="11000000";--0</p><p> WHEN "0001"=>DISP<=
100、"11111001";--1</p><p> WHEN "0010"=>DISP<="10100100";--2</p><p> WHEN "0011"=>DISP<="10110000";--3</p><p> WHEN &quo
101、t;0100"=>DISP<="10011001";--4</p><p> WHEN "0101"=>DISP<="10010010";--5</p><p> WHEN "0110"=>DISP<="10000010";--6</p
102、><p> WHEN "0111"=>DISP<="11111000";--7</p><p> WHEN "1000"=> DISP <="10000000";--8</p><p> WHEN "1001"=> DISP <=
103、"10010000";--9</p><p> WHEN "1010"=> DISP <="10111111";--間隔橫杠</p><p> WHEN "1011"=> DISP <="10111111";--間隔橫杠</p><p>
104、 WHEN "1100"=> DISP <="11111111";--超出范圍就不顯示停住,直到正確為止</p><p> WHEN OTHERS=>NULL; ---千萬注意?。。。。?!不能為11111111,否則出錯(cuò),會(huì)有空顯示產(chǎn)生</p><p><b> END CASE;</b></p>
105、;<p> END PROCESS;</p><p><b> END ONE;</b></p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;&
106、lt;/p><p> USE IEEE.STD_LOGIC_ARITH.ALL;</p><p> ENTITY XITONG IS</p><p> PORT ( SIN_AIN: IN STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p> RST_AIN:IN STD_LOGIC_VECTOR(7 DOWNTO
107、 0);</p><p> CLK_AIN:IN STD_LOGIC;</p><p> MING_OUT: OUT STD_LOGIC;</p><p> SCOUT: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p> LEDCS_OUT: STD_LOGIC_VECTOR(7 DOWNTO 0)
108、;</p><p> DISP_OUT:STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p> END XITONG;</p><p> ARCHITECTURE F1 OF XITONG </p><p> COMPONENT SUOCUNQI </p><p> PORT(REST:
109、IN STD_LOGIC_VECTOR(7 DOWNTO 0); </p><p> SIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p> SOUT1:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p> SOUT2:OUT STD_LOGIC_VECTOR(7 DOWNTO 0
110、);</p><p> SOUT3:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));</p><p> END COMPONENT;</p><p> COMPONENT XUANYOU</p><p> PORT(SOUT:IN STD_LOGIC_VECTOR(7 DOWNTO 0);</p>&
111、lt;p> YOU1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> YOU2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));</p><p> END COMPONENT;</p><p> COMPONENT XUANYOU2</p><p> PORT(REST
112、:IN STD_LOGIC_VECTOR(7 DOWNTO 0); </p><p> SOUT3:IN STD_LOGIC_VECTOR(7 DOWNTO 0); </p><p> YOU1:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> ZQ:OUT STD_LOGIC;</p><p
113、> LJ:OUT STD_LOGIC);</p><p> END COMPONENT;</p><p> COMPONENT TIME</p><p> PORT(REST,SP,CLK :IN STD_LOGIC;</p><p> SECOND1,SECOND2,MINITUE1,MINITUE2:OUT STD_
114、LOGIC_VECTOR(3 DOWNTO 0));</p><p> END COMPONENT;</p><p> COMPONENT SOU</p><p> PORT(SECOND1:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> SECOND2:IN STD_LOGIC_VECTOR(3
115、DOWNTO 0);</p><p> MINITUE1:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> MINITUE2:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> JISHI:OUT STD_LOGIC_VECTOR(15 DOWNTO 0));</p><p&
116、gt; END COMPONENT;</p><p> COMPONENT FENGMING</p><p> PORT( BCD:IN STD_LOGIC_VECTOR(15 DOWNTO 0);</p><p> MING:OUT STD_LOGIC);</p><p> END COMPONENT;</p>
117、<p> COMPONENT FENGMING</p><p><b> PORT(</b></p><p> CLK:IN STD_LOGIC;</p><p> SECOND1,SECOND2,MINITUE1,MINITUE2:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p>&
118、lt;p> YOU:IN STD_LOGIC_VECTOR(3 DOWNTO 0);--顯示病房</p><p> DISP:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);--顯示代碼</p><p> LEDCS:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--數(shù)碼管片選</p><p><b> )
119、;</b></p><p> END COMPONENT;</p><p> SIGNAL A: STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p> SIGNAL B: STD_LOGIC_VECTOR(15 DOWNTO 0);</p><p> SIGNAL C: STD_LOGIC&
120、lt;/p><p> SIGNAL D: STD_LOGIC</p><p> SIGNAL E: STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p> SIGNAL F: STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> SIGNAL G:STD_LOGIC_VECTOR(3
121、DOWNTO 0);</p><p> SIGNAL H:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> SIGNAL I:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> SIGNAL J: STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>
122、SIGNAL K:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p><b> BEGIN </b></p><p> U1:SUOCUNQI PORT MAP(SIN=>SIN_AIN,OUT1=>A,REST=>RST_AIN,</p><p> SOUT3=>E,SOUT2=>
123、SCOUT);</p><p> U2: XUANYOU PORT MAP ( SOUT=>A,YOU1=>F,YOU2=>G);</p><p> U3: XUANYOU2 PORT MAP ( LJ=>C,ZQ=>D,REST=>RST_AIN,SOUT3=>E,</p><p><b> YOU1=&g
124、t;F);</b></p><p> U4: TIME PORT MAP (REST=>C, SP=>D,CLK=>CLK.AIN,SECOND1=>H,</p><p> SECOND2=>I,MINITUE1=>J,MINITUE2=>K);</p><p> U5:SOU PORT MAP ( JIS
125、HI=>B,SECOND1=>H,SECOND2=>I,</p><p> MINITUE1=>J,MINITUE2=>K);</p><p> U6: FENGMING PORT MAP(BCD=>B,MING=>,MING_OUT);</p><p> U7:DISPLAY PORT MAP (DISP=>D
126、ISP_OUT,LEDCS=>LEDCS_OUT,YOU=>G,</p><p> CLK=>CLK_AIN,SECOND1=>H,SECOND2=>I,</p><p> MINITUE1=>J,MINITUE2=>K);</p><p> END ARCHITECTURE F1;</p><p
127、> LIBRARY IEEE; </p><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY TIME IS</p><p> PORT(REST,SP,CLK :IN STD_LOGIC;
128、</p><p> TI:OUT STD_LOGIC;</p><p> SECOND1,SECOND2,MINITUE1,MINITUE2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));</p><p><b> END TIME;</b></p><p> ARCHITECTURE ON
129、E OF TIME IS</p><p> SIGNAL TIMECLK:STD_LOGIC;</p><p> SIGNAL CLK12:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> SIGNAL SEC1,SEC2:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p> SIG
130、NAL MINI1,MINI2:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p><b> BEGIN</b></p><p> MINITUE1(3 DOWNTO 0)<=MINI1(3 DOWNTO 0);</p><p> MINITUE2(3 DOWNTO 0)<=MINI2(3 DOWNTO
131、 0);</p><p> SECOND1(3 DOWNTO 0)<=SEC1(3 DOWNTO 0);</p><p> SECOND2(3 DOWNTO 0)<=SEC2(3 DOWNTO 0);</p><p> PROCESS(CLK,SP)</p><p> VARIABLE CNT:INTEGER RANGE
132、0 TO 120; --分頻 1S</p><p><b> BEGIN</b></p><p> IF (CLK'EVENT AND CLK='1') AND SP='1' THEN CNT:=CNT+1;</p><p> IF CNT<60 THEN TIMECLK<='1
133、';</p><p> ELSIF CNT<120 THEN TIMECLK<='0';</p><p> ELSE CNT:=0;TIMECLK<='0';</p><p><b> END IF;</b></p><p><b> END I
134、F;</b></p><p> IF(REST='0') THEN </p><p> MINI2 <="0000"; MINI1 <="0000"; SEC2<="0000"; SEC1<="0000";</p><p><
135、b> ELSE </b></p><p> IF (TIMECLK'EVENT AND TIMECLK='1') THEN --檢驗(yàn)時(shí)鐘上升沿</p><p> IF SEC1<"1001"THEN SEC1<=SEC1+1;</p><p><b> ELSE</b&
136、gt;</p><p> SEC1<="0000";</p><p> IF SEC2<"0101"THEN SEC2<=SEC2+1;</p><p><b> ELSE</b></p><p> SEC2<="0000";&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 病房呼叫系統(tǒng)eda課程設(shè)計(jì)
- 病房呼叫系統(tǒng)課程設(shè)計(jì)報(bào)告
- 數(shù)電課程設(shè)計(jì)--病房呼叫系統(tǒng)
- 病房呼叫體統(tǒng)課程設(shè)計(jì)
- 病房呼叫體統(tǒng)課程設(shè)計(jì)
- 病房呼叫系統(tǒng)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告
- 數(shù)字電路課程設(shè)計(jì)--病房呼叫系統(tǒng)
- 接口技術(shù)課程設(shè)計(jì)--病房呼叫系統(tǒng)
- 醫(yī)院病房呼叫系統(tǒng)課程設(shè)計(jì)報(bào)告書
- 單片機(jī)課程設(shè)計(jì)報(bào)告---模擬病房呼叫系統(tǒng)
- eda課程設(shè)計(jì)-- eda與數(shù)字系統(tǒng)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---單片機(jī)病房呼叫系統(tǒng)
- plc課程設(shè)計(jì)報(bào)告--基于51單片機(jī)的病房呼叫系統(tǒng)
- eda課程設(shè)計(jì)--eda課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告
- 病房呼叫系統(tǒng)的設(shè)計(jì)
- 病床呼叫系統(tǒng)課程設(shè)計(jì)
- eda課程設(shè)計(jì)--eda數(shù)字系統(tǒng)綜合設(shè)計(jì)與實(shí)踐
- eda課程設(shè)計(jì)
- eda課程設(shè)計(jì)
- 病床呼叫系統(tǒng)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論