微機接口課程設計報告---利用步進電機模擬小車的運行_第1頁
已閱讀1頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  微機接口課程設計報告</p><p>  利用步進電機模擬小車的運行</p><p>  需求分析及實驗目的:</p><p>  此次實驗的需求分析如下:</p><p>  計算每次加電代碼輸入步進電機以后小車(步進電機)行進的距離(弧度,并按照一定的比例換算成長度)</p><p>  利用

2、8個開關(guān)設計8個檔位,其中一個倒檔,6個進檔,1個靜止檔,不同檔位設置不同的行進速度,其中出靜止檔外倒檔最低;</p><p>  在屏幕上顯示2個窗口,分別顯示小車當前的速度與行駛里程,其中行駛里程與程序運行的次數(shù)無關(guān);</p><p>  利用8個led顯示當前的檔位狀況,其中:</p><p>  倒檔時,某一個等閃爍</p><p>

3、  靜止檔是,全部等閃爍</p><p>  另外設計一種小車的自動行駛模式,在這種模式下,小車不通過開關(guān)控制檔位,而通過一個窗口的輸入小車行進模式 (請自行設計行進代碼),實現(xiàn)小車在不同檔位下運行的時間、次序。</p><p>  實驗要求同學能夠理解8255A的0工作方式下通過時序?qū)Σ竭M電機的工作流程的控制,同時將流水燈當作檔位的控制開關(guān),能夠更好的體現(xiàn)對接口芯片的控制過程,而自動方式

4、控制步進電機的運轉(zhuǎn),題目非常的開放,能夠充分的發(fā)揮同學們的想象空間,同學們可以通過不同的編碼形式來完成這個題目。</p><p><b>  設計</b></p><p>  2.0 8255A芯片簡介</p><p>  由于此次的設計涉及到8255A接口芯片的編程,因此在這里先對8255A的接口芯片做簡要的介紹:8255A是一個具有兩個8位

5、和兩個4位并行I/O端口的接口芯片,它為Intle系列的CPU與外部設備之間提供TTL電平兼容的接口,以及需要同時兩位以上信息傳送的一切形式的并行接口。在學校的實驗平臺上它的命令口的地址為0x0c803,PA,PB,PC口的端口地址分別為0x0c800,0x0c801,0x0c802。</p><p>  其引腳圖和內(nèi)部框圖分別如下:</p><p>  2.1流水燈的控制平臺的介紹:&l

6、t;/p><p>  在學校的實驗平臺上LED燈的端口地址是0x0c860,通過控制LED輸入電平的高低來控制LED燈的明與暗,而電平的高低是通過想端口寫的數(shù)據(jù)來體現(xiàn)的,例如向端口寫1就代表輸入的是高電平而0則代表的是低電平。因而要實現(xiàn)需求分析中的流水燈的各種功能,只需要控制各端口的電平的高低,也就是對端口寫數(shù)據(jù)的不同。燈的閃爍的實現(xiàn)就是在LED燈全明與全暗之間設置一個延遲,這樣觀察的效果就是閃爍,而從左至右和從右至

7、左的變化是通過將初始值(10h和01h)進行向左移位或者向右移位即可。</p><p><b>  圖3:實驗平臺簡介</b></p><p><b>  2.2設計思想:</b></p><p>  在以前的上機實驗中我們分別做過流水燈和步進電機的實驗,而且都成功的完成了這兩次實驗,因此此次課程設計算的上是對以前做的實驗

8、的一次綜合,而創(chuàng)新點就在于在自動控制方式下編碼與解碼的問題,因此在設計思想中,手動控制這一塊我將只做簡要介紹,詳細介紹的是在自動控制中所采用的方法。</p><p>  手動控制:因為時間和速度都是按照一定的比例來完成的,所以不同檔位的實現(xiàn)也就是LED燈的控制開關(guān)在不同狀態(tài)下時延遲時間不同的控制,同時在不同的延遲時間下給每個檔位指定一個速度,延遲長的速度小,延遲短的速度大,這樣便能實現(xiàn)對不同檔位的控制,而燈的閃爍

