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

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  數(shù) 電 課 程 設(shè) 計(jì) </p><p><b>  報(bào) 告</b></p><p>  課題:全自動(dòng)洗衣機(jī)</p><p>  報(bào)告人:XX </p><p>  學(xué)號(hào):XXXXXXX</p><p><b>  班級(jí):XXX </b&g

2、t;</p><p>  設(shè)計(jì)時(shí)間:XXXX-XXXX</p><p><b>  目 錄</b></p><p>  一、全自動(dòng)洗衣機(jī)的功能2</p><p><b>  1、功能說(shuō)明2</b></p><p><b>  2、狀態(tài)機(jī)狀態(tài)2</b&g

3、t;</p><p><b>  3、按鍵2</b></p><p><b>  二、程序清單2</b></p><p><b>  1、主控制程序2</b></p><p>  2、設(shè)置時(shí)間模塊8</p><p>  3、鍵盤轉(zhuǎn)按鍵10<

4、;/p><p>  4、LCD顯示模塊12</p><p>  5、LED模塊15</p><p>  6、蜂鳴器模塊16</p><p><b>  三、模擬演示17</b></p><p><b>  四、仿真波形17</b></p><p>

5、;<b>  五、原理圖18</b></p><p><b>  六、心得體會(huì)19</b></p><p>  全自動(dòng)洗衣機(jī)的功能:</p><p><b>  1、功能說(shuō)明:</b></p><p>  復(fù)位,設(shè)定洗滌時(shí)間,注水,開(kāi)始洗滌,放水,甩干,結(jié)束。</p&

6、gt;<p>  復(fù)位后,直接撥撥碼開(kāi)關(guān)3,即可跳過(guò)洗滌過(guò)程直接進(jìn)行甩干。</p><p>  故障模擬時(shí),能夠自動(dòng)結(jié)束運(yùn)行并鳴響提醒,直到故障信號(hào)結(jié)束。</p><p>  正常運(yùn)行流程結(jié)束時(shí),有1秒的鳴響。</p><p>  在洗滌過(guò)程中,實(shí)現(xiàn)正轉(zhuǎn)3秒,暫停1秒,反轉(zhuǎn)2秒的循環(huán)工作模擬。</p><p>  注:由于實(shí)際的

7、洗衣機(jī)中,放水結(jié)束和報(bào)警是由感應(yīng)設(shè)備感應(yīng)的,在設(shè)計(jì)中,我們用撥碼開(kāi)關(guān)開(kāi)關(guān)代替。</p><p><b>  2、狀態(tài)機(jī)狀態(tài):</b></p><p>  S0:初始化 S1:等待 S2:時(shí)間設(shè)定 S3:注水 </p><p>  S4:洗滌 S5:放水

8、 S6:甩干 S7:結(jié)束 </p><p>  S8:報(bào)警 S9:空狀態(tài) S10:時(shí)間設(shè)定的延時(shí)</p><p><b>  3、按鍵:</b></p><p><b>  撥碼開(kāi)關(guān):</b></p><p>  1:

9、復(fù)位(R)</p><p>  2:開(kāi)始 (START)</p><p>  3:開(kāi)始甩干(START_SG)</p><p>  4:時(shí)間設(shè)定 (SET-TIME)</p><p>  5:注水結(jié)束(IN_END)</p><p>  6:放水結(jié)束 (OUT_END)</p><p>

10、;<b>  7:無(wú)</b></p><p><b>  8:故障(GZ)</b></p><p><b>  鍵盤:</b></p><p>  1:SL+1 2:SH+1</p><p>  3:ML+1 C

11、:MH+1 </p><p><b>  二、程序清單</b></p><p><b>  1、主控制程序:</b></p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p> 

12、 USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  USE IEEE.STD_LOGIC_ARITH.ALL;</p><p>  ENTITY CONTROLLER is</p><p>  PORT (CPIN,R,START,START_SHUAIGAN,SET_TIME,IN_END,OUT_END,GUZHANG:IN

13、STD_LOGIC;</p><p>  MH:IN STD_LOGIC_VECTOR(3 DOWNTO 0); --分十位</p><p>  ML:IN STD_LOGIC_VECTOR(3 DOWNTO 0); --分個(gè)位</p><p>  SH:IN STD_LOGIC_VECTOR(3 DOWNTO 0); --秒十位</p>

14、;<p>  SL:IN STD_LOGIC_VECTOR(3 DOWNTO 0); --秒個(gè)位</p><p>  MHQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); --分十位</p><p>  MLQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); --分個(gè)位</p><p>  S

