直流電機(jī)轉(zhuǎn)速閉環(huán)控制.doc_第1頁
直流電機(jī)轉(zhuǎn)速閉環(huán)控制.doc_第2頁
直流電機(jī)轉(zhuǎn)速閉環(huán)控制.doc_第3頁
直流電機(jī)轉(zhuǎn)速閉環(huán)控制.doc_第4頁
直流電機(jī)轉(zhuǎn)速閉環(huán)控制.doc_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、計(jì)算機(jī)控制基礎(chǔ)設(shè)計(jì) 結(jié)題論文 直流電機(jī)轉(zhuǎn)速閉環(huán)控制設(shè)計(jì) 學(xué) 院: 自動(dòng)化學(xué)院 姓 名: 學(xué) 號: 專業(yè)班級: 09 級自動(dòng)化 指導(dǎo)老師:時(shí)穎 重慶大學(xué)自動(dòng)化學(xué)院重慶大學(xué)自動(dòng)化學(xué)院 2012 年 09 月 直流電機(jī)轉(zhuǎn)速閉環(huán)控制直流電機(jī)轉(zhuǎn)速閉環(huán)控制設(shè)計(jì)設(shè)計(jì) 摘要摘要 在運(yùn)動(dòng)控制系統(tǒng)中,電機(jī)轉(zhuǎn)速控制占有至關(guān)重要的作用,其控制算法和手 段有很多,模擬pid控制是最早發(fā)展起來的控制策略之一,長期以來形成了典 型的結(jié)構(gòu),并且參數(shù)整定方便,能夠滿足一般控制的要求,但由于在模擬pid 控制系統(tǒng)中,參數(shù)一旦整定好后,在整個(gè)控制過程中都是固定不變的,而在 實(shí)際中,由于現(xiàn)場的系統(tǒng)參數(shù)、溫度等條件發(fā)生變化,使系統(tǒng)很難

2、達(dá)到最佳的 控制效果,因此采用模擬pid控制器難以獲得滿意的控制效果。隨著計(jì)算機(jī)技 術(shù)與智能控制理論的發(fā)展,數(shù)字pid技術(shù)漸漸發(fā)展起來,它不僅能夠?qū)崿F(xiàn)模擬 pid所完成的控制任務(wù),而且具備控制算法靈活、可靠性高等優(yōu)點(diǎn),應(yīng)用面越 來越廣。 本設(shè)計(jì)以上面提到的數(shù)字 pid 為基本控制算法,以計(jì)算機(jī)硬件 pd-32e 為控 制核心,產(chǎn)生占空比受數(shù)字 pid 算法控制的 pwm 脈沖實(shí)現(xiàn)對直流電機(jī)轉(zhuǎn)速的控 制。同時(shí)利用霍爾傳感器將電機(jī)速度轉(zhuǎn)換成脈沖頻率反饋到單片機(jī)中,實(shí)現(xiàn)轉(zhuǎn) 速閉環(huán)控制,達(dá)到轉(zhuǎn)速無靜差調(diào)節(jié)的目的。在系統(tǒng)中采數(shù)碼管和 44 鍵盤作為 人機(jī)交互界面,啟動(dòng)后可以通過顯示部件了解電機(jī)當(dāng)前的轉(zhuǎn)速

3、。該系統(tǒng)控制簡 單,反應(yīng)靈敏,具有很強(qiáng)的抗干擾能力。 關(guān)鍵字:關(guān)鍵字:運(yùn)動(dòng)控制、pid、計(jì)算機(jī)硬件 目錄 引言引言.1 1 小組分工小組分工.2 2 模型建立模型建立.2 2.1 設(shè)計(jì)要求.2 2.2 設(shè)計(jì)報(bào)告要求.3 4 構(gòu)建系統(tǒng)的器件構(gòu)建系統(tǒng)的器件.4 4.1 8254 定時(shí)器/計(jì)數(shù)器.4 4.1.1 8254具有以下基本功能.4 4.1.2 8254的工作方式.4 4.1.3 8254內(nèi)部寄存器各位的定義及初始化的編程方法.5 4.1.4 8254定時(shí)/計(jì)數(shù)器原理圖和發(fā)光二極管的驅(qū)動(dòng)原理圖.5 4.2 8254 定時(shí)器/計(jì)數(shù)器.5 4.2.1 8255的工作方式.6 4.2.2 8255

4、并口模塊原理圖.6 4.3 8259 中斷控制器 .7 4.3.1 8259各引腳定義.7 4.3.2 8259a的內(nèi)部結(jié)構(gòu).8 4.4 ad574.8 5 系統(tǒng)設(shè)計(jì)思路及總設(shè)計(jì)方案系統(tǒng)設(shè)計(jì)思路及總設(shè)計(jì)方案.10 5.1 關(guān)鍵問題.10 5.2 總設(shè)計(jì)思路及方案.10 5.3 霍爾元件測速模塊 .11 5.4 4*3 小鍵盤原理圖.13 5.5 主程序設(shè)計(jì).13 5.6 設(shè)計(jì)進(jìn)度的具體安排和記錄 .15 6 硬件連接及系統(tǒng)電路圖硬件連接及系統(tǒng)電路圖 .15 6.1 硬件連接.15 6.2 系統(tǒng)硬件連接圖.16 心得體會心得體會.16 付 攀 20095077 .16 明柯辰 20095087.