9、也只是在燈的明與暗之間加上一個延遲的時間便能完成,總體來說手動控制的大體思想較為簡單,而難點主要是在檔位切換的問題,開關(guān)的拔動和檔位的變換以及電機做出的反應這期間的時間差應該越小越好,因而在程序的書寫過程中我使用的Switch…Case…語句,電機每走一步就進行一次判斷,而不是用For循環(huán)來控制,這樣能將時間差縮短到很小的范圍內(nèi)。</p><p><b>  表1:相序表的設計</b><

10、;/p><p>  自動控制:檔位的切換和LED燈的明暗控制和手動控制肯定是沒有什么區(qū)別的,而自動控制的主要難點在于對控制序列的定義及解析,也就是將不同的檔位及在該檔位下行進的步數(shù)進行的定義。我的解決思路是用a b c d e f g h八個不同的字母來分別表示不同的檔位,同時用數(shù)字表示在該檔位下運行的步驟,在得知檔位和數(shù)字后,就只需要用循環(huán)來控制在當前檔位下的行進步數(shù)便能完成在自動控制下的工作??刂菩蛄械妮斎朐谖业?/p>

11、程序中并不是用常用的文本輸入(實驗后發(fā)現(xiàn)文本輸入更為簡單而不需要進行數(shù)字的轉(zhuǎn)換,這里走了彎路,但是還是按照最初自己的設計思路來說明的),我是從編輯框的控件進行輸入的,由于編輯框的數(shù)據(jù)相當與字符串的類型,因而并不能對數(shù)字進行識別(即在編輯框中輸入123,程序中只能分別識別數(shù)字1 2 3 而不是整數(shù)123 而文本輸入便能解決這個問題,這就是我說的彎路所在),同時在序列輸入完畢后我會對該序列進行遍歷,如果遇到不是a~h 或者不是0~9中的字符

12、便提示該序列是非法序列,否則用兩個數(shù)組對字母或者數(shù)字分別進行存儲,同時用計數(shù)器進行計數(shù)來判別字母或者數(shù)字是否相對應,一個字母應該相對應的對應一個數(shù)字,這樣才算完</p><p>  值得注意的是無論是自動測試還是手動測試,都要求用文件來保存小車行駛的里程,以便下次程序運行時開始重新調(diào)用,因此在程序中涉及到了讀、寫文件的操作,我的設計過程中,都是在電機沒運轉(zhuǎn)一步時便開始重新將里程寫入文件,而讀文件是在每次程序開始重

13、新運行時。</p><p>  2.3基于MFC的程序具體的設計步驟:</p><p><b>  主程序框圖如下:</b></p><p>  主程序的設計框圖如下:</p><p><b>  是</b></p><p><b>  否</b>&l

14、t;/p><p>  (2)詳細的設計步驟</p><p>  步驟1:創(chuàng)建基于對話框的MFC程序,同時將主對話框及作為程序的主登錄界面,給程序添加自動測試和手動測試的選擇按鈕,及進入測試的按鈕,如圖示:</p><p><b>  圖4:主程序界面</b></p><p>  步驟2:創(chuàng)建2個新的對話框分別作為手動測試和自

15、動測試的主界面,同時都給對話框分別添加速度和里程顯示的編輯框以及進入測試的按鈕,同時MFC的頭文件中還必須添加#include "conio.h"的頭文件,以便對實驗中的端口地址進行調(diào)用。界面設置如圖示:</p><p>  圖5:各測試程序界面</p><p>  步驟3:完成相應代碼部分的書寫</p><p><b>  調(diào)試分析&

16、lt;/b></p><p>  調(diào)試過程中在手動控制這塊基本沒有什么問題,問題主要是集中在自動測試的過程中,這也和每個人的程序書寫有關(guān),由于我的程序不是用的文本來進行控制序列的輸入,因此在進行字符的轉(zhuǎn)換這一塊經(jīng)常一些沒想到的情況出現(xiàn),但是通過不斷的調(diào)試和老師的驗收,最后還是圓滿的完成了此次課程設計。</p><p>  下面主要給出自動測試過程中一些非法的序列輸入:</p&g

