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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機步進電機控制系統課程設計報告 實現停止,啟動,正轉,反轉,加速,減速

[復制鏈接]
跳轉到指定樓層
樓主
ID:295494 發表于 2018-6-4 15:18 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

微機原理與單片機接口技術課程設計報告




設計題目:步進電機控制系統設計

():物理與電子信息學院
專業班級:電子信息工程1402
學生姓名:*
:311408000303
指導教師: 李*


摘要

步進電動機由于用其組成的開環系統既簡單、廉價,又非常可行,因此在打印機等辦公自動化設備以及各種控制裝置等眾多領域有著極其廣泛的應用。步進電機作為執行元件,是機電一體化的關鍵產品之一,廣泛應用在各種自動化控制系統中。它是用電脈沖信號進行控制,將電脈沖信號轉換成相應的角位移或線位移的微電動機,它最突出的優點是可以在寬廣的頻率范圍內通過改變脈沖頻率來實現調速,快速起停、正反轉控制及制動等,并且用其組成的開環系統既簡單、廉價,又非常可行,因此在打印機等辦公自動化設備以及各種控制裝置等眾多領域有著極其廣泛的應用。隨著微電子和計算機技術的發展,步進電動機的需求量與日俱增,研制步進電機驅動器及其控制系統具有十分重要的意義。

本次課程設計選用的步進電機是四相步進電機,通過軟件和硬件的結合實現步進電機的啟停、正轉、反轉、加速、減速功能,并且步進電機所處的狀態用相應的發光二極管顯示。主要通過三大塊來設計,包括驅動電路的設計、狀態顯示部分和按鍵部分是設計。可以通過控制脈沖個數來控制角位移量,從而精確地控制轉動角度;同時可以通過控制脈沖頻率來控制電機轉動的角度和加速度,從而達到調速的目的。

目錄

前言
1步進電機概述
1.1 步進電機介紹
1.1.1 步進電機概述
1.1.2 步進電機的工作原理
1.1.3 步進電機的分類與選擇
1.2 步進電機驅動系統介紹
2 單片機原理簡介
2.1概述
2.2單片機的應用系統
2.3 AT89C51簡介
3 總體設計思路
3.1電路基本理論
3.2設計方案
4 硬件設計
4.1 控制電路
4.2 最小系統
4.3 驅動電路
4.4 總體電路圖
5 軟件編程
5.1主流程圖
5.2查鍵部分
5.3前進部分
5.4 后退部分
5.5 加速部分
5.6減速部分
6 心得體會
致謝
參考文獻
附錄一:總電路圖
附錄二:源程序

前言

步進電機作為執行元件,是機電一體化的關鍵產品之一,廣泛應用在各種自動化控制系統中。它是用電脈沖信號進行控制,將電脈沖信號轉換成相應的角位移或線位移的微電動機,它最突出的優點是可以在寬廣的頻率范圍內通過改變脈沖頻率來實現調速,快速起停、正反轉控制及制動等,并且用其組成的開環系統既簡單、廉價,又非常可行,因此在打印機等辦公自動化設備以及各種控制裝置等眾多領域有著極其廣泛的應用。隨著微電子和計算機技術的發展,步進電動機的需求量與日俱增,研制步進電機驅動器及其控制系統具有十分重要的意義。

本次畢業設計選用的步進電機是四相步進電機,通過軟件和硬件的結合實現步進電機的啟停、正轉、反轉、加速、減速功能,并且步進電機所處的狀態用相應的發光二極管顯示。主要通過三大塊來設計,包括驅動電路的設計、狀態顯示部分和按鍵部分是設計。可以通過控制脈沖個數來控制角位移量,從而精確地控制轉動角度;同時可以通過控制脈沖頻率來控制電機轉動的角度和加速度,從而達到調速的目的。




1步進電機概述
1.1 步進電機介紹

1.1.1 步進電機概述

步進電機是將電脈沖信號轉變為角位移或線位移的開環控制元件。在非超載的情況下,電機的轉速、停止的位置只取決于脈沖信號的頻率和脈沖數,而不受負載變化的影響,即給電機加一個脈沖信號,電機則轉過一個步距角。這一線性關系的存在,加上步進電機只有周期性的誤差而無累積誤差等特點。使得在速度、位置等控制領域用步進電機來控制變的非常的簡單。

