畢業設計基于單片機的智能電動車控制器設計_第1頁
畢業設計基于單片機的智能電動車控制器設計_第2頁
畢業設計基于單片機的智能電動車控制器設計_第3頁
畢業設計基于單片機的智能電動車控制器設計_第4頁
畢業設計基于單片機的智能電動車控制器設計_第5頁
已閱讀5頁,還剩44頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、基于單片機的智能電動車控制器設計摘要隨著市場的發展,電動車的市場日益遞增,實現并完善電動車的智能控制、簡單操作已經成為需求的一部分。運用單片機的硬件電路與軟件相結合的方法來實現電動車的加速、減速、測速等功能,使電動車的操縱更智能,更簡單,更安全,更加適應市場的需求。關鍵詞:直流電機、步進電機、89C51、測速電路1 引言隨著經濟的發展,人們收入的增多,衣食住行都發生這明顯的變化。自行車代步的年代已經過去,取而代之的是電動車,摩托車甚至是小汽車的普遍。但是相對而言,小汽車代價相對比較高昂,不是一般家庭能夠承擔得起,摩托車噪音大,事故率高,安全系數低,也被很多大小城市所禁止。相比前兩者,電動車有很

2、大的市場優勢,體型輕巧、環保、安全、經濟適用,成為眾多人心中的理想的代步工具。市場的強大需求,推動了電動車的飛速發展,越來越智能化。其中以單片機為核心的智能控制電動車將成為目前發展的一個方向,引領電動時代的潮流。今天,能源和環境對人類的壓力越來越大,要求盡快改善人類生存環境的呼聲越來越高。為了適應這個發展趨勢世界各國的政府、學術界、工業界正在加大對電動車開發的投資力度,加快電動車的商品化步伐。 中國作為電動車最大擁有國,電動車的發展與國外基本同步。我國在1992年就把電動車的開發列人國家“八五”重點科技攻關項目。98年我國發展電動車以來產量大幅增長,從1998年的5.8萬輛發展到2009年的2

3、369萬輛。目前我國電動車的保有量已經超過1.2億臺,此部分包括了未進入統計的一些小型工廠的銷量。截至目前為止我國電動車出口占全世界出口量的90%,雖然目前電動車在能源和行駛里程方面還未能盡如人意,但已足以滿足人們的基本需要。從技術發展的角度來看,在走過了漫長而艱難的發展歷程之后,電動車正面臨著重大的技術突破,有望成為21世紀的重要交通工具。 中國人口眾多,具有世界最龐大的電動車市場。目前自行車擁有量為4億多輛,如把10個自行車換成電動自行車,就需4000萬輛電動自行車以每輛均價500元計算,就是60個億,這是一個巨大的市場,有著強大的吸引力。 現代電動車是融合了電力、電子、機械控制、材料科學

4、以及化工技術等多種高新技術的綜合產品。整體的運行性能、經濟性等首先取決于控制系統,而控制系統更多的趨向于單片機控制。因為單片機更適合應用于嵌入式系統因此它得到了最多的應用。事實上單片機是世界上數量最多的計算機。現代人類生活中所用的幾乎每件電子和機械產品中都會集成有單片機。手機、電話、計算器、家用電器、電子玩具、掌上電腦以及鼠標等電腦配件中都配有1-2部單片機。而個人電腦中也會有為數不少的單片機在工作。汽車上一般配備40多部單片機復雜的工業控制系統上甚至可能有數百臺單片機在同時工作單片機的數量不僅遠超過PC機和其他計算的總和甚至比人類的數量還要多。單片機除了具備一般微型計算機的功能外,為了增強實

5、時控制能力,絕大部分單片機的芯片上還集成有定時器計數器。單片機在結構上的設計主要是面向控制的需要,因此,它的硬件結構、指令系統、和IO能力等方面均有其獨特之外,其顯著的特點之一就是非常有效的控制功能,為此,又稱為微控制器MCU。單片機自誕生以來,由于其固有的優點低成本、小體積、高可靠性、高附加值、通過更改軟件就可改變控制對象等,已越來越成為電子工程師設計師設計產品的首選器件之一。本次設計主要以ATM公司的89C51為核心元件,圍繞其外部硬件電路與軟件相結合的方式來控制電動車的加速、減速、測速等。2 總體方案設計2.1 整體設計單片機控制系統是一個集成電路,可以構成各種各樣的應用系統。與其他控制

6、系統相比,單片機具有以下特點:(1) 由于現在單片機的價格相對都比較低,而且外圍電路的元器件價格也不高,所以整體設計起來,成本比較低。(2) 可以對外部存儲容量根據需要進行擴展,設計可以相對比較靈活。(3) 由于現存有許多已經設計很完善的子程序,在系統軟件設計設計中可以直接調用,減少較大工作量。綜上所述,決定運用單片機系統,詳見下圖圖1: 單片機控制模塊電動機模塊速度顯示模塊測速模塊 圖1 結構框圖 本次設計主要是分為兩大部分:一部分是電機控制部分,另一部分是測速部分。首先,介紹一下電機控制部分,電機控制部分控制步驟:變動數據輸入數據的處理電動的狀態。數據輸入主要是通過數字電路或是模擬電路的方

