版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 畢業(yè)設(shè)計(jì)論文題 目:十字工作臺(tái)控制系統(tǒng)設(shè)計(jì)學(xué) 號(hào):姓 名:班 級(jí):專 業(yè):機(jī)械設(shè)計(jì)制造及其自動(dòng)化指導(dǎo)教師:學(xué) 院:機(jī)械工程學(xué)院摘 要介紹了十字工作臺(tái)控制系統(tǒng)的設(shè)計(jì)。以51單片機(jī)為基礎(chǔ)設(shè)計(jì)出能夠?qū)崿F(xiàn)對(duì)十字工作臺(tái)的手搖脈沖發(fā)生器操作,點(diǎn)動(dòng)操作,直線插補(bǔ),在線示教,位置和速度實(shí)時(shí)顯示,輸入點(diǎn)掉電記憶等功能。該控制系統(tǒng)硬件電路主要由stc89c52rc單片機(jī),晶振電路、復(fù)位電路、蜂鳴器、鍵盤(pán)、12864液晶、步進(jìn)電機(jī)等組成。本次設(shè)計(jì)完成了軟件的設(shè)計(jì),pcb板的設(shè)計(jì),以及電路的連接。經(jīng)最終聯(lián)機(jī)調(diào)試,基本達(dá)到了所需設(shè)計(jì)要求。關(guān)鍵詞:?jiǎn)纹瑱C(jī);步進(jìn)電機(jī);矩陣鍵盤(pán);液晶顯示abstractthis artic
2、le introduces the design of control system for cross worktable,aiming to achieve manual pulse generator and inching operation,line interpolation,on-line teaching,the real-time display of position and speed,remember the state and parameter when lose of power supply at enter point,based on 51 single c
3、hip.the hard-ware electric circuit of system is composed of stc89c52rc scp,crystal oscillator circuit,reset circuit, buzzer, keyboard,12864 lcd and magnetic stepper motor.this design accomplish software and pcb design, electrical connection,which meets the requirement of design according to the ulti
4、mate on-line debug. key words: 51 single chip; stepper motor ; keyboard ; lcd 目 錄摘 要iabstractii目 錄iii第 1 章 緒論1第 2 章 控制系統(tǒng)總體設(shè)計(jì)方案32.1 技術(shù)指標(biāo)及特點(diǎn)32.2十字工作臺(tái)控制系統(tǒng)設(shè)計(jì)方案與論證32.3解決的主要問(wèn)題6第 3 章 控制系統(tǒng)硬件電路設(shè)計(jì)73.1 單片機(jī)最小系統(tǒng)電路73.2 端口分配83.3 矩陣按鍵電路設(shè)計(jì)83.4 液晶電路103.5 步進(jìn)電機(jī)驅(qū)動(dòng)模塊電路設(shè)計(jì)103.6 行程開(kāi)關(guān)電路113.7 手搖脈沖發(fā)生器電路123.9 蜂鳴器電路12第 4 章 系統(tǒng)的軟件
5、設(shè)計(jì)與分析134.1 主程序134.2 4*4矩形按鍵掃描程序154.3液晶驅(qū)動(dòng)及初始化程序184.4手搖狀態(tài)脈沖發(fā)射控制子程序204.5 eeprom掉電保護(hù)程序214.6蜂鳴器程序234.7 中斷服務(wù)程序23第 5 章 制作調(diào)試與結(jié)果分析255.1調(diào)試255.2結(jié)果分析25總 結(jié)28參考文獻(xiàn)29謝 辭31附 件32附錄1 原理圖33附錄2 pcb圖34附錄3 實(shí)物圖35附錄4控制面板布線與效果圖36附錄5元器件清單37附錄6控制系統(tǒng)使用說(shuō)明書(shū)38附錄7源代碼40 第 1 章 緒論隨著科學(xué)技術(shù)的發(fā)展,機(jī)械加工的方法和手段逐漸豐富多樣起來(lái)各種先進(jìn)技術(shù)被人們引入機(jī)械加工行業(yè),形成各種新興學(xué)科。機(jī)
6、電一體化就是其中一門(mén)比較在核心的學(xué)科。機(jī)電一體化是以電子技術(shù),特別是微電子技術(shù)為基礎(chǔ)、多種新興技術(shù)與機(jī)械技術(shù)交叉、融合而形成的綜合性高科技技術(shù),是機(jī)械和電子的有機(jī)結(jié)合產(chǎn)物。其目的是不斷提高勞動(dòng)生產(chǎn)率,減輕人們的體力勞動(dòng),甚至代替部分腦力勞動(dòng)。機(jī)械一體化的機(jī)械加工較傳統(tǒng)機(jī)械加工有很大的優(yōu)越性。數(shù)控機(jī)床就是這一學(xué)科的典型代表。而本設(shè)計(jì)所涉及的十字工作臺(tái)對(duì)于數(shù)控機(jī)床加工能夠?qū)崿F(xiàn)高速、精密、復(fù)合、智能和綠色起著決定性的作用。自從美國(guó)發(fā)明家約翰帕森斯發(fā)明數(shù)控機(jī)床,隨著電子信息技術(shù)的發(fā)展,世界機(jī)床業(yè)已經(jīng)進(jìn)入了以數(shù)字化制造技術(shù)為核心的機(jī)電一體化時(shí)代,其中數(shù)控機(jī)床就是這一時(shí)代的最具代表的產(chǎn)品。它為國(guó)民經(jīng)濟(jì)各個(gè)
7、部門(mén)提供裝備和手段,具有無(wú)限放大的經(jīng)濟(jì)和社會(huì)效應(yīng)。數(shù)控機(jī)床是機(jī)械制造行業(yè)的主要裝備,而機(jī)械制造業(yè)是整個(gè)工業(yè)和國(guó)民經(jīng)濟(jì)的基石,因此數(shù)控機(jī)床的擁有量及其技術(shù)水平的高低,代表了當(dāng)前數(shù)控技術(shù)的性能、水平和發(fā)展方向,已經(jīng)成為衡量一個(gè)國(guó)家機(jī)械制造水平的重要標(biāo)志(目前,在我國(guó)金屬切削機(jī)床的數(shù)控化率還不到20%,總數(shù)控比率僅為2%左右;而美國(guó)等工業(yè)化國(guó)家的數(shù)控化率已經(jīng)達(dá)到80%以上,總數(shù)控比率平均水平為25%)。歐、美、日等工業(yè)化國(guó)家已先后完成了數(shù)控機(jī)床的產(chǎn)業(yè)化進(jìn)程,而我國(guó)數(shù)控業(yè)起步于20世紀(jì)80年代,現(xiàn)在仍處于發(fā)展階段。數(shù)控機(jī)床以其精度高、效率高、能適應(yīng)小批量多品種復(fù)雜零件的加工等優(yōu)點(diǎn)。概括起來(lái),采用數(shù)控機(jī)
8、床加工有以下幾方面的特點(diǎn):1.柔性強(qiáng)。數(shù)控機(jī)床上改變加工零件時(shí),只需要重新編制程序,輸入新的程序后就能實(shí)現(xiàn)對(duì)新零件的加工;而不需要改變機(jī)械部分和控制部分的硬件,且生產(chǎn)過(guò)程是自動(dòng)完成的。2.精度高,質(zhì)量穩(wěn)定。數(shù)控機(jī)床是按數(shù)字形式給出的指令加工的,一般情況下,工作過(guò)程中不需要人工干預(yù),這就消除了操作者人為產(chǎn)生的誤差。3.生產(chǎn)效率高。數(shù)控機(jī)床主軸的轉(zhuǎn)速和進(jìn)給量的變化范圍比普通機(jī)床大,因此數(shù)控機(jī)床每一道工序都可選用最有利的切削用量。由于數(shù)控機(jī)床結(jié)構(gòu)剛性好,因此允許進(jìn)行大切削用量的強(qiáng)力切削,這就提高了數(shù)控機(jī)床的切削效率,節(jié)省了機(jī)動(dòng)時(shí)間。數(shù)控機(jī)床的移動(dòng)部件空行程時(shí)運(yùn)動(dòng)速度快,工件裝夾時(shí)間短,刀具可自動(dòng)更換
9、,輔助時(shí)間比一般機(jī)床大為減少。在加工中心機(jī)床上加工時(shí),一臺(tái)機(jī)床實(shí)現(xiàn)了多道工序的連續(xù)加工,生產(chǎn)效率的提高更為顯著。4.能實(shí)現(xiàn)復(fù)雜的運(yùn)動(dòng)。普通機(jī)床難以實(shí)現(xiàn)或無(wú)法實(shí)現(xiàn)軌跡為三次以上的曲線或曲面的運(yùn)動(dòng),而數(shù)控機(jī)床則可實(shí)現(xiàn)幾乎是任意軌跡的運(yùn)動(dòng)和加工任何形狀的空間曲面,適應(yīng)于復(fù)雜異形零件的加工。5.良好的經(jīng)濟(jì)效益。數(shù)控機(jī)床雖然設(shè)備昂貴,加工時(shí)分?jǐn)偟矫總€(gè)零件上的設(shè)備折舊費(fèi)較高。但在單件、小批量生產(chǎn)的情況下,使用數(shù)控機(jī)床加工可節(jié)省畫(huà)線工時(shí),減少調(diào)整、加工和檢驗(yàn)時(shí)間,節(jié)省直接生產(chǎn)費(fèi)用。數(shù)控機(jī)床加工零件一般不需制作專用夾具,節(jié)省了工藝裝備費(fèi)用。加工精度穩(wěn)定,減少了廢品率,使生產(chǎn)成本進(jìn)一步下降。此外,數(shù)控機(jī)床可實(shí)現(xiàn)
10、一機(jī)多用,節(jié)省廠房面積和建廠投資。因此使用數(shù)控機(jī)床可獲得良好的經(jīng)濟(jì)效益。6.有利于生產(chǎn)管理的現(xiàn)代化。數(shù)控機(jī)床使用數(shù)字信息與標(biāo)準(zhǔn)代碼處理、傳遞信息,特別是在數(shù)控機(jī)床上使用計(jì)算機(jī)控制,為計(jì)算機(jī)輔助設(shè)計(jì)、制造及管理一體化奠定了基礎(chǔ)。高速、精密、復(fù)合、智能和綠色是數(shù)控機(jī)床發(fā)展的總趨勢(shì)。近年來(lái),在實(shí)用化和產(chǎn)業(yè)化等方面取得可喜的成就。主要表現(xiàn)在:1.機(jī)床復(fù)合技術(shù)進(jìn)一步發(fā)展。隨著數(shù)控機(jī)床技術(shù)的進(jìn)步,復(fù)合加工技術(shù)日趨完善,包括銑-車復(fù)合、車-鏜-鉆-齒輪加工等復(fù)合,車磨復(fù)合,成形復(fù)合加工、特種復(fù)合加工等。復(fù)合加工的精度和效率大大提高。2.數(shù)控機(jī)床的智能化技術(shù)有新的突破,在數(shù)控系統(tǒng)的性能上得到較多體現(xiàn)。3.機(jī)器
11、人使柔性化組合效率更高。機(jī)器人與主機(jī)的柔性化組合得到廣泛應(yīng)用,使得柔性線更加靈活、功能進(jìn)一步擴(kuò)展、柔性線進(jìn)一步縮短、效率更高。4.精密化加工技術(shù)取得最新發(fā)展。數(shù)控金屬切削機(jī)床的加工精度已由原來(lái)的絲級(jí)提升到現(xiàn)在的微米級(jí),有些品種已達(dá)到0.05m左右。超精密數(shù)控機(jī)床的微細(xì)切削和磨削加工,精度可穩(wěn)定達(dá)到0.05m左右,形狀精度可達(dá)0.01m左右。5.功能部件的性能不斷提高。功能部件不斷向高速度、高精度、大功率和智能化發(fā)展。并取得了較為成熟的應(yīng)用。第 2 章 控制系統(tǒng)總體設(shè)計(jì)方案2.1 技術(shù)指標(biāo)及特點(diǎn)本系統(tǒng)選用8位單片機(jī)stc89c51作為主控芯片,原理圖如圖2.1.1所示。它是一個(gè)低電壓、高性能的c
12、mos 8位微處理器,與工業(yè)標(biāo)準(zhǔn)的mcs-51指令集和輸出管腳相兼容。同時(shí)由于將多功能8位cpu和eeprom組合在單個(gè)芯片中,不需擴(kuò)展程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器,進(jìn)一步簡(jiǎn)化了電路。設(shè)計(jì)一個(gè)十字工作臺(tái)控制系統(tǒng),以at89c52rc單片機(jī)作為控制核心,實(shí)現(xiàn)對(duì)數(shù)控系統(tǒng)中十字工作臺(tái)的控制系統(tǒng)設(shè)計(jì)。控制系統(tǒng)的最主要功能是對(duì)十字工作臺(tái)進(jìn)行控制,此外還需實(shí)現(xiàn)以下功能:1)能夠?qū)崿F(xiàn)工作臺(tái)的點(diǎn)動(dòng)控制;(步進(jìn)電機(jī)控制)2)手搖脈沖發(fā)生器控制操作;(兩個(gè)檔位可選,速度倍率*1、*10、*100)3)能夠?qū)崿F(xiàn)給定終點(diǎn)的工作臺(tái)直線插補(bǔ),加工精度為0.01mm;4)具有在線示教功能;5)工作臺(tái)位置和速度的實(shí)時(shí)顯示(1286
13、4顯示);6)工作臺(tái)尺寸為80*60、工件要求為不超過(guò)30*20;7)能夠存儲(chǔ)數(shù)據(jù)方便掉電后,重啟記憶。2.2十字工作臺(tái)控制系統(tǒng)設(shè)計(jì)方案與論證2.2.1 設(shè)計(jì)方案的選擇十字工作臺(tái)控制系統(tǒng)的總體設(shè)計(jì)方案,根據(jù)要實(shí)現(xiàn)的功能特點(diǎn),本次設(shè)計(jì)主要用到以下模塊:中斷服務(wù)、電機(jī)驅(qū)動(dòng)、手搖脈沖發(fā)生器、矩陣鍵盤(pán)、eeprom掉電保護(hù)、液晶顯示系統(tǒng)工作狀態(tài)功能,硬件上采用stc89c52rc、12864液晶顯示器、4*4矩陣鍵盤(pán)、晶振11.0592mhz、行程開(kāi)關(guān)、步進(jìn)電機(jī)、手搖脈沖發(fā)生器、蜂鳴器等。本系統(tǒng)選用了stc89c52rc單片機(jī),此設(shè)計(jì)是利用單片機(jī)對(duì)步進(jìn)電機(jī)運(yùn)行、停止控制。用12864液晶實(shí)現(xiàn)當(dāng)前坐標(biāo)、
14、運(yùn)行速度、系統(tǒng)狀態(tài)等的顯示,采用按鍵掃描方式獲取鍵值,并經(jīng)相應(yīng)處理程序?qū)Λ@取的鍵值進(jìn)行必要處理,實(shí)現(xiàn)對(duì)兩個(gè)軸的電機(jī),四種工作狀態(tài)和相應(yīng)啟動(dòng)方式的控制。stc89c52rc單片機(jī)是stc推出的新一代高速/低功耗/超強(qiáng)抗干擾的單片機(jī)。指令代碼完全兼容傳統(tǒng)8051單片機(jī),12時(shí)鐘/機(jī)器周期和6時(shí)鐘/機(jī)器周期可以任意選擇。系統(tǒng)要求具有豐富語(yǔ)言提示的液晶屏顯示畫(huà)面,經(jīng)多方對(duì)比參考,最終確定使用12864帶有中文字庫(kù)的液晶顯示器。經(jīng)查閱大量的相關(guān)資料及使用說(shuō)明書(shū),其可顯示漢字及圖形,內(nèi)置8192個(gè)中文漢字(16*16點(diǎn)陣)、128個(gè)字符(8*16點(diǎn)陣)及64*256點(diǎn)陣顯示ram(gdram)。完全滿足本
15、系統(tǒng)的設(shè)計(jì)和使用需要。利用這些資源完成的十字工作臺(tái)具有以下功能:1.液晶屏顯示功能:顯示工作臺(tái)的工作方式、工作臺(tái)所處位置、輸入數(shù)據(jù)顯示、存儲(chǔ)數(shù)據(jù)顯示、運(yùn)行時(shí)運(yùn)行速度顯示以及必要的提示語(yǔ)的顯示等等;2.4*4矩陣按鍵式鍵盤(pán)操作面板,具有機(jī)床所需運(yùn)行狀態(tài)選擇及確認(rèn)、輸入數(shù)據(jù)、點(diǎn)動(dòng)運(yùn)行、查詢數(shù)據(jù)、運(yùn)行確認(rèn)等功能;3.實(shí)時(shí)更新機(jī)床當(dāng)前所處位置,利用中斷刷新、觸發(fā)中斷定時(shí)發(fā)射驅(qū)動(dòng)步進(jìn)電機(jī)運(yùn)動(dòng)所需脈沖、手搖脈沖發(fā)生器觸發(fā)外部中斷驅(qū)動(dòng)電機(jī)等;4.具有坐標(biāo)值記憶功能,單片機(jī)內(nèi)eeprom能實(shí)時(shí)保存當(dāng)前工作臺(tái)的位置和必要的點(diǎn)存儲(chǔ)后下次可繼續(xù)用;5.當(dāng)鍵盤(pán)按下以及工作臺(tái)移動(dòng)停止時(shí)利用蜂鳴器發(fā)聲給予操作者一定提示。
16、由于步進(jìn)電動(dòng)機(jī)不需要a/d轉(zhuǎn)換,能夠直接將數(shù)字脈沖信號(hào)轉(zhuǎn)化成為角位移,轉(zhuǎn)動(dòng)精度較高,所以一直被認(rèn)為是最理想的數(shù)控機(jī)床執(zhí)行元件,因此本設(shè)計(jì)選擇了步進(jìn)電機(jī)做為工作臺(tái)的動(dòng)力源。步進(jìn)電機(jī)如圖2.1所示。圖2.1 步進(jìn)電機(jī)步進(jìn)電機(jī)是將電脈沖信號(hào)轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開(kāi)環(huán)控制元步進(jìn)電機(jī)件。在非超載的情況下,電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號(hào)的頻率和脈沖數(shù),而不受負(fù)載變化的影響,當(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)行的??梢酝ㄟ^(guò)控制脈沖個(gè)數(shù)來(lái)控制角位移量,從而達(dá)到準(zhǔn)確定位的目的;同時(shí)可以通過(guò)控制脈沖頻率來(lái)控制電機(jī)
17、轉(zhuǎn)動(dòng)的速度和加速度,從而達(dá)到調(diào)速的目的。 綜上所述,根據(jù)設(shè)備具體使用情況,本設(shè)計(jì)選擇86byg250-65混合式步進(jìn)電動(dòng)機(jī)作為十字工作臺(tái)的驅(qū)動(dòng)。該電機(jī)的運(yùn)行速度、方向控制是通過(guò)發(fā)送脈沖的頻率和方向脈沖電平的高低來(lái)控制的。本方案是采用單片機(jī)控制來(lái)實(shí)現(xiàn)電動(dòng)機(jī)對(duì)十字工作臺(tái)的控制系統(tǒng)設(shè)計(jì),其電路簡(jiǎn)單、人機(jī)界面友好、功能齊全、集成度好、智能化程度高。2.2.2 設(shè)計(jì)方案的論證實(shí)現(xiàn)過(guò)程中采用中斷服務(wù)、電機(jī)驅(qū)動(dòng)、手搖脈沖發(fā)生器、矩陣鍵盤(pán)、eeprom掉電保護(hù)、液晶顯示系統(tǒng)工作狀態(tài)功能,硬件上采用stc89c52rc、12864液晶顯示器、4*4矩陣鍵盤(pán)、晶振11.0592mhz、行程開(kāi)關(guān)、步進(jìn)電機(jī)、手搖脈沖
18、發(fā)生器、蜂鳴器等。本次設(shè)計(jì)使用stc89c52rc 單片機(jī)完成此次設(shè)計(jì),工作頻率范圍為040mhz,工作電壓3.3v5.5v,有512字節(jié)的ram和8k字節(jié)的用戶應(yīng)用程序空間,有32個(gè)可編程i/o口,2通道8位定時(shí)/計(jì)數(shù)器,2通道16位定時(shí)/計(jì)數(shù)器。stc89c52rc 是一種帶4k 字節(jié)flash 存儲(chǔ)器的低電壓、高性能cmos 8位微處理器。stc89c52rc 單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。此款單片機(jī)與mcs-51 兼容,含有32個(gè)可編程i/o 線,兩個(gè)16 位定時(shí)/計(jì)數(shù)器,5個(gè)中斷源,可編程串行通道,為實(shí)現(xiàn)上述功能提供了大量硬件。在本系統(tǒng)中使用到的芯片都是符
19、合設(shè)計(jì)要求的,而且使用的芯片都是實(shí)用且經(jīng)濟(jì)。像stc89c52rc 本身就具eeprom,這些都符合設(shè)計(jì)需求,省去了很多麻煩。還有l(wèi)ed液晶顯示器,體積小、微功耗、顯示內(nèi)容豐富超薄輕巧等優(yōu)點(diǎn),在很多場(chǎng)合得到運(yùn)用。在校期間學(xué)習(xí)了vb、c語(yǔ)言等編程語(yǔ)言,同時(shí)也學(xué)習(xí)了基于stc89c52rc的單片機(jī)編程方法和技巧,現(xiàn)已能獨(dú)立進(jìn)行編程、調(diào)試等相關(guān)工作。在參考了各種相關(guān)書(shū)籍及網(wǎng)上的一些資料后,做好了電路圖。經(jīng)過(guò)仿真,達(dá)到了預(yù)期結(jié)果,說(shuō)明該設(shè)計(jì)方案是合理且可行的。如圖2.2 所示為數(shù)控系統(tǒng)中整體效果圖。圖2.2 十字工作臺(tái)整體效果圖采用水平式機(jī)架機(jī)構(gòu)和單片機(jī)控制系統(tǒng),可提高生產(chǎn)效率, 加工質(zhì)量穩(wěn)定、精度高
20、, 操作維護(hù)方便。2.3解決的主要問(wèn)題1. 硬件部分:設(shè)計(jì)硬件電路并對(duì)硬件電路進(jìn)行排版。硬件電路主要包括,單片機(jī)芯片插座、單片機(jī)最小系統(tǒng)、蜂鳴器電路、4*4矩陣按鍵、液晶插座、步進(jìn)電機(jī)驅(qū)動(dòng)器插座、行程開(kāi)關(guān)插座、手搖脈沖發(fā)生器插座等。2)確認(rèn)并購(gòu)買各硬件電路模塊所需元器件。3)焊接硬件電路并檢測(cè)硬件電路的連接情況。2軟件部分:1)系統(tǒng)需要1個(gè)狀態(tài)切換鍵,11個(gè)數(shù)據(jù)輸入鍵以及4個(gè)功能鍵,所以設(shè)計(jì)4*4矩陣按鍵,如有實(shí)際需要可用4*5矩陣按鍵;2)系統(tǒng)設(shè)計(jì)液晶屏上能顯示工作臺(tái)的工作方式、工作臺(tái)所處位置、輸入數(shù)據(jù)顯示、存儲(chǔ)數(shù)據(jù)顯示、運(yùn)行時(shí)運(yùn)行速度顯示以及必要的提示語(yǔ)的顯示,液晶顯示是一個(gè)重要模塊。3)
21、電機(jī)的定位精度是本設(shè)計(jì)的以個(gè)重要環(huán)節(jié),設(shè)計(jì)的好壞完全取決于電機(jī)移動(dòng)的精度。4)在系統(tǒng)上電后,液晶顯示上顯示上次掉電后工作臺(tái)的位置和查詢狀態(tài)可查詢儲(chǔ)存的點(diǎn),這需要軟件部分有斷電保護(hù)功能,本文考慮使用單片機(jī)自帶的eeprom進(jìn)行斷電保護(hù)。5)設(shè)計(jì)四種工作模式,即手搖脈沖發(fā)生器方式、點(diǎn)動(dòng)方式、輸入方式和查詢方式,這需要三種電機(jī)驅(qū)動(dòng)方式即外部中斷觸發(fā)、點(diǎn)動(dòng)觸發(fā)和插補(bǔ)方式。6)實(shí)時(shí)顯示當(dāng)前工作臺(tái)位置及速度。第 3 章 控制系統(tǒng)硬件電路設(shè)計(jì)根據(jù)上述分析的設(shè)計(jì)方案,本系統(tǒng)主要設(shè)計(jì)和使用了矩陣按鍵電路模塊蜂鳴器報(bào)警電路模塊數(shù)碼管顯示電路模塊、電機(jī)驅(qū)動(dòng)電路模塊以及電氣控制線路模塊。下面就這五個(gè)模塊的設(shè)計(jì)分別論述
22、。3.1 單片機(jī)最小系統(tǒng)電路stc89c52rc單片機(jī)中包含中央處理器(cpu)、程序存儲(chǔ)器(flash)、數(shù)據(jù)存儲(chǔ)器(sram)、定時(shí)/計(jì)數(shù)器、uart串口、i/o接口、eeprom、看門(mén)狗等模塊。stc89c52rc單片機(jī)幾乎包含了數(shù)據(jù)采集和控制中所需的所有單元模塊,可稱得上是一個(gè)片上系統(tǒng)。考慮到本次設(shè)計(jì)上電復(fù)位后單片機(jī)需從內(nèi)部開(kāi)始執(zhí)行程序,因此將ea管腳外部上拉到vcc。其最小系統(tǒng)主要包括復(fù)位電路、振蕩電路以及存儲(chǔ)器選擇模式(ea腳的高低電平選擇)。如圖3.1所示為單片機(jī)最小系統(tǒng)電路。圖3.1 單片機(jī)最小系統(tǒng)3.2 端口分配為合理利用單片機(jī)的端口資源,并且兼顧程序設(shè)計(jì)的便利,將系統(tǒng)的輸出
23、和輸入端口作如表3.1 所示硬件說(shuō)明。 表3.1 stc89c52主要管腳功能單片機(jī)端口外圍接口電路硬件模塊p0.0-p0.3行程開(kāi)關(guān)電路模塊p0.4-p0.7控制步進(jìn)電機(jī)電路模塊p1.0-p1.74*4矩陣按鍵電路模塊p2.0-p2.3,p2.512864液晶電路模塊p3.0-p3.5,p3.7手搖脈沖發(fā)生器電路模塊p3.6蜂鳴器電路模塊3.3 矩陣按鍵電路設(shè)計(jì)按鍵是最常用的單片機(jī)輸入設(shè)備,操作人員可以通過(guò)按鍵輸入數(shù)據(jù)或命令,實(shí)現(xiàn)簡(jiǎn)單的人機(jī)交互。本系統(tǒng)采用4*4矩陣按鍵,電路如圖3.2 所示。圖中的四條行線和四條列線可分別接入p1.0p1.3和p1.4p1.7的端口,該端口各位都上拉一個(gè)1k
24、的電阻。圖3.2 矩陣按鍵電路4*4矩形按鍵在控制面板的效果圖,詳見(jiàn)附錄4 控制面板布線與效果圖,如表3.2 所示,本系統(tǒng)設(shè)置了16個(gè)按鍵,采用按鍵掃描方式處理,其功能如下:表3.2 按鍵功能表123x456y789取消狀態(tài)切換0.確定說(shuō)明:1鍵在輸入狀態(tài)時(shí)為輸入數(shù)據(jù)1;2鍵在點(diǎn)動(dòng)狀態(tài)時(shí)為x軸正向,在查詢狀態(tài)時(shí)為查詢本組上一個(gè)數(shù)據(jù);3鍵在輸入狀態(tài)時(shí)為輸入數(shù)據(jù)3;4鍵在點(diǎn)動(dòng)狀態(tài)時(shí)為y軸正向,在查詢狀態(tài)時(shí)為查詢上一組數(shù)據(jù);5鍵在輸入狀態(tài)時(shí)為輸入數(shù)據(jù)5;6鍵在點(diǎn)動(dòng)狀態(tài)時(shí)為y軸負(fù)向,在查詢狀態(tài)時(shí)為查詢下一組數(shù)據(jù);7鍵在輸入狀態(tài)時(shí)為輸入數(shù)據(jù)7;8鍵在點(diǎn)動(dòng)狀態(tài)時(shí)為x軸負(fù)向,在查詢狀態(tài)時(shí)為查詢本組下一個(gè)數(shù)據(jù)
25、;9鍵在輸入狀態(tài)時(shí)為輸入數(shù)據(jù)9;0鍵在輸入狀態(tài)時(shí)為輸入數(shù)據(jù)0;x鍵在切換狀態(tài)時(shí)為切換到手搖狀態(tài),在查詢狀態(tài)時(shí)清零選中點(diǎn);y鍵在切換狀態(tài)時(shí)為切換到點(diǎn)動(dòng)狀態(tài),在查詢狀態(tài)時(shí)更新選中點(diǎn)數(shù)據(jù);取消鍵在切換狀態(tài)時(shí)為切換到輸入狀態(tài),在查詢狀態(tài)時(shí)運(yùn)行選中點(diǎn);確定鍵在切換狀態(tài)時(shí)為切換到查詢狀態(tài),在查詢狀態(tài)時(shí)運(yùn)行選中點(diǎn)所在組的所有點(diǎn)。3.4 液晶電路fyd12864-0402b是一種具有4位/8位并行、2線或3線串行多種接口方式,內(nèi)部含有簡(jiǎn)體中文字庫(kù)的點(diǎn)陣圖形液晶顯示模塊;其顯示分辨率128*64,內(nèi)置8192個(gè)16*16點(diǎn)漢字,和128個(gè)16*8點(diǎn)ascii字符集,利用該模塊靈活的接口方式和簡(jiǎn)單、方便的操作指令
26、,可構(gòu)成全中文人際交互圖形界面。為了節(jié)省硬件接口資源本設(shè)計(jì)選用串行接口方式進(jìn)行數(shù)據(jù)交互,它與單片機(jī)的接口如圖3.3 所示。圖3.3 fyd12864-0402b液晶接口電路圖3.5 步進(jìn)電機(jī)驅(qū)動(dòng)模塊電路設(shè)計(jì)本系統(tǒng)采用兩個(gè)分別移動(dòng)工作臺(tái)x軸和y軸的86byg250-65兩相混合式步進(jìn)電機(jī),配套使用的步進(jìn)電機(jī)驅(qū)動(dòng)器是由美國(guó)shaphon公司與北京斯達(dá)特機(jī)電科技發(fā)展有限公司聯(lián)合推出的sh-2h057。步進(jìn)電機(jī)是將電脈沖信號(hào)轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開(kāi)環(huán)控制元件,當(dāng)步進(jìn)電機(jī)驅(qū)動(dòng)器接收到一個(gè)脈沖信號(hào),它就驅(qū)動(dòng)步進(jìn)電機(jī)按設(shè)定的方向移動(dòng)一個(gè)固定的角度??梢酝ㄟ^(guò)控制脈沖的個(gè)數(shù)來(lái)控制角位移量,從而達(dá)到準(zhǔn)確定位的目的
27、。其接線方式如圖3.4所示:圖3.4 步進(jìn)電機(jī)及驅(qū)動(dòng)器電路接線方法sh-2h057的使用方法是:通過(guò)撥位開(kāi)關(guān)設(shè)定細(xì)分?jǐn)?shù)為32,設(shè)定電機(jī)的相電流為3a??刂葡到y(tǒng)提供給驅(qū)動(dòng)器的信號(hào)主要有以下兩路:步進(jìn)脈沖信號(hào)cp,驅(qū)動(dòng)器每接收一個(gè)脈沖信號(hào)cp,就驅(qū)動(dòng)步進(jìn)電機(jī)轉(zhuǎn)一步距角,cp的頻率和步進(jìn)電機(jī)的轉(zhuǎn)速成正比,cp的脈沖個(gè)數(shù)決定了定子步進(jìn)電機(jī)旋轉(zhuǎn)的角度,這樣控制系統(tǒng)通過(guò)脈沖信號(hào)就可以達(dá)到電機(jī)調(diào)速和定位的目的;方向電平信號(hào)dir,此信號(hào)決定電機(jī)的旋轉(zhuǎn)方向。此信號(hào)為高電平時(shí)電機(jī)為順時(shí)針旋轉(zhuǎn),為低電平時(shí)電機(jī)反轉(zhuǎn)。驅(qū)動(dòng)器與單片機(jī)引腳的接線方式為p0.4和p0.5口分別接控制x軸驅(qū)動(dòng)器的脈沖和方向,p0.6和p0.
28、7口分別接控制y軸驅(qū)動(dòng)器的脈沖和方向。3.6 行程開(kāi)關(guān)電路如圖3.5所示,本系統(tǒng)采用4個(gè)行程開(kāi)關(guān)分別分別控制x軸y軸的最大和最小位移。圖3.5 行程開(kāi)關(guān)接線圖當(dāng)工作臺(tái)運(yùn)動(dòng)時(shí)觸碰到行程開(kāi)關(guān)的位置,工作臺(tái)就會(huì)停止運(yùn)行,此時(shí)說(shuō)明工作臺(tái)將要超出工作范圍。3.7 手搖脈沖發(fā)生器電路如圖3.6 所示,本系統(tǒng)采用手搖脈沖發(fā)生器以達(dá)到手輪控制工作臺(tái)位移的方式。圖3.6手搖脈沖發(fā)生器接線圖本系統(tǒng)所采用的手搖脈沖發(fā)生器,共有兩個(gè)檔位供選擇分別為x軸和y軸,另外還有三種倍率供實(shí)際使用時(shí)選擇。3.9 蜂鳴器電路如圖3.7 所示的蜂鳴器電路。圖3.7 蜂鳴器接線圖1)總體原理:不同的音符,實(shí)質(zhì)就是不同頻率的聲音。通過(guò)單
29、片機(jī)產(chǎn)生不同的頻率的脈沖信號(hào),經(jīng)過(guò)放大電路,由蜂鳴器發(fā)出。2)單片機(jī)產(chǎn)生不同頻率脈沖信號(hào)的原理:要產(chǎn)生音頻脈沖,只要算出某一音頻的脈沖(1/頻率),然后將此周期除以2,即為半周期的時(shí)間,利用定時(shí)器計(jì)時(shí)這個(gè)半周期的時(shí)間,每當(dāng)計(jì)時(shí)到后就將輸出脈沖的i/o 反相,然后重復(fù)計(jì)時(shí)此半周期的時(shí)間再對(duì)i/o 反相,就可以在i/o 腳上得到此頻率的脈沖。利用89c51的內(nèi)部定時(shí)器使其工作在計(jì)數(shù)器模式mode1 下,改變計(jì)數(shù)值th0 及tl0 以產(chǎn)生不同頻率。第 4 章 系統(tǒng)的軟件設(shè)計(jì)與分析4.1 主程序十字工作臺(tái)控制系統(tǒng)的程序流程圖如圖4.1 所示。該控制器軟件的設(shè)計(jì)采用模塊化架構(gòu),其軟件部分主要包括主程序、
30、按鍵掃描子程序、x軸脈沖發(fā)射子程序、y軸脈沖發(fā)射子程序、手搖狀態(tài)脈沖發(fā)射控制子程序、更新eeprom數(shù)據(jù)子程序、將數(shù)值數(shù)據(jù)轉(zhuǎn)換成字符數(shù)據(jù)的子程序、處理運(yùn)行插補(bǔ)的子程序、液晶顯示子程序、中斷服務(wù)程序以及eeprom 掉電保護(hù)子程序等。當(dāng)接通電源后,芯片開(kāi)始工作,內(nèi)部程序先是初始化,并輸出顯示上一次斷電后x軸及y軸的坐標(biāo)及此時(shí)系統(tǒng)所處狀態(tài)。然后系統(tǒng)不斷的掃描鍵盤(pán),判斷是否有按鍵按下,若有按鍵按下則去鍵值。所取鍵值為3,程序?qū)⑥D(zhuǎn)入手搖子程序進(jìn)行相應(yīng)的處理;所取鍵值為7,程序?qū)⑥D(zhuǎn)入點(diǎn)動(dòng)子程序進(jìn)行相應(yīng)的處理;所取鍵值為11,程序?qū)⑥D(zhuǎn)入輸入子程序進(jìn)行相應(yīng)的處理;所取鍵值為15,程序?qū)⑥D(zhuǎn)入查詢子程序進(jìn)行相應(yīng)
31、的處理。若鍵值不為3、7、11、15中的任何一個(gè)或進(jìn)入相應(yīng)子程序后從該子程序中退出,程序?qū)⒒氐街鞒绦虻难h(huán)掃描按鍵階段。圖4.1 主程序流程圖鑒于本次設(shè)計(jì)所用到的狀態(tài)相對(duì)較多,為了便于明確直觀表達(dá)各狀態(tài)之間的狀態(tài)轉(zhuǎn)換關(guān)系圖4.2給出了系統(tǒng)狀態(tài)轉(zhuǎn)移關(guān)系。圖4.2狀態(tài)轉(zhuǎn)移關(guān)系圖具體的程序?yàn)椋簐oid main()tmod=0x11;th0=(65536-1000)/256 ;tl0=(65536-1000)%256;th1=(65536-timer)/256; tl1=(65536-timer)%256;ea=1; et0=1;tr0=1; et1=1; it0=1; pt1=1;xjiyi=xz
32、uobiao=byte_read(0x2000)*256+byte_read(0x2001);yjiyi=yzuobiao=byte_read(0x2002)*256+byte_read(0x2003);for(i=0;i4;i+) for(j=0;j10;j+) xeepromij=byte_read(0x2000+eepromzui+eepromgej)*256+byte_read(0x2001+eepromzui+eepromgej); yeepromij=byte_read(0x2100+eepromzui+eepromgej)*256+byte_read(0x2101+eepromz
33、ui+eepromgej); lcdinit();while(1) if(key=3)&(zhuangtai=0) zhuangtai=1; if(key=7)&(zhuangtai=0) zhuangtai=2;if(key=11)&(zhuangtai=0) zhuangtai=3;if(key=11)&(zhuangtai=0) zhuangtai=4; 4.2 4*4矩形按鍵掃描程序矩形鍵盤(pán)掃描子程序流程圖如圖4.3 所示。鍵盤(pán)掃描子程序用于完成按鍵的判斷、按鍵的去抖動(dòng)以及按鍵的鍵值處理、存儲(chǔ),其中調(diào)用了鍵盤(pán)處理子程序,按鍵的鍵值分別在定時(shí)器0中斷程序和主程序程序中處理。圖4.3 矩形
34、鍵盤(pán)掃描程序流程圖由于本次設(shè)計(jì)所需運(yùn)行狀態(tài)相對(duì)較多(分別為手搖狀態(tài),點(diǎn)動(dòng)狀態(tài),輸入狀態(tài),查詢狀態(tài))故所需按鍵數(shù)量也要相應(yīng)增多,但是考慮到要盡可能節(jié)省硬件資源的使用,因此本次設(shè)計(jì)采用了一鍵多用的鍵盤(pán)復(fù)合使用的方式具體用法如下所述:本設(shè)計(jì)單獨(dú)設(shè)置了s12鍵為狀態(tài)切換鍵,當(dāng)運(yùn)行需要從一種運(yùn)行狀態(tài)切換到另一種運(yùn)行狀態(tài)時(shí)(如由手搖狀態(tài)切換到輸入狀態(tài)),需先按下?tīng)顟B(tài)切換鍵s12然后再按下所設(shè)定的相應(yīng)狀態(tài)的按鍵(如按下輸入狀態(tài)所對(duì)應(yīng)的s11鍵)系統(tǒng)就會(huì)轉(zhuǎn)入所對(duì)應(yīng)狀態(tài)的工作方式。狀態(tài)切換鍵的主要功能是將狀態(tài)進(jìn)行復(fù)位,無(wú)論當(dāng)前在何種狀態(tài)下工作,狀態(tài)切換鍵被按下都會(huì)停止運(yùn)行。狀態(tài)切換鍵被按下后,操作人員就要根據(jù)需
35、要按下所需狀態(tài)鍵。本設(shè)計(jì)設(shè)置s3、s7、s11和s15分別為手搖狀態(tài)、點(diǎn)動(dòng)狀態(tài)、輸入狀態(tài)和查詢狀態(tài)。下面分別講述在不同工作狀態(tài)下按鍵的功能。手搖狀態(tài):當(dāng)系統(tǒng)處于手搖狀態(tài),除狀態(tài)切換鍵s12以外其他按鍵被按下都不會(huì)有任何作用,在此狀態(tài)下需要用手搖脈沖發(fā)生器來(lái)對(duì)工作臺(tái)進(jìn)行控制。點(diǎn)動(dòng)狀態(tài):當(dāng)系統(tǒng)處于點(diǎn)動(dòng)狀態(tài),按住s1、s9、s4或s6不放十字工作臺(tái)將會(huì)沿x正、x負(fù)、y正或y負(fù)方向運(yùn)動(dòng)直至按鍵被松開(kāi),如果狀態(tài)切換鍵s12被按下就會(huì)跳出點(diǎn)動(dòng)狀態(tài)。除以上5鍵以外其他按鍵被按下都不會(huì)有任何作用。輸入狀態(tài):在輸入狀態(tài)下,用戶先要選擇所要輸入數(shù)據(jù)所對(duì)應(yīng)的軸,如需輸入數(shù)據(jù)到x軸則需按下s3鍵,輸入數(shù)據(jù)到y(tǒng)軸則按下
36、s7鍵。選擇好了輸入軸后可輸入數(shù)據(jù)到所選軸。輸入數(shù)據(jù)中根據(jù)數(shù)值排列0、1、2、3、4、5、6、7、8、9分別對(duì)應(yīng)s13鍵、s0鍵、s1鍵、s2鍵、s4鍵、s5鍵、s6鍵、s8鍵、s9鍵、s10鍵。當(dāng)所需數(shù)據(jù)輸入完畢,經(jīng)確認(rèn)無(wú)誤后按下s15鍵工作臺(tái)將開(kāi)始運(yùn)行直到到達(dá)所輸入的位置,同樣狀態(tài)切換鍵s12被按下也會(huì)跳出輸入狀態(tài)。查詢狀態(tài):查詢狀態(tài)下,首先需要選擇以前存儲(chǔ)過(guò)的點(diǎn)。本系統(tǒng)設(shè)置了四組,每組10個(gè)點(diǎn)(共40點(diǎn))供用戶使用。s1和s9分別為選擇點(diǎn)時(shí)的上一點(diǎn)和下一點(diǎn)的選擇鍵,而s4和s9分別為上一組和下一組點(diǎn)的選擇鍵。當(dāng)用戶選擇好相應(yīng)的點(diǎn)后s3、s7、s11、s15分別可以對(duì)選擇好的點(diǎn)進(jìn)行清零、更
37、改、運(yùn)行、運(yùn)行當(dāng)前指定點(diǎn)所在組從第一點(diǎn)運(yùn)行到當(dāng)前點(diǎn)的操作。更改鍵被按下用戶需要根據(jù)提示選擇更改軸s3和s7分別對(duì)應(yīng)x軸和y軸,同輸入狀態(tài)時(shí)數(shù)值所對(duì)應(yīng)按鍵一樣的排列,用戶可輸入所需數(shù)據(jù)。數(shù)據(jù)更改好后按下s15進(jìn)行確認(rèn)。注意:查詢狀態(tài)下所有的點(diǎn)都是儲(chǔ)存在單片機(jī)片內(nèi)eeprom中的,掉電后不會(huì)丟失數(shù)據(jù)。按鍵掃描及其處理的具體程序如下:unsigned char code key_code=0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77;bit flag;unsigned char keyc
38、heck()unsigned char scan1,scan2,keycode,j,keys;p1=0xf0; scan1=p1;if(scan1&0xf0)!=0xf0)if(flag=0) flag=1;if(flag=1) p1=0x0f; /線反轉(zhuǎn)法的核心scan2=p1; keycode=scan1|scan2; /組合成鍵編碼for(j=0;j=15;j+)if(keycode= key_codej) /查表得鍵值keys=j; flag=0; else p1=0xff; flag=0; keys=16;return keys;4.3液晶驅(qū)動(dòng)及初始化程序本系統(tǒng)所采用的液晶是fyd1
39、2864-0402b液晶。本液晶有兩種工作方式,分別為并行接口工作方式和串行接口工作方式。并行接口工作方式優(yōu)點(diǎn)是數(shù)據(jù)傳送速率較快,但是所需硬件接口較多(20個(gè));串行接口工作方式雖然數(shù)據(jù)傳送速率相對(duì)較慢,但是節(jié)省單片機(jī)i/o口(11個(gè))。綜合考慮本設(shè)計(jì)需求最終決定采用串行接口的方式連接液晶和單片機(jī)。串行接口工作方式所用引腳說(shuō)明如表4.1所示:表4.1 液晶串行模式引腳說(shuō)明引腳號(hào)名稱電平功能說(shuō)明1vss0v電源負(fù)極2vdd+5v電源正極3v0-對(duì)比度調(diào)節(jié)4csh/l片選端,高電平有效5sidh/l串行數(shù)據(jù)輸入端6clkh/l穿行同步時(shí)鐘15psbh/lpsb=h,并行模式;psb=l,串行模式1
40、7/reseth/l復(fù)位端,低電平有效19a+5v背光電源正極20k0v背光電源負(fù)極串行接口時(shí)序圖如圖4.4所示圖4.4 串行接口時(shí)序圖具體程序?yàn)椋簊bit cs=p20;/片選 高電平有效 單片lcd使用時(shí)可固定高電平sbit sid=p21;/數(shù)據(jù)sbit sclk=p22;/時(shí)鐘sbit psb=p23;/低電平時(shí)表示用串口驅(qū)動(dòng),可固定低電平void write(bit start, unsigned char ddata) /寫(xiě)指令或數(shù)據(jù) unsigned char start_data,hdata,ldata; if(start=0) start_data=0xf8; /寫(xiě)指令 el
41、se start_data=0xfa; /寫(xiě)數(shù)據(jù) hdata=ddata&0xf0; /取高四位 ldata=(ddata4)&0xf0; /取低四位 sendbyte(start_data); /發(fā)送起始信號(hào) delaynms(5); /延時(shí)是必須的 sendbyte(hdata); /發(fā)送高四位 delaynms(1); /延時(shí)是必須的 sendbyte(ldata); /發(fā)送低四位 delaynms(1); /延時(shí)是必須的void sendbyte(unsigned char bbyte) /發(fā)送一個(gè)字節(jié) unsigned char i; for(i=0;i8;i+) sid=bbyte
42、&0x80; /取出最高位 sclk=1; sclk=0; bbyte=1; /左移 void delaynms(unsigned int di) /延時(shí) unsigned int da,db; for(da=0;dadi;da+) for(db=0;db10;db+);void lcdinit(void)/初始化lcd delaynms(10); /啟動(dòng)等待,等lcm講入工作狀態(tài) psb=0; ; /串口驅(qū)動(dòng)模式 cs=1; write(0,0x30); /8 位介面,基本指令集 write(0,0x0c); /顯示打開(kāi),光標(biāo)關(guān),反白關(guān) write(0,0x01); /清屏,將ddram的地
43、址計(jì)數(shù)器歸零 4.4手搖狀態(tài)脈沖發(fā)射控制子程序本系統(tǒng)需要有手搖脈沖發(fā)生器對(duì)工作臺(tái)進(jìn)行相應(yīng)的工作方式。手搖脈沖發(fā)生器是通過(guò)其內(nèi)置的編碼器將轉(zhuǎn)角信號(hào)轉(zhuǎn)換成脈沖序列信號(hào)。為達(dá)到控制系統(tǒng)對(duì)其鑒相和脈沖計(jì)數(shù)的要求,手搖脈沖發(fā)生器一般會(huì)有以差分信號(hào)形式輸出的a、b兩相(a,b兩相相位始終相差90)。當(dāng)脈沖發(fā)生器被轉(zhuǎn)動(dòng)時(shí)會(huì)產(chǎn)生脈沖,并且脈沖序列的頻率與搖動(dòng)的角速度成正比??刂葡到y(tǒng)結(jié)合控制面板上的“倍率”檔,以搖動(dòng)產(chǎn)生的脈沖數(shù)和倍率的乘積作為總的脈沖數(shù)輸出到“坐標(biāo)”檔所對(duì)應(yīng)的步進(jìn)電機(jī)中。本設(shè)計(jì)使用單片機(jī)的int0引腳與脈沖發(fā)生器的的a相信號(hào)相連,并設(shè)置該信號(hào)的每一個(gè)下降沿觸發(fā)int0中斷,進(jìn)入int0中斷后,
44、做的第一件事就是判斷b相的電平。如果此時(shí)b相為高電平則說(shuō)明b相超前a相90此時(shí)給相應(yīng)軸的方向信號(hào)為正轉(zhuǎn),反之則給相應(yīng)軸的方向信號(hào)為反轉(zhuǎn)。之后根據(jù)控制面板上所選擇的“倍率”和“坐標(biāo)軸”向相應(yīng)電機(jī)發(fā)射脈沖。圖4.5 所示為其流程圖。圖4.5 手搖脈沖發(fā)生器流程圖具體程序?yàn)椋簐oid shouyao() uchar i;if(dangwei=1) for(i=0;ibl;i+) xmaichong();else if(dangwei=2) for(i=0;ibl;i+) ymaichong();4.5 eeprom掉電保護(hù)程序本次設(shè)計(jì)需要存儲(chǔ)一些數(shù)據(jù),這些數(shù)據(jù)在系統(tǒng)掉電后重新啟動(dòng)依然能供用戶參考。需
45、要掉電存儲(chǔ)的數(shù)據(jù)包括x,y的當(dāng)前坐標(biāo),以及查詢狀態(tài)下被用戶存儲(chǔ)過(guò)的數(shù)據(jù)。經(jīng)查閱資料,stc89c52rc單片機(jī)內(nèi)部提供了掉電記憶的eeprom供用戶存儲(chǔ)需要的數(shù)據(jù)。該型號(hào)單片機(jī)內(nèi)部含有4k字節(jié)的eeprom分為8個(gè)扇區(qū),起始扇區(qū)首地址為2000h結(jié)束扇區(qū)末尾地址為2fffh。表4.2所示為eeprom詳細(xì)地址表。表4.2 stc89c52rc單片機(jī)內(nèi)部eeprom詳細(xì)地址表第一扇區(qū)第二扇區(qū)第三扇區(qū)第四扇區(qū)每個(gè)扇區(qū)512個(gè)字節(jié),建議同一次修改的數(shù)據(jù)放在同一個(gè)扇區(qū),不是同一次修改的放在不同扇區(qū)起始結(jié)束起始結(jié)束起始結(jié)束起始結(jié)束2000h21ffh2200h23ffh2400h25ffh2600h27
46、ffh第五扇區(qū)第六扇區(qū)第七扇區(qū)第八扇區(qū)起始結(jié)束起始結(jié)束起始結(jié)束起始結(jié)束2800h29ffh2a00h2bffh2c00h2dffh2e00h2fffh本次設(shè)計(jì)所需存儲(chǔ)數(shù)據(jù)包括工作臺(tái)當(dāng)前位置,以及可供用戶存儲(chǔ)4組每組10個(gè)點(diǎn)的空間,每個(gè)點(diǎn)所占用的存儲(chǔ)空間為4字節(jié)。eeprom存儲(chǔ)空間分配如下:第一扇區(qū)中的地址為2000h2003h用于存儲(chǔ)工作臺(tái)當(dāng)前位置的x、y坐標(biāo)值;第二扇區(qū)中的地址為2200h2212h用于存儲(chǔ)第一組用戶存儲(chǔ)數(shù)據(jù)的10個(gè)點(diǎn);第三扇區(qū)中的地址為2400h2412h用于存儲(chǔ)第二組用戶存儲(chǔ)數(shù)據(jù)的10個(gè)點(diǎn);第四扇區(qū)中的地址為2600h2612h用于存儲(chǔ)第三組用戶存儲(chǔ)數(shù)據(jù)的10個(gè)點(diǎn);第五
47、扇區(qū)中的地址為2800h2812h用于存儲(chǔ)第一組用戶存儲(chǔ)數(shù)據(jù)的10個(gè)點(diǎn)。更改存儲(chǔ)數(shù)據(jù)所使用的方法是先將所需更改數(shù)據(jù)所在的扇區(qū)的所有點(diǎn)寄存在數(shù)組中,將更改的點(diǎn)數(shù)據(jù)替換掉數(shù)組中對(duì)應(yīng)所需更改的點(diǎn),然后擦除該扇區(qū),最后一次將數(shù)組中的所有點(diǎn)寫(xiě)入扇區(qū)。具體程序?yàn)椋簊fr iap_data = 0xe2;sfr iap_addrh =0xe3;sfr iap_addrl=0xe4;sfr iap_cmd=0xe5;sfr iap_trig=0xe6;sfr iap_contr=0xe7;uchar byte_read(uint add);/讀一字節(jié),調(diào)用前需打開(kāi)iapvoid byte_program(ui
48、nt add,uchar ch);/字節(jié)編程,調(diào)用前需打開(kāi)iapvoid sector_erase(uint add);/擦除扇區(qū)void iap_disable();/關(guān)閉iap4.6蜂鳴器程序本系統(tǒng)在兩種情況下會(huì)有蜂鳴器發(fā)聲提示:1) 當(dāng)用戶有按鍵按下時(shí),為了提示用戶按鍵被按下蜂鳴器會(huì)發(fā)出聲音。2) 當(dāng)十字工作臺(tái)運(yùn)行到用戶指定的坐標(biāo)后,蜂鳴器會(huì)發(fā)出聲音提示用戶到達(dá)目標(biāo)。如圖4.6 所示為蜂鳴器程序流程圖:圖4.6 蜂鳴器程序流程圖當(dāng)用戶按下按鍵時(shí)置位次數(shù)標(biāo)記為20,在定時(shí)器中斷中將蜂鳴器對(duì)應(yīng)電平每隔1ms(即蜂鳴器頻率為1000hz)取反一次,并將次數(shù)標(biāo)記減一,直至次數(shù)標(biāo)記為0退出蜂鳴器程
49、序。同樣,當(dāng)工作臺(tái)運(yùn)行到指定位置后置位蜂鳴器次數(shù)標(biāo)記為20,以同樣頻率發(fā)聲,直至結(jié)束。具體程序?yàn)椋篿f(key!=keycheck() shy=20;/按鍵被按下if(maichong=0) shy=20;/運(yùn)行脈沖發(fā)射完畢if(shy) fmq=!fmq; shy-; /電平取反,次數(shù)標(biāo)記減一4.7 中斷服務(wù)程序本系統(tǒng)用到外部中斷0、定時(shí)器中斷0和定時(shí)器中斷1。外部中斷0服務(wù)流程圖如圖4.7 所示,外部中斷0是當(dāng)系統(tǒng)處于手搖狀態(tài)時(shí)打開(kāi),設(shè)定手搖脈沖發(fā)生器的a相信號(hào)的下降沿觸發(fā),外部中斷觸發(fā)的次數(shù)同樣記錄了a相脈沖的周期。在進(jìn)入中斷時(shí)要及時(shí)記錄下b相信號(hào)的電平這決定了驅(qū)動(dòng)步進(jìn)電機(jī)的正反轉(zhuǎn)信號(hào)。
50、圖4.7 外部中斷0流程圖定時(shí)器0中斷服務(wù)流程圖如圖4.8 所示,它用于完成定時(shí)器/計(jì)數(shù)器0 溢出中斷次數(shù)的定時(shí),系統(tǒng)設(shè)定每隔1 ms 中斷一次,1ms為一個(gè)基準(zhǔn)定時(shí),此時(shí)若蜂鳴器開(kāi)啟則取反一次,累加count0。當(dāng)count0=10時(shí),說(shuō)明系統(tǒng)已經(jīng)走過(guò)了10ms,系統(tǒng)判斷一次鍵盤(pán)是否被按下(主要用于鍵盤(pán)消抖),并累加count1;當(dāng)count1等于20時(shí),說(shuō)明此時(shí)系統(tǒng)已經(jīng)走過(guò)了200ms,此時(shí)刷新一次屏幕。圖4.8 定時(shí)器0中斷服務(wù)流程圖第 5 章 制作調(diào)試與結(jié)果分析5.1調(diào)試本次設(shè)計(jì)主要分為硬件調(diào)試和軟件調(diào)試兩部分。按照本系統(tǒng)所需各個(gè)硬件模塊綜合硬件調(diào)試和軟件調(diào)試兩個(gè)方面又可分為單片機(jī)最小
51、系統(tǒng)調(diào)試、蜂鳴器調(diào)試、按鍵調(diào)試、液晶調(diào)試、步進(jìn)電機(jī)調(diào)試、手搖脈沖發(fā)生器調(diào)試等。本次設(shè)計(jì)的調(diào)試方式采用硬件模塊化調(diào)試,具體方法如下。首先進(jìn)行的是單片機(jī)最小系統(tǒng)調(diào)試,考慮到單片機(jī)最小系統(tǒng)調(diào)試沒(méi)有比較明顯的現(xiàn)象,因此將單片機(jī)最小系統(tǒng)調(diào)試和蜂鳴器調(diào)試一起進(jìn)行。根據(jù)電路圖將晶振電路和復(fù)位電路與單片機(jī)的相應(yīng)引腳連接,將蜂鳴器與單片機(jī)的p3.6腳相連。燒寫(xiě)一個(gè)用定時(shí)器控制蜂鳴器發(fā)聲的程序文件,檢測(cè)電路連接情況。其次進(jìn)行按鍵調(diào)試。根據(jù)電路圖將4*4矩陣按鍵的引腳與單片機(jī)的相應(yīng)引腳相連。因?yàn)樯弦徊降恼{(diào)試已經(jīng)接入了蜂鳴器,所以可以燒寫(xiě)一個(gè)掃描按鍵后取鍵值并可使蜂鳴器發(fā)出不同次數(shù)聲音的程序文件,用來(lái)檢測(cè)按鍵的連接情
52、況。再次進(jìn)行液晶調(diào)試。根據(jù)電路圖將液晶的引腳與單片機(jī)相應(yīng)的引腳相連。燒寫(xiě)一個(gè)可根據(jù)不同按鍵顯示不同液晶畫(huà)面的程序文件,檢測(cè)液晶的連接情況。然后進(jìn)行步進(jìn)電機(jī)調(diào)試。根據(jù)步進(jìn)電機(jī)說(shuō)明書(shū)及電路圖將步進(jìn)電機(jī)與驅(qū)動(dòng)器連接,驅(qū)動(dòng)器的相應(yīng)引腳與單片機(jī)的相應(yīng)引腳連接。燒寫(xiě)一個(gè)可以根據(jù)鍵值的不同控制步進(jìn)電機(jī)正轉(zhuǎn)或反轉(zhuǎn)的程序,檢測(cè)步進(jìn)電機(jī)的連接情況。最后進(jìn)行手搖脈沖發(fā)生器調(diào)試。根據(jù)電路圖將手搖脈沖發(fā)生器的相應(yīng)引腳與單片機(jī)的相應(yīng)引腳相連。燒寫(xiě)一個(gè)可以掃描手搖脈沖發(fā)生器檔位和倍率并驅(qū)動(dòng)步進(jìn)電機(jī)進(jìn)行相應(yīng)轉(zhuǎn)動(dòng)的程序,檢測(cè)手搖脈沖發(fā)生器的連接情況。5.2結(jié)果分析本次設(shè)計(jì)實(shí)現(xiàn)了通過(guò)步進(jìn)電機(jī)控制工作臺(tái)的點(diǎn)動(dòng)控制、手搖脈沖發(fā)生器的
53、控制、給定終點(diǎn)的直線插補(bǔ)以及簡(jiǎn)單的在線示教功能。其中點(diǎn)動(dòng)控制需要在狀態(tài)處于點(diǎn)動(dòng)狀態(tài)時(shí),一直按住相應(yīng)的方向鍵工作臺(tái)才會(huì)向固定的方向勻速移動(dòng),若松手則工作臺(tái)停止移動(dòng)。當(dāng)狀態(tài)處于手搖時(shí),首先要選擇手搖脈沖發(fā)生器的檔位以及倍率,然后通過(guò)控制手柄的正轉(zhuǎn)以及反轉(zhuǎn)達(dá)到控制工作臺(tái)移動(dòng)的目的。若系統(tǒng)處于輸入狀態(tài),則根據(jù)液晶提示輸入x、y終點(diǎn)坐標(biāo)后按下確定鍵,工作臺(tái)將向所輸入的終點(diǎn)坐標(biāo)以直線插補(bǔ)的方式移動(dòng)。在線示教功能需要先根據(jù)提示選擇好所要示教的點(diǎn)的順序,按下確定鍵后,工作臺(tái)將按照順序以直線插補(bǔ)的方式依次運(yùn)行到各個(gè)點(diǎn)。液晶屏的第一行實(shí)時(shí)顯示工作臺(tái)所處位置,當(dāng)工作臺(tái)在非手搖狀態(tài)下運(yùn)行時(shí),液晶屏?xí)?shí)時(shí)顯示移動(dòng)速度。
54、工作臺(tái)上安裝了四個(gè)行程開(kāi)關(guān)可以控制工作臺(tái)的工作范圍???結(jié)這次設(shè)計(jì)對(duì)于我來(lái)說(shuō)是一個(gè)歷時(shí)最長(zhǎng)、工作量最大、所用到的知識(shí)最多的一次作業(yè)。本次設(shè)計(jì)共計(jì)歷時(shí)20周,前兩周主要進(jìn)行了畢業(yè)設(shè)計(jì)的選題、查閱課題相關(guān)資料并且明確設(shè)計(jì)的任務(wù),第3周到6周主要完成了課題的文獻(xiàn)綜述和相關(guān)外文文獻(xiàn)的翻譯并形成設(shè)計(jì)的基本方案,第7到12周做了開(kāi)題報(bào)告和總體設(shè)計(jì)方案的論證,第13到15周進(jìn)行了購(gòu)買所需元器件并制作單元電路的工作,第16到20周完成了軟硬件的系統(tǒng)調(diào)試和基本性能指標(biāo)的測(cè)試。之所以說(shuō)工作量最大是因?yàn)椴粌H要在指導(dǎo)老師的輔導(dǎo)下完成文獻(xiàn)綜述、外文翻譯、開(kāi)題報(bào)告、設(shè)計(jì)方案的論證、元器件的選購(gòu)及單元電路的焊接,還要對(duì)各個(gè)
55、本不相干的電路模塊進(jìn)行綜合形成系統(tǒng)達(dá)到設(shè)計(jì)的要求。粗率統(tǒng)計(jì),本次設(shè)計(jì)用到了最基本的單片機(jī)的編程、矩陣鍵盤(pán)的取值、步進(jìn)電機(jī)的驅(qū)動(dòng)、手搖脈沖發(fā)生器的鑒相、液晶的驅(qū)動(dòng)等知識(shí)。這些知識(shí)獨(dú)立完成是一個(gè)知識(shí)層面,但是把它們整合到一個(gè)系統(tǒng)中具有環(huán)環(huán)相扣的聯(lián)系更是達(dá)到了另一個(gè)知識(shí)高度。這次設(shè)計(jì)對(duì)我來(lái)說(shuō)的確有很大的難度,但是最終經(jīng)過(guò)我的不謝努力還是基本完成了設(shè)計(jì)要求,更加激發(fā)了我對(duì)于單片機(jī)實(shí)現(xiàn)自動(dòng)化的興趣,并且加深了關(guān)于單片機(jī)方面知識(shí)的認(rèn)識(shí)和理解。明白了對(duì)于單片機(jī)的學(xué)習(xí)不能僅僅停留在書(shū)本上,而應(yīng)將其應(yīng)用到實(shí)踐中,這也是我們?yōu)槭裁匆獙W(xué)習(xí)的原因之一。雖然可以毫不謙虛的說(shuō)我完成了基本的設(shè)計(jì)要求,但是我也明白自己的設(shè)計(jì)還不夠完美,還有許多地方需要改進(jìn),所以在今后的生活及工作中要繼續(xù)學(xué)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版房地產(chǎn)買賣合同擔(dān)保及產(chǎn)權(quán)轉(zhuǎn)移范本3篇
- 2025版農(nóng)業(yè)科技股份收購(gòu)與農(nóng)產(chǎn)品品牌合作合同3篇
- 2025年高標(biāo)準(zhǔn)住宅小區(qū)水電安裝及售后服務(wù)合同2篇
- 2025年銷售薪資與銷售團(tuán)隊(duì)激勵(lì)合同3篇
- 桶裝水銷售合同中的質(zhì)量糾紛處理2025年度3篇
- 2025版事業(yè)單位職工食堂職工餐飲滿意度調(diào)查與分析承包合同3篇
- 2025版司機(jī)雇傭服務(wù)質(zhì)量監(jiān)督與考核合同3篇
- 2025版標(biāo)準(zhǔn)二手車鑒定評(píng)估師服務(wù)合同3篇
- 二零二五版門(mén)頭廣告位招商與運(yùn)營(yíng)管理合同4篇
- 2025版?zhèn)€人小額教育貸款抵押擔(dān)保協(xié)議3篇
- 油氣行業(yè)人才需求預(yù)測(cè)-洞察分析
- 《數(shù)據(jù)采集技術(shù)》課件-Scrapy 框架的基本操作
- 高一化學(xué)《活潑的金屬單質(zhì)-鈉》分層練習(xí)含答案解析
- 華為集團(tuán)干部管理
- 圖書(shū)館前臺(tái)接待工作總結(jié)
- 衛(wèi)生院藥品管理制度
- 理論力學(xué)智慧樹(shù)知到期末考試答案章節(jié)答案2024年中國(guó)石油大學(xué)(華東)
- 2024老年人靜脈血栓栓塞癥防治中國(guó)專家共識(shí)(完整版)
- 四年級(jí)上冊(cè)脫式計(jì)算100題及答案
- 上海市12校2023-2024學(xué)年高考生物一模試卷含解析
- 儲(chǔ)能電站火災(zāi)應(yīng)急預(yù)案演練
評(píng)論
0/150
提交評(píng)論