0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

采用AT89S52和VC++的實現(xiàn)步進(jìn)電機(jī)實時顯示控制系統(tǒng)設(shè)計

電子設(shè)計 ? 來源:郭婷 ? 作者:電子設(shè)計 ? 2019-01-09 09:04 ? 次閱讀

1 引言

步進(jìn)電機(jī)是將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開環(huán)控制元件。在非超載的情況下, 電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號的頻率和脈沖數(shù),而不受負(fù)載變化的影響,即給 電機(jī)加一個脈沖信號,電機(jī)則轉(zhuǎn)過一個步距角。這一線性關(guān)系的存在,加上步進(jìn)電機(jī)只有周 期性的誤差而無累積誤差,使得在速度、位置等控制領(lǐng)域,用步進(jìn)電機(jī)來控制變的非常的簡 單。本文設(shè)計了一種基于AT89S52 單片機(jī)和VC++的步進(jìn)電機(jī)控制系統(tǒng),可以實現(xiàn)對步進(jìn) 電機(jī)的基本控制及狀態(tài)實時顯示。

2 系統(tǒng)組成

使用、控制步進(jìn)電機(jī)必須由環(huán)形脈沖源、功率放大電路等部分組成控制系統(tǒng),脈沖信號 一般由單片機(jī)或CPU產(chǎn)生,一般脈沖信號的占空比為0.3-0.4左右,電機(jī)轉(zhuǎn)速越高,占空比則 越大。功率放大是驅(qū)動系統(tǒng)最為重要的部分。步進(jìn)電機(jī)在一定轉(zhuǎn)速下的轉(zhuǎn)矩取決于它的動態(tài) 平均電流而非靜態(tài)電流,平均電流越大,電機(jī)力矩越大,要達(dá)到平均電流大,這就需要驅(qū)動 系統(tǒng)盡量克服電機(jī)的反電勢。因而不同的場合采取不同的驅(qū)動方式。到目前為止,驅(qū)動方式 一般有以下幾種:恒壓、恒壓串電阻、高低壓驅(qū)動、恒流等。

本文設(shè)計系統(tǒng)中,脈沖信號由單片機(jī)AT89S52產(chǎn)生并分配給步進(jìn)電機(jī)各相,功率放大部分由驅(qū)動電路完成,系統(tǒng)結(jié)構(gòu)框圖如圖1所示。

采用AT89S52和VC++的實現(xiàn)步進(jìn)電機(jī)實時顯示控制系統(tǒng)設(shè)計

本文所設(shè)計系統(tǒng)中,步進(jìn)電機(jī)模塊采用35BY48S03永磁式步進(jìn)電機(jī),用戶利用4*4鍵盤或上位機(jī)的控制界面實現(xiàn)指令輸入,采用上位機(jī)或1602字符型液晶模塊實時顯示運行狀態(tài)。

3 硬件設(shè)計

3.1 單片機(jī)最小系統(tǒng)電路

單片機(jī)的最小系統(tǒng)電路包括時鐘電路和復(fù)位電路。本文所設(shè)計系統(tǒng)中,時鐘電路采用內(nèi) 部振蕩方式,所得的時鐘信號比較穩(wěn)定,實用電路中使用較多[3]。復(fù)位電路作用是使單片機(jī) 的片內(nèi)電路初始化,使單片機(jī)從一種確定的狀態(tài)開始運行。復(fù)位電路采用2種基本形式:上 電復(fù)位、開關(guān)復(fù)位。

3.2 鍵盤電路

設(shè)計P1口接4*4鍵盤,鍵盤電路圖如圖2所示:

采用AT89S52和VC++的實現(xiàn)步進(jìn)電機(jī)實時顯示控制系統(tǒng)設(shè)計

3.3 電機(jī)驅(qū)動電路

35BY48S03型步進(jìn)電機(jī)接線圖如圖3所示,從圖中可以看出,電機(jī)共有四組線圈,四組線圈的一個端點連在一起引出,這樣一共有5根引出線。要使步進(jìn)電機(jī)轉(zhuǎn)動,只要以一定的 次序輪流給各引出端通電即可,加電的方式可以有多種,包括單相驅(qū)動、雙相驅(qū)動、單-雙 相驅(qū)動等,相應(yīng)步進(jìn)角有整步和半步區(qū)分。在本文設(shè)計的系統(tǒng)中,采用單相驅(qū)動和單-雙相 驅(qū)動兩種加電方式驅(qū)動步進(jìn)電機(jī)運轉(zhuǎn)。