7、法改變某一個量(電流、電壓、電阻)的變化,然后將這種變化輸送給單片機,單片機進行數據的采集、儲存、分析、處理,最終將以數字量的形式輸出,輸出電路根據數字信號的變化,再將變化轉變為電量的形式,輸送給電機,從而實現電機的速度、轉向的改變。接著,測速部分控制步驟:速度的采集數據的處理速度的顯示。速度的采集主要是通過S/T來獲得,S代表路程,T代表時間,通過額定的時間所行的路程,不過數據的采集主要采集S、時間T,而數據的處理則有單片機完成。單片機取兩個量的商,并對小數部分進行處理,將一個整型的數據類型輸送給顯示器,顯示根據單片機的指令進行顯示。上圖就是整個設計的模塊圖,不難看出,在整個設計模塊中,最為

8、核心的就是數據的處理,其實就是單片機。無論輸入量是什么類型,單片機都要根據輸出量來進行分析、處理,從而實現其各個功能。 2.2 單片機說明單片機系統中,起到控制和樞紐作用的單片機模塊無疑是其中最重要的部分。本設計中采用的是Atmel 公司的帶8KB Flash的8位微控制器AT89C51作為單片機芯片,它完全與MCS-51系列單片機兼容(從指令集到引腳)。芯片采用40腳雙列直插式封裝,32個I/O口,芯片工作電壓為3.8-5.5V,工作溫度為0-70度,工作頻率可達到30MHz。它是一種低功耗、高性能CMOS8位微控制器,具有8KB在系統可編程Flash存儲器,使用高密度非易失性存儲器技術制造

9、。片上Flash允許程序存儲器在系統可編程,亦適于常規編程器。 圖2 單片機最小系統 下面來介紹一下89C51單片機最小系統(如圖2),單片機最小系統指的是能單獨運行的最簡系統,一般只是包括5V電源、復位電路和晶振電路。電源就不多介紹了,具體介紹一下復位電路和晶振電路。復位電路:單片機的復位電路包含兩種,上電復位和手動復位。所謂上電復位,即當單片機加電時由相關電路產生一個復位信號,從而使單片機復位。手動復位指的是用戶根據需要使用按鍵等方式驅動單片機進行復位的一種電路。 STC單片機可以不使用復位電路,但是為了保證系統的穩定運行,一般要求至少要加上電復位電路。復位電路的構成方法有很多,比如專用復

10、位芯片、看門狗等,但是這些電路相對較為復雜,本設計的復位電路使用的是較為簡單的阻容復位電路。 由C3和R5構成一個上電復位電路,。當單片機上電時,因為電容兩端電壓不能突變,所以在單片機的RST引腳產生一個高電平,從而使單片機復位,隨著電容C3充電時間延長,電容充電電路逐漸下降,RST引腳的電壓也隨著下降。當電壓下降到一定程度時,RST引腳的電壓已經不足以使單片機復位,單片機從而進入到正常的工作狀態。 手動復位電路使用的按鍵復位電路,當用戶單擊SW1時,RST引腳出現一個高電平信號,強制驅使單片機進行復位。當用戶放開SW1時,RST引腳恢復為低電平,單片機開始正常運行。注意:當用戶單擊SW1時,

11、由C3、R6和SW1構成一個環路,C3在改回路上進行放電,所以R6不可缺少;如果缺少R6或者R6阻值太小,將可能會造成C3損壞。本設計采用手動復位的方法。震蕩電路:作用給單片機提供一個合適的工作頻率信號。一般而言,單片機的震蕩信號產生由兩種方法:單端驅動和雙端驅動。單端驅動即時使用一個外部的穩定時鐘信號直接輸入給單片機,該方法要求外部存在一個穩定的時鐘信號,一般由有源晶體振蕩器或者是其他IC產生。單端驅動目前已經很少使用,只有在嚴格要求系統同步的一些系統才會出現。 所謂雙端驅動就是說使用一個簡單的無源晶體振蕩器來構成振蕩電路。本設計使用的就是雙端方式,在單片機18和19號兩個振蕩信號輸入引腳間

12、接入一個頻率為11.0592MHz的無源晶體振蕩器構成一個振蕩電路。對于這種無源晶體振蕩器而言,其兩端一般要加入負載電容進行頻率的微調,對于11.0592MHz晶體振蕩器而言,一般使用2030pF的瓷片電容即可,此次是采用30pF的電容。為了保證單片機的運行,還有一些外圍電路也需要注意:尤其要注意EA引腳,當程序在單片機內部時,EA一定要連接到高電路,本設計電路EA腳已被拉高。單片機的內部單元的作用: 1:并行I/O接口:單片機芯片內有一項主要功能就是并行I/O口。51系列共有4個8位的并行I/O口,分別記作P0、P1、P2、P3每個口都包含一個鎖存器,一個輸出驅動器和輸入緩沖器。實際上,它們

