智能儀表論文基于單片機的電機控制_第1頁
智能儀表論文基于單片機的電機控制_第2頁
智能儀表論文基于單片機的電機控制_第3頁
智能儀表論文基于單片機的電機控制_第4頁
智能儀表論文基于單片機的電機控制_第5頁
已閱讀5頁,還剩29頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、內蒙古科技大學智能儀表綜合訓練設計說明書題 目:基于單片機的電機控制學生姓名: 學 號:專 業:測控技術與儀器班 級:指導教師: 中文摘要步進電機是一種進行精確步進運動的機電執行元件,它廣泛應用于工業機械的數字控制,為使系統的可靠性、通用性、可維護性以及性價比最優,根據控制系統功能要求及步進電機應用環境,確定了設計系統硬件和軟件的功能劃分,從而實現了基于8051單片機的四相步進電機的控制系統。本設計采用AT89S51單片機實現對步進電機的控制。通過單片機的I/O來實現對步進電機的控制,用uln2003來驅動步進電機,并且使用了發光二極管LED來顯示步進電機的轉速,在單片機的P1口使用四個LED

2、來作為控制的標志。用獨立連接式非編碼鍵盤來對電機的狀態進行控制。關鍵詞:步進電機,單片機,AT89S51,發光二極管目 錄第1章 前言 1.1什么是步進電機51.2步進電機的基本特性61.3步進電機的靜態指標及術語6第2章 總體方案設計2.1步進電機原理及控制技術6 2.1.1步進電機原理簡述7 2.1.2步進電機控制技術簡述72.2總體設計方框圖9第3章 硬件設計3.1主要儀器93.2主要芯片說明9 3.2.1 28BYJ-48四相步進電機9 3.2.2 ULN2003 9 3.2.3 STC89C52RC 11 3.2.4 MT03641BR八位共陽數碼管143.3 電路說明15 3.3.

3、1控制電路16 3.3.2驅動電路16 3.3.3 顯示說明17第4章 軟件設計4.1上位機主程序流程圖184.2下位機程序流程圖19電機運行子程序流程圖20第5章 總結21參考文獻附錄A硬件原理圖附錄B:上位機程序附錄C:下位機程序第一章 前言步進電機是一種進行精確步進運動的機電執行元件,它廣泛應用于工業機械的數字控制,為使系統的可靠性、通用性、可維護性以及性價比最優,根據控制系統功能要求及步進電機應用環境,確定了設計系統硬件和軟件的功能劃分,從而實現了基于8051單片機的四相步進電機的控制系統。控制系統通過單片機存儲器、I/O接口、中斷、鍵盤、LED顯示器的擴展、驅動及保護電路、人機接口電

4、路、中斷系統及復位電路、單電壓驅動電路等的設計。實現了步進電機運行。 隨著單片機技術的不斷發展,單片機在日用電子產品中的應用越來越廣泛,自六十年代初期以來,步進電機的應用得到很大的提高。人們用它來驅動時鐘和其他采用指針的儀器,打印機、繪圖儀,磁盤光盤驅動器、各種自動控制閥、各種工具,還有機器人等機械裝置。此外作為執行元件,步進電機是機電一體化的關鍵產品之一,被廣泛應用在各種自動化控制系統中,隨著微電子和計算機技術的發展,它的需要量與日俱增,在各個國民經濟領域都有應用。步進電機是機電數字控制系統中常用的執行元件,由于其精度高、體積小、控制方便靈活,因此在智能儀表和位置控制中得到了廣泛的應用,大規

5、模集成電路的發展以及單片機技術的迅速普及,為設計功能強,價格低的步進電機控制驅動器提供了先進的技術和充足的資源。1.1什么是步進電機步進電機是將電脈沖信號轉變為角位移或線位移的開環控制元件。在非超載的情況下,電機的轉速、停止的位置只取決于脈沖信號的頻率和脈沖數,而不受負載變化的影響,即給電機加一個脈沖信號,電機則轉過一個步距角。這一線性關系的存在,加上步進電機只有周期性的誤差而無累積誤差等特點。使得在速度、位置等控制領域用步進電機來控制變的非常的簡單。 雖然步進電機已被廣泛地應用,但步進電機并不能象普通的直流電機,交流電機在常規下使用。它必須由雙環形脈沖信號、功率驅動電路等組成控制系統方可使用

