久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

沈陽理工大學plc課設報告(步進電機的運動控制)

時間:2019-05-14 01:39:07下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《沈陽理工大學plc課設報告(步進電機的運動控制)》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《沈陽理工大學plc課設報告(步進電機的運動控制)》。

第一篇:沈陽理工大學plc課設報告(步進電機的運動控制)

摘 要

隨著微電子和計算機技術的發展,步進電機的需求量與日俱增,它廣泛用于打印機、電動玩具等消費類產品以及數控機床、工業機器人、醫療器械等機電產品中,其在各個國民經濟領域都有應用。研究步進電機的控制系統,對提高控制精度和響應速度、節約能源等都具有重要意義。步進電機是將電脈沖信號變換成機械角位移的一種裝置,每個脈沖使轉軸步進一個步距角增量,輸出角位移與輸入脈沖數成正比,轉速與輸入脈沖成正比,轉速與輸入脈沖頻率成正比。

步進電機的控制方式簡單,屬于開環控制,且無累積定位誤差,有較高的定位精度,而PLC作為一種工業控制微機,是實現電機一體化的有力工具,因此基于PLC的步進電機控制技術已廣泛用于數字定位控制中。本控制系統的設計,由硬件設計和軟件設計兩部分組成。其中,硬件設計主要包括步進電機的工作原理、步進電機的驅動電路設計、PLC的輸入輸出特性、PLC的外圍電路設計以及PLC與步進電機的連接與匹配等問題的實現。軟件設計包括主程序以及各個模塊的控制程序,最終實現對步進電機轉動方向及轉動速度的控制。本系統具有智能性、實用性及可靠性的特點。

本文主要介紹了西門子S7-200在步進電機控制方面的應用。

關鍵詞: 步進電機、PLC、西門子S7-200

目錄

1.概述...........................................................................................................................1 2.硬件設計.....................................................................................................................2 2.1控制要求..........................................................................................................2 2.2選擇PLC型號................................................................................................2 2.2.1 I/O點數的估計..................................................................................3 2.2.2 用戶存儲器容量的估算.....................................................................3 2.2.3 CPU功能與結構的選擇....................................................................3 2.2.4機型選擇..............................................................................................4 2.3 系統設計流程示意圖....................................................................................4 2.4 I/O分配表.......................................................................................................5 2.5 I/O接線圖.......................................................................................................5 3.軟件設計....................................................................................................................6 3.1設計梯形圖.....................................................................................................6 3.3.1 梯形圖編程語言概述.........................................................................6 3.3.2 梯形圖指令程序................................................................................6 3.2設計指令表......................................................................................................8 4.調試..........................................................................................................................10 5.結束語.......................................................................................................................11 6.參考文獻...................................................................................................................12

I

1.概述

在電氣信息時代的今天,電動機一直在現代化的生產和生活中起著十分重要的作用。無論是在工農業生產還是在日常生活中的家用電器,都大量地使用著各種各樣的電動機。因此對電動機的控制變得越來越重要了。電動機的控制技術的發展得力于微電子技術、電力電子技術、傳感器技術、永磁材料技術、自動控制技術、微機應用技術的最新發展成就。正是這些技術的進步使電動機控制技術化。

步進電機是機電控制中一種常用的執行機構,其原理是通過對它每相線圈中的電流和順序切換來使電機作步進式旋轉。驅動電路由脈沖信號來控制,所以調節脈沖信號的頻率便可改變步進電機的轉速。通俗地說:當步進驅動器接收到一個脈沖信號,它就驅動步進電機按設定的方向轉動一個固定的角度(及步進角)。通過控制脈沖個數即可以控制角位移量,從而達到準確定位的目的。同時通過控制脈沖頻率來控制電機轉動的速度和加速度,從而達到調速的目的。

PLC全稱可編程控制器,是在電器控制技術和計算機技術的基礎上開發出來的,并逐漸發展成為以微機處理器為核心,把自動化技術、計算機技術、通信技術融為一體的新型工業控制裝置。隨著PLC性價比的不斷提高,其應用領域還將不斷擴大。PLC對步進電機具有良好的控制能力,利用其高速脈沖輸出功能或運動控制功能,即可實現對步進電機的控制。利用PLC控制步進電機,其脈沖分配可以由軟件實現,也可由硬件組成。

2.硬件設計

2.1控制要求

在步進電機單元完成本實驗。

使用移位寄存器指令,可以大大簡化程序設計。移位寄存器指令所描述的操作過程如下,若在輸入端輸入一串脈沖信號,在移位脈沖作用下,脈沖信號依次移位到各個寄存器的內部繼電器中,并將這些內部繼電器的狀態輸出,每個內部繼電器可在不同的時間內得到由輸入端輸入的一串脈沖信號。

圖2.1 步進電動機控制的模擬實驗面板圖

2.2選擇PLC型號

選擇合適的機型是PLC控制系統硬件配置的關鍵問題。目前,國內外生產PLC的廠家很多,不同的廠家的PLC場頻隨談基本功能相似,但有些特殊功能、價格、服務及使用的編程指令和編程軟件都不同。而同一廠家生產的PLC產品又有不同的系列,同一系列中又有不同的CPU型號,不同系列、不同型號的。因此,如何選擇合適的機型至關重要。

PLC的選擇主要應從PLC 的機型、容量、I/O模塊、電源模塊、特殊功能模 2

塊、通信聯網能力等方面加以綜合考慮。PLC機型選擇的基本原則是在滿足功能要求及保證可靠、維護方便的前提下,力爭最佳的性能價格比。選擇時應主要考慮到合理的結構型式,安裝方式的選擇,相應的功能要求,響應速度要求,系統可靠性的要求,機型盡量統一等因素。

2.2.1I/O點數的估計

I/O點數是PLC的一項重要指標.合理選擇I/O點數計可使系統滿足控制要求,又可使系統總投資量最低。PLC的輸入輸出總點數和種類應根據被控對象所需控制的模擬量、開關量等輸入/輸出設備情況來確定,一般一個輸入/輸出元件要占用一個輸入/輸出點。考慮到今后的調整和擴充,一般應在估計的總點數上再加上20%到30%的備用量。

2.2.2 用戶存儲器容量的估算

PLC常用的內存有EPROM、EEPROM和帶鋰電池供電的RAM。一般微型和小型PLC的存儲容量是固定的,介于1-2KB之間。用戶應用程序占用多少內存與許多因素有關,如I/O點數、控制要求、運算處理量、程序結構等。因此在程序設計之前只能粗略的估算。

2.2.3 CPU功能與結構的選擇

PLC的功能日益強大,一般PLC都具有開關量邏

輯運算、定時、計數、數據處理等基本功能,有些PLC還可擴展各種特殊功能模塊,如通信模塊、位置控制模塊等,選型時可考慮以下幾點:

1)功能與任務相適應

2)PLC的處理速度應滿足實時控制的要求 3)PLC結構合理、機型統一 4)在線編程合理和離線編程的選擇

2.2.4機型選擇

