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

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  北京印刷學(xué)院</b></p><p><b>  EDA課程設(shè)計(jì)報(bào)告</b></p><p>  課程題目:基于FPGA的洗衣機(jī)控制器的設(shè)計(jì)</p><p>  課程名稱:EDA技術(shù)課程設(shè)計(jì)</p><p>  院 (系):信息與機(jī)電工程學(xué)院</p>&l

2、t;p>  專 業(yè):電子信息工程</p><p>  姓 名:薛大神</p><p>  學(xué) 號(hào):098888888</p><p><b>  指導(dǎo)老師:xxx</b></p><p>  實(shí)習(xí)日期:2012年6月28日-6月30日</p><p><b>  

3、目錄</b></p><p>  1.系統(tǒng)設(shè)計(jì)······························

4、;························3</p><p>  1.1 設(shè)計(jì)要求·······&

5、#183;····································

6、;······3</p><p>  1.2 總體設(shè)計(jì)方案·························

7、;·····················3</p><p>  1.2.1 設(shè)計(jì)思路··········

8、;··································3</p>&l

9、t;p>  1.2.2 系統(tǒng)組成·································

10、83;··········3</p><p>  2. 單元硬件電路設(shè)計(jì)····················&#

11、183;·························4</p><p>  2.1 鍵盤模塊·····

12、3;····································&#

13、183;·······4</p><p>  2.2 顯示模塊·······················

14、3;··························4</p><p>  2.3 中心控制模塊····

15、3;····································&#

16、183;····4</p><p>  3. 軟件設(shè)計(jì)···························

17、;···························4</p><p>  3.1 控制模塊程序設(shè)計(jì)···

18、83;····································&

19、#183;·5</p><p>  3.2 顯示譯碼程序設(shè)計(jì)·····························

20、;·············5</p><p>  3.3 按鍵去抖程序設(shè)計(jì)·················

21、83;························5</p><p>  3.4 分頻模塊程序設(shè)計(jì)······&

22、#183;···································6<

23、/p><p>  4. 系統(tǒng)仿真測(cè)試································

24、··················6</p><p>  4.1 控制模塊仿真·············

25、·································6</p><p>

26、  4.2 按鍵去抖模塊仿真··································&#

27、183;·······7</p><p>  4.3 分頻模塊仿真·······················&#

28、183;······················7</p><p>  4.4 控制器操作演示········&

29、#183;···································8<

30、/p><p>  附錄一 使用說明································&

31、#183;·················9</p><p>  附錄二 電路原理圖·············&#

32、183;··································9</p>

33、<p>  附錄三 管腳分配圖·································&

34、#183;··············9</p><p>  附錄四 程序清單················

35、83;·································10</p><p

36、>  摘要:洗衣機(jī)控制電路由一片altera公司的cyclone2系列EP2C35F672C6的FPGA作為中心控制器加上必要的外圍電路組成,實(shí)現(xiàn)對(duì)洗衣機(jī)工作狀態(tài)的控制。芯片編程采用Quartus2作為開發(fā)工具,由控制模塊,分頻模塊,按鍵去抖模塊,顯示譯碼模塊組成,頂層使用原理圖實(shí)現(xiàn),底層由Verilog HDL語句實(shí)現(xiàn)。中心控制器FPGA根據(jù)控制鍵盤的信號(hào),向洗衣機(jī)發(fā)出正傳,反轉(zhuǎn),待機(jī)信號(hào),并通過數(shù)碼管和LED燈顯示當(dāng)前的狀態(tài)及

37、剩余時(shí)間。該洗衣機(jī)控制電路可以方便快捷的實(shí)現(xiàn)對(duì)洗衣機(jī)的控制和狀態(tài)的顯示功能。</p><p>  關(guān)鍵字:洗衣機(jī) FPGA Verilog HDL語言 cyclone2</p><p><b>  1.系統(tǒng)設(shè)計(jì)</b></p><p><b>  1.1設(shè)計(jì)要求</b></p><p>  1.

