【正文】
nt=degreecount1。 abcd=abcd+1。計(jì)數(shù)的同時(shí)控制脈沖個(gè)數(shù) else degreecount=00000000。計(jì)數(shù)完畢,計(jì)數(shù)器清0 end if。 end if。 end process。 process(clk_temp) clk_temp begin if(clk_temp39。event and clk_temp=39。139。) then if(keyorder=39。139。) then正向轉(zhuǎn)動(dòng), if(abcd=0) then astep=39。139。 bstep=39。039。 cstep=39。039。 dstep=39。039。 elsif(abcd=1) then astep=39。039。 bstep=39。139。 cstep=39。039。 dstep=39。039。 elsif(abcd=2) then astep=39。039。 bstep=39。039。 cstep=39。139。 dstep=39。039。 elsif(abcd=3) then astep=39。039。 bstep=39。039。 cstep=39。039。 dstep=39。139。 end if。 else 反向轉(zhuǎn)動(dòng) if(abcd=0) then astep=39。139。 bstep=39。039。 cstep=39。039。 dstep=39。039。 elsif(abcd=1) then astep=39。039。 bstep=39。039。 cstep=39。039。 dstep=39。139。 elsif(abcd=2) then astep=39。039。 bstep=39。039。 cstep=39。139。 dstep=39。039。 elsif(abcd=3) then astep=39。039。 bstep=39。139。 cstep=39。039。 dstep=39。039。 end if。 end if。 end if。 end process。 end behave。提高程序(控制步進(jìn)電機(jī)轉(zhuǎn)速快慢):library ieee。use 。use 。use 。entity stepmotor1 isport( clk : in std_logic。 astep,bstep,cstep,dstep:out std_logic )。end stepmotor1。architecture behave of stepmotor1 is signal abcd :std_logic_vector(1 downto 0)。begin p1:process(clk) begin if(clk39。event and clk=39。139。)then abcd=abcd+1。 end if。 end process。 p2:process(clk) begin if(clk39。event and clk=39。139。)then if(abcd=0) then astep=39。139。 bstep=39。039。 cstep=39。039。 dstep=39。039。 elsif(abcd=1) then astep=39。039。 bstep=39。139。 cstep=39。039。 dstep=39。039。 elsif(abcd=2) then astep=39。039。 bstep=39。039。 cstep=39。139。 dstep=39。039。 elsif(abcd=3) then astep=39。039。 bstep=39。039。 cstep=39。039。 dstep=39。139。 end if。 end if。 end process。 end behave。致 謝 本論文是在我指導(dǎo)老師xxx老師的悉心指導(dǎo)下完成的。這段時(shí)間以來(lái),肖老師以嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,淵博的學(xué)識(shí)使我受益匪淺,刻苦治學(xué),誨人不倦的學(xué)風(fēng)和品格對(duì)我影響至深,另我終身難忘。在論文成稿之時(shí),向xxx表示深深的感謝和敬意。同時(shí)本系EDA實(shí)驗(yàn)室的開(kāi)放也為我的設(shè)計(jì)提供了方便。在此感謝實(shí)驗(yàn)老師對(duì)我的幫助。由于本身水平有限,設(shè)計(jì)中肯定存在許多不足之處,敬請(qǐng)各位老師批評(píng)指正。]我們先應(yīng)用QuartusⅡ進(jìn)行仿真。:圖 對(duì)于該控制器,我們?cè)O(shè)置的各個(gè)控制信號(hào)均是外部電鍵,此外CP為時(shí)鐘信號(hào)RATE(1...0)調(diào)速方式為:內(nèi)部數(shù)據(jù)選擇器根據(jù)RATE(1...0)值將移位寄存器的時(shí)鐘分別和 CP 及八進(jìn)制計(jì)數(shù)器的輸出端相連,以對(duì) CP 進(jìn)行 8 分頻。STEPOUT輸出的時(shí)序通過(guò)光電耦合直接送驅(qū)動(dòng)器 ULN2003,為了提高 ULN2003 的驅(qū)動(dòng)能力,因此在其輸出端加四個(gè)22歐的上拉電阻。 在仿真過(guò)程中可在QuartusⅡ軟件中來(lái)設(shè)定四相輸入的電平的高低,即為在仿真時(shí)設(shè)置的脈沖分配。 時(shí)序脈沖分配表將所編寫(xiě)程序有PC機(jī)下載到FPGA中,在QuartusⅡ軟件中可直觀看到高低電平分配情況。 程序仿真波形圖第5章 總結(jié) 在本次設(shè)計(jì)中我們選用了型號(hào)為T(mén)S3103TC1003的步進(jìn)電機(jī)和型號(hào)為 EP1K10T1003的FPGA即現(xiàn)場(chǎng)可編程門(mén)陣列來(lái)實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)系統(tǒng)的設(shè)計(jì)和控制。通過(guò)兩個(gè)方案的比較最終確定了采用FPGA控制步進(jìn)電機(jī)。FPGA是作為專(zhuān)用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,使用非常靈活,既解決了定制電路的不足,又克服了原有可編程器件門(mén)電路數(shù)有限的缺點(diǎn)。因此改變控制參數(shù)相當(dāng)方便,只需改變程序中相應(yīng)部分即可。本設(shè)計(jì)利用VHDL語(yǔ)言編寫(xiě)步進(jìn)電機(jī)的控制時(shí)序電路,完成了對(duì)四相混合式步進(jìn)電機(jī)的聯(lián)動(dòng)控制,實(shí)現(xiàn)了步進(jìn)電機(jī)的細(xì)分驅(qū)動(dòng)控制:用按鍵控制步進(jìn)電機(jī)的速度和轉(zhuǎn)動(dòng)方向,按下不同的鍵,分別使步進(jìn)電機(jī)實(shí)現(xiàn)順時(shí)針和逆時(shí)針轉(zhuǎn)一步,連續(xù)按鍵,不僅電機(jī)連續(xù)運(yùn)轉(zhuǎn),顯示器顯示步進(jìn)電機(jī)的狀態(tài),同時(shí)電機(jī)轉(zhuǎn)動(dòng)角度也可以用按鍵控制,最少轉(zhuǎn)動(dòng)15176。,實(shí)現(xiàn)了步進(jìn)電機(jī)的精確控制。由于自身能力有限,在本設(shè)計(jì)中仍存在很多需要改進(jìn)的不足之處,如在步進(jìn)電機(jī)的插補(bǔ)控制中,沒(méi)有結(jié)合速度控制、驅(qū)動(dòng)器硬件電路中,保護(hù)電路有