13、已被歸入專用寄存器之列,并且具有字節尋址和位尋址功能。在訪問片外擴展存儲器時,低八位地址和數據由P0口分時傳送,高八位地址由P2口傳送。2:定時器/計數器:定時器/計數器(timer/counter)是單片機中的重要部件,其工作方式靈活、編程簡單,使用它對減輕CPU的負擔和簡化外圍電路都大有好處。 C51系列包含有兩個16位的可編程定時器/計數器分別稱為定時器/計數器T0和定時器/計數器T1;在C51部分產品中,還包含有一個用做看門狗的8位定時器。定時器/計數器的核心是一個加1計數引腳上施加器,其基本功能是加1功能。在單片機的定時器T0或T1中,有一個定時器發生由0到1的跳變時,計數

14、器增1,即為計數功能;在單片機內部對機器周期或其分頻進行計數,從而得到定時,這就是定時功能。在單片機中,定時功能和計數功能的設定和控制都是通過軟件來進行的。 定時器/計數器內部結構及其原理:由定時器0、定時器1、定時器方式寄存器TMOD和定時器控制寄存器TCON組成。當定時器/計數器設置為定時工作方式時,計數器對內部機器周期計數,每過一個機器周期,計數器加1,直至計滿溢出。定時器的定時時間與系統的振蕩頻率緊密相關,因為C51系列單片機的一個機器周期由12個振蕩脈沖組成,所以,計數頻率fc=fosc/12。 當定時器/計數器設置為計數工作方式時,計數器對來自輸入引腳T0(P3

15、.4)和T1(P3.5)的外部信號計數,外部脈沖的下降沿將觸發計數。在每個機器周期的S5P2期間采樣引腳輸入電平,若前一個機器周期采樣值為1,后一個機器周期采樣值為0,則計數器加1。新的計數值是在檢測到輸入引腳電平發生1到0的負跳變后,于下一個機器周期的S3P1期間裝入計數器中的,可見,檢測一個由1到0的負跳變需要兩個機器周期,所以最高檢測頻率為振蕩頻率的1/24。計數器對外部輸入信號的占空比沒有特別的限制,但必須保證輸入信號的高電平與低電平的持續時間在一個機器周期以上。3:振蕩器:XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內振蕩器。石晶振蕩和陶瓷振蕩均可采用

16、。如采用外部時鐘源驅動器件,XTAL2應不接。當輸入至內部時鐘信號時要通過一個二分頻觸發器,而對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。4:芯片擦除:整個PEROM陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms 來完成。在芯片擦除操作中,代碼陣列全被寫“1”且在任何非空存儲字節被重復編程以前,該操作必須被執行。AT89C51設有穩態邏輯,可以在低到零頻率的條件下靜態邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM、定時器、計數器、串口和中斷系統仍在工作。在掉電模式下,保存RAM的內容并且凍結振蕩器

17、,禁止所用其他芯片功能,直到下一個硬件復位為止。5:中斷系統:中斷系統是單片機的重要組成部分。實時控制、故障自動處理、單片機與外圍設備間的數據傳送往往采用中斷系統。中斷系統大大提高了系統的效率。 C51系統有關中斷的寄存器有4個,分別為中斷源寄存器TCON和SCON、中斷允許控制寄存器IE和中斷優先級控制寄存器IP;中斷源有5個,分別為外部中斷0請求INT0、外部中斷1請求INT1、定時器0溢出中斷請求TF0、定時器1溢出中斷請求TF1和串行中斷請求R1或T1。5個中斷源的排列順序由中斷優先級控制寄存器IP和順序查詢邏輯電路共同決定,5個中斷源分別對應5個固定的中斷入口地址。中斷的特

18、點是分時操作,實時處理和故障處理。單片機中斷系統用處較多,本設計中也有涉及,下面詳細的介紹一下89C51中斷系統中要用到的中斷類型。(1) 外部中斷源:AT89C51有INT0和INT1兩條外部中斷請求輸入線,用于輸入兩個外部中斷源的中斷請求信號,并允許外部中斷源以低電平或負邊沿兩種中斷觸發方式來輸入中斷請求信號。AT89C51究竟工作于哪種中斷觸發方式,可由用戶對定時器控制寄存器TCON中IT0和IT1位狀態的設定來選取。AT89C51在每個機器周期的S5P2時對INT0、線上中斷請求信號進行一次檢測,檢測方式和中斷觸發方式的選取有關。若AT89C51設定為電平觸發方式(IT0=0或IT1=

19、0),則CPU檢測到INT0、INT1上低電平時就可認定其上中斷請求有效;若設定為邊沿觸發方式(IT0=1或IT1=1),則CPU需要兩次檢測INT0、INT1線上電平方能確定其上中斷請求是否有效,即前一次檢測為高電平和后一次檢測為低電平時中斷請求才有效。(2) 定時器溢出中斷源:定時器溢出中斷由AT89C51內部定時器分的中斷源產生,故它們屬于內部中斷。AT89C51內部有兩個16位定時器/計數器,受內部定時脈沖(主脈沖經12分頻后)或T0/T1引腳上輸入的外部定時脈沖計數。定時器T0/T1在定時脈沖作用下從全“1”變成全“0”時可以自動向CPU提出溢出中斷請求,以表明定時器T0或T1的定時