5、17 金智 20095084.18 邱 寧 20095089 .19 參考文獻(xiàn)參考文獻(xiàn).20 附附 1:程序流程圖:程序流程圖.22 附附 2:程序清單:程序清單 .27 引言 由于直流電動(dòng)機(jī)具有良好的起動(dòng)、制動(dòng)性能,宜于在大范圍內(nèi)平滑調(diào) 速,在許多需要調(diào)速或快速正反向的電力拖動(dòng)領(lǐng)域中得到了廣泛的應(yīng)用。 從控制的角度來看,直流調(diào)速還是交流拖動(dòng)系統(tǒng)的基礎(chǔ)。早期直流電動(dòng)機(jī) 的控制均以模擬電路為基礎(chǔ),采用運(yùn)算放大器、非線性集成電路以及少量 的數(shù)字電路組成,控制系統(tǒng)的硬件部分非常復(fù)雜,功能單一,而且系統(tǒng)非 常不靈活、調(diào)試?yán)щy,阻礙了直流電動(dòng)機(jī)控制技術(shù)的發(fā)展和應(yīng)用范圍的推 廣。 隨著單片機(jī)技術(shù)的日新月異

6、,使得許多控制功能及算法可以采用軟件 技術(shù)來完成,為直流電動(dòng)機(jī)的控制提供了更大的靈活性,并使系統(tǒng)能達(dá)到 更高的性能。采用單片機(jī)構(gòu)成控制系統(tǒng),可以節(jié)約人力資源和降低系統(tǒng)成 本,從而有效的提高工作效率。 目前,直流電動(dòng)機(jī)調(diào)速系統(tǒng)數(shù)字化已經(jīng)走向?qū)嵱没?,伴隨著電子技術(shù) 的高度發(fā)展,促使直流電機(jī)調(diào)速逐步從模擬化向數(shù)字化轉(zhuǎn)變,特別是單片 機(jī)技術(shù)的應(yīng)用,使直流電機(jī)調(diào)速技術(shù)又進(jìn)入到一個(gè)新的階段,智能化、高 可靠性已成為它發(fā)展的趨勢。 本次項(xiàng)目的設(shè)計(jì)是在 pd-32e 對直流電機(jī)控制系統(tǒng)的基礎(chǔ)上進(jìn)行設(shè)計(jì)和 改進(jìn)的。在設(shè)計(jì)過程中,使學(xué)生能夠?qū)纹瑱C(jī)有進(jìn)一步的了解,培養(yǎng)了學(xué) 生獨(dú)立的進(jìn)行程序的設(shè)計(jì)和調(diào)試。系統(tǒng)中通過

7、單片機(jī)對直流電機(jī)的轉(zhuǎn)速進(jìn) 行控制和轉(zhuǎn)化,并在 8 位數(shù)碼管上進(jìn)行顯示,方便人們的控制檢測,運(yùn)用 pid 調(diào)節(jié)實(shí)現(xiàn)直流電機(jī)的閉環(huán)調(diào)速,同時(shí)在電機(jī)的上電轉(zhuǎn)動(dòng)中,對電機(jī)進(jìn)行 過電保護(hù),使電機(jī)可以良好的進(jìn)行運(yùn)轉(zhuǎn)。 1 小組分工 整個(gè)課程設(shè)計(jì)從拿到課題到完成基本功能、添加優(yōu)化方案、最終形成課程 設(shè)計(jì)報(bào)告,小組成員始終活躍在各自的崗位,有條不紊的完成分配給各自的任 務(wù),整個(gè)設(shè)計(jì)過程大家都全程參與,沒有一個(gè)人缺席。 綜合小組各成員從編程能力、資料收集整理能力、組織協(xié)調(diào)能力、文書編 寫能力等方面進(jìn)行如下分工: 學(xué)號分工項(xiàng)目 付攀20095077 顯示與處理、顯示子程序的編寫和調(diào)試;標(biāo)度變換 程序的編寫調(diào)試,輔

8、助整體程序的調(diào)試 明柯辰20095087 鍵盤掃描程序及各鍵功能子程序的編寫調(diào)試,均值 濾波程序的編寫,輔助報(bào)告的完成 金智20095084 ad 轉(zhuǎn)換程序,初始化 8254、8255、8259 子程序的 編寫,完成實(shí)驗(yàn)報(bào)告的編寫 邱寧20095089 主程序的設(shè)計(jì),控制算法程序,終端相關(guān)的程序設(shè) 計(jì),pwm 波的生成程序,及整個(gè)程序的調(diào)試 2 模型建立 2.1 設(shè)計(jì)要求 (1)已知參數(shù)和設(shè)計(jì)要求 1.用 pd-32e 實(shí)驗(yàn)裝置產(chǎn)生 pwm 方波調(diào)制直流電機(jī)以一定速率選裝,認(rèn)為給 一個(gè)虛度漂移,霍爾原件測出速度并根據(jù) pid 算法跟蹤校正速度漂移。 2.要求用 led 或 lcd 實(shí)時(shí)顯示電機(jī)

