2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩26頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  SOPC/EDA綜合課程設(shè)計報告</p><p>  設(shè)計題目:車載DVD位控系統(tǒng)的設(shè)計 </p><p>  設(shè) 計 者: </p><p>  學(xué) 號: </p><p>  班 級: </p><p>  指導(dǎo)老師:

2、 </p><p><b>  完成時間: </b></p><p><b>  目 錄</b></p><p>  第一章 概 述 ·············

3、83;········· 1</p><p>  1.1 EDA技術(shù)的概念 ··················· 1</p&g

4、t;<p>  1.2硬件描述語言VHDL的介紹 ··············· 1</p><p>  1.3本選題的意義及國內(nèi)外發(fā)展?fàn)顩r·········&#

5、183;··· 1</p><p>  第二章 系統(tǒng)的設(shè)計要求 ··················· 2</p><p>  第三章 系統(tǒng)的設(shè)計方案 ·

6、3;················· 5</p><p>  3.1 系統(tǒng)的總體結(jié)構(gòu)設(shè)計·············

7、···· 5</p><p>  3.2單元模塊的設(shè)計··················· 6</p><p>  3.2.1 分頻模塊FINI·&#

8、183;················ 6</p><p>  3.2.2 OPEN_CLOSE操作模塊OPEN_OP···········&

9、#183; 6</p><p>  3.2.3TILT操作模塊TILT_OP················6</p><p>  3.2.4位置判斷模塊POS_DIFF·····&

10、#183;········· 7</p><p>  3.2.5異常判斷及處理模塊ABN_DIFF············ 7</p><p>  3.2.6判斷輸出模塊OUTPUT

11、················ 8</p><p>  3.2.7時間及位置顯示模塊DISPLAY············ 9<

12、;/p><p>  第四章 主要VHDL源程序與仿真·················11</p><p>  4.1VHDL主要源程序·······

13、83;············ 11</p><p>  4.2系統(tǒng)仿真圖形··················&#

14、183;··· 20</p><p>  第五章 系統(tǒng)設(shè)計技巧與分析··················· 21</p><p>  第六章 設(shè)計心得體會·

15、83;···················· 22</p><p>  第七章 系統(tǒng)擴(kuò)展思路··········&

16、#183;··········· 23</p><p>  參考文獻(xiàn)····················

17、;········24</p><p>  第一章 概 述</p><p>  1.1EDA技術(shù)的概念</p><p>  EDA是電子設(shè)計自動化(Electronic Design Automation)的縮寫,在20世紀(jì)90年代初從計算機(jī)輔助設(shè)計(CAD)、計算機(jī)輔助制造(CA

18、M)、計算機(jī)輔助測試(CAT)和計算機(jī)輔助工程(CAE)的概念發(fā)展而來的。EDA技術(shù)就是以計算機(jī)為工具,設(shè)計者在EDA軟件平臺上,用硬件描述語言HDL完成設(shè)計文件,然后由計算機(jī)自動地完成邏輯編譯、化簡、分割、綜合、優(yōu)化、布局、布線和仿真,直至對于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。 EDA技術(shù)的特點 利用EDA技術(shù)進(jìn)行電子系統(tǒng)的設(shè)計,具有以下幾個特點:① 用軟件的方式設(shè)計硬件;② 用軟件方式設(shè)計的系統(tǒng)到硬件系統(tǒng)的轉(zhuǎn)換

19、是由有關(guān)的開發(fā)軟件自動完成的;③ 設(shè)計過程中可用有關(guān)軟件進(jìn)行各種仿真;④ 系統(tǒng)可現(xiàn)場編程,在線升級;⑤ 整個系統(tǒng)可集成在一個芯片上,體積小、功耗低、可靠性高。</p><p>  1.2硬件描述語言(VHDL)</p><p><b>  VHDL的介紹</b></p><p>  VHDL(Very-High-Speed Integrated

20、 Circuit Hardware Description Language)主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式和描述風(fēng)格與句法是十分類似于一般的計算機(jī)高級語言。VHDL的程序結(jié)構(gòu)特點是將一項工程設(shè)計,或稱設(shè)計實體(可以是一個元件,一個電路模塊或一個系統(tǒng))分成外部(或稱可是部分,及端口)和內(nèi)部(或稱不可視部分),既涉及實體的內(nèi)部功能和算法完成部分。在對一個設(shè)計實體定義了外部

21、界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計就可以直接調(diào)用這個實體。這種將設(shè)計實體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計的基本。 </p><p>  1.3本選題的意義及國內(nèi)外發(fā)展?fàn)顩r</p><p>  采用一片CPLD/FPGA設(shè)計一個車載移動DVD位移控制系統(tǒng)用于準(zhǔn)確地控制液</p><p>  晶TFT顯示屏行走與翻轉(zhuǎn)的驅(qū)動馬達(dá)的運行時間及兩個馬達(dá)之間的配合

22、。 </p><p>  在國內(nèi)隨著汽車工業(yè)的快速發(fā)展和消費觀念的日新月異車載電子用品成為市場關(guān)注的熱點,作為高檔汽車用品的車載DVD日益受到時尚人士的青睞。與此同時中國的汽車市場依然保持增長2008年中國汽車銷售938萬輛2009年預(yù)計增長8.6%達(dá)到1019萬輛。與此同時中國汽車保有量逐年增長,2008年達(dá)到4900萬輛。在汽車行業(yè)帶動下中國車載DVD行業(yè)將有穩(wěn)定的增長空間。近年來車載DVD市場年銷售額