17、t;<p>  圖六 :一些非法的輸入</p><p>  其中正確的輸入即為程序中定義的a~h八個檔位加數(shù)字(及在檔位行進的步數(shù))如下圖:</p><p>  圖七:正確的輸入序列</p><p>  4 .實驗結(jié)果及收獲</p><p>  本次實驗一共是四個人一組,因此在糾錯方面能夠較為迅速的發(fā)現(xiàn)問題同時解決問題,在第二次

18、實驗的時候我們組就已經(jīng)驗收了,這里也頗為自豪。實驗的過程印象較為深刻的是老師在檢查自動運轉(zhuǎn)這一塊,有幾次都是因為程序不夠嚴謹而犯了錯誤,因此在以后的程序書寫過程中應該更加認真的審視自己的程序。同時此次實驗也是對MFC綜合應用的一次鍛煉,在以后的學習中應該自己多給自己創(chuàng)造一些這樣的機會,鍛煉自己學習的綜合運用能力。 </p><p><b>  部分程序清單如下:</b></p&

19、gt;<p>  //不同狀態(tài)的定義 分別表示不同的檔位</p><p>  typedef enum{s0,s1,s2,s3,s4,s5,s6,s7,s8,s9}State;</p><p><b>  //手動測試部分</b></p><p>  void Speed::OnButtonStart() </p>

20、<p><b>  {</b></p><p>  // TODO: Add your control notification handler code here</p><p>  fp=fopen("data.txt","r");//打開保存里程的文檔</p><p>  if(!feof

21、(fp))</p><p><b>  {</b></p><p>  fscanf(fp,"%d",&m_length);</p><p><b>  }</b></p><p>  _outp(0x0c803,0x80);</p><p>&l

22、t;b>  while(1)</b></p><p>  {ReadDota();</p><p>  if(flag==1)</p><p><b>  {</b></p><p><b>  flag=0;</b></p><p>  fp=fopen

23、("data.txt","w");</p><p>  fprintf(fp,"%d",m_length);</p><p>  MessageBox("本次測試結(jié)束,請重新開始!");</p><p><b>  break;</b></p><

24、;p><b>  }</b></p><p>  switch(state)</p><p><b>  {</b></p><p>  case s0://測試開始開關(guān)</p><p><b>  flag=1;</b></p><p><

25、b>  break;</b></p><p>  case s1://靜止</p><p>  _outp(0x0c860,255);</p><p>  Sleep(300);</p><p>  _outp(0x0c860,0);</p><p>  Sleep(300);</p>

26、<p><b>  break;</b></p><p>  case s2://進檔1</p><p>  m_speed=60;</p><p>  m_length+=40;</p><p><b>  Right();</b></p><p>  _outp

27、(0x0c860,2);</p><p>  Sleep(300);</p><p>  _outp(0x0c860,0);</p><p>  Sleep(300);</p><p><b>  break;</b></p><p>  case s3://進檔2</p><

28、p>  m_speed=70;</p><p>  m_length+=40;</p><p><b>  Right();</b></p><p>  _outp(0x0c860,4);</p><p>  Sleep(300);</p><p>  _outp(0x0c860,0);&l

29、t;/p><p>  Sleep(300);</p><p><b>  break;</b></p><p>  case s4://進檔3</p><p>  m_speed=80;</p><p>  m_length+=40;</p><p><b>  Ri

30、ght();</b></p><p>  _outp(0x0c860,8);</p><p>  Sleep(300);</p><p>  _outp(0x0c860,0);</p><p>  Sleep(300);</p><p><b>  break;</b></p&g

31、t;<p>  case s5://進檔4</p><p>  m_speed=90;</p><p>  m_length+=40;</p><p><b>  Right();</b></p><p>  _outp(0x0c860,16);</p><p>  Sleep(30

32、0);</p><p>  _outp(0x0c860,0);</p><p>  Sleep(300);</p><p><b>  break;</b></p><p>  case s6://進檔5</p><p>  m_speed=100;</p><p>  m

33、_length+=40;</p><p><b>  Right();</b></p><p>  _outp(0x0c860,32);</p><p>  Sleep(300);</p><p>  _outp(0x0c860,0);</p><p>  Sleep(300);</p>

34、;<p><b>  break;</b></p><p>  case s7://進檔6</p><p>  m_speed=120;</p><p>  m_length+=40;</p><p><b>  Right();</b></p><p>  _

35、outp(0x0c860,64);</p><p>  Sleep(300);</p><p>  _outp(0x0c860,0);</p><p>  Sleep(300);</p><p><b>  break;</b></p><p>  case s8://倒檔</p>

36、<p>  m_speed=40;</p><p>  m_length+=40;</p><p><b>  Left();</b></p><p>  _outp(0x0c860,128);</p><p>  Sleep(300);</p><p>  _outp(0x0c860,

37、0);</p><p>  Sleep(300);</p><p><b>  break;</b></p><p>  case s9://換檔</p><p>  MessageBox("確定要換檔?");</p><p><b>  break;</b&g

38、t;</p><p><b>  default:</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }&