綜上所述,可知本次步進電動機控制的模擬中PLC型號選擇:I/O點數的統計:輸入1點(SD);輸出4點(A、B、C、D),控制步進電機。SD為啟動按鈕。估計PLC用戶程序長度:為I/O點數的(10-20)倍,選用S7-200 CPU226 CN AC/DC/RLY輸出的PLC即能滿足要求。

2.3 系統設計流程示意圖

圖2.2 系統設計流程圖

2.4 I/O分配表

表2.1 I/O分配表

2.5 I/O接線圖

圖2.3 I/O接線圖

3.軟件設計

3.1設計梯形圖 3.3.1 梯形圖編程語言概述

梯形圖(LAD)是與電氣控制電路圖相呼應的圖形語言。它沿用了繼電器、觸點、串并聯等術語和類似的圖形符號,并簡化了符號,還增加了一些功能性的指令。梯形圖是融邏輯操作、控制于一體,面向對象的、實時的、圖形化的編程語言。梯形圖信號流向清楚、簡單、直觀、易懂,很適合電氣工程人員使用。梯形圖(LAD)在PLC中使用得非常普遍,通常各廠家,各型號PLC都把它作為第一用戶語言。

3.3.2 梯形圖指令程序

3.2設計指令表

指令語句表(STL)使用助記符來表達PLC的各種控制功能的。它類似于計算機的匯編語言,但比匯編語言直觀易懂,編程簡單,因此也是應用很廣泛的一種編程語言。這種編程語言可使用簡易編程器編程,但比較抽象,一般于梯形圖語言配合使用,互為互補。目前,大多數PLC都有語句表編程功能,但各廠家生產PLC的語句表(STL)所用的助記符互不相同,不能兼容。

Network 1 // 網絡標題

LD T40 EU SHRB M0.0, M20.0, +4

Network 2 LD M20.4 ON I0.0 R M20.0, 4

Network 3 LD M20.3 ON I0.0 R M0.1, 1

Network 4 LD M20.0 S M0.1, 1 Network 5 LD I0.0 AN M0.1 = M0.0 Network 6 LD I0.0 AN T41 TON T40, +1

Network 7 LD T40 TON T41, +1

Network 8 LD M20.0 = Q0.0

Network 9 LD M20.1 = Q0.1

Network 10 LD M20.2 = Q0.2

Network 11 LD M20.3 = Q0.3

4.調試

步進電機的控制系統由可編程控制器和步進電機功率驅動器組成,控制系統中PLC用來產生控制脈沖;通過PLC編程輸出一定數量的方波脈沖,控制步進電機的轉角;同時通過編程控制脈沖頻率。

在輸入端輸入一串脈沖信號(1000),在移位脈沖作用下,此脈沖信號依次移位(1000-0100-0010-0001-1000-…...)至各個寄存器的內部繼電器(Q0.0-Q0.1-Q0.2-Q0.3-Q0.0-……)中,并將這些內部繼電器的狀態輸出(LED燈A亮-B亮-C亮-D亮-A亮-……)。

若將梯形圖網絡三中復位指令的指令操作數M0.1改為M0.2或M0.3,各個寄存器的內部繼電器的狀態輸出將發生改變(1000-0100-0010-0001,即A亮-B亮-C亮-D亮),不會循環移位;

若將梯形圖網絡四中置位指令的指令操作數M0.1改為M0.2或M0.3,各個寄存器的內部繼電器的狀態輸出將發生改變(1000-1100-1110-1111,即A亮-AB亮-ABC亮-ABCD亮),不會循環移位。

5.結束語

這次課程設計我不僅把知識融會貫通,而且豐富了大腦,同時在查找資料的過程中也了解了許多課外知識,開拓了視野,認識了將來電子的發展方向,使自己在專業知識方面和動手能力方面有了質的飛躍。

課程設計是對學校所學知識的全面總結和綜合應用,對所學知識理論的檢驗與總結,能夠培養和提高設計者獨立分析和解決問題的能力。

在不斷的努力下我的課程設計終于完成了。課程設計不僅是對前面所學知識的一種檢驗,而且也是對自己能力的一種提高。通過這次課程設計使我明白了自己原來知識太理論化了,面對單獨的課題的是感覺很茫然。自己要學習的東西還太多,以前老是覺得自己什么東西都會,什么東西都懂,有點眼高手低。通過這次畢業設計,我才明白學習是一個長期積累的過程,在以后的工作、生活中都應該不斷的學習,努力提高自己知識和綜合素質。

不管學會的還是學不會的的確覺得困難比較多,真是萬事開頭難,不知道如何入手。最后終于做完了有種如釋重負的感覺。此外,還得出一個結論:知識必須通過應用才能實現其價值!有些東西以為學會了,但真正到用的時候才發現是兩回事,所以我認為只有到真正會用的時候才是真的學會了。

在設計過程中,我通過查閱大量有關資料,與同學交流經驗和自學,并向老師請教等方式,使自己學到了不少知識,也經歷了不少艱辛,但收獲同樣巨大。在整個設計中我懂得了許多東西,也培養了我獨立工作的能力,樹立了對自己工作能力的信心,相信會對今后的學習工作生活有非常重要的影響。

總之,通過這次課程設計大大提高了動手的能力,使我充分體會到了在創造過程中探索的艱難和成功時的喜悅。雖然這個設計做的也不太好,但是在設計過程中所學到的東西是這次課程設計的最大收獲和財富,使我終身受益。

6.參考文獻

[1] 劉順禧.電氣控制技術.北京:北京理工大學出版社,1995 [2] 袁任光.可編程序控制器(PLC)應用技術與實例.第2版.廣州:華南理工大學出版社,2000 [3] 謝劍英.微型計算機控制技術.第3版.北京:國防工業出版社,2001 [4] 西門子公司.SIMATIC S7-200可編程序控制器系統手冊,2000 [5] 鄧則名.電器與可編程序控制器應用技術.機械工業出版社,1997 [6] 廖常初.PLC編程及應用.北京:機械工業出版社,2002 [7] 陳在平.可編程控制器技術與應用系統設計.機械工業出版社,2002 [8] 何衍慶.可編程序控制器原理及應用技巧.北京:化學工業出版社,2000 [9] 譚浩強.PLC程序設計教程.北京:清華大學出版社,2000

第二篇:三菱PLC與步進電機控制練習題 1

三菱PLC與步進電機控制練習題 1

1.參數設置與工作要求。

按照自己設計的電氣圖設置,主回路由一個帶星-三角降壓啟動的正反轉電機控制回路【正、反轉啟動時,星形運行時間 4秒,再轉換成三角運行;正、反轉轉換時的時間間隔為5 秒】、變頻器控制的單速電機三速段變速控制回路【設置參數:變頻器設置為第一速段為25Hz加速時間 2 秒,第二速段為35Hz、第三速段為50 Hz】、步進電機控制回路【設置參數:步進電機,第一次動作為正向旋轉4 圈,脈沖頻400Hz;第二次動作為正向旋轉 3圈脈沖頻率400Hz;第三次動作為反向向旋轉6圈,脈沖頻率600Hz:步進驅動器設置為4 細分,電流設置為1.5A。】組成。競賽以電機旋轉“順時針旋轉為正向,逆時針為反向”為準。