正常情況下,步進電機轉過的總角度和輸入的脈沖數成正比;連續輸入一定頻率的脈沖時,電動機的轉速與輸入脈沖的頻率保持嚴格的對應關系,不受電壓波動和負載變化的影響。由于步進電動機能直接接收數字量的輸入,所以特別適合于微機控制。

步進電機的基本參數:

(一)步進電機的靜態指標術語

1、相數:產生不同對N、S磁場的激磁線圈對數。常用m表示。

2、拍數:完成一個磁場周期性變化所需脈沖數或導電狀態用n表示,或指電機轉過一個齒距角所需脈沖數,以四相電機為例,有四相四拍運行方式即AB-BC-CD-DA-AB,四相八拍運行方式即 A-AB-B-BC-C-CD-D-DA-A.

3、步距角:對應一個脈沖信號,電機轉子轉過的角位移用θ表示。θ=360度(轉子齒數*運行拍數),以常規二、四相,轉子齒為50齒電機為例。四拍運行時步距角為θ=360度/(50*4)=1.8度(俗稱整步),八拍運行時步距角為θ=360度/(50*8)=0.9度(俗稱半步)。

4、定位轉矩:電機在不通電狀態下,電機轉子自身的鎖定力矩(由磁場齒形的諧波以及機械誤差造成的)

5、靜轉矩:電機在額定靜態電作用下,電機不作旋轉運動時,電機轉軸的鎖定力矩。此力矩是衡量電機體積(幾何尺寸)的標準,與驅動電壓及驅動電源等無關。

雖然靜轉矩與電磁激磁安匝數成正比,與定齒轉子間的氣隙有關,但過份采用減小氣隙,增加激磁安匝來提高靜力矩是不可取的,這樣會造成電機的發熱及機械噪音。

(二)步進電機動態指標及術語:

   1、步距角精度:

步進電機每轉過一個步距角的實際值與理論值的誤差。用百分比表示:誤差/步距角*100%。不同運行拍數其值不同,四拍運行時應在5%之內,八拍運行時應在15%以內。

2、失步:

電機運轉時運轉的步數,不等于理論上的步數。稱之為失步

3、失調角:

轉子齒軸線偏移定子齒軸線的角度,電機運轉必存在失調角,由失調角產生的誤差,采用細分驅動是不能解決的。

4、最大空載起動頻率:

電機在某種驅動形式、電壓及額定電流下,在不加負載的情況下,能夠直接起動的最大頻率。

5、最大空載的運行頻率:

電機在某種驅動形式,電壓及額定電流下,電機不帶負載的最高轉速頻率。

6、運行矩頻特性:

電機在某種測試條件下測得運行中輸出力矩與頻率關系的曲線稱為運行矩頻特性,這是電機諸多動態曲線中最重要的,也是電機選擇的根本依據。電機一旦選定,電機的靜力矩確定,而動態力矩卻不然,電機的動態力矩取決于電機運行時的平均電流(而非靜態電流),平均電流越大,電機輸出力矩越大,即電機的頻率特性越硬。 要使平均電流大,盡可能提高驅動電壓,使采用小電感大電流的電機。

7、電機的共振點:

步進電機均有固定的共振區域,二、四相感應子式步進電機的共振區一般在180-250pps之間(步距角1.8度)或在400pps左右(步距角為0.9度),電機驅動電壓越高,電機電流越大,負載越輕,電機體積越小,則共振區向上偏移,反之亦然,為使電機輸出電矩大,不失步和整個系統的噪音降低,一般工作點均應偏移共振區較多。

8、電機正反轉控制:

當電機繞組通電時序為A-AB-B-BC-C-CD-D-DA時為正轉,通電時序為DA-D-CD-C-BC-B-AB-A時為反轉。

步進電機的特征如下:            

    1、一般步進電機的精度為步進角的3%-5%,且不積累。

    2、步進電機外表允許的最高溫度。

    步進電機溫度過高首先會使電機的磁性材料退磁,從而導致力矩下降乃至于失步,因此電機外表允許的最高溫度應取決于不同電機磁性材料的退磁點;一般來講,磁性材料的退磁點都在攝氏130度以上,有的甚至高達攝氏200度以上,所以步進電機外表溫度在攝氏80-90度完全正常。

3、步進電機的力矩會隨轉速的升高而下降。

當步進電機轉動時,電機各相繞組的電感將形成一個反向電動勢;頻率越高,反向電動勢越大。在它的作用下,電機隨頻率(或速度)的增大而相電流減少,從而導致力矩下降。