15、HQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); --秒十位</p><p>  SLQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); --秒個(gè)位</p><p>  SPEAKER,ERROR_LIGHT,DONE :OUT STD_LOGIC;</p><p>  MODEL:OUT STD_LOGIC_

16、VECTOR(3 DOWNTO 0);</p><p>  MOTOR:OUT STD_LOGIC_VECTOR(1 DOWNTO 0)</p><p><b>  );</b></p><p>  END ENTITY ;</p><p>  ARCHITECTURE XYJ OF CONTROLLER IS</

17、p><p>  SIGNAL CPCT :INTEGER RANGE 0 TO 999999;</p><p>  SIGNAL CP,SPEAK:STD_LOGIC;</p><p>  SIGNAL ZT_N : INTEGER RANGE 0 TO 99;</p><p>  SIGNAL CNT: INTEGER RANGE 0 TO 9

18、9;</p><p>  SIGNAL TMP1,TMP2,SGTime,RING_Time,ZTime,TMPTime:STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p>  SIGNAL MODEL_S:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  TYPE STATES IS (S0,S1,S2,S3,

19、S4,S5,S6,S7,S8,S9);</p><p>  TYPE S4STATES IS (P0,P1,P2,P3);</p><p>  SIGNAL S : STATES;</p><p>  SIGNAL P : S4STATES;</p><p>  SIGNAL MHT:STD_LOGIC_VECTOR(3 DOWNTO 0);

20、</p><p>  SIGNAL MLT:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  SIGNAL SHT:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  SIGNAL SLT:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p><b> 

21、 BEGIN</b></p><p>  PROCESS(CPIN,R)</p><p><b>  BEGIN</b></p><p>  IF R='1' THEN</p><p>  CPCT<=249999;</p><p>  ELSIF CPIN=&#

22、39;1' AND CPIN 'EVENT THEN</p><p>  IF CPCT=0 THEN</p><p>  CPCT<=249999;CP<=NOT CP;</p><p><b>  ELSE</b></p><p>  CPCT<=CPCT-1;</p>

23、<p><b>  END IF;</b></p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p>  PROCESS(CP,R)</p><p><b>  BEGIN</b></p><

24、;p>  IF R='1' THEN</p><p>  S<=S0;TMP1<=X"1E";TMP2<=X"3C";SGTime<=X"28";RING_Time<=X"28";TMPTime<=X"08";</p><p>  E

25、RROR_LIGHT<='0';MODEL_S<="0000"; SPEAK<='0'; DONE<='0';</p><p><b>  CNT<=20;</b></p><p>  MHT <="0000";</p><p

26、>  MLT <="0000";</p><p>  SHT <="0000";</p><p>  SLT <="0000";</p><p>  ELSIF CP='1' AND CP 'EVENT THEN</p><p><

27、;b>  CASE S IS</b></p><p>  WHEN S0=> MODEL_S<="0000";S<=S1;TMP1<=X"1E";TMP2<=X"3C";ERROR_LIGHT<='0'; CNT<=20;</p><p>  SGTime

28、<=X"28";RING_Time<=X"28"; TMPTime<=X"08"; SPEAK<='0'; DONE<='0';</p><p>  MHT <="0011";</p><p>  MLT <="0011&quo

29、t;;</p><p>  SHT <="0000";</p><p>  SLT <="0000";</p><p>  WHEN S1=>MODEL_S<="0001";</p><p>  IF SET_TIME='1' THEN<

30、/p><p><b>  S<=S2;</b></p><p>  ELSIF START='1' THEN</p><p><b>  S<=S3;</b></p><p>  ELSIF START_SHUAIGAN='1' THEN</p>

31、<p><b>  S<=S6;</b></p><p>  MHT <="0000";</p><p>  MLT <="0000";</p><p>  SHT <="0000";</p><p>  SLT <=&

32、quot;0000";</p><p><b>  END IF;</b></p><p>  WHEN S2=>MODEL_S<="0010";</p><p>  IF GUZHANG='1' THEN</p><p><b>  S<=S8;

33、</b></p><p>  ELSIF START='1' THEN</p><p><b>  S<=S3;</b></p><p><b>  ELSE</b></p><p><b>  MHT<=MH;</b></p>