23、大約在50億元左右,預(yù)計為倆兩年市場增長率在10%上。在國外從微軟到Intel,從蘋果到HP,IT和消費電子呈現(xiàn)融合的趨勢這種融合的趨勢給了車載DVD一個更加廣闊的發(fā)展空間和更快的躍進(jìn)速度。</p><p><b>  系統(tǒng)的設(shè)計要求</b></p><p>  根據(jù)某車載移動DVD產(chǎn)品機(jī)械操作分析結(jié)果的要求,具體設(shè)計如下:</p><p> 

24、 1.OPEN_CLOSE操作:當(dāng)系統(tǒng)測試到有一個OPEN_CLOSE高電平信號時,系統(tǒng)就驅(qū)動馬達(dá)1(MOTOR11端),顯示屏從機(jī)盒內(nèi)伸出,距離為142 mm,時間為3 s。水平移動到指定位置后,關(guān)斷馬達(dá)信號MOTOR11。</p><p>  2.自測向上翻轉(zhuǎn)操作(此操作只在正常開機(jī)或關(guān)機(jī)時使用):開機(jī)時顯示屏從機(jī)內(nèi)伸出,到達(dá)指定位置,從傳感器SENSOR1返回一信號,則開通信號MOTOR21,馬達(dá)運行時間為

25、3 s,向上翻轉(zhuǎn)110°,從傳感器SENSOR2返回的信號表明到達(dá)指定位置,切斷MOTOR21信號。開機(jī)過程完成。</p><p>  3.關(guān)機(jī)操作:當(dāng)OPEN_CLOSE為低電平時,系統(tǒng)通過相應(yīng)的處理模塊檢測到顯示屏所在位置,然后做出相應(yīng)對策。向下翻轉(zhuǎn)至水平位置后,水平縮進(jìn)機(jī)內(nèi)。</p><p>  4.角度調(diào)整與水平位置調(diào)整操作(TILT調(diào)節(jié)操作):如果TILT信號為高電平,

26、系統(tǒng)先測試其為高電平的時間寬度。若為2 s時,則調(diào)節(jié)水平位置,共三個位置,相鄰位置間隔為1.5 cm;若小于2 s時,則調(diào)節(jié)角度,共三個角度調(diào)節(jié)位置,相鄰角度大小為15°。 </p><p>  5.異常情況處理(異常情況就是在某一運行過程,由于人為地阻止顯示屏的正常移動,從而造成長時間的馬達(dá)過載異常):由實際情況進(jìn)行判斷,如果是異常情況,則關(guān)斷馬達(dá)信號并報警出錯;等待OPEN_CLOSE低電平的到來,

27、然后返回機(jī)盒內(nèi)。 </p><p>  6.位置識別、異常情況判斷、狀態(tài)顯示、時間顯示:在系統(tǒng)對馬達(dá)進(jìn)行驅(qū)動控制時,都要進(jìn)行位置識別、異常情況判斷,并把檢測到的信號通過狀態(tài)顯示模塊處理輸出。在每一運行過程,輸出模塊均把此時的時間顯示出,最小時間單位為1 s。</p><p>  根據(jù)以上各種操作及要求,我們可得到各種操作的狀態(tài)轉(zhuǎn)換圖如圖1所示,系統(tǒng)的有關(guān)控制時序如圖2圖3所示。</

28、p><p><b>  圖 1</b></p><p><b>  圖 2</b></p><p>  圖 3 角度調(diào)整和水平位置調(diào)整控制時序圖</p><p>  圖2和圖3中的信號說明如下:</p><p>  OPEN/CLOSE:外部開關(guān)操作輸入信號;</p&g

29、t;<p>  TILT:角度調(diào)整和水平位置調(diào)整信號輸入端;</p><p>  P00/ IC2.6,P01/IC2.5,P02/IC1.6,P03/IC1.5:驅(qū)動信號,高電平有效;</p><p>  M1.1,M1.2:行走馬達(dá)控制信號,高電平有效,電壓為9 V;</p><p>  M2.1,M2.2:翻轉(zhuǎn)馬達(dá)控制信號,高電平有效,電壓為9

30、V;</p><p>  Sensor1,Sensor2:分別為行走馬達(dá)和翻轉(zhuǎn)馬達(dá)的返回電壓信號,系模擬信號。</p><p>  第三章 系統(tǒng)的設(shè)計方案</p><p>  3.1系統(tǒng)的總體結(jié)構(gòu)設(shè)計</p><p>  根據(jù)系統(tǒng)的設(shè)計要求,我們可得到移動DVD位控系統(tǒng)DVDWKXT的輸入和輸出接口如圖1所示。圖中的信號說明如下:</p

31、><p>  CLKIN:外部時鐘端輸入,8 MHz晶振;</p><p>  OPEN_CLOSE:外部開關(guān)操作輸入電平信號;</p><p>  TILT:外部輸入位置調(diào)節(jié)信號;</p><p>  DATA:8位傳感器返回數(shù)據(jù);</p><p>  ADCABC00:傳感器通道選擇信號輸出;</p>&

