2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩18頁(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>  微機(jī)接口課程設(shè)計(jì)報(bào)告</p><p>  利用步進(jìn)電機(jī)模擬小車的運(yùn)行</p><p>  需求分析及實(shí)驗(yàn)?zāi)康模?lt;/p><p>  此次實(shí)驗(yàn)的需求分析如下:</p><p>  計(jì)算每次加電代碼輸入步進(jìn)電機(jī)以后小車(步進(jìn)電機(jī))行進(jìn)的距離(弧度,并按照一定的比例換算成長(zhǎng)度)</p><p>  利用

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

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

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

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

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

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

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

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

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

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

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

13、新運(yùn)行時(shí)。</p><p>  2.3基于MFC的程序具體的設(shè)計(jì)步驟:</p><p><b>  主程序框圖如下:</b></p><p>  主程序的設(shè)計(jì)框圖如下:</p><p><b>  是</b></p><p><b>  否</b>&l

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

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

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

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

18、實(shí)驗(yàn)的時(shí)候我們組就已經(jīng)驗(yàn)收了,這里也頗為自豪。實(shí)驗(yàn)的過程印象較為深刻的是老師在檢查自動(dòng)運(yùn)轉(zhuǎn)這一塊,有幾次都是因?yàn)槌绦虿粔驀?yán)謹(jǐn)而犯了錯(cuò)誤,因此在以后的程序書寫過程中應(yīng)該更加認(rèn)真的審視自己的程序。同時(shí)此次實(shí)驗(yàn)也是對(duì)MFC綜合應(yīng)用的一次鍛煉,在以后的學(xué)習(xí)中應(yīng)該自己多給自己創(chuàng)造一些這樣的機(jī)會(huì),鍛煉自己學(xué)習(xí)的綜合運(yùn)用能力。 </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>  //手動(dòng)測(cè)試部分</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("本次測(cè)試結(jié)束,請(qǐng)重新開始!");</p><p><b>  break;</b></p><

24、;p><b>  }</b></p><p>  switch(state)</p><p><b>  {</b></p><p>  case s0://測(cè)試開始開關(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://進(jìn)檔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://進(jìn)檔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://進(jìn)檔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://進(jìn)檔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://進(jìn)檔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://進(jìn)檔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)的信息做出判斷當(dāng)前檔位</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>  //電機(jī)開始右轉(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>  //電機(jī)開始左轉(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>  //自動(dòng)測(cè)試部分</b></p><p>  /////////////////////////////////////////////////////////////////////////////</p><p>  // Length me

53、ssage handlers</p><p>  //對(duì)輸入的初始行進(jìn)序列的判斷 判斷是否合法 如果合法則開始存儲(chǔ) 運(yùn)行</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>  //用于序列的判斷及存儲(chǔ)</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>  //主要用于在進(jìn)行序列判斷時(shí) 序列當(dāng)前位數(shù)的識(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>  //自動(dòng)運(yùn)行的主函數(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://進(jìn)檔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://進(jìn)檔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://進(jìn)檔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://進(jìn)檔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://進(jìn)檔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://進(jìn)檔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("本次測(cè)試結(jié)束,請(qǐng)重新開始!");</p><p><b>  return 0;</b></p&

103、gt;<p><b>  }</b></p><p>  //序列動(dòng)能的識(shí)別 及當(dāng)前序列進(jìn)行翻譯 相當(dāng)于手動(dòng)中的初始化及檔位的識(shí)//別 及相當(dāng)于解碼的功能 解讀當(dāng)前字符的含義完成相應(yīng)動(dòng)作</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')//進(jìn)檔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')//進(jìn)檔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')//進(jìn)檔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')//進(jìn)檔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')//進(jìn)檔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')//進(jìn)檔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>  //電機(jī)右轉(zhuǎn)</b></p><p>  int Length::Right()</p><p><b>  {</b></p><p>  _out

113、p(0x0c801,a1[iii]);</p><p>  iii++;//到下一個(gè)相序</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>  //電機(jī)左轉(zhuǎn)</b></p><p>  int Length::Left()</p><p><b>  {</b></p><p>  _outp(0x0c801,a1[jjj]);</p><p>  jjj--;//

115、到下一個(gè)相序</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)//選擇手動(dòng)測(cè)試程序</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)//選擇自動(dòng)測(cè)試程序</p><p><b>  {</b></p><p>  Length dlg;</p><p>  dlg.DoModal();</p><p><b>  }</b></p><p><b>  }&l

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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)論