6、。因此用好步進電機卻非易事,它涉及到機械、電機、電子及計算機等許多專業知識。 目前,生產步進電機的廠家的確不少,但具有專業技術人員,能夠自行開發,研制的廠家卻非常少,大部分的廠家只一、二十人,連最基本的設備都沒有。僅僅處于一種盲目的仿制階段。這就給用戶在產品選型、使用中造成許多麻煩。簽于上述情況,我們決定以廣泛的感應子式步進電機為例。敘述其基本工作原理。望能對廣大用戶在選型、使用、及整機改進時有所幫助。 1.2步進電機的基本特性步進電機有如下特點: (1)步進電機的角位移與輸入脈沖數嚴格成正比,因此當它轉一轉后,沒有累計誤差,具有良好的跟隨性。 (2)由步進電機與驅動電路組成的開環數控系統,既

7、非常方便、廉價,也非常可靠。同時,它也可以有角度反饋環節組成高性能的閉環數控系統。 (3)步進電機的動態響應快,易于啟停、正反轉及變速。 (4)速度可在相當寬的范圍內平滑調節,低速下仍能保證獲得很大的轉矩,因此一般可以不用減速器而直接驅動負載。 (5)步進電機只能通過脈沖電源供電才能運行,它不能直接用交流電源或直流電源。 (6)步進電機自身的噪聲和振動比較大,帶慣性負載的能力強。 1.3步進電機的靜態指標及術語相數:產生不同隊N、S磁場的激磁線圈對數,常用m表示。 拍數:完成一個磁場周期性變化所需脈沖用n表示,或指電機轉過一個齒距角所需脈沖數,以四相電機為例,有四相四拍運行方式即ABBCCDD

8、AAB,四相八拍運行方式即AABBBCCCDDDAA。 步距角:對應一個脈沖信號,電機轉子轉過的角位移用表示。=360度(轉子齒角運行拍數),以常規二、四相,轉子齒角為50齒角電機為例。四相運行時步距角為=360度/(50*4)=1.8度,八拍運行時步距角為=360度/(50*8)=0.9度。 定位轉矩:電機在不通電的狀態下,電機轉子自身的鎖定力矩(由磁場齒形的諧波以及機械誤差造成的)。 靜轉矩:電機在額定靜態作業下,電機不做旋轉運動時,電機轉軸的鎖定力矩。此力矩是衡量電機體積的標準,與驅動電壓及驅動電源等無關。雖然靜態轉矩與電磁激磁匝數成正比,與定子和轉子間的氣隙有關。但過分采用減小氣隙,增

9、加勵磁匝數來提高靜轉矩是不可取的,這樣會造成電機的發熱及機械噪音。第二章 總體設計方案2.1 步進電機原理及控制技術2.1.1步進電機原理簡述由于步進電機是一種將電脈沖信號轉換成直線或角位移的執行元件,它不能直接接到交直流電源上,而必須使用專業設備-步進電機控制驅動器,典型步進電機控制系統:控制器可以發出脈沖頻率從幾赫茲到幾千赫茲可以連續變化的脈沖信號,它為環形分配器提供脈沖序列,環形分配器的主要功能是把來自控制環節的脈沖序列按一定的規律分配后,經過功率放大器的放大加到步進電機驅動電源的各項輸入端,以驅動步進電機的轉動,環形分配器主要有兩大類:一類是用計算機軟件設計的方法實現環形分配器要求的功

