版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> (20_ _屆)</b></p><p><b> 本科畢業(yè)設(shè)計(jì)</b></p><p> 三維運(yùn)動(dòng)平臺(tái)控制系統(tǒng)的軟件設(shè)計(jì)</p><p> 所在學(xué)院 </p><p> 專業(yè)班級(jí) 測(cè)控技術(shù)與儀
2、器 </p><p> 學(xué)生姓名 學(xué)號(hào) </p><p> 指導(dǎo)教師 職稱 </p><p> 完成日期 年 月 </p><p><b> 摘 要</b></p
3、><p> 在現(xiàn)代工業(yè)中,大量存在著對(duì)運(yùn)動(dòng)機(jī)構(gòu)進(jìn)行運(yùn)動(dòng)軌跡、速度等精確控制的需求。三維運(yùn)動(dòng)平臺(tái)在機(jī)械加工、工程測(cè)試、醫(yī)療等各種生產(chǎn)行業(yè)中都有極廣泛的應(yīng)用,本文設(shè)計(jì)了一種以單片機(jī)PIC16F877A為控制中心的三維運(yùn)動(dòng)平臺(tái)控制系統(tǒng),首先介紹了目前國(guó)內(nèi)外運(yùn)動(dòng)控制的研究現(xiàn)狀,接著對(duì)本控制系統(tǒng)的核心器件——PIC16F877A單片機(jī)進(jìn)行了較詳細(xì)的介紹,在介紹系統(tǒng)的硬件結(jié)構(gòu)設(shè)計(jì)基礎(chǔ)上,介紹了組成芯片的結(jié)構(gòu)、功能及特點(diǎn)。本文中
4、對(duì)控制軟件進(jìn)行了需求分析,重點(diǎn)完成了系統(tǒng)的軟件設(shè)計(jì),設(shè)計(jì)并完成了各個(gè)模塊的功能。本系統(tǒng)利用PIC16F877A單片機(jī)芯片的優(yōu)良特性,通過按鍵選擇平臺(tái)的運(yùn)動(dòng)方向和位移及控制步進(jìn)電機(jī)的運(yùn)轉(zhuǎn),通過LCD顯示運(yùn)動(dòng)方向,數(shù)碼管顯示位移。達(dá)到了軟件運(yùn)行成功并在實(shí)物上實(shí)現(xiàn)的目標(biāo)。</p><p> 關(guān)鍵詞:三維運(yùn)動(dòng)平臺(tái)、軟件設(shè)計(jì)、PIC16F877A單片機(jī)</p><p> Three-dimens
5、ional motion platform control system’software design</p><p><b> Abstract</b></p><p> In modern industry,there are a lot of precise control’s requirements for movement mechanism and
6、 its speed. Three-dimensional motion platform has a very wide range of applications in many areas,such as in machining, engineering test, medical and other manufacturing industries. This paper introduces a design of thre
7、e-dimensional motion platform which makes PIC16F877A MCU as its control center,firstly introduces the current research status of motion control at home and abroad, and then gives a deta</p><p> Keywords: Th
8、ree-dimensional motion platform, control, PIC16F877A single-chip microcomputer </p><p><b> 目錄</b></p><p><b> 摘 要I</b></p><p> AbstractII</p><
9、;p><b> 1 緒論1</b></p><p> 1.1課題的來源1</p><p> 1.2課題的意義1</p><p> 1.3 運(yùn)動(dòng)控制國(guó)內(nèi)外發(fā)展現(xiàn)狀2</p><p> 1.3.1 運(yùn)動(dòng)控制的國(guó)外研究現(xiàn)狀2</p><p> 1.3.2 運(yùn)動(dòng)控制的國(guó)內(nèi)研究現(xiàn)
10、狀2</p><p> 1.4課題內(nèi)容和研究方案的確定3</p><p> 1.4.1 研究?jī)?nèi)容3</p><p> 1.4.2研究方案3</p><p> 1.5 本章小結(jié)3</p><p> 2 PIC單片機(jī)主機(jī)原理概述4</p><p> 2.1單片機(jī)芯片選擇4&
11、lt;/p><p> 2.2 PIC系列單片機(jī)的結(jié)構(gòu)和性能特點(diǎn)7</p><p> 2.2.1 PIC系列單片機(jī)的結(jié)構(gòu)和性能7</p><p> 2.2.2 PIC16F877A單片機(jī)的特點(diǎn)9</p><p><b> 2.2本章小結(jié)9</b></p><p> 3各模塊硬件電路設(shè)計(jì)
12、10</p><p> 3.1 PIC單片機(jī)在系統(tǒng)應(yīng)用中的優(yōu)勢(shì)10</p><p> 3.2 鍵盤電路設(shè)計(jì)10</p><p> 3.2 LCD液晶顯示電路設(shè)計(jì)11</p><p> 3.3 LED數(shù)碼管電路設(shè)計(jì)13</p><p> 3.4步進(jìn)電機(jī)驅(qū)動(dòng)電路設(shè)計(jì)13</p><
13、p> 3.5 本章小結(jié)14</p><p> 4系統(tǒng)軟件設(shè)計(jì)15</p><p> 4.1開發(fā)環(huán)境及編程語言的選擇15</p><p> 4.2需求分析15</p><p> 4.3總體設(shè)計(jì)16</p><p> 4.3.1系統(tǒng)設(shè)計(jì)原理16</p><p> 4.
14、4編程實(shí)現(xiàn)17</p><p> 4.4.1 初始化子程序17</p><p> 4.4.2鍵盤按鍵程序設(shè)計(jì)18</p><p> 4.4.3 LCD液晶顯示程序設(shè)計(jì)21</p><p> 4.4.4步進(jìn)電機(jī)驅(qū)動(dòng)程序設(shè)計(jì)22</p><p> 4.5 本章小結(jié)23</p><p
15、> 5系統(tǒng)軟硬件調(diào)試24</p><p><b> 6 結(jié)論27</b></p><p><b> 參考文獻(xiàn)28</b></p><p> 致謝錯(cuò)誤!未定義書簽。</p><p><b> 1 緒論</b></p><p><
16、;b> 1.1課題的來源</b></p><p> 在現(xiàn)代工業(yè)自動(dòng)化、辦公自動(dòng)化、家庭自動(dòng)化和國(guó)防自動(dòng)化中,大量存在著對(duì)運(yùn)動(dòng)機(jī)構(gòu)進(jìn)行運(yùn)動(dòng)軌跡、速度等精確控制的需求。例如,工業(yè)應(yīng)用方面,各種數(shù)控機(jī)床、加工中心、工業(yè)機(jī)器人、軋機(jī)傳動(dòng)等控制;計(jì)算機(jī)軟硬盤驅(qū)動(dòng)器、CD-ROM、打印機(jī)的控制;家用電器中的錄像機(jī)、VCD控制;國(guó)防和航空領(lǐng)域中的火炮瞄準(zhǔn)、導(dǎo)航、衛(wèi)星姿態(tài)等的控制,動(dòng)控制成為控制科學(xué)的重要分
17、支[1]。近幾年,計(jì)算機(jī)技術(shù)和現(xiàn)代電子技術(shù)的迅速發(fā)展與廣泛應(yīng)用,為運(yùn)動(dòng)控制系統(tǒng)的發(fā)展注入了強(qiáng)大的技術(shù)動(dòng)力。我國(guó)傳統(tǒng)運(yùn)動(dòng)控制系統(tǒng)已經(jīng)不能適應(yīng)現(xiàn)代制造業(yè)的發(fā)展,深入研究基于新體系架構(gòu)、低成本、新技術(shù)、高性能的運(yùn)動(dòng)控制系統(tǒng),既有市場(chǎng)需求,又有良好的技術(shù)背景環(huán)境[1]。</p><p><b> 1.2課題的意義</b></p><p> 三維運(yùn)動(dòng)平臺(tái)在醫(yī)療、機(jī)械加工、工
18、程測(cè)試等各種生產(chǎn)行業(yè)中都有著廣泛的應(yīng)用,是現(xiàn)代運(yùn)動(dòng)控制技術(shù)的基礎(chǔ)設(shè)備[2]。這類平臺(tái)比較常見的控制方式就是采用“計(jì)算機(jī)+專用運(yùn)動(dòng)控制卡+驅(qū)動(dòng)器”的方法,通過計(jì)算機(jī)軟件控制專用運(yùn)動(dòng)控制卡從而控制驅(qū)動(dòng)器以達(dá)到控制平臺(tái)運(yùn)動(dòng)的目的,但是其造價(jià)一般比較昂貴,不能夠大面積推廣應(yīng)用[2]。</p><p> 單片微型計(jì)算機(jī)作為微型計(jì)算機(jī)中的一個(gè)發(fā)展分支,它有較強(qiáng)的控制功能、低廉的成本,介于工業(yè)控制計(jì)算機(jī)和可編程控制器之間。在
19、選擇電動(dòng)機(jī)的控制器時(shí),通常是在滿足功能需要的前提下,優(yōu)先選擇成本低的控制器[28]。因此,通常優(yōu)先選擇單片機(jī)。從最近的統(tǒng)計(jì)數(shù)據(jù)也可以看出,世界上每年要有25億片各種單片機(jī)投入使用。單片機(jī)是目前世界上使用量最大的微處理器。</p><p> 為了研究單片機(jī)在電機(jī)運(yùn)動(dòng)控制系統(tǒng)中的應(yīng)用,應(yīng)先了解單片機(jī)電機(jī)運(yùn)動(dòng)控制系統(tǒng)和內(nèi)部資源的運(yùn)行特性,進(jìn)一步發(fā)掘單片機(jī)在電機(jī)運(yùn)動(dòng)控制領(lǐng)域中的潛力,以提高系統(tǒng)的性能和降低系統(tǒng)的成本。這
20、樣無論對(duì)于推廣單片機(jī)在電機(jī)運(yùn)動(dòng)控制領(lǐng)域中的應(yīng)用還是對(duì)于提高電機(jī)運(yùn)動(dòng)控制系統(tǒng)的性能都有很大的研究?jī)r(jià)值和現(xiàn)實(shí)意義[3]。</p><p> 1.3 運(yùn)動(dòng)控制國(guó)內(nèi)外發(fā)展現(xiàn)狀</p><p> 1.3.1 運(yùn)動(dòng)控制的國(guó)外研究現(xiàn)狀</p><p> 運(yùn)動(dòng)控制作為自動(dòng)化技術(shù)的一個(gè)重要分支,在20世紀(jì)90年代,國(guó)際上發(fā)達(dá)國(guó)家,例如美國(guó)已經(jīng)進(jìn)入快速發(fā)展的階段。近年來,隨著運(yùn)動(dòng)
21、控制技術(shù)的不斷進(jìn)步和完善,運(yùn)動(dòng)控制器作為一個(gè)獨(dú)立的工業(yè)自動(dòng)化控制類產(chǎn)品,已經(jīng)被越來越多的產(chǎn)業(yè)領(lǐng)域接受,并且它已經(jīng)達(dá)到一個(gè)引人矚目的市場(chǎng)規(guī)模。目前,運(yùn)動(dòng)控制器從結(jié)構(gòu)上主要分為如下三大類[3]: </p><p> (1)基于計(jì)算機(jī)標(biāo)準(zhǔn)總線的運(yùn)動(dòng)控制器,它是把具有開放體系結(jié)構(gòu),獨(dú)立于計(jì)算機(jī)的運(yùn)動(dòng)控制器與計(jì)算機(jī)相結(jié)合構(gòu)成,目前這種運(yùn)動(dòng)控制器是市場(chǎng)上的主流產(chǎn)品[3]。</p><p> (2
22、)Soft 型開放式運(yùn)動(dòng)控制器,它提供給用戶最大的靈活性,它的運(yùn)動(dòng)控制軟件全部裝在計(jì)算機(jī)中,而硬件部分僅是計(jì)算機(jī)與伺服驅(qū)動(dòng)和外部 I/O 之間的標(biāo)準(zhǔn)化通用接口[3]。 </p><p> (3)嵌入式結(jié)構(gòu)的運(yùn)動(dòng)控制器,這種運(yùn)動(dòng)控制器是把計(jì)算機(jī)嵌入到運(yùn)動(dòng)控制器中的一種產(chǎn)品,它能夠獨(dú)立運(yùn)行。嵌入式的運(yùn)動(dòng)控制器也可配置軟盤和硬盤驅(qū)動(dòng)器,甚至可以通過Internet進(jìn)行遠(yuǎn)程診斷。例如美國(guó) ADEPT 公司的 Smar
23、tController,固高科技公司的 GU嵌入式運(yùn)動(dòng)控制平臺(tái)系列產(chǎn)品等[3]。</p><p> 1.3.2 運(yùn)動(dòng)控制的國(guó)內(nèi)研究現(xiàn)狀</p><p> 目前國(guó)外產(chǎn)品已經(jīng)開始大量進(jìn)入中國(guó),固高科技公司也相繼開發(fā)出 GO 、GT、 GH和 GU系列基于 DSP 的開放式運(yùn)動(dòng)控制器產(chǎn)品,有近 150 個(gè)品種可供用戶選擇,固高科技公司把通用運(yùn)動(dòng)控制器產(chǎn)品分為高、中、低三個(gè)檔次,他們分別是 G
24、H、GT和 GO 系列產(chǎn)品[4]。從目前國(guó)內(nèi)市場(chǎng)的反饋情況來看,按照行業(yè)進(jìn)行市場(chǎng)開發(fā),具有一定的優(yōu)勢(shì)。這三類運(yùn)動(dòng)控制器的特點(diǎn)和應(yīng)用領(lǐng)域如下:</p><p> (1)點(diǎn)位運(yùn)動(dòng)控制器,主要應(yīng)用在那些僅對(duì)終點(diǎn)位置有要求,與運(yùn)動(dòng)軌跡無關(guān)的系統(tǒng)[4]。</p><p> (2)連續(xù)軌跡運(yùn)動(dòng)控制器,主要應(yīng)用在傳統(tǒng)的數(shù)控系統(tǒng)、切割系統(tǒng)的輪廓控制[4]。</p><p>
25、(3)同步運(yùn)動(dòng)控制器,主要應(yīng)用在需要有電子齒輪箱和電子凸輪功能的系統(tǒng)控制中[4]。</p><p> 1.4課題內(nèi)容和研究方案的確定</p><p> 1.4.1 研究?jī)?nèi)容</p><p> 本課題要對(duì)以下內(nèi)容做深入的研究:</p><p> 1.實(shí)現(xiàn)三維運(yùn)動(dòng)控制,在坐標(biāo)上實(shí)現(xiàn)X軸Y軸Z軸的運(yùn)動(dòng)。</p><p&g
26、t; 2.實(shí)現(xiàn)實(shí)時(shí)顯示三維運(yùn)動(dòng)平臺(tái)的運(yùn)動(dòng)方向及位移。</p><p> 2.按鍵控制電機(jī)的轉(zhuǎn)動(dòng)。</p><p> 3.按鍵控制運(yùn)動(dòng)平臺(tái)回到坐標(biāo)原點(diǎn)。</p><p><b> 1.4.2研究方案</b></p><p> 鑒于上述要實(shí)現(xiàn)的功能,該系統(tǒng)主要由液晶顯示模塊、數(shù)碼管顯示模塊、PIC主機(jī)(數(shù)據(jù)處理)、
27、鍵盤按鍵選擇模塊、步進(jìn)電機(jī)模塊五大部分組成,整個(gè)系統(tǒng)如圖1-1所示,其中各部分的具體實(shí)現(xiàn)方案將在以下各章中闡述。</p><p><b> 圖1-1 系統(tǒng)框圖</b></p><p><b> 1.5 本章小結(jié)</b></p><p> 本章介紹了運(yùn)動(dòng)控制的國(guó)內(nèi)外現(xiàn)狀和技術(shù)的發(fā)展趨勢(shì),并闡述了該課題研究的目的及意義,
28、最后確定了該課題的內(nèi)容和研究方案。</p><p> 2 PIC單片機(jī)主機(jī)原理概述</p><p> 2.1單片機(jī)芯片選擇</p><p> 現(xiàn)今世界上涌現(xiàn)出品種多樣的單片機(jī),目前應(yīng)用較廣的主要有美國(guó)Intel公司的MCS-51和MCS-96系列、美國(guó)Motorola公司的MC68系列、臺(tái)灣ICSI公司的8051系列、美國(guó)Microchip公司的PIC系列等,
29、其中各個(gè)系列的單片機(jī)都有其各自的優(yōu)點(diǎn)[5]。美國(guó)Microchip公司近幾年推出的PIC系列單片機(jī),與其它系列相比,它的最大優(yōu)點(diǎn)表現(xiàn)在功能強(qiáng)、引腳少、可直接帶LED負(fù)載;具有低耗能工作方式,實(shí)現(xiàn)掉電保護(hù);外圍配置簡(jiǎn)單、明晰,提高了整機(jī)的可靠性;且具有較強(qiáng)的抗干擾能力,大大提高了抵御外界的電磁干擾本機(jī)控制電路的能力[5]。所以本設(shè)計(jì)選用PIC16F877A單片機(jī),其管腳圖如圖2-1所示:</p><p> 圖2-
30、1 PIC16F877A管腳圖</p><p> PIC16F877A單片機(jī)引腳說明[6]:</p><p> 1.電源和接地引腳(均配置兩組)</p><p><b> ?。赫娫炊?。</b></p><p><b> ?。航拥囟?。</b></p><p><b
31、> 2.時(shí)鐘、復(fù)位引腳</b></p><p> OSC1/CLKIN:時(shí)鐘振蕩器晶體連接端1/外部時(shí)鐘源輸入端。</p><p> OSC2/CLKOUT:時(shí)鐘振蕩器晶體連接端2/時(shí)鐘信號(hào)輸出端。</p><p><b> 3.主復(fù)位引腳</b></p><p> /:人工復(fù)位輸入端(低電平
32、)有效/編程電壓輸入端。</p><p><b> 4. 端口A引腳</b></p><p> 端口A是一個(gè)雙向輸入/輸出可編程端口。端口A的引腳還有第2、第3功能。</p><p> RA0/AN0:RA0/第0路模擬信號(hào)輸入端。</p><p> RA1/AN1:RA1/第1路模擬信號(hào)輸入端。</p&g
33、t;<p> RA2/AN2/:RA2/第2路模擬信號(hào)輸入端/負(fù)參考電壓端。</p><p> RA3/AN3/:RA3/第3路模擬信號(hào)輸入端/正參考電壓端。</p><p> RA4/T0CKI:RA4/定時(shí)器0 時(shí)鐘輸入端。</p><p> RA4/AN4/:RA5/第4路模擬信號(hào)輸入端/串行口從動(dòng)選擇。</p><p
34、><b> 5.端口B引腳</b></p><p> 端口B是一個(gè)雙向輸入/輸出可編程端口。用作輸入時(shí),內(nèi)部有可編程的弱上拉電路。此外,端口B的引腳還有第2、第3功能。</p><p> RB0/INT:RB0/外部中斷輸入端。</p><p><b> RB1:RB1。</b></p><
35、;p><b> RB2:RB2。</b></p><p> RB3/PGM:RB3/低電平電壓編程輸入端。</p><p> RB4:RB4(具有電壓變化中斷功能)。</p><p> RB5:RB5(具有電壓變化中斷功能)。</p><p> RB6/PGC:RB6(具有電壓變化中斷功能)/在線調(diào)試輸入
36、端和串行編程時(shí)鐘輸入端。</p><p> RB7/PGD:RB7(具有電壓變化中斷功能)/在線調(diào)試輸入端和串行編程數(shù)據(jù)輸入端。</p><p><b> 6.端口C引腳</b></p><p> 端口C是一個(gè)雙向輸入/輸出可編程端口。段口C的引腳還有第2、第3功能,與其他端口相比功能最為豐富,主要有兩大功能:CCP和串行通信。</
37、p><p> RC0/T1OSO/T1CKI:RC0/定時(shí)器1的振蕩器輸出端/定時(shí)器1時(shí)鐘輸入端。</p><p> RC1/T1OSI/CCP2:RC1/定時(shí)器1的振蕩器輸入端/捕捉器2輸入端或比較器2輸出端或脈寬調(diào)制器PWM2的輸出端。</p><p> RC2/ CCP1:RC2/捕捉器1輸入端或比較器1輸出端或脈寬調(diào)制器PWM1的輸出端。</p>
38、;<p> RC3/SCK/SCL:RC3/SPI和串行口的同步時(shí)鐘輸入或輸出端。</p><p> RC3/SDI/SDA:RC4/SPI串行口的數(shù)據(jù)輸入端和串行口的數(shù)據(jù)輸入或輸出端。</p><p> RC5/SDO:RC5/SPI串行口的數(shù)據(jù)輸出端。</p><p> RC6/TX/CK:RC6/USART全雙工異步發(fā)送端/USART半雙
39、工同步傳送時(shí)鐘端。</p><p> RC7/RX/DT:RC7/USART全雙工異步接收端/USART半雙工同步傳送數(shù)據(jù)端。</p><p><b> 7.端口D引腳</b></p><p> 端口D是一個(gè)雙向輸入/輸出可編程端口。端口D的全部引腳都有第2功能。RD0~ RD7/PSP0~PSP7:RD0~ RD7/作從動(dòng)并行口與其他微
40、處理器總線連接。</p><p><b> 8.端口E引腳</b></p><p> 端口E是一個(gè)雙向輸入/輸出可編程端口。端口E的引腳還有第2、第3功能。</p><p> RE0//AN5:RE0/并行口讀出控制端/第5路模擬信號(hào)輸入端。</p><p> RE1//AN6:RE1/并行口寫入控制端/第6路模
41、擬信號(hào)輸入端。</p><p> RE2//AN7:RE2/并行口片選控制端/第7路模擬信號(hào)輸入端。</p><p> 2.2 PIC系列單片機(jī)的結(jié)構(gòu)和性能特點(diǎn)</p><p> 2.2.1 PIC系列單片機(jī)的結(jié)構(gòu)和性能</p><p><b> 1.哈佛雙總線結(jié)構(gòu)</b></p><p>
42、; PIC單片機(jī)的存儲(chǔ)結(jié)構(gòu)是基于哈佛雙總線概念,程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器在物理空間上完全獨(dú)立,如圖2-2所示,讀取指令的總線和存取數(shù)據(jù)的總線完全分開,這樣的結(jié)構(gòu)可以使指令總線和數(shù)據(jù)總線的寬度不一樣。由于總線獨(dú)立,使得讀取指令和存取操作數(shù)同時(shí)進(jìn)行成為可能,即引入指令流水線機(jī)制,以提高單片機(jī)內(nèi)的數(shù)據(jù)流量,提高代碼運(yùn)行效率[7]。</p><p> 傳統(tǒng)的“馮.諾依曼”結(jié)構(gòu)(又稱普林斯頓結(jié)構(gòu))的計(jì)算機(jī),其程序存儲(chǔ)器和
43、數(shù)據(jù)存儲(chǔ)器在物分配上屬于同一空間,如圖2-3所示,讀取指令和存取數(shù)據(jù)只能共用同一總線,數(shù)據(jù)流量受到一定限制[7]。</p><p> 圖2-2 哈佛結(jié)構(gòu)示意圖</p><p> 圖2-3 “馮.諾依曼”結(jié)構(gòu)示意圖</p><p> 2. 兩級(jí)指令流水線結(jié)構(gòu)</p><p> 由于PIC單片機(jī)采用了完整的哈佛結(jié)構(gòu),用了兩種不同位數(shù)的總
44、線,因此讀取指令和執(zhí)行指令有可能同時(shí)交疊進(jìn)行,這就是PIC單片機(jī)的指令執(zhí)行流水線概念,如圖2-4所示。在指令周期0,指令1被讀取,在下一個(gè)指令周期1被執(zhí)行,所以每條指令從讀取到執(zhí)行完畢需要兩個(gè)指令周期。但是在指令周期1指令1 被執(zhí)行的同時(shí),指令2已經(jīng)讀取完畢,所以到指令周期2時(shí)可立即執(zhí)行指令2,同時(shí)讀取指令3。從指令1執(zhí)行到指令2執(zhí)行,只花了一個(gè)指令周期的間隔,所以說PIC的指令執(zhí)行是單指令周期[7]。</p><p
45、> 只有涉及到改變程序計(jì)數(shù)器PC值的程序分支和跳轉(zhuǎn)指令,指令流水線必須重新刷新,才需要兩個(gè)周期。指令流水線結(jié)構(gòu)最大限度地提高了每一個(gè)內(nèi)部時(shí)鐘周期的效率[7]。</p><p> 圖2-4 指令流水線結(jié)構(gòu)示意圖</p><p> 3. 一次性編程OTP技術(shù)</p><p> PIC16F877A兼有RICS處理器的高性能和一次性編程技術(shù)的低價(jià)格優(yōu)點(diǎn)。低價(jià)
46、格OTP芯片具有適于小批量試制和生產(chǎn)靈活性特點(diǎn),這是掩膜ROM所不具有的。</p><p> 4. CPU的性能特點(diǎn)</p><p> 它有16位指令,8位寬數(shù)據(jù)通道,高達(dá)2MB的程序存儲(chǔ)器,4kB的數(shù)據(jù)存儲(chǔ)器,高達(dá)10MIPS的執(zhí)行速度。DC-40MHz時(shí)鐘輸入,4-10MHz帶PLL鎖相環(huán)有源晶振/時(shí)鐘輸入;帶優(yōu)先級(jí)的中斷和8x8單周期硬件乘法器。</p><p
47、><b> 5. 驅(qū)動(dòng)能力強(qiáng)</b></p><p> I/0端口驅(qū)動(dòng)負(fù)載的能力較強(qiáng),每個(gè)I/O引腳吸人和輸出電流的最大值可分別達(dá)到2mA和20mA,能夠直接驅(qū)動(dòng)發(fā)光二極管LED、光電禍合器或者微型繼電器等。</p><p> 6. C語言開發(fā)環(huán)境</p><p> 對(duì)于PIC16F877A單片機(jī),Microchip公司提供了C語
48、言編譯程序,用C語言這種高級(jí)語言來進(jìn)行程序設(shè)計(jì),可以大幅度地提高工作效率。</p><p> 7. 高速的指令執(zhí)行時(shí)間</p><p> 在20MHZ時(shí)鐘情況下達(dá)到200ns,在25MHZ時(shí)可快達(dá)160ns。在單周期內(nèi)可以對(duì)I/O口的任意一位直接進(jìn)行位操作。</p><p> 9. 工作電壓范圍寬,一般可從2.5V~6.25V。</p><
49、p> 10. I/O具有全CMOS輸出驅(qū)動(dòng)能力,減少用戶使用外部驅(qū)動(dòng)芯片,可直接驅(qū)動(dòng)LED顯示[5]。</p><p> 2.2.2 PIC16F877A單片機(jī)的特點(diǎn)</p><p> PIC16F877A具有特點(diǎn)如下[8]:</p><p> 具有高性能的RICS CPU</p><p> 單片機(jī)的匯編指令僅33條單字節(jié)指令
50、</p><p> 除程序分支指令為兩個(gè)周期外,其余均為單周期指令</p><p> 工作速度:0——200ns指令周期</p><p> 368*8個(gè)數(shù)據(jù)存儲(chǔ)器(RAM)字節(jié)</p><p> 8K*14個(gè)FLASH程序存儲(chǔ)器</p><p> 中斷能力,有14個(gè)中斷</p><p>
51、; 引腳輸出和PIC16C73B/74B/76/77兼容</p><p><b> 上電復(fù)位</b></p><p><b> 8級(jí)深度的硬件堆棧</b></p><p> 上電定時(shí)器(PWRT)和振蕩啟動(dòng)定時(shí)器(OST)</p><p> 監(jiān)視定時(shí)器(WDT),帶有片內(nèi)可靠運(yùn)行的RC振蕩
52、器</p><p><b> 低功耗睡眠方式</b></p><p><b> 可編程的代碼保護(hù)</b></p><p> 直接間接和相對(duì)尋址方式</p><p><b> 可選擇振蕩器</b></p><p> 在線串行編程(ICSP)<
53、;/p><p><b> 2.2本章小結(jié)</b></p><p> 本章主要介紹了單片機(jī)芯片的選擇。通過敘述PIC系列單片機(jī)有點(diǎn),本系統(tǒng)選擇PIC16F877A單片機(jī),并闡述了PIC系列單片機(jī)的結(jié)構(gòu)性能和PIC16F877A的特點(diǎn)。</p><p> 3各模塊硬件電路設(shè)計(jì)</p><p> 3.1 PIC單片機(jī)在系統(tǒng)
54、應(yīng)用中的優(yōu)勢(shì)</p><p> 使用一般的微處理器或微控制器擴(kuò)展LED數(shù)碼管和鍵盤,幾乎都需要通過擴(kuò)展接口芯片來擴(kuò)展,另外要驅(qū)動(dòng)LED,還需要增加驅(qū)動(dòng)電路才能工作,這就顯示出PIC單片機(jī)的優(yōu)勢(shì),因?yàn)樵擃愋蛦纹瑱C(jī)的每一個(gè)I/O引腳都有直接驅(qū)動(dòng)LED管的能力,這樣在不少場(chǎng)合就可以省去電流驅(qū)動(dòng)器,從而降低了系統(tǒng)成本和電路的復(fù)雜性,但是由于芯片端口溫升散熱問題和不同端口的結(jié)構(gòu)差異,不同端口可提供的總電流并不相同,B口的
55、總灌電流和拉電流可達(dá)150mA和100mA,而其他口則分別為80mA和50mA,所以在使用中需要根據(jù)情況選擇不同端口區(qū)分應(yīng)用[9]。</p><p> PIC單片機(jī)主機(jī)引腳功能圖如圖3-1所示:</p><p> 圖3-1 PIC單片機(jī)主機(jī)引腳功能圖</p><p> 3.2 鍵盤電路設(shè)計(jì)</p><p> 開關(guān)量輸入是單片機(jī)應(yīng)用項(xiàng)目
56、中經(jīng)常用到的一種輸入方式。本設(shè)計(jì)利用一個(gè)端口RB8的6個(gè)引腳連接一個(gè)3×3矩陣鍵盤。行列式鍵盤的接法比獨(dú)立式鍵盤的接法要復(fù)雜一些,且在編程實(shí)現(xiàn)上也會(huì)復(fù)雜一些,但是在占用相同的I/O端口的情況下,行列式鍵盤接法會(huì)比獨(dú)立式鍵盤接法允許的按鍵數(shù)量多得多。</p><p> 根據(jù)設(shè)計(jì)需求,需啟/停、加/減1、清零、設(shè)置等按鍵。3×3鍵盤電路的設(shè)計(jì)將單片機(jī)的RB5~RB0與鍵盤電路的KEY1~KEY6
57、相連,其中KEY1 ~KEY3選擇列線,KEY4~KEY6選擇行線。低電平時(shí)表示鍵盤按下。采用獨(dú)立鍵盤掃描模式以單片機(jī)端口電平的高低變化來判斷鍵是否被按下。其中RB3~RB5用來進(jìn)行列掃描,RB0~RB2用來進(jìn)行行掃描。RB0~RB2各自通過一個(gè)電阻接到電源上,并和RB3~RB5通過一個(gè)按鍵連接起來。當(dāng)一個(gè)按鍵按下時(shí),對(duì)應(yīng)的行輸入口的電平為通過按鍵連接的列輸出端口的電平。普通狀態(tài)下,各個(gè)列端口的輸出是高電平,在掃描到任一行端口的電壓變低
58、后,再掃描4條列端口的電平,檢測(cè)列線是否為低電平,如果是,則可以確定是哪一個(gè)按鍵按下。</p><p> 鍵盤電路如圖3-2所示:</p><p> 圖3-2 鍵盤電路 </p><p> 3.2 LCD液晶顯示電路設(shè)計(jì)</p><p> LCD——Liquid Crystal Display,即液晶顯示器,它是一種數(shù)字顯示技術(shù),可
59、以通過液晶和彩色過濾器過濾光源,在平面面板上產(chǎn)生圖像。由于液晶顯示器具有功耗極低、體積小、重量輕等優(yōu)點(diǎn),所以被廣泛應(yīng)用于便攜式和用電池供電的應(yīng)用系統(tǒng)中[6]。液晶顯示器也有其不足之處,如價(jià)格昂貴。</p><p> 液晶顯示器是沉積在兩塊玻璃之間的“液晶材料”薄層;電極是附在液晶玻璃的兩邊,一邊作為公共極或背板,另一邊是字符段。LCD模型可以把其看成是一個(gè)電容器,一個(gè)電極連接著公共極板,另一個(gè)電極連接著字符段[
60、10],如圖3-3所示。</p><p><b> 圖3-3</b></p><p> 若用直流驅(qū)動(dòng)LCD將會(huì)引起顯示單元永久性的損壞,為了防止不可逆轉(zhuǎn)的電化學(xué)反應(yīng)導(dǎo)致LCD顯示器損壞,施加在所有字符段單元上的電壓都必須周期性地翻轉(zhuǎn)極性,以使加在器件上的平均電壓為0。這個(gè)方法被稱作交流電壓驅(qū)動(dòng)。驅(qū)動(dòng)LCD的方法有兩種:一種為靜態(tài)驅(qū)動(dòng)方法,一種為多路復(fù)用驅(qū)動(dòng)方法。&
61、lt;/p><p> 多路復(fù)用的驅(qū)動(dòng)方法是在所給定的安排下以兩倍公共極數(shù)目的時(shí)分?jǐn)?shù)進(jìn)行時(shí)分復(fù)用(TDM——Time Division Mutiplex)。用多路復(fù)用驅(qū)動(dòng)方法除了可以保持液晶顯示一般特性外,還具有在高亮度環(huán)境下高對(duì)比度、低功耗的特性,還可以減少點(diǎn)陣和字母數(shù)字顯示的外部連接點(diǎn)數(shù)。由此可以減少驅(qū)動(dòng)電路的數(shù)目,如果是使用軟件方法控制,就可以減少對(duì)微控制器的I/O引腳數(shù)的要求。為了防止對(duì)LCD顯示器造成永久性
62、損壞,對(duì)所有字符段單元所施加的電壓進(jìn)行周期性翻轉(zhuǎn)極性,以使其兩端的電壓平均值為零。這就是時(shí)分兩倍的原因,每個(gè)公共極必須用相反極性的電壓脈沖交替驅(qū)動(dòng)。驅(qū)動(dòng)頻率必須大于人眼視覺暫留現(xiàn)象不會(huì)感到閃爍的最低頻率25Hz。</p><p> 如前所述,加在LCD上的直流電壓越小,LCD的壽命就越長(zhǎng)。在理想情況下,所有I/O線的切換應(yīng)該同時(shí)進(jìn)行,但是用軟件實(shí)現(xiàn)的LCD控制器必然會(huì)產(chǎn)生延遲,其延遲時(shí)間與微控制器的直流周期成正
63、比。所以必須設(shè)法減少切換時(shí)間,使其最小[10]。</p><p> 在本設(shè)計(jì)中,LCD顯示的主要是平臺(tái)運(yùn)動(dòng)的坐標(biāo)方向。一般來說,液晶顯示器是作為外圍器件來使用的,本設(shè)計(jì)中選用16*2的LCD1602顯示屏。顯示電路的設(shè)計(jì)采用單片機(jī)RD0~RD7口作為并行口與LCD1602的D0~D7相連接,將RE0~RE2口分別與D/I、WR、EN相連。</p><p> LCD1602的顯示特性:&
64、lt;/p><p><b> 高可靠性。</b></p><p><b> 內(nèi)置192種字符。</b></p><p> 具有64個(gè)字節(jié)的自定義字符RAM。</p><p> 驅(qū)動(dòng)方式:1/160UTR,1/5BIAS</p><p><b> 視角方向:6點(diǎn)
65、</b></p><p> 背光方向:底部LED</p><p> 通訊方式:4位或8位并口可選</p><p> 3.3 LED數(shù)碼管電路設(shè)計(jì)</p><p> LED(Light-Emitting Diode,發(fā)光二極管顯示器)是由發(fā)光二極管顯示數(shù)字的外圍顯示器件,常用的是7段LED,還有的加了一個(gè)發(fā)光二極管作為小數(shù)點(diǎn)
66、。本設(shè)計(jì)中是8段LED,其中包括小數(shù)點(diǎn)。LED顯示器分為共陰極LED和共陽極LED兩種,本設(shè)計(jì)采用的是共陽極LED。8只發(fā)光二極管的陽極共同接到電源上,所以叫共陽極LED,在每個(gè)發(fā)光二極管的陽極接的電阻將起到保護(hù)作用。在輸入管腳接低電平時(shí),對(duì)應(yīng)的發(fā)光二極管將會(huì)發(fā)光。適當(dāng)編碼后,8只發(fā)光二極管組合起來就可以表達(dá)數(shù)據(jù)了。</p><p> 只要有2個(gè)8位及以上I/O端口的PIC系列芯片,都可以直接用I/O引腳驅(qū)動(dòng)4
67、只LED數(shù)碼管。如圖3-4所示,小數(shù)點(diǎn)dp對(duì)應(yīng)著最高位,按照dp-g-f-e-d-c-b-a的次序?qū)?yīng)著各個(gè)輸入管腳。如果要顯示的數(shù)字或內(nèi)容比較多,還可以由多個(gè)7段譯碼器組合起來進(jìn)行顯示。位選端可以為7段譯碼器的公共電源端或者公共接地端。對(duì)于共陽極的7段譯碼器,將公共端設(shè)為高電平時(shí),數(shù)據(jù)輸出有效,將公共端設(shè)為設(shè)為低電平時(shí),則沒有數(shù)據(jù)輸出[11]。</p><p> 在本設(shè)計(jì)中,顯示的主要是坐標(biāo)值。顯示電路的設(shè)計(jì)
68、將單片機(jī)的RD0~RD7口作為并行口與數(shù)碼管的D0~D7相連接,將單片機(jī)的RA1 ~RA4與數(shù)碼管的LED1~ LED4相連。</p><p> 3.4步進(jìn)電機(jī)驅(qū)動(dòng)電路設(shè)計(jì)</p><p> 隨著工業(yè)技術(shù)的不斷進(jìn)步,在自動(dòng)化控制、精密機(jī)械加工、航空航天技術(shù)以及所有要求高精度定位、自動(dòng)記錄、自動(dòng)瞄準(zhǔn)等高新技術(shù)領(lǐng)域內(nèi),步進(jìn)電機(jī)得到了廣泛的應(yīng)用。步進(jìn)電機(jī)作為執(zhí)行元件,是機(jī)電一體化的關(guān)鍵產(chǎn)品,
69、廣泛應(yīng)用于各種自動(dòng)化控制系統(tǒng)中。</p><p> 步進(jìn)電動(dòng)機(jī)又稱為脈沖電動(dòng)機(jī)或階躍電動(dòng)機(jī),它是將數(shù)字電脈沖直接轉(zhuǎn)換為位移角度的機(jī)電設(shè)備。步進(jìn)電機(jī)是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機(jī)構(gòu)。當(dāng)步進(jìn)驅(qū)動(dòng)器接收到一個(gè)脈沖信號(hào),它就驅(qū)動(dòng)步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動(dòng)依個(gè)固定的角度(稱為“步距角”)它的旋轉(zhuǎn)是以固定的角度一步一步運(yùn)行的。一般情況下,步進(jìn)電動(dòng)機(jī)轉(zhuǎn)動(dòng)的總角度與輸入的脈沖個(gè)數(shù)成正比??梢酝ㄟ^控制脈沖個(gè)數(shù)來控制角位移量,從
70、而達(dá)到準(zhǔn)確定位的目的[11]。</p><p> 與一般的電動(dòng)機(jī)相比,步進(jìn)電機(jī)具有以下特點(diǎn):</p><p> 1)電動(dòng)機(jī)輸入的信號(hào)為數(shù)字量,采用微處理器作為控制器能很好兼容。</p><p> 2)在開環(huán)或半閉環(huán)的控制狀態(tài)下,仍具有良好的定位精度。</p><p> 3)位移與輸入脈沖個(gè)數(shù)相對(duì)應(yīng),步距誤差不會(huì)長(zhǎng)時(shí)間積累。</p
71、><p> 4)無電刷、可靠性高。</p><p> 5)易于啟動(dòng)、停止、正反轉(zhuǎn)變化和變速響應(yīng)好。</p><p> 6)停止時(shí)具有自鎖功能。</p><p> 7)步進(jìn)電動(dòng)機(jī)帶慣性負(fù)載能力較差。</p><p> 8)步進(jìn)電動(dòng)機(jī)能采用普通的交直流驅(qū)動(dòng),需要專用的驅(qū)動(dòng)器驅(qū)動(dòng)。</p><p&g
72、t; 單片機(jī)是性能極佳的控制處理器,它與步進(jìn)電動(dòng)機(jī)傳統(tǒng)控制部件相比,無論從功能、靈活性、可靠性等方面來說都要好。根據(jù)設(shè)計(jì)要求和實(shí)際應(yīng)用參數(shù),選擇ULN2003A芯片作為驅(qū)動(dòng)器件。將單片機(jī)的RA1 ~RA4與步進(jìn)電機(jī)驅(qū)動(dòng)器的LED1~ LED4相連。</p><p><b> 3.5 本章小結(jié)</b></p><p> 本章主要闡述了構(gòu)成系統(tǒng)的各個(gè)部件的電路結(jié)構(gòu)及
73、其連接,具體介紹了個(gè)部件的硬件功能和實(shí)現(xiàn)要求。</p><p> 鍵盤電路完成3×3矩陣電路與單片機(jī)的連接,實(shí)現(xiàn)按鍵和查詢鍵值功能。</p><p> LCD顯示電路實(shí)現(xiàn)根據(jù)鍵值顯示相應(yīng)坐標(biāo)軸的功能。LED數(shù)碼管顯示電路實(shí)現(xiàn)根據(jù)鍵值顯示運(yùn)動(dòng)平臺(tái)相應(yīng)位移的功能。步進(jìn)電機(jī)驅(qū)動(dòng)電路實(shí)現(xiàn)根據(jù)單片機(jī)控制信息驅(qū)動(dòng)步進(jìn)電機(jī)轉(zhuǎn)動(dòng)的功能。</p><p><b&g
74、t; 4系統(tǒng)軟件設(shè)計(jì)</b></p><p> 4.1開發(fā)環(huán)境及編程語言的選擇</p><p> 本設(shè)計(jì)選用的PIC單片機(jī)的開發(fā)環(huán)境是MPLAB—IDE,此開發(fā)環(huán)境整合了源程序的編寫、機(jī)器碼的編譯連接、各種開發(fā)調(diào)試工具的支持和燒寫編程器的掛接。由于此開發(fā)環(huán)境支持多種不同的第三方程序語言編譯連接工具,所以給用戶帶來很大方便[10]。本系統(tǒng)采用的是在MPLAB--IDE集成開
75、發(fā)環(huán)境下掛接PICC編譯器。</p><p> 用C語言開發(fā)PIC單片機(jī)相比于匯編語言有如下優(yōu)點(diǎn)[10]:</p><p> 1. 可以加快開發(fā)速度,對(duì)于是一些需要復(fù)雜計(jì)算的單片機(jī)系統(tǒng),用C語言開發(fā)就越發(fā)地顯示出優(yōu)勢(shì)[10]。</p><p> 2. 不需精通單片機(jī)的指令集和具體的硬件結(jié)構(gòu),只要有一定的了解就能夠編寫出水平較好的程序[10]。</p>
76、;<p> 3. 可以實(shí)現(xiàn)軟件的結(jié)構(gòu)化編程,便于分工合作和集體開發(fā)[10]。</p><p> 4. 用C語言編寫的源程序具有邏輯結(jié)構(gòu)清晰、條理性強(qiáng)、可讀性和可維護(hù)性好等特點(diǎn)[10]。</p><p> 5. 用C語言編寫的源程序可移植性好。</p><p><b> 4.2需求分析</b></p><
77、p> 需求分析是軟件生存周期中非常重要的一個(gè)階段。</p><p> 該單片機(jī)控制系統(tǒng)實(shí)現(xiàn)的需求功能包括:</p><p> 1)鍵盤掃描子程序。當(dāng)按下4鍵時(shí),系統(tǒng)開始工作。但有時(shí)是由于人的主觀愿望以外的原因致使按鈕動(dòng)作,如不小心觸動(dòng)按鈕或其他原因致使按鈕動(dòng)作,這種動(dòng)作是我們不需要的。鍵盤掃描程序的作用,就是防止這些誤動(dòng)作使系統(tǒng)工作。</p><p>
78、 2)LCD顯示子程序。顯示運(yùn)動(dòng)平臺(tái)的移動(dòng)方向,可分別顯示X、Y、Z。</p><p> 3)數(shù)碼管顯示子程序。顯示運(yùn)動(dòng)平臺(tái)的位移,當(dāng)按鍵錯(cuò)誤時(shí),顯示亂碼。以示提醒。</p><p> 4)步進(jìn)電機(jī)驅(qū)動(dòng)子程序。接收單片機(jī)的控制信息,驅(qū)動(dòng)步進(jìn)電機(jī)轉(zhuǎn)動(dòng),從而使運(yùn)動(dòng)平臺(tái)移動(dòng)。</p><p><b> 4.3總體設(shè)計(jì)</b></p>
79、<p> 4.3.1系統(tǒng)設(shè)計(jì)原理</p><p> PIC單片機(jī)控制三維運(yùn)動(dòng)平臺(tái)在X軸、Y軸、Z軸方向上運(yùn)動(dòng),并驅(qū)動(dòng)步進(jìn)電機(jī)轉(zhuǎn)動(dòng),以步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)來表示平臺(tái)的移動(dòng)。在本設(shè)計(jì)中,只用一個(gè)步進(jìn)電機(jī)來模擬在一個(gè)方向上的運(yùn)動(dòng),若要實(shí)現(xiàn)三維運(yùn)動(dòng),只需在每個(gè)方向上個(gè)設(shè)置一個(gè)步進(jìn)電機(jī)來模擬平臺(tái)的運(yùn)動(dòng)。本系統(tǒng)采用PIC16F877A作為主控芯片, 系統(tǒng)應(yīng)具有以下基本功能:</p><p>
80、; 1. 根據(jù)按鍵來選擇所需功能,當(dāng)按1鍵時(shí),選擇X坐標(biāo);此時(shí)按4鍵,LED數(shù)碼管清零;按5鍵,加1,表示在X軸方向前進(jìn)一個(gè)單位;按6鍵,減1,表示在X軸上倒退一個(gè)單位。運(yùn)動(dòng)平臺(tái)運(yùn)動(dòng)的位置都是在X軸的正方向的,若運(yùn)動(dòng)到X軸的小于0的位置,則LED數(shù)碼管顯示亂碼。</p><p> 2. 若想切換運(yùn)動(dòng)方向,則必須按復(fù)位鍵,否則LED數(shù)碼管的個(gè)位將全部顯示。例如,當(dāng)在X軸坐標(biāo)方向的情況下不按復(fù)位鍵而直接切換到Y(jié)軸
81、坐標(biāo)方向,此時(shí)數(shù)碼管不再顯示位置數(shù)值,而是在個(gè)位全部顯示(包括小數(shù)點(diǎn)),而在此時(shí)按4鍵的話,會(huì)再原來數(shù)值上加1,顯示的是X軸加上Y軸的位移量之和,這樣會(huì)造成錯(cuò)誤。所以切換坐標(biāo)軸方向時(shí),必須先按復(fù)位鍵。</p><p> 3. 具有良好的控制功能,保證運(yùn)動(dòng)平臺(tái)按設(shè)定的路線移動(dòng)。</p><p> 4. 能有效防止外界誤動(dòng)作而引發(fā)的系統(tǒng)動(dòng)作。</p><p> 系
82、統(tǒng)的總流程框圖如圖4-1所示。</p><p> 圖4-1 軟件總體結(jié)構(gòu)流程框圖</p><p><b> 4.4編程實(shí)現(xiàn)</b></p><p> 在明確了軟件的設(shè)計(jì)任務(wù)以后,采用模塊化思想的設(shè)計(jì)方法,進(jìn)行詳細(xì)設(shè)計(jì)。采用模塊化思想的設(shè)計(jì)方法,便于軟件的維護(hù)和二次開發(fā)。</p><p> 4.4.1 初始化子程序
83、</p><p> 初始化子程序?yàn)閱纹瑱C(jī)軟件的運(yùn)行設(shè)置初始環(huán)境。該子程序主要完成以下工作:</p><p> 1)清片內(nèi)RAM。每次單片機(jī)加電時(shí),都將引起單片機(jī)的上電復(fù)位操作。復(fù)位操作完成以后,單片機(jī)的寄存器會(huì)被置以一些未知的值,會(huì)產(chǎn)生無法讓人掌握的后果。因此,在單片機(jī)加電運(yùn)行后,首先要清除RAM,使之置零。</p><p><b> 2)初始參數(shù)設(shè)
84、定。</b></p><p> 3)A/D設(shè)定。用以設(shè)定A/D端口。</p><p><b> 4)中斷設(shè)定。</b></p><p> 5)定時(shí)器設(shè)定。因?yàn)镻ICl6F877A單片機(jī)有3個(gè)定時(shí)器。這3個(gè)定時(shí)器結(jié)構(gòu)不同,功能也不同。因此,需為程序選用合適的定時(shí)器,并根據(jù)系統(tǒng)的要求,為定時(shí)器設(shè)置適當(dāng)?shù)膮?shù)。</p>
85、<p><b> 6)看門狗設(shè)定。</b></p><p> 初始化子程序流程框圖如圖4-2所示:</p><p> 圖4-2 初始化子程序結(jié)構(gòu)流程圖</p><p> 4.4.2鍵盤按鍵程序設(shè)計(jì)</p><p> 程序設(shè)計(jì)的任務(wù)主要分為兩個(gè)部分:一個(gè)部分不停地監(jiān)測(cè)是否有鍵按下,</p>
86、;<p> 另一個(gè)部分查看哪一個(gè)鍵按下。</p><p> 在PIC16F877A系統(tǒng)中,設(shè)計(jì)應(yīng)用端口B連接矩陣3×3矩陣鍵盤,RB3~RB5為列線,通過上拉電阻連接到VCC電源上,當(dāng)沒有鍵按下時(shí),各列線均為高電平。RB0~RB2為行線,通過上拉電阻連接到VCC電源上,當(dāng)沒有鍵按下時(shí),各行線均為高電平。鍵盤掃描時(shí)要解決鍵盤抖動(dòng)問題,可通過軟件的適當(dāng)延時(shí)來實(shí)現(xiàn),就是在掃描到有鍵按下后,適
87、當(dāng)延時(shí)一段時(shí)間,然后再次掃描看是否是誤觸鍵。如果確定有鍵按下,則調(diào)用按鍵查詢子程序,檢測(cè)是哪個(gè)鍵按下并查詢鍵值。因此該程序設(shè)計(jì)主要分為兩部分:一部分不停地掃描檢測(cè)是否有按鍵按下,另一部分則是查看哪一個(gè)按鍵按下。</p><p> (1)在初始狀態(tài)下,4個(gè)列輸出端口輸出低電平,即RB3~RB5輸出低電平,然后持續(xù)檢測(cè)4個(gè)行輸出端口RB0~RB2的狀態(tài)是不是高電平。如果沒有按鍵按下,則RB0~RB2的狀態(tài)是高電平;
88、如果有鍵按下,則被按下的鍵對(duì)應(yīng)的行輸入端口的電平就會(huì)被拉低,RB0-RB2中會(huì)出現(xiàn)低電平。</p><p> 鍵盤掃描子程序流程如圖4-3所示。</p><p> 圖4-3 鍵盤掃描子程序流程圖</p><p> 鍵盤掃描子程序?qū)崿F(xiàn)的功能是:</p><p> 以定時(shí)中斷掃描方式來掃描鍵是否按下。判斷鍵是否按下的過程是當(dāng)檢測(cè)到有鍵按下
89、時(shí),statekey置1,此時(shí)判斷是否已消抖。若已消抖,則查鍵并算鍵值,消抖標(biāo)值Key_flag清零,否則消抖標(biāo)值Key_flag置1。當(dāng)沒有檢測(cè)到鍵按下時(shí),statekey置0,state置1。</p><p> (2)當(dāng)有按鍵按下時(shí),就轉(zhuǎn)到按鍵查詢子程序中,在列輸出端口RB3~RB5輸出掃描字,判斷是哪一個(gè)按鍵按下。</p><p> 按鍵查詢結(jié)束后,獲得按下鍵的鍵碼值。查詢到結(jié)果
90、后,進(jìn)入下一級(jí)的輸出程序。</p><p> 按鍵查詢并算鍵值子程序的流程圖如圖4-4所示:</p><p> 圖4-4 按鍵查詢并算鍵值子程序</p><p> (3)當(dāng)查詢到鍵值后,程序便進(jìn)入根據(jù)鍵值顯示相應(yīng)部分的子程序。根據(jù)鍵值顯示相應(yīng)部分的子程序?qū)崿F(xiàn)的功能是:</p><p> 當(dāng)按下鍵時(shí),調(diào)用按鍵掃描子程序來判斷按鍵是否釋
91、放,若釋放,則調(diào)用查鍵并算鍵值子程序,算出鍵值。當(dāng)鍵值等于1時(shí),LCD顯示X,表示選擇X軸為運(yùn)動(dòng)的坐標(biāo)方向;當(dāng)鍵值等于2時(shí),LCD顯示Y , 表示選擇Y軸為運(yùn)動(dòng)的坐標(biāo)方向;當(dāng)鍵值等于3時(shí),LCD顯示Z , 表示選擇Z軸為運(yùn)動(dòng)的坐標(biāo)方向。當(dāng)鍵值等于4時(shí),LCD顯示的內(nèi)容不變,數(shù)碼管顯示0,表示清零;當(dāng)鍵值等于5時(shí),表示運(yùn)動(dòng)平臺(tái)在所選定的方向上向正方向前進(jìn)一個(gè)單位;當(dāng)鍵值等于6時(shí)。表示運(yùn)動(dòng)平臺(tái)在所選定的方向上向負(fù)方向后退一個(gè)單位。</
92、p><p> 根據(jù)鍵值顯示相應(yīng)部分的子程序如圖4-4所示。</p><p> 圖4-4 根據(jù)鍵值顯示相應(yīng)部分的子程序</p><p> (4)根據(jù)以上各部分所述功能,鍵盤程序總流程如圖4-5所示:</p><p> 圖4-5 鍵盤程序總流程框圖</p><p> 4.4.3 LCD液晶顯示程序設(shè)計(jì)</p&
93、gt;<p> LCD主流程主要實(shí)現(xiàn)的功能是:</p><p> 當(dāng)按1鍵時(shí),第一行顯示X,第二行不顯示;當(dāng)按2鍵時(shí),第一行顯示Y,第二行不顯示;當(dāng)按1鍵時(shí),第一行顯示Z,第二行不顯示。</p><p> LCD主流程如圖4-6所示:</p><p> 圖4-6 LCD主流程框圖</p><p> 4.4.4步進(jìn)電機(jī)
94、驅(qū)動(dòng)程序設(shè)計(jì)</p><p> 步進(jìn)電機(jī)驅(qū)動(dòng)主程序流程圖如圖4-7所示:</p><p> 圖4-7 步進(jìn)電機(jī)驅(qū)動(dòng)主程序流程圖</p><p><b> 4.5 本章小結(jié)</b></p><p> 本章主要介紹了系統(tǒng)的各個(gè)模塊的軟件設(shè)計(jì)及其實(shí)現(xiàn)的功能和整個(gè)系統(tǒng)的總體軟件設(shè)計(jì)。</p><p&g
95、t; 鍵盤掃描子程序?qū)崿F(xiàn)判斷鍵是否按下的功能。按鍵查詢并算鍵值子程序?qū)崿F(xiàn)根據(jù)鍵值顯示相應(yīng)數(shù)值及驅(qū)動(dòng)步進(jìn)電機(jī)的功能。LCD顯示子程序?qū)崿F(xiàn)LCD的初始化及顯示功能。步進(jìn)電機(jī)驅(qū)動(dòng)程序?qū)崿F(xiàn)初始化及根據(jù)鍵值判斷是否轉(zhuǎn)動(dòng)的功能。</p><p><b> 5系統(tǒng)軟硬件調(diào)試</b></p><p> 本設(shè)計(jì)的軟件編譯成功后,在硬件實(shí)物上運(yùn)行。實(shí)物圖如下。</p>
96、<p> 實(shí)物整體圖如圖5-1所示:</p><p><b> 圖5-1</b></p><p> 當(dāng)運(yùn)動(dòng)平臺(tái)位于坐標(biāo)原點(diǎn)時(shí)且選定X軸坐標(biāo)方向時(shí),此時(shí)運(yùn)動(dòng)平臺(tái)位于坐標(biāo)原點(diǎn),已選定的運(yùn)動(dòng)方向是X軸方向。如圖5-2所示:</p><p><b> 圖5-2</b></p><p>
97、 當(dāng)運(yùn)動(dòng)平臺(tái)的運(yùn)動(dòng)方向是Y且位移為10個(gè)單位軸時(shí)實(shí)物圖如圖5-3所示:</p><p><b> 圖5-3</b></p><p> 當(dāng)運(yùn)動(dòng)平臺(tái)的運(yùn)動(dòng)方向是Z軸且位移為5個(gè)單位時(shí)的顯示實(shí)物圖如圖5-4所示:</p><p><b> 圖5-4 </b></p><p> 當(dāng)切換坐標(biāo)軸方向時(shí)沒
98、有先按復(fù)位鍵,則數(shù)碼管全顯示,亂碼,如圖5-5所示:</p><p><b> 6 結(jié)論</b></p><p> 本文設(shè)計(jì)了基于PIC單片機(jī)控制的三維運(yùn)動(dòng)平臺(tái)控制系統(tǒng)。詳細(xì)闡述了單片機(jī)的選型、系統(tǒng)的硬件電路設(shè)計(jì),重點(diǎn)闡述了系統(tǒng)的軟件設(shè)計(jì),采用模塊化思想,分別詳細(xì)敘述了各個(gè)模塊的軟件設(shè)計(jì)和實(shí)現(xiàn)的功能。</p><p> 本論文具體完成如下
99、工作:</p><p> 完成了基本的硬件電路的設(shè)計(jì)與調(diào)試,包括PIC控制電路的設(shè)計(jì)、鍵盤輸入及顯示控制、步進(jìn)電路驅(qū)動(dòng)控制設(shè)計(jì)等。</p><p> 介紹了PIC單片機(jī)的結(jié)構(gòu)性能特點(diǎn),闡述了選擇PIC16F877A的原因。</p><p> 重點(diǎn)介紹了系統(tǒng)的軟件設(shè)及其實(shí)現(xiàn)的功能。</p><p> 4. 在實(shí)物上進(jìn)行系統(tǒng)的軟硬件調(diào)試
100、,能實(shí)現(xiàn)本文中所闡述的各項(xiàng)功能。</p><p> 受水平的限制,該系統(tǒng)還有很多不足之出,如不能做到在按加鍵和減鍵的同時(shí)設(shè)置步進(jìn)電機(jī)的停轉(zhuǎn),只能另外設(shè)置7鍵來設(shè)置步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)。敬請(qǐng)多多批評(píng)指教。 </p><p><b> 參考文獻(xiàn)</b></p><p> [1]余張國(guó).嵌入式多軸運(yùn)動(dòng)控制器的開發(fā)與應(yīng)用[J].西南科技大學(xué),2005.
101、</p><p> ?。?]曾廣璽.基于uC/OS-Ⅱ的三維運(yùn)動(dòng)平臺(tái)設(shè)計(jì)[J].計(jì)算技術(shù)與自動(dòng)化,2010.</p><p> [3]衛(wèi)國(guó)峰.基于ARM嵌入式工業(yè)控制器設(shè)計(jì)[J].哈爾濱理工大學(xué),2008.</p><p> ?。?]李澤湘.運(yùn)動(dòng)控制技術(shù)的發(fā)展歷史.固高科技公司宣傳資料.</p><p> ?。?]肖艷青.圖像立體匹配研究進(jìn)
102、展[J].測(cè)控技術(shù),2009.</p><p> [6]劉啟中,李榮正,王力生等.PIC單片機(jī)原理及應(yīng)用[M].北京:北京航空航天出版社,2003:16-18.</p><p> [7]張明峰.PIC單片機(jī)入門與實(shí)戰(zhàn)[M].北京:北京航空航天出版社,2004.</p><p> ?。?]劉篤仁.PIC軟硬件系統(tǒng)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2005.<
103、/p><p> [9]竇振中,汪立森.PIC系列單片機(jī)應(yīng)用設(shè)計(jì)與實(shí)例[M].北京:北京航空航天出版社,1999.</p><p> ?。?0]武鋒. PIC系列單片機(jī)的開發(fā)應(yīng)用技術(shù)[M].北京:北京航空航天出版社,1998.</p><p> ?。?1]段秀銘.基于PIC16F877單片機(jī)的莫爾斯碼自動(dòng)譯碼系統(tǒng)設(shè)計(jì)與研究[J].鞍山科技大學(xué),2006.</p&g
104、t;<p> ?。?2]潘錦平.軟件開發(fā)技術(shù)[M].上海:上??茖W(xué)技術(shù)文獻(xiàn)出版社,1985.</p><p> ?。?3]陳國(guó)先. PIC單片機(jī)原理與接口技術(shù)[M].北京:電子工業(yè)出版社,2004.</p><p> ?。?4]豈興明,唐杰,趙沛等.51單片機(jī)編程基礎(chǔ)與開發(fā)實(shí)例詳解[M].北京:人民郵電出版社,2008.</p><p> ?。?5]王
105、明.C語言程序設(shè)計(jì)教程[M].上海:上海交通大學(xué)出版社,2008.</p><p> ?。?6]Tomizuka M, Hu J, Chiu T, Kamano T. Synchronization of Two Motion Control Axes Under Adaptive Feedforward Control[J]. ASME Journal of dynamic systems, measureme
106、nt and control. 1992, 114(6): 196-203.</p><p> ?。?7]Butler J, Tomizuka M. Trajectory Planning for High Speed Multiple Axis Contouring Systems. Proceeding of the 1989 American Control Conference, Pittsburgh,
107、PA1989: 87-94</p><p> ?。?8]李朝青.單片機(jī)原理及其接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,2006.</p><p> [19]張迎新等.單片微型計(jì)算機(jī)原理、應(yīng)用及接口技術(shù)[M].北京:國(guó)防工業(yè)出版社,2004.</p><p> [20]倪志蓮.單片機(jī)應(yīng)用技術(shù)[M].北京:北京理工大學(xué)出版社,2007.</p>
108、<p> ?。?1] 凌玉華.單片機(jī)原理及應(yīng)用系統(tǒng)設(shè)計(jì)[M].湖南:中南大學(xué)出版社,2006.</p><p> ?。?2]Pradeep A. K., Shahruz S. M. . A Control Law that Achieves Simultaneous Tracking for a Group of System in Finite Time[J]. Proceedings
109、of the American Control Conference, Vol.4, 1992: 3134-3135.</p><p> [23]蔡明琪,張宗裕,蘇祥瑞.應(yīng)用H00控制設(shè)計(jì)同步伺服系統(tǒng)[M].智能控制及智能自動(dòng)化,北京:科學(xué)出版社,1993,下卷:2438-2443.</p><p> ?。?4]劉向宇,泰龍.PIC單片機(jī)C語言程序設(shè)計(jì)實(shí)例精粹[M].北京:電子工業(yè)出版設(shè)
110、,2010.</p><p> ?。?5]王昊天,李海濤,王志強(qiáng)等.PIC單片機(jī)原理與應(yīng)用:專業(yè)技能入門與精通[M].北京:機(jī)械工業(yè)出版社,2010.</p><p> ?。?6]周堅(jiān).PIC單片機(jī)輕松入門[M].北京:北京航空航天大學(xué)出版社,2009.</p><p> [27]鐘慶華.基于PIC單片機(jī)的智能手機(jī)充電器[J].山東大學(xué),2005.</p&g
111、t;<p> ?。?8]宋受?。趩纹瑱C(jī)的電機(jī)運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)[J].西北工業(yè)大學(xué),2006.</p><p> ?。?9]李學(xué)海.PIC單片機(jī)實(shí)踐[M].北京:北京航空航天出版社,2004</p><p><b> ?。?07.</b></p><p> [30]求是科技. PIC單片機(jī)典型模塊設(shè)計(jì)實(shí)例導(dǎo)航[M].北京:人民
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 三維運(yùn)動(dòng)平臺(tái)控制系統(tǒng)的硬件設(shè)計(jì)【畢業(yè)設(shè)計(jì)】
- 三維運(yùn)動(dòng)平臺(tái)控制系統(tǒng)的運(yùn)動(dòng)軌跡算法的設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)設(shè)計(jì)】
- 三維運(yùn)動(dòng)平臺(tái)控制系統(tǒng)的硬件設(shè)計(jì)【畢業(yè)設(shè)計(jì)+開題報(bào)告+文獻(xiàn)綜述】
- 三維運(yùn)動(dòng)平臺(tái)控制系統(tǒng)的設(shè)計(jì)【文獻(xiàn)綜述】
- 三維運(yùn)動(dòng)平臺(tái)控制系統(tǒng)的設(shè)計(jì)【開題報(bào)告】
- 基于dsp的全向運(yùn)動(dòng)控制系統(tǒng)軟件設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 三維運(yùn)動(dòng)平臺(tái)控制系統(tǒng)的硬件設(shè)計(jì)【文獻(xiàn)綜述】
- 三維運(yùn)動(dòng)平臺(tái)控制系統(tǒng)的硬件設(shè)計(jì)【開題報(bào)告】
- 三維運(yùn)動(dòng)平臺(tái)控制系統(tǒng)的運(yùn)動(dòng)軌跡算法的設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)設(shè)計(jì)+開題報(bào)告+文獻(xiàn)綜述】
- 畢業(yè)設(shè)計(jì)--基于單片機(jī)的三維平臺(tái)(軟件)設(shè)計(jì)
- 三維運(yùn)動(dòng)平臺(tái)控制系統(tǒng)的運(yùn)動(dòng)軌跡算法的設(shè)計(jì)與實(shí)現(xiàn)【開題報(bào)告】
- 三維運(yùn)動(dòng)平臺(tái)控制系統(tǒng)的運(yùn)動(dòng)軌跡算法的設(shè)計(jì)與實(shí)現(xiàn)【文獻(xiàn)綜述】
- 電阻爐溫度控制系統(tǒng)軟件設(shè)計(jì)【畢業(yè)設(shè)計(jì)】
- 畢業(yè)設(shè)計(jì)--二維伺服平臺(tái)控制系統(tǒng)的設(shè)計(jì)
- 運(yùn)動(dòng)參數(shù)三維視覺測(cè)量系統(tǒng)軟件設(shè)計(jì)與實(shí)現(xiàn).pdf
- 機(jī)器人運(yùn)動(dòng)控制系統(tǒng)的軟件設(shè)計(jì).pdf
- 畢業(yè)設(shè)計(jì)--溫室溫度及通風(fēng)控制系統(tǒng)軟件設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--基于plc的注塑機(jī)控制系統(tǒng)軟件設(shè)計(jì)
- 基于運(yùn)動(dòng)解耦的三維動(dòng)力平臺(tái)控制系統(tǒng)設(shè)計(jì)與研究.pdf
- 179高爐卷?yè)P(yáng)上料控制系統(tǒng)軟件設(shè)計(jì)畢業(yè)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論