單片機(jī)課程設(shè)計(jì)--步進(jìn)電機(jī)控制器設(shè)計(jì)_第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>  單片機(jī)原理與接口技術(shù)</p><p>  課 程 設(shè) 計(jì)</p><p><b>  成績(jī)?cè)u(píng)定表</b></p><p>  設(shè)計(jì)課題 : 步進(jìn)電機(jī)控制器設(shè)計(jì) </p><p>  學(xué)院名稱 : 電氣工程學(xué)院 </p&g

2、t;<p>  專業(yè)班級(jí) : </p><p>  學(xué)生姓名 : </p><p>  學(xué) 號(hào) : </p><p>  指導(dǎo)教師 : </p><p>  設(shè)

3、計(jì)地點(diǎn) : 31-630 </p><p>  設(shè)計(jì)時(shí)間 : 2012-12-17~2012-12-23 </p><p>  單片機(jī)原理與接口技術(shù) 課程設(shè)計(jì)任務(wù)書</p><p><b>  目錄</b></p><p>  1 設(shè)計(jì)任務(wù)分

4、析 ……………………………………………………………… 2</p><p>  2 設(shè)計(jì)方案論證 ……………………………………………………………… 2</p><p>  2.1 控制方式確定 ………………………………………………………… 2</p><p>  2.2 步進(jìn)電機(jī)勵(lì)磁方式選擇 ……………………………………………… 2</p

5、><p>  2.3 驅(qū)動(dòng)電路的選擇 ……………………………………………………… 3</p><p>  2.4 顯示方案選擇 ………………………………………………………… 3</p><p>  3 硬件電路設(shè)計(jì) ………………………………………………………………… 3</p><p>  3.1 振蕩電路設(shè)計(jì)………………………………

6、…………………………… 3</p><p>  3.2 復(fù)位電路………………………………………………………………… 4</p><p>  3.3 鍵盤設(shè)計(jì)………………………………………………………………… 5</p><p>  3.4 顯示電路………………………………………………………………5 3.5 電機(jī)控制電路…………………………

7、………………………………… 5</p><p>  4 軟件設(shè)計(jì)………………………………………………………………………… 6</p><p>  4.1 程序流程圖……………………………………………………………… 6</p><p>  4.2 程序設(shè)計(jì)………………………………………………………………… 7</p><p>  

8、5 調(diào)試結(jié)果 ……………………………………………………………………… 11</p><p>  5.1 調(diào)試軟件環(huán)境簡(jiǎn)介…………………………………………………… 12</p><p>  5.2 操作控制……………………………………………………………… 12</p><p>  5.3 調(diào)試結(jié)果……………………………………………………………… 1

9、2</p><p>  6 心得體會(huì)……………………………………………………………………… 13</p><p>  參考文獻(xiàn) ……………………………………………………………………… 13</p><p>  附錄1:步進(jìn)電機(jī)控制系統(tǒng)原理圖 …………………………………………… 14</p><p>  附錄2:程序清單 …………

10、……………………………………………………… 15</p><p><b>  1 設(shè)計(jì)任務(wù)分析</b></p><p>  模擬步進(jìn)電機(jī)控制器就是利用單片機(jī)來(lái)控制步進(jìn)電機(jī)的轉(zhuǎn)動(dòng),通過(guò)不同的勵(lì)磁信號(hào),同時(shí)通過(guò)按鍵控制電機(jī)的啟停、正反轉(zhuǎn)及加速減速運(yùn)行,并顯示電機(jī)轉(zhuǎn)動(dòng)速度等。</p><p>  根據(jù)設(shè)計(jì)要求,步進(jìn)電機(jī)控制電路可以分為輸入模塊、控制模

11、塊、驅(qū)動(dòng)模塊、顯示模塊、步進(jìn)電機(jī)部分。步進(jìn)電機(jī)控制電路基本模塊方框圖如圖1.1所示。</p><p>  圖1.1 步進(jìn)電機(jī)控制電路基本模塊框圖</p><p><b>  2 設(shè)計(jì)方案論證</b></p><p>  2.1控制方式確定 </p><p>  本次設(shè)計(jì)以CPU選用89C5l作為步進(jìn)電機(jī)的控制芯片。8