9、速度。 3.要求在 10 秒內(nèi) pid 算法糾正速率漂移。 (2)實(shí)現(xiàn)方法 采用 pd-32e 實(shí)驗(yàn)裝置實(shí)現(xiàn) 2.2 設(shè)計(jì)報(bào)告要求 1)明確每位組員的詳細(xì)分工。 2)在上述設(shè)計(jì)主要內(nèi)容的基礎(chǔ)上,本組討論整理出系統(tǒng)的詳細(xì)操作說明。 3)詳細(xì)描述自行完善和優(yōu)化的系統(tǒng)功能以及設(shè)計(jì)方案。 4)給出系統(tǒng)的設(shè)計(jì)思路和意見、軟件設(shè)計(jì)方案。 5)畫出各軟件模塊的程序流程圖。 6)列出加上必要注釋的程序清單。 7)每位組員根據(jù)自己承擔(dān)的設(shè)計(jì)內(nèi)容和設(shè)計(jì)過程,寫出心得體會。 8)所有組員在任務(wù)書上簽名,將任務(wù)書裝訂在報(bào)告首頁。 4 構(gòu)建系統(tǒng)的器件 4.1 8254 定時(shí)器/計(jì)數(shù)器 8254 內(nèi)部有 3 個(gè)獨(dú)立的 1

10、6 位計(jì)數(shù)器,每個(gè)計(jì)數(shù)器有 6 種工作方式,計(jì)數(shù) 的數(shù)制可以是二進(jìn)制數(shù)或 bcd 碼數(shù),每個(gè)計(jì)數(shù)器允許的最高計(jì)數(shù)頻率 10mhz。 8254 是 8253 的改進(jìn)型,因此它的操作方式以及引腳與 8253 完全相同。主要不 同點(diǎn)是 8253 的最高計(jì)數(shù)頻率只為 2mhz,且 8254 比 8253 多了一個(gè)讀回命令, 這個(gè)命令可以使 3 個(gè)通道的計(jì)數(shù)值和狀態(tài)信息都鎖存,而這在 8253 中需寫入 3 個(gè)命令。 4.1.1 8254 具有以下基本功能 1)有 3 個(gè)獨(dú)立的 16 位計(jì)數(shù)器。 2)每個(gè)計(jì)數(shù)器可按二進(jìn)制或十進(jìn)制(bcd)計(jì)數(shù)。 3)每個(gè)計(jì)數(shù)器可編程工作于 6 種不同工作方式。 4)82

11、54 每個(gè)計(jì)數(shù)器允許的最高計(jì)數(shù)頻率為 10mhz(8253 為 2mhz) 。 5)8254 有讀回命令,除了可以讀出當(dāng)前計(jì)數(shù)單元的內(nèi)容外,還可以讀出 狀態(tài)寄存器的內(nèi)容。 6)計(jì)數(shù)脈沖可以是有規(guī)律的時(shí)鐘信號,也可以是隨機(jī)信號。計(jì)數(shù)初值計(jì)算 公式為: 定時(shí)時(shí)間=clk 時(shí)鐘周期計(jì)數(shù)初值 n。 4.1.2 8254 的工作方式 1)方式 0:計(jì)數(shù)到 0 結(jié)束輸出正躍變信號方式。 2)方式 1:硬件可重觸發(fā)單穩(wěn)方式。 3)方式 2:頻率發(fā)生器方式。 4)方式 3:方波發(fā)生器。 5)方式 4:軟件觸發(fā)選通方式。 6)方式 5:硬件觸發(fā)選通方式。 4.1.3 8254 內(nèi)部寄存器各位的定義及初始化的編程

12、方法 8254 的方式控制字和讀出控制字共用該寄存器,即使用同一個(gè)口地址。其 中方式控制字用于設(shè)置計(jì)數(shù)器的工作方式,讀出控制字用于設(shè)置讀出命令。在 8253 中該寄存器只用于設(shè)置計(jì)數(shù)器的工作方式。 4.1.4 8254 定時(shí)/計(jì)數(shù)器原理圖和發(fā)光二極管的驅(qū)動(dòng)原理圖 4.2 8254 定時(shí)器/計(jì)數(shù)器 本實(shí)驗(yàn)中使用的核心器件是并口芯片 8255a。8255a 是一種使用單一的+5v 電源、40 引腳雙列直插式的大規(guī)模集成電路芯片。 4.2.1 8255 的工作方式 8255 內(nèi)部有 3 個(gè) i/o 端口,a 口可以工作在方式 0、方式 1 或方式 2;b 口 可以工作在方式 0 或方式 1;c 口可

13、以工作在方式 0。 方式 0 是基本型輸入/輸出。用這種方式和外設(shè)交換數(shù)據(jù)時(shí),8255 端口與 外設(shè)之間不使用聯(lián)絡(luò)線。 方式 1 為選通型輸入/輸出。用這種方式和外設(shè)交換數(shù)據(jù)時(shí),端口和外設(shè)之 間要有聯(lián)絡(luò)信號。 方式 2 是雙向數(shù)據(jù)傳送,僅 a 口有此功能。當(dāng) a 口工作在方式 2 時(shí),b 口 仍可以工作在方式 0 或方式 1,但此時(shí)的 b 口方式 1 只能用查詢方式與 cpu 交 換信息。 4.2.2 8255 并口模塊原理圖 4.3 8259 中斷控制器 8259a 是可編程的中斷控制器。每片 8259a 可以管理 8 個(gè)外部中斷,通過 多片 8259a 的級聯(lián)最多可以管理 64 個(gè)外部中斷