38、洗衣機(jī)的狀態(tài)為待機(jī)5s→正轉(zhuǎn)60s→待機(jī)5s→反轉(zhuǎn)60s→,并用3個(gè)LED燈和7段顯示器分別表示其工作狀態(tài)和顯示相應(yīng)工作狀態(tài)下的時(shí)間。</p><p>  2.可自行設(shè)定洗衣機(jī)的循環(huán)次數(shù),這里設(shè)置最大的循環(huán)次數(shù)為15次。</p><p>  3.具有緊急情況的處理功能。當(dāng)發(fā)生緊急情況時(shí),立即轉(zhuǎn)入待機(jī)狀態(tài),緊急情況解除后,繼續(xù)執(zhí)行后續(xù)步驟;</p><p>  4.洗

39、衣機(jī)設(shè)定循環(huán)次數(shù)遞減到零時(shí)立即報(bào)警,以表示洗衣機(jī)設(shè)定的循環(huán)次數(shù)已經(jīng)結(jié)束</p><p><b>  1.2總體設(shè)計(jì)方案</b></p><p><b>  1.2.1設(shè)計(jì)思路</b></p><p>  題目要求設(shè)計(jì)一個(gè)洗衣機(jī)控制電路,實(shí)現(xiàn)對(duì)洗衣機(jī)工作狀態(tài)的控制。設(shè)計(jì)分鍵盤模塊,顯示模塊,中心控制模塊,晶體振蕩模塊四部分。

40、中心控制器FPGA根據(jù)控制鍵盤的信號(hào),向洗衣機(jī)發(fā)出正傳,反轉(zhuǎn),待機(jī)信號(hào),并通過數(shù)碼管和LED燈顯示當(dāng)前的狀態(tài)及剩余時(shí)間。</p><p><b>  1.2.2系統(tǒng)組成</b></p><p>  洗衣機(jī)控制電路主要由鍵盤模塊,顯示模塊,時(shí)鐘分頻模塊,中心控制模塊三部分組成組成。</p><p>  圖1-1 系統(tǒng)結(jié)構(gòu)框圖</p>

41、<p>  2.單元硬件電路設(shè)計(jì)</p><p><b>  2.1鍵盤模塊</b></p><p>  設(shè)有2兩個(gè)按鍵rst,add;2個(gè)撥碼開關(guān)start和en緊急狀態(tài)開關(guān)。rst用于復(fù)位,當(dāng)按下reset的時(shí)候,控制器回復(fù)到初始狀態(tài)。,add用于初始狀態(tài)下設(shè)置循環(huán)次數(shù),start用于啟動(dòng)停止洗衣機(jī)。</p><p><b

42、>  2.2顯示模塊</b></p><p>  設(shè)有6個(gè)LED燈,3個(gè)數(shù)碼管。3個(gè)LED燈用來表示當(dāng)前狀態(tài), 2個(gè)LED表示電機(jī)轉(zhuǎn)動(dòng)方向,另一個(gè)LED燈表示緊急狀態(tài);2個(gè)數(shù)碼管用來表示當(dāng)前狀態(tài)所剩余時(shí)間,1個(gè)數(shù)碼管表示當(dāng)前剩余循環(huán)次數(shù)。</p><p>  但在實(shí)驗(yàn)箱中,數(shù)碼管已經(jīng)將顯碼譯碼過程包含在相應(yīng)的數(shù)碼管內(nèi),故不需要單獨(dú)對(duì)數(shù)碼管顯示進(jìn)行仿真。</p>

43、<p><b>  2.3中心控制模塊</b></p><p>  中心控制模塊是以一片altera公司的Cyclone2系列EP2C35F672C6的FPGA為主體,配合一些外圍電路實(shí)現(xiàn)的。Cyclone2 系列FPGA采用全銅層、低K值、1.2伏SRAM工藝設(shè)計(jì),裸片尺寸被盡可能最小的優(yōu)化。采用300毫米晶圓,以TSMC成功的90nm工藝技術(shù)為基礎(chǔ),Cyclone II 器