12、9C51的結(jié)構(gòu)簡(jiǎn)單并可以在編程器上實(shí)現(xiàn)閃爍式的電擦寫達(dá)幾萬(wàn)次以上.使用方便等優(yōu)點(diǎn),而且完全兼容MCS5l系列單片機(jī)的所有功能。AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的低電壓、高性能CMOS8位微處理器,俗稱單片機(jī)。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,為很多嵌入

13、式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案</p><p>  2.2 步進(jìn)電機(jī)勵(lì)磁方式選擇 </p><p>  步進(jìn)電機(jī)目前流行的是四項(xiàng)混合型的,這類電機(jī)具有四相繞組,有八個(gè)獨(dú)立的引線終端。每送一個(gè)勵(lì)磁信號(hào),步進(jìn)電機(jī)旋轉(zhuǎn)一定角度?;旌闲蛣?lì)磁控制電機(jī)正轉(zhuǎn),對(duì)應(yīng)的勵(lì)磁順序如表2.1所示,若勵(lì)磁信號(hào)反向傳送,則步進(jìn)電機(jī)反轉(zhuǎn)。表2.1中的1和0表示給電機(jī)的高電平和低電平。</p>

14、<p>  表2.1 混合型勵(lì)磁順序表</p><p><b>  相關(guān)參數(shù)設(shè)定:</b></p><p>  這里采用四相六線步進(jìn)電機(jī),這款步進(jìn)電機(jī)的驅(qū)動(dòng)電壓5V,步進(jìn)角為 7.5度 . 一圈 360 度 , 需要 48 個(gè)脈沖完成。其相序A-AB-B-BC-C-CD-D-DA。所以其正轉(zhuǎn)控制脈沖為:01h,09h,08h,0ch,04h,06h,02

15、h,03h,00h;反轉(zhuǎn)控制脈:01h,03h,02h,06h,04h,0ch,08h,09h,00h。</p><p>  2.3 驅(qū)動(dòng)電路的選擇 </p><p>  驅(qū)動(dòng)電路可分為:三極管直接驅(qū)動(dòng),采用斬波恒流驅(qū)動(dòng)方式和芯片驅(qū)動(dòng)電路等。驅(qū)動(dòng)電路的性能直接關(guān)系到步進(jìn)電機(jī)走步的準(zhǔn)確與穩(wěn)定。本電路采用驅(qū)動(dòng)芯片ULN2003。ULN2003是一種大電流高電壓型器件,外電路簡(jiǎn)單,便于控制。&l

16、t;/p><p>  2.4 顯示方案選擇 </p><p>  常見的顯示器有數(shù)碼管顯示、液晶顯示等,本設(shè)計(jì)過(guò)程所需要的顯示過(guò)程簡(jiǎn)單,不需要復(fù)雜顯示,用兩位數(shù)碼管就能滿足設(shè)計(jì)要求。</p><p><b>  3 硬件電路設(shè)計(jì) </b></p><p>  3.1 振蕩電路設(shè)計(jì) </p><p> 

17、 XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過(guò)一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無(wú)任何要求,但必須保證脈沖的高低電平要求的寬度。</p><p>  振蕩電路采用內(nèi)部時(shí)鐘方式,在XTAL1 和XTAL2 兩端跨接晶體或陶瓷振蕩器,與內(nèi)部反相器構(gòu)成穩(wěn)定的自激振蕩。外接

18、晶振時(shí),C1和C2選擇100pF,C1和C2對(duì)頻率有微調(diào)作用,振蕩器采用12MHz的晶振,為了減少寄生電容,更好地保證振蕩器穩(wěn)定可靠地工作,振蕩器和電容應(yīng)盡可能安裝得與單片機(jī)芯片靠近。內(nèi)部時(shí)鐘振蕩電路如圖3.1所示。</p><p>  圖3.1 時(shí)鐘振蕩電路</p><p>  時(shí)鐘電路相關(guān)參數(shù):X1(PIN18)、X2(PIN19)。晶體頻率為:12MHz,輔助電容為:100pF。&l

19、t;/p><p><b>  3.2 復(fù)位電路 </b></p><p>  復(fù)位電路采用按鍵電平復(fù)位,按鍵電平復(fù)位相當(dāng)于按復(fù)位鍵后復(fù)位端通過(guò)電阻與Vcc電源接通。為保證復(fù)位可靠,復(fù)位高電平持續(xù)時(shí)間應(yīng)大于兩個(gè)機(jī)器周期。電容取100uF,電阻取100歐。復(fù)位電路原理圖如圖3.2所示。</p><p>  圖3.2 按鍵電平復(fù)位電路</p>