4、步進電機低速時可以正常轉動,但若高于一定速度就無法啟動,并伴有嘯叫聲。

步進電機有一個技術參數:空載啟動頻率,即步進電機在空載情況下能夠正常啟動的脈沖頻率,如果脈沖頻率高于該值,電機不能正常啟動,可能發生丟步或堵轉。在有負載的情況下,啟動頻率應更低。如果要使電機達到高速轉動,脈沖頻率應該有加速過程,即啟動頻率較低,然后按一定加速度升到所希望的高頻(電機轉速從低速升到高速)。

步進電動機以其顯著的特點,在數字化制造時代發揮著重大的用途。伴隨著不同數字化技術的發展以及步進電機本身技術的提高,步進電機將會在更多的領域得到應用。              

1.1.2 步進電機的工作原理

步進電機的工作就是步進轉動,其功用是將脈沖電信號變換為相應的角位移或是直線位移,就是給一個脈沖信號,電動機轉動一個角度或是前進一步。步進電機的角位移量與脈沖數成正比,它的轉速與脈沖頻率(f)成正比,在非超載的情況下,電機的轉速、停止的位置只取決于脈沖信號的頻率和脈沖數,而不受負載變化的影響,即給電機加一個脈沖信號,電機則轉過一個步距角。

如下所示的步進電機為一四相步進電機,采用單極性直流電源供電。只要對步進電機的各相繞組按合適的時序通電,就能使步進電機步進轉動。圖1-1是該四相反應式步進電機工作原理示意圖。

      

圖1-1 四相步進電機步進示意圖

    開始時,開關SB接通電源,SA、SC、SD斷開,B相磁極和轉子0、3號齒對齊,同時,轉子的1、4號齒就和C、D相繞組磁極產生錯齒,2、5號齒就和D、A相繞組磁極產生錯齒。

當開關SC接通電源,SB、SA、SD斷開時,由于C相繞組的磁力線和1、4號齒之間磁力線的作用,使轉子轉動,1、4號齒和C相繞組的磁極對齊。而0、3號齒和A、B相繞組產生錯齒,2、5號齒就和A、D相繞組磁極產生錯齒。依次類推,A、B、C、D

四相繞組輪流供電,則轉子會沿著A、B、C、D方向轉動。

單四拍、雙四拍與八拍工作方式的電源通電時序與波形分別如圖1-2所示:

圖1-2 步進電機工作時序波形圖

步進電機是機電控制中一種常用的執行機構,它的用途是將電脈沖轉化為角位移,它的的驅動電路根據控制信號工作,控制信號由單片機產生。當步進驅動器接收到一個脈沖信號,它就驅動步進電機按設定的方向轉動一個固定的角度,控制換相順序,即通電控制脈沖必須嚴格按照一定順序分別控制各相的通斷。通過控制脈沖個數即可以控制角位移量,從而達到準確定位的目的。控制步進電機的轉向,即給定工作方式正序換相通電,步進電機正轉,若按反序通電換相,則電機就反轉。控制步進電機的速度,即給步進電機發一個控制脈沖,它就轉一步,再發一個脈沖,它會再轉一步,兩個脈沖的間隔越短,步進電機就轉得越快。同時通過控制脈沖頻率來控制電機轉動的速度和加速度,從而達到調速的目的。通過對步進電機的軟件設計和硬件設計包括步進電機的結構、原理及應用,根據原理和硬件的設計利用C語言編寫程序,經過反復運行和調試,實現單片機對步進電機的控制。

1.1.3 步進電機的分類與選擇

現在比較常用的步進電機包括反應式步進電機(VR)、永磁式步進電機(PM)、混合式步進電機(HB)和單相式步進電機等。

反應式步進電動機采用高導磁材料構成齒狀轉子和定子,其結構簡單,生產成本低,步距角可以做的相當小,一般為三相,可實現大轉矩輸出,步進角一般為1.5度,但噪聲和振動都很大。反應式步進電機的轉子磁路由軟磁材料制成,定子上有多相勵磁繞組,利用磁導的變化產生轉矩,但動態性能相對較差。

永磁式步進電機轉子采用多磁極的圓筒形的永磁鐵,在其外側配置齒狀定子。用轉子和定子之間的吸引和排斥力產生轉動,它的出力大,動態性能好,但步距角一般比較大。一般為兩相,轉矩和體積較小,步進角一般為7.5度 或15度。

