版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 緒論</b></p><p> 1.1 FPGA背景</p><p> 目前以高速集成硬件描述語(yǔ)言(VHDL)所完成的電路設(shè)計(jì),可以經(jīng)過(guò)簡(jiǎn) 單的綜合與布局,快速的燒錄至 FPGA 上進(jìn)行測(cè)試,是現(xiàn)代 IC 設(shè)計(jì)驗(yàn)證的技術(shù)主流。這些可編輯元件可以被用來(lái)實(shí)現(xiàn)一些基本的邏輯門(mén)電路(比如AND、OR、XOR、NOT)或者更復(fù)雜一些的組合功能比
2、如解碼器或數(shù)學(xué)方程式。在大多數(shù)的FPGA里面,這些可編輯的元件里也包含記憶元件例如觸發(fā)器(Flip-flop)或者其他更加完整的記憶塊。系統(tǒng)設(shè)計(jì)師可以根據(jù)需要通過(guò)可編輯的連接把FPGA內(nèi)部的邏輯塊連接起來(lái),就好像一個(gè)電路試驗(yàn)板被放在了一個(gè)芯片里。一個(gè)出廠(chǎng)后的成品FPGA的邏輯塊和連接可以按照設(shè)計(jì)者而改變,所以FPGA可以完成所需要的邏輯功能。 </p><p> FPGA一般來(lái)說(shuō)比ASIC(專(zhuān)用集成芯片)的速度
3、要慢,無(wú)法完成復(fù)雜的設(shè)計(jì),而且消耗更多的電能。但是他們也有很多的優(yōu)點(diǎn)比如可以快速成品,可以被修改來(lái)改正程序中的錯(cuò)誤和更便宜的造價(jià)。廠(chǎng)商也可能會(huì)提供便宜的但是編輯能力差的FPGA。因?yàn)檫@些芯片有比較差的可編輯能力,所以這些設(shè)計(jì)的開(kāi)發(fā)是在普通的FPGA上完成的,然后將設(shè)計(jì)轉(zhuǎn)移到一個(gè)類(lèi)似于ASIC的芯片上。另外一種方法是用CPLD(復(fù)雜可編程邏輯器件備)。</p><p> 1.2 FPGA發(fā)展前景 </p
4、><p> FPGA技術(shù)正處于高速發(fā)展時(shí)期,新型芯片的規(guī)模越來(lái)越大,成本也越來(lái)越低,低端的FPGA已逐步取代了傳統(tǒng)的數(shù)字元件,高端的FPGA不斷在爭(zhēng)奪ASIC的市場(chǎng)份額。先進(jìn)的ASIC生產(chǎn)工藝已經(jīng)被用于FPGA的生產(chǎn),越來(lái)越豐富的處理器內(nèi)核被嵌入到高端的FPGA芯片中,基于FPGA的開(kāi)發(fā)成為一項(xiàng)系統(tǒng)級(jí)設(shè)計(jì)工程。隨著半導(dǎo)體制造工藝的不同提高,F(xiàn)PGA 的集成度將不斷提高,制造成本將不斷降低,其作為替代ASIC 來(lái)實(shí)現(xiàn)
5、電子系統(tǒng)的前景將日趨光明。</p><p> (1) 大容量、低電壓、低功耗FPGA</p><p> 大容量FPGA 是市場(chǎng)發(fā)展的焦點(diǎn)。FPGA 產(chǎn)業(yè)中的兩大霸主:Altera和Xilinx在超大容量FPGA上展開(kāi)了激烈的競(jìng)爭(zhēng)。2007年Altera推出了65nm工藝的StratixIII系列芯片,其容量為67200個(gè)L E (Logic Element,邏輯單元),Xilinx推出
6、的65nm工藝的VitexVI系列芯片,其容量為33792個(gè)Slices (一個(gè)Slices約等于2個(gè)L E)。采用深亞微米(DSM)的半導(dǎo)體工藝后,器件在性能提高的同時(shí),價(jià)格也在逐步降低。由于便攜式應(yīng)用產(chǎn)品的發(fā)展,對(duì)FPGA 的低電壓、低功耗的要日益迫切。因此,無(wú)論那個(gè)廠(chǎng)家、哪種類(lèi)型的產(chǎn)品,都在瞄準(zhǔn)這個(gè)方向而努力。</p><p> (2) 系統(tǒng)級(jí)高密度FPGA</p><p> 隨
7、著生產(chǎn)規(guī)模的提高,產(chǎn)品應(yīng)用成本的下降,F(xiàn)PGA 的應(yīng)用已經(jīng)不是過(guò)去的僅僅適用于系統(tǒng)接口部件的現(xiàn)場(chǎng)集成,而是將它靈活地應(yīng)用于系統(tǒng)級(jí)(包括其核心功能芯片)設(shè)計(jì)之中。在這樣的背景下,國(guó)際主要FPGA 廠(chǎng)家在系統(tǒng)級(jí)高密度FPGA 的技術(shù)發(fā)展上,主要強(qiáng)調(diào)了兩個(gè)方面:FPGA 的IP( Intellec2tual Property ,知識(shí)產(chǎn)權(quán))硬核和IP軟核。當(dāng)前具有IP內(nèi)核的系統(tǒng)級(jí)FPGA的開(kāi)發(fā)主要體現(xiàn)在兩個(gè)方面:一方面是FPGA 廠(chǎng)商將IP硬核
8、(指完成版圖設(shè)計(jì)的功能單元模塊)嵌入到FPGA 器件中,另一方面是大力擴(kuò)充優(yōu)化的IP軟核(指利用HDL語(yǔ)言設(shè)計(jì)并經(jīng)過(guò)綜合驗(yàn)證的功能單元模塊),用戶(hù)可以直接利用這些預(yù)定義的、經(jīng)過(guò)測(cè)試和驗(yàn)證的IP 核資源,有效地完成復(fù)雜的片上系統(tǒng)設(shè)計(jì)。</p><p> (3) FPGA和ASIC出現(xiàn)相互融合</p><p> 雖然標(biāo)準(zhǔn)邏輯ASIC 芯片尺寸小、功能強(qiáng)、功耗低,但其設(shè)計(jì)復(fù)雜,并且有批量要求
9、。FPGA價(jià)格較低廉,能在現(xiàn)場(chǎng)進(jìn)行編程,但它們體積大、能力有限,而且功耗比ASIC大。正因如此,F(xiàn)PGA和ASIC正在互相融合,取長(zhǎng)補(bǔ)短。隨著一些ASIC制造商提供具有可編程邏輯的標(biāo)準(zhǔn)單元,F(xiàn)PGA 制造商重新對(duì)標(biāo)準(zhǔn)邏輯單元發(fā)生興趣。</p><p> (4) 動(dòng)態(tài)可重構(gòu)FPGA</p><p> 動(dòng)態(tài)可重構(gòu)FPGA是指在一定條件下芯片不僅具有在系統(tǒng)重新配置電路功能的特性,而且還具有在
10、系統(tǒng)動(dòng)態(tài)重構(gòu)電路邏輯的能力。對(duì)于數(shù)字時(shí)序邏輯系統(tǒng),動(dòng)態(tài)可重構(gòu)FPGA的意義在于其時(shí)序邏輯的發(fā)生不是通過(guò)調(diào)用芯片內(nèi)不同區(qū)域、不同邏輯資源來(lái)組合而成,而是通過(guò)對(duì)FPGA 進(jìn)行局部的或全局的芯片邏輯的動(dòng)態(tài)重構(gòu)而實(shí)現(xiàn)的。動(dòng)態(tài)可重構(gòu)FPGA在器件編程結(jié)構(gòu)上具有專(zhuān)門(mén)的特征,其內(nèi)部邏輯塊和內(nèi)部連線(xiàn)的改變,可以通過(guò)讀取不同的SRAM中的數(shù)據(jù)來(lái)直接實(shí)現(xiàn)這樣的邏輯重構(gòu),時(shí)間往往在納秒級(jí),有助于實(shí)現(xiàn)FPGA系統(tǒng)邏輯功能的動(dòng)態(tài)構(gòu)。</p><
11、;p> 1.3 課程設(shè)計(jì)任務(wù)</p><p> 本課程設(shè)計(jì)中使用Altera公司的EP2C35系列的FPGA芯片,利用SOPC-NIOSII-EP2C35開(kāi)發(fā)板直流電機(jī)與步進(jìn)電機(jī)模塊等資源,實(shí)現(xiàn)一個(gè)直流電機(jī)測(cè)控儀。</p><p> ?。?)基本技能掌握:</p><p> 1 掌握時(shí)鐘作用下頻率的控制</p><p> 2 掌
12、握十進(jìn)制計(jì)數(shù)器的設(shè)計(jì)</p><p> 3 掌握16位的鎖存器的設(shè)計(jì)</p><p> 4 掌握顯示譯碼功能的設(shè)計(jì)</p><p><b> ?。?)基本功能要求</b></p><p> 1 利用旋轉(zhuǎn)電位器實(shí)現(xiàn)轉(zhuǎn)速的控制</p><p> 2 利用PWM信號(hào)實(shí)現(xiàn)轉(zhuǎn)速的控制</p&g
13、t;<p> 3 利用8位動(dòng)態(tài)七段碼管顯示實(shí)現(xiàn)轉(zhuǎn)速的顯示</p><p> ?。?)擴(kuò)展功能選擇性要求</p><p> 1 利用4×4鍵盤(pán)陣列實(shí)現(xiàn)鍵盤(pán)轉(zhuǎn)速的控制</p><p> 2 利用16*16點(diǎn)陣顯示實(shí)現(xiàn)轉(zhuǎn)速級(jí)別的顯示</p><p><b> 2 設(shè)計(jì)原理</b></p&
14、gt;<p> 2.1 直流電機(jī)測(cè)控總原理</p><p> 直流電機(jī)測(cè)控儀總體設(shè)計(jì)硬件由圖2.1所示,F(xiàn)PGA為Altera公司的EP2C35系列,輸入設(shè)備有時(shí)鐘、4*4鍵盤(pán)、霍爾器件和警報(bào)控制開(kāi)關(guān)。時(shí)鐘采用1MHZ,4*4鍵盤(pán)給FPGA輸入一個(gè)4位數(shù)組信號(hào),霍爾器件輸入計(jì)數(shù)脈沖。輸出設(shè)備有直流電機(jī)、8位7段字符LED數(shù)碼管、16*16點(diǎn)陣LED,直流電機(jī)可采用直接由旋鈕控制轉(zhuǎn)速或者PWM控制
15、轉(zhuǎn)速,8位7段字符LED數(shù)碼管顯示每分鐘轉(zhuǎn)速,16*16點(diǎn)陣LED顯示速度級(jí)別。</p><p> 圖2.1:總體設(shè)計(jì)硬件框架圖</p><p> 2.2 直流電機(jī)與霍爾器件驅(qū)動(dòng)</p><p> 將直流電源通過(guò)電刷接通電樞繞組,使電樞導(dǎo)體有電流流過(guò), 由于電磁作用,這樣電樞導(dǎo)體將會(huì)產(chǎn)生磁場(chǎng)。同時(shí)產(chǎn)生的磁場(chǎng)與主磁極的的磁場(chǎng)產(chǎn)生電磁力,這個(gè)電磁力作用于轉(zhuǎn)子,使轉(zhuǎn)
16、子以一定的速度開(kāi)始旋轉(zhuǎn),這樣電機(jī)就開(kāi)始工作。</p><p> 圖2.2:直流電機(jī)結(jié)構(gòu)圖</p><p> 為了能夠測(cè)定出電機(jī)在單位時(shí)間內(nèi)轉(zhuǎn)子旋轉(zhuǎn)了多少個(gè)周期,我們?cè)陔姍C(jī)的外部電路中加入了一個(gè)開(kāi)關(guān)型的霍爾器件,同時(shí)在電子轉(zhuǎn)子上的轉(zhuǎn)盤(pán)上加入了一個(gè)能夠使霍爾原件產(chǎn)生輸出的帶有磁場(chǎng)的磁鋼片。當(dāng)電機(jī)旋轉(zhuǎn)時(shí),帶動(dòng)轉(zhuǎn)盤(pán)是的磁鋼片一起旋轉(zhuǎn),當(dāng)磁鋼片旋轉(zhuǎn)到霍爾器件的上方時(shí),可以導(dǎo)致霍爾器件的輸出端高電
17、平變?yōu)榈碗娖?。?dāng)磁鋼片轉(zhuǎn)過(guò)霍爾器件上方后,霍爾器件的輸出端又恢復(fù)高電平輸出。這樣電機(jī)每旋轉(zhuǎn)一周,則會(huì)使霍爾器件的輸出端產(chǎn)生一個(gè)低脈沖,我們就可以通過(guò)檢測(cè)單位時(shí)間內(nèi)霍爾器件輸出端低脈沖的個(gè)數(shù)來(lái)推算出直流電機(jī)在單位時(shí)間內(nèi)的轉(zhuǎn)速。直流電機(jī)和開(kāi)關(guān)型霍爾器件的電路原理圖如下圖2.3所示:</p><p> 圖2.3:直流電機(jī)、霍爾器件電路圖</p><p> 直流電機(jī)驅(qū)動(dòng)有兩種方式,其一是可以由
18、模擬電平來(lái)驅(qū)動(dòng),把電路圖上4與3短接,可以旋轉(zhuǎn)實(shí)驗(yàn)箱左邊的旋鈕,調(diào)節(jié)旋鈕的可以控制速度;其二是通過(guò)PWM控制,把電路圖的6與5短接,PWM信號(hào)高電位選通三極管,讓直流電機(jī)轉(zhuǎn)動(dòng),不過(guò)為了讓直流電機(jī)獲得較大的轉(zhuǎn)速,同樣要把電機(jī)左邊的旋鈕調(diào)到比較大的位置。</p><p><b> 2.3 鍵盤(pán)驅(qū)動(dòng)</b></p><p> 對(duì)鍵盤(pán)的電位掃描,就可以確定當(dāng)前的鍵有沒(méi)有被
19、按下。單個(gè)按鍵電路如圖2.4所示,在按鍵沒(méi)有被按下時(shí),在判斷電位點(diǎn)可以獲取高電位,在鍵被按下時(shí),在判斷電位為低電位,這樣可以通過(guò)判斷點(diǎn)電位的高低即可確定按鍵有沒(méi)有被按下。</p><p> 圖2.4:?jiǎn)蝹€(gè)按鍵電路圖</p><p> 4*4的鍵盤(pán)與FPGA連接圖如下圖3.4所示,掃描鍵盤(pán)由FPGA的8個(gè)控制端口確定,控制行端口設(shè)置為buffer模式,控制列端口設(shè)置為in模式,掃描鍵盤(pán)的
20、方法為先給第一行鍵盤(pán)為低電平,其余行列為高電平,讀取縱列的電位值,如果沒(méi)鍵被按下,在電位判斷端口獲取的為高電位,如果有鍵按下,電位判斷點(diǎn)的電平不全為零,由電位值的第幾位為零就可以確定當(dāng)前行那個(gè)鍵被按下,依次對(duì)四行鍵盤(pán)掃描,掃描結(jié)束輸出4位數(shù)組的信號(hào),以告訴那個(gè)鍵被按下。</p><p> 圖2.5: 4*4鍵盤(pán)電路圖</p><p> 2.4 8位7段數(shù)碼管的驅(qū)動(dòng)</p>
21、<p> 七段數(shù)碼管是電子開(kāi)發(fā)過(guò)程中常用的輸出顯示設(shè)備。在實(shí)驗(yàn)系統(tǒng)中使用的是兩個(gè)四位一體、共陰極型七段數(shù)碼管。其單個(gè)靜態(tài)數(shù)碼管如下圖2.6所示。高點(diǎn)平點(diǎn)亮數(shù)碼管相應(yīng)的數(shù)碼段。</p><p> 圖2.6 :靜態(tài)七段數(shù)碼管</p><p> 圖2.7:8位7段數(shù)碼管的驅(qū)動(dòng)</p><p> 如圖2.7 的8位7段數(shù)碼管的連接,由于七段數(shù)碼管公共端
22、連接到GND(共陰極型),當(dāng)數(shù)碼管的中的那一個(gè)段被輸入高電平,則相應(yīng)的這一段被點(diǎn)亮。反之則不亮。四位一體的七段數(shù)碼管在單個(gè)靜態(tài)數(shù)碼管的基礎(chǔ)上加入了用于選擇哪一位數(shù)碼管的位選信號(hào)端口。八個(gè)數(shù)碼管的a、b、c、d、e、f、g、h、dp都連在了一起,8個(gè)數(shù)碼管分別由各自的位選信號(hào)來(lái)控制,被選通的數(shù)碼管顯示數(shù)據(jù),其余關(guān)閉。</p><p> 2.5 16*16點(diǎn)LED陣列驅(qū)動(dòng)</p><p>
23、 單個(gè)的LED的電路如下圖2.8所示,對(duì)于單個(gè)LED的電路圖當(dāng)Rn輸入一個(gè)高電平,同時(shí)Cn輸入一個(gè)低電平時(shí),電路形成一個(gè)回路,LED發(fā)光。也就是LED點(diǎn)陣對(duì)應(yīng)的這個(gè)點(diǎn)被點(diǎn)亮。</p><p> 圖2.8:?jiǎn)蝹€(gè)LED電路圖</p><p> 本設(shè)計(jì)要完成速度級(jí)別(0到15)在點(diǎn)陣LED上的顯示, 16*16點(diǎn)陣LED掃描的工作原理與8位掃描數(shù)碼管類(lèi)似,只是顯示的方式與結(jié)果不一樣而已。16
24、*16點(diǎn)陣由此256個(gè)LED通過(guò)排列組合而形成16行*16列的一個(gè)矩陣式的LED陣列。</p><p> 圖2.9:16*16點(diǎn)陣硬件圖</p><p> 16*16點(diǎn)陣LED驅(qū)動(dòng)時(shí),依次選通LED點(diǎn)陣行端口,每次只能選通一個(gè)端口(Cn),字符譯碼的第N列結(jié)果在列端口(Rn)輸入,通過(guò)高速依次點(diǎn)亮led點(diǎn)陣就可看到led點(diǎn)陣上顯示的數(shù)字。</p><p> 2
25、.6 PWM控制的原理</p><p> PWM控制就是對(duì)脈沖的寬度進(jìn)行調(diào)制的技術(shù)。即通過(guò)對(duì)一系列脈沖的寬度進(jìn)行調(diào)制來(lái)等效地獲得所需要的波形。</p><p> 如下圖2.10所示,設(shè)定值計(jì)數(shù)器設(shè)置PWM信號(hào)的占空比。當(dāng)U\D=1,輸入CLK2,使設(shè)定值計(jì)數(shù)值的輸出值增加,PWM的占空比增加,電機(jī)轉(zhuǎn)速加快;當(dāng)U\D=0,輸入CLK2使設(shè)定值計(jì)算器的輸出值減小,PWM的占空比減小,電機(jī)轉(zhuǎn)
26、速變慢。在CLK0的作用下,鋸齒波計(jì)數(shù)器輸出周期性線(xiàn)性增加的鋸齒波。當(dāng)計(jì)數(shù)值小于設(shè)定值時(shí),數(shù)字比較器輸出低電平;當(dāng)計(jì)數(shù)值大于設(shè)定值時(shí),數(shù)字比較器輸出高電平,由此產(chǎn)生周期性的PWM波形。旋轉(zhuǎn)反向控制電路控制直流電動(dòng)機(jī)轉(zhuǎn)向和啟/停,該電路由兩個(gè)2選1多路選擇器組成,Z\F鍵控制選擇PWM波形從正端Z進(jìn)入H橋,還是從負(fù)端進(jìn)入H橋,以控制電機(jī)的旋轉(zhuǎn)方向。START鍵通過(guò)“與”門(mén)控制PWM的輸出,實(shí)現(xiàn)對(duì)電機(jī)的工作/停止控制。H橋電路由大功率晶體管
27、組成,PWM波形通過(guò)方向控制電路送到H橋,經(jīng)功率放大以后驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng)。</p><p> 圖2.10 PWM控制電路原理圖</p><p><b> 3 程序設(shè)計(jì)</b></p><p> 3.1 總體程序設(shè)計(jì)思路</p><p> 程序總體設(shè)計(jì)分為時(shí)鐘控制信號(hào)模塊、十進(jìn)制計(jì)數(shù)模塊、顯示模塊、鍵盤(pán)模塊、pw
28、m控制模塊、十六位鎖存模塊、彩色led及蜂鳴器控制模塊。設(shè)計(jì)思路為十進(jìn)制計(jì)數(shù)器對(duì)霍爾器件的脈沖數(shù)計(jì)數(shù),時(shí)鐘控制在到了六秒時(shí)將計(jì)數(shù)值鎖存到16位鎖存器,顯示模塊的7段數(shù)碼管顯示鎖存器所鎖存的值,同時(shí)鍵盤(pán)模塊送出鍵盤(pán)所按得鍵值,由點(diǎn)陣LED顯示數(shù)值。</p><p> 3.2 時(shí)鐘控制信號(hào)程序設(shè)計(jì)</p><p> 時(shí)鐘控制信號(hào)中要為下級(jí)鎖存模塊提供鎖存控制型號(hào),同時(shí)為計(jì)數(shù)模塊提使能和清
29、零信號(hào),為蜂鳴器提供1khz的時(shí)鐘。設(shè)計(jì)當(dāng)中由Cnttemp對(duì)1MHZ的上升緣計(jì)數(shù)來(lái)產(chǎn)生1HZ的信號(hào)(Cnttemp<5000送出高電平,Cnttemp>5000送出低電平),Count對(duì)秒信號(hào)計(jì)數(shù),鎖存控制信號(hào)在第六秒結(jié)束時(shí)送出,清零信號(hào)在第7秒送出,所以要先產(chǎn)生秒脈沖。</p><p><b> 1M的時(shí)鐘</b></p><p> 是
30、 否</p><p> 小于 等于 大于</p><p><b> 輸出</b></p><p> 圖3.1:時(shí)鐘控制信號(hào)流程圖</p><p> 注:Enal為輸出控制計(jì)數(shù)器的使能信號(hào)。</p><p> Clr為輸
31、出控制計(jì)數(shù)器的清零信號(hào)。</p><p> Load為輸出控制鎖存器的鎖存信號(hào)。</p><p> 圖3.2: 時(shí)鐘控制信號(hào)模塊</p><p> 3.3 十進(jìn)制計(jì)數(shù)器程序設(shè)計(jì)</p><p> 設(shè)計(jì)當(dāng)中要顯示當(dāng)前直流電機(jī)的轉(zhuǎn)速,因而要4位十進(jìn)制的計(jì)數(shù)器,對(duì)轉(zhuǎn)速脈沖計(jì)數(shù)。設(shè)計(jì)當(dāng)中只需要設(shè)計(jì)一位十進(jìn)制的計(jì)數(shù)器,設(shè)計(jì)當(dāng)中特別注意對(duì)進(jìn)位脈沖
32、的處理。</p><p><b> 設(shè)計(jì)流程如下:</b></p><p><b> 計(jì)數(shù)脈沖</b></p><p><b> 是</b></p><p> 是 否</p>
33、;<p> 圖3.3:十進(jìn)制計(jì)數(shù)器程序設(shè)計(jì)流程圖</p><p> 注:CLR為外部輸入的清零信號(hào)。</p><p> ENA為外部輸入的計(jì)數(shù)使能信號(hào)。</p><p> 十進(jìn)制計(jì)數(shù)器對(duì)計(jì)數(shù)脈沖計(jì)數(shù),當(dāng)計(jì)數(shù)值到了9時(shí),計(jì)數(shù)值重新到零,同時(shí)在歸零的同時(shí)輸出進(jìn)位脈沖。</p><p> 圖3.4十進(jìn)制計(jì)數(shù)模塊</p&
34、gt;<p> 3.4 鎖存模塊程序設(shè)計(jì)</p><p> 16位鎖存模塊設(shè)計(jì)較為簡(jiǎn)單,只有在控制信號(hào)為高電平時(shí)鎖存當(dāng)前輸入的信號(hào)值,在低電平時(shí)保持鎖存被鎖存的輸入信號(hào)。</p><p> 是 否</p><p> 圖3.5: 16位鎖存器設(shè)計(jì)流程</p><p> 注:IN為1
35、6位輸入信號(hào),OUT為16位輸出信號(hào),LOAD為輸入鎖存信號(hào)。</p><p> 信號(hào)DIN對(duì)IN信號(hào)進(jìn)行保存,只有在LOAD=’1’時(shí)才把IN信號(hào)保存到DIN,DIN再傳遞給OUT。</p><p> 圖3.6: 16位鎖存模塊</p><p> 3.5 PWM控制信號(hào)程序設(shè)計(jì)</p><p> PWM控制信號(hào)為驅(qū)動(dòng)直流電機(jī)轉(zhuǎn)速的使
36、能信號(hào),PWM控制由四個(gè)輸入信號(hào)控制pwm的占空比,本設(shè)計(jì)當(dāng)中最高為15/16,由控制信號(hào)”1111”獲得,最低為0,由控制信號(hào)”0000”獲得。</p><p><b> 流程如</b></p><p><b> 時(shí)鐘1MHZ</b></p><p><b> 是</b></p>
37、<p><b> 否</b></p><p><b> 輸出pwm控制信號(hào)</b></p><p> 圖3.7:PWM控制流程圖</p><p> 注:DATAIN為輸入數(shù)據(jù)大小</p><p> COUNT對(duì)時(shí)鐘從0到16000循環(huán)計(jì)數(shù),當(dāng)COUNT=0時(shí)把輸出電平置為高電平
38、,COUNT=輸入值*1000時(shí)把輸出電平置為低電平,這樣就可以通過(guò)外部輸入控制占空比,從而控制直流電機(jī)的轉(zhuǎn)速。</p><p> 圖3.8:PWM控制模塊</p><p> 3.6 鍵盤(pán)掃描及顯示模塊程序設(shè)計(jì)</p><p> (1)鍵盤(pán)掃描程序設(shè)計(jì)</p><p> PWM控制直流電機(jī)是通過(guò)掃描鍵盤(pán)的按鍵來(lái)控制方波的占空比,所按
39、得鍵值越來(lái),方波的占空比越大,最高可達(dá)15/16,最低為0。鍵盤(pán)掃描輸出為一個(gè)4為的數(shù)組。掃描簡(jiǎn)單的來(lái)所就是給行低電平,看列獲得的電位就可確定在此行所按下的鍵。大體流程如下:</p><p><b> 時(shí)鐘1MHZ輸入</b></p><p> 是 否</p><p><
40、b> 判斷按鍵</b></p><p><b> 輸出相應(yīng)鍵值</b></p><p> 圖3.9:鍵盤(pán)掃描流程圖</p><p> 鍵盤(pán)模塊大體設(shè)計(jì)思路為,由信號(hào)COUNT對(duì)時(shí)鐘0到3循環(huán)計(jì)數(shù),在CONT=N時(shí)對(duì)第N列掃描,判斷列端電位,確定當(dāng)前按鍵的鍵位,輸出鍵值。</p><p> ?。?
41、)顯示模塊程序設(shè)計(jì)</p><p> 顯示模塊分為兩部分,分別為8位7段數(shù)碼管led和16*16點(diǎn)陣LED,由于硬件連接的沖突(7段數(shù)碼管的7段與點(diǎn)陣led的列的低8列連接在FPGA的統(tǒng)一管腳),因此把這兩個(gè)顯示部分在統(tǒng)一模塊在驅(qū)動(dòng),分時(shí)段分別驅(qū)動(dòng)8位7段數(shù)碼管led和16*16點(diǎn)陣LED。</p><p> 時(shí)鐘1MHZ </p><p> 是
42、 否</p><p> 圖3.10:顯示模塊程序流程</p><p> 顯示程序中,我們把十進(jìn)制計(jì)數(shù)器的百、十、個(gè)位數(shù)輸入,分別在8位7段數(shù)碼管上的第三、四、五位顯示,設(shè)計(jì)當(dāng)中,只記錄六秒鐘的轉(zhuǎn)速,顯示的為每分鐘的轉(zhuǎn)速,因此第六位LED數(shù)碼管顯示0,其他數(shù)碼管顯示橫線(xiàn)。在設(shè)計(jì)當(dāng)中要注意對(duì)輸入的4位數(shù)組譯成LED數(shù)碼
43、管能顯示的7段碼(如”0001”譯碼為“01100000“)。點(diǎn)陣LED顯示也需要譯碼,按每列譯碼。點(diǎn)陣LED每次點(diǎn)亮一列,高速點(diǎn)亮就可以在陣面上看到顯示漢字或者數(shù)字。</p><p> 圖3.11:鍵盤(pán)掃描及顯示模塊 </p><p> 3.7警報(bào)控制及彩色LED模塊程序設(shè)計(jì) </p><p> 此模塊為自己添加的設(shè)計(jì)模塊,考慮到
44、直流電機(jī)的轉(zhuǎn)速,將其劃分為高、中、低三個(gè)等次,高速為轉(zhuǎn)速超過(guò)4000R/MIN,低速為轉(zhuǎn)速低于2000R/MIN,中速介于兩者之間,用紅、綠、藍(lán)三個(gè)彩色LED 顯示當(dāng)前的速度屬于哪個(gè)速度層次。設(shè)計(jì)當(dāng)中另外把5000R/MIN 設(shè)為警戒速度,當(dāng)電機(jī)轉(zhuǎn)速超過(guò)警戒速度時(shí),就會(huì)觸發(fā)警報(bào)(揚(yáng)聲器發(fā)出間隔為1 秒的的響聲),當(dāng)然超過(guò)警戒速度的警報(bào)是可以通過(guò)警報(bào)開(kāi)關(guān)關(guān)閉的。</p><p> 圖3.12:警報(bào)控制及彩色LED
45、模塊</p><p><b> 設(shè)計(jì)過(guò)程介紹</b></p><p><b> 4.1 設(shè)計(jì)過(guò)程</b></p><p><b> (1)測(cè)速顯示</b></p><p> 當(dāng)電機(jī)旋轉(zhuǎn)時(shí),帶動(dòng)轉(zhuǎn)盤(pán)是的磁鋼片一起旋轉(zhuǎn),當(dāng)磁鋼片旋轉(zhuǎn)到霍爾器件的上方時(shí),可以導(dǎo)致霍爾器件的輸出
46、端高電平變?yōu)榈碗娖?。?dāng)磁鋼片轉(zhuǎn)過(guò)霍爾器件上方后,霍爾器件的輸出端又恢復(fù)高電平輸出。這樣電機(jī)每旋轉(zhuǎn)一周,則會(huì)使霍爾器件的輸出端產(chǎn)生一個(gè)低脈沖,我們就可以通過(guò)檢測(cè)單位時(shí)間內(nèi)霍爾器件輸出端低脈沖的個(gè)數(shù)來(lái)推算出直流電機(jī)在單位時(shí)間內(nèi)的轉(zhuǎn)速。</p><p> 電機(jī)的轉(zhuǎn)速通常是指每分鐘電機(jī)的轉(zhuǎn)速,也就是單位為rpm,實(shí)際測(cè)量過(guò)程中,為了減少轉(zhuǎn)速刷新的時(shí)間,通常都是5~10秒刷新一次。如果每6秒鐘刷新一次,那么相當(dāng)于只記錄了
47、6秒鐘內(nèi)的電機(jī)轉(zhuǎn)數(shù),把記錄的數(shù)據(jù)乘10即得到一分鐘的轉(zhuǎn)速。最后將這個(gè)數(shù)據(jù)在數(shù)碼管上顯示出來(lái)。為了使顯示的數(shù)據(jù)能夠在數(shù)碼管是顯示穩(wěn)定,在這個(gè)數(shù)據(jù)的輸出時(shí)加入了一個(gè)16位的鎖存器,把鎖存的數(shù)據(jù)送給數(shù)碼管顯示,這樣就來(lái)會(huì)因?yàn)樵谟?jì)數(shù)過(guò)程中,數(shù)據(jù)的變化而使數(shù)碼管顯示不斷變化。</p><p> ?。?)pwm產(chǎn)生控制</p><p> 通過(guò)控制占空比,從而達(dá)到控制直流電機(jī)控制。用按鍵先預(yù)設(shè)一個(gè)速度
48、值,讓電動(dòng)機(jī)的實(shí)際轉(zhuǎn)速與預(yù)設(shè)值比較,如果不相等,就調(diào)節(jié)占空比使之達(dá)到預(yù)設(shè)值</p><p> 4.2 遇到的問(wèn)題及解決方案</p><p> 問(wèn)題一:PWM 控制方式下,直流電機(jī)速度太低</p><p> 解決方法:初始在用時(shí),發(fā)現(xiàn)只有用旋律控制時(shí),直流電機(jī)的速度才能提升,在PWM控制時(shí),速度很低。我最初以為是PWM的周期太長(zhǎng),后發(fā)現(xiàn)將周期縮短依然無(wú)濟(jì)于事,
49、哪怕PWM信號(hào)占空比到了1,直流電機(jī)的速度依然非常低。后來(lái)查閱了電路圖發(fā)現(xiàn),PWM信號(hào)只是在高電位選通三極管來(lái)驅(qū)動(dòng)直流電機(jī),而決定直流電機(jī)所獲得的電壓由電機(jī)左邊的旋鈕控制,因此只需要把旋鈕調(diào)大即可提高PWM控制方式下的直流電機(jī)的轉(zhuǎn)速。</p><p> 問(wèn)題二:數(shù)碼管顯示的速度跳動(dòng)很大</p><p> 解決方法:通過(guò)把占空比從100分頻調(diào)到1000,這樣占空比沒(méi)變化1速度的變化就會(huì)減
50、少。</p><p><b> 4.3 設(shè)計(jì)體會(huì)</b></p><p> 本次課程設(shè)計(jì)為期2周,在這兩周中,我們經(jīng)歷了從什么都不懂,到有些了解,到逐漸熟悉EDA各軟件使用,及VHDL語(yǔ)言的運(yùn)用幾個(gè)過(guò)程。在此過(guò)程中我學(xué)到了很多書(shū)本上學(xué)不到的東西,同時(shí)也鞏固了以前所學(xué)的知識(shí)。在做子模塊編寫(xiě)的時(shí)候遇到了很多問(wèn)題,開(kāi)始時(shí)什么都不知道,就到網(wǎng)上搜集資料,查看老師給的資料,
51、再不懂的就問(wèn)老師,后來(lái)弄清了其中的原理后,經(jīng)過(guò)多次練習(xí),逐漸能夠解決編寫(xiě)程序中的問(wèn)題,把模塊編寫(xiě)出來(lái)。然而,在仿真時(shí),也遇到了一點(diǎn)困難,想要的結(jié)果不能得到正確的顯示,但是經(jīng)過(guò)對(duì)結(jié)果的一點(diǎn)點(diǎn)分析,從錯(cuò)誤中思考產(chǎn)生錯(cuò)誤的原因,修改電路圖,最終得到想要的結(jié)果,完成了本次課程設(shè)計(jì)。</p><p> 通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從
52、理論中得出結(jié)論,從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力,才能真正為社會(huì)服務(wù)。</p><p> 在此,也要感謝同組的成員,我基礎(chǔ)不好,很多都不懂,感謝他在這兩周的無(wú)私幫助,細(xì)心講解,還要感謝給予我們悉心指導(dǎo)的老師,在這兩周中,多虧您們不厭其煩的指教。謝謝!</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 《SOP
53、CIIEDA實(shí)驗(yàn)指導(dǎo)書(shū)》(第二版)</p><p> [2] 《SOPCII使用手冊(cè)》(第二版)</p><p> [3] 《EDA技術(shù)基礎(chǔ)》. 譚會(huì)生編著. 湖南大學(xué)出版社,2004</p><p> [4] 《EDA技術(shù)實(shí)用教程(第二版),潘松、黃繼業(yè)編著 ,科學(xué)出版社 ,2005</p><p><b> 附錄A:設(shè)
54、計(jì)程序</b></p><p> 時(shí)鐘控制信號(hào)模塊程序</p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_arith.all;</p><p> use ieee.std
55、_logic_unsigned.all;</p><p> --------------------------------------------------------------------</p><p> entity teltcl is</p><p> port( Clk : in std_logic; --時(shí)鐘輸入1M
56、hz</p><p> ena : out std_logic; --允許計(jì)數(shù)</p><p> clr : out std_logic; --計(jì)數(shù)器清零信號(hào)產(chǎn)生</p><p> clkhz : out std_logic; --秒脈沖信號(hào)產(chǎn)生</p><p> c
57、lkkhz : out std_logic; --1KHZ脈沖產(chǎn)生</p><p> load : out std_logic --鎖存、顯示輸出允許</p><p><b> ); </b></p><p> end teltcl;</p><p> -----
58、---------------------------------------------------------------</p><p> architecture behave of teltcl is</p><p> signal clk1hz :std_logic;--1HZ時(shí)鐘信號(hào)</p><p> signal clk1khz
59、:std_logic;</p><p> signal count : std_logic_vector(2 downto 0);--6秒計(jì)數(shù)</p><p> signal clr1 :std_logic;--清零信號(hào)</p><p> signal ena1 :std_logic;--允許計(jì)數(shù)信號(hào)</p>&
60、lt;p> signal load1 :std_logic;--允許計(jì)數(shù)信號(hào)</p><p> signal cq1,cq2,cq3,cq4 : INTEGER RANGE 0 TO 15;--計(jì)數(shù)數(shù)據(jù)</p><p><b> begin</b></p><p> process(clk) --1HZ信號(hào)產(chǎn)生&l
61、t;/p><p> variable cnttemp : INTEGER RANGE 0 TO 999999;</p><p> variable count : integer range 0 to 999;</p><p><b> begin</b></p><p> IF clk='1'
62、AND clk'event THEN </p><p> IF cnttemp=999999 THEN cnttemp:=0; </p><p><b> ELSE </b></p><p> IF cnttemp<500000 THEN clk1hz<='1'; </p><p&g
63、t; ELSE clk1hz<='0'; </p><p><b> END IF; </b></p><p> cnttemp:=cnttemp+1; </p><p><b> END IF; </b></p><p> if count=999 then cou
64、nt:=0;</p><p><b> else</b></p><p> if count<500 then clk1khz<='1';</p><p> else clk1khz<='0';</p><p><b> end if;</b>
65、;</p><p> count:=count+1;</p><p><b> end if;</b></p><p><b> end if;</b></p><p> clkhz<=clk1hz;clkkhz<=clk1khz;</p><p>
66、end process;</p><p> process(Clk1hz)--6秒計(jì)數(shù)</p><p><b> begin</b></p><p> if(Clk1hz'event and Clk1hz='1') then</p><p> count<=count+1;</
67、p><p> if count<6 then</p><p> ena1<='1';load1<='0';clr1<='0';</p><p> elsif count=6 then</p><p> load1<='1';ena1&l
68、t;='0';clr1<='0';</p><p> elsif count=7 then</p><p> ena1<='0';load1<='0';clr1<='1';</p><p><b> end if;</b><
69、;/p><p><b> end if;</b></p><p> ena<=ena1; load<=load1;clr<=clr1;</p><p> end process;</p><p> end behave;</p><p> 十進(jìn)制計(jì)數(shù)器模塊程序 </
70、p><p> LIBRARY IEEE;</p><p> USE IEEE.STD_LOGIC_1164.ALL; </p><p> ENTITY CNT10 IS</p><p> PORT (CLK:IN STD_LOGIC; --計(jì)數(shù)時(shí)鐘信號(hào)</p><p> CLR:IN STD_L
71、OGIC; --清零信號(hào)</p><p> ENA:IN STD_LOGIC; --計(jì)數(shù)使能信號(hào)</p><p> CQ :OUT INTEGER RANGE 0 TO 15;--4位計(jì)數(shù)結(jié)果輸出</p><p> CARRY_OUT:OUT STD_LOGIC); --計(jì)數(shù)進(jìn)位</p><p> END
72、 CNT10;</p><p> ARCHITECTURE ART OF CNT10 IS </p><p> SIGNAL CQI :INTEGER RANGE 0 TO 15;</p><p><b> BEGIN</b></p><p> PROCESS(CLK,ENA) IS</p>&l
73、t;p><b> BEGIN</b></p><p> IF CLR= '1' THEN CQI<= 0; ----計(jì)數(shù)器異步清零</p><p> elsIF CLK'EVENT AND CLK= '1' THEN </p><p> IF ENA
74、= '1' THEN </p><p> iF CQI=10 THEN cqi<=1;</p><p> ELSE CQI<=cqi+1;</p><p> END IF; ----等于9,則計(jì)數(shù)器清零</p><p><b> END IF;</b></p>&l
75、t;p><b> END IF;</b></p><p> END PROCESS;</p><p> PROCESS (CQI) IS</p><p><b> BEGIN</b></p><p> IF CQI=10 THEN CARRY_OUT<= '1'
76、; ----進(jìn)位輸出</p><p> ELSE CARRY_OUT<= '0';</p><p><b> END IF;</b></p><p> END PROCESS;</p><p><b> CQ<=CQI;</b></p>&l
77、t;p><b> END ART;</b></p><p><b> 鍵盤(pán)掃描及顯示程序</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_ari
78、th.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> --------------------------------------------------------------------</p><p> entity exp13 is</p><p> port(
79、Clk : in std_logic; --時(shí)鐘信號(hào)</p><p> buff1,buff2,buff3,buff4 : in integer range 0 to 9;</p><p> Kr : in std_logic_vector(3 downto 0); --
80、鍵盤(pán)行</p><p> Kc : buffer std_logic_vector(3 downto 0); --鍵盤(pán)列</p><p> a,b,c,d,e,f,g,dp : out std_logic;</p><p> Sa,sb,sc : buffer
81、std_logic; --七段碼管片選</p><p> dot_c : OUT STD_LOGIC_VECTOR(15 DOWNTO 0);</p><p> dot_r : out std_logic_vector(7 downto 0);</p><p> yangbo
82、 : out integer range 0 to 15;</p><p> led : out std_logic_vector(7 downto 0)</p><p><b> );</b></p><p> end exp13;</p><p&g
83、t; --------------------------------------------------------------------</p><p> architecture behave of exp13 is</p><p> signal keyr,keyc : std_logic_vector(3 downto 0);</p><p&g
84、t; signal kcount : std_logic_vector(2 downto 0);</p><p> signal dcount : std_logic_vector(1 downto 0);</p><p> signal kflag1,kflag2 : std_logic;</p><p> signal buf
85、f8 : integer range 0 to 15;</p><p> signal Disp_Temp : integer range 0 to 15; --掃描鍵值</p><p> signal Disp_Decode : std_logic_vector(7 downto 0);</p><p> signal s
86、 : std_logic_vector(3 downto 0);</p><p> signal key : std_logic_vector(15 downto 0);</p><p> FUNCTION seg_code(a: in integer) return std_logic_vector is</p>
87、<p><b> begin</b></p><p><b> case a is</b></p><p> when 0=>return "00111111"; --'0'</p><p> when 1=>return "00000110
88、"; --'1'</p><p> when 2=>return "01011011"; --'2'</p><p> when 3=>return "01001111"; --'3'</p><p> when 4=>return
89、"01100110"; --'4'</p><p> when 5=>return "01101101"; --'5'</p><p> when 6=>return "01111101"; --'6'</p><p> when
90、 7=>return "00000111"; --'7'</p><p> when 8=>return "01111111"; --'8'</p><p> when 9=>return "01101111"; --'9'</p>&
91、lt;p> when 10=>return "01110111"; --'A'</p><p> when 11=>return "01111100"; --'b'</p><p> when 12=>return "00111001"; --'C'
92、;</p><p> when 13=>return "01011110"; --'d'</p><p> when 14=>return "01111001"; --'E'</p><p> when 15=>return "01110001";
93、 --'-'</p><p> when others=>return "00000000"; --全滅</p><p> end case; </p><p> end seg_code;</p><p><b> begin</b></p>&
94、lt;p> yangbo<=buff8;</p><p> Disp_Temp<=buff8;</p><p> a<=Disp_Decode(0);</p><p> b<=Disp_Decode(1);</p><p> c<=Disp_Decode(2);</p><p&
95、gt; d<=Disp_Decode(3);</p><p> e<=Disp_Decode(4);</p><p> f<=Disp_Decode(5);</p><p> g<=Disp_Decode(6);</p><p> dp<=Disp_Decode(7);</p><p
96、> process(clk) --掃描鍵盤(pán) </p><p><b> begin</b></p><p> if(Clk'event and Clk='1') then </p><p> if(Kr="1111") then</p><p> kfl
97、ag1<='0';</p><p> kcount<=kcount+1;</p><p> if(kcount=0) then</p><p> kc<="1110";</p><p> elsif(kcount=1) then</p><p> kc&l
98、t;="1101";</p><p> elsif(kcount=2) then</p><p> kc<="1011";</p><p><b> else</b></p><p> kc<="0111"; </p><
99、p><b> end if;</b></p><p><b> else</b></p><p> kflag1<='1';</p><p><b> keyr<=Kr;</b></p><p><b> keyc<=
100、Kc;</b></p><p><b> end if;</b></p><p> kflag2<=kflag1;</p><p><b> end if; </b></p><p> end process; </p><p> process
101、(Clk) -- 獲取鍵值</p><p><b> begin</b></p><p> if(Clk'event and Clk='1') then</p><p> if(kflag1='1' and kflag2='0') then</p><p>
102、 if(keyr="0111") then</p><p> case keyc is</p><p> when "0111"=>buff8<=1; </p><p> when "1011"=>buff8<=4; </p><p> when
103、"1101"=>buff8<=7; </p><p> when "1110"=>buff8<=14; </p><p> when others=>buff8<=buff8; --no change</p><p><b> end case;</b>
104、;</p><p> elsif(keyr="1011") then</p><p> case keyc is</p><p> when "0111"=>buff8<=2; </p><p> when "1011"=>buff8<=5; &l
105、t;/p><p> when "1101"=>buff8<=8; </p><p> when "1110"=>buff8<=0; </p><p> when others=>buff8<=buff8; --no change</p><p>&l
106、t;b> end case;</b></p><p> elsif(keyr="1101") then</p><p> case keyc is</p><p> when "1110"=>buff8<=15; </p><p> when "110
107、1"=>buff8<=9; </p><p> when "1011"=>buff8<=6; </p><p> when "0111"=>buff8<=3;</p><p> when others=>buff8<=buff8; --no chan
108、ge</p><p><b> end case;</b></p><p> elsif(keyr="1110") then</p><p> case keyc is</p><p> when "1110"=>buff8<=13; </p>
109、<p> when "1101"=>buff8<=12; </p><p> when "1011"=>buff8<=11; </p><p> when "0111"=>buff8<=10;</p><p> when others=>buff
110、8<=buff8; --no change</p><p><b> end case;</b></p><p><b> end if;</b></p><p> end if; </p><p><b> end if; <
111、/b></p><p> end process;</p><p> process(clk)</p><p><b> begin</b></p><p> if(clk'event and clk='1') then --掃描累加 </p><p>
112、 dcount<=dcount+1;</p><p> case dcount is</p><p> when "00"=> Disp_Decode<=seg_code(buff1);</p><p> when "01"=> Disp_Decode<=seg_code(buff2);
113、</p><p> when "10"=> Disp_Decode<=seg_code(buff3);</p><p> when "11"=> Disp_Decode<=seg_code(buff4);</p><p><b> end case;</b></p>
114、;<p> sa<=dcount(0);</p><p> sb<=dcount(1);</p><p><b> sc<='0';</b></p><p><b> end if;</b></p><p> end process;<
115、/p><p> process (clk)</p><p><b> begin</b></p><p> if (clk'event and clk='1')then</p><p><b> s<=s+"1";</b></p>
116、<p> if (s="1111") then</p><p> s<="1000";</p><p><b> end if;</b></p><p><b> end if;</b></p><p> end process; &
117、lt;/p><p> process (s)</p><p><b> begin</b></p><p><b> case s is</b></p><p> when "1000"=>dot_r<="01111111"; </p&g
118、t;<p> when "1001"=>dot_r<="10111111";</p><p> when "1010"=>dot_r<="11011111";</p><p> when "1011"=>dot_r<="111
119、01111"; </p><p> when "1100"=>dot_r<="11110111";</p><p> when "1101"=>dot_r<="11111011"; </p><p> when "1110"=&
120、gt;dot_r<="11111101"; </p><p> when "1111"=>dot_r<="11111110";</p><p> when others=>dot_r<="11111111"; </p><p> end case; &
121、lt;/p><p> end process;</p><p> process(s,Disp_Temp)</p><p><b> begin</b></p><p> if (Disp_Temp=0) then </p><p> led<="11000000"
122、; --十位LED顯示0 </p><p><b> case s is</b></p><p> when "1000"=>dot_c<=not"111111111
123、1111111"; --列顯示0</p><p> when "1001"=>dot_c<=not"1111000000001111";</p><p> when "1010"=>dot_c<=not"1110111111110111";</p><p
124、> when "1011"=>dot_c<=not"1101111111111011";</p><p> when "1100"=>dot_c<=not"1101111111111011";</p><p> when "1101"=>dot_c&
125、lt;=not"1110111111110111";</p><p> when "1110"=>dot_c<=not"1111000000001111";</p><p> when "1111"=>dot_c<=not"1111111111111111";&l
126、t;/p><p> when others=>dot_c<="0000000000000000";</p><p> end case; </p><p> elsif (Disp_Temp=1) then</p><p> led<="11000000";
127、 --十位LED顯示0 </p><p><b> case s is</b></p><p> when "1000"=>dot_c<=not"1111111111111111";
128、--顯示1</p><p> when "1001"=>dot_c<=not"1011111110111111";</p><p> when "1010"=>dot_c<=not"1011111111101111";</p><p> when "
129、;1011"=>dot_c<=not"1011111111110111";</p><p> when "1100"=>dot_c<=not"1000000000000011";</p><p> when "1101"=>dot_c<=not"101
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- eda課程設(shè)計(jì)--直流電機(jī)測(cè)控儀
- eda實(shí)驗(yàn)直流電機(jī)測(cè)控系統(tǒng)設(shè)計(jì)
- 直流電機(jī)課程設(shè)計(jì)--直流電機(jī)控制系統(tǒng)設(shè)計(jì)
- 直流電機(jī)調(diào)速課程設(shè)計(jì)
- 課程設(shè)計(jì)---直流電機(jī)速度控制
- 直流電機(jī)閉環(huán)調(diào)速課程設(shè)計(jì)
- 直流電機(jī)測(cè)速系統(tǒng)課程設(shè)計(jì)
- 直流電機(jī)順序控制課程設(shè)計(jì)報(bào)告
- 直流電機(jī)串電阻啟動(dòng)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-直流電機(jī)
- 微機(jī)接口課程設(shè)計(jì)--直流電機(jī)控制
- 直流電機(jī)無(wú)極調(diào)速系統(tǒng)課程設(shè)計(jì)
- 電力電子課程設(shè)計(jì)-直流電機(jī)調(diào)速
- 直流電機(jī)雙閉環(huán)系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)--直流電機(jī)調(diào)速控制的設(shè)計(jì)
- 直流電機(jī)轉(zhuǎn)速測(cè)量與控制課程設(shè)計(jì)
- 電機(jī)拖動(dòng)課程設(shè)計(jì)--直流電機(jī)調(diào)速系統(tǒng)的設(shè)計(jì)
- 直流電機(jī)
- 電子課程設(shè)計(jì)報(bào)告(直流電機(jī)轉(zhuǎn)速測(cè)量)
- 基于ppga的直流電機(jī)控制課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論