44、件提供了4,608到68,416個(gè)邏輯單元(LE),并具有一整套最佳的功能,包括嵌入式18比特x18比特乘法器、專用外部存儲(chǔ)器接口電路、4kbit嵌入式存儲(chǔ)器塊、鎖相環(huán)(PLL)和高速差分I/O能力。</p><p><b>  3.軟 件 設(shè) 計(jì)</b></p><p>  對(duì)可編程邏輯器件FPGA的編程采用Quartus2作為開發(fā)工具,頂層使用原理圖實(shí)現(xiàn),底層由V

45、erilog HDL語句實(shí)現(xiàn)。軟件設(shè)計(jì)由控制模塊,分頻模塊,按鍵去抖模塊,顯示譯碼模塊四部分組成,由于輸入時(shí)鐘為50Mhz,因此使用了分頻模塊輸出1hz的方波,給控制模塊提供每1s自減1的信號(hào),控制模塊輸出的倒計(jì)時(shí)輸入給數(shù)碼管顯示譯碼模塊,通過譯碼模塊定時(shí)器的值可以在數(shù)碼管上顯示,控制模塊由此1hz的方波信號(hào)可以控制洗衣機(jī)的正轉(zhuǎn)、反轉(zhuǎn)、待機(jī)和報(bào)警工作方式。按鍵消抖模塊的作用是為了消除按鍵抖動(dòng)而設(shè)立的。</p><p&

46、gt;  3.1控制模塊程序設(shè)計(jì)</p><p>  如圖3-1狀態(tài)轉(zhuǎn)換圖與圖3-2軟件流程圖所示,控制模塊采用有限狀態(tài)機(jī)實(shí)現(xiàn)對(duì)洗衣機(jī)工作狀態(tài)的控制。啟動(dòng)start后,控制器首先進(jìn)入待機(jī)s0狀態(tài),時(shí)間從5秒倒計(jì)時(shí),如果沒有到0秒則繼續(xù)等待,時(shí)間自減;當(dāng)t=0,進(jìn)入洗衣機(jī)正轉(zhuǎn)s1狀態(tài),時(shí)間從60秒倒計(jì)時(shí),如果沒有到0秒則繼續(xù)等待,時(shí)間自減;當(dāng)t=0,進(jìn)入洗衣機(jī)待機(jī)s2狀態(tài),同理等待5秒;當(dāng)t為零后,進(jìn)入s3洗衣機(jī)發(fā)

47、轉(zhuǎn)狀態(tài),時(shí)間從60秒倒計(jì)時(shí),如果沒有到0秒則繼續(xù)等待,時(shí)間自減;整個(gè)過程依次循環(huán)。緊急狀態(tài)emergency,當(dāng)按下緊急停止按鈕后,處于正反轉(zhuǎn)狀態(tài)中的電機(jī)停止轉(zhuǎn)動(dòng),同時(shí)緊急報(bào)警LED燈亮,因此緊急狀態(tài)不設(shè)定獨(dú)立狀態(tài)</p><p><b>  狀態(tài)轉(zhuǎn)換圖:</b></p><p>  S0: 待機(jī)狀態(tài) s1:正轉(zhuǎn)狀態(tài) s2:待機(jī)狀態(tài) s3:反轉(zhuǎn)狀態(tài)</

48、p><p><b>  圖3-1狀態(tài)轉(zhuǎn)換圖</b></p><p><b>  軟件流程圖:</b></p><p><b>  圖3-2軟件流程圖</b></p><p>  3.2顯示譯碼程序設(shè)計(jì)</p><p>  數(shù)碼管顯示譯碼模塊主要功能是把定時(shí)器