14、,8259a 能對它所管理的每個(gè)中 斷源進(jìn)行單獨(dú)的允許與禁止,對各中斷請求具有多種優(yōu)先級管理方式;中斷響 應(yīng)時(shí)能夠自動(dòng)提供中斷類型號,通過中斷類型號可得到 4 字節(jié)(cs:ip)的中 斷服務(wù)程序入口地址。 4.3.1 8259 各引腳定義 8259a 是 28 引腳雙列直插式芯片,各信號引腳與 ttl 兼容,采用+5v 供電。 1)數(shù)據(jù)線,雙向三態(tài),可直接與系統(tǒng)數(shù)據(jù)總線相連。 70 2)片選信號:低電平有效,通常由系統(tǒng)高位地址譯碼產(chǎn)生。 3)地址線:用于 8259a 內(nèi)部寄存器選擇。 0 4)讀信號、寫信號:低電平有效,用以控制數(shù)據(jù)總線上的數(shù)據(jù)流向。 5)中斷請求線 int:8259a 向 c

15、pu 或上一級 8259a 輸出的重點(diǎn)請求信號。 6)中斷響應(yīng)線:cpu 或上一級 8259a 的中斷響應(yīng)信號輸入端。 7)外部中斷請求輸入:外部設(shè)備的中斷請求信號輸入端。 07 4.3.2 8259a 的內(nèi)部結(jié)構(gòu) 4.4 ad574 ad574a 是美國模擬數(shù)字公司(analog)推出的單片高速 12 位逐次 比較型 a/d 轉(zhuǎn)換器,內(nèi)置雙極性電路構(gòu)成的混合集成轉(zhuǎn)換顯片,具有外接元 件少,功耗低,精度高等特點(diǎn),并且具有自動(dòng)校零和自動(dòng)極性轉(zhuǎn)換功能,只 需外接少量的阻容件即可構(gòu)成一個(gè)完整的 a/d 轉(zhuǎn)換器,其主要功能特性如下: 分辨率:12 位 非線性誤差:小于1/2lbs 或1lbs 轉(zhuǎn)換速率

16、:25us 模擬電壓輸入范圍:010v 和 020v,05v 和 010v 兩檔四種 電源電壓:15v 和 5v 數(shù)據(jù)輸出格式:12 位/8 位 芯片工作模式:全速工作模式和單一工作模式 ad574a 的引腳說明: 1. pin1(+v)+5v 電源輸入端。 2. pin2()數(shù)據(jù)模式選擇端,通 過此引腳可選擇數(shù)據(jù)縱線是 12 位或 8 位 輸出。 3. pin3()片選端。 4. pin4(a0)字節(jié)地址短周期控制 端。與端用來控制啟動(dòng)轉(zhuǎn)換的方式和 數(shù)據(jù)輸出格式。須注意的是,端 ttl 電平不能直接+5v 或 0v 連接。 5. pin5()讀轉(zhuǎn)換數(shù)據(jù)控制端。 6. pin6(ce)使能端。

17、 現(xiàn)在我們來討論 ad574a 的 ce、和 a0 對其工作狀態(tài)的控制 過程。在 ce=1、=0 同時(shí)滿足時(shí),ad574a 才會正常工作,在 ad574 處于工 作狀態(tài)時(shí),當(dāng)=0 時(shí) a/d 轉(zhuǎn)換,當(dāng)=1 是進(jìn)行數(shù)據(jù)讀出。和 a0 端用來 控制啟動(dòng)轉(zhuǎn)換的方式和數(shù)據(jù)輸出格式。a0-0 時(shí),啟動(dòng)的是按完整 12 位數(shù)據(jù) 方式進(jìn)行的。當(dāng) a0=1 時(shí),按 8 位 a/d 轉(zhuǎn)換方式進(jìn)行。當(dāng)=1,也即當(dāng) ad574a 處于數(shù)據(jù)狀態(tài)時(shí),a0 和控制數(shù)據(jù)輸出狀態(tài)的格式。當(dāng)=1 時(shí), 數(shù)據(jù)以 12 位并行輸出,當(dāng)=0 時(shí),數(shù)據(jù)以 8 位分兩次輸出。而當(dāng) a0=0 時(shí), 輸出轉(zhuǎn)換數(shù)據(jù)的高 8 位,a0=1 時(shí)輸