34、;<p><b>  MLT<=ML;</b></p><p><b>  SHT<=SH;</b></p><p><b>  SLT<=SL;</b></p><p>  END IF;------------------------------ ---------

35、--時(shí)間設(shè)定</p><p>  WHEN S3=> MODEL_S<="0011";</p><p>  IF GUZHANG='1' THEN</p><p><b>  S<=S8;</b></p><p><b>  ELSE</b>&l

36、t;/p><p>  IF IN_END='1' THEN</p><p><b>  S<=S4;</b></p><p><b>  END IF;</b></p><p>  END IF;-------------------------------------------

37、---注水</p><p>  WHEN S4=>MODEL_S<="0100";</p><p>  IF GUZHANG='1' THEN</p><p><b>  S<=S8;</b></p><p>  ELSIF MHT ="0000"

38、;AND MLT ="0000"AND SHT ="0000"AND SLT ="0000" THEN</p><p><b>  S<=S5;</b></p><p>  ELSIF SLT="0000" AND SHT="0000" AND MLT=&quo

39、t;0000" THEN</p><p>  IF CNT=0 THEN</p><p>  MLT<="1001";SHT<="0101"; SLT<="1001"; MHT<= MHT-1; CNT<=20;</p><p><b>  ELSE<

40、/b></p><p>  CNT<=CNT-1;</p><p><b>  END IF;</b></p><p>  ELSIF SLT="0000" AND SHT="0000" THEN</p><p>  IF CNT=0 THEN</p>&

41、lt;p>  SLT<="1001";SHT<="0101"; MLT<= MLT-1; CNT<=20;</p><p><b>  ELSE</b></p><p>  CNT<=CNT-1;</p><p><b>  END IF;</b&g

42、t;</p><p>  ELSIF SLT="0000" THEN</p><p>  IF CNT=0 THEN</p><p>  SLT<="1001"; SHT<=SHT-1; CNT<=20;</p><p><b>  ELSE</b></p&

43、gt;<p>  CNT<=CNT-1;</p><p><b>  END IF;</b></p><p><b>  ELSE</b></p><p>  IF CNT=0 THEN</p><p>  SLT<=SLT-1; CNT<=20;</p>

44、<p><b>  ELSE</b></p><p>  CNT<=CNT-1;</p><p><b>  END IF;</b></p><p>  END IF; ---------------------------------------------洗滌</p><p>

45、;  WHEN S5=> MODEL_S<="0101";</p><p>  IF GUZHANG='1' THEN</p><p><b>  S<=S8;</b></p><p><b>  ELSE</b></p><p>  IF OU

46、T_END='1' THEN</p><p><b>  S<=S6;</b></p><p><b>  END IF;</b></p><p>  END IF;----------------------------------------------放水</p><p>

47、;  WHEN S6=>MODEL_S<="0110";</p><p>  IF GUZHANG='1' THEN</p><p><b>  S<=S8;</b></p><p><b>  ELSE</b></p><p>  IF SGT

48、ime>X"00" THEN</p><p>  SGTime<=SGTime-1;</p><p><b>  ELSE</b></p><p>  SGTime<=X"28";</p><p><b>  S<=S7;</b><

49、;/p><p><b>  END IF;</b></p><p>  END IF;---------------------------------------------甩干</p><p>  WHEN S7=>MODEL_S<="0111";</p><p>  IF RING_Ti

50、me>X"00" THEN</p><p>  SPEAK<='1'; RING_Time<=RING_Time-1;DONE<='1';</p><p><b>  ELSE</b></p><p>  S<=S9; SPEAK<='0';

51、MODEL_S<="0000";</p><p>  END IF; -----------------------結(jié)束,蜂鳴器響兩秒,轉(zhuǎn)入狀態(tài)S9</p><p>  WHEN S8=> MODEL_S<="1000";</p><p>  IF GUZHANG='1' THEN</p

52、><p>  SPEAK<='1'; ERROR_LIGHT<='1'; --報(bào)警,蜂鳴器持續(xù)響</p><p><b>  ELSE</b></p><p>  S<=S9; SPEAK<='0';MODEL_S<="0000";--故障排除,轉(zhuǎn)入狀

53、態(tài)S9</p><p>  ERROR_LIGHT<='0';</p><p><b>  END IF;</b></p><p>  WHEN OTHERS=> NULL;</p><p><b>  END CASE;</b></p><p>