32、lt;p>  ADCCLK:模擬轉(zhuǎn)換器的時鐘信號;</p><p>  EOC, OP, READ, WRITE:ADC0809的控制信號;</p><p>  MOTOR11_OUT, MOTOR12_OUT, MOTOR21_OUT, MOTOR22_OUT:驅(qū)動馬達(dá)控制信號;</p><p>  DS_TIME,DS_UNIT:時間及單位輸出信號;<

33、;/p><p>  ERROR00,GOOD00:異常,正常輸出信號;</p><p>  V_POS1, V_POS2, V_POS3:水平位置輸出信號;</p><p>  H_POS1, H_POS2, H_POS3:角度位置輸出信號。 </p><p>  根據(jù)實際要求,上面的各個信號輸出為TTL標(biāo)準(zhǔn)電平,輸出電流約為5~10 mA

34、。</p><p>  圖1 DVDWKXT的輸入和輸出接口圖</p><p>  3.2單元模塊的設(shè)計</p><p>  經(jīng)過對系統(tǒng)的設(shè)計要求進(jìn)行分析,我們可將整個系統(tǒng)分為6個模塊:分頻模塊FINI、OPEN_CLOSE操作模塊OPEN_OP、TILT操作模塊TILT_OP、位置判斷模塊POS_DIFF、異常判斷及處理模塊ABN_DIFF、判斷輸出模塊OUTP

35、UT、時間及位置顯示模塊DISPLAY。</p><p>  3.2.1 分頻模塊FINI</p><p>  分頻模塊FINI其功能為對外部輸入時鐘進(jìn)行分頻,得到周期為1.5 ms計數(shù)器,并根據(jù)反饋信號TIME_S對計時器進(jìn)行清零。其輸入輸出接口如圖3.2.1所示,圖中的CLKIN為外部時鐘輸入,TIME_S為定時器清零信號。</p><p>  圖3.2.1

36、 分頻模塊FINI輸入輸出接口圖</p><p>  3.2.2 OPEN_CLOSE操作模塊OPEN_OP</p><p>  OPEN_CLOSE操作模塊OPEN_OP其功能為根據(jù)反饋的數(shù)據(jù)和相關(guān)的信號,做出具體的馬達(dá)控制輸出。其輸入輸出接口如圖3.2.2所示,圖中的信號TILT_BCD、TILT_FGH為從TILT模塊返回的控制信號,TIME_S是內(nèi)部計時器的清零信號,ERROR

37、0為異常警告信號。</p><p>  圖3.2.2 OPEN_CLOSE操作模塊OPEN_OP輸入輸出接口圖</p><p>  3.2.3 TILT操作模塊TILT_OP</p><p>  TILT操作模塊TILT_OP其功能為根據(jù)反饋的數(shù)據(jù)和相應(yīng)的信號,做出具體的馬達(dá)控制輸出。其輸入輸出接口如圖3.2.3所示,圖中的信號TILT_BCD0、TILT_FG

38、H0為小范圍內(nèi)調(diào)整控制信號,ADCABCP5是ADC0809通道選通信號</p><p>  圖3.2.3 TILT操作模塊TILT_OP輸入輸出接口圖</p><p>  3.2.4 位置判斷模塊POS_DIFF</p><p>  位置判斷模塊POS_DIFF其功能為對每個周期內(nèi)的移動顯示屏的位置進(jìn)行判斷,并把信號輸出。其輸入輸出接口如圖3.2.4所示,圖中的V

39、PA、VPB、VPC、VPD、HPE、HPF、HPG、HPH、VPAB、VPBC、VPCD、HPEF、HPFG、HPGH為輸出位信號。</p><p>  圖3.2.4 位置判斷模塊POS_DIFF輸入輸出接口圖</p><p>  3.2.5 異常判斷及處理模塊ABN_DIFF</p><p>  異常判斷及處理模塊ABN_DIFF其功能為在每一個周期內(nèi)對系統(tǒng)的運

40、行異常情況判斷,并把信號輸出。針對不同的位置,在相應(yīng)的操作里,設(shè)定的時間內(nèi),如沒有到達(dá)規(guī)定的位置,則判斷為異常,并關(guān)斷馬達(dá)的運行。其輸入輸出接口如圖3.2.5所示。</p><p>  圖3.2.5 異常判斷及處理模塊ABN_DIFF輸入輸出接口圖</p><p>  3.2.6 判斷輸出模塊OUTPUT</p><p>  判斷輸出模塊OUTPUT其功能為根據(jù)以

41、上模塊的各判斷輸出信號,進(jìn)行再次判斷,并輸出到外部。由以上模塊進(jìn)行操作,得到不同的信號,從而進(jìn)行輸出控制;主要是針對模擬通道的選擇,以及對馬達(dá)1和馬達(dá)2的控制。其輸入輸出接口如圖3.2.6所示。 </p><p>  圖3.2.6 判斷輸出模塊OUTPUT輸入輸出接口圖</p><p>  3.2.7時間及位置顯示模塊DISPLAY</p><p>  時間及位置

