欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 11575|回復: 4
打印 上一主題 下一主題
收起左側

基于單片機的三相步進電機控制系統設計分解

[復制鏈接]
跳轉到指定樓層
樓主
ID:465317 發表于 2019-1-9 18:47 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

摘要

1設計任務

2方案

2.1 設計思路與方案

2.2總體設計框圖

3系統實現的原理說明

3.1 步進電機控制工作原理

3.1.1步進電機的工作原理

3.1.2 步進電機的啟?刂

3.1.3 步進電機的轉向控制

3.2步數顯示模塊原理

4硬件設計

4.1系統總原理圖

4.2各部分硬件原理圖設計

4.2.1 單片機控制模塊

4.2.2按鍵選擇工作狀態模塊

4.2.3步進電機工作模塊

4.2.4工作狀態顯示模塊

4.2.5 4位數碼管顯示步數模塊

5軟件設計

5.1系統總體設計

5.2步進電機工作模塊

5.2.1步進電機的工作方式說明

5.2.2設計說明及流程圖

5.3數碼管步數顯示模塊

6仿真調試記錄

7心得體會

參考文獻

附錄:程序清單


摘要

本設計詳細介紹了基于單片機的三相步進電機控制系統。步進電機通過輸入脈沖信號進行控制,即電機的總轉動角度由輸入脈沖總數決定,因此,單片機通過向步進電機發送控制信號就能實現對步進電機的控制。

單片機實現的步進電機控制系統具有成本低、使用靈活的特點,該系統采用80C51單片機作為主控芯片,來完成對步進電機轉動及LED顯示的控制。

本設計主要由單片機80C51,3相步進電機,7段數碼管,及一些其他相關元件設計而成,分為按鍵選擇工作狀態模塊、步進電機工作模塊、LED二極管顯示工作狀態模塊以及4位數碼管顯示步數模塊。可以通過開關來控制系統的啟/停工作,當系統運轉時,用開關來控制方向,并使相應的指示燈亮起,同樣由開關來選擇工作模式。運轉時,用4位7段數碼管來輸出步數。最后根據思路所設計出來的硬件圖設計相適應的軟件。

電路結構簡單,設計思路清晰,同時利用Proteus進行聯調仿真,結果比較直觀。仿真結果收到了預期的效果。


1設計任務

設計三相反應式步進電動機脈沖分配器,接收脈沖輸入,要求三相單三拍、三相六拍運行方式控制(電平),正反轉控制(電平)。

系統具有如下功能:用K0-K2做為通電方式選擇鍵,K0為三相單三拍,K1為三相雙三拍,K2為三相六拍;K3為啟動/停止控制、K4方向控制;用4位LED數碼管顯示工作步數。用3個發光二極管顯示狀態:正轉時紅燈亮,反轉時黃燈亮,不轉時綠燈亮;

(二)任務分析

步進電動機是一種用電脈沖信號進行控制,并將電脈沖信號轉換成相應的角位移的執行器,每一個脈沖信號可使步進電機旋轉一個固定的角度,這個角度稱為步距角。由于受脈沖的控制,其轉子的角位移量和速度嚴格地與輸入脈沖的數量和脈沖頻率成正比。



三相反應式步進電動機結構如圖1.8所示。電機定子有六個磁極,相對的磁極為同一繞組勵磁,整個電機有三個繞組,按Y形接法接線。轉自為軟磁材料,無繞組。若繞組通電順序為Ⅰ-Ⅱ-Ⅲ-Ⅰ-Ⅱ-Ⅲ-…,則電動機逆時針轉動;若繞組通電順序為Ⅰ-Ⅲ-Ⅱ-Ⅰ-Ⅲ-Ⅱ-…,則電動機順時針轉動。此種控制方式稱為三相單三拍方式。 若通電順序為Ⅰ-ⅠⅡ-Ⅱ-ⅡⅢ-Ⅲ-ⅢⅠ-…(逆時針),稱為三相六拍方式。


步進電機控制裝置發出運行方式、旋轉方向和旋轉角度(步數),前兩項一般由電平表示,后一項用脈沖個數表示。脈沖分配器根據步進電機控制裝置發來的命令(電平信號和脈沖)使步進電機按照要求的工作方式、旋轉方向及步數旋轉。步進電機磁極的旋轉有速率限制,如果過快,電動機會出現失步現象(轉自跟不上磁極的旋轉),特別是在電動機的起停階段,要求有脈沖速率限制措施。

