2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩7頁(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è) 計(jì) 報(bào) 告</p><p>  一、課程設(shè)計(jì)的性質(zhì)和目的</p><p>  通過(guò)課程設(shè)計(jì),進(jìn)行硬軟件設(shè)計(jì)的方法和技能訓(xùn)練,鞏固在課堂上學(xué)到的有關(guān)硬件電路設(shè)計(jì)和相應(yīng)程序設(shè)計(jì)的基本知識(shí)和基本方法,通過(guò)具體課題的訓(xùn)練,達(dá)到能獨(dú)立閱讀、查閱資料、軟硬件設(shè)計(jì)和調(diào)試完善特定功能的目的。</p><p><b>  二、課程設(shè)計(jì)的要求

2、</b></p><p>  1、遵循硬件設(shè)計(jì)模塊化。</p><p>  2、要求通過(guò)自制PCB板、或萬(wàn)能板、或面包板設(shè)計(jì)實(shí)物。</p><p>  3、程序設(shè)計(jì)結(jié)構(gòu)化。</p><p>  4、要求程序結(jié)構(gòu)合理,程序簡(jiǎn)明易懂,有必要的注釋。</p><p>  三、主要儀器設(shè)備及軟件</p>

3、<p>  PC機(jī)、Keil軟件、、ALTIUM DESINGERS09(PROTEL99)、 Proteus繪圖軟件及仿真等。</p><p>  四、課程設(shè)計(jì)題目及要求 </p><p>  見(jiàn)具體課題(有課題老師與選題學(xué)生共同商定)</p><p>  地點(diǎn): 信息工程學(xué)院實(shí)驗(yàn)室(有教師協(xié)調(diào)安排)</p><p&g

4、t;  元器件領(lǐng)用:由指導(dǎo)教師簽字在行政樓301領(lǐng)取</p><p>  時(shí)間安排: 每天集中半天的輔導(dǎo)(具體師生協(xié)商安排)</p><p>  五、課題分析及設(shè)計(jì)思路</p><p><b>  硬軟件設(shè)計(jì)思路</b></p><p>  基于單片機(jī)的步進(jìn)電機(jī)控制,可以通過(guò)四個(gè)按鍵分別實(shí)現(xiàn)開(kāi)始/停止,正傳/反轉(zhuǎn),全速

5、前進(jìn)和單步前進(jìn)。</p><p>  通過(guò)外部中斷來(lái)控制開(kāi)始/停止按鍵可實(shí)時(shí)響應(yīng)按鍵的輸入。由兩個(gè)LED分別指示程序的運(yùn)行狀態(tài),可以方便進(jìn)行操作。</p><p><b>  硬件設(shè)計(jì)框圖</b></p><p>  總體硬件電路圖如下所示:</p><p>  硬件設(shè)計(jì)電路圖(按模塊設(shè)計(jì))</p><

6、;p><b>  1.單片機(jī)最小系統(tǒng)</b></p><p>  AT89C51為8 位通用微處理器,主要管腳有:XTAL1(19 腳)和XTAL2(18 腳)為振蕩器輸入輸出端口,外接12MHz 晶振。RST/Vpd(9 腳)為復(fù)位輸入端口,外接電阻電容組成的復(fù)位電路。VCC(40 腳)和VSS(20 腳)為供電端口,分別接+5V電源的正負(fù)端。P0~P3 為可編程通用I/O 腳,其功

7、能用途由軟件定義。</p><p>  5l系列單片機(jī)提供以下功能:4 kB存儲(chǔ)器;256 BRAM;32條工/O線;2個(gè)16b定時(shí)/計(jì)數(shù)器;5個(gè)2級(jí)中斷源;1個(gè)全雙向的串行口以及時(shí)鐘電路。</p><p><b>  2.電機(jī)模塊</b></p><p>  步進(jìn)電機(jī)是將電脈沖信號(hào)轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開(kāi)環(huán)控制元步進(jìn)電機(jī)件