20、時間已到。(3) 串行口中斷源:串行口中斷由AT89C51內部串行口的中斷源產生,也是一種內部中斷。串行口中斷分為串行口發送中斷和串行口接收中斷兩種。在串行口進行發送/接收數據時,每當串行口發送/接收完一組串行數據時串行口電路自動使串行口控制寄存器SCON中的RI或TI中斷標志位置位,并自動向CPU發出串行口中斷請求,CPU響應串行口中斷后便立即轉入串行口中斷服務程序執行。因此,只要在串行口中斷服務程序中安排一段對SCON中RI和TI中斷標志位狀態的判斷程序,便可區分串行口發生了接收中斷請求還是發送中斷請求。(4) 中斷標志:AT89C51在S5P2時檢測(或接收)外部(內部)中斷源發來的中斷

21、請求信號后先使相應中斷標志位置位,然后便在下個機器周期檢測這些中斷標志位狀態,以決定是否響應該中斷。3 分電路設計與論證 3.1 電動機模塊 3.1.1 方案選擇 方案一:采用直流電動機驅動,采用由多個三極管組成的電路,PWM是利用數字輸出對模擬電路進行控制的一種有效技術,尤其是在對電機的轉速控制方面,可大大節省能量。PWM 具有很強的抗噪性,且有節約空間、比較經濟等特點。模擬控制電路有以下缺陷:模擬電路容易隨時間漂移,會產生一些不必要的熱損耗,以及對噪聲敏感等。而在用了PWM技術后,避免了以上的缺陷,實現了用數字方式來控制模擬信號,可以大幅度降低成本和功耗。在單片機控制下,使之工作在占空比可

22、調的開關狀態,精準地調整電動機的轉速。這個電路由于管子工作的飽和截止模式下,效率很高,電子開關的速度很快,穩定性也很強。 方案二:采用步進電機驅動,步進電機是將電脈沖信號轉變為角位移或線位移的開環控制元步進電機件。在非超載的情況下,電機的轉速、停止的位置只取決于脈沖信號的頻率和脈沖數,而不受負載變化的影響,當步進驅動器接收到一個脈沖信號,它就驅動步進電機按設定的方向轉動一個固定的角度,稱為“步距角”,它的旋轉是以固定的角度一步一步運行的。可以通過控制脈沖個數來控制角位移量,從而達到準確定位的目的;同時可以通過控制脈沖頻率來控制電機轉動的速度和加速度,從而達到調速的目的。步進電機有一個技術參數:

23、空載啟動頻率,即步進電機在空載情況下能夠正常啟動的脈沖頻率,如果脈沖頻率高于該值,電機不能正常啟動,可能發生丟步或堵轉。在有負載的情況下,啟動頻率應更低。如果要使電機達到高速轉動,脈沖頻率應該有加速過程,即啟動頻率較低,然后按一定加速度升到所希望的高頻(電機轉速從低速升到高速)。步進電機必須加驅動才可以運轉,驅動信號必須為脈沖信號, 沒有脈沖的時候,步進電機靜止,如果加入適當的脈沖信號,就會以一定的角度(稱為步角)轉動。轉動的速度和脈沖的頻率成正比。結論:方案一與方案二相比,方案一PWM對調速系統來說,有如下優點:系統的響應速度和穩定精度等指標比較好;電樞電流的脈動量小,容易連續,而且可以不必

24、外加濾波電抗也可以平穩工作;系統的調速范圍寬;使用元件少、線路簡單。故而電動機驅動模塊選擇方案一。 直流電動機電路論證圖3 直流電動機電路設計電路如圖3所示,采用PWM脈沖寬度調制,PWM是對模擬信號電平進行數字編碼。通過計數器,使方波的占空比被調制,從而實現對模擬信號的電平進行編碼。PWM控制技術原理以結論:沖量相等而形狀不同的窄脈沖加在具有慣性的環節上時,其效果基本相同,為理論基礎,對半導體開關器件的導通和關斷進行控制,使輸出端得到一系列幅值相等而寬度不相等的脈沖,用這些脈沖來代替所需要的波形。一般情況下,調節脈寬調制信號的脈寬有兩種方法,一種方法是采用模擬電路中的調制方法,另一種方法是使