49、送來的值譯碼并通過數(shù)碼管顯示出來。fpga的Verilog HDL硬件語言是并行的這有別于軟件的描述語言掃描方式。但在實(shí)驗(yàn)箱中,數(shù)碼管已經(jīng)將顯碼譯碼過程包含在相應(yīng)的數(shù)碼管內(nèi),故不需要單獨(dú)對(duì)數(shù)碼管顯示進(jìn)行仿真。</p><p>  3.3按鍵去抖程序設(shè)計(jì)</p><p>  在進(jìn)行獨(dú)立按鍵或者矩陣式按鍵的設(shè)計(jì)的時(shí)候,我們?cè)诎聪骆I盤的時(shí)候其實(shí)并不只是按下去而是有一個(gè)抖動(dòng)的過程,就連松手的過程也

50、有抖動(dòng),然而這個(gè)抖動(dòng)通常被人們所忽略,從而導(dǎo)致輸入數(shù)據(jù)的錯(cuò)誤和亂碼,因此我們必須對(duì)按鍵進(jìn)行按鍵的消抖處理。fpga的Verilog HDL語言是硬件描述語言,主要運(yùn)用了狀態(tài)機(jī)和延時(shí)的消抖方式。</p><p>  3.4分頻模塊程序設(shè)計(jì)</p><p>  由于使用的FPGA的輸入時(shí)鐘是50Mhz,定時(shí)模塊的頻率是1hz,因此需要進(jìn)行兩次1000分頻和一次50分頻,從而得到1hz的時(shí)鐘頻率

51、輸入給定時(shí)模塊。</p><p><b>  4.系統(tǒng)仿真測(cè)試</b></p><p>  4.1 控制模塊仿真</p><p>  如圖4-1所示,rst置高電平,控制器復(fù)位,rst低電平后,add按下兩次,設(shè)置循環(huán)次數(shù)為2,按下start后置為高電平,洗衣機(jī)開始工作。</p><p>  圖4-1洗衣機(jī)正常運(yùn)行的仿真

52、圖</p><p>  如圖4-2所示,緊急狀態(tài)發(fā)生,en變?yōu)楦唠娖?,洗衣機(jī)暫停工作,電機(jī)停止運(yùn)轉(zhuǎn),緊急狀態(tài)結(jié)束后,恢復(fù)原狀態(tài)。</p><p>  圖4-2緊急暫停仿真圖</p><p>  如圖4-3所示,緊急暫停結(jié)束,en恢復(fù)低電平,再次開始工作,進(jìn)入下一循環(huán)。</p><p>  圖4-3緊急狀態(tài)結(jié)束,狀態(tài)恢復(fù)</p>

53、<p>  4.2 按鍵去抖模塊仿真</p><p>  如圖4-4所示,當(dāng)按鍵時(shí)間低于8個(gè)上升沿脈沖,則無效,當(dāng)按鍵時(shí)間大于等于8個(gè)上升沿,則按鍵有效</p><p>  圖4-4按鍵去抖仿真</p><p>  4.3 100分頻模塊仿真</p><p>  如圖4-5所示,為100分頻模塊仿真</p><p

54、>  圖4-5 100分頻模塊仿真</p><p>  4.4控制器操作演示圖</p><p>  圖4-6緊急暫停演示圖</p><p>  此時(shí),最右側(cè)的數(shù)碼管顯示剩余循環(huán)次數(shù)3次,左面兩個(gè)數(shù)碼管顯示本次電機(jī)正轉(zhuǎn)還剩27s,而左側(cè)第4個(gè)亮的LED燈表示當(dāng)前電機(jī)停止,也就是處于緊急狀態(tài)。狀態(tài)燈(右側(cè)第二個(gè)表示當(dāng)前緊急狀態(tài)停止)</p><