(三)系統硬件原理圖



(四)系統軟件設計

為防止輸入脈沖頻率過快導致電動機失步,可將輸入脈沖在單片機緩存,之后在進行脈沖分配,分配時注意脈沖速率。脈沖輸入模塊在每個輸入脈沖到來時,將緩存單元進行加1計數;脈沖分配模塊時刻掃描緩存單元,當緩存單元不為零時,使步進電機旋轉一步,之后緩存單元減1,減到0時停止分配脈沖。為使三相電平同時變化,程序中應予以考慮。非同步分配脈沖可能導致電機錯轉。

為使電動機以最快速度運行,脈沖分配速率應按照梯形曲線分配,如圖1.10所示。圖示的含義是:開始時(零轉速)脈沖分配要慢,當電動機旋轉起來后,脈沖速率逐漸加快,并達到最高速率;當要停止時,也不可馬上停止,必須先降低脈沖速率,最后降到零,電動機停轉。


圖1.10 脈沖速率分配


2方案

2.1 設計思路與方案

本次設計是一個對于三相步進電機的控制系統,而單片機實現的步進電機控制系統具有成本低、使用靈活的特點,此系統選用51單片機即可。

根據要求整個設計大體可分為四塊:

一是5個按鍵K0~K4將用戶所需來選擇步進電機的工作狀態。我們將開關連入單片機的P1口,通過按鍵開關的高低電平狀態來讀入我們所需的控制信號。硬件上直接把開關分別接在單片機的接口上,通過查詢端口信號來動作,將控制信號處理。在設計開關部分時,還考慮到機械抖動的影響,采取硬件方式—并聯電容來去抖。

二是3個LED發光二極管的顯示步進電機工作狀態模塊。在設計要求中步進電機正轉是紅燈亮,反轉是黃燈亮,停止不轉是綠燈亮。設計中將3個發光二極管分別接到單片機P3口,受到單片機的輸出信號控制。

三是步進電機的工作模塊。要想步進電機按照我們想要的方式運轉,將步進電機一端接到+12V的電源,一端接到單片機P3口,受單片機的輸出信號控制。

四是4位數碼管顯示步數的模塊。設計中主要是利用軟件編程的算法來實現步數的累計和顯示,同樣,4位數碼管接到單片機的P0口和P2口受單片機輸出信號的控制,在硬件上使用的是動態顯示的接法。

由此可知所需要設計一個系統,可以通過不同按鍵來選擇步進電機的工作方式,且有LED發光二極管來顯示電機對應的工作狀態,除此之外還能在數碼管上顯示出步進電機轉動的步數。

2.2總體設計框圖

此系統主要由單片機、步進電機、步數顯示模塊、工作狀態控制與顯示模塊組成。整體框圖如圖1。



圖1 系統整體框圖

3系統實現的原理說明
3.1 步進電機控制工作原理
3.1.1步進電機的工作原理

步進電機的不同驅動方式,都是在工作時,脈沖信號按一定順序輪流加到三相繞組上,從而實現不同的工作狀態。由于通電順序不同,其運行方式有三相單三相拍、三相雙三拍和三相單、雙六拍三種(注意:上面“三相單三拍”中的“三相”指定子有三相繞組;“拍”是指定子繞組改變一次通電方式;“三拍”表示通電三次完成一個循環!叭嚯p三拍”中的“雙”是指同時有兩相繞組通電)。

1.2.1三相單三拍運行方式:下頁圖所示為反應式步進電動機工作原理圖,若通過脈沖分配器輸出的第一個脈沖使A相繞組通電,B,C相繞組不通電,在A相繞組通電后產生的磁場將使轉子 上產生反應轉矩,轉子的1、3齒將與定子磁極對齊,如果圖(a)所示。第二個脈沖到來,使B相繞組通電,而A、C相繞組不通電;B相繞組產生的磁場將 使轉子的2、4齒與B相磁極對齊,如圖(b)所示,與圖(a)相比,轉子逆時針方向轉動了一個角度。第三個脈沖到來后,是C相繞組通電,而 A、B相不通電,這時轉子的1、3齒會與C組對齊,轉子的位置如圖(c)所示,與圖(b)比較,又逆時針轉過了一個角度。

圖1.1  反應式步進電機工作原理圖

