畢業(yè)設(shè)計(jì)----基于 vhdl語言的多功能數(shù)字鐘設(shè)計(jì)_第1頁
已閱讀1頁,還剩49頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p>  基于 VHDL語言的多功能數(shù)字鐘設(shè)計(jì)</p><p><b>  摘 要</b></p><p>  VHDL作為一種硬件描述語言,可用于數(shù)字電路與系統(tǒng)的描述、模擬和自動設(shè)計(jì)與仿真等,是當(dāng)今電子設(shè)計(jì)自動化的核心技術(shù)。 本文使用VHDL語言設(shè)計(jì)了一個數(shù)字時鐘電路,給出了設(shè)計(jì)該數(shù)字系統(tǒng)的流程和方法。本設(shè)計(jì)方法具有硬件描述能力強(qiáng),設(shè)計(jì)方法靈活,便于修改

2、等優(yōu)點(diǎn),大大降低了數(shù)字系統(tǒng)設(shè)計(jì)的難度,提高了工作效率。</p><p>  本設(shè)計(jì)采用EDA技術(shù),以硬件描述語言VHDL為系統(tǒng)邏輯描述手段設(shè)計(jì)文件,在MAX+PlusⅡ工具軟件環(huán)境下,采用自頂向下的設(shè)計(jì)方法,由各個基本模塊共同構(gòu)建了一個基于CPLD的數(shù)字鐘。</p><p>  系統(tǒng)主芯片采用EPM7128SLC84,由時鐘模塊、控制模塊、計(jì)時模塊、數(shù)據(jù)譯碼模塊、顯示以及報時模塊組成。經(jīng)編

3、譯和仿真所設(shè)計(jì)的程序,在可編程邏輯器件上下載驗(yàn)證,本系統(tǒng)能夠完成時、分、秒的分別顯示,由按鍵輸入進(jìn)行數(shù)字鐘的校時、清零、啟停功能。</p><p>  關(guān)鍵詞:硬件描述語言,VHDL,數(shù)字電路設(shè)計(jì), 數(shù)字鐘</p><p>  Digital Clock Design Based On The Hardware Description Language(VHDL)</p>&

4、lt;p>  Author: 。。。。。。。。</p><p>  Tutor: 。。。。。。。。</p><p><b>  Abstract</b></p><p>  VHDL can be used to describe,simulate and digital system automatically. Nowdays,it

5、becomes a key technology in automatic electronic design. There is a lot of superiority in this description language.This article introduces the method and the process using VHDL to design a digital system by an example o

6、f digital clock dasign. The result given in this paper shows that VHDL is one of the strongest tools in hardware description and it is a flexible among the design method. The method given in this p</p><p>  

7、The use of EDA design technology, hardware-description language VHDL description logic means for the system design documents, in MaxplusII tools environment, a top-down design, by the various modules together build a CPL

8、D-based digital clock.</p><p>  The main system chips used EPM7128SLC84, make up of the clock module, control module, time module, data decoding module, display and broadcast module. After compiling the desi

9、gn and simulation procedures, the programmable logic device to download verification, the system can complete the hours, minutes and seconds respectively, using keys to modify, cleared , start and stop the digital clock.

10、 </p><p>  Key words: Hardware description language,VHDL, Digital circuit design, digital clock</p><p><b>  目 錄</b></p><p><b>  1 緒論1</b></p><p&

11、gt;  1.1 課題背景1</p><p>  1.2 本課題研究的內(nèi)容1</p><p>  2 總體設(shè)計(jì)方案3</p><p>  3 單元模塊電路設(shè)計(jì)4</p><p>  3.1 時間顯示電路模塊設(shè)計(jì)4</p><p>  3.2 按鍵及指示燈電路模塊的設(shè)計(jì)5</p><p&g

12、t;  3.3 蜂鳴器及有源晶振電路的設(shè)計(jì)7</p><p>  3.4 CPLD編程下載電路的設(shè)計(jì)8</p><p>  3.5 電源電路的設(shè)計(jì)9</p><p>  3.5.1 變壓器次級電壓估算9</p><p>  3.5.2 變壓器輸入功率的計(jì)算9</p><p>  3.5.3 濾波電容參數(shù)的選取

13、10</p><p>  3.6 EPM7128SLC84器件介紹10</p><p>  4 CPLD 編程設(shè)計(jì)11</p><p>  4.1系統(tǒng)信號的定義及頂層模塊11</p><p>  4.2 時鐘節(jié)拍產(chǎn)生模塊12</p><p>  4.3模式選擇功能模塊14</p><p&

14、gt;  4.4 快速時間設(shè)置功能模塊16</p><p>  4.5 秒、分、時計(jì)時與時間調(diào)整模塊16</p><p>  4.6鬧鈴時間設(shè)置模塊18</p><p>  4.7鬧鈴與整點(diǎn)報時模塊19</p><p>  4.8 七段顯示譯碼模塊20</p><p>  4.9 LED顯示模塊22<

15、/p><p>  5 系統(tǒng)功能仿真25</p><p>  5.1 時鐘節(jié)拍產(chǎn)生模塊的仿真波形25</p><p>  5.2 模式選擇功能模塊的仿真波形26</p><p>  5.3 鬧鈴設(shè)置功能模塊的仿真波形27</p><p>  5.4 七段譯碼功能模塊的仿真波形28</p><p&

16、gt;  5.5 LED顯示功能模塊的仿真波形30</p><p>  5.6 系統(tǒng)總體功能仿真波形31</p><p><b>  總 結(jié)32</b></p><p><b>  致 謝33</b></p><p><b>  參考文獻(xiàn)34</b></p&

17、gt;<p>  附錄A:基于CPLD的多功能數(shù)字鐘電路圖35</p><p>  附錄B:基于VHDL語言的時、分、秒等電路的源碼36</p><p><b>  1 緒論</b></p><p><b>  1.1 課題背景</b></p><p>  我們已經(jīng)進(jìn)入了數(shù)字化和信