25、用脈沖計數法。對于一般電機控制,采用第一種方法在控制電壓變化時濾波的實現存在較大的困難,這主要是因為濾波頻率較低、濾波精度要求高和濾波電路的參數不易調整,而脈沖計數法相對來說,比較的容易控制,對外部信號要求也不高。因此,本設計采用由單片機控制實現的脈沖計數法。由直流電機的電壓平衡方程式: 其中I為電機線圈電流,R為線圈電阻,e為電機的反電勢。 e = C*,式中,C為電機結構常數,為一常量;為線圈磁通;為電機轉動角速度。于是將e代入電壓平衡方程式中,可得: U = C*+ IR 經過移項之后就可得出角速度和電壓的關系式: 從上式可以看出,改變外接電壓U,電機回路電阻R, 磁通,可改變電機轉速。

26、本實驗所用直流電機為永磁式, 磁通不可改變,而改變電機回路電阻R來調速的方式,相對比較的麻煩,所以本設計采用改變外接電壓U的調速方式。電動機正反轉原理:當DIR端輸入為高電平時,Q7和Q3導通,Q1與Q5關斷,此時圖中電動機上端為低電平,當PWM端輸入低電平時,Q4與Q8關斷,Q2和Q6導通,電流從Q2流向Q3,電動機正轉,而PWM端輸入高電平時,Q4和Q8導通,Q2和Q6關斷,沒有電流通過電動機;當DIR端輸入低電平時,Q7和Q3關斷,Q1和Q5導通,當PWM端為高電平時,Q4和Q8導通,Q2和Q6關斷,電流從Q1流向Q4,電動機反轉,若PWM端為低電平,則Q8和Q2關斷,沒有電流通過電動機

27、。 3.2 控制模塊 3.2.1 方案選擇 方案一:一個ADC0831串行逐次逼近式A/D轉換器,A/D轉換器是用來通過一定的電路將模擬量轉變為數字量。模擬量可以是電壓、電流等電信號,也可以是壓力、溫度、濕度、位移、聲音等非電信號。但在A/D轉換前,輸入到A/D轉換器的輸入信號必須經各種傳感器把各種物理量轉換成電壓信號。逐次逼近式A/D是比較常見的一種A/D轉換電路,轉換的時間為微秒級。逐次逼近法的A/D轉換器是由一個比較器、D/A轉換器、緩沖寄存器及控制邏輯電路組成。基本原理是從高位到低位逐位試探比較,好像用天平稱物體,從重到輕逐級增減砝碼進行試探。逐次逼近法轉換過程是:初始化時將逐次逼近寄

28、存器各位清零;轉換開始時,先將逐次逼近寄存器最高位置1,送入D/A轉換器,經D/A轉換后生成的模擬量送入比較器,稱為 Vo,與送入比較器的待轉換的模擬量Vi進行比較,若Vo<Vi,該位1被保留,否則被清除。然后再置逐次逼近寄存器次高位為1,將寄存器中新的數字量送D/A轉換器,輸出的 Vo再與Vi比較,若Vo<Vi,該位1被保留,否則被清除。重復此過程,直至逼近寄存器最低位。轉換結束后,將逐次逼近寄存器中的數字量送入緩沖寄存器,得到數字量的輸出。其中非CS為片選信號輸入端,Vin(+)和Vin(-)為差分輸入端,Vref為參考電壓輸入端,GND為接地端,Vcc為電源電壓輸入端,DO為

29、A/D轉化數據輸出端,CLK為時鐘信號輸入端。首先,將ADC0831的時鐘線拉低,再將片選段非CS置低電平,啟動A/D轉化。接下來在第一個時鐘信號的下降沿到來時,ADC0831的數據輸出端被拉低,準備輸出轉換數據。從時鐘信號的第2個下降沿到來開始,ADC0831開始輸出轉換數據,直到第9個下降沿為止,共8位,輸出順序為從最高位到最低位。方案二:通過數字電路的方式來實現電動機的旋轉,組合邏輯電路,它由最基本的邏輯門電路組合而成。其輸出值只與當時的輸入值有關,即輸出惟一地由當時的輸入值決定。電路沒有記憶功能,輸出狀態隨著輸入狀態的變化而變化。通過74HC244輸入開關量數據來控制小直流電動機的轉動

30、,兩個輸入分別連接74HC244的2A2,2A4,輸出兩端通過兩個74HC32連接直流電動機電源。小直流電動機的原理是:轉動方向是由電壓來控制的,電壓為正則正轉,為負則反轉,轉動速度大小則是由輸出脈沖的占空比來控制的,正向占空比越大則轉速就越快,反向轉則占空比越小就轉速越快。結論:通過方案一與方案二的比較,方案一相對而言,其優點是速度較高、功耗低,在低分辯率時價格便宜,將模擬量輸送給單片機,由單片機進行分析處理,使數字量的的更加的精準,操作起來直接,方便,對電機的轉速的調整更穩定,故而選擇方案一。 3.2.2 電動機轉速控制電路論證圖4 電動機轉速控制電路如圖4所示,實際上電動機的轉速控制主要