18、出 a/d 轉(zhuǎn)換數(shù)據(jù)的低 4 位,這四位占一 個(gè)字節(jié)的高半字節(jié),低半字節(jié)補(bǔ)零。 ad574a 控制端標(biāo)志意義 c e a 0 工作狀態(tài) 5 系統(tǒng)設(shè)計(jì)思路及總設(shè)計(jì)方案 5.1 關(guān)鍵問題 1)解決 pid 控制算法的問題。 2)解決 pwm 波的產(chǎn)生的問題。 5.2 總設(shè)計(jì)思路及方案 單片機(jī)直流電機(jī)調(diào)速簡介:單片機(jī)直流調(diào)速系統(tǒng)可實(shí)現(xiàn)對直流電動(dòng)機(jī)的平 滑調(diào)速。pwm 是通過控制固定電壓的直流電源開關(guān)頻率,從而改變負(fù)載兩端的 電壓,進(jìn)而達(dá)到控制要求的一種電壓調(diào)整方法。在 pwm 驅(qū)動(dòng)控制的調(diào)整系統(tǒng)中, 按一個(gè)固定的頻率來接通和斷開電源,并根據(jù)需要改變一個(gè)周期內(nèi)“接通”和 “斷開”時(shí)間的長短。通過改變直

19、流電機(jī)電樞上電壓的“占空比”來改變平均 電壓的大小,從而控制電動(dòng)機(jī)的轉(zhuǎn)速。 0xxxx 禁止 xxxx 禁止 100x0 啟動(dòng) 12 位轉(zhuǎn)換 100x1 啟動(dòng) 8 位轉(zhuǎn)換 101 接 +5v x 12 位并行輸出有效 101 接 0v 0 高 8 位并行輸出有效 101 接 0v 1 低 4 位并行輸出有效 硬件設(shè)計(jì)的任務(wù)是根據(jù)總體設(shè)計(jì)要求,在選擇的機(jī)型的基礎(chǔ)上,具體確定 系統(tǒng)中所要使用的元器件,設(shè)計(jì)出系統(tǒng)的原理框圖、電路原理圖。 硬件的功能由總體設(shè)計(jì)所規(guī)定,硬件設(shè)計(jì)的任務(wù)是根據(jù)總體設(shè)計(jì)要求,在 選擇的機(jī)型的基礎(chǔ)上,具體確定系統(tǒng)中所要使用的元器件,設(shè)計(jì)出系統(tǒng)的電路 原理圖,必要時(shí)做一些部件實(shí)驗(yàn)

20、,以確定電路圖的正確性。 整個(gè)測量轉(zhuǎn)速系統(tǒng)為 pd-32e 控制模塊、霍爾傳感器模塊、led 模塊等各個(gè) 模塊都承擔(dān)著各自的任務(wù)。 5.3 霍爾元件測速模塊 當(dāng)沒有信號產(chǎn)生時(shí),可以改變一下磁鋼的方向,霍爾對磁鋼方向有要求。 沒有磁鋼時(shí)輸出高電平,有磁鋼時(shí)輸出低電平。 霍爾傳感器的外形圖和與磁場的作用關(guān)系如圖所示。磁鋼用來提供霍爾能 感應(yīng)的磁場,當(dāng)霍爾元件以切割磁力線的方式相對磁鋼運(yùn)動(dòng)時(shí),在霍爾輸出端 口就會有電壓輸出,所以霍爾傳感器和磁鋼需要配對使用。霍爾傳感器檢測轉(zhuǎn) 速示意圖如下。在非磁材料的圓盤邊上粘貼一塊磁鋼,霍爾傳感器固定在圓盤 外緣附近。圓盤每轉(zhuǎn)動(dòng)一圈,霍爾傳感器便輸出一個(gè)脈沖。通過

21、單片機(jī)測量產(chǎn) 生脈沖的頻率,就可以得出圓盤的轉(zhuǎn)速。同樣道理,根據(jù)圓盤(車輪)的轉(zhuǎn)速, 再結(jié)合圓盤的周長就是計(jì)算出物體的位移。如果要增加測量位移的精度,可以 在圓盤(車輪)上多增加幾個(gè)磁鋼。 ad574 利用不同的控制信號,既可實(shí)現(xiàn)高精度的 12 位轉(zhuǎn)換,又可作快速的 8 位轉(zhuǎn)換。12 位轉(zhuǎn)換后的數(shù)據(jù)有兩種讀出方式:12 位一次讀出;高 8 位、低 4 位分兩次讀出。adc 數(shù)據(jù)輸出帶有三態(tài)緩沖,可直接與 8 位或 16 位的微處理器 接口。內(nèi)部采用快速逐次逼近式 a/d 轉(zhuǎn)換,轉(zhuǎn)換時(shí)間為 25us。ad574 有單極性 輸入和雙極性兩種模擬輸入可供選擇使用,在實(shí)際應(yīng)用時(shí),應(yīng)根據(jù)模擬輸入信 號的

22、性質(zhì)加以選定,在 pd-32 實(shí)驗(yàn)裝置已固定為雙極性輸入。狀態(tài)輸出信號 sts,轉(zhuǎn)換時(shí)為高電平,轉(zhuǎn)換結(jié)束時(shí)為低電平,如果 ad574 用于微處理器系統(tǒng), sts 信號可做為 cpu 的中斷請求信號。 硬件中斷是由 cpu 以外的器件發(fā)出的中斷請求信號而引發(fā)的中斷。80486 mpu 只有 2 個(gè)引腳(intr 和 nmi)可以接收外部的中斷請求信號,為了管理眾多的 外部中斷源,intel 公司設(shè)計(jì)了專用的配套芯片-8259a 中斷控制器。8259a 是 可編程芯片,一片 8259a 管理 8 級中斷源,采用級連方式,兩片 8259a 可以管理 15 級中斷。它內(nèi)部有一組初始化命令字寄存器,用于