18、息化的時代,其特點(diǎn)是各種數(shù)字產(chǎn)品的廣泛應(yīng)用?,F(xiàn)代數(shù)字產(chǎn)品在性能提高、復(fù)雜度增大的同時,其更新?lián)Q代的步伐也越來越快,實(shí)現(xiàn)這種進(jìn)步的因素在于生產(chǎn)制造技術(shù)和電子設(shè)計(jì)技術(shù)的進(jìn)步。生產(chǎn)制造技術(shù)以微細(xì)加工技術(shù)為代表,目前已進(jìn)展到深亞微米階段,可以在幾平方厘米的芯片上集成數(shù)千萬個晶體管[1]。</p><p>  PLD器件和EDA技術(shù)的出現(xiàn),改變了傳統(tǒng)的設(shè)計(jì)思路,使人們可以立足于PLD芯片來實(shí)現(xiàn)各種不同的功能,新的設(shè)計(jì)方法能

19、夠由設(shè)計(jì)者自己定義器件內(nèi)部邏輯和管腳,將原來由電路板設(shè)計(jì)完成的工作大部分放在芯片的設(shè)計(jì)中進(jìn)行。這樣不僅可以通過芯片設(shè)計(jì)實(shí)現(xiàn)各種邏輯功能,而且由于管腳定義的靈活性,減輕了原理圖和印制板設(shè)計(jì)的工作量和難度,增加了設(shè)計(jì)的自由度,提高了效率。同時這種設(shè)計(jì)減少了所需芯片的種類和數(shù)量,縮小了體積,降低了功耗,提高了系統(tǒng)的可靠性[2]。</p><p>  鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地擴(kuò)展了鐘表原先的

20、報時功能。諸如定時自動報警、定時啟閉電路、定時開關(guān)烘箱、通斷動力設(shè)備,甚至各種定時電氣的自動啟用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究數(shù)字鐘及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。</p><p>  1.2 本課題研究的內(nèi)容</p><p>  本設(shè)計(jì)是基于CPLD(MAX7000S系列)的多功能數(shù)字鐘設(shè)計(jì)。硬件界面為一個6位的LED數(shù)碼管,時間顯示方式為6位同時顯示,即顯示狀態(tài)為

21、:88:88:88。顯示的時間制為24小時制。三個時間設(shè)定按鍵,分別為MODE模式選擇鍵,SET設(shè)定鍵和CHANGE數(shù)值修改鍵[3]。</p><p>  按鍵功能介紹:MODE按鍵用來選擇當(dāng)前數(shù)字鐘的工作模式,系統(tǒng)正常工作在模式0下。當(dāng)在正常時鐘模式下第一次按下MODE鍵時,系統(tǒng)進(jìn)入模式1,即鬧鈴模式,在此模式下可以通過SET和CHANGE按鍵的配合使用來設(shè)定所需要的鬧鈴時間。當(dāng)再一次按下MODE按鍵后系統(tǒng)進(jìn)入

22、手動校時模式,在此模式下通過SET和CHANGE按鍵的配合使用,可以改變當(dāng)前時間。SET按鍵則用于在不同的模式下選擇當(dāng)前設(shè)定的位置,比如當(dāng)前設(shè)定的位置是小時,則再一次按下SET按鍵后當(dāng)前設(shè)定的位置變?yōu)榉昼姟HANGE按鍵用來將當(dāng)前設(shè)定位置的時間值加1,當(dāng)長時間按下CHANGE按鍵時,當(dāng)前設(shè)定值為連續(xù)快速加1,此功能用于快速設(shè)定時間[4]。</p><p>  系統(tǒng)帶四個指示燈電路,一個為電源指示燈,其他三個為工

23、作狀態(tài)指示燈,即分別為LED_ALARM、LED_HOUR和LED_MIN。LED_ALARM用于指示當(dāng)前是否設(shè)有鬧鈴,當(dāng)LED_ALARM指示燈亮?xí)r表明當(dāng)前設(shè)有鬧鈴。LED_HOUR和LED_MIN用于指示當(dāng)前設(shè)定的是時間的小時還是分鐘,當(dāng)LED_HOUR指示燈亮?xí)r表明此時設(shè)定的是時間的小時值,當(dāng)LED_MIN指示燈亮?xí)r表明此時設(shè)定的是時間的分鐘值。</p><p>  鬧鈴的功能是實(shí)現(xiàn)當(dāng)?shù)竭_(dá)預(yù)設(shè)的時間點(diǎn)時產(chǎn)生

24、為時20s的“嘀嘀嘀嘀”急促短音。整點(diǎn)報時的功能是實(shí)現(xiàn)在每個整點(diǎn)的5秒鐘前產(chǎn)生整點(diǎn)報時音,報時音為“嘀嘀嘀---嘟”4短一長音。 </p><p><b>  2 總體設(shè)計(jì)方案</b></p><p>  整個設(shè)計(jì)的方式采用TOP-DOWN設(shè)計(jì)方法,即自頂向下的設(shè)計(jì)。這種設(shè)計(jì)方法首先從系統(tǒng)設(shè)計(jì)入手,在頂層進(jìn)行功能方框圖的劃分和結(jié)構(gòu)設(shè)計(jì)。在功能級進(jìn)入仿真和糾錯,并用硬件

25、描述語言對高層次的系統(tǒng)行為進(jìn)行描述,然后用綜合工具將設(shè)計(jì)轉(zhuǎn)化為具體門電路網(wǎng)表,其對應(yīng)的物理實(shí)現(xiàn)可以是PLD器件或?qū)S眉呻娐?。由于設(shè)計(jì)的主要仿真和調(diào)試過程是在高層次上完成的,這一方面有利于早期發(fā)現(xiàn)結(jié)構(gòu)上的錯誤,避免設(shè)計(jì)工作的浪費(fèi),同時也減少了邏輯功能仿真的工作量,提高了設(shè)計(jì)的一次成功率[5]。</p><p>  多功能數(shù)字鐘設(shè)計(jì)分為1個頂層模塊和8個功能子模塊。頂層模塊名稱為clock.v。各功能子模塊分別為:

26、系統(tǒng)分頻功能模塊clk_generate.v、模式選擇功能模塊mode_select.v、快速時間設(shè)置功能模塊fast_settime.v、秒分時計(jì)時與時間調(diào)整模塊time_mode0.v、鬧鈴時間設(shè)置模塊alarm_set.v、鬧鈴與整點(diǎn)報時模塊alarm.v、7段顯示譯碼模塊decoder_7seg.v以及LED顯示功能模塊display.v。</p><p>  圖2.1  整個系統(tǒng)的模塊劃分&l