31、運用了一個模數轉換,模數轉換器即A/D轉換器或簡稱ADC。通常是指一個將模擬信號轉變為數字信號的電子元件。通常的模數轉換器是將一個輸入電壓信號轉換為一個輸出的數字信號。由于數字信號本身不具有實際意義,僅僅表示一個相對大小。故任何一個模數轉換器都需要一個參考模擬量作為轉換的標準,比較常見的參考標準為最大的可轉換信號大小。而輸出的數字量則表示輸入信號相對于參考信號的大小。 模數轉換器輸出數據:其中V為待轉換的電壓,而Vref為模數轉換器的參考電壓,N為模數轉換器的轉換位數。模數轉換器最重要的參數是轉換的精度,通常用這個位數的多少表示。轉換器能夠準確輸出的數字信號的位數越多,表示轉換器能夠分辨輸入信

32、號的能力越強,轉換器的性能也就越好。 為將時間連續、幅值也連續的模擬量轉換為時間離散、幅值也離散的數字信號,A/D轉換一般要經過采樣、保持、量化及編碼4個過程。在實際電路中,有些過程是合并進行的,如采樣和保持,量化和編碼在轉換過程中是同時實現的。本次設計主要以ADC0831控制的A/D轉換電路,其中電位器作為ADC0831的模擬量輸入,最大輸入電壓及參考電壓均為5V,數字量輸出范圍為0<Dout<255。首先,單片機的PWM端輸出高電平,再延時一段時間,延時常數為255-Dout。在輸出低電平,延時常數為Dout,這樣,通過改變模擬量輸出電壓的大小,就可以改變單片機PWM輸出的占空

33、比,改變輸入電流的大小,從而達到調節電動機轉速的目的。單片機的P3.3口接一單刀雙擲開關,當開關輸入高電平時,單片機的DIR端輸出高電平,控制電動機正轉;開關輸入低電平時,單片機的DIR端輸出低電平,控制電動機反轉。 3.3 測速模塊 3.3.1 方案選擇方案一:紅外傳感器,紅外輻射的物理本質是熱輻射。一個熾熱物體向外輻射的能量大部分是通過紅外線輻射出來的。物體的溫度越高,輻射出來的紅外線就越多,輻射的能量就越強。而且,紅外線被物體吸收。可以顯著的轉變為熱能。 紅外輻射和所有的電磁波一樣,是一波的形式在空間直線傳播的。紅外線傳感器包括光學系統、檢測元件和轉換電路,。檢測元件按工作原理可分為熱敏

34、檢測元件和光電檢測元件。熱敏元件應用最多的是熱敏電阻。熱敏電阻受到紅外線輻射時溫度升高,電阻發生變化,通過轉換電路變成電信號輸出。光電檢測元件常用的是光敏元件,通常由硫化鉛、硒化鉛、砷化銦、砷化銻、碲鎘汞三元合金、鍺及硅摻雜等材料制成。本設計的紅外傳感器是光電檢測元件,主要通過兩個紅外探測器的圓弧距離和通過這段圓弧所需的時間相除就可得出速度。通過圓弧所需的則正好是連續兩個脈沖的時間間隔,也就是連續兩次中斷的時間間隔。方案二:霍爾開關元器件來測量小車的速度,霍爾效應是指磁場作用于載流金屬導體、半導體中的載流子時,產生橫向電位差的物理現象。當電流通過金屬箔片時,若在垂直于電流的方向施加磁場,則金屬

35、箔片兩側面會出現橫向電位差。半導體中的霍爾效應比金屬箔片中更為明顯,而鐵磁金屬在居里溫度以下將呈現極強的霍爾效應。由于通電導線周圍存在磁場,其大小與導線中的電流成正比,故可以利用霍爾元件測量出磁場就可確定導線電流的大小。利用這一原理可以設計制成霍爾電流傳感器。若把霍爾元件置于電場強度為E、磁場強度為H的電磁場中,則在該元件中將產生電流I,元件上同時產生的霍爾電位差與電場強度E成正比,如果再測出該電磁場的磁場強度,則電磁場的功率密度瞬時值P可由P=EH確定。本設計具體實現方法:把霍爾器件A44E安裝在固定軸上,在輪子上裝小磁鐵;小車輪子運動就會帶動小磁鐵轉;當霍爾器件A44E感應到小磁鐵時,就會