混合式步進電機是指混合了永磁式和反應式的優點。它又分為兩相和五相:兩相步進角一般為1.8度而五相步進角一般為 0.72度。這種步進電機的應用最為廣泛,它是PM和VR的復合產品,其轉子采用齒狀的稀土永磁材料,定子則為齒狀的突起結構。此類電機綜合了反應式和永磁式兩者的優點,步距角小,出力大,動態性能好,是性能較好的一類步進電動機,在計算機相關的設備中多用此類電機。

步進電機有步距角(涉及到相數)、靜轉矩、及電流三大要素組成。一旦三大要素確定,步進電機的型號便確定下來了。

1、步距角的選擇

電機的步距角取決于負載精度的要求,將負載的最小分辨率(當量)換算到電機軸上,每個當量電機應走多少角度(包括減速)。電機的步距角應等于或小于此角度。目前市場上步進電機的步距角一般有0.36度/0.72度(五相電機)、0.9度/1.8度(二、四相電機)、1.5度/3度 (三相電機)等。

2、靜力矩的選擇

步進電機的動態力矩一下子很難確定,我們往往先確定電機的靜力矩。靜力矩選擇的依據是電機工作的負載,而負載可分為慣性負載和摩擦負載二種。單一的慣性負載和單一的摩擦負載是不存在的。直接起動時(一般由低速)時二種負載均要考慮,加速起動時主要考慮慣性負載,恒速運行進只要考慮摩擦負載。一般情況下,靜力矩應為摩擦負載的2-3倍內好,靜力矩一旦選定,電機的機座及長度便能確定下來(幾何尺寸)。

3、電流的選擇

靜力矩一樣的電機,由于電流參數不同,其運行特性差別很大,可依據矩頻特性曲線圖,判斷電機的電流(參考驅動電源、及驅動電壓)。

4、力矩與功率換算

步進電機一般在較大范圍內調速使用、其功率是變化的,一般只用力矩來衡量,力矩與功率換算如下:

P= Ω·M Ω=2π·n/60 P=2πnM/60
其P為功率單位為瓦,Ω為每秒角速度,單位為弧度,n為每分鐘轉速,M為力矩單位為牛頓·米

P=2πfM/400(半步工作)

其中f為每秒脈沖數(簡稱PPS)

1.2 步進電機驅動系統介紹

步進電機不能直接接到交直流電源上工作,而必須使用專用設備——步進電機驅動器.步進電機驅動系統的性能,除與電機本身的性能有關外,也在很大程度上取決于驅動器的優劣。典型的步進電機驅動系統是由步進電機控制器、步進電機驅動器和步進電機本體三部分組成。步進電機控制器發出步進脈沖和方向信號,每發一個脈沖,步進電機驅動器驅動步進電機轉子旋轉一個步距角,即步進一步。步進電機轉速的高低、升速或降速、啟動或停止都完全取決于脈沖的有無或頻率的高低。控制器的方向信號決定步進電機的順時針或逆時針旋轉。通常,步進電機驅動器由邏輯控制電路、功率驅動電路、保護電路和電源組成。步進電機驅動器一旦接收到來自控制器的方向信號和步進脈沖,控制電路就按預先設定的電機通電方式產生步進電機各相勵磁繞組導通或截止信號。控制電路輸出的信號功率很低,不能提供步進電機所需的輸出功率,必須進行功率放大,這就是步進電機驅動器的功率驅動部分。功率驅動電路向步進電機控制繞組輸入電流,使其勵磁形成空間旋轉磁場,驅動轉子運動。保護電路在出現短路、過載、過熱等故障時迅速停止驅動器和電機的運行。


2 單片機原理簡介2.1概述

單片機(single-chip microcomputer)是把微型計算機主要部分都集成在一塊芯片上的單芯片微型計算機。圖1-3中表示單片機的典型結構圖。由于單片機的高度集成化,縮短了系統內的信號傳送距離,優化了結構配置,大大地提高了系統的可靠性及運行速度,同時它的指令系統又很適合于工業控制的要求,所以單片機在工業過程及設備控制中得到了廣泛的應用。

圖1-3典型單片機結構圖

2.2單片機的應用系統

單片機在進行實時控制和實時數據處理時,需要與外界交換信息。人們需要通過人機對話,了解系統的工作情況和進行控制。單片機芯片與其它CPU比較,功能雖然要強得多,但由于芯片結構、引腳數目的限制,片內ROM、RAM、I/O口等不能很多,在構成實際的應用系統時需要加以擴展,以適應不同的工作情況。單片機應用系統的構成基本上如圖1-4所示。