23、存放對 8259 初始化編程 時(shí)的命令字 icw1icw4。 8259a 是可編程器件,其工作方式由軟件編程決定,它提供的兩類命令字 分別可以用來完成初始化編程和應(yīng)用編程。其中 icw 命令可裝入到 8259a 的內(nèi) 部控制寄存器,以確定它用到的中斷管理方式或工作模式。經(jīng)過初始化編程以 后,在使用過程中只需使用 ocw 進(jìn)行應(yīng)用編程即可。 每一片 8255 的,負(fù)責(zé)其上方的兩片數(shù)碼管。 端口 a 輸出驅(qū)動(dòng)左邊數(shù)碼管的 ah 陰級段。 端口 b 輸出驅(qū)動(dòng)右邊數(shù)碼管的 ah 陰級段。 端口 c 輸出驅(qū)動(dòng)兩個(gè)數(shù)碼管的共陽極。每個(gè)數(shù)碼管有兩個(gè)共陽極(分別是 第 1、5 腳) ,兩個(gè)共陽極都接低電平,數(shù)

24、碼管不顯示;第 5 腳陽極接高電平, 第 1 腳陽極接低電平,數(shù)碼管顯示紅色字符;第 1 腳陽極接高電平,第 5 腳陽 極接低電平,數(shù)碼管顯示綠色字符,兩個(gè)共陽極都接高電平,數(shù)碼管顯示黃色 字符。數(shù)碼管字型編碼表如下所示: 5.4 4*3 小鍵盤原理圖 由一片 74hc245 作為鍵盤的行掃描電路(鍵盤的列掃描信號由一片 74hc273 提供,如圖 2 所示) ,74hc245 的 p0-p3 已經(jīng)分別接到 4*3 的小鍵盤的 4 行。另外,這片 74hc245 的引腳和 4*3 小鍵盤行、列都有引出相應(yīng)的接插口, 所以也能另作它用,例如用 74hc245 來驅(qū)動(dòng)發(fā)光二極管,或者與適當(dāng)?shù)妮斎胼?/p>

25、 出器件(例如 8255)相配合就可以進(jìn)行鍵盤掃描實(shí)驗(yàn)。該片 74hc245 的/g 端引 了出來(keycs0)作為它的片選信號端。 硬件連接說明: 1.小鍵盤的 p0p3 口連接第四片 8255 的 c0c3 口; q0q2 口連接 a0a2 口; 2. 占空比輸入接第四片的 pb7 口;8259 的 intp 接 intr1 口; 3.8254a 的 out0 接 8259 的 irq0;clk0 接 47k;cs 接 cs1;gate0 接+5v; 5.5 主程序設(shè)計(jì) 將人為設(shè)定的直流電機(jī)轉(zhuǎn)速值,與測速電路得到的直流電機(jī)轉(zhuǎn)速值(反饋 量)進(jìn)行比較,其差值經(jīng)過 pid 運(yùn)算,將得到控制量

26、并產(chǎn)生 pwm 脈沖,通過驅(qū) 動(dòng)電路控制直流電機(jī)的轉(zhuǎn)動(dòng),構(gòu)成直流電機(jī)閉環(huán)調(diào)速控制系統(tǒng)。 在 pwm 驅(qū)動(dòng)控制的調(diào)整系統(tǒng)中,按一個(gè)固定的頻率來接通和斷開電源,并且 根據(jù)需要改變一個(gè)周期內(nèi)“接通”和“斷開”時(shí)間的長短。通過改變直流電機(jī) 電樞上電壓的“占空比”來達(dá)到改變平均電壓大小的目的,從而來控制電動(dòng)機(jī) 的轉(zhuǎn)速。 設(shè)電機(jī)始終接通電源時(shí),電機(jī)轉(zhuǎn)速最大為 vmax,設(shè)占空比為 d= t1 / t,則 電機(jī)的平均速度為 va = vmax * d,其中 va 指的是電機(jī)的平均速度;vmax 是 指電機(jī)在全通電時(shí)的最大速度;d = t1 / t 是指占空比。由上面的公式可見, 當(dāng)我們改變占空比 d = t

27、1 / t 時(shí),就可以得到不同的電機(jī)平均速度 vd,從而 達(dá)到調(diào)速的目的。 本設(shè)計(jì)中采用軟件延時(shí)方式對脈沖寬度進(jìn)行控制 ,pwm 模式被用于產(chǎn)生一 個(gè)連續(xù)的占空比可調(diào)的方波信號。脈沖寬度調(diào)制通過比較 pca 定時(shí)器的低字節(jié) (cl)和比較寄存器的低字節(jié)(ccapnl)產(chǎn)生 8 位 pwm 脈沖。當(dāng) cl0? set_data變量放入ax寄存 器 ax中變量減100 將ax中的變量放回 set_data中 壓棧 是 set_data變量置為0 否 轉(zhuǎn)轉(zhuǎn)速速步步減減子子程程序序 開始 壓棧 將控制標(biāo)志置為1 彈棧 壓棧 將控制變量置為0 結(jié)束 開始 結(jié)束 將控制標(biāo)志置為0 彈棧 控控制制啟啟動(dòng)動(dòng)子

