版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 郵電與信息工程學(xué)院</b></p><p><b> 課程設(shè)計(jì)說(shuō)明書(shū)</b></p><p> 課題名稱: 電子設(shè)計(jì)自動(dòng)化(EDA)課程設(shè)計(jì) </p><p> 學(xué)生學(xué)號(hào): </p>&
2、lt;p> 專業(yè)班級(jí): </p><p> 學(xué)生姓名: </p><p> 學(xué)生成績(jī): </p><p> 指導(dǎo)教師:
3、 </p><p> 課題工作時(shí)間: 2009.6.8 至 2009.6.19 </p><p><b> 目錄</b></p><p> 一、設(shè)計(jì)題目和要求-------------------------------------------------------------
4、----2</p><p> 二、設(shè)計(jì)思路--------------------------------------------------------------------------2</p><p> 三、單元模塊設(shè)計(jì)--------------------------------------------------------------------3</p>
5、<p> --------------------------------------------------------------------------------------------8</p><p> 3.1、FENPIN模塊設(shè)計(jì)-----------------------------------------------------(3,4)</p><p>
6、; 3.2、FIRST模塊設(shè)計(jì)------------------------------------------------------(4,5)</p><p> 3.3、JIANJISHU模塊設(shè)計(jì)------------------------------------------------(5,6)</p><p> 3.4、CHOICE和VIEW模塊設(shè)計(jì)----------
7、--------------------------------(7,8)</p><p> 四、硬件實(shí)驗(yàn)---------------------------------------------------------------------------8</p><p> 五、心得體會(huì)-------------------------------------------------
8、--------------------------9</p><p> 附頁(yè):程序代碼------------------------------------------------------------------------10</p><p> ------------------------------------------------------------------
9、---------------------------17</p><p><b> 一、設(shè)計(jì)題目和要求</b></p><p> 設(shè)計(jì)題目為:微波爐定時(shí)控制器</p><p> 要求:1、復(fù)位開(kāi)關(guān):</p><p><b> 啟動(dòng)開(kāi)關(guān): </b></p><p>&
10、lt;b> 烹調(diào)時(shí)間設(shè)置: </b></p><p><b> 烹調(diào)時(shí)間顯示:</b></p><p><b> 七段碼測(cè)試:</b></p><p><b> 啟動(dòng)輸出:</b></p><p> 按TEST鍵可以測(cè)試七段碼管,顯示為“8888”;
11、</p><p> 設(shè)定時(shí)間后,按啟動(dòng)鍵開(kāi)始烹調(diào),同時(shí)七段碼顯示剩余時(shí)間,時(shí)間為0時(shí),顯示烹調(diào)完成信息“CDEF”</p><p><b> 二、設(shè)計(jì)思路</b></p><p> A.先有一個(gè)大概的模塊設(shè)計(jì),就如下圖:</p><p> 預(yù)設(shè)初值 倒計(jì)時(shí)減計(jì)數(shù) 輸出數(shù)據(jù)&
12、lt;/p><p> B:再在上面大模塊的基礎(chǔ)上進(jìn)行改進(jìn)</p><p><b> 增加復(fù)位端和測(cè)試端</b></p><p><b> 復(fù)位輸出數(shù)據(jù)</b></p><p> 預(yù)設(shè) 倒計(jì)時(shí) 實(shí)現(xiàn)閃爍</p><p> 初值 減計(jì)數(shù)<
13、;/p><p><b> 測(cè)試</b></p><p> C:具體的設(shè)計(jì)過(guò)程(中文):</p><p> 1、剛開(kāi)始設(shè)計(jì)是先完成了FENPIN模塊的設(shè)計(jì),因?yàn)檫@個(gè)模塊比較簡(jiǎn)單。</p><p> 2、然后是對(duì)設(shè)初值大模塊的設(shè)計(jì),在這一部分的設(shè)計(jì)有兩個(gè)方案:</p><p> ?。?)設(shè)計(jì)兩個(gè)按
14、鈕的初始化模塊,兩個(gè)按鈕分別提供一個(gè)移位信號(hào)和一個(gè)加信號(hào);</p><p> ?。?)設(shè)計(jì)四個(gè)按鈕的初始話模塊,四個(gè)按鈕分別控制秒,十秒,分,十分這4</p><p> 兩個(gè)個(gè)數(shù)值的初始化;</p><p> 兩個(gè)方案都用了一下,發(fā)現(xiàn)還好是1號(hào)方案比較好,不僅程序上比較簡(jiǎn)單而且省了很多按鈕的使用,比較符合實(shí)際應(yīng)用的要求;</p><p>
15、 3、在完成了初始話模塊的設(shè)計(jì)之后,接下來(lái)就是減計(jì)數(shù)模塊的設(shè)計(jì),只要把由初始化模塊所提供的數(shù)據(jù)進(jìn)行減計(jì)數(shù)即可;</p><p> 4、在完成以上三個(gè)模塊時(shí),程序已經(jīng)初見(jiàn)雛形了,然后把這三個(gè)模塊連接起來(lái),添加上復(fù)位和測(cè)試按鈕就可以了;</p><p> 5、用動(dòng)態(tài)掃描的方法對(duì)數(shù)據(jù)進(jìn)行輸出,其中輸入數(shù)據(jù)是使相應(yīng)的數(shù)據(jù)進(jìn)行閃爍。</p><p><b>
16、 設(shè)計(jì)過(guò)程(英文):</b></p><p> 1、Began to is completed FENPIN module design, because it is simple.</p><p> 2、Then the initial set of design, the modules in this part of the design of two schemes
17、:</p><p> (1) Design two buttons initialization module,the two buttons to provide a shift signals and a signal;</p><p> (2) Design four buttons, four words buttons control module, 10 seconds,
18、the second is this, 4 both numerical initialization;</p><p> Two solutions are found well,the better one is 1, not only on the procedure is simple and save a lot of use, compared with button of the applicat
19、ion requirements,</p><p> 3、In the initial words module design, the next is reduced, just count the initialization module provided by the data can be reduced count,</p><p> 4、Completed above t
20、hree modules, the program has produced a prototype, and then connect the three modules, add the reset button and testing,</p><p> 5、The dynamic scanning methods of data output, which is in the input data to
21、 the corresponding data.</p><p><b> 三.單元模塊設(shè)計(jì)</b></p><p> 單元模塊設(shè)計(jì)部分主要有4部分組成:</p><p> (一)、FENPIN模塊,用于給后面的JIANJISHU模塊和VIEW模塊提供合適的頻率。</p><p> ?。ǘ?、FIRST模塊,用于設(shè)
22、定微波爐的初始時(shí)間而用。</p><p> ?。ㄈ?、JIANJISHU模塊,配合FENPIN模塊提供的時(shí)鐘頻率實(shí)現(xiàn)每秒減一的計(jì)數(shù)。</p><p> ?。ㄋ模?、CHOICE模塊和VIEW模塊,利用動(dòng)態(tài)掃描的方法顯出對(duì)應(yīng)數(shù)字。</p><p> ?。?)FENPIN模塊的設(shè)計(jì)</p><p> FENPIN模塊主要利用1Khz的時(shí)鐘信號(hào)進(jìn)行
23、分頻。得到1s的outclk時(shí)鐘信號(hào)(用于后期JIANJISHU模塊的使用)和0.5s的screen的時(shí)鐘信號(hào)(用于VIEW的顯示閃爍使用)。</p><p> 說(shuō)明:試驗(yàn)箱上有1Khz,2Khz等多個(gè)時(shí)鐘信號(hào)。而在這里采用1Khz的信號(hào)使用。1Khz/1000=1s,所以采用1Khz進(jìn)行千分頻得到1s的信號(hào)。</p><p><b> 實(shí)驗(yàn)波形圖:</b>&l
24、t;/p><p> 每秒產(chǎn)生一個(gè)時(shí)鐘脈沖</p><p> ?。ǔ绦虼a見(jiàn)附錄。)</p><p> Move此時(shí)數(shù)碼管有輸出</p><p> Move選中時(shí)數(shù)碼管無(wú)輸出</p><p> ?。?)FIRST模塊設(shè)計(jì)</p><p> FIRST模塊主要用于對(duì)時(shí)間設(shè)定初始值而用,其中設(shè)有A
25、BLE和CLK兩時(shí)鐘信號(hào),分別用于外接按鈕信號(hào)而用,其中CLK用于進(jìn)行加計(jì)數(shù),ABLE用于移位而用。輸出o1,o2,o3和o4分別是輸出秒,十秒,分,十分。而輸出o5是為VIEW實(shí)現(xiàn)閃爍而用的。其中的RES和TEST要配合JIANJISHU模塊中的RES和TEST同時(shí)控制才能有效。</p><p><b> 波形圖仿真: </b></p><p> 每個(gè)上升沿都
26、會(huì)進(jìn)行加計(jì)數(shù)</p><p> 當(dāng)res和test為零時(shí)輸出分別是“0000”和“8888”</p><p> Able在每個(gè)脈沖到來(lái)是都會(huì)進(jìn)行移位,而o5正好顯示出正在加的位數(shù)</p><p> 注意:編寫(xiě)此段代碼是要注意秒位和分位都是記從1記到9然后進(jìn)位自己變成0的,</p><p> 而十秒位和十分位是記到5然后變成0的。<
27、;/p><p><b> ?。ǔ绦虼a見(jiàn)后頁(yè))</b></p><p> (3)JIANJISHU模塊的設(shè)計(jì)</p><p> JIANJISHU模塊的主要用于對(duì)FIRST的數(shù)據(jù)進(jìn)行選擇性的處理和輸出:</p><p> ?。ㄒ唬?dāng)JIANJISHU模塊中的res=0時(shí),由于res作為輸入同樣也連接這FRIST模塊中&
28、lt;/p><p> 的res,他們是由一個(gè)輸入共同控制的,所以此時(shí)輸出的就是“0000”;</p><p> ?。ǘ?dāng)JIANJISHU模塊中的test=0時(shí),同res一樣的道理,此時(shí)輸出為“8888”;</p><p> ?。ㄈ?、當(dāng)h4=15(輸出為F)或start=0時(shí),LED就不會(huì)亮了,表示工作完成或處</p><p> 于等待
29、狀態(tài),此時(shí)不對(duì)FIRST模塊中的數(shù)據(jù)進(jìn)行任何處理就直接輸出;</p><p> (四)、在以上條件都不滿足的情況下,若此時(shí)start=1,那么JIANJISHU模塊才</p><p> 開(kāi)始了真正的工作狀態(tài),即配合FENPIN模塊中時(shí)鐘outclk開(kāi)始每秒減一的記時(shí)計(jì)數(shù);</p><p> 本程序中復(fù)位鍵res和test的詳細(xì)說(shuō)明:</p>&l
30、t;p> 這里的res和test和模塊FRIST中的res和test是用同一個(gè)控制端,而且JIANJISHU的res和test是必不可少的。因?yàn)槊看芜M(jìn)行計(jì)數(shù)完后由于是利用信號(hào)進(jìn)行減計(jì)數(shù),在記完一次數(shù)之后h1,h2,h3和h4都會(huì)保持最后一次的狀態(tài),如果不及時(shí)清零的話,那么下一次的res,test以及加計(jì)數(shù)就是只能對(duì)前一級(jí)的輸入進(jìn)行復(fù)位和測(cè)試,輸出的將是前一級(jí)的各個(gè)位數(shù)減去h1,h2,h3和h4的值,所以在JIANJISHU模塊中
31、進(jìn)行清零是十分重要的。</p><p><b> 波形圖仿真:</b></p><p> 輸入初值為“0015”</p><p> 當(dāng)start=1時(shí)開(kāi)始配合clks的始終上升沿開(kāi)始減計(jì)數(shù)</p><p> 在各位都記到0時(shí),就數(shù)碼管就會(huì)顯示 “FEDC”同時(shí)LED熄滅</p><p>
32、 這就是上次提到的復(fù)位是清零了所有的中間信號(hào),這樣輸出為FIRST中提供原始數(shù)據(jù)</p><p><b> (程序代碼見(jiàn)后頁(yè))</b></p><p> ?。?)CHOICE模塊和VIEW模塊</p><p> CHOICE模塊和VIEW模塊必須放在一起進(jìn)行使用,CHOICE模塊是進(jìn)行數(shù)據(jù)選則而使用的,VIEW模塊是用于在相應(yīng)的位進(jìn)行輸出對(duì)
33、應(yīng)的數(shù),兩者和起來(lái)就是一個(gè)動(dòng)態(tài)掃描的過(guò)程。</p><p> 說(shuō)明:這里的clk時(shí)鐘信號(hào)是使用和FENPIN模塊中一樣的時(shí)鐘信號(hào)(1Khz),因?yàn)槿?lt;/p><p> 的眼睛對(duì)時(shí)間的分辨為20個(gè)微秒,用1Khz的信號(hào)完全能滿足這樣的要求;要注意CHOICE有兩個(gè)輸出,o2顯然輸出的是對(duì)應(yīng)的數(shù)據(jù)信號(hào),而o1要輸出的是一個(gè)位選信號(hào),是為下一個(gè)模塊VIEW顯示而用。</p>&
34、lt;p> A:CHOICE模塊;</p><p><b> B:VIEW模塊;</b></p><p> 說(shuō)明:f1是接受位信號(hào)用的,f2是接受數(shù)據(jù)而用的。</p><p> 詳細(xì)說(shuō)明一下screen和able的作用:</p><p> Screen是有FENPIN模塊通過(guò)對(duì)時(shí)鐘信號(hào)分頻得到的,當(dāng)在模塊
35、FRIST選中某一</p><p> 進(jìn)行加數(shù)初始化是,VIEW就可以在時(shí)鐘screen在為1是正常輸出able所指的那位,</p><p> 當(dāng)screen為0時(shí),able所指的那位不能對(duì)應(yīng)輸出,這樣就能達(dá)到讓相應(yīng)的數(shù)碼管閃爍</p><p><b> 的效果。</b></p><p><b> 波形
36、圖:</b></p><p> ?。?程序代碼見(jiàn)后頁(yè))</p><p> 微波爐定時(shí)控制器組成原理圖:</p><p><b> 四.硬件實(shí)驗(yàn)</b></p><p><b> 管腳設(shè)置</b></p><p> 注釋:Clk1:選用的是1Khz的信號(hào);&
37、lt;/p><p> Clk2,Move,Rest,Testt:選用的是按鈕信號(hào);</p><p> Startt:使用的是開(kāi)關(guān)信號(hào);</p><p> Lighto:LED輸出;</p><p><b> 五、心得體會(huì)</b></p><p> 這次EDA課程設(shè)計(jì)歷時(shí)兩個(gè)星期,在整整兩個(gè)星
38、期的日子里,可以說(shuō)是苦多于甜,但是可以學(xué)的到很多很多的東西,同時(shí)不僅可以鞏固以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書(shū)本上所沒(méi)有學(xué)到過(guò)的知識(shí)。通過(guò)這次設(shè)計(jì),進(jìn)一步加深了對(duì)EDA的了解,讓我對(duì)它有了更加濃厚的興趣。特別是當(dāng)每一個(gè)子模塊編寫(xiě)調(diào)試成功時(shí),心里特別的開(kāi)心。</p><p> 第一天剛開(kāi)始的時(shí)候感覺(jué)很難,不知道怎么去做,怎么去編寫(xiě)程序...好多的空白,特別是在老師不在EDA機(jī)房的情況下,只能自己看書(shū)查資料。仔細(xì)
39、讀過(guò)程序,發(fā)現(xiàn)其實(shí)復(fù)雜的程序都是由一些簡(jiǎn)單的程序組成的,感覺(jué)看不懂是因?yàn)榍懊娴幕A(chǔ)知識(shí)沒(méi)掌握好,對(duì)語(yǔ)法不熟悉就不能很好地理解程序的含義。</p><p> 在整個(gè)的設(shè)計(jì)過(guò)程中現(xiàn)在回頭好好回想一下我覺(jué)得還是有很多不足的,做任何事情起步的時(shí)候就應(yīng)該有一個(gè)全局觀,但是剛開(kāi)始由于我沒(méi)有考慮完全,在FIRST模塊種設(shè)計(jì)了有四個(gè)按鍵控制的初始化程序,之后發(fā)現(xiàn)這樣不僅程序非常的繁瑣,而且這種課設(shè)應(yīng)該和實(shí)際好好聯(lián)系一下,有誰(shuí)家
40、的微波爐就光是剛開(kāi)始設(shè)定初值都有這么多按鈕,那么不僅難看而且比較耗資源,使用也不是最方便的,所以之后經(jīng)過(guò)分析后選擇了現(xiàn)在使用的由兩個(gè)按鈕就能事先數(shù)據(jù)初始化的功能。因此在以后的設(shè)計(jì)工作中也要學(xué)會(huì)有大局觀。</p><p> 同時(shí)在編寫(xiě)復(fù)位和測(cè)試兩個(gè)按鍵的功能是遇到了比較大的麻煩,總是輸出一些莫名其妙的數(shù)據(jù),之后發(fā)現(xiàn)是由于在JIANJISHU模塊的中的中間信號(hào)沒(méi)有清零而導(dǎo)致的,這樣的一個(gè)遇到困難然后去解決這個(gè)問(wèn)題的
41、過(guò)程讓我對(duì)中間信號(hào)有了比較深刻的理解。</p><p> 通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題,可以說(shuō)得是困難重重,這畢竟第一次做的,難免會(huì)遇到過(guò)各種各樣的問(wèn)題,同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不
42、夠深刻,掌握得不夠牢固。</p><p> 總的來(lái)說(shuō),這次設(shè)計(jì)的數(shù)字秒表還是比較成功的,在設(shè)計(jì)中遇到了很多問(wèn)題,最后在老師的辛勤的指導(dǎo)下,終于迎刃而解,有點(diǎn)小小的成就感,終于覺(jué)得平時(shí)所學(xué)的知識(shí)有了實(shí)用的價(jià)值,達(dá)到了理論與實(shí)際相結(jié)合的目的,不僅學(xué)到了不少知識(shí),而且鍛煉了自己的能力,使自己對(duì)以后的路有了更加清楚的認(rèn)識(shí),同時(shí),對(duì)未來(lái)有了更多的信心。</p><p> ?。ㄓ⑽模篢he EDA
43、 course design last for two weeks, in the days of suffering, it is more sweet, but can learn many things, also can not only learned before consolidation, and learned a lot of knowledge in the books have never learned bef
44、ore. Through the design, further deepened the understanding of EDA, let me has more interest for it. Especially when each one is written, especially when the successful commissioning of the time.</p><p> Th
45、e first day, I don't know how to do it, and how to write programs. A lot of blank, especially the teacher is not under the condition of the room, EDA only a check material. Carefully read the program, the program tha
46、t actually complex is composed by some simple procedure of feeling, don't understand just because the basic knowledge in front of grammar, didn't grasp not familiar with can well understand the meaning of program
47、..</p><p> In the design process is now turning to recall that I think there are still a lot of deficiencies, do anything when you start a broader view, but should be started because I haven't considere
48、d fully, we design the module in four key control initialize programs, and then found that the program is very detailed, and the class should have contact with real good, whose microwave oven is initialized just started
49、all have so many buttons, so not only ugly and comparison consumption of resources, use a</p><p> At the same time two buttons and writing test is met more trouble, always output of data that is due, in the
50、 middle of the JIANJISHU module and have no reset signal, such a difficult.Then go to solve the problem of middle signal process, let me have a profound understanding.</p><p> Through this course design mak
51、es me understand the combining theory with practice is very important, only the theoretical knowledge is not enough, only combine theories and practice, from theory combining concluded that can truly for the social servi
52、ce, so as to improve their practical ability and the ability of independent thinking. In the process of design problems, may be difficult, the first of all, hard to avoid can meet various problems in the process of desig
53、n, and found his shortcomings,</p><p> In general, the design of the digital stopwatch is successful in the design, met with many problems, at last, under the guidance of teachers hardly, and finally solved
54、, a small accomplishment, the final felt at ordinary times of knowledge has practical value to the combination of theory and practice, not only learned a lot of knowledge, and exercise our ability to make way for myself
55、a clearer understanding and have more confidence in the future. </p><p><b> 六、程序</b></p><p> —————————————微波爐定時(shí)控制器程序————————————</p><p> 第一部分:TOP(頂層文件)</p><
56、;p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity top is</p><p> port(rest,clk1,clk2,move,startt,te
57、stt:in std_logic;</p><p> lighto:out std_logic;</p><p> sel:out std_logic_vector(2 downto 0);</p><p> seg:out std_logic_vector(7 downto 0));</p><p><b> end;&l
58、t;/b></p><p> architecture three of top is</p><p> component fenpin is</p><p> port(clk:in std_logic; 分頻</p><p> outclk,screen:out std_logic);<
59、;/p><p> end component;</p><p> component first is</p><p> port(clk,able,res,test:in std_logic; 初始化數(shù)據(jù)</p><p> o1,o2,o3,o4,o5:out std_logic_vector
60、(3 downto 0));</p><p> end component;</p><p> component jianjishu is</p><p> port(clks,start,res,test:in std_logic;</p><p> in1,in2,in3,in4:in std_logic_vector(3 do
61、wnto 0); 減計(jì)數(shù)</p><p> light:out std_logic;</p><p> out1,out2,out3,out4:out std_logic_vector(3 downto 0));</p><p> end component;</p><p> component choice is
62、</p><p> port(clk:std_logic;</p><p> f1,f2,f3,f4:in std_logic_vector(3 downto 0);</p><p> o1:out std_logic_vector(1 downto 0); 位選</p><p> o2:out std_log
63、ic_vector(3 downto 0));</p><p> end component;</p><p> component view is</p><p> port(screen:in std_logic;</p><p> f1:in std_logic_vector(1 downto 0);</p>&l
64、t;p> f2,able:in std_logic_vector(3 downto 0); 顯示輸出</p><p> segout:out std_logic_vector(7 downto 0);</p><p> selout:out std_logic_vector(2 downto 0));</p><p> end comp
65、onent;</p><p> signal b,c,d,e,f,g,h,i,j:std_logic_vector(3 downto 0);</p><p> signal a,k:std_logic;</p><p> signal q:std_logic_vector(1 downto 0);</p><p> signal p:
66、std_logic_vector(3 downto 0);</p><p><b> begin</b></p><p> u1: fenpin port map (clk=>clk1,outclk=>a,screen=>k);</p><p> u2: first port map (clk=>clk2,res
67、=>rest,test=>testt,able=>move,</p><p> o1=>b,o2=>c,o3=>d,o4=>e,o5=>j);</p><p> u3:jianjishu port map (clks=>a,start=>startt,res=>rest,test=>testt,in1=>b,
68、in2=>c,</p><p> in3=>d,in4=>e,light=>lighto,out1=>f,out2=>g,out3=>h,out4=>i);</p><p> u4:choice port map (clk=>clk1,f1=>f,f2=>g,f3=>h,f4=>i,o1=>q,o2=
69、>p);</p><p> u5:view port map (able=>j,screen=>k,f1=>q,f2=>p,segout=>seg,selout=>sel);</p><p><b> end;</b></p><p> ———————————————————————————
70、—————————</p><p> 第二部分:FENPIN(時(shí)鐘分頻)</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity
71、 fenpin is</p><p> port(clk:in std_logic;</p><p> outclk,screen:out std_logic);</p><p><b> end;</b></p><p> architecture first of fenpin is</p>&
72、lt;p> signal H1,H2:std_logic;</p><p><b> begin</b></p><p> one:process(clk)</p><p> variable count1:integer range 0 to 1002;</p><p><b> begin&
73、lt;/b></p><p><b> H1<='0';</b></p><p> if count1>1000 then H1<='1';count1:=0;</p><p> elsif clk'event and clk='1' then count1:
74、=count1+1; 分出1秒信號(hào)</p><p><b> end if;</b></p><p> end process;</p><p> two:process(clk)</p><p> variable count2:integer range 0 to 500;</p>
75、<p><b> begin</b></p><p> if clk'event and clk='1' then </p><p> if count2<250 then H2<='1';count2:=count2+1;</p><p> else H2<=
76、9;0';count2:=count2+1; 閃爍信號(hào)</p><p><b> end if;</b></p><p><b> end if;</b></p><p> if count2>499 then count2:=0;</p><p>
77、<b> end if;</b></p><p> end process;</p><p> outclk<=H1;</p><p> screen<=H2;</p><p><b> end; </b></p><p> 第三部分:FIRST(
78、數(shù)據(jù)初始化)</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity first is</p><p> port(clk,ab
79、le,res,test:in std_logic;</p><p> o1,o2,o3,o4,o5:out std_logic_vector(3 downto 0));</p><p><b> end;</b></p><p> architecture two of first is</p><p> sig
80、nal h1,h2,h3,h4,h5:std_logic_vector(3 downto 0);</p><p><b> begin</b></p><p> process(able)</p><p><b> begin</b></p><p> if able'event a
81、nd able='1' then </p><p> if h5<4 then h5<=h5+1; 位選信號(hào),選擇相應(yīng)的位進(jìn)行初始</p><p> else h5<="0000"; 化,其中“0000”為空位。</p><p><b> end if;
82、</b></p><p><b> end if;</b></p><p> end process; </p><p> process(clk,res,test,q4)</p><p><b> begin</b></p><p> if res=&
83、#39;0' then h1<="0000";h2<="0000";h3<="0000";h4<="0000"; --復(fù)位鍵</p><p> elsif test='0' then h1<="1000";h2<="1000";h
84、3<="1000";h4<="1000"; --測(cè)試鍵</p><p> elsif clk'event and clk='1' then </p><p> case h5 is</p><p> when "0001"=> if h1<9 then
85、 h1<=h1+1;</p><p> else h1<="0000"; 秒位加數(shù)</p><p><b> end if;</b></p><p> when "0010"=> if h2<5 then h2<=h2+1;</p>&l
86、t;p> else h2<="0000"; 十秒位加數(shù)</p><p><b> end if;</b></p><p> when "0011"=> if h3<9 then h3<=h3+1;</p><p> else h3<="
87、0000"; 分位加數(shù)</p><p><b> end if;</b></p><p> when "0100"=> if h4<5 then h4<=h4+1;</p><p> else h4<="0000"; 十分位加數(shù)<
88、;/p><p><b> end if;</b></p><p> when others=>null;</p><p><b> end case;</b></p><p><b> end if;</b></p><p> end pro
89、cess;</p><p><b> o1<=h1;</b></p><p><b> o2<=h2;</b></p><p><b> o3<=h3;</b></p><p><b> o4<=h4;</b></p&
90、gt;<p> o5<=h5; --在VIEW模塊中選擇閃爍位</p><p><b> end;</b></p><p> ————————————————————————————————————</p><p> 第四部分:JIANJISHU(數(shù)據(jù)按
91、秒倒計(jì)時(shí))</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity jianjishu is</p><p> port(clk
92、s,start,res,test:in std_logic;</p><p> in1,in2,in3,in4:in std_logic_vector(3 downto 0);</p><p> light:out std_logic;</p><p> out1,out2,out3,out4:out std_logic_vector(3 downto 0))
93、;</p><p><b> end;</b></p><p> architecture one of jianjishu is</p><p> signal h1,h2,h3,h4:std_logic_vector(3 downto 0);</p><p><b> begin</b&g
94、t;</p><p> process(start,clks,res,test,q4)</p><p> variable a:std_logic_vector(1 downto 0);</p><p><b> begin</b></p><p> if res='0' or test=&
95、#39;0' then h1<="0000";h2<="0000";h3<="0000";h4<="0000";</p><p> --對(duì)信號(hào)都清零設(shè)置</p><p> elsif h4=(in4-15) or start='0' then a:="
96、;00";light<='0'; </p><p> --當(dāng)h4=15或start=0時(shí)不進(jìn)行減計(jì)數(shù),同時(shí)LED不亮</p><p> elsif start='1' then a:="11";light<='1';</p><p> --當(dāng)start=1時(shí)LED點(diǎn)
97、亮同時(shí)開(kāi)始倒計(jì)時(shí)</p><p><b> case a is</b></p><p> when "11"=>if clks'event and clks='1' then</p><p> if (in1-h1)=0 then h1<=(in1-9);h2<=h2+1;&l
98、t;/p><p> else h1<=h1+1;</p><p><b> end if;</b></p><p> --h1開(kāi)始為0,當(dāng)h1=in1時(shí),對(duì)h1賦值為(in1-9),為負(fù)數(shù),</p><p> 同時(shí)對(duì)h2進(jìn)行加1,那么(in2-h2)就可以視線減1,若不是那么h1<=h1+1,可以實(shí)現(xiàn)&l
99、t;/p><p> ?。╥n1-h1)從9開(kāi)始的倒計(jì)數(shù)</p><p> if (in2-h2)=0 and (in1-h1)=0 then </p><p> h3<=h3+1;h2<=(in2-5);q1<=(in1-9);</p><p><b> end if;</b></p>
100、<p> --當(dāng)輸出out1=0和out2=0時(shí)進(jìn)位減1,同時(shí)out1=9,out2=5;</p><p> if (in3-h3)=0 and (in2-h2)=0 and (in1-h1)=0 then</p><p> h4<=h4+1;h3<=(in3-9);h2<=(in2-5);h1<=(in1-9);</p><p&
101、gt;<b> end if;</b></p><p> if (in4-h4)=0 and (in3-h3)=0 and (in2-h2)=0 and (in1-h1)=0 </p><p> thenh4<=(in4-15);h3<=(in3-14);h2<=(in2-13);h1<=(in1-12);</p><
102、;p><b> end if;</b></p><p> --當(dāng)所有計(jì)數(shù)完畢(都為0)時(shí),實(shí)現(xiàn)輸出FEDC;</p><p><b> end if;</b></p><p> when others=>null;</p><p><b> end case;<
103、/b></p><p><b> end if;</b></p><p> end process;</p><p> out1<=(in1-h1);</p><p> out2<=(in2-h2);</p><p> out3<=(in3-h3);</p&
104、gt;<p> out4<=(in4-h4);</p><p><b> end;</b></p><p> ————————————————————————————————————</p><p> 第五部分:CHOICE(數(shù)據(jù)選擇模塊)</p><p> library ieee;<
105、;/p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity choice is</p><p> port(clk:std_logic;</p><p> f1,f2,f3,f4:i
106、n std_logic_vector(3 downto 0);</p><p> o1:out std_logic_vector(1 downto 0);</p><p> o2:out std_logic_vector(3 downto 0));</p><p><b> end;</b></p><p> a
107、rchitecture one of choice is</p><p> signal q:std_logic_vector(1 downto 0);</p><p><b> begin</b></p><p> process(clk)</p><p><b> begin</b>&l
108、t;/p><p> if clk'event and clk='1' then q<=q+1;</p><p><b> end if;</b></p><p><b> case q is</b></p><p> when "00" =>
109、; o2<=f1; </p><p> when "01" => o2<=f2;</p><p> when "10" => o2<=f3; 選擇輸出數(shù)據(jù)</p><p> when "11" => o2<=f4; </p>
110、<p> when others=> null;</p><p><b> end case;</b></p><p> end process;</p><p> o1<=q; --位選信號(hào)</p><p><b> end;</b
111、></p><p> ————————————————————————————————————</p><p> 第六部分:VIEW(顯示模塊)</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.
112、std_logic_unsigned.all;</p><p> entity view is</p><p> port(screen:in std_logic;</p><p> f1:in std_logic_vector(1 downto 0);</p><p> f2,able:in std_logic_vector(3 d
113、ownto 0);</p><p> segout:out std_logic_vector(7 downto 0);</p><p> selout:out std_logic_vector(2 downto 0));</p><p><b> end;</b></p><p> architecture on
114、e of view is</p><p> signal seg:std_logic_vector(6 downto 0);</p><p> signal sel:std_logic_vector(2 downto 0);</p><p><b> begin</b></p><p> selout<=
115、sel;</p><p> segout(6 downto 0)<=seg;</p><p> sel<="000" when f1=0 else</p><p> "001" when f1=1 else</p><p> "010" when f1=2 els
116、e 相應(yīng)的數(shù)據(jù)選擇對(duì)應(yīng)的位進(jìn)行輸出</p><p> "011" when f1=3 else</p><p><b> "000";</b></p><p> segout(7)<='1' when f1=2 else '0'; --在第三
117、個(gè)數(shù)碼管輸出小數(shù)點(diǎn)</p><p> process(f2,able,sel)</p><p><b> begin</b></p><p> if (able="0001" and sel="000") or (able="0010" and sel="001&quo
118、t;) or </p><p> (able="0011" and sel="010") or (able="0100" and sel="011") then</p><p> if screen='1' then seg<="0000000"; --無(wú)輸出&
119、lt;/p><p><b> else</b></p><p> case f2 is</p><p> when "0000" => seg<="0111111";</p><p> when "0001" => seg<=&quo
120、t;0000110";</p><p> when "0010" => seg<="1011011";</p><p> when "0011" => seg<="1001111";</p><p> when "0100" =
121、> seg<="1100110";</p><p> when "0101" => seg<="1101101";</p><p> when "0110" => seg<="1111101";</p><p> when &
122、quot;0111" => seg<="0000111";</p><p> when "1000" => seg<="1111111";</p><p> when "1001" => seg<="1101111";</p>
123、<p> when "1010" => seg<="1110111";</p><p> when "1011" => seg<="1111100";</p><p> when "1100" => seg<="0111001&q
124、uot;;</p><p> when "1101" => seg<="1011110";</p><p> when "1110" => seg<="1111001";</p><p> when "1111" => seg<
125、;="1110001";</p><p> when others=>null;</p><p> end case; --有輸出</p><p> end if; --實(shí)現(xiàn)閃爍</p><p><b> else</b&
126、gt;</p><p> case f2 is</p><p> when "0000" => seg<="0111111";</p><p> when "0001" => seg<="0000110";</p><p> whe
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- eda課程設(shè)計(jì)---微波爐定時(shí)控制器
- eda課程設(shè)計(jì)---微波爐定時(shí)控制器的設(shè)置
- eda綜合課程設(shè)計(jì)報(bào)告-----微波爐定時(shí)控制器的設(shè)計(jì)
- eda課程設(shè)計(jì)---微波爐控制器設(shè)計(jì)
- 微波爐課程設(shè)計(jì)---基于微波爐控制系統(tǒng)設(shè)計(jì)
- 數(shù)電課程設(shè)計(jì)--微波爐定時(shí)控制器的設(shè)計(jì)與制作
- vhdl微波爐控制器課程設(shè)計(jì)-- 數(shù)字微波爐控制器
- 課程設(shè)計(jì)---vhdl設(shè)計(jì)微波爐控制器
- 運(yùn)輸包裝課程設(shè)計(jì)--微波爐運(yùn)輸包裝設(shè)計(jì)
- 課程設(shè)計(jì)---基于fpga的微波爐控制器設(shè)計(jì)
- 數(shù)字電路課程設(shè)計(jì)微波爐控制器
- 單片機(jī)課程設(shè)計(jì)-基于微波爐控制系統(tǒng)設(shè)計(jì)
- fpga基于vhdl微波爐課程設(shè)計(jì)說(shuō)明書(shū)
- 微波爐做菜
- 微波爐圖片
- 格蘭仕微波爐網(wǎng)站設(shè)計(jì)需求49469
- 綜合微波爐
- 選購(gòu)微波爐
- 微波爐教案
- eda課程設(shè)計(jì)--eda課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告
評(píng)論
0/150
提交評(píng)論