圖1-4 單片機的應用系統

單片機應用系統根據系統擴展和系統配置的狀況,可以分為最小應用系統、最小功耗系統、典型應用系統。本設計是設計一款最小應用系統,最小應用系統是指能維持單片機運行的最簡單配置的系統。這種系統成本低廉、結構簡單,常用來構成簡單的控制系統,如開關量的輸入/輸出控制、時序控制等。對于片內有ROM/EPROM的芯片來說,最小應用系統即為配有晶體振蕩器、復位電路和電源的單個芯片;對與片內沒有ROM/EPROM芯片來說,其最小應用系統除了應配置上述的晶振、復位電路和電源外,還應配備EPROM或EEPROM作為程序存儲器使用。

2.3 AT89C51簡介

    AT89C51的主要參數如表1-1所示:

表1-1 AT89C51的主要參數

型號

存儲器

定時器

I/0

串行口

中斷

速度

(MH)

其它特點

E²PROM

ROM

RAM

89C51

4K

128

2

32

1

6

24

低電壓



AT89C51含E²PROM電可編閃速存儲器。有兩級或三級程序存儲器保密系統,防止E²PROM中的程序被非法復制。不用紫外線擦除,提高了編程效率。程序存儲器E²PROM容量可達20K字節。

AT89C51是一種帶4K字節閃爍可編程可擦除只讀存儲器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。其引腳如圖1-5所示。

圖1-5 單片機的引腳排列

1、主要特性:
·與MCS-51 兼容
·4K字節可編程閃爍存儲器
壽命:1000寫/擦循環

·全靜態工作:0Hz-24Hz
·三級程序存儲器鎖定
·128*8位內部RAM
·32可編程I/O線
·兩個16位定時器/計數器
·5個中斷源
·可編程串行通道
·低功耗的閑置和掉電模式
·片內振蕩器和時鐘電路

2、管腳說明:
    VCC:供電電壓。
    GND:接地。
    P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。
    P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。
    P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優勢,當對外部八位地址數據存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。

P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。
    P3口也可作為AT89C51的一些特殊功能口,如下所示:
    P3口管腳備選功能
    P3.0 RXD(串行輸入口)

P3.1 TXD(串行輸出口)
    P3.2 /INT0(外部中斷0)
    P3.3 /INT1(外部中斷1)
    P3.4 T0(記時器0外部輸入)
    P3.5 T1(記時器1外部輸入)
    P3.6 /WR(外部數據存儲器寫選通)
    P3.7 /RD(外部數據存儲器讀選通)
    P3口同時為閃爍編程和編程校驗接收一些控制信號。
    RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。
    ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執行狀態ALE禁止,置位無效。
    /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數據存儲器時,這兩次有效的/PSEN信號將不出現。
    /EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,/EA將內部鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。

XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。
    XTAL2:來自反向振蕩器的輸出。

3、I/O口引腳:

a:P0口,雙向8位三態I/O口,此口為地址總線(低8位)及數據總線分時復用;

b:P1口,8位準雙向I/O口;

c:P2口,8位準雙向I/O口,與地址總線(高8位)復用;

d:P3口,8位準雙向I/O口,雙功能復用口。

4、振蕩器特性:
    XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅動器件,XTAL2應不接。有余輸入至內部時鐘信號要通過一個二分頻觸發器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。

5、芯片擦除:

整個EPROM陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms 來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節被重復編程以前,該操作必須被執行。
    此外,AT89C51設有穩態邏輯,可以在低到零頻率的條件下靜態邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時器,計數器,串口和中斷系統仍在工作。在掉電模式下,保存RAM的內容并且凍結振蕩器,禁止所用其他芯片功能,直到下一個硬件復位為止。


3 總體設計思路3.1電路基本理論

步進電機是一種將電脈沖轉變為角位移的執行機構,通俗一點講:當步進驅動器接收到一個脈沖信號,它就驅動步進電機按設定的方向轉動一個固定的角度。可通過控制脈沖數來控制角位移量,從而達到準確的定位目的。通過對步進電機的軟件設計和硬件設計包括步進電機的結構、原理及應用,根據原理和硬件的設計利用c語言編寫程序,經過反復運行和調試,實現單片機對步進電機的控制。

