MCS-51單片機原理及接口技術(第2版)汪德彪電子教案第9章_第1頁
MCS-51單片機原理及接口技術(第2版)汪德彪電子教案第9章_第2頁
MCS-51單片機原理及接口技術(第2版)汪德彪電子教案第9章_第3頁
MCS-51單片機原理及接口技術(第2版)汪德彪電子教案第9章_第4頁
MCS-51單片機原理及接口技術(第2版)汪德彪電子教案第9章_第5頁
已閱讀5頁,還剩77頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第9章單片機應用系統設計與開發9.1單片機應用系統設計的一般步驟和方法9.2單片機應用系統的抗干擾技術9.3簡易電腦時鐘設計9.4數字電壓表設計9.5電動小車動態平衡系統9.1單片機應用系統設計的一般步驟和方法9.1.1對單片機應用系統的性能要求單片機應用系統大多數用于工業環境、嵌入到其他設備或作為部件組裝到某種產品中,其基本要求如下:(1)高可靠性。(2)較強的環境適應能力。(3)較好的實時性。(4)易于操作和維護。(5)具有一定的可擴充性。(6)具有通信功能。9.1.2設計步驟不同的單片機應用系統,其性能指標、要求、應用場所、難易程度各不相同,因此在整個設計開發過程中,有著不同的步驟和方法,但也存在一些共性。一般來講可以分為需求分析,總體方案設計、硬件設計與調試、軟件設計與調試、系統功能調試與性能測試、產品驗收和維護、文件編制和技術歸檔等。單片機應用系統的開發步驟如圖9.1所示。9.1.2設計步驟圖9.1單片機應用系統開發步驟9.1.2設計步驟1.需求分析需求分析就是明確所設計的單片機應用系統要“做什么”和“做的結果怎樣”。需求分析階段的結果是形成可操作的設計需求任務書。主要內容如下:(1)輸入信號:系統所要檢測的信號類型、精度要求、信號的變換速率以及信號的量程大小等,以便在方案設計中確定檢測元件、檢測方法、輸入通道的結構和技術等。(2)輸出信號:系統所要輸出的信號類型、精度要求、信號制式、功率大小等,以便在方案設計中確定模擬量、開關量輸出通道的結構和輸出方式。(3)系統結構:確定是設計的標準產品還是非標產品,是單CPU結構還是多CPU結構,是否可以構成通信網絡,是否掛靠某種網絡標準或現場總線標準等。9.1.2設計步驟(4)實時控制及其精度要求:在工業控制領域應用的單片機系統可以稱為單片機控制系統,這類控制系統的設計必須考慮實時性需求、生產設備、生產工藝過程和配套電氣設備等因素。如果系統具有回路控制功能,應明確系統的控制精度,以便于在方案設計確定所要采用的數字濾波算法、控制算法和各類校正算法等。(5)系統接口:選擇菜單接口還是圖形接口,按鍵輸入還是觸摸屏輸入,以便在方案設計中確定操作方式、參數設置和存儲方式、手/自動方式及其切換等。(6)擴充設計:確定系統是否需要擴充,擴充的形式等。9.1.2設計步驟(7)可靠性設計:確定系統達到何種可靠性指標,以便在方案設計時確定采取何種可靠性設計手段、抗干擾設計技術等。(8)成本預算:確定完成系統開發所需要的費用,包括硬件費用、軟件費用、勞務費、輔料費、稅收及其他費用等。(9)完成期限:如果是用戶委托開發或部委科研項目,應確定整個系統的完成期限以及各階段任務的完成期限,應有具體的時間進度安排。(10)測試條件和驗收標準:應明確系統功能和指標所基于的測試條件,驗收系統的具體標準和驗收形式。9.1.2設計步驟2.總體設計系統總體設計解決的是系統采用何種方法,系統結構組成,功能模塊具體劃分以及模塊之間的關系,指標分解等問題。總體設計就是要從宏觀上解決“怎么做”。主要內容如下:(1)確定技術途徑:單片機應用系統也有大小之分,不同層次的應用系統可以采用委托設計、自行設計或二者結合等設計途徑。尤其是面向行業領域的單片機應用系統,有必要采取合作開發或有償使用第三方現有技術的開發形式。(2)確定技術方法:技術方法是指為實現單片機系統功能目標而準備采用的可行的技術手段,包括高性能器件、合適的開發平臺、開發語言、軟件算法等。9.1.2設計步驟(3)劃分子系統和主要功能塊:確定了系統的技術途徑和主要技術方法后,就可針對系統的需求,逐步確立系統的體系結構,進行主要功能的劃分,確定完成各主要功能的系統,確定各系統的相應功能技術指標和各子系統之間的接口關系。對于每個子系統,又可以進一步劃分其硬件功能和軟件功能。(4)確定系統組成框圖:用結構框圖表示系統(硬件、軟件)的體系結構,圖中要標明系統各部分的組成結構、各部分之間的接口方式、系統與外界的接口等。(5)系統的綜合與檢查:當系統的指標逐項得到分解、各子系統的功能指標均已落實、系統體系已經建立之后,設計者有必要從系統總體角度出發,對各子系統進行綜合性分析,檢查各模塊的功能合成后能否達到系統的功能需求。9.1.2設計步驟3.硬件設計硬件設計的主要內容是基于總體方案選擇和采購系統所需的各類元器件,設計系統的電子線路圖,選擇合適的外觀結構,設計和外協加工印制電路板,安裝元器件,調試硬件線路等。硬件設計應確保功能設計和接口設計滿足系統的需求,并且充分考慮和軟件的協調工作關系,注重選用高集成度的器件,充分考慮硬件軟化、軟件硬化等設計技術。9.1.2設計步驟4.軟件設計軟件設計的主要任務是擬定軟件設計方案,確立數學模型或算法,劃分出主要的軟件模塊,根據需要繪制部分軟件模塊的流程圖,編制源程序,調試和測試目標軟件的基本功能。9.1.2設計步驟5.單片機應用系統的調試調試是基于系統的設計需求,進行系統功能調試和性能指標的測試,形成測試報告,核對用戶需求或設計需求和系統現有功能、指標的一致性程度。如果系統存在局部錯誤或不能滿足某些設計需求,則應提出局部修改意見,并對硬件和軟件進行修改,直至滿足設計需求。若是方案性的錯誤或按既定的方案無法滿足設計需求,則應考慮修改設計方案。9.1.2設計步驟6.產品驗收與維護單片機應用系統設計或產品開發結束后,必須經過現場投運、試用和用戶的驗收。屬于國家或部委的科研項目,還應通過有關部門的鑒定。產品驗收或鑒定結束后,可以實施產品定型,形成生產工藝,進而形成規模化生產。產品正是投放市場后,維護工作就開始了,這步工作一直要持續到該產品退出市場。9.1.2設計步驟7.文件編制與技術歸檔為了維護單片機系統,或將目前的設計成果作為資源用于后續設計,編制相應的技術文檔是非常必要的。提供給用戶的安裝手冊、操作手冊和維護手冊等是技術文檔的重要組成部分之一。技術文檔必須按國家標準進行編制,經相關人員審核后存入技術檔案室進行統一管理。9.2單片機應用系統的抗干擾技術單片機系統都工作于一定的環境中,有時經過千辛萬苦開發的單片機應用系統卻不能在工業環境中正常工作,其根本原因在于它的工作環境存在干擾。干擾產生于干擾源。干擾可能來至系統內部,也可能來至系統外部。干擾源要形成干擾,還必須有形成干擾的路徑或易受干擾的對象,這就是所謂干擾的三要素,即干擾源、干擾路徑和易受干擾的系統。單片機應用系統的抗干擾措施也是針對這三要素進行的,消除干擾源也是最根本的,在這個前提下,下面從硬件和軟件兩個方面討論抗干擾問題。9.2.1硬件抗干擾技術1.抑制干擾源常用措施抑制干擾源首先就是盡量使單片機應用系統遠離干擾源,其次是盡可能地減小干擾源的電壓變化率和電流變化率,這是抗干擾設計中最優先考慮和最重要的原則。減小干擾源的電壓變化率主要是通過在干擾源兩端并聯電容來實現。減小干擾源的電流變化率則是在干擾源回路串聯電感或電阻以及增加續流二極管來實現。9.2.1硬件抗干擾技術(1)給繼電器線圈增加續流二極管,消除斷電時產生的反電動勢。(2)在繼電器接點兩端并接火花抑制電路(一般為RC串聯電路,電阻一般為幾~幾十k,電容為0.01F)以減小電火花影響。(3)給電機加濾波電路,注意電容、電感連線要盡量靠近電機。(4)電路板上每個IC要并接一個0.01~0.1F高頻電容,減小IC對電源的影響。注意高頻電容的布線應靠近電源端,并盡量短,否則等于增大了電容的等效串聯電阻,會影響濾波效果。(5)避免90°折線,減小高頻噪聲發射。(6)在可控硅兩端并接RC抑制電路,減小可控硅噪聲(這個噪聲嚴重時可能會把可控硅擊穿的)。9.2.1硬件抗干擾技術2.切斷干擾傳播途徑措施(1)充分考慮電源對單片機的影響。許多單片機對電源噪聲很敏感,要給單片機電源加濾波電路或穩壓器,以減小電源噪聲對單片機的干擾。(2)如果單片機的I/O口用來控制電機等噪聲器件,在I/O口與噪聲源之間應加隔離,通常采用光電隔離技術。(3)注意晶振布線。晶振與單片機引腳盡量靠近,用地線把時鐘區隔離起來,晶振外殼接地并固定。此措施可解決許多疑難問題。(4)電路板合理分區,如強、弱信號,數字、模擬信號應分開,盡可能把干擾源(如電機,繼電器)與敏感元件(如單片機)遠離。9.2.1硬件抗干擾技術(5)用地線把數字區與模擬區隔離,數字地與模擬地要分離,最后在一點接于電源地。A/D、D/A芯片布線也以此為原則。(6)單片機和大功率器件的地線要單獨接地,以減小相互干擾,大功率器件盡可能放在電路板邊緣。(7)在單片機I/O口、電源線、電路板連接線等關鍵地方使用抗干擾元件,如磁珠、磁環、電源濾波器,屏蔽罩,可顯著提高電路的抗干擾性能。9.2.1硬件抗干擾技術3.提高敏感器件的抗干擾性能提高敏感器件的抗干擾性能是指從敏感器件考慮盡量減小對干擾噪聲的拾取,以及從不正常狀態盡快恢復的方法。常用措施有:(1)選擇抗干擾性能強的電子元件,對元件進行篩選和老化。(2)布線時盡量減小回路環的面積,以降低感應噪聲。(3)布線時,電源線和地線要盡量粗。除減小壓降外,更重要的是降低耦合噪聲。(4)對于單片機閑置的I/O口,不要懸空,要接地或接電源。其他IC的閑置端在不改變系統邏輯的情況下接地或接電源。9.2.1硬件抗干擾技術(5)對單片機使用電源監控及看門狗電路等,可大幅度提高整個電路的抗干擾性能。(6)在速度能滿足要求的前提下,盡量降低單片機的晶振和選用低速數字電路。(7)IC器件盡量直接焊在電路板上,少用IC座。(8)有條件采用四層以上印制板,中間兩層為電源和地。9.2.2軟件抗干擾技術軟件抗干擾技術是當系統受干擾后,使系統恢復正常運行或輸入信號受干擾后去偽存真的一種輔助方法。此技術屬于一種被動抗干擾措施,但是由于軟件抗干擾設計靈活,節省硬件資源,操作起來方便易行,所以軟件抗干擾技術越來越受到人們的重視。9.2.2軟件抗干擾技術1.數字濾波技術一般在模擬量輸入信號中,均含有噪聲和干擾。為了進行準確的測量和控制,必須消除或最大程度地降低噪聲和干擾的影響。常用的辦法有硬件濾波電路和軟件濾波程序。(1)數字濾波的優點。數字濾波器實際上是一段程序,它的主要優點在于:①數字濾波器是用程序實現的,不需要增加硬設備,所以可靠性高,穩定性好。②數字濾波器可以對頻率很低的信號實現濾波,克服了模擬濾波器的缺陷。③數字濾波器可以根據信號不同,采用不同的濾波方法或濾波參數,具有靈活、方便、功能強的特點。9.2.2軟件抗干擾技術(2)常用的數字濾波方法。①算術平均值法。算術平均值法是求N個采樣數據的算術平均值,這樣得到的結果與采樣值的偏差的平方和最小。這種方法適合于一般的隨機干擾信號的濾波。N值的選擇應根據具體的濾波對象而定,N值大,則平滑度高,但靈敏度低;N值小,則平滑度低,但靈敏度高。②中位值濾波法。中位值濾波法的原理是對被測信號連續采樣M次(M≥3)且是奇數,并按大小順序排序,取其中間值作為本次的有效值。9.2.2軟件抗干擾技術③限幅濾波法。由于大的隨機干擾或采樣器不穩定,使得采樣數據偏離實際值太遠,在這種情況下,當信號大于某設定值時,就取設定值為采樣值;當信號小于某設定值時,就取設定值為采樣值。有時根據信號變化率來決定是否采取限幅濾波。④慣性濾波法。慣性濾波法實際上與硬件的一階慣性濾波器(RC低通濾波器)的功能一樣,只是濾波系數可以隨意調整,使用靈活。9.2.2軟件抗干擾技術2.指令冗余技術當CPU受到干擾后,往往將一些操作數當作操作碼來執行,引起程序混亂。這時,我們首先要盡快將程序納入正軌。MCS-51單片機指令系統中所有的指令都不超過3字節,而且有很多單字節指令。當程序彈飛到某一單字節指令上時,便自動納入正軌。當彈飛到某一雙字節或三字節指令上時,有可能落在其操作數上,從而繼續出錯。因此,在程序當中應多用單字節指令,并在關鍵地方有意識地安排一些NOP指令,或將有效單字節指令重復書寫,這就是指令冗余。指令冗余會降低系統的效率,但一般情況下CPU有足夠的時間來執行這些冗余的指令。9.2.2軟件抗干擾技術3.軟件陷阱技術指令冗余使彈飛的程序安定下來是有條件的,首先彈飛的程序必須落在程序區,其次必須執行到冗余指令。當彈飛的程序落到非程序區(如ROM空間未使用部分,數據表格區)時,則第一個條件不滿足。當彈飛的程序在沒有碰到冗余指令之前,已經自動形成一個死循環,這時第二個條件也不滿足。對于不滿足第一個條件可以采取軟件陷阱措施來解決,對于不滿足第二條件可以采取“看門狗”電路來解決。9.2.2軟件抗干擾技術4.輸入口信號重復檢測對于重要開關量輸入信號的檢測,實際應用中一般采用3次或5次重復檢測的方法,即對接口中的輸人數據信息進行重復進行3次或5次檢測,若結果完全一致則認為是“真”的輸入信號,若多次測試結果不一致,既可以停止檢測顯示故障信息,又可以重復進行再檢測。對于軟件測量而言,輸入量干擾大多數是疊加到有效信號上的一系列作用時間短的尖脈沖,但是頻率不一致,因此應在相鄰的檢測之間應有一定的時間間隔。理論上可以是等時間段的,而在實際使用過程中,由于外部環境比較復雜,等時間段只能濾除某個頻段的干擾,為了濾除盡可能多的干擾,間隔時間應為不等的時間段,但是對數據影響較大的尖峰,其作用的時間寬度在幾十到幾百s之間,所以把濾波時間限定在ms級上。需要注意的是,對于軟件時序要求比較嚴格場合,延時查詢時間不宜過長,查詢次數一般以3次為宜。9.2.2軟件抗干擾技術5.輸出端口數據刷新開關量輸出抗干擾技術主要采用的方法是重復輸出,即同一指令連續執行多次,這是提高輸出信號穩定性的有效措施之一。9.2.2軟件抗干擾技術6.程序自檢程序自檢是提高測控軟件可靠性的有效方法之一。自檢程序主要是對單片機系統的主要器件如單片機的I/O口、外部擴展的可編程I/O接口芯片、A/D器件、ROM器件等進行檢測,如出現故障能夠給出故障提示。因此自檢程序不但可以了解與測試相關外設的工作情況,而且可避免因外設原因而使測控系統不能正常工作的干擾。9.3簡易電腦時鐘設計9.3.1功能要求設計并實現簡易電腦時鐘系統,要求用盡可能少的常用電子器件實現以下功能:(1)實時顯示當前時間即北京時間(時、分)。(2)可修改北京時間(時、分)。(3)具有鬧鐘功能,鬧鐘時的音樂為“兩只老虎”。(4)可設定鬧鈴時間(時、分)。(5)具有鬧鐘貪睡功能。9.3.2總體設計9.3.2總體設計根據系統功能要求,可將系統組成結構分成四大部分:單片機控制中心、鍵盤接口、時鐘顯示和聲音報時,系統的組成結構如圖9.2所示。其中,單片機控制中心是核心。MCU根據按鍵輸入,可切換不同的顯示模式或設置不同的參數。時鐘顯示完成北京時間或秒表時鐘的信息。聲音報時可完成鬧鈴的提示。(1)時鐘顯示。選取4位LED數碼管,用于顯示小時和分鐘。(2)聲音報時。選用最常見的也是最簡單的聲音提示方式——蜂鳴器。(3)鍵盤接口。設置三個按鍵,即模式(MODE)鍵、UP鍵和DOWN鍵。按鍵用來設置北京時間、鬧鐘時間和啟動秒表等功能。9.3.2總體設計圖9.2電腦時鐘組成結構圖9.3.3硬件設計1.微處理器選擇遵循成本低、性能高、滿足功能要求等原則選擇微處理器。在本系統中,采用4位LED顯示,動態掃描4位LED數碼管進行數字顯示,需要12位I/O線,聲音提示需要1位I/O線,按鍵需3位I/O線,因此,系統接口需要至少16位單片機I/O線。而普通MCS-51單片機一般有32位I/O線,選用普通單片機即可滿足要求。考慮到STC89C51微控制器具有價格非常低廉、程序空間大、資源較豐富、在線下載非常方便等特點,并且該芯片功能與普通51芯片相同,編程方面亦可采用所熟悉的Keil軟件,因此選擇STC89C51微控制器。9.3.3硬件設計2.電路設計電路設計包括電路原理圖設計和印制電路圖設計,電路原理圖如圖9.3所示。由于系統的工作電源為5V,為了使用方便,用USB接口供電,即系統直接從USB接口獲取5V電源。系統電路圖如圖9.3所示。圖9.3系統電路原理圖9.3.4軟件設計1.操作功能設計系統設有四位數碼管,三個按鍵。采用菜單式人機對話,便于操作。系統分成多種菜單,MODE鍵切換菜單,UP或DOWN鍵設置相關參數。菜單設計及操作如下:(1)北京時間顯示菜單:數碼管前兩位顯示小時,后兩位顯示分鐘,中間小數點0.5s亮,0.5s滅。(2)按MODE鍵一次,進入修改小時模式,第一個指示燈D1亮,按UP或DOWN鍵可對小時進行修改(加或減)。(3)按MODE鍵二次,進入修改分鐘模式,第二個指示燈D2亮,按UP或DOWN鍵可對分鐘進行修改(加或減)。(4)按MODE鍵三次,進入修改鬧鐘小時模式,第三個指示燈D3亮,按UP或DOWN鍵可對鬧鐘小時值進行修改(加或減)。9.3.4軟件設計(5)按MODE鍵四次,進入修改鬧鐘分鐘模式,第四個指示燈D4亮,按UP或DOWN鍵可對鬧鐘分鐘值進行修改(加或減)。(6)按MODE鍵五次,數碼管上顯示“LL.00”或“LL.01”,“LL.00”表示貪睡鬧鈴功能關閉,01表示貪睡鬧鈴功能開啟,按UP或DOWN鍵可在00或01間循環選擇。在貪睡鬧鈴功能關閉時,可按任意鍵停止當前鬧鐘,或在無按鍵情況下會鬧鐘1分鐘,以后不再響。在貪睡鬧鈴功能開啟時,按下除UP鍵以外的任意鍵,則停止當前鬧鐘;或在無按鍵情況下會鬧鐘1分鐘。每5分鐘,鬧鐘會重新響起,如此循環。只有按下UP鍵時,才能停止鬧鐘以后再不響。(7)按MODE鍵六次,返回到北京時間顯示模式。9.3.4軟件設計2.編程思路使用定時器0完成數碼管掃描、按鍵掃描、時鐘的計時功能。定時器0設為16位計時模式,定時5ms,即每5ms掃描一位數碼管,20ms循環一次。按鍵掃描過程中,需進行去抖動處理。掃描到相應的按鍵時,執行相應的操作,如掃描到MODE鍵時,進行菜單切換操作。切換菜單的方法是通過程序定義一個變量,根據變量不同的取值來表示不同的菜單。在按鍵處理后,及時更新數碼管顯示的內容。使用定時器1完成音樂播放功能。“兩只老虎”歌譜如下:9.3.4軟件設計9.4數字電壓表設計9.4.1功能要求數字電壓表(DigitalVoltmeter,DVM)是采用數字化測量技術,把連續的模擬電壓量轉換成離散的數字化形式并加以顯示的儀表。設計一數字電壓表,要求用專用A/D轉換器來實現8路電壓采集,具體參數要求如下:(1)輸入8路直流電壓值,輸入范圍為0~5V。(2)測量精度能夠達到0.02V。(3)4位LED數碼管輪流顯示8路測量結果。9.4.2總體設計根據系統要求,單片機主要完成通道的選擇、電壓值的采集、以及數字顯示等功能。系統由主控電路、顯示電路、A/D轉換電路、電源電路及復位電路等部分組成,系統組成框圖如圖9.4所示。圖9.4數字電壓表系統組成框圖9.4.3硬件設計1.器件選擇A/D轉換器選擇:由于輸入的直流電壓信號有8路,且測量精度為0.02V,所以選擇ADC0809作為A/D轉換器完全滿足要求。另外,要求輸入8路電壓信號,選用ADC0809芯片可以完成A/D轉換要求。單片機選擇:ADC0809與單片機之間連接時,需要單片機15根I/O線。4位LED顯示和LED的位選一共需要12根I/O線。普通51系列單片機均可滿足要求。在此選擇AT89C52微控制器。9.4.3硬件設計2.原理圖設計數字電壓表原理圖如圖9.5所示。引腳安排如下:P0、P2.0~P2.3口作為數碼管顯示控制,P1口作A/D轉換數據輸入,P3.0~P3.6口用作ADC0809的控制。其中,ADC0809的CLK可以通過單片機ALE腳的六分頻再通過74LS74構成的四分頻得到500kHz時鐘信號得到。圖9.5數字電壓表原理圖9.4.3硬件設計3.Proteus與Keil仿真平臺建立作為功能強大的EDA工具軟件,Proteus是模擬單片機及其外圍器件的很好工具,而Kei1軟件是目前廣為應用的51系列單片機軟件開發工具之一。將它們完美結合,可為單片機系統資源、軟件技術、硬件接口電路、軟件和硬件相結合的應用系統提供一個很好的理論和實踐相結合的實驗仿真平臺。Proteus與Keil的整合過程如下:(1)安裝Proteus6.7SP3和KeiluVision3軟件。(2)把Proteus安裝目錄下VDM51.dll(C:\ProgramFiles\LabcenterElectronics\Proteus6Professional\MODELS\)文件復制到Keil安裝目錄下的\C51\BIN目錄中。(3)編輯Keil目錄下tools.ini文件,在[C51]項下,加入:TDRV5=BIN\VDM51.DLL("PROTEUSMONITOR-51DRIVER")(注意,TDRVX為單片機軟件仿真的硬件配置設置)。9.4.3硬件設計(4)打開ProteusISIS軟件。設計單片機實驗硬件組成框圖,建立硬件連接原理圖,如圖9.5所示。(5)打開KeiluVison3軟件。建立單片機系統軟件工程,針對實驗要求,編制程序。(6)在KeiluVison3軟件中,選擇菜單“Project”->“OptionsforTarget‘Target1’”,在出現的對話框中,選擇“Output”頁面,選中“CreatHexFile”選項;選擇“Debug”頁面,選中“Use”-PROTEUSVSMMONITOR-51DRIVER,進入“Settings”,Host設為127.0.0.1,Port設為8000。9.4.3硬件設計(7)在ProteusISIS軟件中,選擇菜單“Source”->“Add/RemoveSourceCodeFiles”,在出現的對話框中點擊“Chang”按鈕,選擇從KeiluVison3軟件工程中所生成的HEX文件,點擊“OK”。在Debug菜單下選中“UseRemoteDebugMonitor”。(8)在KeiluVison3軟件中,直接進行仿真,連續運行或單步運行,即可在ProteusISIS軟件中看到單片機硬件仿真運行結果。在整合過程中,單片機仿真平臺建立過程為(1)~(3)項,實驗過程為(4)~(8)項。9.4.4軟件設計系統設有四個數碼管,要求能夠輪流顯示8路電壓輸入值。電壓精度要達到0.02V,因此,電壓顯示范圍應為0.00V~5.00V,用后三位數碼管可完成電壓顯示,第一位數碼管可顯示對應的通道。程序編寫的思路為:使用定時器0完成數碼管掃描功能。主程序每1s切換一次通道并進行電壓數據采集和更新顯示。9.5電動小車動態平衡系統9.5.1功能要求設計并制作一個電動車蹺蹺板,在蹺蹺板起始端A一側裝有可移動的配重。配重的位置可以在從始端開始的200mm~600mm范圍內調整,調整步長不大于50mm;配重可拆卸。電動車從起始端A出發,可以自動在蹺蹺板上行駛。電動車蹺蹺板起始狀態和平衡狀態示意圖分別如圖9.6和圖9.7所示。9.5.1功能要求圖9.6起始狀態示意圖圖9.7平衡狀態示意圖9.5.1功能要求在不加配重的情況下,電動車完成以下運動:(1)電動車從起始端A出發,在30秒鐘內行駛到中心點C附近。(2)60秒鐘之內,電動車在中心點C附近使蹺蹺板處于平衡狀態,保持平衡5秒鐘,并給出明顯的平衡指示。(3)電動車從平衡點出發,30秒鐘內行駛到蹺蹺板末端B處(車頭距蹺蹺板末端B不大于50mm)。(4)電動車在B點停止5秒后,1分鐘內倒退回起始端A,完成整個行程。(5)在整個行駛過程中,電動車始終在蹺蹺板上,并分階段實時顯示電動車行駛所用的時間。9.5.1功能要求將配重固定在可調整范圍內任一指定位置,電動車完成以下運動:(1)將電動車放置在地面距離蹺蹺板起始端A點300mm以外、90°扇形區域內某一指定位置(車頭朝向蹺蹺板),電動車能夠自動駛上蹺蹺板,如圖9.8所示。(2)電動車在蹺蹺板上取得平衡,給出明顯的平衡指示,保持平衡5秒鐘以上。(3)將另一塊質量為電動車質量10%~20%的塊狀配重放置在A至C間指定的位置,電動車能夠重新取得平衡,給出明顯的平衡指示,保持平衡5秒鐘以上。(4)電動車在3分鐘之內完成全過程。說明:平衡的定義為A、B兩端與地面的距離差d=|dAdB|不大于40mm。9.5.1功能要求圖9.8自動駛上蹺蹺板示意圖9.5.2總體設計1.車型選擇電動車的車體可選用市場常見的物美價廉的玩具車。但在蹺蹺板上行駛存在上坡和下坡的難度,即上坡需要一定的馬力和起始速度,下坡需考慮自身慣性導致速度難以控制而駛出蹺蹺板B端外的情況,而這些起始驅動力及慣性因素為不定因素,從而導致速度控制的難度也是不可預知的。因此,選用坦克型車體。存在兩種理由:一方面,由于坦克型車體本身的特點,電機驅動方式不同一般車型,它行駛速度均勻,即使在坡度45°角的上坡也能均速行駛;另一方面,坦克的馬力強大,即使有再多的故障,它也能直接壓過,爬坡對于坦克車體來說是一件非常容易的事情。這樣大大降低了電動車的控制難度。9.5.2總體設計2.車體行駛設計電動車只能在蹺蹺板上行駛,為避免駛出蹺蹺板外,需進行軌跡設計,即為電動車指引行駛的線路。檢軌跡線的傳感器可選用一對反射式紅外傳感器,正確定位傳感器是尋跡的關鍵。為了使電動車能沿蹺蹺板前進和后退,為使電動車準確地行駛到B端和準確地退回到A端,在電動車的前后各安裝3對紅外對管(如圖9.9),且蹺蹺板上繪制軌跡圖(如圖9.10)。當駛到B端時,只有前面的3對紅外管可同時檢測到軌跡,當駛回A端時,只有后面的3對紅外管均可同時檢測到軌跡,當在A到B的中間行駛時,可根據前端中的紅外管進行行駛方向判斷,在B到A的中間行駛時(即倒行時),可根據后面中的紅外管進行行駛方向判斷。9.5.2總體設計圖9.10板上行駛軌跡示意圖圖9.9傳感器安裝示意圖9.5.2總體設計3.系統平衡設計小車從開始上坡到達到B點,蹺蹺板的水平角度從arcsin(140/1600)變為arcsin(140/1600),絕對平衡時的水平角度為0°,即處于圖9.7所示狀態。但要使車體保持在絕對平衡的狀態是非常困難的。系統要求的平衡狀態是在一定范圍內,即|dAdB|<=40mm。所以,平衡控制的角度范圍為:arcsin(40/1600)至arcsin(40/1600)。為檢測該水平角度,需選用單軸傾角傳感器,且該傳感器安裝在車體上最為方便(如圖9.9)。9.5.2總體設計4.其他功能設計系統需要顯示各階段的時間,在平衡時作出平衡指示,因此控制系統要有顯示、聲光報警電路。電動車在行駛過程中,要按方向來行駛,因此存在電機驅動電路。電動車行駛及控制系統均需要不同的電源,在鋰電池供電的情況下,需要設計獨立供電電路等等。總上分析,電動車蹺蹺板控制系統主要有電源供應模塊,軌跡探測模塊、傾角檢測模塊、顯示模塊、電機驅動模塊、聲光提示模塊等組成,如圖9.11所示。9.5.3硬件設計1.獨立供電模塊小車由7.4伏的鋰電池供電。鋰電池在剛充滿電時,電壓高達8.4V,隨著小車的工作時間的增加,電池的電壓會不斷的降低到6V,并且電機及控制電路均需要穩定的直流5V電源。因此需要一定的措施才能把鋰電池的不穩定電壓變換成穩定的5V。使用線性低壓差穩壓器(LDO)SP1117單獨給控制系統供電,電機與控制系統之間用光電隔離,徹底解決由于電池電量的變化而影響電機速度控制的問題;并且此方案會使控制系統不受電機運行的電氣噪聲干擾,為系統的穩定工作奠定了基礎。LM2596具體電路及SP1117電路圖如圖9.12所示。圖9.11系統組成框圖圖9.12獨立供電電路圖2.軌跡檢測模塊電動車前后各安裝3只紅外對管,一只置于軌道中間,兩只置于軌道外側。車體按軌跡行駛時,中間的紅外傳感器應檢測到黑線(軌跡),兩側在軌跡外,不應檢測到黑線,小車直走。但當小車脫離軌道時,即中間的紅外傳感器脫檢測不到黑線,等待兩側的傳感器中任一只檢測黑線。當右側的傳感器檢測到黑線時,說明車體偏左,應向右轉;相反地,當左側的傳感器檢測到黑線時,說明車體偏右,應向左轉。這樣,根據三只紅外對管的檢測狀態,對車的方向做出相應的調整。因此,車體在行駛過程中,會有一定左右搖擺。當前面三對紅外管均檢測到軌跡時,說明車體已達到B端,可以暫停行駛。同樣,當后面三對紅外管均檢測到軌跡時,說明車體已達到A端,也要停止行駛。檢測引導線尋跡傳感器是一對反射式紅外傳感器,傳感器檢測原理如圖9.13(a)所示,TX為發光二極管,RX為光敏元件。為了能準確檢測到軌跡線,按照如圖9.13(b)所示的方式分布。當傳感器位于軌跡線上(黑色)時,對應紅外對管的發光二極管滅,光敏三極管截止,檢測電路輸出低電平,反之則輸出高電平。圖9.13反射式紅外傳感器結構示意圖軌跡檢測電路部分原理圖如圖9.14所示。圖9.14軌跡檢測原理圖3.傾角檢測模塊本系統選用SCA61T單軸傾角傳感器。SCA61T是芬蘭VTI公司推出的一種高分辨率、低噪聲、穩定性好、抗沖擊能力強的單軸傾角傳感器芯片。它能夠測量90°~90°范圍的水平角度,具有SPI或模擬輸出接口、5V供電,比例電壓輸出等特點。芯片處于水平位置時,輸出2.5V,在傾斜時,以0.03V/度的變化速率輸出對應的電壓值。使用該角度傳感器完全可以滿足系統對角度平衡控制的要求,而且硬件接口簡單,編程也方便。圖9.15SCA61T引腳圖SCA61T引腳圖如圖9.15,引腳說明如表9-1。其中,沒有使用SPI接口時,SCK(引腳1),MISO(引腳2),MISI(引腳3)和CSB(引腳5)都需要懸空。當ST(引腳6)為邏輯1(供電電壓)時,可激活自檢,不用ST功能,引腳9懸空或者接地即可。選用比例電壓輸出方式來進行角度采集,不需ST功能,第7腳接入系統的模擬輸入端即可。圖9.15SCA61T引腳圖表9.1SCA61T引腳說明4.電機驅動電路采用專用芯片L298N作為電機驅動芯片。L298N是一個具有高電壓大電流的全橋驅動芯片,響應頻率高,一片L298N可以分別控制兩個電機,而且還帶有控制使能端。用該芯片作為電機驅動,操作方便,穩定性好,性能優良,而且電路簡單。L298N的ENA、ENB端使能,5、7、10、12引腳接到單片機I/O線上,通過對單片機的編程可以實現兩個直流電機的正反轉。具體電路圖如圖9.16所示。圖9.16電機驅動電路圖5.顯示模塊采用臺灣矽創電子公司生產的ST7920驅動液晶顯示器,ST7920芯片內置8192個中文漢字(16×16點陣)、128個字符的ASCII字符庫(8×16點陣)。128×64液晶顯示清晰、快速、信息量大、使用方便。ST7920驅動LCD本身帶有簡單中文字庫,可顯示4行8列漢字,漢字顯示可直接提示信息含義,具有人性化特點。ST7920可提供4位并行、8位并行、2線串行以及3線串行等多種接口方式,在本系統中采用3線串行接口方式,接口電路簡單,編程方便。6.聲光報警模塊聲音提示使用安徽中科大訊飛信息科技有限公司研發的XF-S4240語音合成模塊。XF-S4240模塊采用COB(ChipsOnBoard)封裝,可方便地集成到需要中文語音合成功能的嵌入式

溫馨提示

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

評論

0/150

提交評論