10、能,通常稱軟環形分配器。另一類是用硬件構成的環形分配器,通常稱硬環形分配器。功率放大器主要對環形分配器的較小輸出信號進行放大,以達到驅動步進電機的目的。2.1.2步進電機控制技術簡述步進電機的基本控制包括轉向控制和速度控制兩個方面。從結構上看,步進電機分為四相相單四拍、四相雙四拍和四相八拍3種,其基本原理如下:(1)步進電機換相順序的控制通電換相這一過程稱為脈沖分配。例如,四相步進電機在單四拍的工作方式下,其各相通電順序為ABCDA,通電控制脈沖必須嚴格按照這一順序分別控制A、B、C相的通斷。四相雙四拍的通電順序為ABBCCDDAAB,四相八拍的通電順序為AABBBCCCDDDAA。本實驗則是

11、單四拍,所以我們需要知道步進電機時序表和時序圖步進電機的時序表和時序圖分別如下圖所示單四拍控制表步序控制位工作狀態控制模型DCBA11110A0E21101B0D31011C0B40111D07單四拍時序圖(2)步進電機的換向控制如果給定工作方式正序換相通電,步進電機正轉。若步進電機的勵磁方式為四相單四拍,即ABCDA,。如果按反序通電換相,即ADCBA,則電機就反轉。其他方式情況類似。(3)步進電機的速度控制如果給步進電機發一個控制脈沖,它就轉一步,再發一個脈沖,它會再轉一步。兩個脈沖的間隔越短,步進電機就轉得越快。調整送給步進電機的脈沖頻率,就可以對步進電機進行調試。(4)步進電機的起停控

12、制步進電機由于其電氣特性,運轉時會有步進感。為了使電機轉動平滑,減小振動,可在步進電機控制脈沖的上升沿和下降沿采用細分的梯形波,可以減小步進電機的步進角,跳過電機運行的平穩性。在步進電機停轉時,為了防止因慣性而使電機軸產生順滑,則需采用合適的鎖定波形,產生鎖定磁力矩,鎖定步進電機的轉軸,使步進電機轉軸不能自由轉動(5)步進電機的加減速控制在步進電機控制系統中,通過實驗發現,如果信號變化太快,步進電機由于慣性跟不上電信號的變化,這時就會產生堵轉和失步現象。所有步進電機在啟動時,必須有加速過程,在停止時波形有減速過程。理想的加速曲線一般為指數曲線,步進電機整個降速過程頻率變化規律是整個加速過程頻率

13、變化規律的逆過程。選定的曲線比較符合步進電機升降過程的運行規律,能充分利用步進電機的有效轉矩,快速響應性好,縮短了升降速的時間,并可防止失步和過沖現象。在一個實際的控制系統中,要根據負載的情況來選擇步進電機。步進電機能響應而不失步的最高步進頻率稱為“啟動頻率”,于此類似“停止頻率”是指系統控制信號突然關斷,步進電機不沖過目標位置的最高步進頻率。電機的啟動頻率、停止頻率和輸出轉矩都要和負載的轉動慣量相適應,有了這些數據,才能有效地對電機進行加減速控制。2.2總體設計方框圖(圖1)系統方框圖第三章 硬件設計3.1 主要儀器1、STC89C52RC單片機芯片 一片2、ULN2003驅動芯片 一片3、

14、MT03641BR八位共陽數碼管芯片 一片4、28BYJ-48電機 一個5、按鍵 四個3.2主要芯片說明3.2.1 28BYJ-48四相步進電機主要技術參數相數:四相電壓:5VDC電流:92mA電阻:130步距角:5.625°空載牽出頻率:800pps 空載牽入頻率:500pps 28BYJ-48圖減速比:1/64牽入轉矩:接線指示:A(橙)、B(黃)、C(藍)、D(灰)、E(紅,中點接+5V)3.3.2 ULN2003ULN2003是大電流驅動陣列,多用于單片機、智能儀表、PLC、數字量輸出卡等控制電路中。可直接驅動繼電器等負載。輸入5VTTL電平,輸出可達500mA/50V。UL

