步進電機速度控制系統(tǒng)設計_第1頁
步進電機速度控制系統(tǒng)設計_第2頁
步進電機速度控制系統(tǒng)設計_第3頁
步進電機速度控制系統(tǒng)設計_第4頁
步進電機速度控制系統(tǒng)設計_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、步進電機速度控制系統(tǒng)設計目錄1 總體方案的確定11.1 對步進電機的分析 11.2 電機的控制方案 21.3 控制算法的方案 31.4 串口通訊的模擬 32 硬件的設計與實現(xiàn)42.1 微處理器的選擇 42.2 控 制 電 路 的 實 現(xiàn) 42.3 鍵盤和顯示電路 63 軟 件 的 設 計 與 實 現(xiàn) 63.1 控制信號輸入程序 73.2 步 進 電 機 控 制 程 序 設 計 83.3 程序 分 析 及 說 明 94 系 統(tǒng) 的 仿 真 與 調 試 104.1 程 序 的 調 試 114.2 串口通信的調試 114.3 調試結果及分析 115 設 計 總 結 13參考文獻14附錄 15步進電機

2、速度控制系統(tǒng)設計步進電機速度控制系統(tǒng)設計報告1 總體方案的確定系統(tǒng)以單片機為核心,接收并分析來自鍵盤或串口的控制指令,經(jīng)過CPU的邏輯計算輸出控制信息,讓步進電機按要求轉動。由于步進電機是開環(huán)元件,系統(tǒng)不需反饋環(huán)節(jié),但也同時要求控制信號足夠精確。此外,為實現(xiàn)單片機與電機之間信號對接,需要加入步進電機驅動單元。1.1 對步進電機的分析步進電機又叫脈沖電機,它是一種將電脈沖信號轉化為角位移的機電式數(shù)模轉換器。在開環(huán)數(shù)字程序控制系統(tǒng)中,輸出控制部分常采用步進電機作為驅動元件。 步進電機控制線路接收計算機發(fā)來的指令脈沖,控制步進電機做相應的轉動,步進電機驅動數(shù)控系統(tǒng)的工作臺或刀具。很明顯,指令脈沖的總

3、數(shù)就決定了數(shù)控系統(tǒng)的工作臺或刀具的總位移量,指令脈沖的頻率決定了移動的速度。因此,指令脈沖能否被可靠地執(zhí)行,基本上取決于步進電機的性能。步進電機的工作就是步進轉動。在一般的步進電機工作中,其電源都是采用單極性的直流電源。要是步進電機轉動,就必須對步進電機定子的各相繞組以適當?shù)臅r序進行通電。當步進驅動器接收到一個脈沖信號,它就驅動步進電機按設定的方向轉動一個固定的角度(即步進角)。通過控制脈沖個數(shù)即可以控制角位移量, 從而達到準確定位的目的;同時通過控制脈沖頻率來控制電機轉動的速度和加速度,即可達到調速的目的。本設計是用單片機輸出可調脈沖作為單片機的控制信號,通過改寫脈沖頻率調節(jié)單片機轉速。常見