采用AT89S52和VC++的實現(xiàn)步進(jìn)電機(jī)實時顯示控制系統(tǒng)設(shè)計

根據(jù)該電機(jī)參數(shù),不難設(shè)計出驅(qū)動電路,因其工作電壓為12V,最大電流為0.26A,因 此用一塊開路輸出達(dá)林頓驅(qū)動器(ULN2003)作為驅(qū)動,通過P2.7-P2.4來控制各線圈的接通與 切斷。如果要改變電機(jī)的轉(zhuǎn)動速度只要改變兩次接通之間的時間,而要改變電機(jī)的轉(zhuǎn)動方向, 只要改變各線圈接通的順序[4]。

3.4 串行通信電路

在PC機(jī)內(nèi)接有PC16550(和8250兼容)串行接口、EIA-TTL的電平轉(zhuǎn)換器RS-232C連 接器,除鼠標(biāo)占用一個串行口外,還留有兩個串行口給用戶,這就是COM1(地址3F8H-3FFH) 和COM2(地址2F8H-2FFH),通過這兩個口,可以連接串行通信設(shè)備,如單片機(jī)、仿真機(jī) 等。由于單片機(jī)的串行發(fā)送和接收線TXD和RXD是TTL電平,而PC的COM1或COM2的 RS-232C連接器(D型9針插座)是EIA電平,因此單片機(jī)需加接MAX232芯片,通過串行電 纜線和PC相連接。本文所設(shè)計的串行通信電路如圖4所示。

采用AT89S52和VC++的實現(xiàn)步進(jìn)電機(jī)實時顯示控制系統(tǒng)設(shè)計

3.5 下位機(jī)顯示電路

液晶采用顯示容量為2行16個字的1602液晶,1602采用標(biāo)準(zhǔn)的16腳接口,內(nèi)部的字符發(fā) 生存儲器(CGROM)已經(jīng)存儲了160個不同的點陣字符圖形,每一個字符都有一個固定的 代碼[5]。設(shè)計電路圖如圖5所示。

采用AT89S52和VC++的實現(xiàn)步進(jìn)電機(jī)實時顯示控制系統(tǒng)設(shè)計

4 軟件設(shè)計

軟件設(shè)計可分為兩個部分:上位機(jī)軟件設(shè)計和下位機(jī)軟件設(shè)計。上位機(jī)軟件設(shè)計包括: 上位機(jī)控制環(huán)境設(shè)計、上位機(jī)通信程序設(shè)計以及上位機(jī)程序的封裝發(fā)布;下位機(jī)軟件設(shè)計包 括:鍵盤掃描程序、下位機(jī)通信程序、主驅(qū)動程序、測試部分程序、顯示部分程序。

4.1 上位軟件設(shè)計

Visual C++設(shè)計了一套基礎(chǔ)類庫(Microsoft Foundation Class Library, MFC), MFC把編 程規(guī)范中的大多數(shù)內(nèi)容封裝成為各種類,使程序員從繁雜的編程中解脫出來[6]。根據(jù)系統(tǒng)設(shè) 計需要,設(shè)計一個基于對話框的應(yīng)用程序即可,如圖6所示。

采用AT89S52和VC++的實現(xiàn)步進(jìn)電機(jī)實時顯示控制系統(tǒng)設(shè)計

為實現(xiàn)上位機(jī)與下位機(jī)通信,利用Microsoft提供的串行通信ActiveX控件。該控件的相 應(yīng)文件是MSCOMM32.OCX。在基于對話框的程序中使用控件,需要進(jìn)行以下幾方面操作: 拖動控件圖標(biāo)到窗口上,創(chuàng)建控件ID。在對話框頭文件中聲明CMSComm類的變量及引用控 件類頭文件。創(chuàng)建CMSComm類的實例。建立控件事件響應(yīng)代碼框架[7]。