39、lt;/b></p><p>  //初始化及檔位的判斷</p><p>  int Speed::ReadDota()</p><p><b>  {</b></p><p><b>  int k;</b></p><p>  k=_inp(0x0c860);//讀

40、入LED的開關(guān)信息</p><p>  //根據(jù)開關(guān)的信息做出判斷當前檔位</p><p>  if(k==0)//</p><p>  else if(k==1)</p><p><b>  state=s1;</b></p><p>  else if(k==2)</p><

41、;p><b>  {</b></p><p><b>  state=s2;</b></p><p>  dalay=1000;</p><p><b>  }</b></p><p>  else if(k==4)</p><p><b&g

42、t;  {</b></p><p><b>  state=s3;</b></p><p>  dalay=800;</p><p><b>  }</b></p><p>  else if(k==8)</p><p><b>  {</b>

43、;</p><p><b>  state=s4;</b></p><p>  dalay=600;</p><p><b>  }</b></p><p>  else if(k==16)</p><p><b>  {</b></p>

44、<p><b>  state=s5;</b></p><p>  dalay=400;</p><p><b>  }</b></p><p>  else if(k==32)</p><p><b>  {</b></p><p><

45、b>  state=s6;</b></p><p>  dalay=200;</p><p><b>  }</b></p><p>  else if(k==64)</p><p><b>  {</b></p><p><b>  state=

46、s7;</b></p><p>  dalay=100;</p><p><b>  }</b></p><p>  else if(k==128)</p><p><b>  {</b></p><p><b>  state=s8;</b>

47、;</p><p>  dalay=1500;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  state=s9;</b></p><p>  UpdateData(0);</p&g

48、t;<p>  UpdateWindow();</p><p><b>  return 0;</b></p><p><b>  }</b></p><p><b>  //電機開始右轉(zhuǎn)</b></p><p>  int Speed::Right()</

49、p><p><b>  {</b></p><p>  _outp(0x0c801,a[ii]);</p><p>  ii++;//到下一相序</p><p><b>  if(ii==8)</b></p><p><b>  ii=0;</b></

50、p><p><b>  return 0;</b></p><p><b>  }</b></p><p><b>  //電機開始左轉(zhuǎn)</b></p><p>  int Speed::Left()</p><p><b>  {</b&g

51、t;</p><p>  _outp(0x0c801,a[jj]);</p><p>  jj--;//到下一相序</p><p>  if(jj==-1)</p><p><b>  jj=7;</b></p><p><b>  return 0;</b></p&g

52、t;<p><b>  }</b></p><p><b>  //自動測試部分</b></p><p>  /////////////////////////////////////////////////////////////////////////////</p><p>  // Length me

53、ssage handlers</p><p>  //對輸入的初始行進序列的判斷 判斷是否合法 如果合法則開始存儲 運行</p><p>  void Length::OnButton1() </p><p><b>  {</b></p><p>  // TODO: Add your control notifica

54、tion handler code here</p><p>  m_ceshi="";</p><p>  fp1=fopen("data.txt","r");//文件操作</p><p>  if(!feof(fp1))</p><p><b>  {</b>

55、;</p><p>  fscanf(fp1,"%d",&m_length);</p><p><b>  }</b></p><p>  char s[1000];</p><p><b>  int n;</b></p><p><b&g