4、的步進電機分三種:永磁式( PM,反應式(VR)和混合式(HB),永磁式步進一般為兩相,轉矩和體積較??;反應式步進一般為三相,可實現(xiàn)大轉矩輸出,但噪聲和振動都很大。混合式步進是指混合了永磁式和反應式的優(yōu)點, 它又分為兩相和五相, 應用最為廣泛。單片機管腳輸出電壓一般不足以驅動步進電機轉動,所以需要在單片機和步進電機之間加入驅動電路。1.2 電機的控制方案步進電機有三相、四相、五相、六相等多種,不同的電機又各有很多工作方式。由于步進電機是一種將電脈沖信號轉換成直線或角位移的執(zhí)行元件,它不能直接接到交直流電源上,而必須使用專用設備-步進電機控制驅動器。典型步進電機控制系統(tǒng)如圖 1所示:控制器可以發(fā)

5、出脈沖頻率從幾赫茲到幾十千赫茲可以連續(xù)變化的脈沖信號,它為環(huán)形分配器提供脈沖序列。環(huán)形分配器的主要功能是把來自控制環(huán)節(jié)的脈沖序列按一定的規(guī)律分配后,經(jīng)過功率放大器的放大加到步進電機驅動電源的各項輸人端,以驅動步進電機的轉動。環(huán)形分配器主要有兩大類: 一類是用計算機軟件設計的方法實現(xiàn)環(huán)分器要求的功能,通常稱軟環(huán)形分配器。另一類是用硬件構成的環(huán)形分配器,通常稱為硬環(huán)形分配器。功率放大器主要對環(huán)形分配器的較小輸出信號進行放大,以達到驅動步進電機目的。圖1典型步進電機控制框圖軟環(huán)形分配即采用微機控制取代脈沖分配器,直接將控制信號分管腳送到驅動電路,常用的辦法是通過編程輸出內存中定義好的控制方式輸出字。

6、這樣,當步進電機的相數(shù)和控制方式確定之后, 以一定規(guī)律輸出控制字就可以了。 軟環(huán)形分配用程序取代了脈沖分配器,一定程度上降低了成本。但如果要預存的控制字很多,就會占用單片機較多內存。止匕外,當所控制的步進電機相數(shù)較多,需要的輸出管腳也會隨之增加, 這樣就占用了單片機較多的數(shù)據(jù)口,降低接口的利用率的同時限制了單片機實現(xiàn)更多功能。由于任務要求系統(tǒng)有鍵盤、 顯示以及串口控制等多個部分,且要控制兩部電機,為留出更多的數(shù)據(jù)接口實現(xiàn)上述功能,設計選擇常規(guī)的電機控制電路。由脈沖分配器完成對電機繞組電平的時序控制(即脈沖分配) ,從而每個電機只需單片機對應輸出一個觸發(fā)信號(控制方向)和一組脈沖波(控制速度)即

7、可。要注意的是,對脈沖波頻率的計算和輸出控制沒有直接輸出控制字的方法精確,響應效果也會因脈沖分配器的存在而稍差一些。1.3 控制算法的方案單片機對步進電機的控制算法也有多種,如上述的輸出字法就是利用單片機內部的計時功能定時輸出控制字,把對電機速度的控制轉變?yōu)閷纱屋敵鰰r間間隔的控制??刂扑惴ê艽蟪潭葲Q定于電機的控制方案。上文選 定的電 機 控制方 案 是要求 單 片機實 時輸出改變電機方 向的觸發(fā)信號和控制電機轉速的脈沖信號。對于電機方向的控制,由按鍵或串口控制指令改寫對應的標志量的值并由接口輸出即可。對電機速度的控制就是對輸出脈沖波頻率的控制,而頻率的大小是要有時間標尺衡量的。單片機內部對輸

8、出頻率的控制是通過兩個中間變量的比較運算實現(xiàn)的:其中一個變量(以 A代替)由單片機內部的計時器改寫,表征時間量作為標尺;另一個變量(以B 代替)由按鍵或串口控制指令改寫,表征速度值(其大小可通過算數(shù)運算與實際速度相統(tǒng)一)。程序在每次執(zhí)行計時中斷程序時改變一次電平:原來是高電平則變?yōu)榈碗娖剑瓉硎堑碗娖絼t變?yōu)楦唠娖?。顯然,B 值的大小直接決定了比較結果產(chǎn)生的快慢,即輸出端高低電平變化的快慢。改變B的大小就可以改變輸出的脈沖頻率,從而控制步進電機的速度。變量的使用不僅方便地實現(xiàn)了對輸出脈沖頻率的控制,還有利于實現(xiàn)多部步進電機的異步運行。針對每個電機定義一個速度變量,分別與時間標量進行比較運算, 比