27、t;/p><p>  3 單元模塊電路設(shè)計(jì)</p><p>  3.1 時間顯示電路模塊設(shè)計(jì)</p><p>  時間顯示電路主要由兩部分組成,如圖3.1所示。其中一部分為六位LED數(shù)碼管的驅(qū)動電路,另一部分為LED數(shù)碼管電路。LED驅(qū)動電路由Q1、Q2、Q3、Q4、Q5、Q6六個三極管和R5、R6、R7、R8、R9、R10基極偏置電阻組成。驅(qū)動三級管為PNP型三極管,

28、用于開關(guān)電路中。當(dāng)三極管Q1的基極(即CPLD的LED0輸出端)為低電平時,Q1的發(fā)射結(jié)正向偏置,集電結(jié)反向偏置,因此三極管處于導(dǎo)通狀態(tài),此時有Vce≈0.2~0.3V。反之當(dāng)Q1的基極為高電平時Q1截止。Q1~Q6的基極(LED0~LED5)分別接CPLD的PIN74、PIN73、PIN70、PIN69、PIN68、PIN67,分別作為LED數(shù)碼管的位選端[6]。 </p><p>  圖3.1 LED顯示電路

29、</p><p>  LED的顯示方式有靜態(tài)顯示和動態(tài)方式兩種工作方式。LED顯示器工作于靜態(tài)顯示方式時,各位的共陰極(或共陽極)連接在一起并接地(或+5V);每位的段碼線(A~dp)分別與一個8位的鎖存器輸出相連。之所以為靜態(tài)顯示,是因?yàn)楦鱾€LED的顯示字符的字符一經(jīng)確定,相應(yīng)鎖存器鎖存的段碼輸出將維持不變,直到送入另一個字符的段碼為止。正因?yàn)槿绱耍o態(tài)顯示器的亮度都較高。但是因?yàn)殪o態(tài)顯示方式下,各位LED的段

30、碼線都是獨(dú)立的,因此一個6位的LED顯示器需要占用6*8+6=54個I/O口,在這種情況下為了簡化接線,本設(shè)計(jì)采用的是動態(tài)掃描方式來顯示。</p><p>  在動態(tài)顯示方式下,通常將所有位的段碼線相應(yīng)并聯(lián)在一起,由一個8位的I/O口控制,形成段碼線的多路復(fù)用,而各位的共陽極或共陰極分別由相應(yīng)的I/O口控制,形成各位的分時選通[7]。圖3.1所示的電路是一個六位的LED顯示電路。其中段碼線占用1個8位I/O口,而

31、位選線占用六位I/O口。由于各段碼線并聯(lián),8位I/O口輸出的段碼對各個顯示位來說都是相同的。因此,在同一時刻,如果各位位選線都處于選通狀態(tài)的話六位LED將顯示相同的字符。若使各個LED能同時顯示出與本位相應(yīng)的字符,就必須采用動態(tài)顯示方式,即在某一時刻,只讓某一位的位選線處于選通狀態(tài),而其他各位的位選處于關(guān)閉狀態(tài),同時,段碼線上輸出相應(yīng)的要顯示的字符段碼。這樣,在同一時刻,六位LED中只有選通的那一位顯示出字?jǐn)?shù),而其它則是熄滅的。同樣在下

32、一時刻,只讓下一位的位選線處于選通狀態(tài),而其它各位的位選線處于關(guān)閉狀態(tài),在段碼線上輸出將要顯示字符的段碼,則同一時刻,只有選通位顯示相應(yīng)的字符,而其它各位是熄滅的,如此循環(huán)下去,就可以使各位顯示出將要顯示的字符。</p><p>  3.2 按鍵及指示燈電路模塊的設(shè)計(jì)</p><p>  根據(jù)電子電路常識,采用灌電流工作方式的電路的功耗要比采用拉電流方式工作的電路小。因此本設(shè)計(jì)中所有的外部

33、鍵盤,指示二極管均采用灌電流的工作方式。當(dāng)多功能數(shù)字鐘的按鍵未按下時按鍵的輸出(即CPLD的輸入)為低電平,當(dāng)按鍵按下時輸出(即CPLD的輸入)為高電平。 </p><p>  在本設(shè)計(jì)中只有三個按鍵,分別為MODE、SET、CHANGE。MODE按鍵用于模式選擇,按下一次MODE按鍵后電路進(jìn)入鬧鈴設(shè)置模式,在該模式下可以用SET鍵來選擇當(dāng)前是設(shè)置小時還是設(shè)置分鐘,而用CHANGE鍵可以改變當(dāng)前設(shè)置鬧鈴的小時或分

34、鐘(向上加一)。再按一次MODE鍵則進(jìn)入手動校時功能模式[8]。按鍵電路如圖3.2所示。</p><p><b>  圖3.2 按鍵電路</b></p><p>  在本設(shè)計(jì)中共有四個指示燈,一個為電源指示燈,其它三個是工作狀態(tài)指示燈,D1為鬧鈴報警指示電路,當(dāng)設(shè)置鬧鈴后鬧鈴指示電路就工作在點(diǎn)亮狀態(tài),指示當(dāng)前設(shè)有鬧鈴。D2和D3用來指示當(dāng)前設(shè)置狀態(tài)。當(dāng)在鬧鈴設(shè)置模式和

35、手動校時模式下,D2或D3會有一個在點(diǎn)亮狀態(tài),當(dāng)D2亮?xí)r表示當(dāng)前設(shè)置的是小時,當(dāng)D3亮?xí)r表示當(dāng)前設(shè)置的是分鐘。指示燈電路如圖3.3所示。</p><p>  圖3.3 指示燈電路</p><p>  引腳的連接為,D1接CPLD的PIN61,D2接CPLD的PIN63,D3接CPLD的PIN64。當(dāng)CPLD的引腳輸出為高電平時相應(yīng)的指示燈就點(diǎn)亮。</p><p> 