在電機(jī)狀態(tài)改變后,由下位機(jī)將代表各狀態(tài)的數(shù)據(jù)發(fā)送給上位機(jī),上位機(jī)接收到后存入 一個數(shù)組內(nèi),根據(jù)此數(shù)組內(nèi)容刷新各編輯框內(nèi)容,以達(dá)到實時顯示的目的。此處共有五個數(shù) 據(jù),放入rxdata數(shù)組中,分別代表勵磁狀態(tài)、轉(zhuǎn)動方向、速度、測試1計數(shù)、測試2計數(shù)。上 位機(jī)MSComm控件SetRThreshold屬性設(shè)置為5,則當(dāng)下位機(jī)將五個數(shù)據(jù)發(fā)送完后,上位機(jī)立 即觸發(fā)OnComm事件,進(jìn)行接收[8]。

當(dāng)我們安裝VC++6.0時,如果選擇了ACtiveX控件項(自定義安裝),MSComm控件就 會自動安裝在計算機(jī)上了,并在系統(tǒng)文件夾下多了3個文件:Mscomm.srg,Mscomm32.ocx, Mscomm32.dep,即MSComm控件已經(jīng)過授權(quán),但要注意的是,如果程序移植到其它沒有安 裝VC軟件的PC機(jī)上,必須將其使用“執(zhí)照”License 在注冊表中登記注冊,才可以正常運行。 為了正常運行, 還需要將VC開發(fā)的可執(zhí)行文件與運行所需的三個動態(tài)鏈接文件 MFC42D.DLL,MFCO42D.DLL,MSVCRTD.DLL放在同一個文件夾中。使用Installshield軟 件進(jìn)行封裝實現(xiàn)以上要求即可。

4.2 下位機(jī)軟件設(shè)計

本文所設(shè)計系統(tǒng)中,采用單相驅(qū)動和單-雙相驅(qū)動兩種加電方式驅(qū)動步進(jìn)電機(jī)運轉(zhuǎn),即 單相四拍和單-雙相八拍驅(qū)動,分別為整步和半步運轉(zhuǎn),步進(jìn)角分別為7.5度和3.75度,不同 的驅(qū)動方式其狀態(tài)表不同,兩種驅(qū)動方式的波形及狀態(tài)表如下,其中1代表高電平,表示驅(qū) 動的磁極繞組通電;0代表低電平,表示驅(qū)動的磁極繞組不通電。

采用AT89S52和VC++的實現(xiàn)步進(jìn)電機(jī)實時顯示控制系統(tǒng)設(shè)計

按照設(shè)計要求改變轉(zhuǎn)速,則只要改變P2.7-P2.4輪流改變電平的時間即可達(dá)到要求,這個 時間不應(yīng)采用延時來實現(xiàn),因為會影響到其他功能的實現(xiàn)。這里以定時的方式來實現(xiàn),晶振 頻率為11.0592M,采用T0方式1定時。主程序流程圖如圖7所示:

采用AT89S52和VC++的實現(xiàn)步進(jìn)電機(jī)實時顯示控制系統(tǒng)設(shè)計

系統(tǒng)上電后,首先進(jìn)行初始化,包括液晶屏初始化及將程序所用到的內(nèi)存單元(開關(guān)機(jī) 狀態(tài)標(biāo)志位7FH、正反轉(zhuǎn)標(biāo)志位7EH、單相勵磁或單雙相勵磁標(biāo)志位7DH、測試標(biāo)志位7CH、 當(dāng)前速度寄存單元2EH)清零。然后檢測是否開啟電機(jī),檢測到開信號后,設(shè)置狀態(tài)位,7FH=1,7EH=1,7DH=1,2EH=10,代表起始狀態(tài)設(shè)置為:單雙相勵磁正轉(zhuǎn),起始速度為10r/m。

設(shè)置 T0 相關(guān)參數(shù)后,開始定時,同時檢測鍵盤是否有其它請求發(fā)生,如果有,則改變 相應(yīng)的狀態(tài)位,并改變單片機(jī)輸出波形,控制步進(jìn)電機(jī)運行狀態(tài)改變。

串行通信的編程方式有兩種查詢方式:查TI 或RI 是否為“1”。中斷方式:如果預(yù)先開 了中斷,當(dāng)TI、RI 為“1”,會自動產(chǎn)生中斷。兩種方式中當(dāng)發(fā)送或接受數(shù)據(jù)后都要注意清 TI 或RI。本文所設(shè)計系統(tǒng)中,下位機(jī)采用查詢及中斷兩種接收方式,接收上位機(jī)的控制指 令;發(fā)送采用查詢方式,將當(dāng)前電機(jī)運行狀態(tài)信息發(fā)給上位機(jī)實時顯示。

5 功能驗證