9、較結果控制各自的管腳電平變化。用取反運算或者位異或運算改寫管腳電平,可以有效控制輸出電平而不互相干擾。1.4 串口通訊的模擬單 片 機 上 有 通 用 異 步 接 收 / 發(fā) 送 器 用 于 串 行 通 信 , 發(fā) 送 時 數(shù) 據(jù) 由 TXD 端 送出,接收時數(shù)據(jù)由RXD端輸入。有兩個緩沖器SBUF, 一個作發(fā)送緩沖器, 另一個作接收緩沖器。短距離的機間通訊可使用UART的TTL電平,使用驅 動芯片可接成RS232C與通用微機進行通訊。波特率時鐘必須從內部定時器1 或定時器2獲得。本設計運用軟件模擬上位機控制端,經(jīng)過串口輸出控制信號到單片機用 行口,形成區(qū)別于鍵盤的另一種控制方式。2硬件的設計

10、與實現(xiàn)2.1 微處理器的選擇AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器和128bytes 隨 機存取數(shù)據(jù)存儲器的低電壓、高性能CMOS8&微處理器。片內置通用8位中 央處理器,采用ATMEL公司的高密度、非易失性存儲技術的生產(chǎn),兼容標準 MCS-51指令系統(tǒng)。AT89C51提供以下標準功能:4K字節(jié)Flash閃存存儲器, 128字節(jié)內部RAM, 32個I/O 口線,兩個16位定時/計數(shù)器;一個5向量兩 級中斷結構,一個全雙工串行通信口,片內振蕩器及時鐘電路。同時,AT89C51 可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式,空閑方 式停止CPU的工作,但允

11、許RAM定時/計數(shù)器、串行通信及中斷系統(tǒng)繼續(xù)工 作。掉電方式保存RAM中的內容,但振蕩器停止工作并禁止其他所有部件工 作直到下一次硬件復位。用AT89C51足以實現(xiàn)對步進電機的簡單控制。2.2 控制電路的實現(xiàn)常規(guī)步進電機的驅動是用ULN達林頓驅動器實現(xiàn)的,具內部含有多個達林頓管,適于感性負載的驅動。本文所設計的步進電機控制驅動器的框路圖如圖2:圖2步進電機控制驅動器框圖ATX9C511,L297r |L298 |d 步進電,L297芯片是一種硬件環(huán)分集成芯片,可產(chǎn)生四相驅動信號,用于計算機控 制的兩相雙極或四相單極步進電機。其內部主要部分是一組譯碼器,能產(chǎn)生各種所需的相序。這一部分是由兩種輸入