36、 3.3 蜂鳴器及有源晶振電路的設(shè)計(jì)</p><p>  在本設(shè)計(jì)中由于有音調(diào)的變換,所以必需采用交流蜂鳴器。由于CPLD管腳的驅(qū)動能力有限,因此通過連接一個三極管來增強(qiáng)驅(qū)動能力,從而提高蜂鳴器的響度。二極管D9起到續(xù)流保護(hù)的作用,蜂鳴器電路如圖3.4所示。</p><p><b>  圖3.4蜂鳴器電路</b></p><p>  系統(tǒng)時鐘采

37、用2.048MHZ的有源晶體振蕩器。為了使有源晶振能輸出較好的波形,必需保證供電的穩(wěn)定。所以在晶振電路的前端加了兩個小電容對電源進(jìn)行濾波,在時鐘輸出端加了一個小電阻,能有效地抑制高次諧波和實(shí)現(xiàn)阻抗匹配。有源晶振電路如圖3.5所示。</p><p>  圖3.5有源晶振電路</p><p>  3.4 CPLD編程下載電路的設(shè)計(jì)</p><p>  CPLD器件多采用

38、JTAG編程方式,JTAG編程方式是在線編程,傳統(tǒng)生產(chǎn)流程中先對芯片進(jìn)行預(yù)編程現(xiàn)再裝到板上因此而改變,簡化的流程為先固定器件到電路板上,再用JTAG編程,從而大大加快工程進(jìn)度。JTAG接口可對PSD芯片內(nèi)部的所有部件進(jìn)行編程[9]。</p><p>  在硬件結(jié)構(gòu)上,JTAG 接口包括兩部分:JTAG 端口和控制器。與JTAG 接口兼容的器件可以是微處理器(MPU)、微控制器(MCU)、PLD、CPL、FPGA、

39、ASIC 或其它符合IEEE.1149.1 規(guī)范的芯片。IEEE.1149.1 標(biāo)準(zhǔn)中規(guī)定對應(yīng)于數(shù)字集成電路芯片的每個引腳都設(shè)有一個移位寄存單元,稱為邊界掃描單元BSC。它將JTAG 電路與內(nèi)核邏輯電路聯(lián)系起來,同時隔離內(nèi)核邏輯電路和芯片引腳。由集成電路的所有邊界掃描單元構(gòu)成邊界掃描寄存器BSR。邊界掃描寄存器電路僅在進(jìn)行JTAG 測試時有效,在集成電路正常工作時無效,不影響集成電路的功能。JTAG編程方式對CPLD和FPGA器件都支持

40、,用于CPLD器件的下載文件是POF文件。JTAG下載電路如圖3.6所示。JTAG下載電路的10針接口引腳定義為:1引腳為TCK時鐘,2引腳接地,3引腳TDO為測試數(shù)據(jù)輸出(數(shù)據(jù)輸出,來自器件),4引腳接電源電壓,5引腳TMS為測試模式選擇(編程使能),NC為NO-CONNECT。9引腳TDI為測試數(shù)據(jù)輸入(數(shù)據(jù)輸入到器件),10引腳接地。</p><p>  圖3.6  JTAG下載電路</p&

41、gt;<p>  3.5 電源電路的設(shè)計(jì)</p><p>  本設(shè)計(jì)中的核心器件為MAX7000S系列的EPM7128SLC84,I/O口電壓VCCIO和核心電壓VCCINT均支持正5V,因此在本設(shè)計(jì)中統(tǒng)一給I/O端口和內(nèi)核提供+5V的電壓。</p><p><b>  圖3.7 電源電路</b></p><p>  電源電路是由

42、電源變壓器T、橋堆、濾波電容C11、C13、C15、C17及集成三端穩(wěn)壓電路7805以及保險絲組成,其電路圖如圖3.7所示。電源的輸出為+5V輸出。下面介紹電源各部分參數(shù)的整定方法。</p><p>  3.5.1 變壓器次級電壓估算</p><p>  由于穩(wěn)壓器要正常工作時輸入端的電壓必需要比輸出端高2.5V時才能使其穩(wěn)定工作??紤]到市網(wǎng)交流電壓的波動情況,在市網(wǎng)電壓為200V時也能正

43、常工作,則有220/200*Vac要大于8.0,所以Vac必需要大于8.8V,即交流變壓器的副邊輸出電壓應(yīng)該高于8.8V,在本設(shè)計(jì)中選取9V。 </p><p>  3.5.2 變壓器輸入功率的計(jì)算</p><p>  假設(shè)負(fù)載電流為500mA,若輸出電壓為5V,則有效功率為5V*0.5A=2.5W。正常情況下變壓器輸出功率約為9V*1.2*1.5A=5.4W,當(dāng)市網(wǎng)電壓升到250V時,變

44、壓器的輸出功率為5.4W*250/220=6.2W。小型電源變壓器的效率一般為75%左右。因此電源變壓器的輸入功率為6.2W/0.75=8.27W。</p><p>  3.5.3 濾波電容參數(shù)的選取</p><p>  假設(shè)負(fù)載電流為500mA,若輸出電壓為7.5V,則等效負(fù)載電阻為15Ω。電源頻率為50hz,則T=0.02s,根據(jù)CRL>=(3~5)T/2,則C>=[(3~

45、5)T/2]/RL=2000~3300uF。在本設(shè)計(jì)中取2200uF。電容耐壓應(yīng)大于1.42*Vac即Vc>=1.42*9*250/220=14.5V(其中250/220是考慮市網(wǎng)電源電壓過高時的情況)。在本設(shè)計(jì)中電容耐壓值取16V。</p><p>  3.6 EPM7128SLC84器件介紹[10]</p><p>  本次設(shè)計(jì)的核心器件采用ALTERA公司的CPLD可編程器件。

46、ALTERA公司的MAX7000S系列CPLD有著較高的性價比。MAX7000S系列是基于ALTERA第二代MAX架構(gòu)的高密度、高性能的PLD器件。MAX7000器件包含32~256個可聯(lián)結(jié)成16個宏單元組的邏輯陣列塊的宏單元。</p><p>  圖3.8 EPM7128SLC的PLCC封裝</p><p>  EPM7128SLC84是MAX7000S家族成員之一,它有如下的特點(diǎn):可用