55、p>  圖4-6洗衣機(jī)反轉(zhuǎn)演示圖</p><p>  當(dāng)前顯示循環(huán)次數(shù)還有2次,電機(jī)正在反轉(zhuǎn),反轉(zhuǎn)時(shí)間還剩5秒,控制器處于反轉(zhuǎn)狀態(tài)(右側(cè)第三個(gè)LED綠燈)。</p><p><b>  附錄一 使用說明</b></p><p>  (1)電路上電后,先按下復(fù)位鍵rst復(fù)位,在Start撥碼開關(guān)未閉合前可以由add按鍵開關(guān)設(shè)置總的工作循環(huán)次

56、數(shù),確定洗衣機(jī)控制器工作循環(huán)次數(shù)。</p><p>  (2)設(shè)定好允許工作時(shí)間后,閉合Start開關(guān),洗衣機(jī)控制器開始工作。</p><p> ?。?)可以看見指示待機(jī)LED燈亮5s,正轉(zhuǎn)LED燈亮60S,待機(jī)LED亮5s,反轉(zhuǎn)LED燈亮60s,如此反復(fù)直至工作允許時(shí)間為0。</p><p><b>  附錄二 電路原理圖</b></p

57、><p>  圖附錄2 電路原理圖</p><p><b>  附錄三 管腳分配圖</b></p><p>  圖附錄3 管腳分配圖</p><p><b>  附錄四 程序清單</b></p><p><b>  控制模塊程序</b></p>

58、<p>  module washer(clk,rst,en,start,add,fore,back,numa,numb,alarm,led,tim);</p><p>  input clk,rst,start,add,en; //en為緊急狀態(tài)信號(hào)</p><p>  output fore,back,alarm;</p><

59、;p>  output [3:0]numa,numb,tim; //numa為倒計(jì)時(shí)個(gè)位,numb為倒計(jì)時(shí)十位</p><p>  output [2:0]led;</p><p>  reg [2:0]led;</p><p>  reg [3:0]tim;</p><p>  reg [3:0]numa

60、,numb;</p><p>  reg fore,back,alarm;</p><p>  reg [3:0]count3;</p><p>  reg [3:0]state;</p><p><b>  wire A;</b></p><p>  parameter s0=4'b00

61、01,</p><p>  s1=4'b0010,</p><p>  s2=4'b0100,</p><p>  s3=4'b1000;</p><p>  always@(posedge add or posedge rst) //循環(huán)次數(shù)count設(shè)置</p><p><b>

62、;  begin</b></p><p><b>  if(rst)</b></p><p>  count3<=1'b0;</p><p><b>  else </b></p><p><b>  begin</b></p><

63、p>  if(start==0)</p><p><b>  begin</b></p><p>  if(count3<=14)</p><p>  count3<=count3+1'b1;</p><p><b>  else</b></p><p&

64、gt;  count3<=1'b0;</p><p><b>  end</b></p><p><b>  end </b></p><p><b>  end</b></p><p>  always@(posedge clk or posedge rst)

65、</p><p><b>  begin</b></p><p>  if(rst) //系統(tǒng)復(fù)位</p><p><b>  begin </b></p><p>  back<=1'b0; </p><p&g

66、t;  fore<=1'b0; </p><p>  numa<=4'b0000; </p><p>  numb<=4'b0000;</p><p>  state<=s0; </p><p>  led<=3'b001;</p><p>  alarm=

67、1'b0;</p><p><b>  end</b></p><p><b>  else</b></p><p><b>  begin</b></p><p>  if(!en && start) //start為1,e

68、n為0則正常工作</p><p><b>  begin</b></p><p>  alarm<=1'b0;</p><p>  if(tim) //循環(huán)次數(shù)tim>0,開始工作</p><p><b>  begin</b></p>&

69、lt;p>  case(state)</p><p><b>  s0:begin </b></p><p>  if(numb==0&&numa==0) //時(shí)間為0,狀態(tài)轉(zhuǎn)移</p><p><b>  begin </b></p><p>  state

70、<=s1;</p><p>  numa<=4'b0100;</p><p>  numb<=4'b0000;</p><p>  led<=3'b001;</p><p>  back<=1'b0;</p><p>  fore<=1'b0;