42、顯示模塊DISPLAY其功能為對外顯示每一移動過程所用時間。其輸入輸出接口如圖3.2.7所示,圖中的DS_TIME、DS_UNIT為輸出時間及時間單位。由于輸出為TTL標(biāo)準(zhǔn)電平,因此外部需要附加七段碼驅(qū)動芯片,本設(shè)計擬用74ALS244。</p><p>  圖3.2.7時間及位置顯示模塊DISPLAY</p><p>  第四章 主要VHDL源程序與仿真</p><p

43、>  4.1 VHDL主要源程序</p><p>  -- DVDWKXT.VHD</p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOGIC_ARITH.ALL;</p><p>  U

44、SE IEEE.STD_LOGIC_UNSIGNED.ALL; --定義一個實體</p><p>  ENTITY DVDWKXT IS</p><p>  PORT(CLKIN: IN STD_LOGIC; --外部時鐘輸入端</p><p>  OPEN_CLOSE,TILT: IN STD_LOGIC;</p>

45、<p>  DATA: IN STD_LOGIC_VECTOR(7 DOWNTO 0);--傳感器返回位置數(shù)據(jù)</p><p>  ADCABC00: OUT STD_LOGIC_VECTOR(2 DOWNTO 0); </p><p>  --選擇模擬轉(zhuǎn)換通道</p><p>  ADCCLK: OUT STD_LOGIC;</p><

46、;p>  EOC,READ,WRITE,OP: OUT STD_LOGIC; --ADC0809控制端</p><p>  MOTOR11_OUT,MOTOR12_OUT: OUT STD_LOGIC;--馬達(dá)TTL電平控制端</p><p>  MOTOR21_OUT,MOTOR22_OUT: OUT STD_LOGIC; --馬達(dá)TTL電平控制端</p>

47、<p>  DS_TIME,DS_UNIT: OUT STD_LOGIC_VECTOR(7 DOWNTO 0); --顯示時間</p><p>  ERROR00,GOOD00: OUT STD_LOGIC; --異常情況輸出端</p><p>  V_POS1,V_POS2,V_POS3: OUT STD_LOGIC;--水平位置信號</p><

48、p>  H_POS1,H_POS2,H_POS3: OUT STD_LOGIC);--翻轉(zhuǎn)角度信號</p><p>  END ENTITY DVDWKXT;</p><p>  ARCHITECTURE ART OF DVDWKXT IS</p><p>  SIGNAL COUNT: STD_LOGIC_VECTOR(16 DOWNTO 0);--分

49、頻</p><p>  SIGNAL TIME00: STD_LOGIC_VECTOR(12 DOWNTO 0);--計數(shù)器</p><p>  SIGNAL V_POSTIONP2,H_POSTIONP2: STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p>  SIGNAL V_POSTIONP3,H_POSTIONP3: STD_LO

50、GIC_VECTOR(7 DOWNTO 0);</p><p>  SIGNAL V_POSTIONP4,H_POSTIONP4: STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p>  SIGNAL V_POSTIONP5,H_POSTIONP5: STD_LOGIC_VECTOR(7 DOWNTO 0); </p><p>  --上面四

51、個語句均為位置寄存器</p><p>  SIGNAL ADIVIDER,TIME_S: STD_LOGIC;</p><p>  SIGNAL MOTOR11P2,MOTOR12P2,MOTOR21P2,MOTOR22P2: STD_LOGIC;</p><p>  SIGNAL MOTOR11P5,MOTOR12P5,MOTOR21P5,MOTOR22P5: S

52、TD_LOGIC; </p><p>  SIGNAL MOTOR11P4,MOTOR12P4,MOTOR21P4,MOTOR22P4: STD_LOGIC;</p><p>  SIGNAL ERROR0,GOOD0: STD_LOGIC; -- 異常情況寄存器</p><p>  SIGNAL ADCABCP2,ADCABCP5:STD_LOGIC_VE

53、CTOR(2 DOWNTO 0); </p><p><b>  --通道選擇寄存器</b></p><p>  SIGNAL VPA,VPB,VPC,VPD: STD_LOGIC;--水平位置信號標(biāo)志</p><p>  SIGNAL HPE,HPF,HPG,HPH: STD_LOGIC; --角度位置標(biāo)志</p>&

54、lt;p>  SIGNAL VPAB,VPBC,VPCD: STD_LOGIC;</p><p>  SIGNAL HPEF,HPFG,HPGH: STD_LOGIC;</p><p>  SIGNAL TILT_BCD,TILT_FGH: STD_LOGIC; --TILT信號判斷標(biāo)志</p><p>  SIGNAL VC_VD,VD_VB,VB_VC

55、: STD_LOGIC;--位置常量標(biāo)志</p><p>  SIGNAL HF_HG,HG_HH,HH_HF: STD_LOGIC; --位置常量標(biāo)志</p><p>  CONSTANT VA: INTEGER :=20;</p><p>  CONSTANT VB: INTEGER :=180;</p><p>  CONSTAN

56、T VC: INTEGER :=210;</p><p>  CONSTANT VD: INTEGER :=240;</p><p>  CONSTANT HE: INTEGER :=20;</p><p>  CONSTANT HF: INTEGER :=180;</p><p>  CONSTANT HG: INTEGER :=210;&