47、邏輯門個數(shù)為2500門,128個宏單元,8個邏輯陣列塊,最大用戶可用I/O口100個,支持5V在系統(tǒng)編程和符合IEEE.STD.1179的JTAG下載接口,內(nèi)建邊界掃描測試電路,支持片上調(diào)試,EPM7128SLC84-15的封裝如圖3.8所示。</p><p>  4 CPLD 編程設(shè)計(jì)</p><p>  4.1系統(tǒng)信號的定義及頂層模塊</p><p>  整個系

48、統(tǒng)輸入、輸出信號的定義:</p><p>  sysclk:系統(tǒng)的時鐘信號,由外部有源晶振產(chǎn)生,頻率為2.048Mhz;</p><p>  mode:外接按鍵,模式選擇信號,mode=0時為時鐘模式,mode=1時為設(shè)定鬧鐘模式,mode=2時為手動設(shè)定時間模式;</p><p>  set:外接按鍵,用于在手動設(shè)置時間時選擇是調(diào)整小時還是分鐘;若長時間按住該鍵,

49、還可以使秒信號清零,用于精確調(diào)整時間;</p><p>  change:外接按鍵,手動調(diào)整時間,每按一次計(jì)數(shù)器加1;若長時間按住則連續(xù)快速加1,用于快速調(diào)時和定時;</p><p>  alarm:接蜂鳴器,輸出到蜂鳴器的信號,用于產(chǎn)生鬧鈴音和報時音;鬧鈴音為持續(xù)20s的急促的“嘀嘀嘀”音,整點(diǎn)報時音為“嘀嘀嘀---嘟”四短一長音;Dataout:輸出信號,輸出顯示時間的數(shù)碼管顯示的段碼

50、[12]。</p><p>  `include "clk_generate.v"  </p><p>  `include "time_mode0.v"</p><p>  `include "mode_select.v"</p><p>  `include "

51、;fast_settime.v"</p><p>  `include "alarm_set.v"</p><p>  `include "alarm.v"</p><p>  `include "decoder_7seg.v"</p><p>  `include &qu

52、ot;display.v"</p><p>  module clock;</p><p>  clk_generate clk_generate();  //調(diào)用時鐘節(jié)拍產(chǎn)生模塊</p><p>  time_mode0 time_mode0();  // 秒、分、時計(jì)時與時間調(diào)整模塊</p><p>  mo

53、de_select mode_select();  //調(diào)用模式選擇功能模塊</p><p>  fast_settime fast_settime();  //調(diào)用快速時間設(shè)置功能模塊</p><p>  alarm_set alarm_set();  //調(diào)用鬧鈴時間設(shè)置模塊</p><p>  alarm alarm();

54、0; //調(diào)用鬧鈴與整點(diǎn)報時模塊</p><p>  decoder_7seg decoder_7seg();  //調(diào)用7段譯碼模塊</p><p>  display display();  //調(diào)用顯示模塊</p><p><b>  endmodule</b></p><p>  4.2 時鐘

55、節(jié)拍產(chǎn)生模塊</p><p>  由于整個系統(tǒng)只有一個晶體振蕩器,但是設(shè)計(jì)需要不同的時鐘信號,因此需要設(shè)計(jì)一個分頻進(jìn)程,對系統(tǒng)的有源晶振產(chǎn)生的2.048Mhz時鐘進(jìn)行分頻,產(chǎn)生需要的時鐘節(jié)拍。在本設(shè)計(jì)中總共用到如下幾個時鐘節(jié)拍:1hz的時鐘CLK,4HZ的時鐘CLK_4hz,1Khz的時鐘信號CLK_1K,和50hz的時鐘displayclk。其中CLK節(jié)拍用于產(chǎn)生秒計(jì)時信號,在每個CLK的上升沿到來時秒計(jì)數(shù)器加

56、1。CLK_4hz節(jié)拍用于快速調(diào)整時間,當(dāng)長時間按下CHANG按鍵時,當(dāng)前設(shè)置的時鐘快速增加[11]。CLK_1K節(jié)拍用于鬧鈴音的產(chǎn)生,displayclk時鐘節(jié)拍是頻率為50hz的信號,由于本設(shè)計(jì)中顯示部分采用LED動態(tài)顯示的方式,因此必需要有一個掃描信號對6位的LED的每個位進(jìn)行輪流選通點(diǎn)亮。分頻進(jìn)程的原理是在CPLD內(nèi)部設(shè)置一個分頻計(jì)數(shù)器和一個觸發(fā)器,當(dāng)計(jì)數(shù)到分頻值時觸發(fā)器進(jìn)行翻轉(zhuǎn),因此只要設(shè)置不同的分頻計(jì)數(shù)器的計(jì)數(shù)值就可以得到

57、不同的時鐘節(jié)拍。在CPLD內(nèi)部設(shè)置分頻計(jì)數(shù)器的缺點(diǎn)是,CPLD的觸發(fā)器資源有限,設(shè)置計(jì)數(shù)器對資源的占用比較大,因此盡量可能少用一些時鐘節(jié)拍,或者盡量使需要使用的時鐘節(jié)拍相同,還有</p><p>  module clk_generate(reset,sysclk,clk,clk_4hz,clk_1k,displayclk);</p><p>  input sysclk,reset;&l

58、t;/p><p>  output clk,clk_4hz,clk_1k,displayclk;</p><p>  reg clk,clk_4hz,clk_1k,displayclk;</p><p>  reg [20:0]div_count1;  //分頻時鐘計(jì)數(shù)器,用于產(chǎn)生周期為1S的時鐘信號</p><p>  reg [19

59、:0]div_count2;  //分頻時鐘計(jì)數(shù)器,用于產(chǎn)生頻率為4hz的時鐘信號</p><p>  reg [11:0]div_count3;  //分頻時鐘計(jì)數(shù)器,用于產(chǎn)生頻率為1Khz的時鐘信號</p><p>  reg [14:0]divclk_cnt;  //分頻時鐘計(jì)數(shù)器,用于產(chǎn)生50HZ的數(shù)碼管掃描信號displayclk</p>

60、<p>  always @(posedge sysclk)</p><p><b>  begin</b></p><p>  if (reset)  div_count1=21'd0000000;</p><p>  if (div_count1==21'd1024000)  //10240

61、00/2048000=0.5S</p><p><b>  begin</b></p><p>  clk<=~clk;   //clk為周期為1S的時鐘信號</p><p>  div_count1=21'd0000000;</p><p><b>  end</b&g