8、。在非超載的情況下,電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號(hào)的頻率和脈沖數(shù),而不受負(fù)載變化的影響,當(dāng)步進(jìn)驅(qū)動(dòng)器接收到一個(gè)脈沖信號(hào),它就驅(qū)動(dòng)步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動(dòng)一個(gè)固定的角度,稱(chēng)為“步距角”,它的旋轉(zhuǎn)是以固定的角度一步一步運(yùn)行的。制脈沖頻率來(lái)控制電機(jī)轉(zhuǎn)動(dòng)的速度和加速度,從而達(dá)到調(diào)速的目的。</p><p>  步進(jìn)電動(dòng)機(jī)的勵(lì)磁方式可分為全部勵(lì)磁及半步勵(lì)磁,其中全步勵(lì)磁又有1相勵(lì)磁及2相勵(lì)磁之分,而半步勵(lì)磁又稱(chēng)1—

9、2相勵(lì)磁。每輸出一個(gè)脈沖信號(hào),步進(jìn)電動(dòng)機(jī)只走一步。因此,依序不斷送出脈沖信號(hào),步進(jìn)電動(dòng)機(jī)即可連續(xù)轉(zhuǎn)動(dòng)。本設(shè)計(jì)選擇半步勵(lì)磁(1—2相勵(lì)磁): 1—2相勵(lì)磁法為1相與2相輪流交替導(dǎo)通。因分辨率提高,且運(yùn)轉(zhuǎn)平滑,每送一勵(lì)磁信號(hào)可走9度。若以1—2相勵(lì)磁法控制步進(jìn)電動(dòng)機(jī)正轉(zhuǎn),其勵(lì)磁順序如下所示(若勵(lì)磁信號(hào)反向傳送,則步進(jìn)電動(dòng)機(jī)反轉(zhuǎn)):勵(lì)磁順序:A—AB—B—BC—C— CD— D— DA</p>

10、;<p>  驅(qū)動(dòng)電路如下:其中:1B,2B,3B,4B分別與P10,P11.P12,P13相連接。</p><p><b>  步進(jìn)電機(jī)時(shí)序表:</b></p><p><b>  3.按鍵模塊</b></p><p>  通過(guò)四個(gè)按鍵分別實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)的不同功能的實(shí)現(xiàn),電路圖如下:</p>

11、<p>  開(kāi)始/停止和方向按鍵分別通過(guò)連接單片機(jī)的P3.3,P3.2,用外部中斷的方式對(duì)其處理,可快速準(zhǔn)確的相應(yīng)中斷,以實(shí)現(xiàn)對(duì)電機(jī)的控制。</p><p><b>  4.LED模塊</b></p><p>  通過(guò)兩個(gè)LED分別指示開(kāi)始/停止(D1),正/反轉(zhuǎn)(D2)。電路圖如下:</p><p><b>  軟件設(shè)計(jì)思

12、路</b></p><p><b>  軟件功能規(guī)劃</b></p><p>  軟件部分整體功能由開(kāi)始/停止鍵控制,只有當(dāng)開(kāi)始/停止鍵按下,LED1(D1)亮?xí)r,才能控制步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)。D1點(diǎn)亮后,由LED2(D2)的亮滅來(lái)指示電機(jī)的正反轉(zhuǎn),當(dāng)D2燈亮?xí)r,電機(jī)正轉(zhuǎn),D2滅時(shí),電機(jī)反轉(zhuǎn)。</p><p>  當(dāng)電機(jī)全速運(yùn)行時(shí),可通過(guò)

13、開(kāi)始/停止鍵和方向鍵控制電機(jī)停止轉(zhuǎn)動(dòng)。重新按下按鍵時(shí),電機(jī)正常運(yùn)行。</p><p><b>  軟件流程圖如下:</b></p><p>  六、程序主要代碼與分析(關(guān)鍵代碼要有注釋?zhuān)?lt;/p><p>  #include <reg51.h> //51芯片管腳定義頭文件</p><p>  #inc

14、lude <intrins.h> //內(nèi)部包含延時(shí)函數(shù) _nop_();</p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p>  uchar code FFW[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0

15、x09}; //正轉(zhuǎn)電機(jī)編碼</p><p>  uchar code REV[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; //反轉(zhuǎn)電機(jī)編碼</p><p>  sbit K1 = P3^0; //全速 </p><p>  sbit K2 = P3^1; //單步 </p&g