(1)整個動作實現過程應采用無人工干預的方式,由PLC控制實現。

(2)整個動作實現過程不考慮任何特殊情況下的如緊急停車或自動恢復。

(3)使用SB1作為起動、SB2停止的控制方式,并有工作狀態指示。

(4)整個控制電路(含主回路與控制回路),必須按自己設計的圖紙連接實現。

(5)熱繼電器FR1、FR2的整定電流均為0.4A。

2.工藝過程實現。

按下啟動按鈕SB1后,M1按降壓啟動模式(星形)正轉;4 s后,轉入三角形運轉(為保證轉換時不出現短路,應在程序上使KMY轉成KM△的時間間隔為0.2秒)。同時,步進電機M3第一次正向旋轉 4 圈停車;停2s后,變頻器所控電機M2以第二速段正向旋轉 6s停車(時間包含加速時間),第一次動作過程結束。停 1.5s后,步進電機M3第二次正向旋轉 3圈停止;此時再停 2s 后,變頻器所控電機M2按第一速段反向旋轉 8s停車,當變頻器所控電機M2停車的同時電機M1停轉(在停轉前的過程中電機M1一直保持三角形運轉),第二次動作過程結束。停5s 后,M1按降壓啟動模式(星形)反轉;4 s后,轉入三角形運轉(為保證轉換時不出現短路,應在程序上使KMY轉成KM△的時間間隔為 0.2秒)。同時,步進電機M3第三次反向旋轉6圈停止;再停2s后,變頻器所控電機M2按第三速段正向旋轉,按下停止按鈕SB2后,整個動作過程結束。

二、不考慮特殊情下系統故障的問題

在編程時考慮例如緊急停止、突然斷電情況下系統當時的運行狀態,重新啟動時,按下啟動按鈕系統從當時狀態恢復并繼續運行、按下復位按鈕再按啟動按鈕系統重新開始從頭運行。

第三篇:ARM的步進電機細分控制報告

基于ARM的步進電機細分驅動控制設計

一、ARM簡介

ARM 公司是一家IP供應商,其核心業務是IP核以及相關工具的開發和設計。半導體廠商通過購買ARM公司的IP授權來生產自己的微處理器芯片。由此以來,處理器內核來自ARM公司、各芯片廠商結合自身已有的技術優勢以及芯片的市場定位等因數使芯片設計最優化,從而產生了一大批高度集成、各據特色的SOC芯片。

ARM微處理器具有以下特點:采用RISC指令集、使用大量寄存器、ARM/THUMB指令支持、三/五級流水線具有低功耗、低成本、高性能等。

到目前為止,ARM公司的IP核已經由ARM7,ARM9發展到今天的ARM11版本,ARM微處理器及技術的應用已經廣泛深入到國民經濟的各個領域, 如工業控制領域、網絡應用、消費類電子產品及成像和安全產品等領域。

鑒于ARM7所具備的強大功能完全可以滿足本次設計要求,本次設計仍使用ARM7系列芯片。

二.步進電機細分控制方案

1、步進電機細分技術簡介

細分驅動技術在七十年代中期由美國學者首次提出,基本原理是將繞組中的電流細分。由常規的矩形波供電改為階梯波供電,此時繞組中的電流將按一定的階梯順序上升和下降,從而將每一自然步進行細分。步進電機細分控制的本質是通過對勵磁繞組中的電流控制,使步進電機合成磁場為均勻離散化的圓形旋轉磁場。采用細分驅動技術可以改善步進電機的運行品質,減少轉矩波動、抑制振蕩、降低噪音、提高步距分辨率。

2、硬件框圖設計

系統總體硬件框圖設計如圖2-1所示:

0

圖2-1總體設計框圖

3、軟件總體設計流程圖

圖2-2 軟件設計流程圖

4、步進電機

圖2-3 28BYJ-48-5VDC步進電機

中間部分是轉子,由一個永磁體組成,邊上的是定子繞組。當定子的一個繞組通電時,將產生一個方向的電磁場,如果這個磁場的方向和轉子磁場方向不在同一條直線上,那么定子和轉子的磁場將產生一個扭力將定子扭轉。依次改變繞組的磁場,就可以使步進電機正轉或反轉(比如通電次序為A->B->C->D正轉,反之則反轉)。而且按照通電順序的不同,可分為單四拍(A-B-C-D)、雙四拍(AB-BC-CD-DA)、單雙八拍(A-AB-B-BC-C-CD-D-DA)三種工作方式。單四拍與雙四拍的步距角相等,但單四拍的轉動力矩小。八拍工作方式的步距角是單四拍與雙四拍的一半,因此,八拍工作方式既可以保持較高的轉動力矩又可以提高控制精度。

由于步進電機的驅動電流較大,單片機不能直接驅動,一般都是使用ULN2003達林頓陣列驅動,當然,使用下拉電阻或三極管也是可以驅動的,只不過效果不是那么好,產生的扭力比較小。

5、電機驅動ULN2003簡介

ULN2003 是高耐壓、大電流復合晶體管陣列,由七個硅NPN 復合晶體管組成。ULN2003是大電流驅動陣列,多用于單片機、智能儀表、PLC、數字量輸出卡等控制電路中。可直接驅動繼電器等負載。輸入5VTTL電平,輸出可達500mA/50V。ULN2003是高耐壓、大電流達林頓陳列,由七個硅NPN達林頓管組成。

圖2-4 ULN2003芯片引腳圖

該電路的特點如下: ULN2003的每一對達林頓都串聯一個2.7K的基極電阻,在5V的工作電壓下它能與TTL和CMOS電路 直接相連,可以直接處理原先需要標準邏輯緩沖器來處理的數據。ULN2003 是高壓大電流達林頓晶體管陣列系列產品,具有電流增益高、工作電壓高、溫度范圍寬、帶負載能力強等特點,適應于各類要求高速大功率驅動的系統。ULN2003 工作電壓高,工作電流大,灌電流可達500mA,并且能夠在關態時承受50V 的電壓,輸出還可以在高負載電流并行運行。其接線圖如下所示:

圖2-5 步進電機驅動電路 6、12864液晶顯示簡介

12864是128*64點陣液晶模塊的點陣數簡稱。液晶屏類型:STN FSTN;模塊顯示效果:黃綠底黑字、藍底白字、白底黑字;驅動方式:1/64 DUTY 1/9 BIAS;背光:LED白色、LED黃綠色;控制器:KS0108或兼容 ST7920 T6963C;數據總線:8 位并口/6800 方式 串口;工作溫度:-20℃~+70℃;儲藏溫度:-30℃~+80℃;點陣格式:128 x 64;現實角度:6:00直視;基本用途:該點陣的屏顯成本相對較低,適用于各類儀器,小型設備的顯示領域。其接線圖如下所示:

圖2-6 12864液晶顯示與LPC2131接口接線圖

三、硬件電路圖

圖2-7 系統硬件電路圖

四、總結