步進電機是機電控制中一種常用的執行機構,它的用途是將電脈沖轉化為角位移,它的的驅動電路根據控制信號工作,控制信號由單片機產生。當步進驅動器接收到一個脈沖信號,它就驅動步進電機按設定的方向轉動一個固定的角度,控制換相順序,即通電控制脈沖必須嚴格按照一定順序分別控制各相的通斷。通過控制脈沖個數即可以控制角位移量,從而達到準確定位的目的。控制步進電機的轉向,即給定工作方式正序換相通電,步進電機正轉,若按反序通電換相,則電機就反轉。控制步進電機的速度,即給步進電機發一個控制脈沖,它就轉一步,再發一個脈沖,它會再轉一步,兩個脈沖的間隔越短,步進電機就轉得越快。同時通過控制脈沖頻率來控制電機轉動的速度和加速度,從而達到調速的目的。

3.2設計方案

基于單片機和proteus的步進電機控制電路的基本組成如圖2-1所示:

              圖2-1 步進電機控制電路的基本組成

根據設計要求,采用的方案如下。硬件部分實現電機轉動,包括控制開關模塊;電機轉動模塊。軟件部分實現對步進電機的控制功能,主要設計思想通過控制臺控制程序的開關來控制電機的轉動。電源驅動89C51單片機,在89C51中裝載程序,通過開關按鍵來輸入信號,89C51向驅動電路提供信號使步進電機動作。

4 硬件設計4.1 控制電路

本設計的硬件電路只要包括控制電路、最小系統、驅動電路、顯示電路四大部分。最小系統只要是為了使單片機正常工作。控制電路只要由開關和按鍵組成,由操作者根據相應的工作需要進行操作。顯示電路主要是為了顯示電機的工作狀態和轉速。驅動電路主要是對單片機輸出的脈沖進行功率放大,從而驅動電機轉動。

根據系統的控制要求,控制輸入部分設置了啟動控制,換向控制,加速控制和減速控制按鈕,分別是K1、K2、S2、S3,控制電路如圖4所示。通過K1、K2狀態變化來實現電機的啟動和換向功能。當K1、K2的狀態變化時,內部程序檢測P1.0和P1.1的狀態來調用相應的啟動和換向程序,發現系統的電機的啟動和正反轉控制。

根據步進電機的工作原理可以知道,步進電機轉速的控制主要是通過控制通入電機的脈沖頻率,從而控制電機的轉速。對于單片機而言,主要的方法有:軟件延時和定時中斷在此電路中電機的轉速控制主要是通過定時器的中斷來實現的,該電路控制電機加速度主要是通過S2、S3的斷開和閉合,從而控制外部中斷根據按鍵次數,改變速度值存儲區中的數據(該數據為定時器的中斷次數),這樣就改變了步進電機的輸出脈沖頻率,從而改變了電機的轉速。

通過對開關k1 k2 k3的開關,來實現對步進電機的正反轉和停止,通過k4 k5來進行加減速,并且有相應的LED燈的顯示。

圖3-1 控制和顯示電路原理圖

4.2 最小系統

   單片機最小系統或者稱為最小應用系統,素質用最少的元件組成的單片機可以工作的系統,對51系列單片機來說,最小系統一般應該包括:單片機、復位電路、晶振電路。

復位電路:使用了獨立式鍵盤,單片機的P1口鍵盤的接口。該設計要求只需4個鍵對步進電機的狀態進行控制,但考慮到對控制功能的擴展,使用了6路獨立式鍵盤。復位電路采用手動復位,所謂手動復位,是指通過接通一按鈕開關,使單片機進入復位狀態,晶振電路用30PF的電容和一12M晶體振蕩器組成為整個電路提供時鐘頻率。如圖5示。

晶振電路:8051單片機的時鐘信號通常用兩種電路形式電路得到:內部震蕩方式和外部中斷方式。在引腳XTAL1和XTAL2外部接晶振電路器(簡稱晶振)或陶瓷晶振器,就構成了內部晶振方式。由于單片機內部有一個高增益反相放大器,當外接晶振后,就構成了自激振蕩器并產生振蕩時鐘脈沖。內部振蕩方式的外部電路如圖3-2示。其電容值一般在5~30pf,晶振頻率的典型值為12MHz,采用6MHz的情況也比較多。內部振蕩方式所得的時鐘信號比較穩定,實用電路實用較多。

圖3-2 復位及時鐘振蕩電路

4.3 驅動電路

通過ULN2803構成比較多的驅動電路,電路圖如圖3-3所示。通過單片機的P1.0~P1.3輸出脈沖到ULN2803的1B~4B口,經信號放大后從1C~4C口分別輸出到電機的A、B、C、D相。

