【正文】
用單片機(jī)內(nèi)部的定時(shí)器來(lái)提供 CP 脈沖。此時(shí)只要均勻地改變定時(shí)器時(shí)間常數(shù),即可達(dá)到均勻加減速的目的 【 9】 。為了提高單片機(jī)的實(shí)時(shí)處理能力,系統(tǒng)采用中斷的方法進(jìn)行調(diào)速。此外,步進(jìn)電機(jī)不需要位置傳感器或速度傳感器可以在開(kāi)環(huán)狀態(tài)下定位或同步運(yùn)行,有利于裝置或設(shè)備的小型化和低成本,因而在軟盤(pán)驅(qū)動(dòng)器、掃描儀、打印機(jī)、數(shù)控機(jī)床和自動(dòng)化生產(chǎn)線(xiàn)等領(lǐng)域中都得了到廣泛的應(yīng)用 【 10】 。搬運(yùn)站的功能是向各個(gè)工作單元輸送工件,每完成一道工序就把工件送給下一個(gè)工作 站,等加工站完成后再將工件送到裝配站和分揀站整個(gè)自動(dòng)生產(chǎn)線(xiàn)的加工過(guò)程就完成。該步進(jìn)電機(jī)驅(qū)動(dòng)系統(tǒng)具有行程長(zhǎng)、多定位點(diǎn)的特點(diǎn),是一個(gè)典型的一維位置控制系統(tǒng)。 為了提高系統(tǒng)的響應(yīng)速度,需要步進(jìn)電機(jī)的速度盡可能的快,但為了防止步進(jìn)電機(jī)在啟動(dòng)過(guò)程中發(fā)生失步,需要按一定的規(guī)律對(duì)步進(jìn)電機(jī)的速度進(jìn)行控制,也就是對(duì)步進(jìn)電機(jī)的脈沖頻率進(jìn)行控制。整個(gè)加減速的控制,如本文所述的步進(jìn)電機(jī)加減速控制。 /θ,那每一步走過(guò)的距離為 L=55/N。例如一個(gè)步距角為 176。各站點(diǎn)之間的距離如表 所示。步進(jìn)電機(jī)需要走的步數(shù)可以根據(jù)不同距離預(yù)先計(jì)算好,然后在單片機(jī)程序里設(shè)定好,也可以通過(guò)上位機(jī)進(jìn)行控制。最后根據(jù)步進(jìn)電機(jī)的優(yōu)點(diǎn),介紹步進(jìn)電機(jī)在自動(dòng)生產(chǎn)線(xiàn)中的應(yīng)用。 ( 2)硬件結(jié)構(gòu)應(yīng)結(jié)合應(yīng)用軟件方案一并考慮。但必須注意,由軟件實(shí)現(xiàn)的硬件功能,其響應(yīng)時(shí)間要比直 接用硬件的長(zhǎng),而且占用 CPU 時(shí)間。 ( 3)整個(gè)系統(tǒng)中相關(guān)的器件要盡可能做到性能匹配,例如選用晶振頻率較高時(shí),存貯器的存取時(shí)間有限,應(yīng)選擇允許存取速度較高的芯片;選擇 CMOS芯片單片機(jī)構(gòu)成低功耗系統(tǒng)時(shí),系統(tǒng)中的所有芯片都應(yīng)該選擇低功耗的產(chǎn)品。 ( 5)單片機(jī)外接電路較多時(shí),必須考慮其驅(qū)動(dòng)能力。 ( 6)系統(tǒng)的擴(kuò)展及各功能模塊的設(shè)計(jì)在滿(mǎn)足系統(tǒng)功能要求的基礎(chǔ)上,應(yīng)適當(dāng)留有余地,以備將來(lái)修改、擴(kuò)展的需要。系統(tǒng)硬件框圖如圖 所示。在 MCS51 系列單片機(jī)系列內(nèi)核 8051/80C51 的基礎(chǔ)上, Intel 公司、 Philips 公司、 Siemens 公司等很多大公司紛紛推出了名目繁多的派生芯片。 哈爾濱廣廈畢業(yè)設(shè)計(jì) 25 其主要特點(diǎn)有: ( 1) CPU 內(nèi)核完全和 MCS51 系列兼容,具有 MCS51 系列單片機(jī)的一切功能。 ( 4) 可在 0~ 24MHz 的晶振頻率范圍內(nèi)可靠工作,加快了系統(tǒng)的工作速度,可用在某些高速實(shí)時(shí)處理控制系統(tǒng)中。 ( 6) 具有 6 個(gè)中斷源,完全可以滿(mǎn)足一般設(shè)計(jì)的中斷系統(tǒng)擴(kuò)展需要。 EPROM 的選擇 只讀存儲(chǔ)器 (ROM)的特點(diǎn)是:其內(nèi)容是預(yù)先寫(xiě)入的且一旦寫(xiě)入,使用時(shí)就只能讀出不能改變,掉電時(shí)也不會(huì)丟失, ROM 器件還具有結(jié)構(gòu)簡(jiǎn)單、信息度高,價(jià)格低,非易失性和可靠性高等特點(diǎn)。 Intel 2716 是 2K 8 的 EPROM 存儲(chǔ)器。哈爾濱廣廈畢業(yè)設(shè)計(jì) 26 它有讀方式 、未選中方式、編程方式、程序檢驗(yàn)方式、編程禁止方式 5 種工作方式如表 所示 【 13】 。計(jì)數(shù)器選用 74LS191,這是一種單時(shí)鐘 4 位 二進(jìn)制可逆計(jì)數(shù)器,時(shí)鐘脈沖從 CP 端輸入,加 /減脈沖由同一端輸入,加 /減控制線(xiàn)的高低電平控制加減計(jì)數(shù)。 74LS191 的工作方式選擇如表 所示。 表 74LS191 功能表 輸入 工作模式 置數(shù) 使能 加減 時(shí)鐘 H L L H L H L X X X H H X X 加計(jì)數(shù) 減計(jì)數(shù) 預(yù)置 保持 哈爾濱廣廈畢業(yè)設(shè)計(jì) 28 控制系統(tǒng)接口電路的設(shè)計(jì) 環(huán)形脈沖分配器設(shè)計(jì) 環(huán)形脈沖分配器是用來(lái)接收單片機(jī)的 CP 脈沖,并根據(jù)步進(jìn)電機(jī)的勵(lì)磁狀態(tài)轉(zhuǎn)換表的狀態(tài)順序輸出各相繞組的導(dǎo)通或截止信號(hào)。因此,步進(jìn)電機(jī)轉(zhuǎn)速的高或低、加速或減速、啟動(dòng)或停止都完全取決于 CP 脈沖的有無(wú)和頻率。接收來(lái)自控制器的 CP 脈沖和方向電平是環(huán)形脈沖分配器 的最基本功能??赡嬗?jì)數(shù)器的輸出作為EPROM 的地址輸入端,計(jì)數(shù)器的一個(gè)計(jì)數(shù)狀態(tài)就對(duì)應(yīng)步進(jìn)電機(jī)的一個(gè)勵(lì)磁狀態(tài),控制計(jì)數(shù)脈沖 CP 就可以控制步進(jìn)電機(jī)的運(yùn)行,加減計(jì)數(shù)控制端可以控制步進(jìn)電機(jī)正反轉(zhuǎn)。 哈爾濱廣廈畢業(yè)設(shè)計(jì) 29 圖 環(huán)形脈沖分配器電路 這種方法適用于控制任意類(lèi)型的步進(jìn)電機(jī)。跟軟件的方法相比,需要增加硬件的成本,但軟件簡(jiǎn)單,速度快,少占用 CPU 的時(shí)間,提高了系統(tǒng)的響應(yīng)速度,軟件方法的優(yōu)點(diǎn)是節(jié)省硬件,降低系統(tǒng)的成本,且更改靈活,有利于系統(tǒng)的小型化,其主要的缺點(diǎn)是占用 CPU 時(shí)間較多,降低系統(tǒng)的響應(yīng)速度。 顯示電路設(shè)計(jì) 單片機(jī)與顯示電路的接法一般有如下兩種方法: ( 1)串行接法: 設(shè)計(jì)中要顯示 4 位數(shù)字,用 74LS164 作為顯示驅(qū)動(dòng),其中 74LS164 帶鎖存,使用串行 接法可以節(jié)約 I/O 口資源,發(fā)送數(shù)據(jù)時(shí)容易控制。 由于設(shè)計(jì)中用一塊單片機(jī)進(jìn)行控制,資源有限, 故使用串行接法, 另外,74LS164 的 鎖存 作用也 起到節(jié)約資源的作用。 哈爾濱廣廈畢業(yè)設(shè)計(jì) 30 圖 數(shù)碼管顯示電路 外部復(fù)位電路設(shè)計(jì) MCS51 系列單片機(jī)采用高電平復(fù)位方式,為保證 CPU 內(nèi)部各單元電路可靠復(fù)位, RST 引腳的復(fù)位脈沖高電平維持時(shí)間必須大于 2 個(gè)機(jī)器周期(即 24個(gè)振蕩周期)。 外部復(fù)位電路 哈爾濱廣廈畢業(yè)設(shè)計(jì) 31 上電復(fù)位:接通電源的瞬間,電容 C 上的電壓很小, RST 引腳為高電平。二極管 VD 的作用在于:掉電后給電容 C 提供放電回路,保證再次上電時(shí) RST 引腳為高電平,使CPU 可靠復(fù)位。放電回路為 C 正極、電源 Vcc 端(與地等電位)、二極管 VD 正極、二極管 VD負(fù)極、 C 負(fù)極,保證再次上電時(shí), RST 引腳為高電平, CPU 可靠復(fù)位。松開(kāi)復(fù)位按鍵后,電 容 C 充電, RST 引腳電位下降,使 CPU 脫離復(fù)位狀態(tài)。它是以單片機(jī)為核心的控制電路,可以實(shí)現(xiàn)步進(jìn)電機(jī)根據(jù)設(shè)定的步數(shù)進(jìn)行自動(dòng)加減速控制,使控制系統(tǒng)以最短的時(shí)間走完所規(guī)定的步數(shù)而又不發(fā)生失步的現(xiàn)象。在系統(tǒng)工作的過(guò)程中,數(shù)碼管顯示步進(jìn)電機(jī)需要運(yùn)行的步數(shù),并通過(guò) LED 指示步進(jìn)電機(jī)的工作運(yùn)行狀態(tài)。最后對(duì)控制系統(tǒng)各部分的電路進(jìn)行了分析和設(shè)計(jì),并把各模塊有機(jī)組合起來(lái)形成一個(gè)較完整的電路,如附錄 C 所示。應(yīng)用系統(tǒng)種類(lèi)繁多,應(yīng)用軟件各不相同,但是一個(gè)優(yōu)秀的應(yīng)用系統(tǒng)應(yīng)具有下列特點(diǎn) 【 15】 : ( 1)軟件結(jié)構(gòu)清楚、簡(jiǎn)潔、流程合理。便于 調(diào)試、連接、移植、修改。 ( 4)運(yùn)行狀態(tài)實(shí)現(xiàn)標(biāo)志化管理。 ( 5)經(jīng)過(guò)調(diào)試修改后的程序應(yīng)進(jìn)行規(guī)范化,除去修改“痕跡”。 ( 6)實(shí)現(xiàn)全面軟件抗干擾設(shè)計(jì)。 本系統(tǒng)的軟件采用 C 語(yǔ)言編寫(xiě),在此本文主要介紹軟件的各個(gè)模塊功能 與軟件流程。 步進(jìn)電機(jī)控制系統(tǒng)功能設(shè)計(jì) 軟件主要功能是單片機(jī)根據(jù)設(shè)定的步數(shù),實(shí)現(xiàn)步進(jìn)電機(jī)的自動(dòng)加減速控制,使控制系統(tǒng)以最快的速度走完所設(shè)定的步數(shù),并通過(guò)數(shù)碼管和 LED 顯示步進(jìn)電機(jī)的運(yùn)行參數(shù)。單片機(jī)根據(jù)所輸入的步數(shù)判斷是否需要進(jìn)行加速啟動(dòng),當(dāng)輸入的步數(shù)小于 100時(shí),步進(jìn)電機(jī)以最低速度 25 r/min 運(yùn)行。當(dāng)步數(shù)為 0 時(shí),步進(jìn)電機(jī)停止運(yùn)行。 圖 變速控制中轉(zhuǎn)速與步長(zhǎng)之間的關(guān)系 主程序設(shè)計(jì) 主程序工作過(guò)程 ( 1)系統(tǒng)初始化。步進(jìn)電機(jī)的初始化狀態(tài)為停止、正轉(zhuǎn),數(shù)碼管顯示步數(shù)為 0。判斷是否有按鍵按下,若有則進(jìn)行按鍵處理。 ( 3)系統(tǒng)啟動(dòng)。 ( 4)定時(shí)器 T0 啟動(dòng) 。 ( 5)調(diào)速。 ( 6)步數(shù)為 0 判斷。 哈爾濱廣廈畢業(yè)設(shè)計(jì) 35 主程序工作流程圖 主程序工作流程圖如圖 所示。 定時(shí)器 T0 中斷程序流程圖 T0 中斷流程圖如圖 所示。 哈爾濱廣廈畢業(yè)設(shè)計(jì) 36 初 始 化開(kāi) 始鍵 盤(pán) 掃 描 程 序有 按 鍵 按 下 ? 按 鍵 處 理 程 序讀 入 開(kāi) 關(guān) 狀 態(tài)是 否 復(fù) 位 ?是 否 啟 動(dòng) ?啟 動(dòng) 定 時(shí) 器 T 0NYYNNYT 0 停 止 計(jì) 數(shù)正 轉(zhuǎn) ?P 0 . 1 = 0 P 0 . 1 = 1NY 圖 主程序流程圖 哈爾濱廣廈畢業(yè)設(shè)計(jì) 37 由 s p e e d f l a g 求 定時(shí) 初 值重 裝 定 時(shí) 初 值步 數(shù) 減 1 程 序步 數(shù) 顯 示 程 序步 數(shù) 為 0 ?步 數(shù) 大 于 1 0 0 ?s p e e d f l a g 加1 r / m i ns p e e d f l a g 大 于9 9 r / m i n ?s p e e d f l a g 為計(jì) 算 值中 斷 返 回T 0 停 止計(jì) 數(shù)s p e e d f l a g 減 1 r / m i ns p e e d f l a g 小 于2 5 r / m i n ?s p e e d f l a g 為計(jì) 算 值s p e e d f l a g = 2 5 r / m i nT 0 中 斷 服 務(wù) 程 序s p e e d f l a g = 9 9 r / m i nYNYNNY YN一 個(gè) 周 期 ?NY 圖 T0 中斷服務(wù)程序流程圖 哈爾濱廣廈畢業(yè)設(shè)計(jì) 38 Proteus 仿真 由于 Proteus 軟件本身優(yōu)良的仿真特性,所設(shè)計(jì)的程序能用于 Proteus 中,完成仿真過(guò)程的同時(shí),即基本驗(yàn)證所設(shè)計(jì)程序的準(zhǔn)確性,從而完成系統(tǒng)開(kāi)發(fā)中的控制程序的設(shè)計(jì)部分。 圖 Proteus 仿真界面 為了防止步進(jìn)電機(jī)啟動(dòng)時(shí)發(fā)生失步,需要先以一個(gè)比較低的頻率啟動(dòng),用Proteus 仿真步進(jìn)電機(jī)啟動(dòng)過(guò)程可以看到單片機(jī)的 產(chǎn)生一個(gè)頻率逐漸變大的脈沖信號(hào),啟動(dòng)時(shí)的脈沖信號(hào)如圖 所示。 通過(guò) Proteus 軟件的仿真,所編寫(xiě)的程序達(dá)到了預(yù)期的效果,仿真實(shí)現(xiàn)了程序的調(diào)試過(guò)程。 ( 2) 并行接法 : 使用并行接法時(shí)要對(duì)每個(gè)數(shù)碼管用 I/O 口單獨(dú)輸入數(shù)據(jù),占用資源較多。另外,74LS164 自帶 鎖存 , 起到節(jié)約 I/O 口 資源的作用。在發(fā)送中斷標(biāo)志 TI 為 0(即無(wú)效)的情況下,執(zhí)行寫(xiě)串行數(shù)據(jù)輸出緩沖器 SBUF 指令即可將 SBUF 寄存器中的內(nèi)容由低位到高位依次輸出到 RXD 引腳,同時(shí) TXD引腳輸出移位脈沖,使外接的“串入并出”芯片逐一接受來(lái)自 RXD 引腳上的串行數(shù)據(jù)。這樣在執(zhí)行寫(xiě)SBUF 寄存器操作后,通過(guò)查詢(xún) TI 標(biāo)志來(lái)確定發(fā)送過(guò)程是否完成,當(dāng)發(fā)送完成后需要將 TI 清零,以便輸出新的串行數(shù)據(jù) 【 17】 。顯示程序只需要將數(shù)組中的內(nèi)容一個(gè)個(gè)送入 SBUF 寄存器中,就可以實(shí)現(xiàn)步數(shù)的顯示。此模塊的功能是判斷是否有鍵按下,沒(méi)有按鍵按下則去執(zhí)行其他程序,有鍵 按下則延時(shí)去抖動(dòng),返回鍵值,送鍵值給按鍵處理函數(shù),再根據(jù)鍵值執(zhí)行相應(yīng)的功能,系統(tǒng)有 15 個(gè)按鍵,分別數(shù)字鍵、啟動(dòng)鍵、停止鍵、正轉(zhuǎn)鍵、反轉(zhuǎn)鍵、復(fù)位鍵。本程序采用行、列對(duì)應(yīng)的二進(jìn)制碼來(lái)確定按鍵功能,例如讓 P1 輸出 0FEH,如果第一按鍵按下時(shí), 與 交叉點(diǎn)對(duì)應(yīng)的鍵碼為 0EEH,第二個(gè)按鍵為 0DEH,第三個(gè)按鍵為 0BEH,第四個(gè)按鍵為7EH。其它按 鍵編碼及功能定義如表 所示。 調(diào)速程序設(shè)計(jì) 20BY 步進(jìn)電機(jī)參數(shù) 表 20 BY 步進(jìn)電機(jī)參數(shù) 工作電壓 步距角 工作力矩 最大靜電流 空載啟動(dòng)頻率 空載運(yùn)行頻率 18176。通過(guò)控制脈沖個(gè)數(shù)即可以控制角位移量,從而達(dá)到準(zhǔn)確定位的目的 ;由于步進(jìn)電機(jī)的速度與脈沖頻率成正比關(guān)系, 通過(guò)控制脈沖頻率 就可以 控制 步進(jìn) 電機(jī)轉(zhuǎn)動(dòng)的速度 。由于所選的步進(jìn)電機(jī)的步距角為 18176。/18176。 由于步進(jìn)電機(jī)的轉(zhuǎn)速正比于脈沖頻率,所以調(diào)速時(shí)只需把每個(gè)速度對(duì)應(yīng)數(shù)組中的定時(shí)初值取出來(lái),作為定時(shí)器 T0 的計(jì)數(shù)初值,這樣就可以讓單片機(jī)輸出不同的頻率,從而改變轉(zhuǎn)速。編寫(xiě)出詳細(xì)的 C 語(yǔ)言程序,并用 Proteus 軟件進(jìn)行程序的調(diào)試。 第五章 結(jié)束語(yǔ) 經(jīng)過(guò)幾個(gè)月的努力,終于完成了基于 AT89C51 單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)軟硬件的研究和設(shè)計(jì)。將所學(xué)的理論知識(shí)應(yīng)用到實(shí)踐中,在系統(tǒng)的設(shè)計(jì)中做了如下的工作。根據(jù)課題要求查閱資料,然后在老師的指導(dǎo)下,有針對(duì)性地學(xué)習(xí)相關(guān)知識(shí),對(duì)資料進(jìn)行消化和吸收。系統(tǒng)以 AT89C51 單片機(jī)為控制核心,并設(shè)計(jì)相應(yīng)的接口電路,包括環(huán)形脈沖分配器、鍵盤(pán)電路、顯示電路、步進(jìn)電機(jī)的驅(qū)動(dòng)電路等。軟件是根據(jù)控制系統(tǒng)的要求設(shè)計(jì)的,包括主程序的設(shè)計(jì)、 T0 中斷 程序設(shè)計(jì)、鍵盤(pán)顯示程序設(shè)計(jì)、調(diào)速程序設(shè)計(jì)等程序的設(shè)計(jì)。 論文采用單片機(jī)技術(shù),使單片機(jī)能根據(jù)設(shè)定的步數(shù),實(shí)現(xiàn)步進(jìn)電機(jī)的自動(dòng)調(diào)速控制,并同過(guò)數(shù)碼管顯示步進(jìn)電機(jī)的運(yùn)行步數(shù),完成對(duì)控制系統(tǒng)的硬件電路和應(yīng)用軟件設(shè)計(jì)。論文中的不足之處敬請(qǐng)老師批評(píng)指正