當脈沖不斷到來時,通過分配器使定子的繞組按著A相--B相--C相--A相……的規律不斷地接通與斷開,這時步進電動機的轉子就連續不停地一步步的逆時 針方向轉動。如果改變步進電動機的轉動方向,只要將定子各繞組通電的順序改為A相--C相--B相--A相,轉子轉動方向即改為順時針方向。

    單三拍分配方式時,步進電動機由A相通電轉換到B相通電,步進電動機的轉子轉過一個角度,稱為一步。這時轉子轉過的角度是30度。步進電動機每一步轉過的角度稱為步距角。

1.2.2三相雙三拍運行方式三相雙三拍運行方式:每次都有兩個繞組通電,通電方式是AB--BC--CA--AB……,如果通電順序改為AB--CA--BC--AB……則步進電機反轉。雙三拍分配方式時,步進電動機的步距角也是30度

   1.2.3三相單,雙六拍運行方式:三相六拍分配方式就是每個周期內有六個通電狀態。這六中通電狀態的順序可以使A--AB--B--BC--C--CA--A……或者A-- CA--C--BC--B--AB--A……六拍通電方式中,有一個時刻兩個繞組同時通電,這時轉子齒的位置將位于通電的兩相的中間位置。在三相六拍分配 方式下,轉子每一步轉過的角度只是三相三拍方式下的一半,步距角是15度。

單三拍運行的突出問題是每次只有一相繞組通電,在轉換過程中,一相繞組斷電,另一相繞組通電,容易發生失步;另外單靠一相繞組通電吸引轉子,穩定性不好,容易在平衡位置附近震蕩,故用的較少。

    雙三拍運行的特點是每次都有兩相繞組通電,且在轉換過程中始終有一相繞組保持通電狀態,因此工作穩定,且步距角與單三拍相同。

    六拍運行方式轉換時始終有一相繞組通電,且步距角較小,故工作穩定性好,但電源較復雜,實際應用較多。

3.1.2 步進電機的啟?刂

步進電機由于其電氣特性,運轉時會有步進感 ,即振動感。為了使電機轉動平滑 ,減小振動 ,可在步進電機控制脈沖的上升沿和下降沿采用細分的梯形波 ,可以減小步進電機的步進角 ,提高電機運行的平穩性。在步進電機停轉時 ,為了防止因慣性而使電機軸產生順滑 ,則需采用合適的鎖定波形 ,產生鎖定磁力矩 ,鎖定步進電機的轉軸 ,使步進電機的轉軸不能自由轉動。

3.1.3 步進電機的轉向控制

如果給定工作方式正序換相通電 ,步進電機正轉。若步進電機的勵磁方式為三相六拍 ,即 A-AB-B-BC-C-CA。如果按反序通電換相 ,即則電機就反轉。其他方式情況類似。

3.2步數顯示模塊原理

步數顯示模塊和工作狀態顯示模塊,都是通過單片機輸出信號控制發光二極管LED的亮滅。其中步數顯示模塊中LED構成數碼管,要求顯示4位十進制數,故用到4位數碼管。要控制多位的顯示電路,需要有字段控制和字位控制。控制方式分為靜態顯示方式和動態顯示方式。靜態顯示方式,每一位的顯示器都需要配一個8位輸出口來輸出該字位的七段碼,需要片外擴展輸出口。而動態顯示方式將各數碼管的對應字段的引腳都并聯在一起,線路簡單,減少接口,不需片外擴展。這里選用動態顯示方式。


4硬件設計
4.1系統總原理圖

圖3 系統總原理圖

根據設計要求用PROTEUS所做的硬件連線圖如圖3。

4.2各部分硬件原理圖設計
4.2.1 單片機控制模塊

單片機選用最經典的80C51,其4個I/O口都要用到, P3接步進電機驅動電路及工作狀態顯示模塊,P0和P2分別接步數顯示中對數碼管的字段控制及數碼管片選,P1接工作狀態控制電路,,時鐘用內部方式需外接晶體振蕩器。硬件圖如圖4所示。


圖4 單片機模塊原理圖

此設計中接的是12MHZ的晶振,故一個機器周期為1/12us。根據經驗數據,與晶振一起的兩個電容設為15PF。單片機的VCC和GROUD都隱藏了,已自動接好,VCC應設為+5V。

4.2.2按鍵選擇工作狀態模塊

首先我們來考慮所有機械觸點式按鍵在狀態輸出時的共性問題就是按鍵抖動問題,由于機械觸點的彈性振動,按鍵在按下時不會馬上穩定地接通而在彈起時也不能一下子完全地斷開,因而在按鍵閉合和斷開的瞬間均會出現一連串的抖動,這稱為按鍵的抖動干擾。