利用示波器測量P2.7-P2.4口產(chǎn)生的波形,以測試電機(jī)的激勵脈沖是否與理論相符,所測 波形如圖8、9所示。圖8是在單-雙相八拍勵磁方式,轉(zhuǎn)速為10轉(zhuǎn)/分的情況下,測量出的P2.7 和P2.5波形,即A,/A的激勵波形。圖9是在單相四拍勵磁方式,轉(zhuǎn)速為30轉(zhuǎn)/分的情況下, 測量出的P2.7和P2.6波形,即A,/B的激勵波形。

采用AT89S52和VC++的實現(xiàn)步進(jìn)電機(jī)實時顯示控制系統(tǒng)設(shè)計

上位機(jī)控制操作和鍵盤控制操作可以單獨發(fā)出指令,也可以交互發(fā)出指令,該系統(tǒng)應(yīng)用 環(huán)境較廣。經(jīng)測試,所設(shè)計系統(tǒng)可以很好的達(dá)到設(shè)計要求,可以實現(xiàn)對步進(jìn)電機(jī)的基本控制 及狀態(tài)實時顯示。

6 結(jié)論

本文設(shè)計出的步進(jìn)電機(jī)控制系統(tǒng),可以實現(xiàn)對步進(jìn)電機(jī)的基本控制及運行狀態(tài)的實時顯 示。該系統(tǒng)實用性強,操作方便,經(jīng)測試取得了良好效果。經(jīng)過一定的技術(shù)改進(jìn)后,可以應(yīng) 用于包裝機(jī)械的物料計量、包裝膜供送、橫封等過程中,精確控制執(zhí)行機(jī)構(gòu)的運行速度和運 行位置。利用步進(jìn)電機(jī)替代傳統(tǒng)的機(jī)械或其它方式,不僅能使包裝機(jī)械結(jié)構(gòu)變得簡單、調(diào)節(jié) 方便、可靠性增加,而且精度會得到很大提高。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6026

    文章

    44455

    瀏覽量

    630918
  • 控制系統(tǒng)
    +關(guān)注

    關(guān)注

    41

    文章

    6472

    瀏覽量

    110302
  • 步進(jìn)電機(jī)
    +關(guān)注

    關(guān)注

    150

    文章

    3081

    瀏覽量

    147188