28、子程程序序 控控制制停停止止子子程程序序 set_data變量放入ax寄存 器 ax中變量加100 開始 結(jié)束 將ax中的變量放回 set_data中 壓棧 set_data5000? set_data變量置為5000 是 否 轉(zhuǎn)轉(zhuǎn)速速步步進(jìn)進(jìn)子子程程序序 開始 寄存器壓棧 將adnum中數(shù) 據(jù)乘上1221 將上步中數(shù)據(jù) 除上1000 寄存器彈棧 余數(shù)是否小于501 將所得商加1 結(jié)束 否 所得的商放在 check_num單元中 是 標(biāo)標(biāo)度度變變換換1 開始 寄存器壓棧 初始化各變量 初始化 8254,8255,8259 裝填中斷向量 寄存器彈棧 結(jié)束 初初始始化化程程序序 開始 寄存器壓棧

29、將set_data中數(shù)據(jù)除以 100放在setdata1中 將chenk_num中數(shù)據(jù)除以 100放在checknum11中 寄存器彈棧 結(jié)束 標(biāo)標(biāo)度度變變換換2 開始 調(diào)用初始化子程序 調(diào)用均值濾波子程序 調(diào)用標(biāo)度轉(zhuǎn)換子程序1 調(diào)用標(biāo)度轉(zhuǎn)換子程序2 調(diào)用顯示預(yù)處理子程序 調(diào)用顯示子程序 控制標(biāo)志是否有效 調(diào)用控制算法子程序 調(diào)用鍵盤掃描子程序 是 否 主主程程序序 開始 向ad574地址虛寫數(shù)據(jù) 在該地址讀回 數(shù)據(jù)放到ax中 將無效的高四位清 零后存到addata中 寄存器壓棧 寄存器彈棧 結(jié)束 ad轉(zhuǎn)轉(zhuǎn)換換 開始 寄存器壓棧 acount1單元中 數(shù)據(jù)自加1 acount1中數(shù)據(jù) 是否小于

30、50 將acount1清零 否 將acount清零 acount是否小于 100 將acount加1 acount是否大于 kongzhi 向8255a口輸出全0向8255a口輸出全1 向8255寫20h結(jié)束命令 寄存器彈棧 結(jié)束 否 否 是 是 是 中中斷斷子子程程序序 清零變量adres和addata 開始 寄存器壓棧 cx中放入16 調(diào)用ad轉(zhuǎn)換子程序 將addata數(shù)據(jù)累 加到adres中 cx=cx-1 cx=0? adres中數(shù)據(jù)右移4 位,結(jié)果放入adnum 寄存器彈棧 是 否 結(jié)束 均均值值濾濾波波 開始 寄存器壓棧 將設(shè)定數(shù)據(jù)減去實(shí)測 數(shù)據(jù)的差放到ax中 是否為正 將偏差加到

31、errdata 單元(積分作用) ah是否小于-3ah是否大于3 偏差數(shù)據(jù)乘上系數(shù)(比例作用)再 加上errdata中數(shù)據(jù)放入控制變量中 寄存器彈棧 結(jié)束 否 是 否 否 是 是 pi控控制制程程序序 附 2:程序清單 .486 ; ;數(shù)據(jù)段定義; ; data segment use16 org 1000h ctrl_8255 equ 20ch porta equ 200h portb equ 204h portc equ 208h ad_574 equ 300h addr0 equ 340h addr1 equ 348h intq equ 40h ctrl_8254 equ 32ch k_

32、set1 equ 800 k_set2 equ 2 acount dw ? addata dw ? adres dw ? adnum dw ? check_num dw ? checknum1 db ?;顯示用 checknum2 dw ? kongzhi db ? errdata dw ? set_data dw ? setdata1 db ? ;顯示用 setdata2 dw ? ctflag db ? acount1 db ? data ends code segment use16 assume cs:code,ds:data org 3000h beg:jmp start tab d

33、b0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h ;顯示字形碼 db80h,90h,88h,83h,0c6h,0a1h,86h,8eh disp_code_buf db ?,?,?,?,?,?,?,?,0ffh,0ffh ; ;主程序部分; ; start:mov ax,data mov ds,ax mov es,ax call chushihua sa1: sa2: call cy16 ;均值濾波程序 call vtrans ;標(biāo)度變換 1 call shujuchuli ;(已失去作用) call pre_disp ;顯示預(yù)處理程序 call disp ;顯示程序

34、 cmp ctflag,0 ;比較控制表示是否無效 je a11 ;無效跳轉(zhuǎn) call zhuanhuan ;執(zhí)行標(biāo)度變換 2 call ct ;執(zhí)行控制算法程序 a11: call scankey ;執(zhí)行鍵盤掃描子程序 jmp sa1 ;循環(huán)執(zhí)行 ; ;鍵盤掃描程序; ; scankey proc pusha kscan: mov bl,0fbh ;從最右列開始掃描 nxtcol: mov al,bl mov dx,20bh ;送出列信號 out dx,al mov dx,20bh ;讀入行信號 in al,dx and al,0f0h cmp al,0f0h jnz fndkey ;有鍵按