這種抖動可能會造成按一次鍵產生的開關狀態被CPU誤讀幾次。為了使CPU能正確地讀取按鍵狀態,本次設計中我們采用并聯電容消抖法,利用電容的放電延時來實現。

如圖5所示,這是唯一的一塊輸入模塊的設計。5個按鍵開關一端通過電阻接高電平,另一端全部接到地,其中接高電平的一端對應也接到單片機的P1口分別為P1.0~P1.4。當開關斷開,就是輸入到單片機對應端口高電平,而開關閉合,是使端口接地,輸入低電平。所以這個設計中開關斷開時才是有效的。各按鍵功能:

(1)K0-K2為工作模式控制開關,KO接電時,為步進電機單三拍工作模式;K1接電時,為步進電機雙三拍工作模式;K2接電時,步進電機工作模式為三相六拍。

(2)K3為啟/停控制開關,控制整個系統的開啟和關閉。

(3)K4為正/反轉控制開關,控制步進電機的轉向。


圖5 按鍵模塊原理圖

4.2.3步進電機工作模塊

將三相步進電機三個端口直接接到單片機P3.0~P3.2即可,另三個端口接到+12V的高電平給步進電機供電。只需在軟件編寫上控制算法便可以調節這三個端口的高低電平來控制步進電機的開啟與停止,正反轉以及工作模式。步進電機硬件接線圖如圖6所示。


圖6 步進電機模塊原理圖

4.2.4工作狀態顯示模塊

LED發光二極管顯示步進電機的工作狀態,它們分別接到單片機的P3.3~P3.5。如圖7,讓單片機輸出通過一個反相器再接到LED陰極,LED陽極接VCC。這樣可以提高電流,有利于二極管的導通,我們可以通過控制P3口的數據,實現LED的亮滅。


圖7 工作狀態顯示模塊原理圖

4.2.5 4位數碼管顯示步數模塊

LED數碼管實際上是由七個發光管組成8字形構成的,加上小數點就是8個。這些段分別由字母a,b,c,d,e,f,g,dp來表示。當數碼管特定的段加上電壓后,這些特定的段就會發亮,以形成我們眼睛看到的字樣了。通過分時輪流控制各個LED數碼管的COM端,就使各個數碼管輪流受控顯示,這就是動態驅動。

P0口和P2口的前四個分別接步數顯示中對數碼管的字段控制及數碼管片選,如圖8所示,這里主要是由軟件算法來實現單片機輸出的控制。



圖8 數碼管顯示模塊原理圖


5軟件設計5.1系統總體設計


圖9 系統總流程圖

設計說明:首先是數碼管顯示清零,單片機再讀入P1口輸入的按鍵狀態,先判斷是否啟動,如果沒有啟動則是綠燈亮并再判斷,如果啟動了,就接著判斷所需的電機工作模式,再讀入P1口狀態判斷電機的轉向,輸出控制信號為正轉紅燈亮,反轉黃燈亮,由此可以讓步進電機按照指定的方式運轉,并且累計步數再顯示到數碼管上。最后檢驗P1口是否狀態改變,如果改變則步數清零重新開始判斷,不改變則繼續轉動。

5.2步進電機工作模塊
5.2.1步進電機的工作方式說明

(1)三相單三拍工作方式

在這種工作方式下,A、B、C三相輪流通電,電流切換三次,磁場旋轉一周,轉子向前轉過一個齒距角。因此這種通電方式叫做三相單三拍工作方式。這時步距角(度)為:
                                                        

式中:m──定子相數; z ──轉子齒數

表1 單三拍的相位控制


步序

             控制位

工作
狀態

控制
模型
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
C相
P1.1
B相
P1.0
A相
1
0
0
0
0
0
0
0
1
A
01H
2
0
0
0
0
0
0
1
0
B
02H
3
0
0
0
0
0
1
0
0
C
04H

(2)三相雙三拍工作方式

這種工作方式每次都是有兩相導通,兩相繞組處在相同電壓之下,以AB─BC─CA─AB (或反之)方式通電,故稱為雙三拍工作方式。以這種方式通電,轉子齒所處的位置相當于六拍控制方式中去掉單三拍后的三個位置。它的步距角計算公式與單三拍時的公式相同。


表2 雙三拍的相位控制


步序

控制位

工作
狀態

控制
模型
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
C相
P1.1
B相
P1.0
A相
1
0
0
0
0
0
0
1
1
AB
03H
2
0
0
0
0
0
1
1
0
BC
06H
3
0
0
0
0
0
1
0
1
CA
05H