12、模式控制,方向控制(CW/CCWB HALF/FULL,以及步進式時鐘 CLOCK能將譯碼器從一階梯推進至另一階梯。譯碼器有四個輸出點連接到輸出邏輯部分,提供抑制和斬波功能所需的相序。因此L297 能產(chǎn)生三種相序信號,對應于三種不同的工作方式:即半步方式(HALF STEP) ,基本步距 (FULL STEP ,整步 ) 一相激勵方式,基本步距兩相激勵方式。脈沖分配器內部是一個 3bit 可逆計數(shù)器,加上組合邏輯產(chǎn)生每周期8 步格雷碼時序信號,就是半步工作方式的時序信號,此時 HALF/FULL 信號為高電。若 HALF/FULL 取低電平,得到基本步距工作方式,即雙四拍全階梯工作方式。L29

13、7 另一個重要組成是由兩個PW晰波器來控制相繞組電流,實現(xiàn)恒流斬波控制以獲得良好的矩頻特性。每個斬波器由一個比較器、一個RS觸發(fā)器和外接采樣電阻組成,并設有一個公用振蕩器,向兩個斬波器提供觸發(fā)脈沖信號。L298 是一種高壓、大電流雙全橋式驅動器,其設計是為接受標準TTL 邏輯電平信號和驅動電感負載的,例如繼電器、圓筒形線圈、直流電動機和步進電動機等。 L298 具有兩抑制輸入,可使器件不受輸入信號影響。每橋的三級管的射極是連接在一起的,相應外接線端可用來連接外設傳感電阻,還可安置另一輸入電源,使邏輯能在低電壓下工作。L298 芯片是具有15 個引出腳的多瓦數(shù)直插式封裝的集成芯片。由 L297

14、和 L298 所組成的步進電機控制電路如圖3 所示。 這種控制電路的優(yōu)點是需要的元件較少,裝配線路簡單,成本低,可靠性高,占空間少??刂齐娐匪栊盘栆脖容^簡易,可以簡化和減輕微型計算機的負擔。另外,L297 和 L298都是獨立的芯片,所以組合和控制十分靈活。但缺點是,所控制的電機類型以及運行方式會受芯片限制。圖3步進電機控制電路2.3 鍵盤和顯示電路本設計鍵盤采用低電平有效的獨立鍵盤,用位運算進行鍵盤掃描。顯示 選用LM016L液晶顯示器,可同時顯示兩部電機的運行方向和速度。加入通信串口,晶振以及相關配件后的系統(tǒng)總電路圖如下,(系統(tǒng)調試 后的完整電路圖見附錄):3軟件的設計與實現(xiàn)步進電機速度

15、控制系統(tǒng)設計單片機是系統(tǒng)的核心,主要承擔控制信號的接受,邏輯分析和運算,控 制量的輸出和顯示的運算和輸出等功能。本程序采用模塊化設計,針對上述 功能主要包括主函數(shù)、鍵盤掃描、串口中斷、計時中斷和顯示程序幾個模塊。 其中,主函數(shù)主要負責對單片機、內部元件及中斷等工作方式進行定義和設 定,并協(xié)調好各模塊之間的運行時序,其流程圖如下:圖5主函數(shù)流程圖開始結束 J3.1 控制信號輸入程序控制信號可以通過獨立鍵盤和串口通訊兩種方式輸入。鍵盤的輸入主要是用掃描程序,即不停取鍵盤接口的邏輯值,與特定值進行位運算就可以識別鍵盤的控制信息。串口通訊控制信號的輸入也是利用了掃描,不過單片機內軟件所要做的,主要是定

16、義計數(shù)器工作及串口協(xié)議,如波特率等。成功實現(xiàn)串口通訊后,對獲得的數(shù)據(jù)編輯運算就可以形成對應的控制輸出。為避免兩種方式的控制信號沖突,程序通過外接開關選定控制方式。整個控制信號輸入程序流程圖如下:圖6輸入掃描程序流程圖3.2 步進電機控制程序設計確定方案的時候已經(jīng)提到,對步進電機的控制主要是對單片機輸出脈沖 頻率的控制。頻率的快慢必然是要有時間來衡量的,顯然要使用單片機內部 的計時器進行計時,電平輸出指令就在計時器中斷程序中。每當計時結束,就執(zhí)行一次比較運算并改寫電平與原來相反。值得注意的是,由于單片機計 時器的計時是對預存的起始量進行減運算。這樣,要想加快電機速度提高輸 出頻率就要減小速度標量

17、B,以減少兩者比較次數(shù),更頻繁地執(zhí)行中斷以改 寫電平,從而達到提高頻率的目的。頻率控制原理圖如圖7所示:圖7頻率變化原理由圖可以明顯地看出,速度標志量越小,輸出波形的頻率越快。由此可 以確定鍵盤控制和串口控制下,步進電機控制算法程序的流程圖如下:圖8步進電機控制程序流程圖3.3 程序分析及說明本設計的程序采用了多個變量,其中Runspeed變量在控制輸入和控制 輸出之間起樞紐作用,可以說對Runspeed的控制就是對電機速度的控制。 計數(shù)器環(huán)節(jié)中,Cnt變量的使用讓計時器解放出來成為獨立的走時,把對計 時中斷次數(shù)的統(tǒng)計作為計算量,而計數(shù)器本身不參與邏輯運算。這樣大大提 高了單片機內有限個計時器

18、的利用率,當有新的控制需要時間量度時,只需步進電機速度控制系統(tǒng)設計增 加 變 量 即 可 。此 外 ,通 過 取 反 改 變 輸 出 電 平 的 算 法 簡 單 方 便 ,節(jié) 省 了 單 片 機 內 存 空 間 的 同 時 也 節(jié) 省 了 有 限 的 數(shù) 據(jù) 口 。設 計 程 序 從 多 方 面 充 分 提 高 單 片 機的利用率,是值得推廣的。4 系統(tǒng)的仿真與調試仿 真 時 ,先 完 成 由 鍵 盤 控 制 的 一 臺 步 進 電 機 的 加 速 減 速 控 制 ,確 定 鍵 盤 掃 描 、電 機 走 步 等 的 基 本 算 法 是 否 可 行 。之 后 開 辟 新 的 接 口 ,對 另 一

19、 臺 電 機 控 制 ,新 變 量 的 加 入 使 兩 臺 電 機 的 異 步 運 行 十 分 容 易 。最 后 仿 真 串 行 接 口 的 通訊與控制。4.1 程 序 的 調試對 于 脈 沖 波 的 輸 出 算 法 ,可 以 選 擇 對 管 腳 位 定 義 ,再 對 變 量 或 管 腳 代 號 分 別 作 取 反 運 算 。這 種 方 法 可 靠 簡 單 ,但 如 果 所 要 控 制 的 電 機 數(shù) 目 較 多 ,程 序 就 會 十 分 冗 長 。用 8 位 異 或 的 位 運 算 就 可 以 解 決 這 個 問 題 ,位 異 或 可 以 只 對目標管腳作用而不影響其他管腳的輸出,可以同時對

20、多個管腳改寫電平。鍵盤掃描是不斷用接口數(shù)據(jù)與特定16進制數(shù)進行位 運 算 ,位運算的選擇也會影響到信號采集的準確度和管腳的利用率。調試顯示器的關鍵則是準確地將初始化信息分批地送 到 顯 示器里。針對本 設 計 所 使 用 的 AT89C51 單 片 機 , 如 果 選 用 P0 口 作 為 顯 示 輸 出 則 必 須 對 P0 口 每個管腳接上拉電阻。而對電機速度的顯示需要以Runspeed為應變量選取適當?shù)膿Q算函數(shù),才能顯示正確的速度值。4.2 串 口 通 信的 調 試調 試 串 口 通 訊 的 關 鍵 是 對 串 口 正 確 地 初 始 化 。一 旦 通 信 成 功 ,串 口 控 制 就解