20、;<p>  復(fù)位電路接線:RES(PIN9)</p><p><b>  3.3 鍵盤設(shè)計(jì) </b></p><p>  該系統(tǒng)中只運(yùn)用到三個(gè)控制按鈕,即 “正反”,“換擋”,“啟?!?,由于按鈕較少,所以采用獨(dú)立鍵電路,這種按鍵電路的按鍵結(jié)構(gòu)相對(duì)行列式按鍵電路更簡(jiǎn)單,更使人易懂。鍵盤控制電路如圖3.3所示。</p><p>  

21、圖3.3 鍵盤控制電路</p><p>  相關(guān)參數(shù)說(shuō)明:k0為正反轉(zhuǎn)選擇鍵,k1為速度選擇鍵,k2為執(zhí)行鍵。</p><p>  3.4 顯示電路設(shè)計(jì) </p><p>  顯示電路采用LED數(shù)碼管動(dòng)態(tài)顯示數(shù)據(jù)與個(gè)項(xiàng)參數(shù),方法簡(jiǎn)單,容易控制,成本低。設(shè)計(jì)原理如圖3.3所示。</p><p>  圖3.3 顯示電路原理圖</p>

22、<p>  3.5 電機(jī)控制電路 </p><p>  步進(jìn)電機(jī)通過(guò)驅(qū)動(dòng)芯片ULN2003與單片機(jī)P1口的低四位相連,電機(jī)控制電路如圖3.4所示。</p><p>  圖3.4 電機(jī)控制電路</p><p><b>  4 軟件設(shè)計(jì) </b></p><p><b>  4.1 程序流程圖</

23、b></p><p>  圖4.1 程序流程圖</p><p><b>  4.2 程序設(shè)計(jì)</b></p><p>  根據(jù)要求,可以將程序分為以下2個(gè)部份:</p><p>  1、鍵盤輸入程序設(shè)計(jì)</p><p>  本系統(tǒng)使用的鍵盤較少,因此采用獨(dú)立式鍵盤接口設(shè)計(jì)。獨(dú)立式鍵盤適用于按

24、鍵數(shù)量較少的場(chǎng)合。獨(dú)立鍵盤工作原理:通過(guò)上拉電阻接到+5V上。無(wú)按鍵,處于高電平狀態(tài),有鍵按下電平為低。在消除抖動(dòng)影響上是可以采用了軟件消抖方法:在第一次檢測(cè)到有鍵按下時(shí),執(zhí)行一段延時(shí)子程序后(約5ms),再確認(rèn)電平是否仍保持閉合狀態(tài)電平,如果保持閉合狀態(tài)電平,則確認(rèn)真正有鍵按下,進(jìn)行相應(yīng)處理工作,消除了抖動(dòng)的影響。 </p><p>  2、 步進(jìn)電機(jī)運(yùn)行步數(shù)控制程序 </p><p>

25、  此方案采用單相和雙相交差通電處理方式。此方法具有運(yùn)行速度穩(wěn)定,運(yùn)行步數(shù)準(zhǔn)確無(wú)誤等優(yōu)點(diǎn)。</p><p>  根據(jù)流程圖4.1其主程序設(shè)計(jì)如下:</p><p>  void delay(uint xms);//延時(shí)子函數(shù)</p><p>  void keyscan();//鍵盤檢測(cè)子程序</p><p>  void displ

26、ay();</p><p>  sbit key1=P3^0;//正反轉(zhuǎn)選擇 </p><p>  sbit key2=P3^1;//速度選擇</p><p>  sbit key3=P3^2;//執(zhí)行鍵</p><p>  uchar zx,k,sudu,bu;</p><p>  int n=0,m=

27、4;</p><p>  uchar code table[]={</p><p>  0x3f,0x06,0x5b,0x4f,</p><p>  0x66,0x6d,0x7d,0x07,</p><p>  0x7f,0x6f,0x77,0x7c,</p><p>  0x39,0x5e,0x79,0x71,};/