(3)三相六拍工作方式

在這種工作方式下,繞組以A—AB—B—BC—C—CA—A時序(或反時序)轉換6次,磁場旋轉一周,轉子前進一個齒距,每次切換均使轉子轉動1. 5°,故這種通電方式稱為三相六柏工作方式。其步距角為:
                                               

表3 六拍的數學模型


步序

控制位

工作
狀態

控制
模型
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
C相
P1.1
B相
P1.0
A相
1
0
0
0
0
0
0
0
1
A
01H
2
0
0
0
0
0
0
1
1
AB
03H
3
0
0
0
0
0
0
1
0
B
02H
4
0
0
0
0
0
1
1
0
BC
06H
5
0
0
0
0
0
1
0
0
C
04H
6
0
0
0
0
0
1
0
1
CA
05H

5.2.2設計說明及流程圖

設計說明:在此設計中,采用的是三相步進電機,對于步進電機模塊的程序設計采用循環程序設計方法。先把正反轉向的控制模型存放在內存單元中,然后再逐一從單元中取出控制模塊并輸出。首先啟動,通過P1口讀入所需的工作方式,即選擇步進電機的拍數,然后讀入正反轉的控制,再來輸出對應的控制模型來驅動步進電機轉動。

   三相步進電機工作的流程圖:


圖10 三相步進電機工作流程圖

5.3數碼管步數顯示模塊

設計說明:步數顯示模塊是整個程序里的一個子程序。其是用4位八段數碼管來顯示工作步數。先將要顯示的數化為10進制數,每位分別儲存,從P0口輸出顯示碼,P2口輸入位選碼,需要一定的延時,讓此位數字顯示閃爍出來。然后修改數組地址,求下一位位選碼繼續顯示,直至輸出四位數。這個掃描過程重復50次,保證人眼能觀察到步數顯示。

流程圖如圖11:



圖11 數碼管顯示模塊流程圖


6仿真調試記錄

如圖12所示,當選擇電機工作在單三拍,反轉的模式下,K0斷開,K1、K2、K4、閉合,系統啟動,K3斷開,電機開始轉動。LED四位顯示屏顯示工作步數,LED指示燈黃燈亮顯示電機反轉的狀態。


圖12 仿真圖

如圖13所示,此種工作方式下步進電機的旋轉角度:


圖13 步進電機旋轉角度

7心得體會

本次課設為期一周,所以時間比較緊張,給課設的順利完成增加了難度。單片機原理是一門應用性很強綜合性很強的學科,在這次課設中,我充分感受到了這一點,在老師給的課題之中,是來自于各個方面各個領域的應用,不得不說,計算機控制很強大,確實改變了我們的生活。

課設里最困難的部分就是編寫程序和仿真調試,也許硬件連接沒問題,程序運行沒問題,但是,當把程序導入,發現電動機就是不轉,燈就是不亮,數碼管就是亂跳,這是很考驗耐心的時候,一遍一遍地去調試程序,修改連接部分,有時真的看著很崩潰,但是當你不放棄地調試,才有仿真成功的可能,在這種反復中,對我們自身的能力是提高很多的。另一個收獲就是關于軟件的使用了。PROTEUS,KEIL51,以前好像也用過,但是平時較少接觸,這次的課設讓我比較熟練的掌握了這兩個學習軟件強大的功能,而且發現從PROTEUS里導出來的電路圖特別漂亮和清晰。

單片機原理一直是自己比較喜歡的一門學科,拿到課程設計的題目也想著可以好好檢驗自己的學習成果,一直認為,期末考試是所謂的應試教育,而課程設計似乎更加地考驗所學的知識,所謂實踐與理論相結合就是這個道理吧。課程設計總能讓我有一種我站在山面前的感覺,看上去比較陌生高大,但是攀登的技巧早已在平時的學習中習得,不斷地去攀登,不斷地在回味課堂上老師講的東西,書本上的東西,這是一種奇妙的體驗。

我明白遇到的電路或者課題并不一定在你的知識范圍之內,而面對新的東西,我們要冷靜地去尋求解決之道,去搜尋網絡資源,圖書館資源以及和同學們的討論之中,再結合自己所學過的知識來吃透理解那些未知的東西,擴寬知識面,這樣就會覺得學到了遠遠超過課堂的東西,但是卻源于課堂,想必這就是課設的意義吧,很有收獲。


