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