28、/數(shù)碼管顯示編碼</p><p>  /* 單雙八拍工作方式: *</p><p>  * A-AB-B-BC-C-CD-D-DA (即一個(gè)脈沖,轉(zhuǎn) 3.75 度)* / </p><p>  uchar code FFZ[]={0x11,0x33,0x22,0x66,0x44,0xcc,

29、0x88,0x99}; //反轉(zhuǎn)</p><p>  uchar code FFW[]={0x99,0x88,0xcc,0x44,0x66,0x22,0x33,0x11}; //正轉(zhuǎn)</p><p>  /* 單四拍工作方式: *</p><p>  * A-B-C-D (即一個(gè)脈沖,轉(zhuǎn) 7.5 度

30、)* / </p><p>  uchar code shuangz[]={0x88,0x22,0x44,0x11};</p><p>  uchar code shuangw[]={0x11,0x44,0x22,0x88};</p><p>  /* 單四拍工作方式:

31、 *</p><p>  * A-B-C-D (即一個(gè)脈沖,轉(zhuǎn) 7.5 度)* /</p><p>  //uchar code danz[]={0x88,0x22,0x44,0x11};</p><p>  //uchar code danw[]={0x11,0x44,0x22,0x88};</p>

32、<p>  void main()</p><p><b>  {</b></p><p>  TMOD=0x01;</p><p><b>  EA=1;</b></p><p><b>  ET0=1;</b></p><p>  TH0=

33、-1000/256;</p><p>  TL0=-1000%256;</p><p><b>  TR0=1;</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  keyscan()

34、;</p><p>  display();</p><p>  //if(zx==1) qudong();</p><p>  //if(x==0) zx=0;</p><p><b>  }</b></p><p><b>  }</b></p><p

35、>  根據(jù)流程圖4.1其步進(jìn)電機(jī)轉(zhuǎn)動(dòng)程序設(shè)計(jì)如下:</p><p>  void keyscan()</p><p><b>  {</b></p><p>  if(key1==0)//正反轉(zhuǎn)選擇</p><p><b>  {</b></p><p><b&

36、gt;  delay(5);</b></p><p>  if(key1==0)</p><p><b>  {</b></p><p><b>  k++;</b></p><p>  if(k==2) k=0;</p><p>  while(!key1) d

37、isplay();</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(key2==0)//速度選擇</p><p><b>  {</b></p><p><b>  delay(

38、5);</b></p><p>  if(key2==0)</p><p><b>  {</b></p><p><b>  sudu++;</b></p><p>  if(sudu==2) sudu=0;</p><p>  while(!key2) dis

39、play();</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(key3==0)//執(zhí)行鍵</p><p><b>  {</b></p><p><b>  delay(5);

40、</b></p><p>  if(key3==0)</p><p><b>  {</b></p><p><b>  zx++;</b></p><p>  if(zx==2) zx=0;</p><p>  while(!key3) display();&l

41、t;/p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void time0() interrupt 1</p><p><b>  {</b><

42、;/p><p>  TH0=-1000/256;</p><p>  TL0=-1000%256;</p><p>  if (zx==1)</p><p><b>  {</b></p><p><b>  if (n>=m)</b></p><p&g

43、t;<b>  {</b></p><p>  if(k==0)//步進(jìn)電機(jī)正轉(zhuǎn)</p><p><b>  {</b></p><p>  if(sudu==0)//八拍</p><p><b>  {</b></p><p><b> 

44、 {</b></p><p>  for(bu=4;bu>0;bu--)</p><p><b>  {</b></p><p>  P1=FFZ[bu];</p><p><b>  delay(2);</b></p><p><b>  n=0

45、;</b></p><p>  display();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(sudu==1)//雙四拍</p&g

46、t;<p><b>  {</b></p><p>  for(bu=4;bu>0;bu--)</p><p><b>  {</b></p><p>  P1=shuangz[bu];//delay(2);</p><p><b>  n=0;</b>&l

47、t;/p><p>  display();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(k==1)//步進(jìn)電機(jī)反轉(zhuǎn)</p><p&g

48、t;<b>  {</b></p><p>  if(sudu==0)//八拍</p><p><b>  {</b></p><p>  for(bu=8;bu>0;bu--)</p><p><b>  {</b></p><p>  P1=F

49、FW[bu];</p><p><b>  delay(2);</b></p><p><b>  n=0;</b></p><p>  display();</p><p><b>  }</b></p><p><b>  }</b&

50、gt;</p><p>  if(sudu==1)//雙四拍</p><p><b>  {</b></p><p>  for(bu=4;bu>0;bu--)</p><p><b>  {</b></p><p>  P1=shuangw[bu];//delay(2

51、);</p><p><b>  n=0;</b></p><p>  display();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p>

52、<p><b>  }</b></p><p><b>  n++;</b></p><p><b>  }</b></p><p><b>  else n=0;</b></p><p><b>  }</b><

53、/p><p>  void delay(uint xms)</p><p><b>  {</b></p><p><b>  uint i,j;</b></p><p>  for(i=110;i>0;i--)</p><p>  for(j=xms;j>0;j--

54、);</p><p><b>  }</b></p><p>  void display() //顯示子函數(shù)</p><p><b>  {</b></p><p>  P0=table[k];//正反轉(zhuǎn)標(biāo)志位</p><p>  P2=0x01;//選

55、通第一位 0000 0001</p><p><b>  delay(3);</b></p><p>  P0=table[sudu];//速度標(biāo)志位</p><p>  P2=0x02;//選通第二位 0000 0010</p><p><b>  delay(3);</b></

56、p><p>  P0=table[zx];//開關(guān)標(biāo)志位</p><p>  P2=0x04;//選通第二位 0000 0100</p><p><b>  delay(3);</b></p><p><b>  P2=0x00;</b></p><p><b&g

57、t;  }</b></p><p><b>  5 調(diào)試結(jié)果 </b></p><p>  5.1 調(diào)試軟件環(huán)境簡(jiǎn)介 </p><p>  C系列51單片機(jī)程序常用編譯軟件是Keil軟件。</p><p>  Keil C51是美國(guó)Keil Software公司出品的51系列兼容單片機(jī)C語(yǔ)言軟件開發(fā)系統(tǒng),與匯

58、編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。Keil提供了包括C編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過(guò)一個(gè)集成開發(fā)環(huán)境(uVision)將這些部分組合在一起。</p><p>  本設(shè)計(jì)調(diào)試用的軟件是版本為V6.12的Keil軟件,可以在線調(diào)試編譯,非常方</p><p><b>  5.2 操作控制

59、</b></p><p>  本電路經(jīng)調(diào)試符合題目要求,各項(xiàng)技術(shù)指標(biāo)均達(dá)到設(shè)計(jì)的目的。具體操作控制方法如下:</p><p>  1、當(dāng)電機(jī)啟停按鈕時(shí),步進(jìn)電機(jī)根據(jù)制定默認(rèn)狀態(tài)開始轉(zhuǎn)動(dòng);</p><p>  2、當(dāng)電機(jī)再啟停按鈕時(shí),步進(jìn)電機(jī)停止轉(zhuǎn)動(dòng);</p><p>  3、當(dāng)電機(jī)換擋按鈕時(shí),步進(jìn)電機(jī)速度快速轉(zhuǎn)動(dòng);</p&g

60、t;<p>  4、當(dāng)電機(jī)再換擋按鈕時(shí),步進(jìn)電機(jī)速度緩慢轉(zhuǎn)動(dòng);</p><p>  5、當(dāng)電機(jī)正反按鈕時(shí),步進(jìn)電機(jī)反轉(zhuǎn);</p><p>  6、當(dāng)電機(jī)再正反按鈕時(shí),步進(jìn)電機(jī)正轉(zhuǎn);</p><p><b>  5.3 調(diào)試結(jié)果 </b></p><p>  調(diào)試結(jié)果如圖5.1所示</p>&l

61、t;p>  圖5.1 調(diào)試結(jié)果示意圖</p><p><b>  6 心得體會(huì) </b></p><p>  通過(guò)兩周的課程設(shè)計(jì),我受益很多。通過(guò)自己不斷的查詢資料和不斷的學(xué)習(xí),不斷的彌補(bǔ)自己的不足之處,其中不僅對(duì)單片機(jī),匯編語(yǔ)言有了比較深入的認(rèn)識(shí),而且通過(guò)自己的學(xué)習(xí)把C語(yǔ)言也運(yùn)用到其中。單片機(jī)是一種比較靈活和快速的控制器,具有快速和小巧的特點(diǎn),在一些要求實(shí)時(shí)性

62、比較高場(chǎng)所具有非常廣的應(yīng)用。這就為自己在這方面的發(fā)展指出了方向。同時(shí),在課程設(shè)計(jì)過(guò)程中,認(rèn)識(shí)到了自己的不足之處,在軟件設(shè)計(jì)方面的欠缺,自己要不斷的學(xué)習(xí),不斷的完善自己。課程設(shè)計(jì)只是一個(gè)小的方面,考慮到以后工作后要面對(duì)更加復(fù)雜的課題,這次課程設(shè)計(jì)無(wú)疑也是對(duì)自己的一種鞭策。</p><p>  這次課程設(shè)計(jì)是把自己學(xué)習(xí)到的知識(shí)應(yīng)用到實(shí)際當(dāng)中的范例。自己也感到一絲的欣慰和快樂。也感謝老師的悉心指導(dǎo)。</p>

63、<p><b>  參考文獻(xiàn) </b></p><p>  【1】:張迎新.單片微型計(jì)算機(jī)原理,應(yīng)用及接口技術(shù).北京:國(guó)防工 業(yè)出版社</p><p>  【2】:閻石.數(shù)字電子技術(shù)基礎(chǔ).北京:高等教育出版社。</p><p>  【3】: 王守中.51單片機(jī)開發(fā)入門與典型實(shí)例(第一版)。人民郵電出版社,2007</p&g

64、t;<p>  附錄1:步進(jìn)電機(jī)控制原理圖</p><p><b>  附錄2:程序清單</b></p><p>  步進(jìn)電機(jī)控制器程序:</p><p>  P0口控制段選 p1步進(jìn)電機(jī) P2控制位選</p><p>  獨(dú)立鍵盤 P3.0~P3.2</p><p>  數(shù)碼管的

65、第一位為正反轉(zhuǎn)標(biāo)志位0:正轉(zhuǎn) 1:反轉(zhuǎn)</p><p>  數(shù)碼管的第二位為速度標(biāo)志位 0:?jiǎn)伟伺?1:雙四拍</p><p>  數(shù)碼管的第三位為開關(guān)標(biāo)志位0:關(guān) 1:開</p><p>  #include<reg51.h></p><p>  #define uchar unsigned cha

66、r</p><p>  #define uint unsigned int</p><p>  void delay(uint xms);//延時(shí)子函數(shù)</p><p>  void keyscan();//鍵盤檢測(cè)子程序</p><p>  void display();</p><p>  sbit key

67、1=P3^0;//正反轉(zhuǎn)選擇 </p><p>  sbit key2=P3^1;//速度選擇</p><p>  sbit key3=P3^2;//執(zhí)行鍵</p><p>  uchar zx,k,sudu,bu;</p><p>  int n=0,m=4;</p><p>  uchar code

68、table[]={</p><p>  0x3f,0x06,0x5b,0x4f,</p><p>  0x66,0x6d,0x7d,0x07,</p><p>  0x7f,0x6f,0x77,0x7c,</p><p>  0x39,0x5e,0x79,0x71,};//數(shù)碼管顯示編碼</p><p>  /*

69、單雙八拍工作方式: *</p><p>  * A-AB-B-BC-C-CD-D-DA (即一個(gè)脈沖,轉(zhuǎn) 3.75 度)* / </p><p>  uchar code FFZ[]={0x11,0x33,0x22,0x66,0x44,0xcc,0x88,0x99}; //反轉(zhuǎn)</p><p>

70、;  uchar code FFW[]={0x99,0x88,0xcc,0x44,0x66,0x22,0x33,0x11}; //正轉(zhuǎn)</p><p>  /* 單四拍工作方式: *</p><p>  * A-B-C-D (即一個(gè)脈沖,轉(zhuǎn) 7.5 度)* / </p>

71、<p>  uchar code shuangz[]={0x88,0x22,0x44,0x11};</p><p>  uchar code shuangw[]={0x11,0x44,0x22,0x88};</p><p>  /* 單四拍工作方式: *</p><p>  * A-B-

72、C-D (即一個(gè)脈沖,轉(zhuǎn) 7.5 度)* /</p><p>  //uchar code danz[]={0x88,0x22,0x44,0x11};</p><p>  //uchar code danw[]={0x11,0x44,0x22,0x88};</p><p>  void main()</p>&l

73、t;p><b>  {</b></p><p>  TMOD=0x01;</p><p><b>  EA=1;</b></p><p><b>  ET0=1;</b></p><p>  TH0=-1000/256;</p><p>  TL0

74、=-1000%256;</p><p><b>  TR0=1;</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  keyscan();</p><p>  display();&l

75、t;/p><p>  //if(zx==1) qudong();</p><p>  //if(x==0) zx=0;</p><p><b>  }</b></p><p><b>  }</b></p><p>  根據(jù)流程圖4.1其步進(jìn)電機(jī)轉(zhuǎn)動(dòng)程序設(shè)計(jì)如下:</p&g

76、t;<p>  void keyscan()</p><p><b>  {</b></p><p>  if(key1==0)//正反轉(zhuǎn)選擇</p><p><b>  {</b></p><p><b>  delay(5);</b></p>

77、<p>  if(key1==0)</p><p><b>  {</b></p><p><b>  k++;</b></p><p>  if(k==2) k=0;</p><p>  while(!key1) display();</p><p><b&

78、gt;  }</b></p><p><b>  }</b></p><p>  if(key2==0)//速度選擇</p><p><b>  {</b></p><p><b>  delay(5);</b></p><p>  

79、if(key2==0)</p><p><b>  {</b></p><p><b>  sudu++;</b></p><p>  if(sudu==2) sudu=0;</p><p>  while(!key2) display();</p><p><b>

80、;  }</b></p><p><b>  }</b></p><p>  if(key3==0)//執(zhí)行鍵</p><p><b>  {</b></p><p><b>  delay(5);</b></p><p>  if(

81、key3==0)</p><p><b>  {</b></p><p><b>  zx++;</b></p><p>  if(zx==2) zx=0;</p><p>  while(!key3) display();</p><p><b>  }</

82、b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void time0() interrupt 1</p><p><b>  {</b></p><p>  TH0=-1000/256;&l

83、t;/p><p>  TL0=-1000%256;</p><p>  if (zx==1)</p><p><b>  {</b></p><p><b>  if (n>=m)</b></p><p><b>  {</b></p>

84、<p>  if(k==0)//步進(jìn)電機(jī)正轉(zhuǎn)</p><p><b>  {</b></p><p>  if(sudu==0)//八拍</p><p><b>  {</b></p><p><b>  {</b></p><p>  f

85、or(bu=4;bu>0;bu--)</p><p><b>  {</b></p><p>  P1=FFZ[bu];</p><p><b>  delay(2);</b></p><p><b>  n=0;</b></p><p>  di

86、splay();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(sudu==1)//雙四拍</p><p><b>  {</b>&

87、lt;/p><p>  for(bu=4;bu>0;bu--)</p><p><b>  {</b></p><p>  P1=shuangz[bu];//delay(2);</p><p><b>  n=0;</b></p><p>  display();</

88、p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(k==1)//步進(jìn)電機(jī)反轉(zhuǎn)</p><p><b>  {</b></p>

89、<p>  if(sudu==0)//八拍</p><p><b>  {</b></p><p>  for(bu=8;bu>0;bu--)</p><p><b>  {</b></p><p>  P1=FFW[bu];</p><p><b>

90、;  delay(2);</b></p><p><b>  n=0;</b></p><p>  display();</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(sudu==1

91、)//雙四拍</p><p><b>  {</b></p><p>  for(bu=4;bu>0;bu--)</p><p><b>  {</b></p><p>  P1=shuangw[bu];//delay(2);</p><p><b>  n=

92、0;</b></p><p>  display();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b><

93、;/p><p><b>  n++;</b></p><p><b>  }</b></p><p><b>  else n=0;</b></p><p><b>  }</b></p><p>  void delay(uint x

94、ms)</p><p><b>  {</b></p><p><b>  uint i,j;</b></p><p>  for(i=110;i>0;i--)</p><p>  for(j=xms;j>0;j--);</p><p><b>  }&

95、lt;/b></p><p>  void display() //顯示子函數(shù)</p><p><b>  {</b></p><p>  P0=table[k];//正反轉(zhuǎn)標(biāo)志位</p><p>  P2=0x01;//選通第一位 0000 0001</p><p>&

96、lt;b>  delay(3);</b></p><p>  P0=table[sudu];//速度標(biāo)志位</p><p>  P2=0x02;//選通第二位 0000 0010</p><p><b>  delay(3);</b></p><p>  P0=table[zx];//開

溫馨提示

  • 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ù)覽,若沒有圖紙預(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)論