此次基于ARM的步進電機細分驅動控制設計,由于掌握知識及時間有限,我們目前只實現了對步進電機正反轉控制以及三種運行方式(單四拍、雙四拍、單雙八拍)的選擇控制,并且實現了在12864液晶顯示屏上顯示相關的信息。連接好硬件電路,上電復位,程序開始運行。此時步進電機不轉動,按下啟停鍵,步進電機開始轉動,初始值設為正傳,按反轉鍵開始反轉,再按正傳鍵則開始正傳。當按下加速鍵時電機開始加速,當按下減速鍵時電機開始減速。

當然,此次課程設計還存在很多問題,實現的功能較簡單,這都需要以后不斷加強相關知識的學習從而不斷提高自己。

最后,感謝李紅巖老師和黃夢濤老師的辛勤教誨。

五、心得體會

這次課程設計的硬件部分由我來完成,雖然不用焊接電路,但是在畫硬件圖的過程中仍遇到很多問題。例如對Protel軟件的不熟悉,許多操作需要多次嘗試,才能正確完成;還有就是在電路的連接過程中,由于自己的馬虎,線路有錯連和少連的現象。但是經過自己的不斷努力,最終還是完成了任務。

通過這次課程設計,我從一開始對系統的不太熟悉,到能開發一個簡單的系

統,在這整個過程中我學到了很多東西,掌握了一些常用的開發技能,也發現了大量的問題,有些在設計過程中已經解決,有些還有待今后慢慢學習。只要學習就會有更多的問題,有更多的難點,但也會有更多的收獲。

在本次ARM課程設計訓練中,不僅鍛煉了自己的動手能力,也在向同學老師請教的過程中學到了不少東西,十分感謝老師和同學的幫助。通過本次課程設計,我最深的感觸便是,許多東西都需要自己親自去做去實踐去學習,才能真正的弄懂,才能真正的學到東西。

在整個的設計和實踐過程中,通過老師的指導和同學的幫助,我們組最終在最后時間完成了任務。通過這次課程設計,才知道自己需要學習的東西還有很多,下來之后一定得加緊學習。平常我們都只是在課堂上學習,通過這次課程設計,實現了從理論到實踐的飛躍。增強了認識問題,分析問,解決問題的能力。

最后感謝老師對我們此次課設的耐心指導和幫助!

經過這次ARM課程設計,使我對這學期ARM課程做了全面的復習,并學會將其應用于實踐,在這次基于ARM的步進電機細分控制中,我對于ARM、步進電機、液晶顯示及相關軟件都有了進一步的認識,也是我發現團隊合作的重要性,更激起了我對于電子設計方面的熱情。

不過,通過這次課程設計,我同樣感受到了自身知識的缺乏,如不太熟悉使用上位機進行監控、ARM的掌握不夠透徹、還不能脫離參考資料獨立進行軟硬件設計等,這些都需要我以后不斷加強學習鍛煉加以增強,這將對于我今后進一步的學習打下基礎,我以后會不斷根據自身缺點進行學習鍛煉,使自己不斷提高。最后,感謝老師的辛勤教誨!

六、參考文獻

1.ARM嵌入式系統基礎教程[第2版] 主編 周立功 北京航空航天大學出版社.2008 2.步進電動機及其驅動控制系統 主編 劉寶廷 哈爾濱工業大學出版社.1997

附錄

#include“config.h” #define

MOTOA

1<<10

// P0.10

#define

MOTOB

1<<11

// P0.11

#define

MOTOC

1<<12

// P0.12 #define

MOTOD

1<<13

// P0.13 #define

key1

1<<17

// 加速 #define

key2

1<<18

// 減速 #define

key3

1<<19

//正反轉 #define

key4

1<<20

//啟停

#define

KEYCON 0x001e0000 // LED控制字 #define

MOTOCON 0x00003c00 // MOTO控制字

#define

GPIOSET(PIN)IO0SET = PIN

// 方便修改置位端口 #define

GPIOCLR(PIN)IO0CLR = PIN

// 方便修改清位端口 #define

RS

1<<9

//P0.9 #define

SID

1<<6

//P0.6 #define

E

1<<4

//P0.4 #define

PSB

1<<2

//P0.2并行或串行,選擇低電平串行模式 #define

RST

1<<25

//P1.25,復位腳

unsigned char DAT1[64]=“低速—單四拍A-B-C-D運行方式”;unsigned char DAT2[64]=“中速—雙四拍AB-BC-CD-DA運行方式”;unsigned char DAT3[64]=“高速—單雙八拍A-AB-B-BC-C-CD-D-DA運行方式”;unsigned char DAT4[64]=“低速反轉—單四拍D-C-B-A運行方式”;unsigned char DAT5[64]=“中速反轉—雙四拍AD-DC-CB-BA運行方式”;unsigned char DAT6[64]=“高速反轉—單雙八拍D-CD-C-BC-B-AB-A-DA運行方式”;unsigned char DAT7[64]=“

”;unsigned char DAT8[64]=“步進電機細分控制測控1002班:劉怡楠&石娟利”;

void TransferCom(unsigned char data0);void TransferData(unsigned char data1);void delay(unsigned int m);void lcd_mesg(unsigned char *adder1);void SendByte(unsigned char Dbyte);void init(void);void LCD12864_init(void);void DelayNS(uint32 dly);void MOTO_Mode1(uint8 i);

// A-B-C-D void MOTO_Mode10(uint8 i);void MOTO_Mode2(uint8 i);

// AB-BC-CD-DA-AB void MOTO_Mode20(uint8 i);void MOTO_Mode3(uint8 i);

// A-AB-B-BC-C-CD-D-DA-A void MOTO_Mode30(uint8 i);

int main(void){

unsigned int t=0;//啟停標志

unsigned int f=0;//正反轉標志

unsigned int i=0;//電機運行模式標志

PINSEL0=0x00000000;

PINSEL1=0X00000000;

PINSEL2&=~(0x00000006);//設置所有I/O口為普通GPIO口

IO0DIR =MOTOCON;// 配置I/O輸入輸出方向

LCD12864_init();//液晶端口初始化

while((IO0PIN&key1)&&(IO0PIN&key2)&&(IO0PIN&key3)&&(IO0PIN&key4)!=0)

{ init();

lcd_mesg(DAT8);

//顯示界面

}

while(1)

{

if(t==0)//電機停止

{ init();

lcd_mesg(DAT7);

IO0CLR=MOTOCON;

if((IO0PIN&key4)==0)t=!t;//key4控制啟停轉換

} else if(t==1)//電機啟動

{ if((IO0PIN&key1)==0)//key1控制加速

{ if(i>=2)i=2;

else i++;

DelayNS(10);

}

if((IO0PIN&key2)==0)//key2控制減速

{ if(i<=0)i=0;

else i--;

DelayNS(10);

}

if((IO0PIN&key3)==0)f=!f;//key3控制正反轉

if((IO0PIN&key4)==0)t=!t;

if(f==0)

//正轉

{ if(i==0)MOTO_Mode1(10);//低速

else if(i==1)MOTO_Mode2(10);//中速

else if(i==2)MOTO_Mode3(10);//高速

}

else if(f==1)//反轉

{ if(i==0)MOTO_Mode10(10);//低速

else if(i==1)MOTO_Mode20(10);//中速

else if(i==2)MOTO_Mode30(10);//高速

} }

}

return(0);}

