喜歡這套資料就充值下載吧。。。資源目錄里展示的都可在線預(yù)覽哦。。。下載后都有,,請(qǐng)放心下載,,文件全都包含在內(nèi),,【有疑問咨詢QQ:414951605 或 1304139763】
==========================================喜歡這套資料就充值下載吧。。。資源目錄里展示的都可在線預(yù)覽哦。。。下載后都有,,請(qǐng)放心下載,,文件全都包含在內(nèi),,【有疑問咨詢QQ:414951605 或 1304139763】
==========================================
黑龍江工程學(xué)院本科生畢業(yè)設(shè)計(jì)
摘 要
本文介紹的節(jié)能車競賽車(HLJIT-3A型)電器系統(tǒng)設(shè)計(jì)分為節(jié)能車車速里程表的設(shè)計(jì)和對(duì)點(diǎn)火系統(tǒng)的改進(jìn)兩個(gè)部分。其中,里程表設(shè)計(jì)以單片機(jī)和霍爾開關(guān)傳感器為核心,再利用Keill軟件進(jìn)行C語言編程。傳感器將不同車速轉(zhuǎn)變成的不同頻率的脈沖信號(hào)輸入到單片機(jī)進(jìn)行控制與計(jì)算,再采用LCD模塊進(jìn)行顯示,使得節(jié)能競賽車的最大車度、平均車速、瞬時(shí)車速、里程、圈數(shù)、時(shí)間等輔助駕駛參數(shù)能直觀的顯示給駕駛員,能夠更佳有效、可靠的幫助駕駛員完成比賽。
對(duì)點(diǎn)火系統(tǒng)的改進(jìn)則是將原來的CDI點(diǎn)火器(電容放電式點(diǎn)火器)改進(jìn)成自動(dòng)進(jìn)角直流點(diǎn)火器。與原CDI點(diǎn)火器相比,自動(dòng)進(jìn)角直流點(diǎn)火器點(diǎn)火能量更大,更穩(wěn)定,點(diǎn)火時(shí)刻更準(zhǔn)確,增加了點(diǎn)燃沖程和排氣沖程的點(diǎn)火觸發(fā)次數(shù),這樣發(fā)動(dòng)機(jī)混合氣燃燒十分充分且更節(jié)能更節(jié)省燃料,不會(huì)出現(xiàn)燃燒不徹底、火花塞積碳不能正常工作等現(xiàn)象。并且該點(diǎn)火器接線簡單,安裝方便,性能穩(wěn)定,少受外界溫度與濕度的影響,有自動(dòng)變角功能,變角曲線好,適應(yīng)發(fā)動(dòng)機(jī)轉(zhuǎn)速工況等優(yōu)點(diǎn)。
關(guān)鍵詞:單片機(jī);LCD顯示屏;霍爾開關(guān)傳感器;CDI;直流點(diǎn)火器
ABSTRACT
This article describes the energy-saving car race car (HLJIT-3A type) electrical system design into efficient car odometer ignition system design and improvement of two parts. Among them, the odometer designed to minimize the system microcontroller and Hall switch sensor at the core. Sensors into a different speed pulse signals of different frequencies to control the input to the microcontroller and calculation, and then used to display LCD module, making the race cars, the largest energy-saving vehicles, average speed, instantaneous speed, distance, laps, time and other auxiliary parameters can directly drive the display to the driver, to better and effective, and reliable help the driver to finish the game.
Improvement of the ignition system sucked the original CDI ignition (capacitive discharge ignition) improved to automatically into the current ignition angle. Compared with the original CDI ignition, automatic ignition angle of the DC ignition energy larger, more stable, more accurate ignition timing, increasing the light stroke and exhaust stroke of the ignition trigger number, so that the mixture combustion engine and more energy is sufficient more fuel-efficient, complete combustion does not occur, carbon spark plug does not work and so on. And that the ignition wiring simple, easy installation, stable performance and less susceptible to external temperature and humidity, with automatic angle function, variable angle curve is good, adapt to engine speed condition and so on.
Key words: SCM;LCD display;Hall switch sensor;Keill;DC-CDI;
II
黑龍江工程學(xué)院本科生畢業(yè)設(shè)計(jì)
目 錄
摘要 I
Abstract II
第1章 緒論 1
1.1 課題背景、目的及意義 1
1.2系統(tǒng)設(shè)計(jì)概述 1
1.3 各章節(jié)的安排 2
第2章 節(jié)能車車速里程表的硬件設(shè)計(jì) 3
2.1 車速里程表設(shè)計(jì)的總體概述 3
2.2 里程表系統(tǒng)設(shè)計(jì)總框圖 3
2.3 車速傳感器的選擇 4
2.3.1 A3144E的特性 5
2.3.2 A3144E芯片的引腳及功能 5
2.3.3 A3144E的磁輸入檢測(cè) 6
2.3.4 A3144E的導(dǎo)通距離測(cè)量 6
2.3.5 硬件電路的設(shè)計(jì) 7
2.4 單片機(jī)最小系統(tǒng) 7
2.4.1 單片機(jī)最小系統(tǒng)的機(jī)構(gòu) 8
2.4.2 單片機(jī)最小系統(tǒng)的性能 9
2.5 LCD液晶顯示模塊 10
2.5.1 主要技術(shù)參數(shù)和顯示特性 10
2.5.2 顯示模塊引腳說明及連接 11
2.6 本章小結(jié) 12
第3章 節(jié)能車車速里程表的軟件設(shè)計(jì) 13
3.1 軟件編程的總體設(shè)計(jì) 13
3.2 軟件流程圖 13
3.3 數(shù)據(jù)處理 15
3.4 里程表各部分程序 15
3.4.1 主程序 15
3.4.2 串口中斷服務(wù)程序 17
3.4.3 顯示模塊程序 18
3.4.4 測(cè)速系統(tǒng)程序 23
3.4.5 中斷服務(wù)程序 26
3.4.6 屏幕切換與LOGO程序 27
3.5 本章小結(jié) 31
第4章 點(diǎn)火系的優(yōu)化與改進(jìn) 32
4.1 節(jié)能競賽車點(diǎn)火系的現(xiàn)狀分析 32
4.1.1 當(dāng)前點(diǎn)火系(CDI)存在的問題分析 32
4.1.2 解決CDI點(diǎn)火器存在問題的基本思路 34
4.2 改進(jìn)后的自動(dòng)進(jìn)角直流點(diǎn)火器 35
4.3改進(jìn)后點(diǎn)火器的優(yōu)點(diǎn)及安裝方法 38
4.3.1 點(diǎn)火器改進(jìn)后所具備的優(yōu)點(diǎn) 38
4.3.2 點(diǎn)火器的安裝方法 38
4.4 本章小結(jié) 38
結(jié)論 40
參考文獻(xiàn) 41
致謝 42
附錄 43
黑龍江工程學(xué)院本科生畢業(yè)設(shè)計(jì)
第1章 緒 論
1.1 課題背景、目的及意義
為了提高我校節(jié)能競賽車的整體設(shè)計(jì)與可以在大賽中獲得更好的成績,那么電器系統(tǒng)的提高和完善是具有必然意義的。電器系統(tǒng)的改善,可以使駕駛員獲得更多的輔助駕駛參數(shù),這些參數(shù)有助于駕駛員更好的駕駛,并且可以使駕駛員對(duì)整車的工作狀況有所掌握與了解。
目前我校的節(jié)能競賽車電器系統(tǒng)是由摩托車的電器系統(tǒng)簡單改裝而來,點(diǎn)火系統(tǒng)是電容放點(diǎn)式點(diǎn)火系統(tǒng)(CDI),并且行駛里程表是由一塊碼表來代替,目前節(jié)能競賽車的電器系統(tǒng)現(xiàn)狀可以說是比較簡陋和落后的,而本次設(shè)計(jì)是要改善節(jié)能車的點(diǎn)火系統(tǒng)和增加轉(zhuǎn)速測(cè)量系統(tǒng),即數(shù)字型里程表。
改善后的電器系統(tǒng)將會(huì)給節(jié)能車的整體水平及競技水平提升到一個(gè)新的高度,更增加了一些色彩和亮點(diǎn),也將使我校的節(jié)能車在大賽中更具有競爭力,獲得更好的佳績。而在汽車技術(shù)發(fā)展日新月異的今天,“節(jié)能、環(huán)保、安全”已成為未來汽車工業(yè)發(fā)展的主題,而節(jié)能車大賽的目的便是讓我們這些身在大學(xué)校園中的學(xué)子們通過實(shí)踐和競賽體會(huì)節(jié)能的意義。因此,盡早的認(rèn)識(shí)到減少能源消耗與降低污染對(duì)未來的汽車發(fā)展方向具有重要的實(shí)際意義。
1.2系統(tǒng)設(shè)計(jì)概述
本設(shè)計(jì)中,車速測(cè)量系統(tǒng)我們以STC89C52單片機(jī)為控制核心,采用霍爾開關(guān)傳感器檢測(cè)節(jié)能車輪胎的運(yùn)轉(zhuǎn)情況,通過一定的采集信號(hào)和計(jì)算后,由LCD液晶顯示屏顯示節(jié)能車的車速、里程、時(shí)間等輔助駕駛參數(shù)。本設(shè)計(jì)中,計(jì)數(shù)的正確性決定了本裝置的精度,如何在復(fù)雜的環(huán)境中得到正確的計(jì)數(shù)脈沖,是本設(shè)計(jì)的難點(diǎn),初步的解決辦法是在硬件上進(jìn)行合理的濾波,軟件上利用Keil進(jìn)行一定的算法處理和C語言的編寫;而點(diǎn)火系統(tǒng)的設(shè)計(jì)中,采用自動(dòng)進(jìn)角直流點(diǎn)火器,此點(diǎn)火器電路由振蕩器電路、控制電路、電容放電電路、提前角控制電路、觸發(fā)信號(hào)處理電路等五部分組成。自動(dòng)進(jìn)角點(diǎn)火器能使發(fā)動(dòng)機(jī)的性能明顯提高。
本設(shè)計(jì)中的里程表的設(shè)計(jì)具有結(jié)構(gòu)簡單,成本低廉,顯示清晰,穩(wěn)定可靠等優(yōu)點(diǎn),并且可進(jìn)行擴(kuò)充,加入時(shí)速表的功能,更加方便的了解駕駛員當(dāng)時(shí)所處的情況;而改進(jìn)后的自動(dòng)進(jìn)角直流點(diǎn)火器啟動(dòng)性能大大優(yōu)于普通的交流點(diǎn)火器,具有怠速更加穩(wěn)定,高速明顯提高,震動(dòng)降低,更省油等優(yōu)點(diǎn)。
1.3 各章節(jié)的安排
第一章敘述了節(jié)能車?yán)锍瘫淼谋尘啊l(fā)展、意義以及本自行車?yán)锍瘫淼母攀觥?
第二章介紹了節(jié)能車?yán)锍瘫淼脑O(shè)計(jì)方法與研究,介紹了節(jié)能車?yán)锍瘫淼目傮w設(shè)計(jì)思想,電路圖及其原理,硬件實(shí)現(xiàn)。主要是對(duì)設(shè)計(jì)中所需設(shè)備的詳細(xì)介紹,包括霍爾開關(guān)傳感器、單片機(jī)最小系統(tǒng)、脈沖測(cè)量、及LCD液晶顯示屏。具體為:介紹霍爾開關(guān)傳感器的基本原理,單片機(jī)最小系統(tǒng)的基本結(jié)構(gòu),工作原理及其性能;脈沖測(cè)量的算法及其實(shí)現(xiàn),LCD液晶顯示屏的工作原理。
第三章是節(jié)能車?yán)锍瘫淼能浖?shí)現(xiàn)部分,主要介紹單片機(jī)編程實(shí)現(xiàn)頻率測(cè)量、車速、里程、時(shí)間、行駛?cè)?shù)、平均車速、最大車速的功能。
第四章是對(duì)點(diǎn)火系的優(yōu)化與改進(jìn),與現(xiàn)有點(diǎn)火系的對(duì)比,改進(jìn)后的優(yōu)點(diǎn)以及自動(dòng)進(jìn)角直流點(diǎn)火器的工作原理等。
總結(jié),是介紹了本設(shè)計(jì)實(shí)現(xiàn)的功能,闡述本課題的現(xiàn)實(shí)意義,以及對(duì)未來節(jié)能車?yán)锍瘫砑夹g(shù)的展望。
第2章 節(jié)能車車速里程表的硬件設(shè)計(jì)
2.1 車速里程表設(shè)計(jì)的總體概述
本系統(tǒng)是由數(shù)據(jù)采集,單片機(jī)控制系統(tǒng),顯示電路顯示,3部分構(gòu)成。其中數(shù)據(jù)的采集是由霍爾開關(guān)傳感器來完成的,它的輸出是0、1高低電平,經(jīng)過霍爾開關(guān)傳感器內(nèi)部集成電路進(jìn)行濾波整形后就向單片機(jī)系統(tǒng)提供轉(zhuǎn)速信號(hào)。其中關(guān)鍵的處理由單片機(jī)系統(tǒng)來完成,單片機(jī)將對(duì)INT0腳的信號(hào)進(jìn)行計(jì)數(shù),當(dāng)計(jì)數(shù)的脈沖達(dá)到設(shè)定值的時(shí)候,INT1申請(qǐng)中斷,對(duì)外輸出信號(hào),輸出的信號(hào)由顯示部分送LCD顯示屏進(jìn)行顯示,顯示當(dāng)前的行駛里程、車速、時(shí)間等情況。在本次行駛過后關(guān)掉電源開關(guān),所有數(shù)據(jù)清零,以便下次駕駛員行駛時(shí)更加方便、有效的讀取數(shù)據(jù),以上所訴就是整個(gè)系統(tǒng)的總體設(shè)計(jì)思想。
利用霍爾元件對(duì)里程和車速進(jìn)行測(cè)量。將霍爾元件安裝在車前輪的一側(cè),在車圈側(cè)面等間隔貼若干個(gè)磁鐵。當(dāng)磁鐵經(jīng)過霍爾元件時(shí),霍爾元件輸出端的電壓發(fā)生變化產(chǎn)生高低電平,單片機(jī)根據(jù)脈沖數(shù)來計(jì)算里程?;魻栐皇芴鞖獾挠绊懀幢惚荒嗌郴蚧覊m覆蓋對(duì)測(cè)量也不會(huì)有任何影響?;魻栭_關(guān)傳感器具有輸出響應(yīng)快、體積小、安裝方便、性能可靠、不受光線、泥水等因素影響,價(jià)格便宜的優(yōu)點(diǎn)。
該設(shè)計(jì)能實(shí)時(shí)地將所測(cè)的累計(jì)里程數(shù)顯示出來,主要是將傳感器輸入到單片機(jī)的脈沖信號(hào)的頻率(傳感器將不同車速轉(zhuǎn)變成不同頻率的脈沖信號(hào))實(shí)時(shí)地測(cè)量出來,考慮到信號(hào)的衰減、干擾等影響,在信號(hào)送入單片機(jī)前開關(guān)型霍爾開關(guān)傳感器內(nèi)部的集成電路對(duì)其進(jìn)行放大整形,然后通過單片機(jī)計(jì)算出里程,并由LCD顯示模塊交替顯示所測(cè)里程。本設(shè)計(jì)的里程數(shù)的算法是一種大概的算法(假設(shè)在一定時(shí)間內(nèi)自行車是勻速行進(jìn),平均速度與時(shí)間的乘積即為里程數(shù))。
設(shè)計(jì)時(shí),應(yīng)綜合考慮測(cè)速精度和系統(tǒng)反應(yīng)時(shí)間。本設(shè)計(jì)用測(cè)量高低電平的頻率來計(jì)算速度,因而具有較高的測(cè)速精度。在計(jì)算里程時(shí)取了節(jié)能車的理想狀態(tài)。實(shí)際中,誤差控制在幾米之內(nèi),相對(duì)于整個(gè)里程來說不是很大。另外,還應(yīng)盡量保證其他子模塊在編程時(shí)的通用性和高效性。本設(shè)計(jì)的里程值采用4位顯示。
2.2 里程表系統(tǒng)設(shè)計(jì)總框圖
如圖2.1所示,為里程表設(shè)計(jì)總框圖,明確了里程表的設(shè)計(jì)思路。
顯示電路
STC89C52
計(jì)數(shù)脈沖送信號(hào)至T0
電源開關(guān)
在線擦寫程序
霍爾傳感器
圖2.1 系統(tǒng)總框圖
2.3 車速傳感器的選擇
對(duì)車速進(jìn)行檢測(cè)的傳感器目前被廣泛使用的有三種,分別是磁電式車速傳感器、霍爾式車速傳感器、光電式車速傳感器。
磁電式車速傳感器是一個(gè)模擬交流信號(hào)發(fā)生器,它們產(chǎn)生交變電流信號(hào),通常由帶兩個(gè)接線柱的磁芯及線圈組成。這兩個(gè)線圈接線柱是傳感器輸出的端子,當(dāng)由鐵質(zhì)制成的環(huán)狀翼輪(有時(shí)稱為磁組輪)轉(zhuǎn)動(dòng)經(jīng)過傳感器時(shí),線圈里將產(chǎn)生交流電壓信號(hào)。磁組輪上的逐個(gè)齒輪將產(chǎn)生一一對(duì)應(yīng)的系列脈沖,其形狀是一樣的。輸出信號(hào)的振幅(峰對(duì)峰電壓)與磁組輪的轉(zhuǎn)速成正比(車速),信號(hào)的頻率大小表現(xiàn)于磁組輪的轉(zhuǎn)速大小。
霍爾效應(yīng)傳感器(開關(guān))在汽車應(yīng)用中是十分特殊的,這主要是由于變速器周圍空間位置沖突,霍爾效應(yīng)傳感器是固體傳感器,它們主要應(yīng)用在曲軸轉(zhuǎn)角和凸輪軸位置上,用于開關(guān)點(diǎn)火和燃油噴射電路觸發(fā),它還應(yīng)用在其它需要控制轉(zhuǎn)動(dòng)部件的位置和速度控制電腦電路中。
光電式車速傳感器是固態(tài)的光電半導(dǎo)體傳感器,它由帶孔的轉(zhuǎn)盤兩個(gè)光導(dǎo)體纖維,一個(gè)發(fā)光二極管,一個(gè)作為光傳感器的光電三極管組成。 一個(gè)以光電三極管為基礎(chǔ)的放大器為發(fā)動(dòng)機(jī)控制電腦或點(diǎn)火模塊提供足夠功率的信號(hào),光電三極管和放大器產(chǎn)生數(shù)字輸出信號(hào)(開關(guān)脈沖)。
綜合節(jié)能競賽車的特點(diǎn)和功能需求,本次設(shè)計(jì)中選用的是霍爾開關(guān)型傳感器,其型號(hào)為A3144E,也稱A44E。A3144E芯片屬于開關(guān)型的霍爾器件 ,其工作電壓范圍比較寬 ( 4. 5~18 V ) ,其輸出的信號(hào)符合TTL電平標(biāo)準(zhǔn)可以直接接到單片機(jī)的 I/ O端口上,而且其最高檢測(cè)頻率可達(dá)到 1 M Hz。A3144E霍爾開關(guān)集成電路應(yīng)用霍爾效應(yīng)原理,采用半導(dǎo)體集成技術(shù)制造的磁敏電路,它是由電壓調(diào)整器、霍爾電壓發(fā)生器、差分放大器、史密特觸發(fā)器,溫度補(bǔ)償電路和集電極開路的輸出級(jí)組成的磁敏傳感電路,其輸入為磁感應(yīng)強(qiáng)度 ,輸出是一個(gè)數(shù)字電壓信號(hào)。
2.3.1 A3144E的特性
霍爾開關(guān)電路的輸出特性見圖 2.2所示。在輸入端輸入電壓 Vcc,經(jīng)穩(wěn)壓器穩(wěn)壓后加在霍耳電勢(shì)發(fā)生器的兩端,根據(jù)霍耳效應(yīng)原理,當(dāng)霍耳片處在磁場中時(shí),在垂直于磁場的方向通以電流,則與這二者相垂直的方向上將會(huì)產(chǎn)生場的方向通以電流,則與這二者相垂直的方向上將會(huì)產(chǎn)生密特觸發(fā)器整形,使其成為方波輸送到 OC門輸出。當(dāng)施加的磁場達(dá)到工作點(diǎn) (即 BOP )時(shí),觸發(fā)器輸出高電壓 (相對(duì)于地電位),使三極管導(dǎo)通,此時(shí)OC門輸出端輸出低電壓,通常稱這種狀態(tài)為開。當(dāng)施加的磁場達(dá)到釋放點(diǎn) (即 BRP ) 時(shí),觸發(fā)器輸出低電壓,三極管截止,使OC門輸出高電壓,這種狀態(tài)為關(guān)。
VOUT
BH
BRP
BOP
B
VOH
VOL
0
圖2.2 A3144E輸出特性
在外磁場的作用下,當(dāng)磁感應(yīng)強(qiáng)度超過導(dǎo)通閾BOP時(shí),霍爾電路輸出管導(dǎo)通,輸出低電平。之后,B再增加,仍保持導(dǎo)通態(tài)。若外加磁場的B值降低到B RP時(shí),輸出管截止,輸出高電平。我們稱 BOP為工作點(diǎn),BRP為釋放點(diǎn),BOP - B RP = B H稱為回差?;夭畹拇嬖谑归_關(guān)電路的抗干擾能力增強(qiáng)。這樣兩次電壓變換,使霍耳開關(guān)完成了一次開關(guān)動(dòng)作。一般規(guī)定,當(dāng)外加磁場的南極 ( S極)接近霍爾電路外殼上打有標(biāo)志的一面時(shí),作用到霍爾電路上的磁場方向?yàn)檎睒O接近標(biāo)志面時(shí)為負(fù)。
2.3.2 A3144E芯片的引腳及功能
霍爾傳感器A44 E芯片的引腳接線圖見圖2.3典型應(yīng)用于無觸點(diǎn)開關(guān)、車點(diǎn)火器、剎車電路、位置轉(zhuǎn)速檢測(cè)與控制、全報(bào)警裝置和紡織控制系統(tǒng)?;魻杺鞲衅魇且粋€(gè)3端器件,外形與三極管相似,只要接上電源、地,即可工作,輸出通常是集電極開路 ( OC) 門輸出,工作電壓范圍寬,使用非常方便。
圖2.3 A44E芯片引腳接線圖
引腳1是電源Vcc,引腳2是地GND,引腳3是輸出OUT?;魻柶骷墓ぷ麟妷翰坏贸^規(guī)定的Vcc,大部分霍爾開關(guān)均為OC輸出。因此,輸出應(yīng)接負(fù)載電阻,其數(shù)值值取決于負(fù)載電流的大小,不得超負(fù)載使用。
2.3.3 A3144E的磁輸入檢測(cè)
A44E的磁輸入為單極磁場,即施加磁場的方式是改變磁鐵和A44E之間的距離。判定磁鐵極性方法是:把磁鐵的兩個(gè)極分別靠近A44E的正面,當(dāng)其OUT引腳電平由高變低時(shí)即為正確的安裝位置,如圖2.4所示。
圖2.4 A44E判別磁鐵極性
經(jīng)過實(shí)驗(yàn)得知,A44E只對(duì)磁鐵的S極有響應(yīng)而對(duì)N級(jí)沒有絲毫響應(yīng)。安裝時(shí)一定要讓磁鐵的S極對(duì)準(zhǔn)A44 E的反應(yīng)傳感區(qū)。
2.3.4 A3144E的導(dǎo)通距離測(cè)量
把一塊小永久磁鐵固定在車輪的輻條上,A44 E在車輪輻條附近,如圖 2.5 所示。
圖2.5 A44E導(dǎo)通距離測(cè)量
經(jīng)過實(shí)驗(yàn)得知,磁鐵和霍爾開關(guān)A44E移近到一定距離(設(shè)此距離為 r)時(shí),A44E芯片的OUT引腳有脈沖信號(hào)輸出。當(dāng)二者的距離大于r時(shí),OUT引腳沒有脈沖信號(hào)輸出。反復(fù)實(shí)驗(yàn)得出霍爾開關(guān)A44E導(dǎo)通的距離r為4 mm或5 mm。
2.3.5 硬件電路的設(shè)計(jì)
霍爾傳感器A44E在測(cè)速系統(tǒng)中的主要作用是車輪轉(zhuǎn)速采集。車輪每轉(zhuǎn)一周,磁鐵經(jīng)過A44 E一次。A44 E的第3腳就輸出一個(gè)脈沖信號(hào)作為單片機(jī)STC89C52的外中斷信號(hào)從 P3.2口輸入。單片機(jī)測(cè)量脈沖信號(hào)的個(gè)數(shù)和脈沖周期。根據(jù)脈沖信號(hào)的個(gè)數(shù)計(jì)算出里程,根據(jù)脈沖信號(hào)的周期計(jì)算出速度并顯示。A44E與單片機(jī)的硬件電路連接如圖 2.6所示。
圖2.6 A44E與單片機(jī)硬件電路連接
A3144E型霍爾開關(guān)傳感器具有許多優(yōu)點(diǎn),它們的結(jié)構(gòu)牢固、體積小、壽命長、靈敏度高、安裝方便、功耗小、頻率高、耐震動(dòng)、不怕灰塵、油污及鹽霧等的污染或腐蝕,位置重復(fù)精度高等優(yōu)點(diǎn)。
2.4 單片機(jī)最小系統(tǒng)
單片機(jī)最小系統(tǒng),或者稱為最小應(yīng)用系統(tǒng),是指用最少的元件組成的單片機(jī)可以工作的系統(tǒng).對(duì)51系列單片機(jī)來說,最小系統(tǒng)一般應(yīng)該包括:單片機(jī)、晶振電路、復(fù)位電路。而本設(shè)計(jì)中選用STC89C52作為最小系統(tǒng)板的芯片。
2.4.1 單片機(jī)最小系統(tǒng)的機(jī)構(gòu)
工作電源:電源是單片機(jī)工作的動(dòng)力源泉,對(duì)應(yīng)的接線方法為:40腳(VCC)電源引腳,工作時(shí)接+5V電源,20腳(GND)為接地線。
復(fù)位電路:由電容串聯(lián)電阻構(gòu)成,結(jié)合“電容電壓不能突變”的性質(zhì)可以知道,當(dāng)系統(tǒng)一上電,RST腳將會(huì)出現(xiàn)高電平,并且這個(gè)高電平持續(xù)的時(shí)間由電路的RC值來決定。典型的51單片機(jī)當(dāng)RST腳的高電平持續(xù)兩個(gè)機(jī)器周期以上就將復(fù)位,所以,適當(dāng)組合RC的取值就可以保證可靠的復(fù)位。一般教科書推薦C取10uf,R取8.2K。當(dāng)然也有其他取法的,原則就是要讓RC組合可以在RST腳上產(chǎn)生不少于2個(gè)機(jī)器周期的高電平,電路如圖2.7所示。
圖2.7 復(fù)位電路
晶振電路:時(shí)鐘電路為單片機(jī)產(chǎn)生時(shí)序脈沖,單片機(jī)所有運(yùn)算與控制過程都是在統(tǒng)一的時(shí)序脈沖的驅(qū)動(dòng)下的進(jìn)行的,如果單片機(jī)的時(shí)鐘電路停止工作(晶振停振),那么單片機(jī)也就停止運(yùn)行了。當(dāng)采用內(nèi)部時(shí)鐘時(shí),在晶振引腳XTAL1(19腳)和XTAL2(18腳)引腳之間接入一個(gè)晶振,兩個(gè)引腳對(duì)地分別再接入一個(gè)電容即可產(chǎn)生所需的時(shí)鐘信號(hào),電容的容量一般在幾十皮法,如30pf。典型的晶振取11.0592MHz(因?yàn)榭梢詼?zhǔn)確地得到9600波特率和19200波特率,用于有串口通訊的場合)/40MHz(產(chǎn)生精確的uS級(jí)時(shí)歇,方便定時(shí)操作),電路如圖2.8所示。
圖2.8 晶振電路
控制引腳EA接法。EA/VPP(31腳)為內(nèi)外程序存儲(chǔ)器選擇控制引腳,當(dāng)EA為低電位時(shí),單片機(jī)從外部程序存儲(chǔ)器取指令;當(dāng)EA接高電平時(shí),單片機(jī)從內(nèi)部程序存儲(chǔ)器取指令。STC89C52單片機(jī)內(nèi)部有8KB可反復(fù)擦寫1000次以上的程序存儲(chǔ)器,因此我們把EA接到+5V高電平,讓單片機(jī)運(yùn)行內(nèi)部的程序,我們就可以通過反復(fù)燒寫來驗(yàn)證我們的程序了。
2.4.2 單片機(jī)最小系統(tǒng)的性能
本系統(tǒng)板具有串口通信方式,系統(tǒng)板省去了MAX232芯片,用PL2303做USB轉(zhuǎn)串口(筆記本和臺(tái)式機(jī)都能用),232通信的程序無需任何修改,即可于電腦的串口通信工具進(jìn)行通信;復(fù)位電路,方便程序調(diào)試使用;供電方式是USB供電和外部供電(外部供電時(shí),可以在電源電壓為3.3-5V的電壓范圍內(nèi))。具有雙工UART串行通道, 雙數(shù)據(jù)指示器,電源關(guān)閉標(biāo)識(shí);下載方式是USB下載(筆記本和臺(tái)式機(jī)都可以用)和十針下載方式(可以下載AT89S51,AT89S52系列的單片機(jī))。液晶12864有亮度對(duì)比度調(diào)節(jié)電阻;單片機(jī)晶振采用11.0592Mhz和40Mhz可選擇可插拔式,根據(jù)使用需求隨時(shí)可更換晶振,適合不同的應(yīng)用及實(shí)驗(yàn)場合。單片機(jī)I/O口全部引出(方便擴(kuò)展各種模塊實(shí)驗(yàn)),電源VCC和GND都通過排針引出,方便外擴(kuò)電路時(shí)電源的引入和引出。實(shí)物如圖2.9所示。
圖2.9 電路板實(shí)物
2.5 LCD液晶顯示模塊
本設(shè)計(jì)中顯示模塊的液晶顯示屏型號(hào)為JM12864M-2,此液晶屏具有中文字庫,這對(duì)顯示程序的編寫帶來了極大的方便,并且在以后的使用中也帶來了極大的益處。此外,該液晶屏幕還具有漢字圖形點(diǎn)陣液晶顯示模塊,可顯示漢字及圖形,內(nèi)置8192個(gè)中文漢字(16X16點(diǎn)陣)、128個(gè)字符(8X16點(diǎn)陣)及64X256點(diǎn)陣顯示RAM(GDRAM)。
2.5.1 主要技術(shù)參數(shù)和顯示特性
電源:VDD 3.3V~5V(內(nèi)置升壓電路,無需負(fù)壓);顯示內(nèi)容:128列× 64行,顯示顏色:黃綠,顯示角度:6:00鐘直視,LCD類型:STN與MCU接口:8位或4位并行/3位串行,配置LED背光。多種軟件功能:光標(biāo)顯示、畫面移位、自定義字符、睡眠模式等。
如圖2.10所示,外觀尺寸:93×70×12.5mm 視域尺寸:73×39mm。
圖2.10液晶顯示屏外形尺寸圖
2.5.2 顯示模塊引腳說明及連接
該液晶屏幕的引腳說明如圖2.11所示,該屏幕的邏輯工作電壓(VDD):4.5~5.5V,電源地(GND):0V,工作溫度(Ta):-10℃ ~60℃(常溫) / -20℃~70℃(寬溫)。
引腳號(hào)
引腳名稱
方向
功能說明
1
VSS
-
模塊的電源地
2
VDD
-
模塊的電源正端
3
V0
-
LCD驅(qū)動(dòng)電壓輸入端
4
RS(CS)
H/L
并行的指令/數(shù)據(jù)選擇信號(hào);串行的片選信號(hào)
5
R/W(SID)
H/L
并行的讀寫選擇信號(hào);串行的數(shù)據(jù)口
6
E(CLK)
H/L
并行的使能信號(hào);串行的同步時(shí)鐘
7
DB0
H/L
數(shù)據(jù)0
8
DB1
H/L
數(shù)據(jù)1
9
DB2
H/L
數(shù)據(jù)2
10
DB3
H/L
數(shù)據(jù)3
11
DB4
H/L
數(shù)據(jù)4
12
DB5
H/L
數(shù)據(jù)5
13
DB6
H/L
數(shù)據(jù)6
14
DB7
H/L
數(shù)據(jù)7
15
PSB
H/L
并/串行接口選擇:H-并行;L-串行
16
NC
空腳
17
/RET
H/L
復(fù)位 低電平有效
18
NC
空腳
19
LED_A
(LED+5V)
背光源正極
20
LED_K
(LED-OV)
背光源負(fù)極
圖2.11 顯示屏引腳說明
如圖2.12所示為顯示模塊與單片機(jī)最小系統(tǒng)板的管腳連接原理圖,通過該圖可以明確的知道顯示模塊與系統(tǒng)板各管腳是如何連接的,這給以后為顯示模塊編寫程序帶來了極大的方便。
圖2.12 顯示模塊與最小系統(tǒng)板連接原理圖
2.6 本章小結(jié)
本章系統(tǒng)的介紹了里程表的設(shè)計(jì)思路以及硬件的選取,通過本章可以知道節(jié)能車?yán)锍瘫淼脑O(shè)計(jì)是由單片機(jī)最小系統(tǒng)板、STC89C52、LCD液晶顯示屏、霍爾接近開關(guān)傳感器等硬件組成,并且熟悉掌握了各硬件的參數(shù)、使用方法以及相互之間是如何連接的。在此基礎(chǔ)上便可以按所需的功能進(jìn)行軟件編程了。
第3章 節(jié)能車車速里程表的軟件設(shè)計(jì)
3.1 軟件編程的總體設(shè)計(jì)
在硬件確定的基礎(chǔ)上就可以進(jìn)行軟件的編程了,本設(shè)計(jì)使用的是Keill軟件進(jìn)行C語言的編程。根據(jù)所需要的功能,編譯相應(yīng)的程序。本系統(tǒng)軟件采用模塊化設(shè)計(jì)方法。整個(gè)系統(tǒng)由初始化模塊、頻率測(cè)量模塊、速度和里程計(jì)算模塊、顯示模塊、定時(shí)器中斷服務(wù)模塊以及其他功能模塊組成,如圖3.1所示。
初始化模塊
顯示模塊
頻率測(cè)量模塊
中斷服務(wù)模塊
速度、里程計(jì)算模塊
時(shí)間計(jì)數(shù)模塊
圖3.1 系統(tǒng)軟件功能框圖
根據(jù)各個(gè)模塊的功能,利用C語言編譯出相應(yīng)功能的程序,編譯出各個(gè)功能模塊的程序后便利用Keill軟件進(jìn)行調(diào)試,當(dāng)調(diào)試好各個(gè)功能模塊程序后,便編譯主程序,通過主程序調(diào)用各個(gè)功能模塊的子程序來實(shí)現(xiàn)總體的通能需求,最后通過軟硬件的結(jié)合便可實(shí)現(xiàn)車速和里程的顯示及測(cè)量
3.2 軟件流程圖
程序是按給定的方式運(yùn)行的,我們按照合理的路徑,按照C語言的方式使其達(dá)到我們所需的功能。那么,首先應(yīng)該做出軟件的流程圖,使程序在給定的流程框架里進(jìn)行循環(huán)工作。如圖3.2所示,為系統(tǒng)軟件運(yùn)行的流程圖。
上電
單片機(jī)復(fù)位
初始化串口
初始化液晶屏
液晶屏顯示LOGO
延時(shí)2秒
液晶屏顯示菜單1
刷新屏幕時(shí)間到了嗎?
否
是
重新運(yùn)算速度里程等數(shù)據(jù)
切換屏幕時(shí)間到了嗎?
否
是
顯示另一個(gè)菜單
刷新屏幕數(shù)據(jù)
圖3.2軟件流程圖
3.3 數(shù)據(jù)處理
本設(shè)計(jì)所用的霍爾傳感器是一塊集成芯片。首先我們把磁鋼放在節(jié)能車的轉(zhuǎn)軸上,而霍爾元件就放在與其水平的轉(zhuǎn)軸上,當(dāng)我們完成安裝后,轉(zhuǎn)動(dòng)節(jié)能車的轉(zhuǎn)軸,磁鋼也就跟著一起轉(zhuǎn)動(dòng),從而使霍爾傳感器周圍的磁場發(fā)生變化,將產(chǎn)生出一個(gè)高低電平。假設(shè)磁鋼共分為8片,磁場將會(huì)改變8次,當(dāng)磁鋼經(jīng)過傳感器時(shí)就會(huì)產(chǎn)生一個(gè)高電平,否則為低電平。所以將會(huì)產(chǎn)生8個(gè)高電平,既每輸出8個(gè)高電平代表自行車轉(zhuǎn)動(dòng)了一周。比如我們的車輪在R=0.25m時(shí),通過C=2Π*R計(jì)算得出車輪的周長C=1.5m。由于每一圈霍爾傳感器將輸出8個(gè)高電平,當(dāng)自行車行駛1KM時(shí)會(huì)轉(zhuǎn)動(dòng)667次,這樣每1KM將回產(chǎn)生5336個(gè)脈沖,單片機(jī)對(duì)這5336個(gè)脈沖計(jì)數(shù)。
3.4 里程表各部分程序
3.4.1 主程序
Void Main( )函數(shù),即主函數(shù)。主函數(shù)部分經(jīng)過延時(shí)、初始化串口、初始化液晶顯示屏、初始化測(cè)速系統(tǒng)、初始化所有參數(shù),調(diào)用各個(gè)模塊的子程序,使整個(gè)系統(tǒng)循環(huán)執(zhí)行。程序如下:
/Main.C
//節(jié)能行車?yán)锍瘫碇鞒绦?
//單片機(jī):STC89C52RC 11.0592MHz
//傳感器:P3.2(INT0)
void main(void)
{
Delayms(200);
Init_UART();//初始化串口,波特率9600bps,8位數(shù)據(jù),1起始位,1停止位,無校驗(yàn)
Uart_sentstr("\r\n復(fù)位,已經(jīng)初始化串口!");
LCD12864_initial(); //液晶初始化
LCD12864_clear();
Uart_sentstr("\r\n液晶初始化OK!");
ShowMenu(MENU_INDEX_LOGO);
Delayms(1000);
ShowMenu(MENU_INDEX_1);
InitSystem();//初始化測(cè)速系統(tǒng)
while(1)
{
if(Flag_Fresh)
{
Flag_Fresh =0;
ClcSpeed();//計(jì)算所有運(yùn)行參數(shù)
MenuMize++;
if(MenuMize>MENU_SWAP_MIZE)//該切換到下一屏了
{
MenuMize = 0;
if(CurMenu==MENU_INDEX_1) //現(xiàn)在是第1屏,那就切換到第2屏
ShowMenu(MENU_INDEX_2);
else //否則,切換到第1屏
{
ShowMenu(MENU_INDEX_1);
}
}
else
{
FreshScreen();//刷新LCD屏幕數(shù)據(jù)
}
}
}
}
3.4.2 串口中斷服務(wù)程序
/Serial.c
void Init_UART(void)
{
RCLK=1;
TCLK=1;
TH2 = 0x0FF;
TL2 = 0x0DC;
RCAP2H=0xFF;
RCAP2L=0xDC; //定時(shí)器2自動(dòng)裝入8位 //波特率9600
TR2=1;
IE=0x00;
SCON=0x50;
}
//向串口發(fā)送一個(gè)字符
void send_char_com(unsigned char ch)
{
TI=0;
SBUF=ch;
while(TI==0);
TI=0;
}
void Uart_sentstr(uchar str[])//串口以查詢方式發(fā)送數(shù)據(jù)1個(gè)字符串
{
while(*str)
{
send_char_com(*str);
str++;
}
}
//Common.C
#include "Common.H"
/*******************************************
函數(shù)名稱: Delayus
功 能: 延時(shí)指定微秒(11.0592M晶振)
參 數(shù): US--延時(shí)的微秒數(shù)(大約,不是很精確,MS越大越準(zhǔn)確)
返回值 : 無
/********************************************/
void Delayus(uchar US)
{
while(US--); //4是在11.0592MHz晶振下,通過軟件仿真反復(fù)實(shí)驗(yàn)得到的數(shù)值
}
/*******************************************
函數(shù)名稱: Delayms
功 能: 延時(shí)指定毫秒(11.0592M晶振)
參 數(shù): MS--延時(shí)的毫秒數(shù)
返回值 : 無
/********************************************/
void Delayms(uint MS)
{
uint i,j;
for( i=0;i
19) //夠一秒了,秒鐘加1
{
SensorPlusBak = SensorPlus;
SensorPlus = 0;
Flag_Fresh = 1;//置刷新屏幕標(biāo)志
Ms50 = 0;
Second++;
if(Second>59)//若夠一分鐘了,分鐘加1
{
Second = 0;
Minute++;
if(Minute>59)//若夠一小時(shí)了,小時(shí)加1
{
Minute=0;
Hour++;
if(Hour>23)//若夠24小時(shí)了,小時(shí)歸零
{ Hour = 0;
InitSystem();//重新初始化測(cè)速系統(tǒng)
}
}
}
}
}
3.4.5 中斷服務(wù)程序
//INT0中斷服務(wù)程序
void IE0_srv(void) interrupt IE0_VECTOR using 2
{
SensorPlus++;
}
////計(jì)算所有運(yùn)行參數(shù)
void ClcSpeed(void)
{
float time; //總時(shí)間,單位小時(shí)
// SensorPlusBak = 20.0+Minute;
//計(jì)算里程
//Distance = Distance + DisPerPlus*SensorPlusBak/1000*100;
Distance = Distance + DisPerPlus*SensorPlusBak/10.0;
//計(jì)算圈數(shù)
Cycles = Distance*10/LEN_PER_CYCLE;
//計(jì)算最新速度
//CurSpeed = DisPerPlus*SensorPlusBak*3600/1000*100;//單位,是0.01km/h
CurSpeed = DisPerPlus*SensorPlusBak*360.0;//單位,是0.01km/h
if(CurSpeed==0)
{
//最高速度
MaxSpeed = 0;
//平均速度清零
AvgSpeed = 0;
}
else
{
//判斷最高速度
if(CurSpeed>MaxSpeed)
MaxSpeed = CurSpeed;
//計(jì)算平均速度,平均速度 = 里程/總時(shí)間
time = Hour + Minute/60.0 + Second/3600.0;
AvgSpeed = Distance/time;
}
}
3.4.6 屏幕切換與LOGO程序
//LCD.C
#include "LCD.H"
#include "JM12864M.H"
#include "BikeSpeed.H"
#include "Serial.H"
uchar CurMenu = MENU_INDEX_NULL;//當(dāng)前菜單
uint MenuMize = 0; //切換菜單的累加器
void ShowMenu(uchar new_menu)//顯示一個(gè)菜單
{
if(Cur