15、N2003是高耐壓、大電流達林頓陳列,由七個硅NPN達林頓管組成。 該電路的特點如下: ULN2003的每一對達林頓都串聯一個2.7K的基極電阻,在5V的工作電壓下它能與TTL和CMOS電路 直接相連,可以直接處理原先需要標準邏輯緩沖器來處理的數據。ULN2003 是高壓大電流達林頓晶體管陣列系列產品,具有電流增益高、工作電壓高、溫度范圍寬、帶負載能力強等特點,適應于各類要求高速大功率驅動的系統。 ULN2003芯片引腳圖引腳1:CPU脈沖輸入端,端口對應一個信號輸出端。引腳2:CPU脈沖輸入端。 引腳3:CPU脈沖輸入端。 引腳4:CPU脈沖輸入端。 引腳5:CPU脈沖輸入端。 引腳6:CP

16、U脈沖輸入端。 引腳7:CPU脈沖輸入端。 引腳8:接地。 引腳9:該腳是內部7個續流二極管負極的公共端,各二極管的正極分別接各達林頓管的集電極。用于感性負載時,該腳接負載電源正極,實現續流作用。如果該腳接地,實際上就是達林頓管的集電極對地接通。 引腳10:脈沖信號輸出端,對應7腳信號輸入端。 引腳11:脈沖信號輸出端,對應6腳信號輸入端。 引腳12:脈沖信號輸出端,對應5腳信號輸入端。 引腳13:脈沖信號輸出端,對應4腳信號輸入端。 引腳14:脈沖信號輸出端,對應3腳信號輸入端。 引腳15:脈沖信號輸出端,對應2腳信號輸入端。 引腳16:脈沖信號輸出端,對應1腳信號輸入端。ULN2003的輸

17、出端可達500mA/50V. 輸出端的二極管學名續流二極管,英文freewheel diode。如果ULN2003的達林頓管輸入端輸入低電平使其截止,其驅動的元件是感性元件,則電流不能突變,此時會產生一個高壓;如果沒有二極管,達林頓管會被擊穿,所以這個二極管主要起保護作用。 由于ULN2003是集電極開路輸出,為了讓這個二極管起到續流作用,必須將COM引腳(pin9)接在負載的供電電源上,只有這樣才能夠形成續流回路。ULN2003是一個非門電路,包含7個單元,單獨每個單元驅動電流最大可達350mA,9腳可以懸空。3.2.3 STC89C52RCSTC89C52RC單片機是新一代高速/低功耗/超

18、強抗干擾的單片機,指令代碼完全兼容傳統8051單片機,12 時鐘/機器周期和 6 時鐘/機器周期可以任意選擇。主要特性如下: 1. 增強型 8051 單片機,6 時鐘/機器周期和 12 時鐘/機器周期可以任意選擇,指令代碼完全兼容傳統 8051. 2. 工作電壓:5.5V3.3V(5V 單片機)/3.8V2.0V(3V 單片機) 3. 工作頻率范圍:040MHz,相當于普通 8051 的 080MHz,實際工 作頻率可達 48MHz 4. 用戶應用程序空間為 8K 字節 5. 片上集成 512 字節 RAM STC89C52RC芯片引腳圖 6. 通用 I/O 口(32 個)復位后為: , P1

19、/P2/P3/P4 是準雙向口/弱上拉, P0 口是漏極開路輸出,作為總線擴展用時,不用加上拉電阻,作為 I/O 口用時,需加上拉電阻。 7. ISP(在系統可編程)/IAP(在應用可編程),無需專用編程器,無需專用仿真器,可通過串口(RxD/P3.0,TxD/P3.1)直接下載用戶程 序,數秒即可完成一片 8. 具有 EEPROM 功能 9. 具有看門狗功能 10. 共 3 個 16 位定時器/計數器。即定時器 T0、T1、T2 11. 外部中斷 4 路,下降沿中斷或低電平觸發電路,Power Down 模式可由外部中斷低電平觸發中斷方式喚醒 12. 通用異步串行口(UART),還可用定時器