56、t;  int i,j;</b></p><p>  char alp[200];</p><p>  int num[200],tmp=0;</p><p>  int count1=0,count2=0,countN=0;</p><p>  int flag=0;//表示是數(shù)字 1表示是字母</p><p

57、>  char z[10];</p><p>  UpdateData(1);</p><p>  n=m_ceshi.GetLength();</p><p>  itoa(n,z,10);</p><p>  MessageBox(z);</p><p>  s[0]=m_ceshi.GetAt(0);<

58、;/p><p>  if(!(s[0]>=97&&s[0]<=104))</p><p><b>  {</b></p><p>  MessageBox("非法序列monkey!");</p><p>  m_ceshi="";</p>&l

59、t;p><b>  nimei();</b></p><p><b>  return ;</b></p><p><b>  }</b></p><p>  //用于序列的判斷及存儲</p><p>  for(i=0;i<n;i++)</p>&l

60、t;p><b>  {</b></p><p>  s[i]=m_ceshi.GetAt(i);</p><p>  if(s[i]>=97&&s[i]<=104)</p><p><b>  {</b></p><p>  if(flag==1)</p>

61、;<p><b>  {</b></p><p>  MessageBox("非法序列biaoge !");</p><p>  m_ceshi="";</p><p><b>  nimei();</b></p><p><b>  

62、break;</b></p><p><b>  }</b></p><p>  if(countN!=0)</p><p><b>  {</b></p><p>  for(j=0;j<countN;j++)</p><p><b>  {&l

63、t;/b></p><p><b>  int jj;</b></p><p>  jj=countN-j-1;</p><p>  tmp+=PanDuan(jj)*((int)s[i-countN+j]-48);</p><p><b>  }</b></p><p&g

64、t;  num[count2++]=tmp;</p><p><b>  tmp=0;</b></p><p><b>  countN=0;</b></p><p><b>  }</b></p><p>  alp[count1++]=s[i];</p>&l

65、t;p><b>  flag=1;</b></p><p><b>  countN=0;</b></p><p><b>  }</b></p><p>  else if(s[i]>=48&&s[i]<=57)</p><p><b&

66、gt;  {</b></p><p><b>  countN++;</b></p><p><b>  flag=0;</b></p><p><b>  }</b></p><p><b>  else</b></p><

67、;p><b>  {</b></p><p>  MessageBox("非法序列meng ge2!");</p><p>  m_ceshi="";</p><p><b>  nimei();</b></p><p><b>  retur

68、n ;</b></p><p><b>  }</b></p><p>  if((i==(n-1))&&(flag==0)&&(s[i]>=48)&&(s[i]<=57))</p><p><b>  {</b></p><p&g

69、t;  for(j=0;j<countN;j++)</p><p><b>  {</b></p><p><b>  int jj;</b></p><p>  jj=countN-j-1;</p><p>  tmp+=PanDuan(jj)*((int)s[i-countN+j+1]-4

70、8);</p><p><b>  }</b></p><p>  //MessageBox("wo fu le ni ");</p><p>  num[count2++]=tmp;</p><p><b>  tmp=0;</b></p><p> 

71、 //countN=0;</p><p><b>  }</b></p><p>  /*if(s[i]==97)</p><p><b>  {</b></p><p><b>  flag=0;</b></p><p><b>  }*

72、/</b></p><p><b>  }</b></p><p><b>  //序列之間不匹配</b></p><p>  if(flag==1)</p><p><b>  {</b></p><p>  MessageBox(&quo

73、t;非法序列meng ge!");</p><p>  m_ceshi="";</p><p><b>  nimei();</b></p><p><b>  return ;</b></p><p><b>  }</b></p>

74、<p>  //itoa(count2,z,10);</p><p>  //MessageBox(z);</p><p>  /*for(i=0;i<count2;i++)</p><p><b>  {</b></p><p>  m_speed=num[i];</p><p&g

75、t;  Sleep(300);</p><p><b>  nimei();</b></p><p><b>  }</b></p><p>  for(i=0;i<count1;i++)</p><p><b>  {</b></p><p> 

76、 m_length=alp[i];</p><p>  Sleep(300);</p><p><b>  nimei();</b></p><p><b>  }</b></p><p><b>  */</b></p><p>  for(i=0;i

77、<count1;i++)</p><p><b>  {</b></p><p>  ReadDota(alp[i]);</p><p>  SoGa(num[i]);</p><p><b>  }</b></p><p>  UpdateData(1);</