54、<b>  END IF;</b></p><p>  END PROCESS;</p><p>  PROCESS (MODEL_S)</p><p><b>  BEGIN</b></p><p>  MODEL<=MODEL_S;</p><p>  END PR

55、OCESS;</p><p>  PROCESS (SPEAK)</p><p><b>  BEGIN</b></p><p>  SPEAKER<=SPEAK;</p><p>  END PROCESS;</p><p>  PROCESS (CP,R,MHT,MLT,SHT,SLT)

56、</p><p><b>  BEGIN</b></p><p>  IF R='1' THEN</p><p>  P<=P0;ZTime<=X"14";MOTOR<="00";ZT_N<=03;</p><p>  ELSIF CP=&#

57、39;1' AND CP 'EVENT THEN</p><p>  IF S=S4 THEN</p><p><b>  CASE P IS</b></p><p>  WHEN P0=> P<=P1;ZTime<=X"14";MOTOR<="00";ZT_N&l

58、t;=03;</p><p>  WHEN P1=> MOTOR<="01";</p><p>  IF ZT_N>0 THEN</p><p>  IF ZTime>0 THEN</p><p>  ZTime<=ZTime-1;</p><p><b> 

59、 ELSE</b></p><p>  ZT_N<=ZT_N-1;</p><p>  ZTime<=X"14";</p><p><b>  END IF;</b></p><p><b>  ELSE</b></p><p> 

60、 P<=P2;ZTime<=X"14";ZT_N<=01;</p><p><b>  END IF;</b></p><p>  WHEN P2=> MOTOR<="10";</p><p>  IF ZT_N>0 THEN</p><p> 

61、 IF ZTime>0 THEN</p><p>  ZTime<=ZTime-1;</p><p><b>  ELSE</b></p><p>  ZT_N<=ZT_N-1;</p><p>  ZTime<=X"14";</p><p><b

62、>  END IF;</b></p><p><b>  ELSE</b></p><p>  P<=P3;ZTime<=X"14";ZT_N<=02;</p><p><b>  END IF;</b></p><p>  WHEN P3=&

63、gt; MOTOR<="11";</p><p>  IF ZT_N>0 THEN</p><p>  IF ZTime>0 THEN</p><p>  ZTime<=ZTime-1;</p><p><b>  ELSE</b></p><p>  

64、ZT_N<=ZT_N-1;</p><p>  ZTime<=X"14";</p><p><b>  END IF;</b></p><p><b>  ELSE</b></p><p>  P<=P1;ZTime<=X"14";ZT

65、_N<=03;</p><p><b>  END IF;</b></p><p>  WHEN OTHERS=> NULL;</p><p><b>  END CASE;</b></p><p><b>  ELSE</b></p><p&g

66、t;  MOTOR<="00";</p><p>  END IF;---------------執(zhí)行左轉(zhuǎn)3s,暫停1s,再右轉(zhuǎn)2s</p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p>  PROCESS(MHT,MLT,SHT,SL

67、T)</p><p><b>  BEGIN</b></p><p><b>  MHQ<=MHT;</b></p><p><b>  MLQ<=MLT;</b></p><p><b>  SHQ<=SHT;</b></p>

68、;<p><b>  SLQ<=SLT;</b></p><p>  END PROCESS;</p><p><b>  END XYJ;</b></p><p>  2、設(shè)置時(shí)間模塊 : </p><p>  LIBRARY IEEE;</p><

69、;p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  ENTITY decoder IS</p><p>  PORT( RESET:IN STD_LOGIC;</p><p>  START:IN STD_LOGIC

70、;</p><p>  SET_TIME:IN STD_LOGIC;</p><p>  KEY: IN STD_LOGIC_VECTOR(3 DOWNTO 0); --KEY[3..0] 分十 分個(gè) 秒十 秒個(gè)</p><p>  MH:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); --分十位</p><p> 

71、 ML:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); --分個(gè)位</p><p>  SH:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); --秒十位</p><p>  SL:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) --秒個(gè)位</p><p><b>  );</

72、b></p><p><b>  END;</b></p><p>  ARCHITECTURE m OF decoder IS</p><p>  SIGNAL MHT:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  SIGNAL MLT:STD_LOGIC_VECTOR(3 DO

73、WNTO 0);</p><p>  SIGNAL SHT:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  SIGNAL SLT:STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  SIGNAL EDIT:STD_LOGIC;</p><p><b>  BEGIN<

