版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> SOPC/EDA綜合課程設(shè)計(jì)報(bào)告</p><p> 設(shè)計(jì)題目: 16*16的點(diǎn)陣顯示設(shè)計(jì)</p><p> 設(shè) 計(jì) 者: </p><p><b> 學(xué) 號: </b></p><p> 班 級: </p><p> 指導(dǎo)老師:
2、 </p><p><b> 完成時(shí)間: </b></p><p><b> 目錄</b></p><p><b> 緒 論1</b></p><p> 第一章 設(shè)計(jì)項(xiàng)目與分析2</p><p> 1.1 設(shè)計(jì)要求:2</p&g
3、t;<p> 1.2 設(shè)計(jì)原理2</p><p><b> 1.3設(shè)計(jì)框圖3</b></p><p> 1.4頂層文件設(shè)計(jì)3</p><p> 第二章 一屏一屏亮燈顯示5</p><p> 2.1 時(shí)序控制模塊設(shè)計(jì)5</p><p> 2.2 掃描控制模塊設(shè)計(jì)
4、6</p><p> 2.3顯示控制模塊設(shè)計(jì)7</p><p> 2.4顯示控制模塊仿真15</p><p> 第三章 暗燈顯示16</p><p> 3.1 暗燈控制模塊設(shè)計(jì)16</p><p> 3.2 掃描控制模塊設(shè)計(jì)17</p><p> 3.3暗燈顯示控制模塊設(shè)計(jì)
5、18</p><p> 第四章 心得體會27</p><p><b> 參考文獻(xiàn)28</b></p><p><b> 緒 論</b></p><p> 1 在信息產(chǎn)業(yè)中EDA產(chǎn)生的影響</p><p> 隨著大規(guī)模集成電路技術(shù)和計(jì)算機(jī)技術(shù)的不斷發(fā)展, 在設(shè)
6、計(jì)通信,國防,航天醫(yī)學(xué) 工業(yè)自動化 計(jì)算機(jī)應(yīng)用 儀器儀表等領(lǐng)域的電子系統(tǒng)設(shè)計(jì)工作中,EDA技術(shù)的含量正以驚人的 速度上升;電子類的高新技術(shù)項(xiàng)目的開發(fā)也逾益依賴于EDA技術(shù)的應(yīng)用,即使是普通的電子產(chǎn)品的開發(fā),EDA技術(shù)常常使一些原來的技術(shù)瓶頸得以輕松突破,從而使得產(chǎn)品的開發(fā)周期大為縮短,性能價(jià)格大幅度提高。不言而喻。EDA技術(shù)將迅速成為電子設(shè)計(jì)領(lǐng)域中的極其重要的組成部分。</p><p> 2 中國國內(nèi)EDZ發(fā)
7、展情況</p><p> 從目前的EDA技術(shù)來看,其發(fā)展趨勢是政府重視 使用普及 應(yīng)用廣泛 工具多樣 軟件功能強(qiáng)大。</p><p> 中國EDA市場已漸趨成熟,不過大部分設(shè)計(jì)工程師面向的是PC主板的小型ASIC領(lǐng)域,僅有小部分的設(shè)計(jì)人工發(fā)復(fù)雜片上系統(tǒng)器件,為了與臺灣和美國的設(shè)計(jì)工程師形成更有力的競爭,中國的設(shè)計(jì)隊(duì)伍有必要購入一些最新的EDA技術(shù)。</p><p&g
8、t; 在信息通信領(lǐng)域,優(yōu)先發(fā)展高速寬帶信息網(wǎng),深亞微米集成電路,新型元器件,計(jì)算機(jī)及軟件技術(shù),第三代移動通信技術(shù)。信息管理,信息安全技術(shù),積極開拓以數(shù)字技術(shù),網(wǎng)絡(luò)技術(shù)為基礎(chǔ)的新一代產(chǎn)品,發(fā)展新興產(chǎn)業(yè),培育新的經(jīng)濟(jì)增長點(diǎn)。要大力推進(jìn)制造業(yè)信息化,積極開展計(jì)算機(jī)輔助設(shè)計(jì)(CAD),計(jì)算機(jī)輔助工程(CAE),計(jì)算機(jī)輔助工藝(CAPP),j計(jì)算機(jī)輔助制造(CAM),產(chǎn)品數(shù)據(jù)管理(PDM),制造資源計(jì)劃(MRPII),以及企業(yè)管理資源(ERP)
9、等。有條件的企業(yè)可開展“網(wǎng)絡(luò)制造”,便于合作設(shè)計(jì) 合作制造 參與國內(nèi)和國際競爭。開展“數(shù)控化”工程和“數(shù)字化”工程。自動化儀表的技術(shù)發(fā)展趨勢的測試技術(shù),控制技術(shù)與計(jì)算機(jī)技術(shù),通信技術(shù)進(jìn)一步融合,形成測量,控制,通信與計(jì)算機(jī)結(jié)構(gòu)。在ASIC和PLD設(shè)計(jì)反面,向超高速高密度低功耗低電壓方向發(fā)展。</p><p> 3 課程對多功能數(shù)字時(shí)鐘的設(shè)計(jì)加深對EDA課程的理解</p><p> ?。?
10、)加深VHDL語言設(shè)計(jì)的理解。</p><p> ?。?)通過功能數(shù)字時(shí)鐘的設(shè)計(jì)了解簡易集成電路的設(shè)計(jì)思路</p><p> (3)通過對多設(shè)計(jì)目的</p><p> ?。?)屬性MAX+PLUS II仿真軟件的工作方法以及應(yīng)用技術(shù)</p><p> 第一章 設(shè)計(jì)項(xiàng)目與分析</p><p><b> 1
11、.1 設(shè)計(jì)要求:</b></p><p> 使用FPGA設(shè)計(jì)一個16*16的點(diǎn)陣顯示的控制器,使點(diǎn)陣能夠按照自定義的花樣顯示文字或者數(shù)字。要求至少實(shí)現(xiàn)兩種花樣顯示“江西理工大學(xué)應(yīng)用科學(xué)學(xué)院歡迎您”。其他功能可以自行設(shè)計(jì)增加!</p><p><b> 1.2 設(shè)計(jì)原理</b></p><p> 本設(shè)計(jì)是針對一個16*16的點(diǎn)陣
12、,使用逐列循環(huán)掃描的方式來一屏一屏地顯示和滾動地顯示“江西理工大學(xué)應(yīng)用科學(xué)學(xué)院歡迎您”15個漢字。</p><p> 由于顯示器為列共陽,行共陰的結(jié)構(gòu),因此不可能在同一時(shí)刻顯示出整個漢字。為了顯示出整個漢字,首先分布好漢字信息;然后以不低于50Hz頻率的時(shí)序逐一點(diǎn)亮每一列,即每列逐一加高電位,同時(shí)行給漢字信息,根據(jù)人眼的視覺殘留特性使之形成整個漢字的顯示。</p><p> 實(shí)驗(yàn)箱上為
13、我們提供了16*16的點(diǎn)陣顯示模塊。通過觀察,我們可以看到,此點(diǎn)陣顯示屏即為16行、16列的LED顯示燈。那么控制這些燈的亮暗分布,就能達(dá)到字符顯示的目的。首先我們設(shè)計(jì)要正確顯示“江西理工大學(xué)應(yīng)用科學(xué)學(xué)院歡迎您”。顯示屏上的燈亮暗的情況如何。</p><p><b> 方案一</b></p><p> 如第一個漢字“江”。</p><p>
14、 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0</p><p> 0 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0</p><p> 0 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0</p><p> 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0</p><p> 0
15、0 0 0 1 1 0 0 0 0 1 1 0 0 0 0</p><p> 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0</p><p> 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0</p><p> 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0</p><p> 0 0 0
16、0 1 1 0 0 0 0 1 1 0 0 0 0</p><p> 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0</p><p> 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 0</p><p> 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0</p><p> 0 0 0 1 1
17、0 0 0 0 0 1 1 0 0 0 0</p><p> 0 0 1 1 0 0 0 1 1 1 1 1 1 1 1 0</p><p> 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0</p><p> 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0</p><p> 第一種花樣是用亮著的燈組合所
18、要顯示的字。高電平“1”代表燈是亮的,低電平“0”代表燈是暗的,上面我們看到的就是“江”字。依此類推,我們就可以設(shè)計(jì)出要顯示的“江西理工大學(xué)應(yīng)用科學(xué)學(xué)院歡迎您”一屏一屏地顯示漢字“江西理工大學(xué)應(yīng)用科學(xué)學(xué)院歡迎您”15個漢字。</p><p><b> 方案二</b></p><p> 第二種花樣是用暗著的燈組合所要顯示的字。高電平“1”代表燈是亮的,低電平“0”代
19、表燈是暗的,上面我們看到的就是“江”字。依此類推,我們就可以設(shè)計(jì)出要顯示的“江西理工大學(xué)應(yīng)用科學(xué)學(xué)院歡迎您”一屏一屏地顯示漢字“江西理工大學(xué)應(yīng)用科學(xué)學(xué)院歡迎您”15個漢字。</p><p> 在顯示漢字的基礎(chǔ)上加一個gs信號作為計(jì)數(shù)器,當(dāng)gs為0000第一個漢字;當(dāng)gs為0001時(shí)顯示第二個漢字;當(dāng)gs為0010……當(dāng)gs為1110時(shí)顯示第十五個漢字;用時(shí)鐘信號clk控制gs的計(jì)數(shù),就可以一屏一屏地顯示漢字。&
20、lt;/p><p><b> 1.3設(shè)計(jì)框圖</b></p><p><b> 圖1.1</b></p><p><b> 1.4頂層文件設(shè)計(jì)</b></p><p> 頂層文件來實(shí)現(xiàn)循環(huán)顯示各個漢字的功能。它由時(shí)序控制模塊,掃描模塊和漢字顯示控制模塊組成。時(shí)序控制模塊利用
21、脈沖來控制每個漢字的顯示時(shí)間。掃描控制模塊利用列掃描脈沖產(chǎn)生列掃描信號。而漢字顯示控制模塊用時(shí)序控制模塊和掃描控制模塊所提供的脈沖信號來點(diǎn)亮各個漢字模型中相應(yīng)的燈。在時(shí)序模塊的控制下(此設(shè)計(jì)中每15個漢字為一個循環(huán))實(shí)現(xiàn)了各個漢字循環(huán)顯示的功能。</p><p> 實(shí)現(xiàn)顯示“江西理工大學(xué)應(yīng)用科學(xué)學(xué)院歡迎您”,結(jié)合實(shí)際,模塊LICHAO01,LICHAO02, LICHAO03分別實(shí)現(xiàn)時(shí)序控制模塊,掃描模塊和漢字
22、顯示控制模塊。具體電路的 頂層文件設(shè)計(jì)如下圖</p><p> 圖 1.2 頂層電路圖</p><p> 第二章 一屏一屏亮燈顯示</p><p> 2.1 時(shí)序控制模塊設(shè)計(jì)</p><p> 為使?jié)h字不斷地循環(huán)顯示,并且使每個字之間有停頓,就需要在中間加一定的延時(shí)和循環(huán)環(huán)節(jié)。當(dāng)計(jì)數(shù)滿4個脈沖時(shí)cnt自動清零,每個漢字顯示4個脈沖的
23、時(shí)間;一共有15個漢字,當(dāng)tmp=1110時(shí),tmp自動清零,進(jìn)入下一個循環(huán),不停的循環(huán)顯示每個漢字。</p><p> 圖 2.1 時(shí)序控制模塊</p><p><b> 其實(shí)現(xiàn)程序?yàn)椋?lt;/b></p><p> library ieee;</p><p> use ieee.std_logic_1164.
24、all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity LICHAO01 is </p><p> port(clk:in std_logic;</p><p> q:out std_logic_vector(3 downto 0));</p>&l
25、t;p> end LICHAO01;</p><p> architecture one of LICHAO01 is </p><p><b> begin</b></p><p> process(clk)</p><p> variable cnt:integer;</p><p
26、> variable tmp:std_logic_vector(3 downto 0);</p><p><b> begin</b></p><p> if clk'event and clk='1'then </p><p> if cnt<4 then </p><
27、;p> cnt:=cnt+1; </p><p><b> else</b></p><p> cnt:=0; </p><p> if tmp="1110"then </p><p> tmp:="0000";</p>&l
28、t;p><b> else</b></p><p> tmp:=tmp+1; </p><p><b> end if;</b></p><p><b> end if;</b></p><p><b> end if ;</b><
29、;/p><p> q<=tmp; </p><p> end process;</p><p><b> end ;</b></p><p><b> 時(shí)序控制模塊仿真圖</b></p><p> 2.2 掃描控制模塊設(shè)計(jì)</p&g
30、t;<p> 此模塊用來實(shí)現(xiàn)列掃描控制,每掃描完16列,tmp自動清零,這樣就提供了一個列循環(huán)掃描的功能,這樣就可以循環(huán)的顯示各個漢字了。</p><p> 圖2.2 掃描控制模塊</p><p><b> 其實(shí)現(xiàn)程序?yàn)椋?lt;/b></p><p> library ieee;</p><p>
31、use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity LICHAO02 is </p><p> port (clk:in std_logic; </p><p> so:out std_logic_ve
32、ctor(3 downto 0)); </p><p> end LICHAO02;</p><p> architecture one of LICHAO02 is </p><p><b> begin</b></p><p> process(clk)</p><p> varia
33、ble tmp:std_logic_vector(3 downto 0);</p><p><b> begin</b></p><p> if clk'event and clk='1'then </p><p> if tmp="1111"then </p><p
34、> tmp:="0000"; </p><p><b> else</b></p><p> tmp:=tmp+1; </p><p><b> end if;</b></p><p><b> end if;</b
35、></p><p> so<=tmp-1;</p><p> end process;</p><p><b> end ;</b></p><p> 圖3.2掃描控制模塊仿真圖</p><p> 2.3顯示控制模塊設(shè)計(jì)</p><p> 此模塊用來
36、實(shí)現(xiàn)顯示出相應(yīng)的漢字。gs控制漢字的個數(shù),hs控制掃描的行數(shù)。使對應(yīng)列選擇信號輸出每一列對應(yīng)的數(shù)據(jù),點(diǎn)量相應(yīng)的燈。</p><p> 圖2.3 顯示控制模塊</p><p><b> 其實(shí)現(xiàn)程序?yàn)椋?lt;/b></p><p> library ieee;</p><p> use ieee.std_logic_
37、1164.all;</p><p> entity LICHAO03 is </p><p> port(hs:in std_logic_vector(3 downto 0);</p><p> gs:in std_logic_vector(3 downto 0);</p><p> qo: out std_logic_vector(
38、15 downto 0));</p><p> end LICHAO03;</p><p> architecture one of LICHAO03 is </p><p><b> begin </b></p><p> process(hs,gs)</p><p><b>
39、 begin</b></p><p> case gs is</p><p> when"0000"=></p><p> case hs is</p><p> when"0000"=>qo<="0000000000000000";</
40、p><p> when"0001"=>qo<="0110000011111100";</p><p> when"0010"=>qo<="0011000011111100";</p><p> when"0011"=>qo<=&q
41、uot;0001100000110000";</p><p> when"0100"=>qo<="0000110000110000";</p><p> when"0101"=>qo<="0110000000110000";</p><p> wh
42、en"0110"=>qo<="0011000000110000";</p><p> when"0111"=>qo<="0001100000110000";</p><p> when"1000"=>qo<="0000110000110000
43、";</p><p> when"1001"=>qo<="0000000000110000";</p><p> when"1010"=>qo<="0000011000110000";</p><p> when"1011"=&
44、gt;qo<="0000110000110000";</p><p> when"1100"=>qo<="0001100000110000";</p><p> when"1101"=>qo<="0011000111111110";</p>&
45、lt;p> when"1110"=>qo<="0110000111111110";</p><p> when"1111"=>qo<="0000000000000000";</p><p> when others=>null;</p><p>
46、<b> end case;</b></p><p> when"0001"=></p><p> case hs is</p><p> when"0000"=>qo<="0000000000000000";</p><p> wh
47、en"0001"=>qo<="0011111111111100";</p><p> when"0010"=>qo<="0011111111111100";</p><p> when"0011"=>qo<="0000001101100000
48、";</p><p> when"0100"=>qo<="0000001101100000";</p><p> when"0101"=>qo<="0000001101100000";</p><p> when"0110"=&
49、gt;qo<="0111111111111110";</p><p> when"0111"=>qo<="0111111111111110";</p><p> when"1000"=>qo<="0110001101100110";</p>&
50、lt;p> when"1001"=>qo<="0110001101100110";</p><p> when"1010"=>qo<="0110011001111110";</p><p> when"1011"=>qo<="0110
51、110000000110";</p><p> when"1100"=>qo<="0111100000000110";</p><p> when"1101"=>qo<="0111111111111110";</p><p> when"
52、1110"=>qo<="0111111111111110";</p><p> when"1111"=>qo<="0000000000000000";</p><p> when others=>null;</p><p><b> end case;
53、</b></p><p> when"0010"=></p><p> case hs is </p><p> when"0000"=>qo<="0000000000000000";</p><p> when"0001"=
54、>qo<="0000000111111110";</p><p> when"0010"=>qo<="1111110111111110";</p><p> when"0011"=>qo<="1111110110110110";</p>
55、<p> when"0100"=>qo<="0011000111111110";</p><p> when"0101"=>qo<="0011000111111110";</p><p> when"0110"=>qo<="000
56、0000110110110";</p><p> when"0111"=>qo<="1111110111111110";</p><p> when"1000"=>qo<="1111110111111110";</p><p> when"
57、;1001"=>qo<="0011000000110000";</p><p> when"1010"=>qo<="0011000111111110";</p><p> when"1011"=>qo<="0011000111111110";
58、</p><p> when"1100"=>qo<="0011000000110000";</p><p> when"1101"=>qo<="1111110000110000";</p><p> when"1110"=>qo&l
59、t;="1111111111111111";</p><p> when"1111"=>qo<="0000001111111111";</p><p> when others=>null;</p><p><b> end case;</b></p>
60、;<p> when"0011"=></p><p> case hs is</p><p> when"0000"=>qo<="0000000000000000";</p><p> when"0001"=>qo<="001
61、1111111111100";</p><p> when"0010"=>qo<="0011111111111100";</p><p> when"0011"=>qo<="0000000110000000";</p><p> when"
62、;0100"=>qo<="0000000110000000";</p><p> when"0101"=>qo<="0000000110000000";</p><p> when"0110"=>qo<="0000000110000000";
63、</p><p> when"0111"=>qo<="0000000110000000";</p><p> when"1000"=>qo<="0000000110000000";</p><p> when"1001"=>qo&l
64、t;="0000000110000000";</p><p> when"1010"=>qo<="0000000110000000";</p><p> when"1011"=>qo<="0000000110000000";</p><p>
65、; when"1100"=>qo<="0000000110000000";</p><p> when"1101"=>qo<="0111111111111110";</p><p> when"1110"=>qo<="01111111111
66、11110";</p><p> when"1111"=>qo<="0000000000000000";</p><p> when others=>null;</p><p><b> end case;</b></p><p> when&q
67、uot;0100"=></p><p> case hs is</p><p> when"0000"=>qo<="0000000000000000";</p><p> when"0001"=>qo<="0000000110000000";
68、</p><p> when"0010"=>qo<="0000000110000000";</p><p> when"0011"=>qo<="0000000110000000";</p><p> when"0100"=>qo&l
69、t;="0111111111111110";</p><p> when"0101"=>qo<="0111111111111110";</p><p> when"0110"=>qo<="0000000110000000";</p><p>
70、; when"0111"=>qo<="0000000110000000";</p><p> when"1000"=>qo<="0000001111000000";</p><p> when"1001"=>qo<="00000110011
71、00000";</p><p> when"1010"=>qo<="0000110000110000";</p><p> when"1011"=>qo<="0001100000011000";</p><p> when"1100&qu
72、ot;=>qo<="0011000000001100";</p><p> when"1101"=>qo<="0110000000000110";</p><p> when"1110"=>qo<="1100000000000011";</p&g
73、t;<p> when"1111"=>qo<="0000000000000000";</p><p> when others=>null;</p><p><b> end case;</b></p><p> when"0101"=>&
74、lt;/p><p> case hs is </p><p> when"0000"=>qo<="0000000000000000";</p><p> when"0001"=>qo<="0110011000000110";</p><p&g
75、t; when"0010"=>qo<="0011001100001100";</p><p> when"0011"=>qo<="1111111111111111";</p><p> when"0100"=>qo<="1111111111
76、111111";</p><p> when"0101"=>qo<="1100000000000011";</p><p> when"0110"=>qo<="1101111111110110";</p><p> when"0111&q
77、uot;=>qo<="0001111111110000";</p><p> when"1000"=>qo<="0000000001100000";</p><p> when"1001"=>qo<="0000000011000000";</p&
78、gt;<p> when"1010"=>qo<="0111111111111110";</p><p> when"1011"=>qo<="0111111111111110";</p><p> when"1100"=>qo<=&quo
79、t;0000000110000000";</p><p> when"1101"=>qo<="0000000110000000";</p><p> when"1110"=>qo<="0000011110000000";</p><p> when
80、"1111"=>qo<="0000011110000000";</p><p> when others=>null;</p><p><b> end case;</b></p><p> when"0110"=></p><p>
81、; case hs is</p><p> when"0000"=>qo<="0000000000000000";</p><p> when"0001"=>qo<="0000001100000000";</p><p> when"0010&q
82、uot;=>qo<="0000000110000000";</p><p> when"0011"=>qo<="0001111111111110";</p><p> when"0100"=>qo<="0001111111111110";</p&
83、gt;<p> when"0101"=>qo<="0001100000000000";</p><p> when"0110"=>qo<="0001100000000000";</p><p> when"0111"=>qo<=&quo
84、t;0001100011000011";</p><p> when"1000"=>qo<="0001101101100011";</p><p> when"1001"=>qo<="0001101101100110";</p><p> when
85、"1010"=>qo<="0011000110110110";</p><p> when"1011"=>qo<="0011000110001100";</p><p> when"1100"=>qo<="0110000000000000&q
86、uot;;</p><p> when"1101"=>qo<="0110111111111111";</p><p> when"1110"=>qo<="1100111111111111";</p><p> when"1111"=>
87、;qo<="0000000000000000";</p><p> when others=>null;</p><p><b> end case;</b></p><p> when"0111"=></p><p> case hs is</p&
88、gt;<p> when"0000"=>qo<="0000000000000000";</p><p> when"0001"=>qo<="0001111111111111";</p><p> when"0010"=>qo<=&quo
89、t;0001111111111111";</p><p> when"0011"=>qo<="0001100011000110";</p><p> when"0100"=>qo<="0001100011000110";</p><p> when
90、"0101"=>qo<="0001111111111110";</p><p> when"0110"=>qo<="0001111111111110";</p><p> when"0111"=>qo<="0001100011000110&q
91、uot;;</p><p> when"1000"=>qo<="0001100011000110";</p><p> when"1001"=>qo<="0001111111111110";</p><p> when"1010"=>
92、;qo<="0001111111111110";</p><p> when"1011"=>qo<="0001100011000110";</p><p> when"1100"=>qo<="0011000011000110";</p><
93、;p> when"1101"=>qo<="0110000011011110";</p><p> when"1110"=>qo<="1100000011001110";</p><p> when"1111"=>qo<="000000
94、0000000000";</p><p> when others=>null;</p><p><b> end case;</b></p><p> when"1000"=></p><p> case hs is </p><p> whe
95、n"0000"=>qo<="0000000000000000";</p><p> when"0001"=>qo<="0000011000001100";</p><p> when"0010"=>qo<="0000110110001100&
96、quot;;</p><p> when"0011"=>qo<="0011000011001100";</p><p> when"0100"=>qo<="1101101101101100";</p><p> when"0101"=&g
97、t;qo<="0001100110001100";</p><p> when"0110"=>qo<="1111111101101100";</p><p> when"0111"=>qo<="1111111100001100";</p>&l
98、t;p> when"1000"=>qo<="0011110011111111";</p><p> when"1001"=>qo<="0011110011111111";</p><p> when"1010"=>qo<="01111
99、01100001100";</p><p> when"1011"=>qo<="1101100000001100";</p><p> when"1100"=>qo<="0001100000001100";</p><p> when"1
100、101"=>qo<="0001100000001100";</p><p> when"1110"=>qo<="0001100000001100";</p><p> when"1111"=>qo<="0000000000000000";&l
101、t;/p><p> when others=>null;</p><p><b> end case;</b></p><p> when"1001"=></p><p> case hs is</p><p> when"0000"=&g
102、t;qo<="0000000000000000";</p><p> when"0001"=>qo<="0110011000000110";</p><p> when"0010"=>qo<="0011001100001100";</p>&l
103、t;p> when"0011"=>qo<="1111111111111111";</p><p> when"0100"=>qo<="1111111111111111";</p><p> when"0101"=>qo<="11000
104、00000000011";</p><p> when"0110"=>qo<="1101111111110110";</p><p> when"0111"=>qo<="0001111111110000";</p><p> when"1
105、000"=>qo<="0000000001100000";</p><p> when"1001"=>qo<="0000000011000000";</p><p> when"1010"=>qo<="0111111111111110";&l
106、t;/p><p> when"1011"=>qo<="0111111111111110";</p><p> when"1100"=>qo<="0000000110000000";</p><p> when"1101"=>qo<
107、="0000000110000000";</p><p> when"1110"=>qo<="0000011110000000";</p><p> when"1111"=>qo<="0000011110000000";</p><p>
108、 when others=>null;</p><p><b> end case;</b></p><p> when"1010"=></p><p> case hs is</p><p> when"0000"=>qo<="00000
109、00000000000";</p><p> when"0001"=>qo<="0110011000000110";</p><p> when"0010"=>qo<="0011001100001100";</p><p> when"0
110、011"=>qo<="1111111111111111";</p><p> when"0100"=>qo<="1111111111111111";</p><p> when"0101"=>qo<="1100000000000011";&l
111、t;/p><p> when"0110"=>qo<="1101111111110110";</p><p> when"0111"=>qo<="0001111111110000";</p><p> when"1000"=>qo<
112、="0000000001100000";</p><p> when"1001"=>qo<="0000000011000000";</p><p> when"1010"=>qo<="0111111111111110";</p><p>
113、 when"1011"=>qo<="0111111111111110";</p><p> when"1100"=>qo<="0000000110000000";</p><p> when"1101"=>qo<="0000000110000
114、000";</p><p> when"1110"=>qo<="0000011110000000";</p><p> when"1111"=>qo<="0000011110000000";</p><p> when others=>nul
115、l;</p><p><b> end case;</b></p><p> when"1011"=></p><p> case hs is </p><p> when"0000"=>qo<="0000000000000000";&
116、lt;/p><p> when"0001"=>qo<="1111110001100000";</p><p> when"0010"=>qo<="1111110000110000";</p><p> when"0011"=>qo<
117、;="1100111111111111";</p><p> when"0100"=>qo<="1101111111111111";</p><p> when"0101"=>qo<="1111001100000011";</p><p>
118、 when"0110"=>qo<="1101101100000110";</p><p> when"0111"=>qo<="1100110011111000";</p><p> when"1000"=>qo<="110001101111
119、1000";</p><p> when"1001"=>qo<="1101110000000000";</p><p> when"1010"=>qo<="1100001111111110";</p><p> when"1011&quo
120、t;=>qo<="1100001111111110";</p><p> when"1100"=>qo<="1100000011011000";</p><p> when"1101"=>qo<="1100000110011000";</p>
121、;<p> when"1110"=>qo<="1100001100011011";</p><p> when"1111"=>qo<="1100011000011111";</p><p> when others=>null;</p><p
122、><b> end case;</b></p><p> when"1100"=></p><p> case hs is</p><p> when"0000"=>qo<="0000000000000000";</p><p>
123、 when"0001"=>qo<="0000000000110000";</p><p> when"0010"=>qo<="0000000001100000";</p><p> when"0011"=>qo<="111111100111
124、1111";</p><p> when"0100"=>qo<="1000011011000011";</p><p> when"0101"=>qo<="1100011110110110";</p><p> when"0110&quo
125、t;=>qo<="0110110000110000";</p><p> when"0111"=>qo<="0011110000110000";</p><p> when"1000"=>qo<="0001110000110000";</p>
126、;<p> when"1001"=>qo<="0001111000111000";</p><p> when"1010"=>qo<="0011001100111000";</p><p> when"1011"=>qo<="
127、0011000001101100";</p><p> when"1100"=>qo<="0110000011000110";</p><p> when"1101"=>qo<="1100001110000011";</p><p> when&q
128、uot;1110"=>qo<="0001111000000000";</p><p> when"1111"=>qo<="0000000000000000";</p><p> when others=>null;</p><p><b> end c
129、ase;</b></p><p> when"1101"=></p><p> case hs is </p><p> when"0000"=>qo<="0000000000000000";</p><p> when"0001&qu
130、ot;=>qo<="0110000111000000";</p><p> when"0010"=>qo<="0011001100111111";</p><p> when"0011"=>qo<="0000011000110011";</p&g
131、t;<p> when"0100"=>qo<="1111011000110011";</p><p> when"0101"=>qo<="1111011000110011";</p><p> when"0110"=>qo<="
132、;0011011000110011";</p><p> when"0111"=>qo<="0011011011110011";</p><p> when"1000"=>qo<="0011011110110111";</p><p> when&
133、quot;1001"=>qo<="0011000000110000";</p><p> when"1010"=>qo<="0011000000110000";</p><p> when"1011"=>qo<="0011000000110000&qu
134、ot;;</p><p> when"1100"=>qo<="0011110000000000";</p><p> when"1101"=>qo<="0110111111111111";</p><p> when"1110"=>
135、qo<="1100111111111111";</p><p> when"1111"=>qo<="0000000000000000";</p><p> when others=>null;</p><p><b> end case;</b></
136、p><p> when"1110"=></p><p> case hs is</p><p> when"0000"=>qo<="0000011001100000";</p><p> when"0001"=>qo<="
137、;0000110011111111";</p><p> when"0010"=>qo<="0001100111111111";</p><p> when"0011"=>qo<="0011101100110011";</p><p> when&
138、quot;0100"=>qo<="0111100000110000";</p><p> when"0101"=>qo<="1101100110110110";</p><p> when"0110"=>qo<="0001100110110011&qu
139、ot;;</p><p> when"0111"=>qo<="0001101100110000";</p><p> when"1000"=>qo<="0001100110110000";</p><p> when"1001"=>
140、qo<="0001100011110000";</p><p> when"1010"=>qo<="0000000000000000";</p><p> when"1011"=>qo<="0110110110011011";</p><
141、p> when"1100"=>qo<="0110110011011011";</p><p> when"1101"=>qo<="1100011111111000";</p><p> when"1110"=>qo<="1100011
142、111111000";</p><p> when"1111"=>qo<="0000000000000000";</p><p> when others=>null;</p><p><b> end case;</b></p><p> wh
143、en others=>null;</p><p><b> end case;</b></p><p> end process;</p><p><b> end ;</b></p><p> 2.4顯示控制模塊仿真</p><p> 亮燈顯示控制模塊仿真圖
144、</p><p><b> 第三章 暗燈顯示</b></p><p> 3.1 暗燈控制模塊設(shè)計(jì)</p><p> 為使?jié)h字不斷地循環(huán)顯示,并且使每個字之間有停頓,就需要在中間加一定的延時(shí)和循環(huán)環(huán)節(jié)。當(dāng)計(jì)數(shù)滿4個脈沖時(shí)cnt自動清零,每個漢字顯示4個脈沖的時(shí)間;一共有15個漢字,當(dāng)tmp=1110時(shí),tmp自動清零,進(jìn)入下一個循環(huán),不停的
145、循環(huán)顯示每個漢字。</p><p> 圖 2.1 時(shí)序控制模塊</p><p><b> 其實(shí)現(xiàn)程序?yàn)椋?lt;/b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_lo
146、gic_unsigned.all;</p><p> entity LICHAO01 is </p><p> port(clk:in std_logic;</p><p> q:out std_logic_vector(3 downto 0));</p><p> end LICHAO01;</p><p>
147、; architecture one of LICHAO01 is </p><p><b> begin</b></p><p> process(clk)</p><p> variable cnt:integer;</p><p> variable tmp:std_logic_vector(3 down
148、to 0);</p><p><b> begin</b></p><p> if clk'event and clk='1'then </p><p> if cnt<4 then </p><p> cnt:=cnt+1; </p><p
149、><b> else</b></p><p> cnt:=0; </p><p> if tmp="1110"then </p><p> tmp:="0000";</p><p><b> else</b></p>
150、<p> tmp:=tmp+1; </p><p><b> end if;</b></p><p><b> end if;</b></p><p><b> end if ;</b></p><p> q<=tmp;
151、 </p><p> end process;</p><p><b> end ;</b></p><p><b> 時(shí)序控制模塊仿真圖</b></p><p> 3.2 掃描控制模塊設(shè)計(jì)</p><p> 此模塊用來實(shí)現(xiàn)列掃描控制,每掃描完16列,tmp自動清
152、零,這樣就提供了一個列循環(huán)掃描的功能,這樣就可以循環(huán)的顯示各個漢字了。</p><p> 圖2.2 掃描控制模塊</p><p><b> 其實(shí)現(xiàn)程序?yàn)椋?lt;/b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p>&l
153、t;p> use ieee.std_logic_unsigned.all;</p><p> entity LICHAO02 is </p><p> port (clk:in std_logic; </p><p> so:out std_logic_vector(3 downto 0)); </p><p>
154、end LICHAO02;</p><p> architecture one of LICHAO02 is </p><p><b> begin</b></p><p> process(clk)</p><p> variable tmp:std_logic_vector(3 downto 0);</
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- eda課程設(shè)計(jì)--1616點(diǎn)陣顯示
- eda課程設(shè)計(jì)-- 1616點(diǎn)陣顯示
- 課程設(shè)計(jì)--led1616點(diǎn)陣顯示設(shè)計(jì)
- eda課程設(shè)計(jì)報(bào)告--1616點(diǎn)陣顯示
- 單片機(jī)課程設(shè)計(jì)--1616點(diǎn)陣顯示實(shí)驗(yàn)
- sopceda綜合課程設(shè)計(jì)報(bào)告---綜合計(jì)時(shí)系統(tǒng)
- led點(diǎn)陣顯示屏課程設(shè)計(jì)
- eda課程設(shè)計(jì)--led點(diǎn)陣顯示控制
- sopceda綜合課程設(shè)計(jì)---出租車計(jì)費(fèi)系統(tǒng)設(shè)計(jì)
- sopceda綜合課程設(shè)計(jì)--車載dvd位控系統(tǒng)的設(shè)計(jì)
- sopceda綜合課程設(shè)計(jì)報(bào)告---智力搶答器
- 課程設(shè)計(jì)---點(diǎn)陣led圖文顯示屏的設(shè)計(jì)
- 微機(jī)原理課程設(shè)計(jì)---點(diǎn)陣電子顯示屏的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)----led點(diǎn)陣漢字顯示
- 基于單片機(jī)的led點(diǎn)陣顯示課程設(shè)計(jì)
- 課程設(shè)計(jì)--點(diǎn)陣式lcd液晶顯示屏設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---點(diǎn)陣電子顯示屏設(shè)計(jì)
- 利用鍵盤控制點(diǎn)陣進(jìn)行漢字顯示課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--點(diǎn)陣顯示器報(bào)告
- 單片機(jī)課程設(shè)計(jì)---led點(diǎn)陣電子顯示屏的設(shè)計(jì)
評論
0/150
提交評論