78、p><p>  fp1=fopen("data.txt","w");</p><p>  fprintf(fp1,"%d",m_length);</p><p><b>  }</b></p><p><b>  //刷新窗口</b></

79、p><p>  int Length::nimei()</p><p><b>  {</b></p><p>  UpdateData(0);</p><p>  UpdateWindow();</p><p><b>  return 0;</b></p>&l

80、t;p><b>  }</b></p><p>  //主要用于在進行序列判斷時 序列當前位數(shù)的識別</p><p>  int Length::PanDuan(int &n)</p><p><b>  {</b></p><p>  switch (n)</p>&l

81、t;p><b>  {</b></p><p><b>  case 0:</b></p><p><b>  return 1;</b></p><p><b>  case 1:</b></p><p>  return 10;</p>

82、;<p><b>  case 2:</b></p><p>  return 100;</p><p><b>  case 3:</b></p><p>  return 1000;</p><p><b>  case 4:</b></p>&

83、lt;p>  return 10000;</p><p><b>  case 5:</b></p><p>  return 1000000;</p><p><b>  }</b></p><p><b>  return 0;</b></p><

84、p><b>  }</b></p><p>  //自動運行的主函數(shù)</p><p>  int Length::SoGa(int n)</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  

85、UpdateData(1);</p><p>  fp1=fopen("data.txt","r");</p><p>  if(!feof(fp1))</p><p><b>  {</b></p><p>  fscanf(fp1,"%d",&m_l

86、ength);</p><p><b>  }</b></p><p>  _outp(0x0c803,0x80);</p><p>  for(i=0;i<n;i++)</p><p><b>  {</b></p><p>  switch(state)</p

87、><p><b>  {</b></p><p>  case S1://靜止擋</p><p>  _outp(0x0c860,255);</p><p>  Sleep(300);</p><p>  _outp(0x0c860,0);</p><p>  Sleep(30

88、0);</p><p><b>  break;</b></p><p>  case S2://進檔1</p><p>  m_speed=60;</p><p>  m_length+=40;</p><p><b>  Right();</b></p>&

89、lt;p>  _outp(0x0c860,2);</p><p>  Sleep(300);</p><p>  _outp(0x0c860,0);</p><p>  Sleep(300);</p><p><b>  break;</b></p><p>  case S3://進檔2&

90、lt;/p><p>  m_speed=70;</p><p>  m_length+=40;</p><p><b>  Right();</b></p><p>  _outp(0x0c860,4);</p><p>  Sleep(300);</p><p>  _out

91、p(0x0c860,0);</p><p>  Sleep(300);</p><p><b>  break;</b></p><p>  case S4://進檔3</p><p>  m_speed=80;</p><p>  m_length+=40;</p><p&g

92、t;<b>  Right();</b></p><p>  _outp(0x0c860,8);</p><p>  Sleep(300);</p><p>  _outp(0x0c860,0);</p><p>  Sleep(300);</p><p><b>  break;<

93、;/b></p><p>  case S5://進檔4</p><p>  m_speed=90;</p><p>  m_length+=40;</p><p><b>  Right();</b></p><p>  _outp(0x0c860,16);</p><

94、p>  Sleep(300);</p><p>  _outp(0x0c860,0);</p><p>  Sleep(300);</p><p><b>  break;</b></p><p>  case S6://進檔5</p><p>  m_speed=100;</p>

95、;<p>  m_length+=40;</p><p><b>  Right();</b></p><p>  _outp(0x0c860,32);</p><p>  Sleep(300);</p><p>  _outp(0x0c860,0);</p><p>  Sleep

96、(300);</p><p><b>  break;</b></p><p>  case S7://進檔6</p><p>  m_speed=120;</p><p>  m_length+=40;</p><p><b>  Right();</b></p>

97、;<p>  _outp(0x0c860,64);</p><p>  Sleep(300);</p><p>  _outp(0x0c860,0);</p><p>  Sleep(300);</p><p><b>  break;</b></p><p>  case S8:/

98、/慢擋</p><p>  m_speed=40;</p><p>  m_length+=40;</p><p><b>  Left();</b></p><p>  _outp(0x0c860,128);</p><p>  Sleep(300);</p><p> 

99、 _outp(0x0c860,0);</p><p>  Sleep(300);</p><p><b>  break;</b></p><p>  //case s9:</p><p>  //MessageBox("確定要換檔?");</p><p><b>

100、  //break;</b></p><p><b>  default:</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  fp1=fopen("data.txt","

101、;w");</p><p>  fprintf(fp1,"%d",m_length);</p><p>  UpdateData(0);</p><p>  UpdateWindow();</p><p><b>  }</b></p><p>  //fp=fope

102、n("data.txt","w");</p><p>  //fprintf(fp,"%d",m_length);</p><p>  //MessageBox("本次測試結(jié)束,請重新開始!");</p><p><b>  return 0;</b></p&

103、gt;<p><b>  }</b></p><p>  //序列動能的識別 及當前序列進行翻譯 相當于手動中的初始化及檔位的識//別 及相當于解碼的功能 解讀當前字符的含義完成相應動作</p><p>  int Length::ReadDota(char s)</p><p><b>  {</b>&