16、t;<p>  sbit K3 = P3^2; //正/反轉(zhuǎn) </p><p>  sbit K4 = P3^3; //開(kāi)始/停止 </p><p>  sbit led1 = P0^0; //指示燈,表示開(kāi)始/停止?fàn)顟B(tài)</p><p>  sbit led2 = P0^2; //指示燈,表示正

17、轉(zhuǎn)/反轉(zhuǎn)狀態(tài)</p><p>  int num=500; //延時(shí)函數(shù)的常量,控制步進(jìn)電機(jī)的轉(zhuǎn)速</p><p>  uchar h=0; //設(shè)置變量,控制單步運(yùn)行</p><p>  uchar flag = 0; //控制運(yùn)行狀態(tài),控制開(kāi)始/停止 </p><p>  uchar flag1 = 0;

18、 //控制運(yùn)行狀態(tài),控制正轉(zhuǎn)/反轉(zhuǎn)</p><p>  void motor_ffw(); //函數(shù)聲明</p><p>  void motor_rev(); </p><p>  void motor_ffw2();</p><p>  / /* 延時(shí)t毫秒,11.0592MHz時(shí)鐘,延時(shí)約1ms </p>

19、<p>  void delay(int t) </p><p>  { </p><p>  uint k; </p><p>  while(t--) </p><p><b>  { </b></p>

20、<p>  for(k=0; k<20; k++) </p><p><b>  {} </b></p><p><b>  } </b></p><p><b>  }</b></p><p>  / /*步進(jìn)電機(jī)正轉(zhuǎn)單步執(zhí)行 </p&

21、gt;<p>  void motor_single() </p><p><b>  { </b></p><p>  P1 = FFW[h]; //取數(shù)據(jù),單步轉(zhuǎn)45度 </p><p>  delay(num*2); //調(diào)節(jié)轉(zhuǎn)速 </p>

22、<p>  h++; //全局變量,控制單步的次數(shù)</p><p>  if(h == 8)</p><p><b>  {</b></p><p><b>  h = 0;</b></p><p><b>  } </b></p><p&g

23、t;<b>  }</b></p><p>  / /*步進(jìn)電機(jī)反轉(zhuǎn)單步執(zhí)行 </p><p>  void motor_single_cov() </p><p><b>  { </b></p><p>  P1 = REV[h]; //取數(shù)據(jù),單步轉(zhuǎn)45度

24、 </p><p>  delay(num*2); //調(diào)節(jié)轉(zhuǎn)速 </p><p><b>  h++; </b></p><p>  if(h == 8)//全局變量,控制單步的次數(shù)</p><p><b>  {</b></p><p&

25、gt;<b>  h = 0;</b></p><p><b>  } </b></p><p><b>  }</b></p><p>  / /*步進(jìn)電機(jī)正轉(zhuǎn) </p><p>  void motor_ffw()</p><p><b

26、>  { </b></p><p>  char i; </p><p>  for (i=0; ; i++) //一個(gè)周期轉(zhuǎn)45度 </p><p>  { </p><p>  P1 = FFW[i]; //取數(shù)據(jù) &l

27、t;/p><p>  if(K4 == 0 || K3 == 0) //若K1按下,則停止 </p><p><b>  {</b></p><p>  delay(5); //延時(shí)去抖動(dòng)</p><p><b>  break;</b></p><p>  }

28、 //退出此循環(huán)程序 </p><p>  delay(num); //調(diào)節(jié)轉(zhuǎn)速 </p><p><b>  if(i > 7)</b></p><p>  i = 0; </p><p><b>  } </b>&

29、lt;/p><p><b>  }</b></p><p>  / /*步進(jìn)電機(jī)反轉(zhuǎn) </p><p>  void motor_rev() </p><p><b>  { </b></p><p>  char i; </p>

30、<p>  for (i=0; ; i++) //一個(gè)周期轉(zhuǎn)45度 </p><p>  { </p><p>  P1 = REV[i]; //取數(shù)據(jù) </p><p>  if(K4 == 0 || K3 == 0) //若K1按下,則停止</p><p>

31、<b>  {</b></p><p>  delay(5);//延時(shí)去抖動(dòng)</p><p><b>  break;</b></p><p>  } //退出此循環(huán)程序 </p><p>  delay(num); //調(diào)節(jié)轉(zhuǎn)速

32、 </p><p><b>  if(i > 6)</b></p><p><b>  i = 0; </b></p><p><b>  } </b></p><p><b>  }</b></p><p>  //主

33、程序 </p><p>  void main(void) </p><p><b>  { </b></p><p>  EA=1; //開(kāi)放總中斷 </p><p>  EX0=1; //允許使用外中斷0 </p><p>  IT0=1; //選

34、擇負(fù)跳變來(lái)觸發(fā)外中斷 </p><p>  EX1=1; //允許使用外中斷1 </p><p>  IT1=1; //選擇負(fù)跳變來(lái)觸發(fā)外中斷 </p><p>  while(1) //掃描查詢按鍵狀態(tài)</p><p><b>  { </b></p><p>  i

35、f(K1 == 0 && flag1 == 0 && flag == 1) //K1是否被按下 </p><p><b>  { </b></p><p><b>  delay(5);</b></p><p>  while(!K1); </p><p&

36、gt;  motor_rev(); //flag1 =0,步進(jìn)電機(jī)反轉(zhuǎn) </p><p>  } </p><p>  if(K1 == 0 && flag1 == 1 && flag == 1) </p><p><b>  { </b></p><p>

37、;<b>  delay(5);</b></p><p>  while(!K1); </p><p>  motor_ffw(); //flag1 =1,步進(jìn)電機(jī)正轉(zhuǎn)</p><p><b>  } </b></p><p>  if(K2 == 0 && flag1

38、 == 0 && flag == 1) </p><p><b>  { </b></p><p><b>  delay(5);</b></p><p>  while(!K2); </p><p>  motor_single_cov(); //flag1

39、 =0,電機(jī)反轉(zhuǎn)單步執(zhí)行 </p><p><b>  } </b></p><p>  if(K2 == 0 && flag1 == 1 && flag == 1) </p><p><b>  { </b></p><p><b> 

40、 delay(5);</b></p><p>  while(!K2); </p><p>  motor_single(); //flag1 =1,電機(jī)正轉(zhuǎn)單步執(zhí)行 </p><p><b>  } </b></p><p>  else </p><

41、p>  P1 = 0xf0; </p><p><b>  } </b></p><p><b>  }</b></p><p>  /******************************************************/ </p><p> 