21、決了大半的問題,接著就是用緩存里的數(shù)據(jù)編程控制,其算法與鍵盤控制相差不遠。串口調試最需注意的是,除了在程序里對串口和通訊初始化之外,電路圖中器件相關屬性的設置都必須與通訊要求保持一致,比如串口的波特率應設置為軟件里初始化波特率的大小。同樣地,模擬的上位機的傳輸位和停止位等指標也應認真選定。本 設 計 只 完 成 了 單 片 機 與 控 制 口 之 間 以 字 節(jié) 為 單 位 的 簡 單 通 訊 ,所 以 能 通信的控制功能十分有限。4.3 調 試 結 果步進電機速度控制系統(tǒng)設計經(jīng)過調試,系統(tǒng)能以鍵盤和出口兩種方式對兩部步進電機進行異步控制, 并在顯示屏上顯示各電機的轉向和轉速。其中用口控制仿真

22、效果如下圖所步進電機控制-« lUaU -1UKnnLnJ1* IMF 泣5內陰” m &RaKhiMHi NF電源單 電工i后 電工算M 電嘰皿 4>lf. 171F t?K yrfiri EHJ拄制設財 : : : : : : : : : : : : : : : : : :=上面四千開法晶原皖開美工按棄明牙,,:生型用于控制電凱加漉速控制i概EF :時點的電例噬-歡:,:下國鈣差是叱平天美, t微l點持建開于美廠,前面?zhèn)€用干電孔才問的段烹.最下一卜即干送擇嚏邸陰r族下:產(chǎn)是用投制僦3.房以攔制需要畀空裝件充好,.設Uftw:4PL虛M一曲道用.串口調試期不海上位機:

23、.:旱口度制'電陽竄尾?啤如碇二審酬沏京 卡昨濾說 W硼j正瑙,.E蛾11棘,:7電機2正序 看粗1二腳:串口金甘;手中。二為1c0聞鼻 肢.特306口口圖9串口控制仿真效果圖圖10串口控制窗口持主亙埴哀睡的于荷7遨據(jù)廠十六進til卷送自動發(fā)送胸:1000 毫秒茜捋發(fā)送文件廠還受看選擇文件一發(fā)送文串MML YEE+1 STATUS ; 3科"E昭9,3即耳瓦瓦ICguterKESET嘯峰STDIO關田才呈序5 設計總結本 計 選 擇 常 規(guī) 的 脈 沖 分 配 器 完 成 對 電 機 繞 組 電 平 的 時 序 控 制 ,從 而 使 單 片 機 對 每 部 電 機 對 應 輸