36、輸出一個脈沖;單片機通過檢測脈沖的個數,再根據小車車輪的半徑算出小車的速度。結論:方案一與方案二相比,霍爾開關對路況要求較高,而且是機械元器件,容易損壞,而紅外傳感相紅外線敏感的光敏電阻和PN結型光生伏特效應器件,它們能在低溫下工作,靈敏度高,響應速度快,故而選擇方案一。 3.3.2 測速電路論證圖5 測速電路如圖5,紅外傳感器是用光敏電阻組成光敏探測器。光敏電阻的阻值可以跟隨周圍環境光線的變化而變化,將阻值的變化值經過比較器就可以輸出高低電平; R11限制發射二極管的電流。發射管的電流大則發射功率大,但不能超過它的極限電流,它的極限輸入正向電流為50mA。從圖中可以看出,若被檢測物表面為白色

37、,發射光全部反射,光電三極管導通,經反相后輸出高電平“1”;反之,則輸出為低電平“0”。LM339集成塊內部裝有四個獨立的電壓比較器,該電壓比較器的特點是:失調電壓小,典型值為2mV;電源電壓范圍寬,單電源為2-36V,雙電源電壓為±1V-±18V;對比較信號源的內阻限制較寬;共模范圍很大,為Ucc(0-1.5V)Vo;差動輸入電壓范圍較大,大到可以等于電源電壓;輸出端電位可靈活方便地選用。本次設計就是利用了其中一個電壓比較器,本電路組成的是一個基本單限比較器,輸入信號是引腳6,即待比較電壓,它加到反相輸入端,在同相輸入端接一個參考電壓(門限電平)是引腳7。當輸入電壓U7&

38、gt;U6時,輸出為高電平UOH。經過LM339的處理將其轉變為脈沖,然后將脈沖數據交單片機處理,單片機計算一定時間內脈沖的個數,由計數值轉變為速度值并送數碼管顯示速度。當紅外發射、接收管都正常工作時,LM339的負輸入端6為低電平,輸出端1為高電平;當紅外接收管被外物擋住是,紅外接收管不工作,LM339的負輸入端6為高電平,輸出端1為低電平,單片機程序設置為外部中斷下降沿觸發有效,實現了中斷觸發功能。 3.4 顯示模塊 3.4.1 模塊選擇方案一:LED顯示器是單片機應用系統中常見的輸出器件,而在單片機的應用上也是被廣泛運用的。如果需要顯示的內容只有數碼和某些字母,使用LED數碼管是一種較好

39、的選擇。LED數碼管顯示清晰、成本低廉、配置靈活,與單片機接口簡單易行。LED數碼管作為顯示字段的數碼型顯示器件,它是由若干個發光二極管組成的。當發光二極管導通時,相應的一個點或一個筆畫發亮,控制不同組合的二極管導通,就能顯示出各種字符,常用的LED數碼管有7段和“米”字段之分。這種顯示器有共陽極和共陰極兩種。共陰極LED顯示器的發光二極管的陰極連在一起,通常此共陰極接地。當某個發光二極管的陽極為高電平時,發光二極管點亮,相應的段被顯示。同樣,共陽極LED顯示器的發光二極管的陽極接在一起,通常此共陽極接正電壓,當某個發光二極管的陰極接低電平時,發光二極管被點亮,相應的段被顯示。 采用

40、三個8段共陽極的LED數碼管,顯示方式為動態(掃描)顯示的方式。其中A、B、C、D分別連接P0.0、P0.1、P0.2、P0.3。動態掃描有以下特點:第一,能顯著降低顯示器的功耗,這對于采用電池供電的便攜式數字儀表尤為重要;第二,能大大減少顯示器的外部引線,給印制板的設計和安裝帶來方便;第三,能采用BCD碼多路輸出的方式,不僅使譯碼、驅動電路大為簡化,還可以與微機相連;第四,只要位掃描信號頻率足夠高,由于人眼的“視覺暫留”現象,就觀察不到閃爍現象。方案二:顯示部分采用是1602字符液晶模塊,字符型液晶顯示模塊是一種專門用于顯示字母、數字、符號等點陣式LCD,液晶顯示的原理是利用液晶的物理特性,

41、通過電壓對其顯示區域進行控制,有電就有顯示,這樣即可以顯示出圖形。液晶顯示器具有厚度薄、適用于大規模集成電路直接驅動、易于實現全彩色顯示的特點,帶中文字庫的128X64是一種具有4位/8位并行、2線或3線串行多種接口方式,內部含有國標一級、二級簡體中文字庫的點陣圖形液晶顯示模塊;其顯示分辨率為128×64, 內置8192個16*16點漢字,和128個16*8點ASCII字符集。利用該模塊靈活的接口方式和簡單、方便的操作指令,可構成全中文人機交互圖形界面。可以顯示8×4行16×16點陣的漢字. 也可完成圖形顯示.低電壓低功耗是其又一顯著特點。由該模塊構成的液晶顯示方