收藏 人收藏

    評論

    相關(guān)推薦

    基于AT89S52單片機(jī)實現(xiàn)激光雷達(dá)門控控制系統(tǒng)的軟硬件設(shè)計

    介紹了基于 AT89S52的激光雷達(dá)門控控制系統(tǒng)的工作原理,并著重討論系統(tǒng)硬件和軟件的實現(xiàn)方法。系統(tǒng)采用
    的頭像 發(fā)表于 12-17 10:42 ?5922次閱讀
    基于<b class='flag-5'>AT89S52</b>單片機(jī)<b class='flag-5'>實現(xiàn)</b>激光雷達(dá)門控<b class='flag-5'>控制系統(tǒng)</b>的軟硬件設(shè)計

    基于單片機(jī)AT89S52的直流電機(jī)PWM調(diào)速控制系統(tǒng)

    `基于單片機(jī)AT89S52的直流電機(jī)PWM調(diào)速控制系統(tǒng) `
    發(fā)表于 08-15 17:11

    基于單片機(jī)AT89S52的直流電機(jī)PWM調(diào)速控制系統(tǒng)資料下載

    基于單片機(jī)AT89S52的直流電機(jī)PWM調(diào)速控制系統(tǒng) 基于單片機(jī)AT89S52的直流電機(jī)PWM調(diào)速控制系
    發(fā)表于 07-19 05:43

    如何利用AT89S52實現(xiàn)在線編程控制系統(tǒng)的設(shè)計

    AT89S52 ISP原理是什么如何利用AT89S52實現(xiàn)在線編程控制系統(tǒng)的設(shè)計
    發(fā)表于 04-25 06:54

    基于AT89S52的串口通信控制LCM顯示

    系統(tǒng)實現(xiàn)AT89S52 單片機(jī)和計算機(jī)的串口通信,通過計算機(jī)端的軟件控制單片機(jī)驅(qū)動字符顯示顯示
    發(fā)表于 06-16 11:51 ?55次下載

    基于AT89S52的SD卡讀寫系統(tǒng)

    基于AT89S52的SD卡讀寫系統(tǒng)系統(tǒng)采用 MCS 251 架構(gòu)的 AT89S52 單片機(jī)。AT8
    發(fā)表于 02-11 08:55 ?239次下載

    基于AT89S52的遠(yuǎn)程報警和控制系統(tǒng)

    基于AT89S52的遠(yuǎn)程報警和控制系統(tǒng) 闡述了遠(yuǎn)程報警和控制系統(tǒng)的構(gòu)成和原理,同時結(jié)合具體電路說明該系統(tǒng)與各種輸入、輸出模塊間的組成及工作方式。以
    發(fā)表于 04-03 09:07 ?118次下載

    基于AT89C52單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計

    基于AT89C52單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計 摘 要: 提出了一個由AT89C52單片機(jī)控制
    發(fā)表于 04-20 09:31 ?418次下載

    基于AT89S52的空調(diào)溫度控制系統(tǒng)的設(shè)計

    設(shè)計并制作了基于AT89S52 的高精度家用空調(diào)溫度控制系統(tǒng)。系統(tǒng)硬件主要由電源電路、溫度采集電路(DS18B20)、按鍵、顯示電路、控制
    發(fā)表于 11-30 15:09 ?225次下載

    基于AT89S52的溫度顯示報警系統(tǒng)

    本文設(shè)計了一款以DS1 8B20 芯片為核心的溫度數(shù)字顯示報警系統(tǒng)。系統(tǒng)采用AT89S52 單片機(jī)進(jìn)行智能
    發(fā)表于 09-27 14:39 ?2878次閱讀
    基于<b class='flag-5'>AT89S52</b>的溫度<b class='flag-5'>顯示</b>報警<b class='flag-5'>系統(tǒng)</b>

    基于AT89S52自動澆花系統(tǒng)的設(shè)計

    基于AT89S52自動澆花系統(tǒng)的設(shè)計
    發(fā)表于 04-11 11:15 ?61次下載

    基于AT89S52的網(wǎng)絡(luò)控制系統(tǒng)設(shè)計應(yīng)用

    融合單片機(jī)技術(shù)和計算機(jī)網(wǎng)絡(luò)技術(shù),設(shè)計基于AT89S52的單片機(jī)網(wǎng)絡(luò)控制系統(tǒng)。系統(tǒng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)采用總線型,網(wǎng)絡(luò)接口電路采用端口轉(zhuǎn)發(fā)的形式,并對
    發(fā)表于 09-21 10:24 ?8次下載
    基于<b class='flag-5'>AT89S52</b>的網(wǎng)絡(luò)<b class='flag-5'>控制系統(tǒng)</b>設(shè)計應(yīng)用

    基于AT89S52的無人機(jī)航空遙感控制系統(tǒng)設(shè)計

    為了滿足科學(xué)遙感實驗、完成遙感作業(yè)任務(wù)、協(xié)調(diào)無人機(jī)電子吊艙中多組件工作、控制遙感影像傳感器姿態(tài),系統(tǒng)AT89S52 為主控芯片,擴(kuò)展多路串口及USB接口以實現(xiàn)
    發(fā)表于 03-27 10:53 ?2486次閱讀
    基于<b class='flag-5'>AT89S52</b>的無人機(jī)航空遙感<b class='flag-5'>控制系統(tǒng)</b>設(shè)計

    如何使用51單片機(jī)進(jìn)行步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計與實現(xiàn)

    結(jié)合 51 單片機(jī)的特點,研究設(shè)計步進(jìn)電機(jī)控制系統(tǒng),以 51 單片機(jī) AT89S52控制核心,選用 ULN2003A 芯片組成的驅(qū)動電
    發(fā)表于 05-10 08:00 ?16次下載
    如何使用51單片機(jī)進(jìn)行<b class='flag-5'>步進(jìn)</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>控制系統(tǒng)</b>的設(shè)計與<b class='flag-5'>實現(xiàn)</b>

    基于AT89S52單片機(jī)的PID恒溫控制系統(tǒng)

    電子發(fā)燒友網(wǎng)站提供《基于AT89S52單片機(jī)的PID恒溫控制系統(tǒng).doc》資料免費下載
    發(fā)表于 10-12 09:37 ?28次下載
    基于<b class='flag-5'>AT89S52</b>單片機(jī)的PID恒溫<b class='flag-5'>控制系統(tǒng)</b>