24、 出 一 個 觸 發(fā) 信 號 和 一 組 脈 沖 波 即 可 。這 樣 節(jié) 省 了 單 片 機的數(shù)據(jù)接口,一定程度提高了利用率。另 外 ,正 如 程 序 分 析 師 所 述 ,本 設 計 的 軟 件 采 用 了 多 個 變 量 使 單 片 機 計 時器等部分得以共享,當有新的控制需要時間量度時,只需增加變量即可, 大大提高了使用價值。此外,程序通過取反改變輸出電平的算法簡單方便, 節(jié)省了單片機內存空間的同時也節(jié)省了有限的數(shù)據(jù)口。系 統(tǒng)對 信號頻率 控制 ,使得控制 的精確度 較輸 出 控制字 方 式較差。此 外, 變量的使用也是的多個程序模塊同時依賴一個計數(shù)器,降低了系統(tǒng)可靠性。步進電機速度控

25、制系統(tǒng)設計參考文獻1 于海生 . 微型計算機控制技術. 北京 : 清華大學出版社,1999.32 常喜茂 , 孔英會等.C51 基礎與應用實例. 北京 : 電子工業(yè)出版社,20093 馬德駿 , 張建宏等.C 語言程序設計. 北京 : 科學出版社,20064 劉寶廷 , 程樹康等. 步進電機及其驅動控制系統(tǒng). 哈爾濱 : 哈爾濱工業(yè)大學出版社 ,1997 5馬忠梅,籍順心等.單片機的C語言應用程序設計.北京:北京航空航天大學出版社 ,2007附錄#include<AT89X51.h>#include <stdio.h>#include <intrins.h>

26、int delay();void inti_lcd();void show_lcd(int i);void cmd_wr();void ShowSpeed();void ShowDir();void key_scan();void cod_scan();void delayms(int ms);void send_char(unsigned char out);sbit RS=P2A4;/定義LCD的端口物理地址sbit RW=P2A5;sbit E=P2A6;char SpeedChar1="V1(n/min):" /顯示變量char SpeedChar2="V

27、2(n/min):"char SPEED13="050"char SPEED23="050"char forward='f',backforward='b'unsigned int RunSpeed1=50;/ 運算變量unsigned int RunSpeed2=50;unsigned int cnt1=0;unsigned int cnt2=0;bit RunDir1=1,RunDir2=1;/運行狀態(tài)(起始為正方向)bit Contrl=0;/控制狀態(tài)(起始為按鍵控制)unsigned char temp;

28、/串口變量void Init_RS232(void) TL1=0Xfd;/波特率為9600(fd), 4800(fa),2400(f4)/設定串行口工作方式/波特率不倍增TH1=0Xfd;SCON = 0x50;PCON&= 0xef;TR1=1; main()TMOD=0x21;/定時器工作方式EA=1;/開中斷TR0=0;/關閉計數(shù)器0TH0=(65535-1000)>>8;定時器 0初值,即 1ms中斷一次TL0=(65535-1000)&0x00ff;PT0=1;/定時器 0 高優(yōu)先級中斷ET0=1;/定時器 0 中斷允許TR0=1;/啟動計數(shù)器0Init_