42、案與同類型的圖形點陣液晶顯示模塊相比,不論硬件電路結構或顯示程序都要簡潔得多,且該模塊的價格也略低于相同點陣的圖形液晶模塊。它能同時顯示16*2(16字2行)即32個字符,1602液晶模塊的控制器采用的是HD44780。 結論:方案一與方案二相比,方案二的顯示雖功能強大,但外圍電路較多,本設計要求不高,而且方案一比較的經濟,實用,控制簡單,故而選擇方案一。 3.4.2 顯示電路論證圖6 顯示電路電路圖6所示,利用單片機的P0、P1口,P0口分別控制數碼管的位選碼,而P1口則控制段選碼,采用的是動態掃描的方法,動態顯示方式是指一位一位地輪流點亮每位顯示器(稱為掃描),即每個數碼管的位選被輪流選中

43、,多個數碼管公用一組段選,段選數據僅對位選選中的數碼管有效。對于每一位顯示器來說,每隔一段時間點亮一次。顯示器的亮度既與導通電流有關,也與點亮時間和間隔時間的比例有關。通過調整電流和時間參數,可以既保證亮度,又保證顯示。若顯示器的位數不大于8位,則顯示器的公共端只需一個8位I/O口進行動態掃描(稱為掃描口),控制每位顯示器所顯示的字形也需一個8位口(稱為段碼輸出)。 實現動態掃描的方案很多,在數字電路中大致可分成兩種:第一種方案是間接控制法,即把位選通信號加至譯碼驅動器的消隱控制端,間接地控制LED顯示器的亮滅。該方案是對靜態顯示的改進,主要起到降低顯示功耗的作用,而且對電路的要求比較的復雜。

44、第二種方案是直接驅動法,它是利用位選通信號直接驅動各位LED顯示器,起到簡化電路的方法,但功耗相對提高。由于本設計中的電路是簡單電路,整體功耗并不高,為了簡化電路,簡單操作,所以設計中運用的直接驅動的方法,這樣能使編程更加的簡單,有利于程序的編寫。4 軟件設計 4.1系統主程序流程圖 主程序首先判斷輸入電壓的狀態,實際也是電動機啟動的一個開關,隨著輸入電壓的改變,轉速改變。一旦有電壓的輸入,就立即判斷電動機的正反轉,通過開關也可以改變狀態,與此同時,測速系統啟動,輸出相應速度值。 開始中斷初始化開啟中斷ADC輸入數據SW? 1 0調用反轉函數調用正轉函數反轉正轉測速中斷標志位 小于2 標志位清

45、零 等于2計算、輸出速度顯示結束 4.2 各子程序流程圖 4.2.1 電動機控制流程圖開始初始化,設置常量啟動A/D轉換器,讀取轉換數據,存入開關位置1?DIR位置1,正轉DIR位置0,反轉PWM位置1PWM位置0以AD_TMP為延時常數,調用延時程序以AD_TMP為延時常數,調用延時程序PWM位置1PWM位置0以255-AD_TMP為延時常數,調用延時程序以255-AD_TMP為延時常數,調用延時程序 4.2.2 測速顯示流程圖開始中斷初始化判斷是否到中斷次數?否是計算速度,讀取數值分別選擇位選碼,動態輸出顯示碼完全顯示速度值中斷次數清零 4.3 程序 #include<reg51.h

46、> #include<intrins.h> #define uchar unsigned char #define unit unsigned int unsigned char led=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; unsigned char K=100;/相鄰兩個紅外線探測器之間的圓弧長度,這里預設為100mm unsigned int t0_num = 0;/t0 定時器中斷次數計算 unsigned int speed;/用來存儲計算出速度,單位為km/h unsigned char int0_f

47、lag = 0;/int0的中斷標志位 unsigned char t0_max = 65000;/定時器t0的最大中斷次數,防止當車輪不轉時,數據溢出 sbit CS=P20; sbit CLK=P24; sbit D0=P25; sbit PWM=P37; sbit SW=P33; sbit DIR=P36; sbit ACC0=ACC0; uchar AD_TMP,time; /* 延時函數 * void delay(uchar ms) int i; while (ms-) for(i=0;i<38;i+); /* ADC0831轉換數據讀入函數 */ unsigned char

48、AD_CONV(void) unsigned char i; unsigned char Data; CLK=0; CS=0; _nop_(); CLK=1; _nop_(); CLK=0; _nop_(); CLK=1; _nop_(); CLK=0; _nop_(); for (i=8;i>0;i-) Data<<=1; if(D0) Data+; CLK=1; _nop_(); CLK=0; _nop_(); CS=1; CLK=0; for(i=40;i>0;i-) _nop_(); return(Data); /* 電動機正轉函數 */ void POS() DIR=1; PWM=1; time=AD_TMP; delay(time); PWM=0; time=255-time; delay(time); /* 電動機反轉函數 */ void NEG() DIR=0; PWM=0; time=AD_TMP; delay(time); PWM=1; time=255-AD_TMP; delay(time); /* 主函數 */ Void main() /初始化中斷,下降沿有效 EA=0; IT0=1; EX0=1; /初始化定時器T0,方式2,8位自動重載方式。在6MHz主頻時,定時間隔為512us

溫馨提示

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

評論

0/150

提交評論