74、/b></p><p>  PROCESS(START,RESET) --電路可輸入狀態(tài)設(shè)置</p><p><b>  BEGIN</b></p><p>  IF RESET = '1' THEN</p><p>  EDIT <= '1';&

75、lt;/p><p>  ELSIF START'EVENT AND START = '1' THEN --如果start按下將edit置0</p><p>  EDIT <= '0';</p><p><b>  END IF;</b></p><p>  END PROCE

76、SS;</p><p>  PROCESS(RESET,KEY,EDIT) --手動(dòng)設(shè)置時(shí)間</p><p><b>  BEGIN</b></p><p>  IF RESET = '1' THEN</p><p>  MHT <="0000"

77、;;</p><p>  MLT <="0000";</p><p>  SHT <="0000";</p><p>  SLT <="0000";</p><p>  ELSIF EDIT='1'AND SET_TIME='1'

78、 THEN</p><p>  IF KEY(3)'EVENT AND KEY(3)='1' THEN --設(shè)置分的十位</p><p>  IF MHT = "0101" THEN</p><p>  MHT<= "0000";</p><p><b&g

79、t;  ELSE</b></p><p>  MHT<= MHT+ 1;</p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p>  IF KEY(2)'EVENT AND KEY(2) = '1

80、9; THEN --設(shè)置分的個(gè)位</p><p>  IF MLT = "1001" THEN</p><p>  MLT<= "0000";</p><p><b>  ELSE</b></p><p>  MLT <= MLT + 1;</p&g

81、t;<p><b>  END IF;</b></p><p><b>  END IF;</b></p><p>  IF KEY(1)'EVENT AND KEY(1) = '1' THEN --設(shè)置秒的十位</p><p>  IF SHT = "0101&

82、quot; THEN</p><p>  SHT <= "0000";</p><p><b>  ELSE</b></p><p>  SHT <=SHT + 1;</p><p><b>  END IF;</b></p><p><

83、b>  END IF;</b></p><p>  IF KEY(0)'EVENT AND KEY(0) = '1' THEN --設(shè)置秒的個(gè)位</p><p>  IF SLT = "1001" THEN</p><p>  SLT <= "0000";</

84、p><p><b>  ELSE</b></p><p>  SLT <= SLT + 1;</p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p><b>  END IF;

85、</b></p><p>  END PROCESS;</p><p>  PROCESS(MHT,MLT,SHT,SLT)</p><p><b>  BEGIN</b></p><p><b>  MH<=MHT;</b></p><p><b&g

86、t;  ML<=MLT;</b></p><p><b>  SH<=SHT;</b></p><p><b>  SL<=SLT;</b></p><p>  END PROCESS;</p><p><b>  end m;</b></p

87、><p><b>  3、鍵盤轉(zhuǎn)按鍵:</b></p><p>  --CPIN 時(shí)鐘脈沖輸入 按10MHz設(shè)計(jì) ;復(fù)位R</p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOG

88、IC_UNSIGNED.ALL;</p><p>  USE IEEE.STD_LOGIC_ARITH.ALL;</p><p>  entity PADTOKEY is</p><p><b>  port (</b></p><p>  CPIN,R,VALIDKEY :IN STD_LOGIC;</p>

89、<p>  KEY :IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  KEYOUT: OUT STD_LOGIC_VECTOR(15 DOWNTO 0);</p><p>  CLK_1MHZ,RST: OUT STD_LOGIC</p><p><b>  );</b></p>

90、<p>  end entity ;</p><p>  architecture JGT of PADTOKEY is</p><p>  SIGNAL CTCP: INTEGER RANGE 0 TO 5;</p><p>  SIGNAL CPO :STD_LOGIC;</p><p>  SIGNAL CTCPO :IN

91、TEGER RANGE 0 TO 4999;</p><p>  TYPE STATES IS (S0,S1,S2);</p><p>  SIGNAL S: STATES;</p><p><b>  begin</b></p><p>  PROCESS(CPIN)</p><p><b

92、>  BEGIN</b></p><p>  IF CPIN='1' AND CPIN 'EVENT THEN</p><p>  IF CTCP=5 THEN</p><p>  CPO <= NOT CPO; CTCP<=0;</p><p><b>  ELSE</b