35、下即跳轉(zhuǎn) ror bl,1 ;列信號右移 jc nxtcol jmp kscan1 fndkey: shl bl,4 shr al,4 or bl,al ;形成鍵特征值 call dlys call dlys keyup: mov al,0 mov dx,20bh ;送出列信號 out dx,al mov dx,20bh ;讀入行信號 in al,dx and al,0f0h cmp al,0f0h jnz keyup ;等待按鍵松開 ctstart: ;調(diào)用啟動(dòng)控制功能 cmp bl,0eeh jne stop call kongzhistart jmp kscan1 stop: ;調(diào)用停止

36、控制功能 cmp bl,0deh jne bujin call kongzhistop jmp kscan1 bujin: ;調(diào)用步進(jìn)功能 cmp bl,0ebh jne bujian call ctbujin jmp kscan1 bujian: ;調(diào)用步減功能 cmp bl,0dbh jne kscan1 call ctbujian kscan1: popa ret scankey endp kongzhistart proc ;啟動(dòng)控制 pusha mov ctflag,1 popa ret kongzhistart endp kongzhistop proc ;停止控制 pusha m

37、ov kongzhi,0 mov ctflag,0 popa ret kongzhistop endp ctbujin proc ;轉(zhuǎn)速步進(jìn) pusha mov ax,set_data add ax,100 mov set_data,ax cmp set_data,5000 jbe ctbend mov set_data,5000 ctbend:popa ret ctbujin endp ctbujian proc ;轉(zhuǎn)速步減 pusha cmp set_data,0 jbe pj1 mov ax,set_data sub ax,100 mov set_data,ax popa ret pj1

38、: mov set_data,0 popa ret ctbujian endp dlys proc ;延時(shí)子程序 pusha mov cx,0ffh dlys_agn: nop loop dlys_agn popa ret dlys endp ; ;ad 轉(zhuǎn)換子程序; ; ad_in proc pusha mov dx,ad_574 ;向 ad574 虛寫 out dx,al mov cx,20h loo1: nop loop loo1 in ax,dx and ax,0fffh ;只保留低 12 位 mov addata,ax popa ret ad_in endp ; ;均值濾波子程序;

39、; cy16 proc pusha mov adres,0000 mov addata,0 mov cx,16 ;循環(huán)調(diào)用 16 次 ad 轉(zhuǎn)換程序,結(jié)果累加至 adres 單元 adst: call ad_in mov ax,adres add ax,addata mov adres,ax loop adst shr ax,4 ;右移 4 位即除以 16 mov adnum,ax popa ret cy16 endp ; ;數(shù)據(jù)轉(zhuǎn)換程序(實(shí)際未使用); ; zhuanhuan proc pusha mov al,setdata1 mov dl,60 mul dl mov setdata2,a

40、x mov al,checknum1 mov dl,60 mul dl mov checknum2,ax popa ret zhuanhuan endp ; ;控制算法程序; ; ct proc near ; pusha movzx ax,setdata1;5 movzx dx,checknum1;0 mov cx,errdata sub ax,dx jns ct0 ;為正數(shù)跳轉(zhuǎn) cmp ah,0fch ; 與-3 比較 js ct2 ;小于-3 跳轉(zhuǎn)(不積分) jmp ct1 ct0: cmp ah,03 ;與 3 比較 jns ct2 ;大于 3 跳轉(zhuǎn)(不積分) ct1: add cx,a

41、x ;積分過程 mov errdata,cx ct2: mov dx,k_set1 ;比例過程 imul dx add ax,cx mov kongzhi,ah ;add ax,cx ; mov kongzhi,ax ct3: popa ret ct endp ; ;標(biāo)度變換 1(結(jié)果為真實(shí)值 x100); ; vtrans proc pusha mov ax,adnum mov cx,1221 mul cx mov cx,1000 div cx cmp dx,501 jb endv inc ax endv:mov check_num,ax popa ret vtrans endp ; ;顯示

42、預(yù)處理(字碼轉(zhuǎn)換); ; pre_disp proc near ;顯示值轉(zhuǎn)換成顯示字型碼子程序 pusha lea si, disp_code_buf ;取顯緩區(qū)指針 lea bx,tab moval,setdata1 ; mov ah,0 mov cl,10 div cl xlat tab mov si, al ;存設(shè)定值個(gè)位字型碼 inc si mov al,ah xlat tab mov si,al ; ;存設(shè)定值十位字型碼 inc si mov al,0bfh mov si,al inc si mov si,al inc si mov al,checknum1 ;拆分待顯數(shù)據(jù) mov ah,0 mov cl,10 div cl xlat tab ;得到個(gè)位字型碼 mov si,al ; 保存?zhèn)€位字型碼 inc si ; 指向下一位存儲單元 mov al,ah xlat tab mov si,al popa ret pre_disp endp ; ;顯示程序; ; disp proc near pusha cmp acount1,9 jne dis1 lea si,disp_code_buf mov dx,200h mov cx,3 dis: mov al,si out dx,al ;a 口顯示 inc

溫馨提示

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

評論

0/150

提交評論