42、 void int0() interrupt 0 //外中斷0的中斷編號(hào)為0 </p><p><b>  { </b></p><p>  led2 = ~led2;//取反led2</p><p><b>  flag1++; </b></p><p>  if(flag1 == 2

43、) //flag1表示正反狀態(tài)</p><p><b>  {</b></p><p>  flag1 = 0; //flag1 = 0為反轉(zhuǎn)</p><p><b>  }</b></p><p><b>  } </b></p><p>  v

44、oid int1() interrupt 2 //外中斷0的中斷編號(hào)為1 </p><p><b>  { </b></p><p>  led1 = ~led1;//取反led1</p><p>  flag++;//flag值為1,表示開(kāi)始狀態(tài)</p><p>  if(flag == 2)//再次

45、按下,清flag = 0</p><p><b>  {</b></p><p>  flag = 0;//flag值為0,表示停止?fàn)顟B(tài)</p><p><b>  }</b></p><p><b>  } </b></p><p><b>

46、;  七、調(diào)試與分析</b></p><p>  驗(yàn)正結(jié)果截圖或?qū)嵨镎掌c分析</p><p>  1.驗(yàn)證結(jié)果截圖如下:</p><p><b>  2.分析:</b></p><p>  通過(guò)實(shí)際的按鍵檢測(cè)可以發(fā)現(xiàn)使用按鍵中斷的方法控制步進(jìn)電機(jī)的轉(zhuǎn)動(dòng),可以做到響應(yīng)速度快,結(jié)果準(zhǔn)確。相比較查詢方式更加的靈活

47、。而使用LED燈指示程序的運(yùn)行狀態(tài),則更加的直觀。</p><p><b>  參考文獻(xiàn)</b></p><p><b>  例說(shuō)51單片機(jī)</b></p><p><b>  九、心得體會(huì)</b></p><p>  通過(guò)本次課程設(shè)計(jì),使用單片機(jī)完成了對(duì)步進(jìn)電機(jī)的綜合控制,程

溫馨提示

  • 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)論