圖3-3 步進電機驅動電路

4.4 總體電路圖

圖3-4總體電路圖


5 軟件編程5.1主流程圖

系統分為電機正轉、電機反轉、電機加速與電機減速的幾部分組成,其主程序框圖如圖5-1所示。


圖5-1主流程圖

5.2查鍵部分

查鍵程序用于判斷P0.0口與P0.1口的值,當p0.0口為0時,電機正轉,當p0.0口為1時,繼續判斷p0.1口的值,p0.1口為0時,電機反轉。如圖5-2所示。

圖5-2 查鍵部分流程圖

5.3前進部分

系統初始化之后,前進子程序R0用于給P2口送不同的值,根據電機轉動的相序,使電機正向轉動,P2口的值分別為01H,03H,02H,06H,04H,0CH,08H,09H。流程圖如圖5-3所示。

圖5-3 前進部分流程圖

5.4 后退部分

電機反轉原理與正轉相似,此時P2口的值分別為09H,08H,0CH,04H,06H,02H,03H,01H。流程圖如圖5-4所示。

圖5-4 后退部分流程圖

5.5 加速部分

當電機正轉或反轉的時候,按下加速鍵,調用加速子程序,使電機每轉動一步的延時時間變短,從而實現電機的加速。流程圖如圖5-5所示。

圖5-5 加速部分流程圖

5.6減速部分

電機正轉或反轉的時候,按下減速鍵,通過改變電機每轉動一步的延時時間,使時間變長,從而實現電機減速。流程圖如圖5-6所示。

圖5-6 減速部分流程圖

6 心得體會

通過這次畢業設計,讓我對單片機有了一個更深入的認識,單片機作為一種計算機基本硬件,與計算機廣泛應用緊密相關,他能解決很多大型計算機所不能解決的問題,所以,掌握單片機設計方法是非常必要的。

這其中也讓我對匯編有了更深一層的認識,并且還讓我領略到單片機這一計算機控制的魅力。正如課程設計的任務和地位中所說的那樣,計算機科學在應用上得到飛速發展,因此,學習這方面的知識必須緊密聯系實際:掌握這方面的知識更要強調解決實際問題的能力。同學們要著重學會面對一個實際問題,如何去自己收集資料,如何自己去學習新的知識,如何自己去制定解決問題的方案并通過實踐不斷地去分析和解決前進道路上的一切問題,最后取得成功。

最后,這次課程設計讓我意識到無論什么時候都要細致認真地工作,時刻注重培養自己發現問題、分析問題、解決問題的能力,這樣才能有所收獲,有所進步。



致謝

此次課程設計緊密聯系了大學很多課程所學知識。本設計的順利完成首先要感謝老師悉心指導,老師購買單片機原件,并在設計選題和題目要求中花費了很多心血,并在本設計的總體規劃和設計思想方面給了我很大的啟迪,老師在設計的步驟、總體規劃、各結構功能的實現以及軟硬件仿真等方面都給予了很大幫助.還要感謝室友以及同學,在我遇到困難時給予我幫助,在我想要放棄時給予我鼓勵。我也學到了做研究認真嚴謹的態度,和一絲不茍的作風。通過本次課程設計,我在老師精心指導和嚴格要求下,鞏固并豐富了本科所學習的相關理論知識,并極大地提高了實踐能力。單片機領域和Keil單片機集成開發環境對我今后的學習會有很大的幫助,在此,忠心感謝老師以及許多同學的幫助和支持。



參考文獻

[1]余發山 王莉.微機原理與單片機原理技術.北京:煤炭工業出版社,2013

[2]劉愛榮.單片機應用技術(C語言版).重慶:重慶大學出版社, 2015.5

[3]張杰 宋戈.51單片機應用開發范例大全.北京:人民郵電出版社,2016.5

[4]馬淑華,王鳳文,張美金. 單片機原理與接口技術【M】.北京:北京郵電大學出版社,2007.

[5] 張毅剛,彭喜元,彭宇等單片機原理及應用[M],北京:高等教育出版社,2010.5

[6]趙茂泰.智能儀器原理及應用[M],北京:電子工業出版社,2009

[7]劉江海.EDA技術[M],北京:華中科技大學出版社,2006

[8]郭天祥.51單片機C語言教程[M],北京:電子工業出版社,2006