單片機源碼:

  1. #include<reg51.h>
  2. #include<stdio.h>
  3. void delay1(void);
  4. void delay2(void);
  5. void display(int);
  6. int bs=0;
  7. main()
  8.   { char  a,b,c,d,j,*q,
  9.           done1[8]={0x01,0x02,0x04,0x00,0x01,0x04,0x02,0x00},
  10.           done2[8]={0x03,0x06,0x05,0x00,0x03,0x05,0x06,0x00},        done3[14]={0x01,0x03,0x02,0x06,0x04,0x05,0x00,0x01,0x05,0x04,0x06,0x02,0x03,0x00};
  11.               L:  a=P1;   
  12.                    while(!(a&0x08))    //判斷是否啟動,若沒啟動則重新判斷
  13.                             {  P3=0x08;
  14.                           delay1();
  15.                   a=P1; }
  16.      //...............................................判斷工作模式
  17.               if(a&0x01)                     //方式1模型
  18.               q=done1;
  19.               else if(a&0x02)                 //方式2模型
  20.               q=done2;
  21.               else if(a&0x04)                 //方式3模型
  22.               q=done3;
  23.      //...............................................判斷電機轉向
  24.               if(a&0x10)                 //判斷電機是否要正轉
  25.               { P3=0x10;                //P1.4口為1,電機正轉,紅燈亮
  26.                  b=0;}
  27.               else
  28.               { P3=0x20;               //P1.4口為0,電機反轉,黃燈亮
  29.                  if(a&0x04)b=7;         //反轉時將b置數,使指針指到數組反相序部分
  30.            else b=4; }
  31.    //....................................................
  32. d=b;
  33.                 while(1)
  34.                 { c=*(q+b);               //判斷電機步數是否走完
  35.                  if(c==0)b=d;               //步數走完,電機重新再走
  36.                  else
  37.                  {  P3=c;                 //從P3輸出電機控制信號
  38.                               b++;
  39.                               bs++;                 //總步數加1
  40.                               display(bs);              //顯示步數
  41.                               j=a;
  42.                               a=P1;
  43.                               if(a!=j)                     //判斷P1口狀態信號是否改變
  44.                               {              if(!(a&0x08))bs=0;         //若為停止信號,總步數清零
  45.                               goto L; }           //狀態信號改變,返回到開始,重新對電機控制
  46.                               }
  47.                             }
  48.               }            
  49. void delay1()      //延時5ms子程序
  50.               { int i,j;
  51.                  for(i=0;i<200;i++)
  52.                  for(j=0;j<300;j++);
  53.                                }
  54. void delay2()    //延時50us子程序
  55.               {   int i,j;
  56.                    for(i=0;i<10;i++)
  57.                             for(j=0;j<60;j++);
  58.                             }
  59. void display(int n)
  60.               {unsigned char tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67};
  61.                 unsigned char i,k,t,num[4];
  62.                 num[0]=n%10;                //將總步數的各位分別存在num數組中
  63.                 num[1]=(n/10)%10;
  64.                 num[2]=(n/100)%10;
  65.                 num[3]=(n/1000)%10;
  66.                 for(t=0;t<50;t++)             //掃描50次
  67.                 {  k=0x08;                //位選碼指向最左一位,第四位
  68.                  for(i=0;i<4;i++)
  69.                 {  P2=k;                    //從P2口輸入位選碼
  70.                    P0=~(tab[num[i]]);      //取出顯示碼,并從P0口輸出顯示碼
  71.                             k=k>>1;                //求下一個位選碼
  72.                             delay2();
  73.                 }
  74.                 }
  75. }
復制代碼
完整的Word格式文檔51黑下載地址:

基于單片機的三相步進電機控制系統設計分解.doc (759.01 KB, 下載次數: 76)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:214796 發表于 2019-3-19 17:04 | 只看該作者
非常感謝樓主的分享,解了燃眉之急。
回復

使用道具 舉報

板凳
ID:298008 發表于 2020-2-15 15:53 | 只看該作者
謝謝樓主分享。。
回復

使用道具 舉報

地板
ID:298008 發表于 2020-2-15 20:16 | 只看該作者
謝謝樓主分享。。。
回復

使用道具 舉報

5#
ID:756512 發表于 2020-6-8 08:56 來自觸屏版 | 只看該作者
想問一下仿真文件和其他文件可以發嗎
回復

使用道具 舉報

6#
無效樓層,該帖已經被刪除
7#
無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表