104、lt;/p><p>  if(s=='a')//靜止檔</p><p><b>  state=S1;</b></p><p>  else if(s=='b')//進檔1</p><p><b>  {</b></p><p><b>

105、  state=S2;</b></p><p>  dalay1=1000;</p><p><b>  }</b></p><p>  else if(s=='c')//進檔2</p><p><b>  {</b></p><p><b&

106、gt;  state=S3;</b></p><p>  dalay1=800;</p><p><b>  }</b></p><p>  else if(s=='d')//進檔3</p><p><b>  {</b></p><p><

107、b>  state=S4;</b></p><p>  dalay1=600;</p><p><b>  }</b></p><p>  else if(s=='e')//進檔4</p><p><b>  {</b></p><p>&l

108、t;b>  state=S5;</b></p><p>  dalay1=400;</p><p><b>  }</b></p><p>  else if(s=='f')//進檔5</p><p><b>  {</b></p><p>

109、<b>  state=S6;</b></p><p>  dalay1=200;</p><p><b>  }</b></p><p>  else if(s=='g')//進檔6</p><p><b>  {</b></p><p&g

110、t;<b>  state=S7;</b></p><p>  dalay1=100;</p><p><b>  }</b></p><p>  else if(s=='h')//倒檔</p><p><b>  {</b></p><p&

111、gt;<b>  state=S8;</b></p><p>  dalay1=1500;</p><p><b>  }</b></p><p>  UpdateData(0);</p><p>  UpdateWindow();</p><p><b>  re

112、turn 0;</b></p><p><b>  }</b></p><p><b>  //電機右轉(zhuǎn)</b></p><p>  int Length::Right()</p><p><b>  {</b></p><p>  _out

113、p(0x0c801,a1[iii]);</p><p>  iii++;//到下一個相序</p><p>  if(iii==8)</p><p><b>  iii=0;</b></p><p><b>  return 0;</b></p><p><b>  

114、}</b></p><p><b>  //電機左轉(zhuǎn)</b></p><p>  int Length::Left()</p><p><b>  {</b></p><p>  _outp(0x0c801,a1[jjj]);</p><p>  jjj--;//

115、到下一個相序</p><p>  if(jjj==-1)</p><p><b>  jjj=7;</b></p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  //主程序 用于選擇</

116、p><p>  void CMonkeyDlg::OnButtonEnter() </p><p><b>  {</b></p><p>  // TODO: Add your control notification handler code here</p><p>  UpdateData(1);</p>

117、<p>  if(m_choose==0)//選擇手動測試程序</p><p><b>  {</b></p><p>  Speed dlg;</p><p>  dlg.DoModal();</p><p><b>  }</b></p><p>  els

118、e if(m_choose==1)//選擇自動測試程序</p><p><b>  {</b></p><p>  Length dlg;</p><p>  dlg.DoModal();</p><p><b>  }</b></p><p><b>  }&l

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論