void DelayNS(uint32 dly){ uint32 i;

for(;dly>0;dly--)

for(i=0;i<5000;i++);} void MOTO_Mode1(uint8 i)

//單四拍A-B-C-D運行方式 {

while((IO0PIN&key1)&&(IO0PIN&key2)&&(IO0PIN&key3)&&(IO0PIN&key4)!=0)

{

init();

lcd_mesg(DAT1);//顯示字符串DAT1

/* A */

GPIOSET(MOTOA);

DelayNS(i);

GPIOCLR(MOTOA);

/* B */

GPIOSET(MOTOB);

DelayNS(i);

GPIOCLR(MOTOB);

/* C */

GPIOSET(MOTOC);

DelayNS(i);

GPIOCLR(MOTOC);

/* D */

GPIOSET(MOTOD);

DelayNS(i);

GPIOCLR(MOTOD);

} } void MOTO_Mode10(uint8 i)

//單四拍D-C-B-A運行方式 {

while((IO0PIN&key1)&&(IO0PIN&key2)&&(IO0PIN&key3)&&(IO0PIN&key4)!=0)

{

init();

lcd_mesg(DAT4);

//顯示字符串DAT4

/* D */

GPIOSET(MOTOD);

DelayNS(i);

GPIOCLR(MOTOD);

/* C */

GPIOSET(MOTOC);

DelayNS(i);

GPIOCLR(MOTOC);

/* B */

GPIOSET(MOTOB);

DelayNS(i);

GPIOCLR(MOTOB);

/* A */

GPIOSET(MOTOA);

DelayNS(i);

GPIOCLR(MOTOA);

} } void MOTO_Mode2(uint8 i)

//雙四拍AB-BC-CD-DA運行方式 {

while((IO0PIN&key1)&&(IO0PIN&key2)&&(IO0PIN&key3)&&(IO0PIN&key4)!=0)

{

init();

lcd_mesg(DAT2);

//顯示字符串DAT2

GPIOSET(MOTOA);

GPIOSET(MOTOB);

DelayNS(i);

GPIOCLR(MOTOA);

GPIOCLR(MOTOB);

/* BC */

GPIOSET(MOTOB);

GPIOSET(MOTOC);

DelayNS(i);

GPIOCLR(MOTOB);

GPIOCLR(MOTOC);

/* CD */

GPIOSET(MOTOC);

GPIOSET(MOTOD);

DelayNS(i);

GPIOCLR(MOTOC);

GPIOCLR(MOTOD);

/* DA */

GPIOSET(MOTOD);

GPIOSET(MOTOA);

DelayNS(i);

GPIOCLR(MOTOD);

GPIOCLR(MOTOA);

} } void MOTO_Mode20(uint8 i)

//雙四拍AD-DC-CB-BA運行方式 {

while((IO0PIN&key1)&&(IO0PIN&key2)&&(IO0PIN&key3)&&(IO0PIN&key4)!=0)

{

init();

lcd_mesg(DAT5);

//顯示字符串DAT5

GPIOSET(MOTOA);

GPIOSET(MOTOD);

DelayNS(i);

GPIOCLR(MOTOA);

GPIOCLR(MOTOD);

/* DC */

GPIOSET(MOTOD);

GPIOSET(MOTOC);

DelayNS(i);

GPIOCLR(MOTOD);

GPIOCLR(MOTOC);

/* CB */

GPIOSET(MOTOC);

GPIOSET(MOTOB);

DelayNS(i);

GPIOCLR(MOTOC);

GPIOCLR(MOTOB);

/* BA */

GPIOSET(MOTOB);

GPIOSET(MOTOA);

DelayNS(i);

GPIOCLR(MOTOB);

GPIOCLR(MOTOA);

} } void MOTO_Mode3(uint8 i)

//單雙八拍A-AB-B-BC-C-CD-D-DA運行方式 {

while((IO0PIN&key1)&&(IO0PIN&key2)&&(IO0PIN&key3)&&(IO0PIN&key4)!=0)

{

init();

lcd_mesg(DAT3);

//顯示字符串DAT3

/* A */

GPIOSET(MOTOA);

DelayNS(i);

GPIOCLR(MOTOA);

/* AB */

GPIOSET(MOTOA);

GPIOSET(MOTOB);

DelayNS(i);

GPIOCLR(MOTOA);

GPIOCLR(MOTOB);

/* B */

GPIOSET(MOTOB);

DelayNS(i);

GPIOCLR(MOTOB);

/* BC */

GPIOSET(MOTOB);

GPIOSET(MOTOC);

DelayNS(i);

GPIOCLR(MOTOB);

GPIOCLR(MOTOC);

/* C */

GPIOSET(MOTOC);

DelayNS(i);

GPIOCLR(MOTOC);

/* CD */

GPIOSET(MOTOC);

GPIOSET(MOTOD);

DelayNS(i);

GPIOCLR(MOTOC);

GPIOCLR(MOTOD);

/* D */

GPIOSET(MOTOD);

DelayNS(i);

GPIOCLR(MOTOD);

/* DA */

GPIOSET(MOTOD);

GPIOSET(MOTOA);

DelayNS(i);

GPIOCLR(MOTOD);

GPIOCLR(MOTOA);

} } void MOTO_Mode30(uint8 i)

//單雙八拍D-CD-C-BC-B-AB-A-DA運行方式 {

while((IO0PIN&key1)&&(IO0PIN&key2)&&(IO0PIN&key3)&&(IO0PIN&key4)!=0)