[9]張忠梅.單片機的C語言應用程序設計[M],北京:北京航空航天大學出版社,2006

[10]張毅剛.MCS-51單片機應用設計[M], 哈爾濱:哈爾濱工業大學出版社,1997.

[11]嚴天峰.單片機應用系統設計與仿真調試[M], 北京:北京航空航天大學出版社,1999.

[12]李朝清. 單片機原理與接口技術[M], 北京:北京航空航天大學出版社,1989,第3版.

[13] 何立民.單片機應用技術選編.北京: 北京航空航天大學出版社,2003

[14] 史國生.交直流調速系統.北京:化學工業出版社,2002

[15] V. Yu. Teplov,A. V. Anisimov. Thermostatting System Using a Single-Chip Microcomputer and Thermoelectric Modules Based on the Peltier Effect[J] ,2002



附錄一:總電路圖


單片機源程序如下:
  1. #include <reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. uchar code FFW[]=
  5. {
  6.               0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09
  7. };

  8. uchar code REV[]=
  9. {
  10.               0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01
  11. };

  12. sbit K1 = P3^0;
  13. sbit K2 = P3^1;
  14. sbit K3 = P3^2;
  15. sbit K4 = P3^3;
  16. sbit K5 = P3^4;
  17. void DelayMS(uint ms)
  18. {
  19.               uchar i;
  20.               while(ms--)
  21.               {
  22.                             for(i=0;i<120;i++);
  23.               }
  24. }

  25. void SETP_MOTOR_FFW(uchar n)
  26. {
  27.               uchar i,j;
  28.               int M=25;
  29.               for(i=0;i<5*n;i++)
  30.               {
  31.                             for(j=0;j<8;j++)
  32.                             {
  33.                                           if(K3 == 0)              break;
  34.                                           P1 = FFW[j];
  35.                                           if(K4 == 0)
  36.                                           {
  37.                                                         P0=0xf6;
  38.                                                         DelayMS(20);
  39.                                           }
  40.                                           else              if(K5 == 0)
  41.                                                         {
  42.                                                                       P0=0xee;
  43.                                                                       DelayMS(100);
  44.                                                         }
  45.                                                         else              DelayMS(50);
  46.                                                         if(K4 == 1&&K5 == 1)                           
  47.                                                         {
  48.                                                                       P0 = 0xfe;            
  49.                                                         }
  50.                             }
  51.               }
  52. }
  53. void SETP_MOTOR_REV(uchar n)
  54. {
  55.               uchar i,j;
  56.               int M=25;
  57.               for(i=0;i<5*n;i++)
  58.               {
  59.                             for(j=0;j<8;j++)
  60.                             {
  61.                                           if(K3 == 0)              break;
  62.                                           P1 = REV[j];
  63.                                           if(K4 == 0)
  64.                                           {
  65.                                                         P0=0xf5;
  66.                                                         DelayMS(20);
  67.                                           }
  68.                                           else              if(K5 == 0)
  69.                                                         {
  70.                                                                       P0=0xed;
  71.                                                                       DelayMS(100);
  72.                                                         }
  73.                                                         else              DelayMS(50);
  74.                                                         if(K4 == 1&&K5 == 1)                           
  75.                                                         {
  76.                                                                       P0 = 0xfd;            
  77.                                                         }
  78.                             }
  79.               }
  80. }
  81. void main()
  82. {
  83.               uchar N = 50;
  84.               while(1)
  85.               {
  86.                             if(K1 == 0)
  87.                             {
  88.                                           P0 = 0xfe;
  89.                                           SETP_MOTOR_FFW(N);                                         
  90.                                           if(K3 == 0) break;
  91. ……………………

  92. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
步進電機控制系統.docx (555.44 KB, 下載次數: 185)


評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:549166 發表于 2019-5-29 09:51 | 只看該作者
感謝分享,另外5.1主程序圖有錯誤,可以修正下
回復

使用道具 舉報

板凳
ID:553838 發表于 2019-6-5 10:06 | 只看該作者
加速 減速的開關可以換成按鍵式的么
回復

使用道具 舉報

地板
ID:776223 發表于 2020-6-11 17:55 | 只看該作者
臨時有急事幣不夠,想看后面的代碼
回復

使用道具 舉報

5#
ID:783950 發表于 2020-6-19 16:09 | 只看該作者
qq1162532810 發表于 2019-5-29 09:51
感謝分享,另外5.1主程序圖有錯誤,可以修正下

怎么修改
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

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