57、lt;/p><p>  CONSTANT HH: INTEGER :=240;</p><p>  BEGIN --程序初始化</p><p>  EOC<=ADIVIDER;</p><p>  READ<=NOT(ADIVIDER);</p><p>  WRIT

58、E<=NOT(ADIVIDER);</p><p>  OP<=NOT(ADIVIDER);</p><p>  ADCCLK<=NOT(ADIVIDER);</p><p>  ERROR00<=ERROR0;</p><p>  GOOD00<=GOOD0; </p><p>  --

59、DIVIDER FREQUENCY 分頻子進(jìn)程</p><p>  P1:PROCESS(CLKIN) IS</p><p><b>  BEGIN</b></p><p>  IF(CLKIN'EVENT AND CLKIN='1')THEN</p><p>  COUNT<=COUNT+

60、1;</p><p><b>  END IF;</b></p><p>  IF(COUNT="11111111111111111")THEN</p><p>  ADIVIDER<='1';</p><p><b>  ELSE </b></p&

61、gt;<p>  ADIVIDER<='0';</p><p><b>  END IF;</b></p><p>  IF(TIME_S='1')THEN</p><p>  IF(ADIVIDER='1')THEN </p><p>  TIME00

62、<=TIME00+1;</p><p><b>  END IF;</b></p><p>  ELSIF(TIME_S='0')THEN --對計數(shù)器清零</p><p>  TIME00<="0000000000000";</p><p><b&

63、gt;  END IF;</b></p><p>  END PROCESS P1;</p><p>  --執(zhí)行OPEN_CLOSE操作</p><p>  P2:PROCESS(ADIVIDER,OPEN_CLOSE,ERROR0,TILT) IS</p><p>  VARIABLE V_POSTION2,H_POSTIO

64、N2:INTEGER RANGE 256 DOWNTO 1;</p><p><b>  BEGIN</b></p><p>  IF (OPEN_CLOSE='1' AND ERROR0='0' AND TILT_BCD='0' AND </p><p>  TILT_FGH='0

65、9; AND GOOD0='0')THEN --正常情況下出盒</p><p>  ADCABCP2<="000";</p><p>  V_POSTIONP2<=DATA ;</p><p>  V_POSTION2:=CONV_INTEGER(V_POSTIONP2);</p><p&g

66、t;  IF(V_POSTION2>=VA AND V_POSTION2<VB AND ADCABCP2="000") THEN</p><p>  MOTOR11P2<='1';</p><p><b>  END IF;</b></p><p>  IF(V_POSTION2>=V

67、B AND ADCABCP2="000")THEN</p><p>  MOTOR11P2<='0';</p><p>  ADCABCP2<="001";</p><p>  TIME_S<='0';</p><p>  H_POSTIONP2<

68、=DATA ;</p><p>  H_POSTION2:=CONV_INTEGER(H_POSTIONP2);--水平出盒完成</p><p><b>  END IF;</b></p><p>  IF(H_POSTION2>=HE AND H_POSTION2<HF AND ADCABCP2="001")

69、THEN</p><p>  MOTOR21P2<='1';--向上翻轉(zhuǎn)</p><p><b>  END IF;</b></p><p>  IF(H_POSTION2>=HF AND ADCABCP2="001")THEN</p><p>  MOTOR

70、21P2<='0';</p><p>  TIME_S<='0';</p><p>  GOOD0<='1';</p><p>  END IF; --出盒操作完成</p><p><b>  END IF;</b></p><p

71、>  IF(OPEN_CLOSE='0' AND ERROR0='0' AND TILT_BCD='0' AND</p><p>  TILT_FGH='0' AND GOOD0='1')THEN--回盒條件成立</p><p>  ADCABCP2<="001";&l

72、t;/p><p>  H_POSTIONP2<=DATA;</p><p>  H_POSTION2:=CONV_INTEGER(H_POSTIONP2);</p><p>  IF(H_POSTION2>HE AND H_POSTION2<=HH AND ADCABCP2="001")THEN</p><p&g

73、t;  MOTOR22P2<='1';</p><p><b>  END IF ;</b></p><p>  IF(H_POSTION2<=HE AND ADCABCP2="001")THEN --向下翻轉(zhuǎn)</p><p>  MOTOR22P2<='0';</

74、p><p>  TIME_S<='0';</p><p>  ADCABCP2<="000";</p><p>  V_POSTIONP2<=DATA;</p><p>  V_POSTION2:=CONV_INTEGER(V_POSTIONP2);</p><p>&

75、lt;b>  END IF;</b></p><p>  IF(V_POSTION2>VA AND V_POSTION2<=VD AND ADCABCP2="000")THEN</p><p>  MOTOR12P2<='1'; --水平回盒</p><p><b&g

76、t;  END IF;</b></p><p>  IF(V_POSTION2<=VA AND ADCABCP2="000")THEN</p><p>  MOTOR12P2<='0';</p><p>  TIME_S<='0';</p><p>  GOOD

77、0<='0';</p><p><b>  END IF ;</b></p><p><b>  END IF ;</b></p><p>  END PROCESS P2;</p><p><b>  --位置判斷子進(jìn)程</b></p>&

78、lt;p>  P3:PROCESS(ADIVIDER) IS</p><p>  VARIABLE V_POSTION3,H_POSTION3:INTEGER RANGE 256 DOWNTO 1;</p><p><b>  BEGIN</b></p><p>  IF(ADCABCP2="000" OR ADCAB

79、CP5="000")THEN</p><p>  V_POSTIONP3<=DATA;</p><p>  V_POSTION3:=CONV_INTEGER(V_POSTIONP3);</p><p>  IF(V_POSTION3<=VA)THEN --在盒內(nèi)狀態(tài)</p><p>  VPA

80、<='1'; VPB<='0'; VPC<='0'; VPD<='0'; </p><p>  VPAB<='0'; VPBC<='0'; VPCD<='0';</p><p>  ELSIF(V_POSTION3>

81、;VA AND V_POSTION3<VB)THEN --出盒中間位置</p><p>  VPA<='0'; VPB<='0'; VPC<='0'; VPD<='0'; </p><p>  VPAB<='1'; VPBC<='0';

82、 VPCD<='0';</p><p>  ELSIF(V_POSTION3=VB)THEN --水平位置B</p><p>  VPA<='0'; VPB<='1'; VPC<='0'; VPD<='0'; </p><p>

83、  VPAB<='0'; VPBC<='0'; VPCD<='0';</p><p>  ELSIF(V_POSTION3>VB AND V_POSTION3<VC)THEN --水平位置BC之間</p><p>  VPA<='0'; VPB<='0&#

84、39;; VPC<='0'; VPD<='0'; </p><p>  VPAB<='0'; VPBC<='1'; VPCD<='0';</p><p>  ELSIF(V_POSTION3=VC)THEN --水平位置C </p><

85、p>  VPA<='0'; VPB<='0'; VPC<='1'; VPD<='0';</p><p>  VPAB<='0'; VPBC<='0'; VPCD<='0';</p><p>  ELSIF(V_

86、POSTION3>VC AND V_POSTION3<VD)THEN --水平位置CD之間</p><p>  VPA<='0'; VPB<='0'; VPC<='0'; VPD<='0'; </p><p>  VPAB<='0'; VPBC&l

87、t;='0'; VPCD<='1';</p><p>  ELSIF(V_POSTION3>=VD)THEN --水平位置D</p><p>  VPA<='0'; VPB<='0'; VPC<='0'; VPD<='1'; <

88、/p><p>  VPAB<='0'; VPBC<='0'; VPCD<='0';</p><p><b>  END IF;</b></p><p><b>  END IF ;</b></p><p>  IF(ADCABCP

89、2="001" OR ADCABCP5="001")THEN</p><p>  H_POSTIONP3<=DATA ;</p><p>  H_POSTION3:=CONV_INTEGER(H_POSTIONP3);</p><p>  IF(H_POSTION3<=HE)THEN --翻轉(zhuǎn)位置E

90、</p><p>  HPE<='1'; HPF<='0'; HPG<='0'; HPH<='0';</p><p>  HPEF<='0'; HPFG<='0'; HPGH<='0';</p><p>

91、;  ELSIF(H_POSTION3>HE AND H_POSTION3<HF)THEN --角度位置E、F之間</p><p>  HPE<='0'; HPF<='0'; HPG<='0'; HPH<='0';</p><p>  HPEF<='1';

92、 HPFG<='0'; HPGH<='0';</p><p>  ELSIF(H_POSTION3=HF)THEN --角度位置F</p><p>  HPE<='0'; HPF<='1'; HPG<='0'; HPH<=&

93、#39;0';</p><p>  HPEF<='0'; HPFG<='0'; HPGH<='0';</p><p>  ELSIF(H_POSTION3>HF AND H_POSTION3<HG)THEN --角度位置F、H之間</p><p>  HPE<='

94、;0'; HPF<='0'; HPG<='0'; HPH<='0';</p><p>  HPEF<='0'; HPFG<='1'; HPGH<='0';</p><p>  ELSIF(H_POSTION3=HG)THEN --

95、角度位置H </p><p>  HPE<='0'; HPF<='0'; HPG<='1'; HPH<='0';</p><p>  HPEF<='0'; HPFG<='0'; HPGH<='0';</

96、p><p>  ELSIF(H_POSTION3>HG AND H_POSTION3<HH)THEN --角度位置G、H之間</p><p>  HPE<='0'; HPF<='0'; HPG<='0'; HPH<='0';</p><p>  HPEF<

97、;='0'; HPFG<='0'; HPGH<='1';</p><p>  ELSIF(H_POSTION3=HH)THEN --角度位置H</p><p>  HPE<='0'; HPF<='0'; HPG<='0'; HPH<=&

98、#39;1';</p><p>  HPEF<='0'; HPFG<='0'; HPGH<='0';</p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p>

99、  END PROCESS P3;</p><p><b>  --異常判斷子程序</b></p><p>  P4:PROCESS(ADIVIDER) IS</p><p>  VARIABLE V_POSTION4,H_POSTION4:INTEGER RANGE 256 DOWNTO 1;</p><p><

100、b>  BEGIN</b></p><p>  IF(ADCABCP2="000" OR ADCABCP5="000") THEN --水平位置</p><p>  V_POSTIONP4<=DATA ;</p><p>  V_POSTION4:=CONV_INTEGER(V_POSTIONP

101、4);</p><p>  IF((MOTOR11P2='1' OR MOTOR12P2='1' </p><p>  OR MOTOR11P5='1' OR MOTOR12P5='1')</p><p>  AND CONV_INTEGER(TIME00)>=4000 </p>&

102、lt;p>  AND (V_POSTION4>VA AND V_POSTION4<VB))THEN</p><p>  ERROR0<='1'; --出盒或進(jìn)盒過程中出錯</p><p>  MOTOR11P4<='0';</p><p>  MOTOR12P4<='0';</

103、p><p><b>  END IF;</b></p><p>  IF((MOTOR11P2='1' OR MOTOR12P2='1'</p><p>  OR MOTOR11P5='1' OR MOTOR12P5='1') </p><p>  AND CO

104、NV_INTEGER(TIME00)>=2666</p><p>  AND (VPB='0' AND VPC='0' AND VPD='0'))THEN</p><p>  ERROR0<='1'; --水平位置調(diào)節(jié)時出錯</p><p>  MOTOR11P4<=&

105、#39;0';</p><p>  MOTOR12P4<='0';</p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p>  IF(ADCABCP2="001" OR ADCABCP5

106、="001")THEN</p><p>  H_POSTIONP4<=DATA ;</p><p>  H_POSTION4:=CONV_INTEGER(H_POSTIONP4);</p><p>  IF(((MOTOR21P2='1' OR MOTOR22P2='1') </p><p

107、>  OR (MOTOR21P5='1' OR MOTOR22P5='1'))</p><p>  AND CONV_INTEGER(TIME00)>=4000 </p><p>  AND (H_POSTION4>HE AND H_POSTION4<HF))THEN </p><p>  ERROR0<