{

init();

lcd_mesg(DAT6);

//顯示字符串DAT6

/* D */

GPIOSET(MOTOD);

DelayNS(i);

GPIOCLR(MOTOD);

/* CD */

GPIOSET(MOTOC);

GPIOSET(MOTOD);

DelayNS(i);

GPIOCLR(MOTOC);

GPIOCLR(MOTOD);

/* C */

GPIOSET(MOTOC);

DelayNS(i);

GPIOCLR(MOTOC);

/* BC */

GPIOSET(MOTOB);

GPIOSET(MOTOC);

DelayNS(i);

GPIOCLR(MOTOB);

GPIOCLR(MOTOC);

/* B */

GPIOSET(MOTOB);

DelayNS(i);

GPIOCLR(MOTOB);

/* AB */

GPIOSET(MOTOA);

GPIOSET(MOTOB);

DelayNS(i);

GPIOCLR(MOTOA);

GPIOCLR(MOTOB);

/* A */

GPIOSET(MOTOA);

DelayNS(i);

GPIOCLR(MOTOA);

/* DA */

GPIOSET(MOTOD);

GPIOSET(MOTOA);

DelayNS(i);

GPIOCLR(MOTOD);

GPIOCLR(MOTOA);

} } void delay(unsigned int m){

unsigned int i,j;

for(i=0;i

for(j=0;j<50;j++);} void init(void){ delay(40);

//大于40ms的延時程序

IO0SET=PSB;//設置為串行工作方式

delay(1);

IO1CLR=RST;//復位

delay(1);

IO1SET=RST;//復位置高

delay(10);

TransferCom(0x30);//RE=0,G=0,圖片顯示關

delay(100);

TransferCom(0x0C);//D=1,顯示開

delay(100);

TransferCom(0x01);//清屏

delay(10);

TransferCom(0x06);//模式設置,光標從右向左加1位移動

delay(100);} void lcd_mesg(unsigned char *adder1){ unsigned char i;

TransferCom(0x80);

delay(100);

for(i=0;i<32;i++)

{ TransferData(*adder1);

adder1++;

}

TransferCom(0x90);

delay(100);

for(i=32;i<64;i++)

{ TransferData(*adder1);

adder1++;

} } void SendByte(unsigned char Dbyte){ unsigned char i;

for(i=0;i<8;i++)

{ IO0CLR=E;

if((Dbyte&0x80)==0x80)IO0SET=SID;

else IO0CLR=SID;

Dbyte=Dbyte<<1;

IO0SET=E;

IO0CLR=E;

} }

void TransferCom(unsigned char data0){

IO0SET=RS;

SendByte(0xf8);

// 11111,RW=0,RS=1,0

SendByte(0xf0&data0);//高4位

SendByte(0xf0&data0<<4);//低4位

IO0CLR=RS;

} void TransferData(unsigned char data1){

IO0SET=RS;

SendByte(0xfa);

// 11111,RW=0,RS=1,0

SendByte(0xf0&data1);//高4位

SendByte(0xf0&data1<<4);//低4位

IO0CLR=RS;} void LCD12864_init(void){

IO0DIR|=(E|SID|RS);//設置為輸出

IO0CLR=(E|SID|RS);

IO1DIR|=RST;

IO1CLR=RST;

//復位

delay(1);

IO1SET=RST;

//復位置高 }

第四篇:高性能的PLC控制步進電機在機器人機械手外文翻譯

高性能的PLC控制步進電機在機器人機械手

摘要:在最近幾年,一個完整的多軸數字控制系統已經研制成功。本文

介紹了一個用工業可編程邏輯控制(PLC)來控制五軸轉子位置,方向和速度,從而減少電路元件的數量,降低成本和提高可靠性。一些實驗結果表明是由控制器的高性能和功能得來的。關鍵詞:

PLC,機器人和步進電機。

1、簡介

運動控制的主要目的是設計控制系統能實現真正的自動運動機器。這種性能必須達到優化機械,即生產力實現更高的工作速度,盡量減少能源要求,減少了使機械磨損的因素(1)。一個完全數字化的體系來說通過對基于總線控制系統的最大的靈活性應用系統提供高性能的伺服控制是必需的。在大多數情況下,PLC是一種固態裝置,設計工作在嘈雜的工業環境并執行所有的邏輯功能,早先就實現了對鼓機電繼電器開關,機械定時器和計數器的使用(2)。步進電機,通常用于微型電子計算機,現已廣泛應用于機器人(3)。在本文中,我提出了各軸包含一個由plc控制的步進電機的五檔速度控制軸機器人。(SLC 150)

2、可編程控制器

PLC,像一臺電腦,采用了微處理器芯片進行處理和存儲芯片來存儲方案。PLC的基本結構如圖1所示,輸入設備是監控機器或被控制的過程的傳感器。這些傳感器的狀態(ON或OFF)被輸送到PLC控制器。取決于這些傳感器輸入狀態的PLC的輸出可能切換到活力馬達,繼電器,閥門等....,來控制機器或過程。SLC150的PLC[2]有10個輸入,編號從1到10的,然后再從10數到1的IO當作 IO1的輸入。SLCI50有12個輸出編號從11至16,和111至116。

3、機器人的描述、圖2顯示了一個典型的機器人(4)。它由一英寸上有8-32螺紋孔的12英寸至14英寸大小的底板和炮塔——一個周圍配備了傳送帶的旋轉平臺(它的每一英寸的中心有8-32螺紋孔)。這些孔配合安裝在機器人的手臂和手腕馬達的相對于其中心的不同地;,炮塔鉗,可連接炮塔和炮塔軸;炮塔裝載,可連接底板唇,覆蓋炮塔馬達,和支撐炮塔軸和炮塔。炮塔軸是用來保留炮塔和炮塔內的炮架集合,炮塔軸承(有兩個)的

呈遞擔保裝入舉行炮塔軸,推力 軸承安裝在炮塔的軸上,以適應 機器人的重量,提供平穩和旋轉 炮塔,推力墊圈安裝在炮塔軸接口的推力軸承的安裝和炮塔鉗總成(他們是在任的推力軸承一面放置),炮塔齒輪(有二分之一254?0tha屆一,步進電機(五電機),數字編碼器,40齒)臂環節,是一個機器人手爪手,提供下巴 位置和動態壓縮力信息到控制器。

第五篇:太原理工大學DSP課設報告

一、設計摘要

摘要:

DSP數字信號處理(Digital Signal Processing,簡稱DSP)是一門涉及許多學科而又廣泛應用于許多領域的新興學科。DSP 芯片是一種特別適合數字信號處理運算的微處理器,主要用來實時、快速地實現各種數字信號處理算法用DSP 芯片實現IIR 數字濾波器,不僅具有精確度高、不受環境影響等優點,而且因DSP 芯片的可編程性,可方便地修改濾波器參數,從而改變濾波器的特性,設計十分靈活。IIR數字濾波器有其獨特的優點,IIR數字濾波器單位響應為無限脈沖序列, IIR數字濾波器采用遞歸型結構,即結構上帶有反饋環路。

本課題主要應用MATLAB軟件設計IIR數字濾波器,并對所設計的濾波器進行仿真;應用DSP集成開發環境——CCS調試匯編程序。利用MATLAB仿真得到的濾波器系數,編程實現IIR數字濾波器,得出濾波結果波形,并對結果進行分析與總結。

關鍵字:DSP

IIR濾波器

編程

二、設計目的

(1)通過設計對DSP芯片有進一步的了解。(2)掌握IIR濾波器的設計方法。(3)培養一定的匯編及c語言能力。

三、設計原理

3.1 IIR數字濾波器的理論分析

從IIR數字濾波器的實現來看,有直接型、級聯型、并聯型和格型等基本網絡結構。不同的結構形式會有不同的運算誤差,其穩定性、運算速度、所占用的存儲空間等也有所不同。其中直接Ⅱ型僅需要N級延遲單元,且可作為級聯型和并聯型結構中的基本單元,是最常用的IIR數字濾波器結構之一。IIR數字濾波器的設計方法有兩類[4],一類是借助于模擬濾波器的設計方法設計出模擬濾波器,利用沖激響應不變法或雙線性變換法轉換成數字濾波器,然后用硬件或軟件實現;另一類是直接在頻域或時域中進行設計,設計時需要作輔助工具。對系統傳遞函數為

[3]

H(z)??bzrr?0Nk?0M?r

1??akz?k對應的差分方程為:

y(n)??brx(n?r)??aky(n?k)

r?0k?1MN的IIR數字波濾器來說,設計的任務就是尋求一種因果關系和物理上可實現的系統傳遞函數使H(z)滿足上述的關系,為此可這樣使其頻率響應能夠滿足所希望得到的頻域指標。

3.2 TMS320C5502的體系結構

TMS320VC5402處理器在本系列中處于先進水平。它具有運算速度快,內部存儲空間大,外部接口性能好等優點。所以我選擇了技術上比較先進,價格又較便宜的C5402作為硬件開發對象。下面結合C5402的實際情況,介紹一下該芯片的體系結構。C5402共有144個引腳,其中有20根地址線AO-A19,16根數據線DO-D15,4個外部可屏蔽引腳INTO#-INT3#和一個不可屏蔽中斷引腳BIO#,剩下的引腳可以分成以下幾類:存儲器控制引腳,時鐘/晶振引腳,多通道緩沖串口引腳,主機接口通訊引腳,電源引腳,初始化和復位引腳,通用輸入/輸出引腳,以及用于測試的IEEE1149.1標準JTAG口。

3.3 IIR數字濾波器的設計流程

在設計濾波器時首先要有清晰的思路,因此流程圖的設計至關重要。本設計采用的是基于DSP的IIR數字濾波,針對其要完成的功能,對其流程進行了初步規劃,如圖1所示:

開始系統初始化分配數據空間設置數據指針從指定端口讀數據x(n)并從數據存儲器讀讀取系數完成數據的乘加運算修改數據指針為下一次乘加運算做準備保存結果從指定端口輸出結果圖1 IIR數字濾波器設計流程

根據設計流程,通過DSP仿真軟件編譯出適合參數要求的匯編程序。運用匯編語言進行程序編寫使其具有更好的實時性,此外運用匯編語言編寫更有助于以后的設計拓展。

利用TMS320C5402實現IIR的程序中應注意以下幾點:

(1)數據存放要求。因為采用MAC指令和循環尋址,所以輸入數據和濾波器系數的存放要按照一定的要求。數據塊和系數塊都要放在雙尋址數據存儲區。(2)循環尋址的使用。為了使用循環尋址,除了對數據的存放有要求外,先還要設置BK為塊長N。由于使用了循環尋址,數據和系數的指針在操作后以循環的方式增加1。

(3)數據的初始化。輸入數據塊要初始化為全0。這樣在運算中不會對輸入產生影響。

四、IIR數字濾波器的軟件和硬件設計 4.1 IIR數字濾波器的數據存儲器設計

TMS320C54X定點DSP提供了單周期乘/累加指令MAC和循環尋址方式,使IIR數字濾波器每個樣值的計算可以在一個周期內完成。IIR數字濾波器每個樣值的計算就是實現兩數組對應項乘積的累加和。在計算時有前向通道和反饋通道兩部分,因此在計算設計時要充分考慮x(n)、y(n)和h(n)系數的存放位置,并正確初始化這兩個存儲塊指針,這樣在計算中才能夠準確取數據,實現乘加運算。數據存儲器X:AR2X0X1X2AR1COEF:數據存儲器B2B1B0A2A1

圖2 存儲過程

4.2 IIR濾波器的MATLAB輔助設計

對于脈沖響應不變法,它是將s域內的H(s)轉換成z域內的H(z),但是在映射時,S域內不能一一對應到Z域內的單位圓上,因此容易在仿真中易產生混疊現象,影響實驗效果。基于此,本次設計在MATLAB的仿真中優先考慮應用雙線性變換法。

IIR低通數字濾波器根據相關技術指標進行matlab仿真,從而計算出相應的傳輸函數。其仿真結果結果如圖3所示:

圖3 利用matlab仿真圖

根據以上仿真結果及相應的系數和N值,在相關技術指標不變的情況下,我選用了ChebyshevI型雙線性變換法。

4.3基于DSP的IIR數字濾波器的硬件設計 硬件設計總體方案:

TI公司的2000系列和5000系列的DSP都通用型的芯片,考慮到2000系列的DSP多用于控制方面,而5000系列較2000系列具有更高的時鐘頻率、更低的價格和更加強大的運算功能,所以在數字濾波器系統的設計中采用了TI公司的一款高性能、低功耗的定點DSP: TMS320VC5402。該DSP具有較快的運算速度:運算速度最快可達532MIPS;采用了低功耗設計方式:內核電壓為1.8V,I/O電壓為3.3 V。數字濾波系統的具體方案框圖如圖6所示:

ADCTMS320VC5402FLASHSRAMJTAG時鐘電源DAC圖4數字濾波器系統方案框圖

通常的設計中會采用SV供電并行的ADC(模數轉換)和DAC(數模轉換)芯 片與DSP連接,傳輸數據過程中會占用總線的時間,而且需要采用多片電平轉換器件將SV電平轉換為3.3V的邏輯電平。考慮到TMS320VC5402的片上包含兩個McBSP(多通道緩沖串行口)接口,可以將這兩個通道模仿實現SPI的時序,因此本設計中采用了SPI接口器件,ADC芯片采用的是TLV 1570,實現將需要濾波信號從模擬轉換到數字信號的實時采樣。數模轉換芯片采用的是TLV 5608,實現濾波后的信號從數字信號恢復為所需要的模擬信號。JTGA口供DSP芯片下載程序調試。

PMST=FFA0H, ST1=2300H,;SWWSR=0, OVM=1,FRCT=1,SXM=1STM #X,AR1STM #Y,AR2 STM #d,AR3;RPT A,#5;初始化d(n),d(n-1),d(n-2)=0 STL A,*AR3+ STM #2,AR0 ;初始化Arn是地址偏移量為常數 INLOOP:STM #d+5,AR3;STM #table,AR4;IIR的系數A2,A1,B2,B1,B0 PORTR 100H,*AR1 ;從端口讀入數據

LD *AR1,7,ASTM #N-1,BRC ;計算IIR的節數N RPT ELOOP LOOP:MAC *AR4+,*AR3-,A ;input+d(n-2)*A2 MAC*AR4,*AR3,A-;input+d(n-2)*A2+d(n-1)*A1 MAC*AR4+,*AR3-,A STH A,*AR3+0;d(n)=input+d(n-2)*A2+d(n-1)*A1 MPY *AR4+,*AR3-,A ;d(n-2)*B2 MAC*AR4+,*AR3,A;d(n-2)*B2+d(n-1)*B1 DELAY*AR3-;d(n-2)=d(n-1)MAC*AR4+,*AR3,A;d(n-2)*B2+d(n-1)*B1+d(n)*B0 DELAY*AR3-;d(n-1)=d(n)ELOOP:STHA,*AR2;output=d(n-2)*B2+d(n-1)*B1+d(n)*B0 PORTW *AR2,200h ;將結果寫入文件中BINLOOP

END

五、仿真分析及結果

5.1 CCS仿真細節

CCS是一個開放的環境,可以通過設置不同的驅動程序完成對不同環境的支持。CCS setup 配置程序就是用來定義DSP芯片和目標板類型的。在第一次使用CCS之前必須首先運行CCS setup 配置程序。在以后的使用中,若想改變CCS應用平臺的類型,可以再次運行該配置程序來改變設置。CCS軟件集成了TI公司的Simulator和Emulatord 的驅動程序,用戶可以直接用TI的仿真器進行開發測試。

5.2 IIR數字濾波的軟件調試

在效果圖中,上面波形為DSP實驗箱產生的濾波前的效果圖,下面波形為進行IIR濾波后的效果圖。從兩圖的比較可以看出,所設計的IIR濾波器收到了較好的效果,完成了設計要求。

在編寫及調試的過程中主要遇到以下問題:

(1)在編寫程序的過程中要對所涉及的存儲單元進行初始化,這樣在數據或是代碼段進行匯編時才不會出現問題。

(2)編寫程序需要對數據段、代碼段、堆棧段進行設置。要編寫相應的.cmd(鏈接命令文件)文檔對其進行合理化的分配空間。

(3)在編寫程序時一定要編寫相應的中斷向量表文件,這樣在匯編時才不會出錯。

5.3 芯片選擇

此設計中采用的是C5502 Device Simulator芯片,IIR輸入信號入口地址data_in,輸出地址為out。

圖4 芯片選擇

5.4創建項目

圖5 創建項目

5.5加載程序

圖6 加載程序 5.6程序

(1)IIR.asm.global _iir,_init,_outdata _iir

bset frct

sub #1,t0

mov t0,mmap(csr)add t0,ar0 mov xar2,xdp mov ar2,cdp mov #0,ac0 rpt csr macmz *ar0-,*cdp+,ac0 add t0,ar1 mov xar3,xdp mov ar3,cdp rpt csr macmz *ar1-,*cdp+,ac0 mar *ar1+ mov hi(ac0),*ar1 mov hi(ac0),t0 bclr frct ret _init

sub #1,t0 mov t0,mmap(csr)mov #0,ac0 rpt csr mov ac0,*ar0+ rpt csr mov ac0,*ar1+ ret _outdata

mov t1,ac0 sub #2,ac0 mov ac0,mmap(csr)add ac0,ar0 rpt csr delay *ar0-mar *ar0+ mov t0,*ar0 ret

圖7 匯編源程序

(2)IIR55.c #include “math.h” #define signal_1_f 500 #define signal_2_f 10000 #define signal_sample_f 25000 #define pi 3.1415926 #define IIRNUMBER_L 2 #define bufer_L 256 int N_L=IIRNUMBER_L;int data_in[bufer_L];int out[bufer_L];int x[IIRNUMBER_L+1];int y[IIRNUMBER_L+1];int k=0;int bufer=bufer_L;int fBn[IIRNUMBER_L]={0,0x634a};int fAn[IIRNUMBER_L]={0xe5c,0xe5c};extern int iir(int *x,int *y,int *fAn,int *fBn,int N_L);extern int init(int *,int *,int);extern int outdata(int *,int,int);void inputwave();void main(){ int iirout;inputwave();init(x,y,N_L);while(1){ x[0]=data_in[k];iirout=iir(x,y,fAn,fBn,N_L);outdata(out,iirout,bufer);k++;if(k>=bufer_L){ k=0;} } } void inputwave(){ float wt1;float wt2;int i;for(i=0;i<=bufer_L;i++){ wt1=2*pi*i*signal_1_f;wt1=wt1/signal_sample_f;wt2=2*pi*i*signal_2_f;wt2=wt2/signal_sample_f;data_in[i]=(cos(wt1)+cos(wt2))/2*32768;} }

圖8 c程序

(3)Ink.cmd-stack 0x0500-sysstack 0x0500-heap 0x1000-c-u _Reset-l rts55.lib MEMORY { PAGE 0:

RAM(RWIX): origin=0x000100,length=0x01ff00

ROM(RIX): origin=0x020100,length=0x01ff00

VECS(RIX): origin=0xffff00,length=0x000200 PAGE 2:

IOPORT(RWI):origin=0x000000, length=0x020000 } SECTIONS {

.text >ROM PAGE 0

.data >ROM PAGE 0

.bss >RAM PAGE 0

.const >RAM PAGE 0

.sysmem >RAM PAGE 0

.stack >RAM PAGE 0

.cio

>RAM PAGE 0

.sysstack >RAM PAGE 0

.switch >RAM PAGE 0

.cinit >RAM PAGE 0

.pinit >RAM PAGE 0

.vectors >VECS PAGE 0

.ioport >IOPORT PAGE 2

}

圖9 命令程序 5.7運行結果

圖10 運行結果

5.8更改圖形參數

圖11 更改參數過程 5.9波形圖

圖12波形圖

圖13 濾波前時域波形

圖14濾波前頻域波形

圖15 濾波后時域波形

圖16 濾波后頻域波形

六、心得體會

參考文獻

【1】汪春梅,孫洪波TMS320C55x DSP原理及應用.電子工業出版社.2011.6 【2】 戴明楨.TMS320C54xDSP結構、原理及應用[M].北京航空航天大學出版社,2001,8.【3】 胡圣堯.DSP原理及應用[M].東南大學出版社,2008.7.【4】清源科技.TMS320C54xDSP應用程序設計教程[M].機械工業出版社,2004,1.【5】鄒彥.DSP原理及應用[M].北京:電子工業出版社,2005,1.

下載沈陽理工大學plc課設報告(步進電機的運動控制)word格式文檔
下載沈陽理工大學plc課設報告(步進電機的運動控制).doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    數字電子課設報告汽車尾燈控制電路設計

    本文由無限求書貢獻 doc文檔可能在WAP端瀏覽體驗不佳。建議您優先選擇TXT,或下載源文件到本機查看。一. 概述 汽車尾燈控制電路是很常用的工作電路,在日常的生活中有著很......

主站蜘蛛池模板: 国产免费又色又爽粗视频| 国产精品视频一区二区噜噜| 久久99久久99精品免视看动漫| 亚洲国产成人影院在线播放| 污污内射久久一区二区欧美日韩| 成人啪精品视频网站午夜| 两个人日本www免费版| 欧乱色国产精品兔费视频| 好男人社区在线www| 国产超碰人人做人人爱ⅴa| 免费国产又色又爽又黄的网站| 亚洲制服丝袜中文字幕自拍| 国产超高清麻豆精品传媒麻豆精品| 精品国产一区二区三区av 性色| 狂猛欧美激情性xxxx大豆行情| 五月开心播播网| 免费无码影视在线观看mov| 欧美黑人与白人精品a片| 久久久国产一区二区三区四区小说| 色综合久久久久久久久久| 精品av综合导航| 国产特级毛片aaaaaa视频| 国产精品成人午夜久久| 乱子真实露脸刺激对白| 无码av最新无码av专区| 18禁黄无遮挡网站免费| 国产精品三级av及在线观看| 国产精品偷伦视频免费观看了| 亚洲欧美日韩国产手机在线| 色狠狠色婷婷丁香五月| 久久亚洲色www成人网址| 亚洲—本道中文字幕东京热| 一本久道综合在线无码88| 一边吃奶一边添p好爽高清视频| 在线精品国产成人综合| 日本一区二区三区专线| 成人亚洲a片v一区二区三区蜜臀| 全免费a敌肛交毛片免费| 日韩夜夜高潮夜夜爽无码| 国产v亚洲v天堂无码久久久| 亚洲午夜成人片|