29、RS232();inti_lcd();ShowSpeed();ShowDir();while(1)步進電機速度控制系統(tǒng)設計int i;if(Contr1Ap1_6)Contrl=P1_6;if(Contr1=0)key_scan();if(Contr1=1)if(RI)RI=0;cod=SBUF;de1ayms(10); send_char(cod); cod=cod-0x30;cod_scan();ShowSpeed();/控制方式鍵是否按下/按下則掃描鍵盤/沒按下則等待輸入/是否有數(shù)據(jù)到來/暫停接收數(shù)據(jù)/存儲接受的數(shù)據(jù)/回傳接收到的數(shù)據(jù)/將ASC 碼轉化void send_char(uns

30、igned char out)/SBUF=out;whi1e(!TI);TI=0;void de1ayms(int ms)傳送一個字符/預存/等特數(shù)據(jù)傳送/清除數(shù)據(jù)傳送標志/延時子程序步進電機速度控制系統(tǒng)設計while(ms-)for(i=0;i<120;i+);void cod_scan()/串口掃描程序 switch (cod) case 0x01:if(RunSpeed1>=12)/電機1 加速RunSpeed1=RunSpeed1-2;break;case 0x02:if(RunSpeed1<=100)/電機 1 減速RunSpeed1=RunSpeed1+2;bre

31、ak;case 0x03:if(RunSpeed2>=12)/電機2 加速RunSpeed2=RunSpeed2-2;break;case 0x04:if(RunSpeed2<=100)/電機 2 減速RunSpeed2=RunSpeed2+2;break;case 0x05:RunDir1=1;/電機 1 正轉P2_2=RunDir1;break;case 0x06:RunDir1=0;/電機 1 正轉P2_2=RunDir1;break;case 0x07:RunDir2=1;/電機 2 正轉P2_3=RunDir2;break;case 0x08:RunDir2=0;/電機2

32、 反轉P2_3=RunDir2;break;default:break;ShowSpeed();/液晶顯示ShowDir();void key_scan()/鍵盤掃描程序 unsigned char key; / 沒有鍵按下時P3 口都為高電平/*K0-K3脈沖式按鍵掃描*/key=P1&0x0f;if(key!=0x0f)/有鍵按下switch (key)/電機 1 加速 case 0x0e:if(RunSpeed1>=12)RunSpeed1=RunSpeed1-2;break;case 0x0d:if(RunSpeed1<=100)/電機1 減速RunSpeed1=R

33、unSpeed1+2;break;case 0x0b:if(RunSpeed2>=12)/電機 2 加速RunSpeed2=RunSpeed2-2;break;case 0x07:if(RunSpeed2<=100)/電機 2減速RunSpeed2=RunSpeed2+2;break;default:break;步進電機速度控制系統(tǒng)設計/液晶顯示/等待按鍵松開*/ShowSpeed();while(P1&0x0f)!=0x0f) ;/*K4-K5if(RunDiUAP1_4)|(RunDir2Ap1_5)/ 如 果 K4 或 K5 按 鍵 的 狀 態(tài) 改 變RunDir1=

34、P1_4;RunDir2=P1_5;ShowDir();P2_2=RunDir1;/輸出方向控制P2_3=RunDir2;void t_0(void) interrupt 1/定時器0 中斷服務程序TR0=0;TH0=(65535-1000)>>8;定時器 0初值,即 1ms中斷一次TL0=(65535-1000)&0x00ff;TR0=1;cnt1+;cnt2+;if(cnt1>=RunSpeed1)/計時中斷次數(shù)達到或高于速度則改寫輸出電平P2=P2A0x01;cnt1=0;if(cnt2>=RunSpeed2)P2=P2A0x02;cnt2=0;int d

35、elay()/判斷 LCD 是否忙int a;start:RS=0;/讀顯示器狀態(tài)RW=1;E=0;for(a=0;a<2;a+);E=1;P0=0xff; /拉高數(shù)據(jù)口if(P0_7=0)return 0;else goto start;void inti_lcd() /設置 LCD 方式P0=0x38;/8 位 2 行,5X7 點陣cmd_wr();delay();P0=0x01;cmd_wr(); delay();P0=0x0f;/顯示打開,顯示光標,光標閃爍cmd_wr(); delay();P0=0x06;/光標自動右移一位,全部平移無效cmd_wr(); delay();P0=0x0c;/顯示打開,關閉光標cmd_wr();void cmd_wr()/寫控制字RS=0;/寫命令寄存器RW=0;E=0;/提供上升沿E=1;/LCD 顯示子程序/P1 口/寫數(shù)據(jù)設置/觸發(fā)v

溫馨提示

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

評論

0/150

提交評論