71、</p><p><b>  end</b></p><p><b>  else </b></p><p><b>  begin </b></p><p>  state<=s0;</p><p>  led<=3'b100; &

72、lt;/p><p>  back<=1'b1;</p><p>  fore<=1'b0;</p><p><b>  end </b></p><p><b>  end</b></p><p><b>  s1:begin </b

73、></p><p>  if(numb==0&&numa==0)</p><p><b>  begin </b></p><p>  state<=s2;</p><p>  numa<=4'b1001;</p><p>  numb<=4'

74、;b0101;</p><p>  back<=1'b0;</p><p>  fore<=1'b1;</p><p>  led<=3'b010;</p><p><b>  end</b></p><p><b>  else </b&

75、gt;</p><p>  begin state<=s1;</p><p>  led<=3'b001;</p><p>  back<=1'b0;</p><p>  fore<=1'b0;</p><p><b>  end </b></

76、p><p><b>  end</b></p><p><b>  s2:begin </b></p><p>  if(numb==0&&numa==0)</p><p><b>  begin </b></p><p>  state&l

77、t;=s3;</p><p>  numa<=4'b0100;</p><p>  numb<=4'b0000;</p><p>  back<=1'b0;</p><p>  fore<=1'b0;</p><p>  led<=3'b001;&l

78、t;/p><p><b>  end</b></p><p><b>  else </b></p><p><b>  begin </b></p><p>  state<=s2;</p><p>  back<=1'b0;</

79、p><p>  fore<=1'b1;</p><p>  led<=3'b010;</p><p><b>  end </b></p><p><b>  end</b></p><p><b>  s3:begin </b>

80、;</p><p>  if(numb==0&&numa==0)</p><p><b>  begin</b></p><p>  state<=s0;</p><p>  numa<=4'b1001;</p><p>  numb<=4'b01

81、01;</p><p>  led<=3'b100;</p><p>  back<=1'b1;</p><p>  fore<=1'b0;</p><p><b>  end</b></p><p><b>  else </b>&

82、lt;/p><p><b>  begin </b></p><p>  state<=s3;</p><p>  back<=1'b0;</p><p>  fore<=1'b0;</p><p>  led<=3'b001;</p>&

83、lt;p><b>  end </b></p><p><b>  end</b></p><p>  default:state<=s0; </p><p><b>  endcase</b></p><p>  if({numb,numa}>0)

84、 //倒計(jì)時(shí)控制部分</p><p><b>  begin</b></p><p>  if(numa==0) //numa為0,則numa賦值9,numb自減1 </p><p><b>  begin </b></p><p>  numa<=4'

85、;b1001;</p><p>  numb<=numb-1'b1;</p><p><b>  end</b></p><p><b>  else </b></p><p>  numa<=numa-1'b1;</p><p><b>

86、;  end</b></p><p>  if(numa==0 && numb==0 && state==s0 && !en && led==3'b100) begin //一次循環(huán)結(jié)束tim自減1</p><p>  tim<=tim

87、-1'b1;</p><p><b>  end</b></p><p><b>  end </b></p><p><b>  else </b></p><p><b>  begin </b></p><p> 

88、 back<=1'b0;</p><p>  fore<=1'b0;</p><p>  numa<=4'b0000; </p><p>  numb<=4'b0000;</p><p>  state<=s0;</p><p>  led<=3

89、9;b001;</p><p><b>  end</b></p><p><b>  end</b></p><p>  else if(en && start) //en為1,進(jìn)入緊急狀態(tài)</p><p><b>  begin </b>

90、;</p><p>  back<=1'b0;</p><p>  fore<=1'b0;</p><p>  alarm<=1'b1;</p><p><b>  end</b></p><p>  else /

91、/start為0,給循環(huán)次數(shù)tim賦值</p><p><b>  begin </b></p><p>  tim<=count3;</p><p>  numa<=4'b0000; </p><p>  numb<=4'b0000;</p><p>  ala

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論