20、軟件實現多個 UART 13. 工作溫度范圍:-40+85(工業級)/075(商業級) 14. PDIP 封裝 STC89C52RC 單片機的工作模式掉電模式:典型功耗<0.1A,可由外部中斷喚醒,中斷返回后,繼續執行原程序空閑模式:典型功耗 2mA 正常工作模式:典型功耗 4mA7mA 掉電模式可由外部中斷喚醒,適用于水表、氣表等電池供電系統及便攜設備 STC89C52RC 引腳功能說明VCC(40 引腳):電源電壓 VS S(20 引腳):接地 P0 端口(P0.0P0.7 P0.7,3932 引腳):P0 口是一個漏極開路的 8 位雙向 I/O 口。作為輸出端口,每個引腳能驅動8個

21、TTL 負載,對端口 P0 寫入 每個引腳能驅動寫入“1”時,可以作為高阻抗輸入。在訪問外部程序和數據存儲器時,P0 口也可以提供低 8 位 地址和 8 位數據的復用總線 位數據的復用總線。此時,P0 口內部上拉電阻有效。在 Flash ROM 在線編程時,P0 端口接收指令字節;而在校驗程序時,則輸出指令字節。驗證時,要求外接上拉電阻。 P1 端口(P1.0P1.7,18 引腳):P1 口是一個帶內部上拉電阻的 8 位雙向 I/O 口。P1 的輸出緩沖器可驅動(吸收或者輸出電流方式)4 個 TTL 輸入。對端 口寫入 1 時,通過內部的上拉電阻把端口拉到高電位,這是可用作輸入口。P1 口作輸