93、></p><p>  CTCP<=CTCP+1;</p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p>  PROCESS(CPO,R)</p&

94、gt;<p><b>  BEGIN</b></p><p>  CLK_1MHZ<=CPO;</p><p>  IF R='1' THEN</p><p>  RST<='0';S<=S0;CTCPO<=0; KEYOUT<="00000000000000

95、00";</p><p>  ELSIF CPO='1' AND CPO 'EVENT THEN</p><p>  IF CTCPO /= 4999 THEN</p><p>  CTCPO<=CTCPO+1;</p><p><b>  ELSE</b></p>

96、<p><b>  CTCPO<=0;</b></p><p><b>  CASE S IS</b></p><p>  WHEN S0 =>RST<='0';</p><p>  IF VALIDKEY='1' THEN</p><p>

97、;<b>  S<=S1;</b></p><p>  CASE KEY IS</p><p>  WHEN "0000"=>KEYOUT<="0000000000000001";</p><p>  WHEN "0001"=>KEYOUT<="

98、0000000000000010";</p><p>  WHEN "0010"=>KEYOUT<="0000000000000100";</p><p>  WHEN "0011"=>KEYOUT<="0000000000001000";</p><p&g

99、t;  WHEN "0100"=>KEYOUT<="0000000000010000";</p><p>  WHEN "0101"=>KEYOUT<="0000000000100000";</p><p>  WHEN "0110"=>KEYOUT<=&

100、quot;0000000001000000";</p><p>  WHEN "0111"=>KEYOUT<="0000000010000000";</p><p>  WHEN "1000"=>KEYOUT<="0000000100000000";</p>&l

101、t;p>  WHEN "1001"=>KEYOUT<="0000001000000000";</p><p>  WHEN "1010"=>KEYOUT<="0000010000000000";</p><p>  WHEN "1011"=>KEYOUT&

102、lt;="0000100000000000";</p><p>  WHEN "1100"=>KEYOUT<="0001000000000000";</p><p>  WHEN "1101"=>KEYOUT<="0010000000000000";</p>

103、;<p>  WHEN "1110"=>KEYOUT<="0100000000000000";</p><p>  WHEN "1111"=>KEYOUT<="1000000000000000";</p><p>  WHEN OTHERS=>NULL;</p&

104、gt;<p><b>  END CASE;</b></p><p><b>  ELSE</b></p><p>  S<=S0;KEYOUT<="0000000000000000";</p><p><b>  END IF;</b></p>

105、;<p>  WHEN S1=>RST<='1';S<=S2;</p><p>  WHEN S2=>RST<='0';S<=S0;</p><p>  WHEN OTHERS=> NULL;</p><p><b>  END CASE;</b></

106、p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p>  end architecture JGT;</p><p>  4、LCD顯示模塊:</p><

107、;p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  entity LCD is</p><p>  port ( CPIN,RESET,BUSY:IN STD_LOGI

108、C;</p><p>  MH,ML,SH,SL:IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  MODL: IN STD_LOGIC_VECTOR(3 DOWNTO 0);</p><p>  CLK,RST,STROBE,OUTLINE : OUT STD_LOGIC;</p><p>  DATA

109、: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p>  ADDR : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)</p><p><b>  );</b></p><p>  end entity ;</p><p>  architecture JGT of L

110、CD is</p><p>  TYPE STATES IS (S0,S1,S2,S3,S4);</p><p>  SIGNAL S: STATES;</p><p>  SIGNAL LCDPT : INTEGER RANGE 0 TO 9;</p><p>  SIGNAL CPCT : INTEGER RANGE 0 TO 65535

111、;</p><p>  SIGNAL CP: STD_LOGIC;</p><p>  SIGNAL C1,C2,C3,C4: STD_LOGIC_VECTOR(7 DOWNTO 0);</p><p><b>  BEGIN</b></p><p>  PROCESS(CPIN,RESET) --分頻為

112、500US周期</p><p><b>  BEGIN</b></p><p>  CLK<=CPIN;</p><p>  IF RESET='1' THEN</p><p>  CPCT<=65535;</p><p>  ELSIF CPIN='1'

113、; AND CPIN 'EVENT THEN</p><p>  IF CPCT=0 THEN</p><p>  CPCT<=65535;CP<=NOT CP;</p><p><b>  ELSE</b></p><p>  CPCT<=CPCT-1;</p><p>

