二維云臺的結(jié)構(gòu)設(shè)計和運動仿真
真誠為您提供優(yōu)質(zhì)參考資料,若有不當之處,請指正。武漢紡織大學(xué)畢業(yè)設(shè)計(論文)任務(wù)書課題名稱: 二維云臺結(jié)構(gòu)設(shè)計與運動仿真 完成期限:2011年 月 日至2011年 月 日院系名稱 高等職業(yè)技術(shù)學(xué)院 指導(dǎo)教師 劉祥燕 專業(yè)班級 機電一體化091班 指導(dǎo)教師職稱 講師 學(xué)生姓名 胡廷艦 學(xué)號:0911282049院系畢業(yè)設(shè)計(論文)工作領(lǐng)導(dǎo)小組組長簽字 1 / 58摘 要安全監(jiān)控是隨著人們生活生產(chǎn)需求應(yīng)運而生的一項安全技術(shù),安防系統(tǒng)由前端、傳輸、信息處理/控制/顯示/通信三大單元組成。云臺系統(tǒng)作為前端轉(zhuǎn)動控制部件,在整個系統(tǒng)中起到非常重要的作用。云臺分為固定云臺和電動云臺,固定云臺適用于監(jiān)視范圍不大的情況,在固定云臺上安裝好攝像機后可調(diào)整攝像機的水平和俯仰的角度,達到最好的工作姿態(tài)后只要鎖定調(diào)整機構(gòu)就可以了。電動云臺適用于對大范圍進行掃描監(jiān)視,它可以擴大攝像機的監(jiān)視范圍。目前這兩類云臺廣泛應(yīng)用于各種場所,固定云臺適用于小范圍的監(jiān)視;電動云臺適用于對大范圍進行掃描監(jiān)視,它可以擴大攝像機的監(jiān)視范圍。電動云臺是由兩臺執(zhí)行電動機來實現(xiàn),電動機接受來自控制器的信號精確地運行定位。在控制信號的作用下,云臺上的攝像機既可自動掃描監(jiān)視區(qū)域,也可在監(jiān)控中心值班人員的操縱下跟蹤監(jiān)視對象。步進電機作為云臺的轉(zhuǎn)動器件,它的工作可靠性直接影響了云臺的質(zhì)量。此次我們設(shè)計的是一個基于AT89S52單片機的云臺控制裝置。本裝置能自動或手動的進行上下移動和水平轉(zhuǎn)動。當角度或高度超過預(yù)先設(shè)定的限位時,云臺停止轉(zhuǎn)動并進行聲光報警,并且能自動的對某一范圍內(nèi)的光源進行跟蹤,實現(xiàn)準確的定位,當超過預(yù)設(shè)范圍時,自動報警。其中通過鍵盤按鍵實現(xiàn)云臺自動和手動控制的切換,用LM297和LM298集成芯片驅(qū)動步進電機,采用L7805CV和L7812CV芯片作為三端集成線性穩(wěn)壓電源,用LCD液晶顯示屏精確的顯示云臺當前的位置。關(guān)鍵詞:云臺控制; AT89S52單片機; LCD液晶屏; 步進電機; 定位ABSTRACTSummary security monitoring is as people live production needs have emerged as a security technology, security system consists of a front-end information processing/display/control/communications, transmission, composed of three units. Pan/Tilt systems as a front end turning control part, played an important role throughout the system. PTZ is divided into fixed dome and electric cloud, fixed dome apply for monitoring small, fixed cloud platform installed cameras after a good level and pitch angle of the camera can be adjusted, to achieve the best attitude adjustment as long as the lock after agencies working on it. Electric head scan monitor applies to a wide range, it can expand the cameras monitor range. Currently these two types of cloud platform widely used in various places, fixed dome apply to small-scale monitoring; electrical head scan monitor applies to a wide range, it can expand the cameras monitor range. Electric head is implemented by the two force motor, motor accepts signals from the controller to run precise positioning. Under the action of control signals, cloud on the camera can automatically scan monitoring area, also available at the control centre duty officer manipulated by tracking and monitoring of objects. As head of stepping motor rotation device, reliability of its work directly affects the quality of pan/tilt. This we will design a PTZ control device based on AT89S52 microcontroller. The appliance can automatically or manually moved up and down and horizontal rotation. When the angle or height exceeds a predetermined limit position, head stop and sound and light alarm, and automatically track on a range of light sources, for accurate positioning when you exceed a preset range, auto alarm. Through the keyboard pressed key realization of automatic and manual control for pan/tilt switch, LM297 and LM298 integrated chip driving stepping motor, use L7805CV and L7812CV chips as a three-Terminal integrated linear regulated power supply, LCD liquid crystal display precise PTZ current location is displayed. Key words: pan/tilt control; AT89S52 microcontroller and LCD flat panel screens; stepper motor; positioning目 錄1 緒論31.131.241.351.4 設(shè)計任務(wù)的提出和主要研究內(nèi)容62 振動下料機的工作原理及基本結(jié)構(gòu)6383.183.283.393.3.193.3.2103.4113.4.1113.4.2123.4.3124165195.1195.2205.2.1205.2.2215.2.3215.2.4225.2.5235.2.6236236.1236.2257257.1257.2278 總結(jié)展望29參考文獻30附 錄32外文資料35中文翻譯49致 謝62緒 論安全監(jiān)控是隨著人們生活生產(chǎn)需求應(yīng)運而生的一項安全技術(shù),安防系統(tǒng)由前端、傳輸、信息處理/控制/顯示/通信三大單元組成。云臺系統(tǒng)作為前端轉(zhuǎn)動控制部件,在整個系統(tǒng)中起到非常重要的作用。攝像機云臺是一種安裝在攝像機支撐物上的工作平臺,用于攝像機與支撐物之間的連接,同時它具有水平和垂直運動的功能,在云臺水平、垂直運動的同時,它也帶動攝像機做相同的運動,這樣就可以通過控制云臺的運動來控制攝像機的運動,它與攝像機配套使用能達到擴大監(jiān)視范圍的目的,提高了攝像機的使用價值。云臺分為固定云臺和電動云臺,固定云臺適用于監(jiān)視范圍不大的情況,在固定云臺上安裝好攝像機后可調(diào)整攝像機的水平和俯仰的角度,達到最好的工作姿態(tài)后只要鎖定調(diào)整機構(gòu)就可以了。電動云臺適用于對大范圍進行掃描監(jiān)視,它可以擴大攝像機的監(jiān)視范圍。目前這兩類云臺廣泛應(yīng)用于各種場所,固定云臺適用于小范圍的監(jiān)視;電動云臺適用于對大范圍進行掃描監(jiān)視,它可以擴大攝像機的監(jiān)視范圍。電動云臺是由兩臺執(zhí)行電動機來實現(xiàn),電動機接受來自控制器的信號精確地運行定位。在控制信號的作用下,云臺上的攝像機既可自動掃描監(jiān)視區(qū)域,也可在監(jiān)控中心值班人員的操縱下跟蹤監(jiān)視對象。步進電機作為云臺的轉(zhuǎn)動器件,它的工作可靠性直接影響了云臺的質(zhì)量。目前國內(nèi)外的云天控制技術(shù)系統(tǒng)已經(jīng)相當?shù)某墒欤o人們的生產(chǎn)生活帶來了極大的便利,為人們的生命財產(chǎn)安全提供了相當大的保障。云臺系統(tǒng)已經(jīng)運用到了生活的幾乎每一個場所,當需要對某個地方進行實時監(jiān)控時,就可以很方便的運用其代替人力,很大程度上降低了人力資源,并且還可以根據(jù)需要進行遠程監(jiān)控,這一點在生活中是及其有利的,它很大程度上節(jié)約了時間。目前市面上所生產(chǎn)的云臺控制器,大都采用一體化設(shè)計,這種設(shè)計方法具有密封性能好、集成度高便于安裝等優(yōu)點。1.1系統(tǒng)設(shè)計目的在實時監(jiān)控、在線直播、公安、教育等許多領(lǐng)域都需要用到計算機控制云臺動作及攝像機鏡頭的焦距、景深、光圈。云臺是一種設(shè)備,專門用于監(jiān)控時調(diào)整攝像頭位置。攝像頭安裝于云臺之上,通過開關(guān)電源,就可實現(xiàn)攝像頭在垂直方向進行俯仰運動、水平方向進行擺動,從而調(diào)整監(jiān)視位置。云臺鏡頭控制系統(tǒng)除了控制攝像頭的俯仰和水平運動控制外,通常還要控制電子鏡頭(安裝于攝像頭前端、電機控制的光學(xué)鏡頭)的聚焦、光圈和變倍等,以便調(diào)整視野范圍和清晰度。能夠很好的進行實時監(jiān)控和精確定位。本次設(shè)計注重對單片機工作原理以及鍵盤控制及顯示原理的理解和應(yīng)用,以便今后自己在單片機領(lǐng)域的學(xué)習(xí)和開發(fā)打下基礎(chǔ),提高自己的動手能力和設(shè)計能力,培養(yǎng)創(chuàng)新能力,豐富自己的理論知識,做到理論和實踐相結(jié)合。本次設(shè)計的重要意義還在于對單片機的內(nèi)部結(jié)構(gòu)和工作狀態(tài)做更進一步的了解,同時還對單片機的接口技術(shù),中斷技術(shù),存儲方式和控制方式作更深層次的了解。此次設(shè)計更進一步了解基本電路的設(shè)計流程,提高自己的設(shè)計理念,豐富自己的理論知識,鞏固所學(xué)知識,使自己的動手動腦能力有更進一步提高,為自己今后的學(xué)習(xí)和工作打好基礎(chǔ),為自己的專業(yè)技能打好基礎(chǔ)。1.2 系統(tǒng)設(shè)計思想本次所設(shè)計的云臺控制系統(tǒng),在一定范圍內(nèi),能完成垂直方向的移動和水平方向的轉(zhuǎn)動,從而達到對目標的實時跟蹤和精確定位。本設(shè)計中我們用at89s52單片機進行控制,通過鍵盤可以實現(xiàn)手動云臺控制,使其做垂直方向的上下移動60cm和水平方向的左右轉(zhuǎn)動60度;通過按鍵實現(xiàn)云臺自動和手動控制的切換,當切換到自動檔時,能使云臺自動跟蹤某一可見光源(40W燈泡),用步進電機進行調(diào)速。根據(jù)設(shè)計的思想,所畫的系統(tǒng)總體框圖如下所示:圖一 系統(tǒng)整體框圖主控芯片為AT89S52,采用4*4鍵盤,其上不同的按鍵代表不同的功能;采用紅外進行光源檢測,采用LCD液晶顯示屏進行顯示,用LM297和LM298集成芯片驅(qū)動步進電機,采用L7805CV和L7812CV芯片作為三端集成線性穩(wěn)壓電源。該云臺有兩個電機(一大一?。謩e負責云臺的上下和左右方向的轉(zhuǎn)動。其工作電壓的不同也決定了該云臺的整體工作電壓,我們使用了直流5V和直流12V。當進行上、下動作時,大的電機轉(zhuǎn)動,經(jīng)滑輪帶動云臺垂直動作;當進行左、右動作時,小電機轉(zhuǎn)動直接帶動云臺底部滑輪轉(zhuǎn)動。1.3 系統(tǒng)設(shè)計方案(一)系統(tǒng)設(shè)計方案的提出本設(shè)計是基于AT89S52單片機的鍵盤控制及顯示電路設(shè)計,從系統(tǒng)的設(shè)計功能上看,系統(tǒng)可分為四大部分,即數(shù)字顯示部分、控制移動或轉(zhuǎn)動部分、電源部分和電機驅(qū)動部分,對于每一個部分都有不同的設(shè)計方案,起初我們組擬訂了下面兩種方案:1.數(shù)字顯示部分(1) 采用LED 數(shù)碼管顯示,利用多個數(shù)碼管來顯示數(shù)字。(2)LCD液晶屏顯示。2.控制移動或轉(zhuǎn)動部分(1)用按鍵控制動作。(2)用4*4鍵盤控制動作。3電源部分:(1)購買開關(guān)電源。(2)自制電源。4.電機驅(qū)動部分(1)用交流電機。(2)用直流步進電機,采用集成芯片LM298與LM297組成驅(qū)動電路。(二) 方案比較及確定(1)若用LED數(shù)碼管顯示,LED數(shù)碼管亮度高、小巧輕便,但是電路復(fù)雜,顯示信息量較小;LCD的優(yōu)點是:工作電流較小、功耗很低,而且可以清晰顯示大量信息,趣味性強。所以選用LCD液晶顯示。(2)對于控制移動或轉(zhuǎn)動部分用第一種方案實現(xiàn)原理太簡單,用第二種方案使用鍵盤控制,易于控制,操作簡單、方便,故選用第二種方案。(3)購買的開關(guān)電源帶負載的能力比較好,比較穩(wěn)定,但是為了提升自己的動手能力,我們選擇自己焊接所需的電路。(4)若用交流電機,轉(zhuǎn)動速度固定,一般為水平轉(zhuǎn)動速度為4/秒6/秒,垂直轉(zhuǎn)動速度為3/秒6/秒。其缺點是無法大電流驅(qū)動.降低了工作效率且不容易實現(xiàn)。若選用集成芯片LM298驅(qū)動直流步進電機,具有轉(zhuǎn)速高、可變速的優(yōu)點,十分適合需要快速捕捉目標的場合。其水平最高轉(zhuǎn)速可達4050/秒,垂直可達1024/秒。這種電路通過芯片產(chǎn)生正反向電壓.用于控制云臺的運行方向開啟,運行.實現(xiàn)對云臺電機運轉(zhuǎn)狀態(tài)的控制.從而保證了可以簡單地實現(xiàn)轉(zhuǎn)速和方向的控制:開關(guān)速度很快.穩(wěn)定性極強.效率也非常高?;谏鲜隹紤].我們擬選用方案二。1.4創(chuàng)新性、實用性、可行性本裝置的研制是在控制領(lǐng)域的新應(yīng)用,該云臺控制裝置,不僅能自動或手動的進行上下移動和水平轉(zhuǎn)動,而且能夠?qū)Ω叨群徒嵌冗M行任意的設(shè)置,而且能對某些信號進行跟蹤,從而實現(xiàn)一定范圍內(nèi)的定位,并且當超過預(yù)設(shè)范圍時還具有自動報警的功能。本裝置采用LCD液晶進行顯示,顯示的內(nèi)容豐富。本裝置有很好的固定裝置而且價格便宜、操作簡單靈活。無論是用于實時監(jiān)控,還是電視臺的在線直播,該云臺控制裝置都是不錯的選擇。該系統(tǒng)的設(shè)計很好的滿足了各行業(yè)的需求,是一個理想的智能化的設(shè)計,還能夠?qū)π盘栠M行跟蹤,功能較多,造價低,應(yīng)用非常廣泛。該系統(tǒng)的設(shè)計為人們提供了方便,同時又擴大了單片機的應(yīng)用領(lǐng)域。我們利用電機拖動和數(shù)字電路的知識設(shè)計了云臺控制裝置,該控制裝置的設(shè)計采用模塊化結(jié)構(gòu),采用AT89S52單片機芯片作為中央處理芯片,用LM297和LM298集成芯片驅(qū)動步進電機,采用L7805CV和L7812CV芯片作為三端集成線性穩(wěn)壓電源,采用LCD進行顯示。從理論技術(shù)上來看,本系統(tǒng)具有可行性。第4章 系統(tǒng)硬件設(shè)計根據(jù)系統(tǒng)要實現(xiàn)的功能,本系統(tǒng)分為五個模塊:穩(wěn)壓模塊、驅(qū)動模塊、鍵盤模塊、顯示模塊和控制模塊。分別將各單元模塊功能介紹如下:2.2.1穩(wěn)壓模塊穩(wěn)壓電源模塊我們采用三端集成線性穩(wěn)壓集成塊:L7805CV和L7812CV芯片。本設(shè)計中我們所需的5V電源使用L7805CV芯片完成。因為它的外圍電路比較簡單,并且工作比較穩(wěn)定。它的穩(wěn)壓精度為2%,工作電流1.5A,封裝為TO-220(A),工作溫度也很不錯,并且具有過溫保護和短路保護,最大輸入電壓為35V,能對電路的長時間工作有很大的保障,故用其作為穩(wěn)壓芯片。所需的12V電源我們使用L7812CV芯片完成。2.2.2驅(qū)動模塊步進電機是數(shù)字控制系統(tǒng)中的一種重要執(zhí)行元件,廣泛應(yīng)用于各種控制系統(tǒng)中。 步進電機的驅(qū)動電路一般由兩部分組成,一部分是數(shù)字邏輯部分,即環(huán)行脈沖分配器,它決定步進電機各項繞組的通電順序。 另一部分是功率放大部分,它提供步進電機所需要的功率設(shè)計中我們采用集成芯片LM298和LM297組成驅(qū)動電路,選用集成芯片LM298驅(qū)動直流步進電機,是因為其具有轉(zhuǎn)速高、可變速的優(yōu)點,十分適合需要快速捕捉目標的場合。其水平最高轉(zhuǎn)速可達4050/秒,垂直可達1024/秒。這種電路通過芯片產(chǎn)生正反向電壓.用于控制云臺的運行方向。實現(xiàn)對云臺電機運轉(zhuǎn)狀態(tài)的控制.從而保證了可以簡單地實現(xiàn)轉(zhuǎn)速和方向的控制。開關(guān)速度很快,穩(wěn)定性極強,效率也非常高。該驅(qū)動電路既可以驅(qū)動步進電機也可驅(qū)動直流電機,原理圖如下所示:圖二 步進電機驅(qū)動原理圖該電路結(jié)構(gòu)簡單,可靠性高,可與單片機直接連接,對兩相永磁式步進電機具有很好的驅(qū)動和控制能力。2.2.3鍵盤模塊本系統(tǒng)中,由于按鍵較多,為了減少I/O口的占用,我們采用4*4鍵盤。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。這樣,一個端口(如P1口)就可以構(gòu)成4*4=16個按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構(gòu)成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵)。由此可見,在需要的鍵數(shù)比較多時,采用矩陣法來做鍵盤是合理的。右圖為4*4矩陣鍵盤圖: 4*4矩陣鍵盤圖結(jié)合鍵盤矩陣圖,將各按鍵的功能列表如下:按鍵編號按鍵功能1數(shù)字12數(shù)字23數(shù)字34數(shù)字45數(shù)字56數(shù)字67數(shù)字78數(shù)字89數(shù)字90數(shù)字0/跳出右轉(zhuǎn)左轉(zhuǎn)下降上調(diào)=復(fù)位/停止ON/C切換模式右圖是一個4*4鍵盤的接線圖: 矩陣式結(jié)構(gòu)的鍵盤顯然比直接法要復(fù)雜一些,識別也要復(fù)雜一些,上圖中,列線通過電阻接正電源,并將行線所接的單片機的I/O口作為輸出端,而列線所接的I/O口則作為輸入。這樣,當按鍵沒有按下時,所有的輸出端都是高電平,代表無鍵按下。行線輸出是低電平,一旦有鍵按下,則輸入線就會被拉低,這樣,通過讀入輸入線的狀態(tài)就可得知是否有鍵按下了。通過鍵盤模塊,我們可以對當前狀態(tài)任意的進行設(shè)置和清零。比如設(shè)置上移、下移、左轉(zhuǎn)、右轉(zhuǎn)、停止報警等。2.2.4顯示模塊本系統(tǒng)我們采用LCD液晶顯示屏進行顯示。LCD為英文Liquid Crystal Display的縮寫,即液晶顯示器,是一種數(shù)字顯示技術(shù),可以通過液晶和彩色過濾器過濾光源,在平面面板上產(chǎn)生圖象。液晶的物理特性是:當通電時導(dǎo)通,排列變的有秩序,使光線容易通過;不通電時排列混亂,阻止光線通過。讓液晶如閘門般地阻隔或讓光線穿透。從技術(shù)上簡單地說,液晶面板包含了兩片相當精致的無鈉玻璃素材,稱為Substrates,中間夾著一層液晶。當光束通過這層液晶時,液晶本身會排排站立或扭轉(zhuǎn)呈不規(guī)則狀,因而阻隔或使光束順利通過。大多數(shù)液晶都屬于有機復(fù)合物,由長棒狀的分子構(gòu)成。在自然狀態(tài)下,這些棒狀分子的長軸大致平行。將液晶倒入一個經(jīng)精良加工的開槽平面,液晶分子會順著槽排列,所以假如那些槽非常平行,則各分子也是完全平行的。LCD占用空間小,低功耗,低輻射,無閃爍,降低視覺疲勞。在系統(tǒng)中,LCD主要進行高度和角度的顯示。2.2.5 控制模塊 本設(shè)計的所用的單片機系統(tǒng)其實就是單片機最小系統(tǒng),所謂最小系統(tǒng)就是能是單片機正常工作的最少配置。本此設(shè)計的單片機系統(tǒng)由AT89C52單片機、復(fù)位電路、時鐘電路和電源電路組成,如圖4-2所示。 圖4-2 單片機最小系統(tǒng)本設(shè)計中我們采用AT89S52單片機作為主控芯片,At89s52 是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲器。使用Atmel 公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52具有以下標準功能: 8k字節(jié)Flash,256字節(jié)RAM, 32 位I/O 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口, 片內(nèi)晶振及時鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU 停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。下圖即為AT89C52。圖4-1 AT89C52 3 系統(tǒng)軟件設(shè)計此云臺系統(tǒng)可分為手動和自動控制兩種模式,手動模式主要通過鍵盤來控制垂直和水平方向移動的距離和角度,自動模式則是依靠五個不同方向的接收管來檢測和跟蹤光源,各部分程序設(shè)計如下:3.1手動控制模式程序流程圖如下:部分程序:if(Mode=0)Temp=Key_Scan();Delay(40000);if(Temp<10)switch(flag)case0:Num=Temp;flag+;break;case1:Num=Num*10+Temp;break;elseswitch(Temp)case10:Up();break;case11:Down();break;case12:Left();break;case13:Right();break;case15:Mode=!Mode;break;default :break;3.2自動控制模式程序流程圖如下:部分程序:voidSearchLight() switch(DoubleLed) case0xfe:SearchLightUp(); break; case0xfd:SearchLightDown();break;case0xfb:SearchLightLeft();break;case0xf7:SearchLightRight();break;case0xfa:Up_Left();break;case0xf6:Up_Right();break;case0xf9:Down_Left();break;case0xf5:Down_Right();break;default:Stop();Display();break; 3.3 程序總流程圖 圖四 系統(tǒng)程序流程圖3.3 主函數(shù)程序#include"main.h"voidmain()Lcd_Init();Welcome();ChooseMode();while(1)if(Mode=0)Temp=Key_Scan();Delay(40000);if(Temp<10)switch(flag)case0:Num=Temp;flag+;break;case1:Num=Num*10+Temp;break;elseswitch(Temp)case10:Up();break;case11:Down();break;case12:Left();break;case13:Right();break;case15:Mode=!Mode;break;default :break;Display();else SearchLight();5.3 Proteus仿真軟件Proteus軟件是英國Lab Center Electronice公司開發(fā)的EDA工具軟件。從1989年問世至今已有20年的歷史,在全球得到廣泛應(yīng)用。Proteus軟件除具有和其他EDA工具軟件一樣的原理編輯、印制電路板制作外,還具有交互式的仿真功能。它不僅是模擬電路、數(shù)字電路、模/數(shù)混合電路的設(shè)計與仿真平臺,更是目前世界上最先進、最完整的多種型號微處理器系統(tǒng)的設(shè)計與仿真平臺,真正實現(xiàn)了在計算機中完成電路原理圖設(shè)計、電路分析與仿真、微處理器程序設(shè)計與仿真、系統(tǒng)測試與功能驗證到形成印制電路板的完整電子設(shè)計、研發(fā)過程。Proteus軟件由ISIS(Intelligent Schematic Input System)和ARES(Advanced Routing and Editing Software)兩個軟件構(gòu)成,其中ISIS是一款智能電路原理圖輸入系統(tǒng)軟件,可作為電子系統(tǒng)仿真平臺;ARES是一款高級布線編輯軟件,用于制作印制電路板(PCB)。Proteus電路原理圖設(shè)計是在ISIS軟件環(huán)境中進行繪制,該軟件編輯環(huán)境具有友好的交互式人機界面,其設(shè)計功能強大,使用方便。圖5-10為本設(shè)計原理圖,下面介紹用Proteus ISIS原理圖的繪制方法。 圖5-10 單片機系統(tǒng)控制電路圖1.新建設(shè)計文件首先打開ISIS 7 Professional窗口,單擊菜單命令“File”下的“New Design”,彈出如圖5-11所示的圖紙模板選擇窗口。 圖5-11 圖紙模板選擇窗口 橫向圖紙為Landscape,縱向 圖紙為Portrait,DEFAULT為默認模板。本設(shè)計中選用的“DEFAULT”,選中后再單擊“OK”,則新建了一個DEFAULT模板。新建一個模板后,單擊保存圖標進行保存。在彈出的對話框中,選擇保存在C盤“程序與仿真”目錄下,保存文件名為“l(fā)ijiansheji”。該文件的擴展名為.DSN,即該文件名為lijiansheji.DSN。文件保存后在ISIS 7 Professional窗口的標題欄上顯示為lijiansheji。2. 設(shè)定圖紙大小執(zhí)行菜單命令“System”下“Set Sheet Size”,在彈出的“Sheet Size Configura.”對話框中選擇“A4”選項,單擊“OK”按鈕,完成圖紙的設(shè)置。3. 添加元器件 本系統(tǒng)中使用的原件如表5-1所示。 表5-1 本設(shè)計中使用的原件單片機AT89C52步進電機MOTOR-STEEPER步進電機驅(qū)動ULN2003A虛擬終端串口COMPIM電解電容AUDIO 1U瓷片電容CAP 30pF電阻10K 1K 按鈕BUTTON 在器件選擇按鈕中單擊“P”按鈕,或執(zhí)行菜單命令“Library”下“Pick Device/Symbol”,彈出如圖5-12所示的對話框。在此對話框中,添加原件的方法有兩種。 圖5-12 “Pick Devices”對話框 圖5-13 輸入元件名稱(1) 在關(guān)鍵字中輸入原件的名稱,如AT89C52,則出現(xiàn)與關(guān)鍵字匹配的原件列表,如圖5-13所示,選中并雙擊AT89C52所在行后,單擊“OK”按鈕或按ENTER鍵,便將器件AT89C52加入到ISIS對象選擇器中。 (2)在原件類型列表中選擇元件所屬類,然后再元器件子類列表中選擇所屬子類;同時,當對元件的制造商有要求時,在制造商區(qū)域選擇期望的廠商,即可在元件列表區(qū)域得到相應(yīng)的元件。按照以上方法將元件添加到ISIS對象選擇器中。4. 放置、移動、旋轉(zhuǎn)、刪除對象將元件添加到ISIS對象選擇器中后,在對象選擇器中,單擊要放置的元件,藍色條出現(xiàn)在該元件名上,再在原理圖編輯窗口中單擊就放置了一個元件。也可以在按住鼠標左鍵的同時,移動鼠標,在合適的位置釋放左鍵,將元件放置在預(yù)定位置。在原理圖編輯窗口中,若要移動元件或連線,應(yīng)先右擊對象,是元件或連線處于選中狀態(tài)(默認為紅色),再按住鼠標左鍵拖動,元件或連線就跟隨指針移動,到達合適位置時,松開鼠標左鍵。放置元件前,單擊要放置的元件,藍色條出現(xiàn)在該元件上,單擊方向工具欄上相應(yīng)的轉(zhuǎn)向按鈕可旋轉(zhuǎn)元件,再在原理圖編輯窗口中單擊就放置了一個已經(jīng)更改方向的元件。若在原理圖編輯窗口中需要更改元件方向,應(yīng)單擊選中該元件再單擊塊旋轉(zhuǎn)圖標,在彈出的對話框中鍵入旋轉(zhuǎn)的角度也可實現(xiàn)更改元件方向。在原理圖編輯窗口中要刪除元件時,右鍵雙擊該元件就可刪除元件,或者先左擊選中元件,再按下Delete鍵也可刪除。通過放置、移動、旋轉(zhuǎn)、刪除原件后,將各元件放置在原理圖編輯窗口中的合適位置即可。5. 放置電源、地單擊工具箱中的“元件終端”圖標,在對象選擇器中單擊“POWER”,使得出現(xiàn)藍色條,再在原理圖編輯窗口的合適位置單擊鼠標就將電源放置在原理圖中。同樣的方法可將地放置在原理圖中。6.布線在ISIS原理圖編輯窗口中沒有專門的布線按鈕,但系統(tǒng)默認自動布線按鈕有效,因此可直接布線。1) 在兩個對象之間連線將光標靠近一個對象的引腳末端,該處自動出現(xiàn)一個紅色小方框,單擊左鍵。2)移動畫線、更改線型 步驟如下: (1)單擊鼠標左鍵選中連線,將指針靠近該畫線,該線出現(xiàn)雙箭頭。 (2)按住左鍵拖動鼠標,該線就跟隨移動。 (3)若要同時移動多根線,應(yīng)先框選這下線,再單擊塊移動按鈕,拖動鼠標,在合適位置單擊鼠標左鍵,就可改變線條的位置。7. 設(shè)置、修改元件屬性在需要修改的元件上右擊鼠標,在彈出的菜單中選擇“Edit Properties”或按快捷鍵Ctrl+E,將出現(xiàn)“Edit Properties”對話框,在此對話框中設(shè)置元件屬性。例如,修改電容為30pF,如圖5-14所示。 圖5-14 設(shè)置元件屬性根據(jù)以上步驟及方法在原理圖編輯窗口中繪制出如圖3-10所示電路圖。8. 建立網(wǎng)絡(luò)表網(wǎng)絡(luò)就是一個設(shè)計中有電氣連接的電路,例如在電路中,單片機的P2.0與ULN2003A的一個輸入腳連在一起。執(zhí)行菜單命令“Tools”下“Netlist Compiler”,彈出如圖4-15所示的對話框。在此對話框中,可設(shè)置網(wǎng)絡(luò)表的輸出形式、模式、范圍、深度和格式等,這里不進行修改,單擊“OK”按鈕以默認方式輸出如圖5-16所示內(nèi)容。 圖5-15網(wǎng)絡(luò)表設(shè)置對話框 圖5-16 輸出網(wǎng)絡(luò)表內(nèi)容9. 電氣檢測畫完電路并生成網(wǎng)絡(luò)表后,可進行電氣檢測。執(zhí)行菜單命令“Tools”下“Electrical Rule Check”,彈出如圖5-17所示的電氣檢測窗口。在此窗口中,前面是一些文本信息,接著是電氣檢測結(jié)果;若有錯,會有詳細的說明。從窗口內(nèi)容中科看出,網(wǎng)絡(luò)表已產(chǎn)生,并且無電氣錯誤。 圖5-17 電氣檢測窗口5.4 MSComm控件Microsoft Communication Control (簡稱MSComm)是Microsoft 公司提供的簡化Windows 下的串行通信編程的ActiveX 控件,為應(yīng)用程序提供了串口接收發(fā)送數(shù)據(jù)的簡便方法。MSComm 控件通過串行端口傳輸和接收數(shù)據(jù)為應(yīng)用程序提供串行通信功能。MSComm 提供了兩種處理通信問題的方法:一是事件驅(qū)動法,主要利用OnComm 事件捕獲并處理這些通信時間,也可以檢查和處理通信錯誤;二是詢法,在這種情況下,每當應(yīng)用程序執(zhí)行完一個串口操作后,將查看MSComm 控的CommEvent 屬性以確定執(zhí)行結(jié)果或者檢查某一事件是否發(fā)生。本設(shè)計中采用時間驅(qū)動法。5.4.1 基于VC的MSComm控件串口編程基本步驟(1)在建立的Workspace 中插入MSComm 控件;(2)添加MSComm 控件的ID 的控制變量; (3)對串口進行初始化,設(shè)置MSComm 控件的屬性; (4)添加串口事件消息處理函數(shù)OnComm()函數(shù),在函數(shù)中編寫數(shù)據(jù)處理代碼; (5)編寫串口發(fā)送等其它代碼;(6)關(guān)閉串口。5.4.2 MSComm控件屬性 MSComm 控件的屬性較多,下面簡單的介紹幾個比較重要的屬性:1)CommPort:設(shè)置或返回通信端口號。 2)Settings:設(shè)置并返回通信參數(shù),用來指定數(shù)據(jù)傳輸率(波特率)、奇偶校驗、數(shù)據(jù)位數(shù)和停止位數(shù)。 3)PortoPen:設(shè)置或返回通信端口的狀態(tài),屬性為True 時打開端口,F(xiàn)alse 則關(guān)閉端口,并清除接收和傳輸緩沖區(qū)。 4)OutPut:向傳輸緩沖區(qū)寫數(shù)據(jù),可以傳輸文本數(shù)據(jù)和二進制數(shù)據(jù)。 5)InPut:返回并刪除接收緩沖區(qū)中的數(shù)據(jù)。 6)InputLen:設(shè)置并返回Input 屬性從接收緩沖區(qū)讀取的字符數(shù),缺省值是0 表示用Input 讀取接收緩沖區(qū)中全部的容。 7)RthresholdSthreshold: 設(shè)置并返回引發(fā)OnComm 事件中接收發(fā)送的字符數(shù)。 8)OutBufferSizeInBufferSize:設(shè)置或返回傳輸 接收緩沖區(qū)大小。5.5 Visual C+軟件 1.建立一個基于對話框的MFC程序命名為MCUPC,設(shè)置好保存路徑。如圖5-18。MFC程序程序名字 圖5-18 創(chuàng)建新的應(yīng)用程序界面點擊OK,其它選為默認即可。2.進入對話框設(shè)計頁面,利用STATIC, BUTTON,圖像控件設(shè)計軟件界如圖5-19所示: 圖5-19 控制界面3.添加串口通信控件,過程如下:菜單Project-Add to Project-Conponents and Controls -Microsoft Communications Control, version 6.0.如圖5-20所示: 圖5-20 控制界面命名控件ID:IDC_MSCOMM1。為其添加對應(yīng)的對象命名為:m_mscomm。在其屬性設(shè)置如下,如圖5-21所示。 圖5-21 屬性設(shè)置對話框雙擊“打開串口”按鈕,添加函數(shù),OnBtnopen(),添加代碼實現(xiàn)串口的初始化,程序如下:m_mscomm.SetCommPort(2);/設(shè)置通信串口為COM2m_mscomm.SetRThreshold(1);/ 接收緩沖區(qū)有1個及1個以上字符時,將引發(fā)接收數(shù)據(jù)的/OnComm事件m_mscomm.SetPortOpen(TRUE);/打開串口雙擊“關(guān)閉串口”添加函數(shù),OnBtnclose (),添加關(guān)閉串的代碼:m_mscomm.SetPortOpen(FALSE);5,分別為“向上”“向下”“向左”“向右”,添加單擊響應(yīng)事件函數(shù):OnBtnup(),OnBtndown() OnBtnleft(),OnBtnright()添加代碼如下:void CMCUPCDlg:OnBtnup() /向上CString a;a=A;m_mscomm.SetOutput(COleVariant)a);/ 向串口發(fā)送“A”void CMCUPCDlg:OnBtndown() CString a;a="B"m_mscomm.SetOutput(COleVariant)a); /向串口發(fā)送“B”void CMCUPCDlg:OnBtnleft() CString a;a=C;m_mscomm.SetOutput(COleVariant)a); /向串口發(fā)送“C”void CMCUPCDlg:OnBtnright() CString a;a=D;m_mscomm.SetOutput(COleVariant)a); /向串口發(fā)送“D”void CMCUPCDlg:OnBtnauto()/向串口發(fā)送“Z”CString a;a="Z"m_mscomm.SetOutput(COleVariant)a);6.添加以上代碼后,編譯,運行,即可仿真。第6章 系統(tǒng)軟件設(shè)計6.1 系統(tǒng)流程整個云臺控制系統(tǒng)分為初始化,鍵盤掃描,串口中斷,延時程序和步進電機運轉(zhuǎn)五部分。主函數(shù)通過調(diào)用各子程序來實現(xiàn)鍵盤掃描,串口中斷程序的調(diào)用來實現(xiàn)步進電機的控制。本設(shè)計的系統(tǒng)主程圖如圖6-1所示,中斷子程序流程圖如圖6-2所示。 圖6-1 系統(tǒng)主流程圖圖6-2 中斷子程序流程圖6.2 初始化模塊所謂初始化就是在應(yīng)用系統(tǒng)中,需要對軟件進行初始化設(shè)置,以能夠滿足該系統(tǒng)的正常工作。在本系統(tǒng)中,如果沒有初始化,則該系統(tǒng)無法正常工作。本系統(tǒng)中初始化程序包括兩部分,一部分是定時器初始化,另一部分是串口初始化。而這些都是通過設(shè)置相應(yīng)的特殊功能寄存器來實現(xiàn)的。本設(shè)計中定時器初始化包括定時/計數(shù)器選擇、定時/技術(shù)器工作方式、計數(shù)器裝初值、打開定時器;串口初始化包括串口工作方式設(shè)置、打開串口、開總中斷。和定時/計數(shù)器有關(guān)的特殊功能寄存器有TOMD、TCON,和串口相關(guān)的特殊功能寄存器有SCON、PCON。前面已經(jīng)介紹了特殊功能寄存器,這里不再贅述。串口工作方式1的波特率由定時/計數(shù)器T1、T2的溢出速率和SMOD共同確定,計算公式為波特率=(/32)(TI溢出率),TI溢出率=fosc/12256(TH1),本系統(tǒng)波特率為9600bit/s,晶振頻率為11.0592MHz,串口選擇工作方式為1,所以初值等于0xfa。定時計數(shù)器的初始化編程步驟:1) 根據(jù)定時時間要求或計數(shù)要求計算初值;2) 工作方式控制字送TMOD;3) 送計數(shù)初值到THx和TLx寄存器中;4) 啟動定時/計數(shù)器,即將TRx置位。6.3 鍵盤模塊 綜合考慮,本設(shè)計單片機I/O資源比較豐裕,所以采用了獨立式鍵盤。獨立式鍵盤的每一個按鈕直接控制單片機的P0相連接,當其中有一個按鈕被按下時,PO口的相應(yīng)位就被置為高電平,沒有按下則為低電平。所以單片機只需要識別PO的值就可以做出相應(yīng)的動作。6.4 延時模塊通過用C語言寫一段循環(huán)程序,來占用CPU一段時間從而達到延時的目的。在該系統(tǒng)中,延時程序有至關(guān)重要的作用,一是作為普通的延時程序,而是產(chǎn)生步進電機的工作所需脈沖頻率,延時的多少決定步進電機的轉(zhuǎn)速,在本系統(tǒng)中,對步進電機的轉(zhuǎn)速沒有做過多要求,所以采用了for循環(huán)語句構(gòu)成的比較簡單的延時程序,如果對延時時間、步進電機轉(zhuǎn)速有要求的系統(tǒng)中,則可以使用定時器定時,定時器的精度相當高。下面是采用普通延時的程序源代碼:void delay(uint z)/延時 uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);6.5 串口中斷模塊在本系統(tǒng)中,單片機通過串口向單片機發(fā)送遠距離控制信號,一旦PC機發(fā)送控制信號后,單片機接受到信息產(chǎn)生中斷,通過中斷服務(wù)程序去控制步進電機動作。由于串口中斷具有優(yōu)先級別高的特點,所以不需要擔心鍵盤和串口信息發(fā)生沖突。6.6 步進電機動作模塊在本系統(tǒng)中,步進電機的運行方式選用的是單、雙8拍運行方式,即按A-AB-B-BC-C-CD-D-DA-A或者相反順序通電的。單片機的P2的低四位分別連接的是控制云臺豎直方向轉(zhuǎn)動電機的A、B、C、D四相,高四位則分別接的是控制云臺水平方向轉(zhuǎn)動的電機的A、B、C、D四相。在編程中,將步進電機通電相的正序、反序分別放在兩個數(shù)組中,在電機動作模塊中使用不同的數(shù)組,就能達到控制電機的正轉(zhuǎn)、反轉(zhuǎn),它們分別為moveup、movedown、movelefe、moveright。另外為了還在本次系統(tǒng)只還設(shè)置了自動運行方式,這種方式是通過循環(huán)調(diào)用moveup、movedown、movelefe和moveright函數(shù)來實現(xiàn)自動運行的。第7章 系統(tǒng)調(diào)試與運行仿真是一項非常有效的檢測設(shè)計工作是否達到預(yù)期的結(jié)果方法,而且非常具有實際意義。一項新的系統(tǒng)不經(jīng)過調(diào)試仿真就直接進入實用,這樣是非常不科學(xué)的,既費時又費里,所以一項新的設(shè)計只有在經(jīng)過了仿真的考驗才能真正的得到實際應(yīng)用。仿真就是一個完成目標模型的建立過程,對于本次設(shè)計來說仿真所要完成的工作有:搭建虛擬串口、Keil軟件中程序的編譯并生成HEX文件、Proteus仿真軟件電路模型的建立。7.1 虛擬串口首先安裝好SerialNull虛擬串口軟件和串口調(diào)試助手SComAssistant V2.1,分別對其進行設(shè)置。打開SerialNull虛擬串口軟件,進入主界面,如圖7-1所示。圖7-1 SerialNull界面添加虛擬端口,一般電腦最多為兩個串行口,這里我們選擇端口一為COM2和端口二為COM3,點擊添加端口就添加了這兩個串口,在虛擬端口下就會看到有兩個串口。這樣我們就完成里串口的設(shè)置,可以把此軟件關(guān)閉,這兩個端口將會一直存在于你的電腦中,下次直接使用就可以了。7.2 Keil軟件程序編譯前面已經(jīng)介紹了Keil軟件的使用方法,這里不再陳述?,F(xiàn)在我們要做的是源程序代碼的編譯,最終目的是生成HEX文件。操作步驟如下:(1) 啟動uVision2,創(chuàng)建一個項目文件,文件名為lijian,并從器件庫中選擇1款合適的CPU,我選擇的是AT89C52。(2) 創(chuàng)建一個新的源程序文件,文件名為lijian.C,并把這個源文件添加到項目中。(3) 為該單片機添加或配置啟動程序代碼,代碼如附錄所示。(4) 設(shè)置工具選項,使之合適目標硬件。(5) 編譯項目并創(chuàng)造一個可供PROM編程的.HEX文件。完成以上步驟我們就完成了源程序代碼生成.HEX文件的任務(wù)。7.3 Proteus仿真同樣前面已經(jīng)介紹了Proteus ISIS軟件的使用方法,這里不再多說。現(xiàn)在要做的是將系統(tǒng)電路圖繪制在Proteus ISIS編輯窗口中,添加完成相應(yīng)的設(shè)置并添加由Keil軟件生成的.HEX文件。主要介紹Proteus仿真軟件的設(shè)置。在Proteus ISIS編輯窗口中,單擊鼠標右鍵將AT89C52單片機選中并單擊鼠標左鍵,彈出“Edit Component”對話框,如下圖7-2所示。在此對話框的“Clock Frequency”欄中設(shè)置單片機的晶振頻率為11.0592MHz,在“Program File”欄中單擊圖標,選擇先前用Keil uVision2生成的“l(fā)ijian.HEX”文件。在Proteus ISIS菜單欄中單擊保存圖標,保存設(shè)計,生成“l(fā)ijian.DSN”文件。圖7-2 “Edit Component”對話框在Proteus ISIS編輯窗口中單擊,則會彈出虛擬終端virtual terminal顯示框,它的作用主要是顯示PC通過串口發(fā)送的信息。下面我們再把用VC編寫的PC控制界面打開,如圖7-3所示。首先點擊打開串口,再執(zhí)行相應(yīng)的操作。圖7-3 PC控制界面第8章 結(jié)束語畢業(yè)設(shè)計是本科學(xué)習(xí)階段一次非常難得的理論與實際相結(jié)合的機會,通過這次比較完整的單片機系統(tǒng)設(shè)計,各種元器件的選用,各種設(shè)備的適用標準,各種軟件的使用方式,信息遠距離傳輸,抗干擾能力強等問題,隨著設(shè)計的不斷深入而不斷熟悉并學(xué)會應(yīng)用的。我擺脫了單純的理論知識學(xué)習(xí)狀態(tài),和實際設(shè)計的結(jié)合鍛煉了我的綜合運用所學(xué)的專業(yè)基礎(chǔ)知識,解決實際工程項目問題的能力,同時也提高我查閱文獻資料、設(shè)計手冊、設(shè)計規(guī)范以及電腦制圖仿真等其他專業(yè)能力水平,而且通過對整體的掌控,對局部的取舍,以及對細節(jié)的斟酌處理,都使我的能力得到了極大的鍛煉,經(jīng)驗得到了豐富,并且意志品質(zhì)力,抗壓能力及耐力也都得到了不同程度的提升。本文構(gòu)建了一個完整的基于單片機的云臺步進電機控制系統(tǒng)。分析云臺控制系統(tǒng)的具體實際要求,提出了詳細的設(shè)計方案,設(shè)計該系統(tǒng)主要分為單片機外圍,步進電機驅(qū)動,RS485總線這三部分。在系統(tǒng)設(shè)計中,了解步進電機的控制原理后,我解決了電機的驅(qū)動器件;RS485總線設(shè)計中,經(jīng)上網(wǎng)查找相關(guān)資料,提出了RS485/RS232電平轉(zhuǎn)換解決方案及接口電路相關(guān)問題的解決方案。經(jīng)過軟件調(diào)試仿真,本系統(tǒng)不僅能夠?qū)崿F(xiàn)鍵盤按鈕控制云臺步進電機,而且還可以通過PC遠距離控制云臺步進電機,完成了本設(shè)計的最終任務(wù),得到了預(yù)期的結(jié)果。在這次畢業(yè)設(shè)計中也遇到了許多問題,程序的編寫、調(diào)試工作,經(jīng)過一次一次程序的修改、一次一次的編譯、一次次的嘗試,不斷在錯誤中進步,最終完成了程序的編譯。經(jīng)過程序代碼的編寫及成功仿真,我對其有了一定的了解,對其中的某些錯誤有了一定的反應(yīng)能力。致謝本次畢業(yè)設(shè)計論文是在陳昌忠老師悉心指導(dǎo)下完成的。從接受課題到現(xiàn)在完成畢業(yè)設(shè)計論文,衷心的感謝老師給予精心的指導(dǎo)和熱情的幫助,尤其在課題設(shè)計的準備階段和設(shè)計階段,老師提出許多寶貴的設(shè)計意見,這樣使得我得以順利的完成畢業(yè)設(shè)計開發(fā)工作,在短暫的相處時間里,老師淵博的知識,敏銳的思路和實事求是的工作作風(fēng)給我留下了深刻的印象,這將使得我終身受益,謹此向老師表示衷心的感謝和崇高的敬意。其次,我要特別感謝蘭發(fā)平同學(xué)對本次畢業(yè)設(shè)計的指導(dǎo),他為完成這篇論文提供了巨大的幫助。最后,