22、入口使用時,因為有內部上拉電阻,那些被外部拉低的引腳會輸出一個電流(I)。此外,P1.0 和 P1.1 還可以作為定時器/計數器 2 的外部技術輸入(P1.0/T2和定時器/計數器 2 的觸發輸入(P1.1/T2EX) 。P2 端口(P2.0P2.7,2128 引腳):P2 口是一個帶內部上拉電阻的 8 位雙 向 I/O 端口。P2 的輸出緩沖器可以驅動(吸收或輸出電流方式)4 個 TTL 輸入。 對端口寫入 1 時,通過內部的上拉電阻把端口拉到高電平,這時可用作輸入口。 P2 作為輸入口使用時,因為有內部的上拉電阻,那些被外部信號拉低的引腳會輸出一個電流(I) 。在訪問外部程序存儲器和 16

23、 位地址的外部數據存儲器(如執行“MOVX DPTR”指令)時,P2 送出高 8 位地址。在訪問 8 位地址的外部數據存儲器(如 執行“MOVX R1”指令)時,P2 口引腳上的內容(就是專用寄存器(SFR)區 中的 P2 寄存器的內容) ,在整個訪問期間不會改變。在對 Flash ROM 編程和程序校驗期間, P2也接收高位地址和一些控制信號。P3 端口(P3.0P3.7,1017 引腳) :P3 是一個帶內部上拉電阻的 8 位雙向 I/O 端口。P3 的輸出緩沖器可驅動(吸收或輸出電流方式)4 個 TTL 輸入。對端 口寫入 1 時,通過內部的上拉電阻把端口拉到高電位,這時可用作輸入口。P

24、3 做輸入口使用時,因為有內部的上拉電阻,那些被外部信號拉低的引腳會輸入一 個電流(I) 。 在對 Flash ROM 編程或程序校驗時,P3 還接收一些控制信號。P3 口除作為一般 I/O 口外,還有其他一些復用功能。RST(9 引腳):復位輸入。當輸入連續兩個機器周期以上高電平時為有效, 用來完成單片機單片機的復位初始化操作。看門狗計時完成后,RST 引腳輸出 96 個晶振周期的高電平。特殊寄存器 AUXR(地址 8EH)上的 DISRTO 位可以使此功 能無效。DISRTO 默認狀態下,復位高電平有效。 ALE/ ROG (30 引腳) 地址鎖存控制信號 : (ALE) 是訪問外部程序存

25、儲器時, 鎖存低 8 位地址的輸出脈沖。在 Flash 編程時,此引腳( ROG)也用作編程輸入 脈沖。 在一般情況下,ALE 以晶振六分之一的固定頻率輸出脈沖,可用來作為外部 定時器或時鐘使用。然而,特別強調,在每次訪問外部數據存儲器時,ALE 脈沖 將會跳過。如果需要,通過將地址位 8EH 的 SFR 的第 0 位置“1” ,ALE 操作將無效。這 一位置“1” ,ALE 僅在執行 MOVX 或 MOV 指令時有效。否則,ALE 將被微弱拉 高。這個 ALE 使能標志位(地址位 8EH 的 SFR 的第 0 位)的設置對微控制器處于 外部執行模式下無效。PSEN(29 引腳):PSEN是外

26、部程序存儲器選通信號。當 STC89C52RC 從外部程序存儲器執行外部代碼時,PSEN在每個機器周期被激活兩次,而訪問外部數據存儲器時,PSEN將不被激活。EA/VPP (31 引腳):訪問外部程序存儲器控制信號。為使能從 0000H 到 FFFFH 的外部程序存儲器讀取指令, EA必須接 GND。注意加密方式 1 時, EA將內部鎖 定位 RESET。為了執行內部程序指令, EA應該接 VCC。在 Flash 編程期間,EA也 接收 12 伏 VPP 電壓。 XTAL1(19 引腳) :振蕩器反相放大器和內部時鐘發生電路的輸入端。XTAL2(18 引腳) :振蕩器反相放大器的輸入端。3.2

27、.4 MT03641BR八位共陽數碼管、主要參數工作電壓:2V工作電流:510mA、數碼管顯示原理數碼管動態顯示介面是單片機中應用最為廣泛的一種顯示方式之一,動態驅動是將所有數碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp "的同名端連在一起,另外為每個數碼管的公共極COM增加位元選通控制電路,位元選通由各自獨立的I/O線控制,當單片機輸出字形碼時,所有數碼管都接收到相同的字形碼,但究竟是那個數碼管會顯示出字形,取決于單片機對位元選通COM端電路的控制,所以我們只要將需要顯示的數碼管的選通控制打開,該位元就顯示出字形,沒有選通的數碼管就不會亮。透過分時輪流控制各個LE

28、D數碼管的COM端,就使各個數碼管輪流受控顯示,這就是動態驅動。在輪流顯示過程中,每位元數碼管的點亮時間為12ms,由于人的視覺暫留現象及發光二極體的余輝效應,盡管實際上各位數碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩定的顯示資料,不會有閃爍感,動態顯示的效果和靜態顯示是一樣的,能夠節省大量的I/O口,而且功耗更低。 數碼管內部結構字符 dp g f e d c b a段碼 0 1 1 0 0 0 0 0 00xc0 1 1 1 1 1 1 0 0 10xf9 2 1 0 1 0 0 1 0 00xa4 3 1 0 1 1 0 0 0 00xb0 4 1 0 0 1 1 0

29、 0 10x99 5 1 0 0 1 0 0 1 00x92 6 1 0 0 0 0 0 1 00x82 7 1 1 1 1 1 0 0 00xf8 8 1 0 0 0 0 0 0 00x80 9 1 0 0 1 0 0 0 00x90 COM根據表中所給的段碼,只需要送入相應的數碼管即可 3.3電路說明本設計的硬件電路只要包括控制電路、驅動電路、顯示電路三大部分。控制電路只要由按鍵和串行組成,由操作者根據相應的工作需要進行操作。顯示電路主要是為了顯示電機的工作時間和步數。驅動電路主要是對單片機輸出的脈沖進行功率放大,從而驅動電機轉動。3.3.1控制電路根據系統的控制要求,控制輸入部分設置了時

30、間控制,步數控制,啟動控制三部分。時間控制按鍵與P1.4口連接,步數控制按鍵與P1.5口連接,啟動控制按鍵與P1.6口連接。單片機與單片機之間則通過P3.0和P3.1進行串行通訊。如下圖所示3.3.2驅動電路通過ULN2803構成比較多的驅動電路,電路圖下圖所示。通過單片機的P1.0P1.3輸出脈沖到ULN2803的1B4B口,經信號放大后從1C4C口分別輸出到電機的A、B、C、D相。 3.3.3顯示電路在該步進電機的控制器中,電機可以設定時間和步數,這里設計了電機轉速和電機的時間的顯示電路。在顯示電路中,主要是利用了單片機的P0口。采用四個共陽數碼管作顯示。第一個和第二個數碼管顯示時間的設定

31、,第三個和第四個顯示步數。第四章軟件設計通過分析可以看出,實現系統功能可以采用多種方法,由于隨時有可能輸入加速、加速信號和方向信號,因而采用中斷方式效率最高,這樣總共要完成3個部分的工作才能滿足課題要求,即主程序部分、定時器中斷部分、外部中斷0和外部中斷1部分,其中主程序的主要功能是系統初始參數的設置及啟動開關的檢測,若啟動開關合上則系統開始工作,反之系統停止工作;定時器部分控制脈沖頻率,它決定了步進電機轉速的快慢;兩個外部中斷程序要做的工作都是為了完成改變速度這一功能。4.1上位機主程序流程圖主程序中要完成的工作主要有系統初始值的設置、系統狀態的顯示以及各種開關狀態的檢測判斷等。其中系統初始

32、狀態的設置內容較多,該系統中,需要初始化定時器、外部中斷;對P1口送初值以決定脈沖分配方式。若初始化P1=0xff、時間和步數初始值均設為0,就意味著步進電機按四相單四拍運行,系統上電后在沒有操作的情況下,步進電機不旋轉,時間值顯示“00”,步數值顯示“00”外部中斷設計 外部中斷所要完成的工作是根據按鍵次數,改變速度值存儲區中的數據(該數據為定時器的中斷次數),這樣就改變了步進電機的輸出脈沖頻率,也就是改變了電機的轉速。速度增加按鈕S2為INT0中斷,其程序流程為原數據,當值等于7時,不改變原數值返回,小于7時,數據加1后返回;速度減少按鈕S3,當原數據不為0,減1保存數據,原數據為0則保持

33、不變。程序流程圖如下圖所示。4.2下位機程序流程圖首先調用初始化子函數,然后判斷子程序參數的值,然后調用電機運轉子程序。4.2.1電機運行子程序流程圖給電機賦初值,對電機的時間,步數都進行現實的設定。當上位機傳給下位機信號時,下位機就開始進行一系列的判斷,讓步進電機進行運轉。第五章 總結本設計通過分析步進電機結構、工作原理,查閱步進電機控制系統的相關科技文獻,遵循實用、簡單、可靠和低成本的原則,設計了一種既可用于精度要求不高,但控制需完備的場合。對本次設計,有以下結論: (1)采用單片機為控制核心,利用其強大的功能,把鍵盤和顯示電路有機的結合起來,組成一個操作方便、交互性強的控制系統。而且整個

34、系統所包含的技術幾乎包括了現本科學校控制專業所要求的知識,有利于實踐教學取得最大效果。 (2)鍵盤電路和顯示電路采用了動態掃描技術,節約了單片機資源。 (3)系統軟件采用結構化設計,具有易維護性,根據用戶新的要求,對軟件系統進行少量的修改,使系統功能得到一定程度的提高。設計心得和體會:從這次的課程設計中,我真真正正的意識到,在以后的學習中,要理論聯系實際,把我們所學的理論知識用到實際當中,學習單機片機更是如此,程序只有在經常的寫與讀的過程中才能提高,這就是我在這次課程設計中的最大收獲。在這次設計過程中培養了我們的團隊協作精神,便于我們走到工作崗位后能很快適應工作環境。我知道自己做的工作還很不夠

35、,由于軟件和硬件的各方面原因,系統的應用討論不夠,精度還有待于進一步提高。由于個人的原因,設備的原因,實驗做的不好不夠,相關驗證性的數據、信息不夠豐富。可以肯定,隨著技術的不斷發展,步進電機的控制應用前景將越來越寬闊,而其控制系統也將向著智能化和網絡化的方向發展。本論文的研究和探討還遠遠不夠,我們要在現在的基礎上,不斷吸取新的技術和方法,并將它們應用于本課題的研究上來,進一步深化我們的研究深度,爭取有更多的收獲。參考文獻【1】張家生. 電機原理與拖動基礎【M】. 北京:北京郵電大學出版社,2006. 【2】馬淑華,王鳳文,張美金. 單片機原理與接口技術【M】.北京:北京郵電大學出版社,2007

36、. 【3】顧德英,張健,馬淑華.計算機控制技術【M】. 北京:北京郵電大學出版社,2006. 【4】華成英,童詩白. 模擬電子技術基礎【M】. 北京:高等教育出版社,2008 【5】張靖武,周靈彬. 單片機系統的PROTEUS設計與仿真【M】. 北京:電子工業出版社,2007【6】周航慈著.單片機應用程序設計基礎.北京:電子工業出版社,1997年7月【7】朱承高.電工及電子技術手冊【M】.北京:高等教育出版社,1990【8】閻石.數字電子技術基礎(第三版). 北京:高等教育出版社,1989【9】廖常初.現場總線概述【J】.電工技術,1999.6【10】李廣弟編著.單片機應用程序設計基礎.北京:

37、北京航空航天大學出版社,1994年6月【11】王迎旭.單片機原理及及應用.北京:機械工業出版社【12】張迎新.單片微型計算機原理、應用及接口技術.北京:國防工業出版社【13】郭天祥.新概念51單片機C語言教程.北京:電子工業出版社【14】蔡明文 馮先成編著.單片機課程設計.北京:華中科技大學出版社【15】王曉明.電動機的單片機控制.北京航空航天大學出版社 【16】張毅剛.劉杰.MCS-51單片機原理及應用.哈爾濱:哈爾冰工業大學出版社,2008附錄A附錄B上位機程序:#include <reg52.h>#include<stdio.h>#define uchar uns

38、igned char#define uint unsigned intuchar code led_tab16=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/LED控制字uchar showbuf4=0x3f,0x3f,0x3f,0x3f;/uchar serial_buf=0,time=0,step=0;sbit dt=P10;顯示芯片的接口sbit clk=P11;顯示芯片的接口sbit key1=P14;鍵盤定義sbit key2=P15;sbit key3=P16;sb

39、it key4=P17;void delay(uint j)延時函數uint i=j+1;for(;j>0;j-)for(;i>0;i-); void write_led_bit(uchar bitvalue)按字符串加減位數1clk=0;dt=0;if(bitvalue=1)dt=1;delay(2);clk=1;返回初值void write_led_byte(uchar bytevalue)按字節加減位數(8位)char i,temp;for(i=7;i>=0;i-)temp=bytevalue>>i;為了讓它工作的位數轉成一位temp=temp&0x

40、01;與運算,末位是幾就傳幾write_led_bit(temp);調用上邊的函數void show()uchar i;for(i=0;i<4;i+)write_led_byte(showbufi);void init()TMOD=0x22;SCON=0x58;PCON=0x00;ES=1;ET0=1;PS=1;TH0=0;TL0=0;TR0=0;TH1=0xFD;TL1=0xFD;TR1=1;EA=1; P1=0xff;可以去掉void main()init(); show();while(1) if(key1=0) delay(8);去抖動延時 if(key1=0) time+; if(time=21) time=0; showbuf0=led_tabtime/10;取整(十位) showbuf1=led_tabtime%10;取余(個位) show(); key1=1; while(key1=0); if(key2=0) delay(8); if(key2=0) step+; if(step=21) step=0; showbuf2=led_tabstep/10; showbuf3=led_tabstep%10; show(); key2=1; while(key2=0); if(key3=0)delay(8); if(key3=0) SBUF=time;等候時

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論