114、;<b>  END IF;</b></p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p>  --主進(jìn)程:擬采用500us時(shí)鐘,即在500us后完成狀態(tài)轉(zhuǎn)換,修改LCDPT指針</p><p>  --S0:初始狀態(tài),在R=1時(shí),處于S0

115、狀態(tài),LCDPT=0; 輸出RST=1, 轉(zhuǎn)S1</p><p>  --S1:輸出RST=0;判斷BUSY=0? : Y: LCDPT+1;LCDPT到固定最后?::N: ->S2</p><p>  -- ::Y: ->S3</p><p>  -- :N: NULL</p>

116、<p>  --S2:給出STROBE信號(hào)。轉(zhuǎn)S1</p><p>  --S1,S2完成初始化固定顯示的功能</p><p>  --S3~S4完成掃描顯示功能</p><p>  --S3:BUSY=0? :Y: LCDPT循環(huán)+1 ,轉(zhuǎn)S4</p><p>  --S4:給出STROBE信號(hào),轉(zhuǎn)S3</p>&l

117、t;p>  PROCESS(CP,RESET)</p><p><b>  BEGIN</b></p><p>  IF RESET='1' THEN</p><p>  S<=S0;LCDPT<=0;RST<='1';</p><p>  ELSIF CP=

118、9;1' AND CP 'EVENT THEN</p><p><b>  CASE S IS</b></p><p>  WHEN S0=> S<=S1;LCDPT<=0;RST<='1';</p><p>  WHEN S1=> RST<='0';STROB

119、E<='0';</p><p>  IF BUSY='0' THEN</p><p>  LCDPT<=LCDPT+1;</p><p>  IF LCDPT=2 THEN</p><p><b>  S<=S3;</b></p><p><

120、b>  ELSE</b></p><p><b>  S<=S2;</b></p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p>  WHEN S2=> S<=S1;STROB

121、E<='1';</p><p>  WHEN S3=> STROBE<='0';</p><p>  IF BUSY='0' THEN</p><p>  IF LCDPT=9 THEN</p><p><b>  LCDPT<=2;</b><

122、/p><p><b>  ELSE</b></p><p>  LCDPT<=LCDPT+1;</p><p><b>  END IF;</b></p><p><b>  S<=S4;</b></p><p><b>  END I

123、F;</b></p><p>  WHEN S4=> STROBE<='1';S<=S3;</p><p>  WHEN OTHERS=> NULL;</p><p><b>  END CASE;</b></p><p><b>  END IF;</

124、b></p><p>  END PROCESS;</p><p>  --選擇輸出進(jìn)程(LCDPT)</p><p>  -- LCDPT=0,NULL</p><p>  -- =1 顯示 :3AH,5</p><p>  -- =2,3,4,5</p><p>

125、  -- W 57H,9 A 41H,10 I 49H,11 T 54H,12,即顯示W(wǎng)AIT;</p><p>  -- G 47H,9 N 4EH,10 X 58H,11 Z 5AH,12,</p><p>  -- S 53H,9 Z 5AH,10 S 53H,

126、11 J 4AH,12</p><p>  -- Z 5AH,9 S 53H,10 . 2EH,11 . 2EH,12</p><p>  -- X 58H,9 D 44H,10 . 2EH,11 . 2EH,12</p><p>  -- F

127、46H,9 S 53H,10 . 2EH,11 . 2EH,12</p><p>  -- S 53H,9 G 47H,10 . 2EH,11 . 2EH,12</p><p>  -- R 52H,9 I 49H,10 N 4EH,11 G 47H,12</p><p>  

128、-- O 4FH,9 V 56H,10 E 45H,11 R 52H,12</p><p>  -- =6,7 MYH,3 MYL,4</p><p>  -- =8,9 SYH,6 SYL,7</p><p>  PROCESS(MODL)</p>

129、<p><b>  BEGIN</b></p><p>  CASE MODL IS</p><p>  WHEN "0000" => C1<="01010111";C2<="01000001";C3<="01001001";C4<="01

130、010100";</p><p>  WHEN "0001" => C1<="01000111";C2<="01001110";C3<="01011000";C4<="01011010";</p><p>  WHEN "0010"

131、 => C1<="01010011";C2<="01011010";C3<="01010011";C4<="01001010";</p><p>  WHEN "0011" => C1<="01011010";C2<="01010011&