62、t;</p><p><b>  else  </b></p><p><b>  begin</b></p><p>  div_count1=div_count1+1'b1;</p><p><b>  end</b></p><p&g

63、t;<b>  end</b></p><p>  always @(posedge sysclk)</p><p><b>  begin</b></p><p>  if (reset)  div_count2=20'd000000;</p><p>  if (div_cou

64、nt2==20'd512000)  //512000/2048000=0.25S</p><p><b>  begin</b></p><p>  clk_4hz<=~clk_4hz;  //clk_4hz為4hz的時鐘信號</p><p>  div_count2=20'd000000;</p

65、><p><b>  end</b></p><p><b>  else  </b></p><p><b>  begin</b></p><p>  div_count2=div_count2+1'b1;</p><p><b&

66、gt;  end</b></p><p><b>  end</b></p><p>  always @(posedge sysclk)</p><p><b>  begin</b></p><p>  …… //產(chǎn)生周期為50HZ和1KHZ的時鐘節(jié)拍</p><

67、p><b>  end</b></p><p><b>  endmodule</b></p><p>  4.3模式選擇功能模塊</p><p>  本設(shè)計(jì)是多功能數(shù)字鐘,實(shí)現(xiàn)的功能是以數(shù)字形式顯示時、分、秒的時間, 能進(jìn)行手動快校時、快校分或慢校時、慢校分。該多功能電子鐘共有3種模式。分別為:模式0為正常時鐘模式

68、,模式1為設(shè)置鬧鈴功能,模式2為手動校時功能。多功能電子鐘共有三個按鍵,一個MODE模式選擇鍵,用于選擇相應(yīng)的模式,一個SET時間選擇鍵,用于選擇當(dāng)前設(shè)定的是分鐘或者是小時,一個CHANGE鍵,用于給當(dāng)前值加1,當(dāng)長時間按住CHANGE時當(dāng)前值連續(xù)快速加1,用于快速設(shè)定時間[12]。模式選擇進(jìn)程如下所示。</p><p>  module mode_select( clk,mode,set,change,coun

69、t1,counta,count2,countb,led_min,led_hour,m);</p><p>  input mode,set,change,clk;</p><p>  output count1,counta,count2,countb,led_min,led_hour,m;</p><p>  regbool,count1,counta,count

70、2,countb;</p><p>  reg [1:0]m;</p><p>  reg led_min,led_hour;</p><p>  always @(posedge mode)</p><p><b>  begin</b></p><p>  if (m==2)  m&

71、lt;=0;</p><p>  else  m<=m+1;</p><p><b>  end</b></p><p>  always @ (posedge set)</p><p>  bool<=~bool;</p><p>  always @ (posedge c

72、lk)</p><p><b>  begin</b></p><p><b>  case(m)</b></p><p>  2: begin  </p><p>  if (bool) </p><p>  begin  //手動設(shè)定分鐘</p&

73、gt;<p>  count1<=change;</p><p>  {led_min,led_hour}<=2'b10;</p><p><b>  end  </b></p><p><b>  else </b></p><p>  begin

74、60; //手動設(shè)定小時 </p><p>  counta<=change; </p><p>  {led_min,led_hour}<=2'b01;</p><p><b>  end  </b></p><p>  {count2,countb}<=2'b00;<

75、/p><p><b>  end</b></p><p><b>  1:begin</b></p><p>  if (bool) </p><p>  begin  //設(shè)定鬧鈴分鐘 </p><p>  count2<=change;</p>

76、<p>  {led_min,led_hour}<=2'b10;</p><p><b>  end  </b></p><p><b>  else </b></p><p><b>  begin </b></p><p>  c

77、ountb<=change; </p><p>  {led_min,led_hour}<=2'b01;</p><p><b>  end  </b></p><p>  {count2,countb}<=2'b00;</p><p><b>  end</b

78、></p><p>  default: ount1,count2,counta,countb,led_min,led_hour}<=0;  //正常時鐘狀態(tài)</p><p><b>  endcase</b></p><p><b>  end</b></p><p><

79、;b>  endmodule</b></p><p>  4.4 快速時間設(shè)置功能模塊</p><p>  多功能數(shù)字鐘要求有快速時間設(shè)置功能和慢設(shè)置功能。所謂快速時間設(shè)置功能是指一直按住按鍵不放時,當(dāng)前值能夠快速的增加;而慢設(shè)置是指每按一次按鍵則當(dāng)前值向上增一??焖贂r間設(shè)置進(jìn)程如下所示??焖贂r間設(shè)置進(jìn)程,功能描述:長時間按下“change”鍵,則分別生成num1、num

80、2、num3、num4信號用于連續(xù)快速加1。</p><p>  當(dāng)長時間按下CHANGE按鍵后,利用系統(tǒng)的CLK_4HZ對計(jì)數(shù)器進(jìn)行快速加一處理。如果不是長時間按下CHANGE按鍵的話則每按一次CHANGE按建鍵就對相應(yīng)的寄存器的值加一處理。</p><p>  4.5 秒、分、時計(jì)時與時間調(diào)整模塊</p><p>  秒計(jì)時程序采用周期為1S的基準(zhǔn)時鐘信號CLK

81、,在每個CLK時鐘信號的上升沿對秒寄存器加1,當(dāng)長時間按下SET按鍵后對秒寄存器進(jìn)行清零,該功能用于準(zhǔn)確校時。CT1為分計(jì)時的同步時鐘,在每個CT1時鐘信號的上升沿對分寄存器加1。當(dāng)未長時間按下CHANGE按鍵時,CT1時鐘是周期為60秒的時鐘信號。當(dāng)長時間按下CHANGE后,CT1時鐘變?yōu)橹芷跒?HZ的時鐘信號,該信號用于快速時間校準(zhǔn)功能。CTA時鐘是周期為60分鐘的時鐘信號,在每個CTA時鐘信號的上升沿對小時寄存器加1,當(dāng)當(dāng)前設(shè)置值

82、為小時且長時間按下CHANGE按鍵后,CTA時鐘變?yōu)橹芷跒?HZ的時鐘信號,該信號用于快速時間校準(zhǔn)功能。</p><p>  module time_mode0(clk,set,m,count1,ct1,counta,m_clk,h_clk,cta,sec1,min1,hour1);</p><p>  input clk,set,m,count1,counta,ct1,cta,m_clk