108、='1'; --大角度翻轉(zhuǎn)時出錯</p><p>  MOTOR21P4<='0';</p><p>  MOTOR22P4<='0';</p><p><b>  END IF;</b></p><p>  IF(((MOTOR21P2='

109、;1' AND MOTOR22P2='1' )OR </p><p>  (MOTOR21P5='1' OR MOTOR22P5='1')) AND</p><p>  ((CONV_INTEGER(TIME00)>=2666) AND</p><p>  (HPF='0' AND HPG

110、='0' AND HPH='0')))THEN </p><p>  ERROR0<='1'; --角度調(diào)節(jié)時出錯</p><p>  MOTOR21P4<='0';</p><p>  MOTOR22P4<='0';</p><p&g

111、t;<b>  END IF;</b></p><p><b>  END IF;</b></p><p>  IF(ERROR0='1' AND CONV_INTEGER(TIME00)>=4000)THEN</p><p>  ERROR0<='0';</p>

112、<p><b>  END IF;</b></p><p>  END PROCESS P4;</p><p>  --TILT操作執(zhí)行</p><p>  P5:PROCESS(ADIVIDER,TILT,OPEN_CLOSE) IS</p><p>  VARIABLE V_POSTION5,H_POSTI

113、ON5:INTEGER RANGE 256 DOWNTO 1;</p><p><b>  BEGIN</b></p><p>  IF(OPEN_CLOSE='1' AND GOOD0='1' AND ERROR0='0')THEN--是否正常</p><p>  IF(TILT='1

114、' AND CONV_INTEGER(TIME00)>=2666 )THEN --是否是位置調(diào)節(jié)</p><p>  ADCABCP5<="000";</p><p>  V_POSTIONP5<=DATA ;</p><p>  V_POSTION5:=CONV_INTEGER(V_POSTIONP5);</

115、p><p>  TILT_BCD<='1';</p><p>  ELSIF(TILT='1' AND CONV_INTEGER(TIME00)<2666)THEN --是否是角度調(diào)節(jié)</p><p>  ADCABCP5<="001";</p><p>  H_POSTI

116、ONP5<=DATA;</p><p>  H_POSTION5:=CONV_INTEGER(H_POSTIONP5);</p><p>  TILT_FGH<='1';</p><p><b>  END IF;</b></p><p>  IF(TILT='0')THEN&

117、lt;/p><p>  IF(ADCABCP5="000" AND TILT_BCD='1')THEN --判斷方向</p><p>  IF(VPC='1')THEN --從位置C到位置D</p><p>  VC_VD<='1';</p><p><b&

118、gt;  END IF;</b></p><p>  IF(VPD='1')THEN --從位置D到位置C</p><p>  VD_VB<='1';</p><p><b>  END IF;</b></p><p>  IF(VPB='1')TH

119、EN --從位置B到位置C</p><p>  VB_VC<='1';</p><p><b>  END IF;</b></p><p>  IF(VC_VD='1' AND V_POSTION5>=VC AND V_POSTION5<VD)THEN </p><p

120、>  MOTOR11P5<='1';</p><p>  ELSIF(VC_VD='1' AND V_POSTION5=VD)THEN --到達(dá)位置D</p><p>  MOTOR11P5<='0';</p><p>  TILT_BCD<='0';</p>

121、<p>  VC_VD<='0';</p><p><b>  END IF ;</b></p><p>  IF(VD_VB='1' AND V_POSTION5>VB AND V_POSTION5<=VD) THEN --POSTION D</p><p>  MOTOR12

122、P5<='1';</p><p>  ELSIF(VC_VD='1' AND V_POSTION5=VB)THEN --到達(dá)位置B</p><p>  MOTOR12P5<='0';</p><p>  TILT_BCD<='0';</p><p>  V

123、D_VB<='0';</p><p><b>  END IF ;</b></p><p>  IF(VB_VC='1' AND V_POSTION5>=VB AND V_POSTION5<VC) THEN </p><p>  --POSTION B</p><p> 

124、 MOTOR11P5<='1';</p><p>  ELSIF(VC_VD='1' AND V_POSTION5=VC)THEN --到達(dá)位置C </p><p>  MOTOR11P5<='0';</p><p>  TILT_BCD<='0';</p>

125、<p>  VC_VD<='0';</p><p><b>  END IF ;</b></p><p><b>  END IF;</b></p><p>  IF(ADCABCP5="001" AND TILT_FGH='1')THEN <

126、/p><p>  --DIFFERENT X TO Y</p><p>  IF(HPF='1')THEN </p><p>  HF_HG<='1';</p><p><b>  END IF;</b></p><p>  IF(HPG='1'

127、;)THEN</p><p>  HG_HH<='1';</p><p><b>  END IF;</b></p><p>  IF(HPH='1')THEN</p><p>  HH_HF<='1';</p><p><b>

128、;  END IF;</b></p><p>  IF(HF_HG='1' AND H_POSTION5>=HF AND H_POSTION5<HG) THEN --POSTION F</p><p>  MOTOR21P5<='1';</p><p>  ELSIF(HF_HG='1'

129、 AND H_POSTION5=HG)THEN --到達(dá)位置G</p><p>  MOTOR21P5<='0';</p><p>  TILT_FGH<='0';</p><p>  HF_HG<='0';</p><p><b>  END IF;</

130、b></p><p>  IF(HG_HH='1' AND H_POSTION5>=HG AND H_POSTION5<HH) THEN --POSTION G</p><p>  MOTOR21P5<='1';</p><p>  ELSIF(HG_HH='1' AND H_POSTION

131、5=HH)THEN --到達(dá)位置H</p><p>  MOTOR21P5<='0';</p><p>  TILT_FGH<='0';</p><p>  HG_HH<='0';</p><p><b>  END IF;</b></p>

132、;<p>  IF(HH_HF='1' AND H_POSTION5>HF AND H_POSTION5<HH) THEN</p><p>  --POSTION H</p><p>  MOTOR22P5<='1';</p><p>  ELSIF(HH_HF='1' AND H_PO

133、STION5=HF)THEN --到達(dá)位置F</p><p>  MOTOR22P5<='0';</p><p>  TILT_FGH<='0';</p><p>  HH_HF<='0';</p><p><b>  END IF;</b><

134、/p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p>  END PROCESS P5;</p><p>  --位置顯示輸出部分 </

135、p><p>  P6:PROCESS(ADIVIDER,VPB,VPC,VPD,HPF,HPG,HPH)</p><p><b>  BEGIN</b></p><p>  IF(VPB='1')THEN --位置B</p><p>  V_POS1<='1'; V_PO

136、S2<='0'; V_POS3<='0';</p><p><b>  END IF;</b></p><p>  IF(VPC='1')THEN --位置C</p><p>  V_POS1<='0'; V_POS2<='1'

137、;; V_POS3<='0';</p><p><b>  END IF;</b></p><p>  IF(VPD='1')THEN --位置D</p><p>  V_POS1<='0'; V_POS2<='0'; V_PO

138、S3<='1';</p><p><b>  END IF;</b></p><p>  IF(VPB='0' AND VPC='0' AND VPD='0')THEN --處于位置之間</p><p>  V_POS1<='0'; V_POS2&l

139、t;='0'; V_POS3<='0';</p><p><b>  END IF;</b></p><p>  IF(HPF='1')THEN --角度F</p><p>  H_POS1<='1'; H_POS2<='0' ; H

140、_POS3<='0';</p><p><b>  END IF;</b></p><p>  IF(HPG='1')THEN --角度G</p><p>  H_POS1<='0'; H_POS2<='1' ; H_POS3<='0&

141、#39;;</p><p><b>  END IF;</b></p><p>  IF(HPH='1')THEN --角度H</p><p>  H_POS1<='0'; H_POS2<='0' ; H_POS3<='1';</p&

142、gt;<p><b>  END IF;</b></p><p>  IF(HPF='0' AND HPG='0' AND HPH='0')THEN --角度位置之間</p><p>  H_POS1<='0'; H_POS2<='0&#

143、39; ; H_POS3<='0';</p><p><b>  END IF;</b></p><p>  CASE (CONV_INTEGER(TIME00)) IS</p><p>  WHEN 0000 => DS_TIME<="11000000"; --時間為0

144、s</p><p>  WHEN 0666 => DS_TIME<="11111001"; --時間為1 s</p><p>  WHEN 1332 => DS_TIME<="10100100"; --時間為2 s</p><p>  WHEN 2000 => D

145、S_TIME<="10110000"; --時間為3 s</p><p>  WHEN 2664 => DS_TIME<="10011001"; --時間為4 s</p><p>  WHEN 3330 => DS_TIME<="10010010"; --時間為5

溫馨提示

  • 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

提交評論