132、quot;;C3<="00101110";C4<="00101110";</p><p>  WHEN "0100" => C1<="01011000";C2<="01000100";C3<="00101110";C4<="00101110&q

133、uot;;</p><p>  WHEN "0101" => C1<="01000110";C2<="01010011";C3<="00101110";C4<="00101110";</p><p>  WHEN "0110" => C

134、1<="01010011";C2<="01000111";C3<="00101110";C4<="00101110";</p><p>  WHEN "0111" => C1<="01010010";C2<="01001001";C3

135、<="01001110";C4<="01000111";</p><p>  WHEN "1000" => C1<="01001111";C2<="01010110";C3<="01000101";C4<="01010010";<

136、;/p><p>  WHEN OTHERS=> NULL;</p><p><b>  END CASE;</b></p><p>  END PROCESS;</p><p>  PROCESS(LCDPT,C1,C2,C3,C4)</p><p><b>  BEGIN</b

137、></p><p>  CASE LCDPT IS</p><p>  WHEN 0 => NULL;</p><p>  WHEN 1=> DATA<="00111010";ADDR<="0101";OUTLINE<='0';</p><p>  W

138、HEN 2=> DATA<=C1;ADDR<="1001";OUTLINE<='0';</p><p>  WHEN 3=> DATA<=C2;ADDR<="1010";OUTLINE<='0';</p><p>  WHEN 4=> DATA<=C3;ADD

139、R<="1011";OUTLINE<='0';</p><p>  WHEN 5=> DATA<=C4;ADDR<="1100";OUTLINE<='0';</p><p>  WHEN 6=>DATA<="0011"&MH;ADDR<=

140、"0011";OUTLINE<='0';</p><p>  WHEN 7=>DATA<="0011"&ML;ADDR<="0100";OUTLINE<='0';</p><p>  WHEN 8=>DATA<="0011"&am

141、p;SH;ADDR<="0110";OUTLINE<='0';</p><p>  WHEN 9=>DATA<="0011"&SL;ADDR<="0111";OUTLINE<='0';</p><p>  WHEN OTHERS=> NULL;<

142、;/p><p><b>  END CASE;</b></p><p>  END PROCESS;</p><p>  end architecture JGT;</p><p><b>  5、LED模塊:</b></p><p>  LIBRARY IEEE;</p&

143、gt;<p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  USE IEEE.STD_LOGIC_ARITH.ALL;</p><p>  ENTITY LED IS</p><p>  PORT (CPIN

144、,RESET:IN STD_LOGIC;</p><p>  MOTOR:IN STD_LOGIC_VECTOR(1 DOWNTO 0);</p><p>  LED1,LED2,LED3:OUT STD_LOGIC</p><p><b>  );</b></p><p>  END ENTITY ;</p>

145、;<p>  ARCHITECTURE X OF LED IS</p><p>  SIGNAL CT :INTEGER RANGE 0 TO 9999999;</p><p>  SIGNAL CTMAX:INTEGER;</p><p><b>  BEGIN</b></p><p>  PROCES

146、S(CPIN,RESET)</p><p><b>  BEGIN</b></p><p>  IF RESET='1' THEN</p><p>  LED1<='0';LED2<='0';LED3<='0';CT<=0;</p><p

147、>  ELSIF CPIN='1' AND CPIN 'EVENT THEN</p><p>  CASE MOTOR IS</p><p>  WHEN"00" =>LED1<='0';LED2<='0';LED3<='0';</p><p>

148、  WHEN"01"=> CTMAX<=500000;LED2<='0';LED3<='0';</p><p>  IF CT=CTMAX THEN</p><p>  LED1<='1';</p><p><b>  CT<=CT+1;</b&g

149、t;</p><p>  ELSIF CT=9999999 THEN</p><p>  LED1<='0'; CT<=0;</p><p><b>  ELSE</b></p><p><b>  CT<=CT+1;</b></p><p>

150、;<b>  END IF;</b></p><p>  WHEN"10"=>CTMAX<=5000000;LED1<='0';LED3<='0';</p><p>  IF CT=CTMAX THEN</p><p>  LED2<='1';&l

151、t;/p><p><b>  CT<=CT+1;</b></p><p>  ELSIF CT=9999999 THEN</p><p>  LED2<='0'; CT<=0;</p><p><b>  ELSE</b></p><p><

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論