83、,h_clk;</p><p>  inout [7:0]sec1,min1,hour1;</p><p>  reg minclk,hclk;</p><p>  reg [7:0]sec1,min1,hour1;</p><p>  wire m_clk,h_clk;</p><p>  always @(pose

84、dge clk)</p><p><b>  begin</b></p><p>  if (!(sec1 ^ 8'd59) | set & (!m))</p><p>  //按住SET鍵一段時間,秒信號自動清零</p><p>  sec1 [7:0] <= 8'h00;</p&g

85、t;<p>  if (!(set & (!m))) </p><p>  minclk <=1'b1;</p><p>  else  begin  </p><p>  if (sec1[3:0]==4'b1001)</p><p><b>  begin <

86、/b></p><p>  sec1[3:0]<=4'b0000;</p><p>  sec1[7:4]<=sec1[7:4] + 1'b1;</p><p><b>  end</b></p><p><b>  else </b></p><

87、;p><b>  begin</b></p><p>  sec1[3:0] <= sec1[3:0] + 1'b1;</p><p>  minclk<=1'b0;</p><p><b>  end</b></p><p><b>  end</

88、b></p><p><b>  end</b></p><p>  always @ (posedge ct1)  //分鐘計(jì)時進(jìn)程</p><p><b>  begin</b></p><p>  if (min1 == 8'd59)</p><p&

89、gt;<b>  begin </b></p><p>  min1 <= 0; </p><p>  hclk <= 1;</p><p><b>  end</b></p><p><b>  else </b></p><p><

90、b>  begin </b></p><p>  if (min1[3:0] ==9)</p><p><b>  begin  </b></p><p>  min1[3:0] <=0;</p><p>  min1[7:4]<=min1[7:4] + 1;</p>

91、<p><b>  end</b></p><p><b>  else </b></p><p><b>  begin</b></p><p>  min1[3:0] <=min1[3:0] +1;</p><p><b>  hclk <

92、=0;</b></p><p><b>  end</b></p><p><b>  end</b></p><p><b>  end</b></p><p>  always @ (posedge  cta)  //小時計(jì)時與調(diào)整進(jìn)程<

93、;/p><p><b>  begin</b></p><p>  if (hour1==8'h23)  hour1<=0;</p><p>  else  begin</p><p>  ………  //此段VHDL語言時、分、秒源碼見附錄二</p><p>

94、;<b>  end</b></p><p><b>  end</b></p><p><b>  endmodule</b></p><p>  4.6鬧鈴時間設(shè)置模塊</p><p>  module alarm_set(ct2,ctb,amin,ahour);</

95、p><p>  input ct2,ctb;</p><p>  output [7:0]amin,ahour;</p><p>  reg [7:0]amin,ahour;</p><p>  always @ (posedge ct2)</p><p><b>  begin</b></p&

96、gt;<p>  if (amin==8'd59) amin<=0;</p><p>  else  if (amin[3:0]==9)</p><p><b>  begin </b></p><p>  amin[3:0]<=0;</p><p>  amin[7:4]&l

97、t;=amin[7:4] + 1;</p><p><b>  end</b></p><p>  else amin[3:0]<=amin[3:0] + 1;</p><p><b>  end</b></p><p>  always @ (posedge ctb)</p>

98、<p><b>  begin</b></p><p>  if (ahour==8'd23) ahour<=0;</p><p>  else  if (ahour[3:0]==9)</p><p><b>  begin </b></p><p>  ahour

99、[3:0]<=0;</p><p>  ahour[7:4]<=ahour[7:4] + 1;</p><p><b>  end</b></p><p>  else ahour[3:0]<=ahour[3:0] + 1;  </p><p><b>  end</b>

100、</p><p><b>  endmodule</b></p><p>  4.7鬧鈴與整點(diǎn)報時模塊</p><p>  鬧鈴的功能是實(shí)現(xiàn)當(dāng)?shù)竭_(dá)預(yù)設(shè)的時間點(diǎn)時產(chǎn)生為時20s的“嘀嘀嘀嘀”急促短音。整點(diǎn)報時的功能是實(shí)現(xiàn)在每個整點(diǎn)的5秒鐘前產(chǎn)生整點(diǎn)報時音,報時音為“嘀嘀嘀---嘟”4短一長音。 </p><p>  mod

101、ule alarm(sysclk,clk_1k,min1,hour1,amin,ahour,alarm1,alarm2);</p><p>  input sysclk,clk_1k;</p><p>  input [7:0]min1,hour1,amin,ahour;</p><p>  output alarm1,alarm2;</p><

102、p>  reg alarm1,alarm2;</p><p>  reg [7:0]sec1;</p><p>  always @ (posedge sysclk)</p><p><b>  begin</b></p><p>  if  ((min1==amin)&&(hour1==

103、ahour))</p><p>  if (sec1<8'd20)  </p><p>  alarm1<=1;</p><p>  else  alarm1<=0;</p><p>  else  alarm1<=0;</p><p><b> 

104、 end</b></p><p>  always @ (posedge sysclk)</p><p><b>  begin  </b></p><p>  if ((min1==8'd59)&&(sec1>8'd54)||(!(min1|sec1)))</p>&l

105、t;p>  if (sec1>8'd58) alarm2<=clk_1k;   // 產(chǎn)生長音</p><p>  else  alarm2<=~clk_1k;  //產(chǎn)生短音</p><p>  else  alarm2<=0;</p><p><b>  end&l

106、t;/b></p><p><b>  endmodule</b></p><p>  4.8 七段顯示譯碼模塊</p><p>  由于時鐘計(jì)數(shù)模式采用的是BCD碼計(jì)數(shù)方式,而顯示采用的8段發(fā)光二極管,每個段代表一位二進(jìn)制數(shù),在本系統(tǒng)中采用的是共陽極接法,因此7段碼為共陽編碼。因此在數(shù)碼管上正常顯示時間的話,必需要對在三個模式下的時、分

107、、秒進(jìn)行譯碼才能得到正常的顯示。</p><p>  module decoder_7seg(sysclk,clk,clk_4hz,clk_1k,m,alarm1,alarm2,ahour,amin,min1,hour1,sec1,hour_msb,hour_lsb,min_msb,min_lsb,sec_msb,sec_lsb);</p><p>  input sysclk,clk,c

108、lk_4hz,clk_1k, alarm1,alarm2;</p><p>  input [7:0]ahour,amin,min1,hour1,sec1;</p><p>  input [1:0]m;</p><p>  output [7:0]hour_msb,hour_lsb,min_msb,min_lsb,sec_msb,sec_lsb;</p>

109、;<p>  reg [7:0]hour,min,sec,hour_msb,hour_lsb,min_msb,min_lsb,sec_msb,sec_lsb;</p><p>  wire led_alarm;</p><p>  always @ (posedge sysclk)</p><p><b>  begin</b>&

110、lt;/p><p><b>  case(m)  </b></p><p>  3'b00:  //在模式0下,將正常計(jì)數(shù)值賦值給寄存器,等待譯碼</p><p><b>  begin </b></p><p>  hour<=hour1;</p>&l

111、t;p>  min<=min1;</p><p>  sec<=sec1;</p><p><b>  end</b></p><p>  3'b01:  //在模式1下,將鬧鈴時間設(shè)置值賦值給寄存器,等待譯碼</p><p><b>  begin </b>&l

112、t;/p><p>  hour<=ahour;</p><p>  min<=amin;</p><p>  sec<=8'hzz;</p><p><b>  end</b></p><p>  3'b10:  //在模式2下,將手動計(jì)數(shù)值賦值給寄存器,等

113、待譯碼</p><p><b>  begin </b></p><p>  hour<=hour1;</p><p>  min<=min1;</p><p>  sec<=8'hzz;</p><p><b>  end</b></p>

114、;<p><b>  endcase</b></p><p>  assign led_alarm=(ahour|amin)?1:0;  //指示是否進(jìn)行了鬧鈴定時</p><p>  assign alarm=((alarm1)?clk_1k&clk_4hz:0)|alarm2;//產(chǎn)生鬧鈴音或整點(diǎn)報時音</p><

115、;p><b>  end</b></p><p>  always @( sysclk )</p><p><b>  begin</b></p><p>  case (hour[7:4])</p><p>  4'b0000 : hour_msb=8'hc0; 

116、 //數(shù)字0的共陽編碼賦值給小時的十位</p><p>  4'b0001 : hour_msb=8'hf9;  //數(shù)字1的共陽編碼賦值給小時的十位</p><p>  4'b0010 : hour_msb=8'ha4;  //數(shù)字2的共陽編碼賦值給小時的十位</p><p>  4'b0011

117、 : hour_msb=8'hb0;  //數(shù)字3的共陽編碼賦值給小時的十位</p><p>  4'b0100 : hour_msb=8'h99;  //數(shù)字4的共陽編碼賦值給小時的十位</p><p>  4'b0101 : hour_msb=8'h92;  //數(shù)字5的共陽編碼賦值給小時的十位</p>

118、<p>  4'b0110 : hour_msb=8'h82;  //數(shù)字6的共陽編碼賦值給小時的十位</p><p>  4'b0111 : hour_msb=8'hf8;  //數(shù)字7的共陽編碼賦值給小時的十位</p><p>  4'b1000 : hour_msb=8'h80;  //數(shù)字8的

119、共陽編碼賦值給小時的十位</p><p>  4'b1001 : hour_msb=8'h90;  //數(shù)字9的共陽編碼賦值給小時的十位</p><p><b>  endcase</b></p><p>  case (hour[3:0])</p><p>  4'b0000 : ho

120、ur_lsb=8'hc0;  //數(shù)字0的共陽編碼賦值給小時的個位</p><p>  4'b0001 : hour_lsb=8'hf9;  //數(shù)字1的共陽編碼賦值給小時的個位</p><p>  4'b0010 : hour_lsb=8'ha4;  //數(shù)字2的共陽編碼賦值給小時的個位 </p><

121、;p>  4'b0011 : hour_lsb=8'hb0;  //數(shù)字3的共陽編碼賦值給小時的個位</p><p>  4'b0100 : hour_lsb=8'h99;  //數(shù)字4的共陽編碼賦值給小時的個位</p><p>  4'b0101 : hour_lsb=8'h92;  //數(shù)字5的共陽編碼

122、賦值給小時的個位</p><p>  4'b0110 : hour_lsb=8'h82;  //數(shù)字6的共陽編碼賦值給小時的個位</p><p>  4'b0111 : hour_lsb=8'hf8;  //數(shù)字7的共陽編碼賦值給小時的個位</p><p>  4'b1000 : hour_lsb=8

123、9;h80;  //數(shù)字8的共陽編碼賦值給小時的個位</p><p>  4'b1001 : hour_lsb=8'h90;  //數(shù)字9的共陽編碼賦值給小時的個位</p><p><b>  endcase</b></p><p><b>  endmodule</b></p&g

124、t;<p>  4.9 LED顯示模塊</p><p>  LED顯示電路與CPLD的接口電路共有兩種接法,一種接法是靜態(tài)顯示法,即外接6個獨(dú)立的一位LED數(shù)碼管,在這種接法下每一位LED的段碼線共有8根,因此采用這種接法時總共需要6*8+6=54個I/O口,而采用這種接法時,分配I/O工作煩瑣,且電路圖接線復(fù)雜。而第二種接法稱為動態(tài)顯示法,采用共陽或共陰極接法,而所謂的共陽極接法是指將每位LED的

125、段碼線連在一起共同接電源的正極,因此采用這種接法時,一個6位的LED總共只需要8+6=14個I/O口,即8位的段碼線和6位的位選線,采用這種方式的接法時,缺點(diǎn)是每次顯示時6位LED同時顯示相同的數(shù)字,因此在這種接法下,必需要采用掃描的方式來顯示,即每一個時刻只能有一個LED處在點(diǎn)亮的狀態(tài),其它LED熄滅,此時送出相應(yīng)位的段碼。而在下一時刻則下一位LED處于點(diǎn)亮狀態(tài),且在此時送出相應(yīng)的段碼,如此循環(huán)往復(fù)就能顯示完6個不同的數(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論