版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PAGEI基于單片機(jī)的電子式轉(zhuǎn)速里程表的設(shè)計(jì)摘要本文詳細(xì)闡述了電子式轉(zhuǎn)速里程表的設(shè)計(jì)與實(shí)現(xiàn)過程,該里程表基于AT89C52單片機(jī),并且通過霍爾傳感器實(shí)時(shí)檢測(cè)車輪的轉(zhuǎn)動(dòng)。信號(hào)采集、分析以及計(jì)算的工作則由單片機(jī)完成。系統(tǒng)利用預(yù)設(shè)的時(shí)間間隔進(jìn)行信號(hào)采集,結(jié)合車輪的具體參數(shù),準(zhǔn)確計(jì)算出行駛里程、平均速度和瞬時(shí)速度。最終,這些信息通過LCD顯示屏直觀展示給駕駛者,同時(shí),當(dāng)速度超過預(yù)設(shè)閾值時(shí),LED將發(fā)出報(bào)警信號(hào),以提醒駕駛者注意。該設(shè)計(jì)不僅提高了里程表的測(cè)量精度,還豐富了其功能,駕駛者能夠享受到更加安全且便捷的駕駛體驗(yàn)。關(guān)鍵詞:?jiǎn)纹瑱C(jī);霍爾傳感器;LCD顯示;LED顯示PAGEIIABSTRACTThisarticleelaboratesonthedesignandimplementationofanelectronicspeedodometerbasedontheAT89C52microcontroller.Theodometerdetectsthereal-timerotationsignalofthewheelsthroughHallsensors,andcollects,analyzes,andcalculatesthesignalwiththehelpofamicrocontroller.Thesystemusespresettimeintervalsforsignalacquisition,combinedwithspecificparametersofthewheels,toaccuratelycalculatethedrivingdistance,averagespeed,andinstantaneousspeed.Finally,thisinformationisvisuallydisplayedtothedriverthroughanLCDdisplayscreen,andwhenthespeedexceedsthepresetthreshold,theLEDwillemitanalarmsignaltoremindthedrivertopayattention.Thisdesignnotonlyimprovesthemeasurementaccuracyoftheodometer,butalsoenrichesitsfunctions,providingdriverswithamoreconvenientandsafedrivingexperience.KEYWORDS:Microcontroller;Hallsensor;LCDdisplay;LEDdisplayPAGEI目錄186601緒論 1325691.1課題發(fā)展情況 117222總體方案的設(shè)計(jì) 3201402.1任務(wù)分析與實(shí)現(xiàn) 34262.2硬件方案設(shè)計(jì) 455372.3軟件方案設(shè)計(jì) 4109013硬件設(shè)計(jì) 6128283.1相關(guān)元器件及其簡(jiǎn)介 6239493.1.1AT89C52單片機(jī)簡(jiǎn)介 655293.1.2LCD液晶顯示模塊 6320063.1.3霍爾傳感器 871673.1.4DS1302時(shí)鐘模塊 929574DS1302的引腳功能如圖3-3所示 10143074軟件設(shè)計(jì) 11240944.1總體程序設(shè)計(jì) 1141694.2中斷程序設(shè)計(jì) 12168064.3延時(shí)程序 14293474.4按鍵掃描 15313344.5數(shù)據(jù)處理子程序設(shè)計(jì) 1654024.6顯示子程序設(shè)計(jì) 19267364.7存儲(chǔ)芯片的選擇 2160925系統(tǒng)調(diào)試 2347535.1系統(tǒng)操作使用介紹 23145625.2系統(tǒng)調(diào)試過程 23119025.3分析及措施 24201426結(jié)論與展望 25314916.1結(jié)論 25244506.2展望 251277參考文獻(xiàn) 2611602致謝 2729938附錄 281緒論隨著人類科技的發(fā)展,人們的出行多半使用汽車,大大提高了出行的效率。與此同時(shí),汽車如若超速則容易帶來安全隱患,因此為了保證行駛安全,設(shè)計(jì)了轉(zhuǎn)速里程表,當(dāng)轉(zhuǎn)速超過一定速度時(shí)會(huì)發(fā)出警報(bào)提醒駕駛員來保證安全。本設(shè)計(jì)聚焦于基于霍爾元件的轉(zhuǎn)速里程表,其核心為A44E霍爾傳感器與AT89C52微控制器。該系統(tǒng)通過實(shí)時(shí)測(cè)量車輪的轉(zhuǎn)數(shù)來計(jì)算車輛行駛的距離與速度,并具備實(shí)時(shí)顯示和數(shù)據(jù)儲(chǔ)存功能。在系統(tǒng)關(guān)閉時(shí),為確保數(shù)據(jù)的持久性,選擇采用24C02芯片來存儲(chǔ)行駛距離的信息。通過LCD顯示屏,駕駛者能夠直觀地了解車的行駛里程和即時(shí)速度。在硬件電路方面,設(shè)計(jì)充分利用了霍爾元件的脈沖信號(hào)特性。每當(dāng)車輪轉(zhuǎn)動(dòng)一圈,霍爾元件即向系統(tǒng)發(fā)送脈沖信號(hào),這些信號(hào)隨后被系統(tǒng)處理,用于計(jì)算行駛距離和速度。軟件設(shè)計(jì)則采用C語言編程思想,確保了系統(tǒng)的穩(wěn)定性和高效性。通過對(duì)采集到的脈沖信號(hào)進(jìn)行精確計(jì)算,系統(tǒng)能夠?qū)崟r(shí)更新行駛里程和速度數(shù)據(jù),并通過LCD顯示給騎行者。此外,系統(tǒng)還具備超速報(bào)警功能,當(dāng)速度超過預(yù)設(shè)閾值時(shí),會(huì)觸發(fā)LED報(bào)警提示,確保騎行安全。綜上所述,本設(shè)計(jì)通過霍爾元件與微控制器的結(jié)合,實(shí)現(xiàn)了轉(zhuǎn)速里程表的精確測(cè)量與實(shí)時(shí)顯示,為駕駛者提供了更為便捷和安全的騎行體驗(yàn)。1.1課題發(fā)展情況隨著技術(shù)的不斷進(jìn)步和微型計(jì)算機(jī)成本的降低,微控制器在電機(jī)速度測(cè)量中的應(yīng)用日益廣泛。傳統(tǒng)的硅調(diào)速器電路中的測(cè)速方法已經(jīng)無法滿足要求,因此數(shù)字測(cè)速方法成為了必然的選擇。在速度測(cè)量的許多方法中,基于脈沖計(jì)數(shù)的測(cè)量方式就顯得尤為關(guān)鍵,其中主要包括M法(頻率測(cè)量法)、T法(周期測(cè)量法)以及M/T法(頻率周期法)。其中,M法是通過光電脈沖發(fā)生器在固定時(shí)間段內(nèi)產(chǎn)生的脈沖數(shù)來確定速度的。這種方法的特點(diǎn)是測(cè)量時(shí)間恒定,但起始和結(jié)束時(shí)間的設(shè)定相對(duì)靈活。然而,需要注意的是,在極端情況下,M法有可能會(huì)因速度脈沖的誤差導(dǎo)致影響測(cè)量精度。當(dāng)電機(jī)轉(zhuǎn)速較高,即速度脈沖信號(hào)數(shù)量較大時(shí),M法的測(cè)量精度會(huì)有顯著提高。因此,它更適用于高速測(cè)量場(chǎng)景。為了滿足速度計(jì)所需要的高精度、高分辨率、短檢測(cè)時(shí)間、低成本和優(yōu)良性能等要求,我們?cè)O(shè)計(jì)了基于霍爾元件的測(cè)速裝置。同時(shí),考慮到系統(tǒng)所處的電磁環(huán)境可能較為惡劣,產(chǎn)品必須擁有出色的抗干擾能力。因此,霍爾傳感器的應(yīng)用成為了制造速度測(cè)量裝置的理想選擇。目前,市場(chǎng)上已有一些測(cè)速儀產(chǎn)品,但其中大多數(shù)功能相對(duì)單一,僅提供速度或距離測(cè)量。而本設(shè)計(jì)不僅具備速度和距離測(cè)量功能,還融入了GPS全球定位技術(shù),能夠?qū)崟r(shí)顯示自行車的行駛距離、當(dāng)前速度、時(shí)鐘以及運(yùn)行時(shí)間等信息。我們堅(jiān)信,隨著技術(shù)的不斷進(jìn)步和產(chǎn)品的不斷優(yōu)化,轉(zhuǎn)速里程表將更加符合用戶需求,受到更多人的青睞。
2總體方案的設(shè)計(jì)2.1任務(wù)分析與實(shí)現(xiàn)該設(shè)計(jì)的任務(wù)是使用AT89C52微控制器作為計(jì)算核心,通過傳感器將車輪速度轉(zhuǎn)換為電脈沖進(jìn)行處理并發(fā)送給微控制器。使用AT89C52單片機(jī)進(jìn)行里程和速度的測(cè)量時(shí),首先需要測(cè)量車輪旋轉(zhuǎn)的脈沖總數(shù)以及完成這些旋轉(zhuǎn)所需的時(shí)間。隨后,微控制器對(duì)這些數(shù)據(jù)進(jìn)行計(jì)算,最后將結(jié)果實(shí)時(shí)顯示在LCD上。該系統(tǒng)的總體思路如下:設(shè)計(jì)應(yīng)充分考慮速度測(cè)量的準(zhǔn)確性和系統(tǒng)的響應(yīng)時(shí)間。該設(shè)計(jì)中使用的脈沖計(jì)數(shù)方法在計(jì)算速度時(shí)具有高的速度測(cè)量精度。在計(jì)算距離時(shí),考慮了車的理想條件,并將霍爾元件用于公里和速度傳感器。車的里程測(cè)量是通過霍爾元件的輸出電壓變化來產(chǎn)生脈沖的,而里程的計(jì)算則基于儀表所接收到的脈沖數(shù)。至于車的速度,則是通過時(shí)間t除以車輪的周長(zhǎng)L來確定的。本研究設(shè)計(jì)所需的各項(xiàng)指標(biāo)和實(shí)施方法如下:通過使用霍爾傳感器生成脈沖信號(hào),并對(duì)這些脈沖信號(hào)進(jìn)行精確的計(jì)數(shù)操作。該指示器的實(shí)現(xiàn)是使用微控制器本身的計(jì)數(shù)器T0通過在LCD上顯示總距離和速度來對(duì)霍爾傳感器過程數(shù)據(jù)的脈沖信號(hào)進(jìn)行統(tǒng)計(jì)。該功能的實(shí)現(xiàn)是利用編程軟件獲得所需的數(shù)值進(jìn)行數(shù)據(jù)處理。該項(xiàng)目的最終目標(biāo)是實(shí)現(xiàn)由微控制器控制的具有距離和速度測(cè)試以及顯示功能的轉(zhuǎn)速里程表。顯示圈可以顯示距離和速度,報(bào)警速度可以通過按鈕調(diào)節(jié),防止車超速,系統(tǒng)可以發(fā)出報(bào)警通知,方便智能、高精度,通過各種按鈕復(fù)位和集成復(fù)位功能,實(shí)現(xiàn)高度可靠和高效的轉(zhuǎn)速里程表設(shè)計(jì)。整體系統(tǒng)框圖如圖2-1所示:圖2-1整體系統(tǒng)框圖2.2硬件方案設(shè)計(jì)里程表的距離和速度概念通過霍爾傳感器進(jìn)行檢查:如果自行車旋轉(zhuǎn)一圈,它會(huì)產(chǎn)生一個(gè)脈沖,根據(jù)脈沖數(shù)計(jì)算距離,然后計(jì)算車輪旋轉(zhuǎn)一圈所需的時(shí)間。速度可以通過將總距離除以時(shí)間來獲得。在設(shè)計(jì)時(shí),還應(yīng)設(shè)計(jì)系統(tǒng)的輸入部分(按鈕電路、存儲(chǔ)電路等)和輸出部分(顯示電路、報(bào)警器等)。2.3軟件方案設(shè)計(jì)通過軟件對(duì)單片機(jī)進(jìn)行功能控制,充分展現(xiàn)了單片機(jī)的核心特點(diǎn)和顯著優(yōu)勢(shì)。在程序設(shè)計(jì)的過程中,嚴(yán)格遵循模塊化設(shè)計(jì)的原則,并采用自頂向下的設(shè)計(jì)策略。高度重視程序的合理性和可讀性,保證代碼既易于理解又易于維護(hù)。模塊化設(shè)計(jì)不僅顯著提升了程序的可讀性,同時(shí)也讓程序的修改和完善變得更加高效便捷。軟件設(shè)計(jì)涉及多個(gè)核心部分,分別是主程序、中斷子程序、延時(shí)程序、按鍵掃描、存儲(chǔ)芯片選擇,以及數(shù)據(jù)處理子程序(包含里程子程序和速度子程序)和顯示子程序。將傳感器產(chǎn)生的信號(hào)接入到單片機(jī)的計(jì)數(shù)器T0口是中斷子程序的主要職責(zé)。一旦信號(hào)成功接入,計(jì)數(shù)器便會(huì)立即啟動(dòng)計(jì)數(shù)功能。當(dāng)計(jì)數(shù)達(dá)到預(yù)設(shè)的閾值時(shí),計(jì)數(shù)器將觸發(fā)溢出中斷,從而啟動(dòng)相應(yīng)的中斷處理流程。數(shù)據(jù)處理子程序則負(fù)責(zé)將車輪轉(zhuǎn)動(dòng)的圈數(shù)轉(zhuǎn)化為實(shí)際要顯示的數(shù)值。這需要建立一個(gè)明確的對(duì)應(yīng)關(guān)系,并通過軟件編程實(shí)現(xiàn)這一轉(zhuǎn)換過程,確保最終顯示的數(shù)值準(zhǔn)確無誤。秒表計(jì)時(shí)子程序依賴于計(jì)數(shù)器T0,通過編程實(shí)現(xiàn)秒表計(jì)時(shí)的功能。它確保時(shí)間的精確計(jì)算,為用戶提供準(zhǔn)確的計(jì)時(shí)服務(wù)。脈沖接收子程序主要完成脈沖信號(hào)的計(jì)數(shù)任務(wù),即實(shí)時(shí)統(tǒng)計(jì)車輪轉(zhuǎn)動(dòng)的圈數(shù)。通過編程,我們可以準(zhǔn)確記錄每一圈轉(zhuǎn)動(dòng)的脈沖信號(hào),為后續(xù)的數(shù)據(jù)處理提供基礎(chǔ)數(shù)據(jù)。最后,顯示子程序負(fù)責(zé)將數(shù)據(jù)處理的結(jié)果通過編程送至顯示器進(jìn)行展示。這樣,用戶就可以直觀地看到自行車的行駛里程、速度以及其他相關(guān)信息。綜上所述,通過合理的軟件設(shè)計(jì),我們可以充分發(fā)揮單片機(jī)的性能優(yōu)勢(shì),實(shí)現(xiàn)自行車測(cè)速系統(tǒng)的各項(xiàng)功能需求。系統(tǒng)軟件總體流程圖如圖2-2所示:初始化初始化P3.2檢測(cè)到中斷計(jì)算速度計(jì)算里程顯示里程顯示速度開始YN圖2-2軟件總體流程圖
3硬件設(shè)計(jì)3.1相關(guān)元器件及其簡(jiǎn)介3.1.1AT89C52單片機(jī)簡(jiǎn)介AT89C52是一款性能卓越的CMOS8位單片機(jī),具備低電壓特性。它集成了8kbytes的可重復(fù)擦寫的Flash只讀程序存儲(chǔ)器和256bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),確保了強(qiáng)大的數(shù)據(jù)存儲(chǔ)和處理能力。AT89C52單片機(jī)配備了豐富的40個(gè)引腳,其中有32個(gè)外部雙向輸入/輸出(I/O)端口,為用戶提供了便捷的與外部設(shè)備連接的能力。這一特性使得AT89C52在電子行業(yè)的應(yīng)用中更為靈活和廣泛。此外,它還內(nèi)置了2個(gè)外部中斷口,用于響應(yīng)外部中斷信號(hào);AT89C52單片機(jī)內(nèi)置了3個(gè)16位可編程定時(shí)/計(jì)數(shù)器,這些計(jì)數(shù)器能夠精確實(shí)現(xiàn)定時(shí)和計(jì)數(shù)功能,為用戶在各種應(yīng)用場(chǎng)景中提供了強(qiáng)大的時(shí)間管理和事件計(jì)數(shù)能力;以及2個(gè)全雙工串行通信口,支持?jǐn)?shù)據(jù)的串行傳輸。同時(shí),AT89C52還提供了2個(gè)讀寫口線,方便對(duì)外部存儲(chǔ)器或外設(shè)進(jìn)行讀寫操作。AT89C52單片機(jī)在編程方面展現(xiàn)出了極高的靈活性,不僅支持傳統(tǒng)的編程方式,更具備在線編程的能力。這種雙重編程模式使得開發(fā)過程更加便捷高效,滿足了不同用戶和開發(fā)場(chǎng)景的需求。通過將可反復(fù)擦寫的Flash存儲(chǔ)器與通用的微處理器完美融合,不僅為開發(fā)者提供了更多經(jīng)濟(jì)高效的解決方案,還大幅降低了開發(fā)成本,從而滿足了各類項(xiàng)目的需求。為了滿足不同產(chǎn)品的需求,AT89C52提供多種封裝形式,使得開發(fā)者可以根據(jù)具體的應(yīng)用場(chǎng)景選擇合適的封裝類型。這些封裝形式不僅保證了單片機(jī)的穩(wěn)定性和可靠性,還提高了其在不同環(huán)境下的適應(yīng)性。3.1.2LCD液晶顯示模塊液晶顯示模塊以其緊湊的體積、低功耗特性以及豐富的顯示內(nèi)容,在單片機(jī)應(yīng)用設(shè)計(jì)中是常用的信息顯示器件之一。而在本次設(shè)計(jì)中,選用了廣泛使用的1602字符型LCD模塊。1602字符型LCD模塊能夠顯示2行16個(gè)字符,這足以滿足里程表顯示需求。它配備了8位數(shù)據(jù)總線D0-D7,用于數(shù)據(jù)傳輸,同時(shí)還擁有RS、R/W、E三個(gè)關(guān)鍵的控制端口,確保了數(shù)據(jù)的準(zhǔn)確讀寫與顯示控制。這款LCD模塊的工作電壓為5V,這使得它在多種電子設(shè)備中都能穩(wěn)定工作。此外,1602字符型LCD模塊還具備字符對(duì)比度調(diào)節(jié)功能,用戶可以根據(jù)環(huán)境光線調(diào)整顯示對(duì)比度,確保信息清晰可見。同時(shí),背光功能使得在光線較暗的環(huán)境下也能輕松讀取顯示內(nèi)容。綜上所述,1602字符型LCD模塊憑借其出色的顯示性能、穩(wěn)定的電壓需求以及用戶友好的調(diào)節(jié)功能,成為了本里程表設(shè)計(jì)中不可或缺的信息顯示器件。LCD液晶顯示模塊如圖3-1所示圖3-1LCD液晶顯示模塊LCD采用標(biāo)準(zhǔn)的14腳(無背光)接口,各引腳接口說明如表3-1所示。表3-1引腳接口說明表編號(hào)符號(hào)引腳說明編號(hào)符號(hào)引腳說明1VSS電源地8D1數(shù)據(jù)2VDD電源正極9D2數(shù)據(jù)3VL液晶顯示偏壓10D3數(shù)據(jù)4RS數(shù)據(jù)/命令選擇11D4數(shù)據(jù)5R/W讀寫/選擇12D5數(shù)據(jù)6E使能信號(hào)13D6數(shù)據(jù)7D0數(shù)據(jù)14D7數(shù)據(jù)第1腳:VSS,該引腳為地電源端,負(fù)責(zé)提供穩(wěn)定的接地參考,確保模塊電路的正常工作。第2腳:VDD,是接入5V正電源的引腳,負(fù)責(zé)為液晶顯示模塊提供穩(wěn)定的電力供應(yīng),確保模塊的正常運(yùn)行。第3腳:VL,是液晶顯示器的對(duì)比度調(diào)節(jié)引腳。當(dāng)該引腳連接到正電源時(shí),顯示器的對(duì)比度會(huì)降至最弱;而若將其接地,對(duì)比度則會(huì)達(dá)到最高。但過高的對(duì)比度可能會(huì)引發(fā)“鬼影”現(xiàn)象,影響視覺體驗(yàn)。因此,在實(shí)際應(yīng)用中,建議通過連接一個(gè)10K的電位器來精細(xì)調(diào)節(jié)對(duì)比度,從而獲取最佳的顯示效果。第4腳:RS,是寄存器選擇腳。當(dāng)RS處于高電平時(shí),系統(tǒng)會(huì)選擇數(shù)據(jù)寄存器進(jìn)行操作;而處于低電平時(shí),則會(huì)選擇指令寄存器。通過靈活控制RS腳的電平狀態(tài),系統(tǒng)可以有序且準(zhǔn)確地切換數(shù)據(jù)寄存器和指令寄存器的操作。第5腳:R/W,是讀寫信號(hào)線。當(dāng)其為高電平時(shí),模塊執(zhí)行讀操作;而低電平時(shí),則執(zhí)行寫操作。結(jié)合RS腳的不同電平狀態(tài),可以靈活實(shí)現(xiàn)多種操作模式,如寫入指令、顯示地址、讀取忙信號(hào)以及寫入數(shù)據(jù)等。第6腳:E,是使能端。當(dāng)E腳由高電平跳變?yōu)榈碗娖綍r(shí),液晶模塊會(huì)執(zhí)行之前接收到的命令或數(shù)據(jù)。通過精準(zhǔn)控制E腳的電平變化,可以有效觸發(fā)模塊的相應(yīng)操作。第7至14腳:D0至D7,這八個(gè)引腳共同構(gòu)成了8位的雙向數(shù)據(jù)線。無論是向模塊寫入數(shù)據(jù),還是從模塊讀取數(shù)據(jù),都需要通過這些數(shù)據(jù)線進(jìn)行傳輸。這些數(shù)據(jù)線是模塊與外部設(shè)備進(jìn)行數(shù)據(jù)交互的關(guān)鍵通道。3.1.3霍爾傳感器霍爾傳感器,一種基于霍爾效應(yīng)原理的精密設(shè)備,能夠敏銳地感知磁場(chǎng)變化?;魻栃?yīng),是磁電轉(zhuǎn)換的一種現(xiàn)象,起初是1879年由科學(xué)家霍爾在研究金屬導(dǎo)電機(jī)制發(fā)現(xiàn)。隨著科研的深入,發(fā)現(xiàn)半導(dǎo)體和導(dǎo)電流體等材料同樣具有這種神奇的效應(yīng),并且半導(dǎo)體的霍爾效應(yīng)表現(xiàn)得尤為突出。因此,利用霍爾效應(yīng)制作的霍爾元件,憑借其在磁場(chǎng)檢測(cè)方面的卓越性能,已經(jīng)在工業(yè)自動(dòng)化、檢測(cè)技術(shù)以及信息處理等多個(gè)領(lǐng)域展現(xiàn)出廣闊的應(yīng)用前景?;魻栃?yīng)是探究半導(dǎo)體材料性能的核心手段,通過實(shí)驗(yàn)測(cè)定霍爾系數(shù),能夠獲取半導(dǎo)體材料的導(dǎo)電類型、載流子濃度以及遷移率等關(guān)鍵參數(shù)信息?;魻栯妱?shì)的大小主要由霍爾常數(shù)Rh、霍爾元件的偏置電流IC、磁場(chǎng)強(qiáng)度B以及半導(dǎo)體材料的厚度d這四個(gè)因素共同決定。對(duì)這些因素進(jìn)行精準(zhǔn)的控制和應(yīng)用,使得霍爾傳感器在磁場(chǎng)測(cè)量和控制領(lǐng)域發(fā)揮了至關(guān)重要的作用,為工業(yè)自動(dòng)化、檢測(cè)技術(shù)以及信息處理等多個(gè)領(lǐng)域提供了強(qiáng)大的技術(shù)支持。對(duì)于一個(gè)給定的霍爾器件,Vh將完全取決于被測(cè)的磁場(chǎng)強(qiáng)度B?;魻栃?yīng)原理圖如圖3-2所示圖3-2霍爾效應(yīng)原理圖3.1.4DS1302時(shí)鐘模塊DS1302是美國(guó)DALLAS公司設(shè)計(jì)的一款高性能、低功耗且內(nèi)置RAM的實(shí)時(shí)時(shí)鐘芯片。能夠精準(zhǔn)地記錄年、月、日、周、時(shí)、分、秒,而且還能夠閏年自動(dòng)調(diào)整功能,確保時(shí)間的準(zhǔn)確性。這款時(shí)鐘芯片的工作電壓范圍廣泛,從2.0V到5.5V均可正常工作,滿足各種需求。DS1302采用三線接口與CPU進(jìn)行同步通信,這一設(shè)計(jì)簡(jiǎn)化了與主控制器的連接,提高了通信效率。而且還支持突發(fā)模式,能夠一次性傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù),大大提升數(shù)據(jù)傳輸?shù)男省T趦?nèi)部結(jié)構(gòu)上,DS1302擁有一個(gè)31×8的RAM寄存器,用于臨時(shí)存儲(chǔ)數(shù)據(jù),為應(yīng)用提供了額外的數(shù)據(jù)存儲(chǔ)空間。這款DS1302特別引人注目的是它新增了主電源與后備電源的雙電源引腳設(shè)計(jì)。這一創(chuàng)新功能確保了當(dāng)主電源發(fā)生故障或失效時(shí),它能夠迅速且無縫地切換到后備電源,從而保證了時(shí)鐘的連續(xù)穩(wěn)定運(yùn)行,避免因電源問題導(dǎo)致的時(shí)鐘中斷。此外,DS1302還具備對(duì)后備電源進(jìn)行涓細(xì)電流充電的能力,延長(zhǎng)了后備電源的使用壽命??偟膩碚f,DS1302是一款功能強(qiáng)大、性能穩(wěn)定的實(shí)時(shí)時(shí)鐘芯片,廣泛應(yīng)用于各種需要精確計(jì)時(shí)的場(chǎng)合,如電子表、計(jì)時(shí)器、嵌入式系統(tǒng)等。DS1302的引腳排列設(shè)計(jì)精巧,每個(gè)引腳都有其獨(dú)特的功能。其中,Vcc2作為主電源引腳,而VCC1則作為后備電源引腳。使DS1302在主電源關(guān)閉時(shí),也能依靠后備電源保持時(shí)鐘的連續(xù)運(yùn)行,確保時(shí)間的準(zhǔn)確與不間斷。DS1302的振蕩源引腳為X1和X2,它們外接一個(gè)32.768kHz的晶振,以提供穩(wěn)定的時(shí)鐘信號(hào)給DS1302。RST引腳作為DS1302的復(fù)位/片選線,在啟動(dòng)和控制數(shù)據(jù)傳送過程中起著至關(guān)重要的作用。當(dāng)RST引腳被驅(qū)動(dòng)至高電平時(shí),就會(huì)激活控制邏輯,使地址和命令序列能夠順暢地送入移位寄存器。此外,在DS1302上電啟動(dòng)時(shí),RST引腳的狀態(tài)有嚴(yán)格的要求:在Vcc電壓未達(dá)到2.0V之前,RST必須保持低電平狀態(tài),且只有在SCLK處于低電平狀態(tài)時(shí),RST才能被置為高電平,確保電路的穩(wěn)定運(yùn)行和數(shù)據(jù)的準(zhǔn)確傳輸。同時(shí),RST引腳還負(fù)責(zé)終止單字節(jié)或多字節(jié)的數(shù)據(jù)傳送。在數(shù)據(jù)傳輸過程中,一旦RST被置為低電平,數(shù)據(jù)傳輸將立即停止,并且I/O引腳將轉(zhuǎn)變?yōu)楦咦钁B(tài)。I/O引腳是DS1302的串行數(shù)據(jù)輸入輸出端,它具有雙向通信能力。能夠進(jìn)行數(shù)據(jù)的讀取和寫入。最后,SCLK是時(shí)鐘輸入端,它為DS1302提供穩(wěn)定的時(shí)鐘信號(hào),確保數(shù)據(jù)的準(zhǔn)確傳輸和同步??偟膩碚f,DS1302的引腳設(shè)計(jì)合理、功能齊全,使得它能夠滿足各種復(fù)雜和精確的時(shí)間記錄需求。無論是在電子表、計(jì)時(shí)器還是嵌入式系統(tǒng)中,DS1302都能發(fā)揮出其卓越的性能和穩(wěn)定性。DS1302的引腳功能如圖3-3所示圖3-3DS1302引腳功能圖
4軟件設(shè)計(jì)4.1總體程序設(shè)計(jì)在整個(gè)設(shè)計(jì)流程中,軟件設(shè)計(jì)與硬件設(shè)計(jì)必須緊密配合,確保兩者之間的無縫銜接。其中,軟件設(shè)計(jì)是整個(gè)設(shè)計(jì)過程的核心與關(guān)鍵。由于功能的多樣性,我們采用了模塊化設(shè)計(jì)原則,將軟件劃分為多個(gè)獨(dú)立的模塊,便于維護(hù)與管理。以下是對(duì)其主要模塊的詳細(xì)分析:主程序模塊:該模塊的主要任務(wù)是對(duì)接口芯片進(jìn)行初始化設(shè)置,包括對(duì)自行車?yán)锍毯退俣认嚓P(guān)寄存器的初始化,以及中斷向量的配置。同時(shí),還需要負(fù)責(zé)啟動(dòng)中斷并建立起循環(huán)等待機(jī)制。除此之外,啟動(dòng)/清除標(biāo)志寄存器、里程寄存器以及速度寄存器也都需要進(jìn)行必要的設(shè)置與初始化操作。在主程序運(yùn)行過程中,它會(huì)根據(jù)各標(biāo)志寄存器的實(shí)時(shí)狀態(tài),靈活執(zhí)行多種功能,如啟動(dòng)、清除、計(jì)程和計(jì)速等。同時(shí),為了確保及時(shí)有效的用戶反饋,模塊還特別設(shè)置了P1.2和P1.3端口,用于指示報(bào)警狀態(tài),以便用戶能夠及時(shí)了解并響應(yīng)可能出現(xiàn)的異常情況。計(jì)數(shù)子程序:該子程序負(fù)責(zé)根據(jù)霍爾傳感器檢測(cè)到的車輪轉(zhuǎn)動(dòng)信號(hào)進(jìn)行計(jì)數(shù)。每當(dāng)傳感器檢測(cè)到車輪轉(zhuǎn)動(dòng)一次,計(jì)數(shù)器就會(huì)增加相應(yīng)的數(shù)值,從而準(zhǔn)確記錄自行車的行駛里程。計(jì)時(shí)子程序:此子程序用于實(shí)現(xiàn)自行車的行駛時(shí)間計(jì)算。通過內(nèi)部的計(jì)時(shí)器或外部時(shí)鐘源,它可以精確地記錄自行車的行駛時(shí)間,為后續(xù)的速度計(jì)算提供基礎(chǔ)數(shù)據(jù)。LED顯示子程序:該子程序負(fù)責(zé)將自行車的里程、速度等信息通過LED顯示屏進(jìn)行實(shí)時(shí)顯示。它根據(jù)主程序或其他子程序提供的數(shù)據(jù),控制LED顯示屏的顯示內(nèi)容,確保用戶能夠直觀地了解自行車的行駛狀態(tài)。通過以上模塊的協(xié)同工作,基于霍爾傳感器的里程表能夠?qū)崿F(xiàn)精確、穩(wěn)定的里程和速度測(cè)量,并通過LED顯示屏為用戶提供實(shí)時(shí)的行駛信息。主程序流程圖如圖4-1所示。開始開始LCD、定時(shí)器初始化開中斷脈沖接收數(shù)字處理顯示信息結(jié)束鍵盤輸入?NY 鍵盤掃描NY圖4-1主程序流程圖4.2中斷程序設(shè)計(jì)定時(shí)中斷在單片機(jī)系統(tǒng)中扮演著滿足定時(shí)或計(jì)數(shù)需求的關(guān)鍵角色。單片機(jī)內(nèi)部集成了高效的定時(shí)/計(jì)數(shù)器模塊,這些模塊采用特定的計(jì)數(shù)機(jī)制來實(shí)現(xiàn)定時(shí)或計(jì)數(shù)的功能。一旦計(jì)數(shù)結(jié)構(gòu)中的計(jì)數(shù)值觸及預(yù)設(shè)的上限,將會(huì)發(fā)生計(jì)數(shù)溢出事件,此時(shí)會(huì)觸發(fā)一個(gè)計(jì)數(shù)溢出信號(hào)。這個(gè)計(jì)數(shù)溢出信號(hào)在單片機(jī)內(nèi)部被用作中斷請(qǐng)求,就會(huì)去置位一個(gè)特定的溢出標(biāo)志。這個(gè)標(biāo)志就是單片機(jī)接受中斷請(qǐng)求的標(biāo)志,一旦該標(biāo)志被置位,單片機(jī)就會(huì)根據(jù)當(dāng)前的中斷優(yōu)先級(jí)和中斷使能狀態(tài)來決定是否響應(yīng)這個(gè)中斷請(qǐng)求。這種中斷請(qǐng)求是單片機(jī)芯片內(nèi)部自主產(chǎn)生的,所以不用在芯片上額外設(shè)置外部引入端以接收中斷信號(hào)。這種內(nèi)部中斷機(jī)制顯著簡(jiǎn)化了系統(tǒng)的硬件設(shè)計(jì),同時(shí)提升了系統(tǒng)的整體可靠性和穩(wěn)定性,為各類應(yīng)用提供了更為便捷和高效的解決方案。在實(shí)際應(yīng)用中,開發(fā)者可以通過編程來配置定時(shí)/計(jì)數(shù)器的參數(shù),如計(jì)數(shù)初值、計(jì)數(shù)上限等,以實(shí)現(xiàn)所需的定時(shí)或計(jì)數(shù)功能。同時(shí),還可以通過編程來定義中斷服務(wù)程序,以處理定時(shí)或計(jì)數(shù)溢出時(shí)所需執(zhí)行的操作。定時(shí)中斷是單片機(jī)系統(tǒng)中一種高效、靈活且易于實(shí)現(xiàn)的功能,它能夠滿足各種定時(shí)或計(jì)數(shù)需求,為系統(tǒng)的正常運(yùn)行提供了有力支持。TCON是一個(gè)8位的定時(shí)/計(jì)數(shù)器控制寄存器,其內(nèi)存地址為88H,支持按位尋址。這個(gè)8位寄存器中,高4位被專門用于控制定時(shí)/計(jì)數(shù)器的中斷功能,而低4位則被外部中斷所借用。低4位不僅用于設(shè)置中斷標(biāo)志,還用于選擇中斷的觸發(fā)方式。通過合理配置這些位,可以實(shí)現(xiàn)對(duì)定時(shí)/計(jì)數(shù)器中斷和外部中斷的精準(zhǔn)控制。這種設(shè)計(jì)使得TCON寄存器在單片機(jī)系統(tǒng)中發(fā)揮著關(guān)鍵的作用,既能夠靈活控制定時(shí)/計(jì)數(shù)器的中斷,又能夠方便地管理外部中斷的觸發(fā)和標(biāo)識(shí)。TF0/TF1:定時(shí)器計(jì)數(shù)溢出標(biāo)志位??捎糜谏暾?qǐng)中斷或供CPU查詢。這里用作中斷請(qǐng)求。(由硬件自動(dòng)置位)。=0:定時(shí)器未溢出;=1:定時(shí)器溢出(由全“1”變成全“0”)時(shí)由硬件自動(dòng)置位,申請(qǐng)中斷,中斷被CPU響應(yīng)后由硬件自動(dòng)清零。TR0/TR1:定時(shí)器運(yùn)行啟??刂莆唬捎捎脩敉ㄟ^軟件設(shè)置)。=0:定時(shí)器停止運(yùn)行;=1:定時(shí)器啟動(dòng)運(yùn)行。本次設(shè)計(jì)采用定時(shí)中斷,對(duì)車的里程和速度進(jìn)行計(jì)數(shù)。車開始運(yùn)行,定時(shí)器0為1,開始計(jì)時(shí),當(dāng)車轉(zhuǎn)過一圈產(chǎn)生一個(gè)脈沖時(shí),定時(shí)器溢出,外部中斷0響應(yīng),此時(shí)由脈沖數(shù)和時(shí)間可以計(jì)算出里程和速度。中斷程序流程圖如圖4-2所示。圖4-2中斷程序流程圖4.3延時(shí)程序車?yán)锍瘫淼脑O(shè)計(jì)中延時(shí)有按鍵延時(shí)(速度加、減、里程清0)、LCD顯示延時(shí)、AT24C02存儲(chǔ)的延時(shí),本次設(shè)計(jì)的延時(shí)全部采用延時(shí)5ms。,程序編寫時(shí)是采用延時(shí)1ms,然后調(diào)用5次。延時(shí)流程圖如圖4-3所示。開始開始掃描鍵盤是否有鍵盤按下并判斷鍵號(hào)延時(shí)去抖動(dòng)YN再次判斷相應(yīng)鍵是否被按下加速子程序減速子程序里程清0子程序NY圖4-3延時(shí)流程圖4.4按鍵掃描在本次設(shè)計(jì)中,按鍵被劃分為獨(dú)立式按鍵和矩陣式按鍵兩類,本次設(shè)計(jì)選擇了獨(dú)立式按鍵。獨(dú)立式按鍵主要包括速度加按鍵、速度減按鍵以及里程清零按鍵。這些按鍵在實(shí)際應(yīng)用時(shí),為了避免由于機(jī)械接觸不穩(wěn)定而產(chǎn)生的抖動(dòng)現(xiàn)象,我們需要對(duì)按鍵進(jìn)行去抖處理,以確保系統(tǒng)的穩(wěn)定運(yùn)行。去抖的方法主要分為兩種:硬件去抖和軟件去抖。硬件去抖是通過在按鍵電路中加入電容、電阻等元件來濾除按鍵抖動(dòng)產(chǎn)生的噪聲信號(hào)。這種方法可以有效地在電路層面上減少抖動(dòng)的影響,但需要額外的硬件成本和電路布局考慮。軟件去抖則是通過編程的方式,在檢測(cè)到按鍵按下或釋放的動(dòng)作后,加入一段延時(shí)時(shí)間,等待抖動(dòng)結(jié)束后再確認(rèn)按鍵的狀態(tài)。這種方法不需要額外的硬件支持,成本較低,但可能需要更復(fù)雜的軟件邏輯和更長(zhǎng)的響應(yīng)時(shí)間。在本設(shè)計(jì)中,我們采用了軟件去抖的方式,通過編寫相應(yīng)的程序邏輯,對(duì)按鍵狀態(tài)進(jìn)行多次檢測(cè)和確認(rèn),以消除按鍵抖動(dòng)對(duì)系統(tǒng)的影響,保證按鍵操作的準(zhǔn)確性和穩(wěn)定性。這里去抖是分別在按下和松開后加一小段延時(shí),當(dāng)按鍵按下后在0~5ms內(nèi)出現(xiàn)抖動(dòng),所以這里采用的延時(shí)時(shí)間是5ms。按鍵對(duì)應(yīng)的接口如下:sbitKEY1=P3^5;//速度加按鍵sbitKEY2=P3^6;//速度減按鍵sbitKEY3=P3^7;//里程清0按鍵4.5數(shù)據(jù)處理子程序設(shè)計(jì)定時(shí)器的初值計(jì)算過程如下:在定時(shí)器模式下,計(jì)數(shù)器的計(jì)數(shù)脈沖是晶振脈沖的12分頻信號(hào)。對(duì)于12MHz的晶振,計(jì)數(shù)器的計(jì)數(shù)頻率為1MHz,即每微秒計(jì)數(shù)一次。如果機(jī)器周期是晶振頻率的倒數(shù)除以12,則機(jī)器周期為1us。設(shè)定時(shí)時(shí)間為1000ms(即1秒),我們需要計(jì)算定時(shí)器的初值X。初值X的計(jì)算公式為:X=(2^n-T)/T1其中,T是定時(shí)時(shí)間(以機(jī)器周期為單位),T1是計(jì)數(shù)器的計(jì)數(shù)周期(也是機(jī)器周期的長(zhǎng)度),n是定時(shí)器的位數(shù)。對(duì)于定時(shí)器方式0,n=13;方式1時(shí),n=16;方式2和方式3,n=8。由于計(jì)數(shù)器的計(jì)數(shù)頻率為1MHz,即每微秒計(jì)數(shù)一次,所以T1=1us。定時(shí)時(shí)間為1000ms,即T=1000000。對(duì)于方式0,定時(shí)器是13位的,所以計(jì)算初值:X=(2^13-1000000)/1=(8192-1000000)/1=-991808(這里得到的是負(fù)數(shù),表明在方式0下無法實(shí)現(xiàn)1秒的定時(shí),因?yàn)榉绞?的最大定時(shí)時(shí)間是819.2ms)因此,對(duì)于需要定時(shí)1秒的應(yīng)用,我們不能使用方式0。我們需要選擇方式1或方式2(如果允許的話)。對(duì)于方式1(16位定時(shí)器):X=(2^16-1000000)/1=(65536-1000000)/1=-344664(同樣得到負(fù)數(shù),表明即使使用方式1也無法直接實(shí)現(xiàn)1秒的定時(shí))但是,我們可以通過軟件定時(shí)的方式來實(shí)現(xiàn)1秒的定時(shí)。即定時(shí)器定時(shí)一段時(shí)間后產(chǎn)生中斷,然后在中斷服務(wù)程序中累加定時(shí)時(shí)間,當(dāng)達(dá)到1秒時(shí)執(zhí)行相應(yīng)的操作。對(duì)于外中斷0服務(wù)程序的設(shè)計(jì):外中斷0用于對(duì)單片機(jī)輸入的圈脈沖進(jìn)行計(jì)數(shù)。每當(dāng)車輪轉(zhuǎn)一圈,通過霍爾元件產(chǎn)生一個(gè)脈沖信號(hào)輸入到單片機(jī)。這個(gè)脈沖信號(hào)觸發(fā)外中斷0,然后在外中斷0的服務(wù)程序中,對(duì)計(jì)數(shù)器進(jìn)行加1操作。計(jì)數(shù)器采用兩個(gè)內(nèi)存地址來保存,60H為低位,62H為高位。每次計(jì)數(shù)后,還需要對(duì)里程數(shù)據(jù)進(jìn)行存儲(chǔ)操作。里程數(shù)的計(jì)算是通過將脈沖數(shù)乘以車輪的周長(zhǎng)來得到的。設(shè)定車輪周長(zhǎng)為30mm,脈沖數(shù)為m,則總的里程數(shù)=0.030*m。在速度子程序的設(shè)計(jì)中:為了使用單片機(jī)的定時(shí)器T0來測(cè)量速度,我們可以設(shè)置定時(shí)器T0每10ms產(chǎn)生一次中斷。當(dāng)累計(jì)的中斷次數(shù)達(dá)到100次時(shí),即意味著經(jīng)過了1秒的時(shí)間。此時(shí),我們可以調(diào)用脈沖接收子程序來獲取當(dāng)前的圈數(shù)變量,并據(jù)此計(jì)算速度。速度的計(jì)算方法是將圈數(shù)乘以車輪的周長(zhǎng),然后除以時(shí)間(1秒)。計(jì)算完成后,重置圈數(shù)變量,以便開始下一輪的速度測(cè)量。報(bào)警部分的設(shè)計(jì):當(dāng)車的速度超過預(yù)設(shè)的15km/h時(shí),觸發(fā)報(bào)警。聲音部分采用蜂鳴報(bào)警器,蜂鳴器是高電平有效,即當(dāng)速度超過預(yù)設(shè)值時(shí),蜂鳴器輸入信號(hào)由0變?yōu)?,蜂鳴器開始工作。Led燈采用的是共陽極接法,即低電平有效。當(dāng)車的行駛速度低于15km/h時(shí),L1常亮;當(dāng)速度超過預(yù)設(shè)值時(shí),L1熄滅,L2常亮報(bào)警,直到解除報(bào)警。綜上,整個(gè)設(shè)計(jì)涉及到定時(shí)器的使用、中斷的處理、計(jì)數(shù)和速度的計(jì)算,以及報(bào)警功能的實(shí)現(xiàn)。在實(shí)際編程時(shí),需要根據(jù)單片機(jī)的具體型號(hào)和指令集來編寫相應(yīng)的代碼。里程處理子程序流程圖如圖4-4所示,速度處理子程序流程圖如圖4-5所示。圖4-4里程處理子程序流程圖YY速度處理子程序開中斷每10ms中斷次數(shù)加1,計(jì)數(shù)為100?計(jì)算瞬時(shí)速度是否超速?報(bào)警關(guān)報(bào)警顯示速度Y返回圖4-5速度處理子程序流程圖4.6顯示子程序設(shè)計(jì)DDRAM顯示數(shù)據(jù)RAM地址和屏幕的對(duì)應(yīng)關(guān)系如表4-1所示。顯示位置123456……40DDRAM地址第一行00H01H02H03H04H05H……27H第二行40H41H42H43H44H45H……67H表4-1DDRAM地址和顯示位置的對(duì)應(yīng)關(guān)系想要在LCD1602屏幕的第二行第一列顯示一個(gè)“M”字,需要做的是向顯示數(shù)據(jù)RAM(DDRAM)的40H地址寫入字符“M”的ASCII碼值。對(duì)于字符“M”,其ASCII碼值為4D(十六進(jìn)制),即十進(jìn)制的77。因此,需要將77(或十六進(jìn)制4D)這個(gè)值寫入到DDRAM的40H地址中。這樣,LCD1602模塊會(huì)從其內(nèi)部的字符生成ROM(CGROM)中查找與這個(gè)ASCII碼值對(duì)應(yīng)的字符點(diǎn)陣數(shù)據(jù),并在屏幕的第二行第一列位置上顯示出字符“M”。LCD1602模塊確實(shí)內(nèi)置了字模存儲(chǔ)器,其中包括CGROM(字符生成只讀存儲(chǔ)器)和CGRAM(字符生成隨機(jī)存取存儲(chǔ)器)。CGROM負(fù)責(zé)存儲(chǔ)標(biāo)準(zhǔn)的ASCII字符字模數(shù)據(jù),使得LCD能夠直接顯示這些預(yù)定義的字符。而CGRAM則提供了額外的靈活性,允許用戶自定義最多8個(gè)字符的字模數(shù)據(jù)。當(dāng)用戶需要顯示自定義字符時(shí),可以將這些字符的點(diǎn)陣數(shù)據(jù)寫入CGRAM中。隨后,在DDRAM(顯示數(shù)據(jù)隨機(jī)存取存儲(chǔ)器)中使用特定的地址來引用這些自定義字符,從而實(shí)現(xiàn)在LCD屏幕上的顯示。然而,對(duì)于標(biāo)準(zhǔn)的ASCII字符,如字母“M”,用戶無需進(jìn)行額外的操作。只需將字符“M”的ASCII碼值寫入DDRAM,LCD1602模塊便會(huì)自動(dòng)從CGROM中查找并顯示相應(yīng)的字符字模數(shù)據(jù)。這種機(jī)制大大簡(jiǎn)化了標(biāo)準(zhǔn)字符的顯示過程,同時(shí)為用戶提供了自定義字符的靈活性。下圖4-6說明了CGROM和CGRAM與字符的對(duì)應(yīng)關(guān)系。圖4-6CGROM和CGRAM與字符的對(duì)應(yīng)關(guān)系從上圖可知,“M”字的對(duì)應(yīng)點(diǎn)陣高位代碼為0100,低位代碼為1101,合并后得到01001101,即十六進(jìn)制4DH。在LCD屏幕上顯示一個(gè)字符的過程通常包括以下幾個(gè)步驟:初始化LCD模塊、發(fā)送指令到LCD模塊以設(shè)置顯示模式、選擇顯示位置(即寫入DDRAM地址)、在選定位置寫入字符的ASCII碼值、檢查L(zhǎng)CD是否忙碌以避免數(shù)據(jù)沖突、以及可能需要的延時(shí)函數(shù)以確保數(shù)據(jù)穩(wěn)定顯示。對(duì)于速度的顯示,程序需要定位到第一行第十列的位置,對(duì)應(yīng)的DDRAM地址是09H。假設(shè)我們通過速度調(diào)節(jié)鍵設(shè)定的輸入速度為16km/h,我們需要在09H地址處開始顯示這個(gè)速度值。由于16在LCD上需要兩位數(shù)字來表示(即“1”和“6”),我們需要分別寫入這兩個(gè)字符的ASCII碼值?!?”字的高位代碼為0011,低位代碼為0001,合并后為00110001,即十六進(jìn)制31H。首先,程序會(huì)將DDRAM的地址設(shè)置為09H,然后寫入31H以顯示數(shù)字“1”。接下來,為了顯示數(shù)字“6”,我們需要將光標(biāo)右移一位(這通常通過發(fā)送特定的指令到LCD模塊來實(shí)現(xiàn)),然后再次寫入“6”的ASCII碼值到下一個(gè)DDRAM地址。簡(jiǎn)而言之,數(shù)據(jù)顯示的過程就是先確定要顯示的地址(即DDRAM的某個(gè)位置),然后寫入對(duì)應(yīng)字符的ASCII碼值。通過重復(fù)這個(gè)過程,可以在LCD屏幕上顯示任意長(zhǎng)度的文本或數(shù)值信息。顯示程序流程圖如圖4-7所示。開始開始液晶初始化光標(biāo)定位送顯示數(shù)據(jù)顯示結(jié)束圖4-7顯示子程序流程圖4.7存儲(chǔ)芯片的選擇本次設(shè)計(jì)所選用的存儲(chǔ)芯片是AT24C02,這是一款2K位的串行CMOSEEPROM,有256個(gè)8位字節(jié)的存儲(chǔ)空間,并具備專門的寫保護(hù)功能,確保數(shù)據(jù)在掉電情況下依然能夠保持不丟失。為了確保與AT24C02的有效通信,需要遵循I2C總線的通信協(xié)議。以下是關(guān)于I2C總線操作的一些關(guān)鍵步驟和要點(diǎn):1、起始信號(hào):在發(fā)送任何操作指令之前,必須首先發(fā)出起始信號(hào)。信號(hào)通過數(shù)據(jù)線(SDA)從高電平到低電平的跳變產(chǎn)生,與此同時(shí)時(shí)鐘線(SCL)需要保持高電平狀態(tài)。AT24C02會(huì)持續(xù)監(jiān)控SDA和SCL的電平變化,只有在檢測(cè)到正確的起始信號(hào)時(shí),才會(huì)開始響應(yīng)。2、停止信號(hào):當(dāng)數(shù)據(jù)傳輸完成后,就需要發(fā)送一個(gè)停止信號(hào)來結(jié)束通信。這個(gè)信號(hào)是在時(shí)鐘線(SCL)維持高電平期間,通過數(shù)據(jù)線(SDA)從低電平跳變到高電平來產(chǎn)生的。3、器件地址與操作模式:主設(shè)備在發(fā)送起始信號(hào)后,緊接著發(fā)送一個(gè)8位的從設(shè)備地址。這個(gè)地址中,前四位固定為1010,用于標(biāo)識(shí)AT24C02芯片;隨后的三位指定具體的存儲(chǔ)器地址;最后一位用于區(qū)分讀寫操作,其中“1”表示讀操作,“0”表示寫操作。如果接收到的地址與AT24C02內(nèi)部設(shè)定的地址相匹配,AT24C02會(huì)發(fā)送應(yīng)答信號(hào),并根據(jù)讀寫控制位執(zhí)行相應(yīng)的操作。4、應(yīng)答機(jī)制:每次成功傳輸8位數(shù)據(jù)后,接收方會(huì)發(fā)送應(yīng)答信號(hào)。在第九個(gè)時(shí)鐘周期內(nèi),發(fā)送應(yīng)答信號(hào)的設(shè)備會(huì)拉低SDA,以此通知發(fā)送方數(shù)據(jù)已被成功接收。對(duì)于寫操作,每寫入一個(gè)字節(jié)數(shù)據(jù)后,AT24C02都會(huì)發(fā)送應(yīng)答信號(hào)。而對(duì)于讀操作,AT24C02在發(fā)送一個(gè)字節(jié)數(shù)據(jù)后會(huì)釋放總線并等待應(yīng)答信號(hào),若收到應(yīng)答信號(hào)則繼續(xù)發(fā)送數(shù)據(jù),若收到非應(yīng)答信號(hào)則停止發(fā)送數(shù)據(jù)并等待停止信號(hào)的到來。5、寫操作流程:首先,主設(shè)備執(zhí)行初始化操作,并且發(fā)送起始信號(hào)和從設(shè)備地址,這一步驟與發(fā)送其他指令時(shí)的初始化過程一致。從設(shè)備正確響應(yīng)后,主設(shè)備繼續(xù)發(fā)送目標(biāo)內(nèi)存地址,并等待從設(shè)備的應(yīng)答信號(hào),保證地址被正確識(shí)別。在從設(shè)備成功應(yīng)答后,主設(shè)備開始發(fā)送待寫入的數(shù)據(jù)。完成數(shù)據(jù)發(fā)送后,主設(shè)備再次等待從設(shè)備的應(yīng)答,這一步驟是為了驗(yàn)證數(shù)據(jù)是否被從設(shè)備正確接收。最后,主設(shè)備會(huì)發(fā)送一個(gè)停止信號(hào),通知AT24C02開始其內(nèi)部寫周期。在這個(gè)寫周期中,AT24C02將不會(huì)響應(yīng)任何外部的指令或信號(hào),以確保數(shù)據(jù)能夠安全無誤地寫入存儲(chǔ)器中。通過以上步驟的依次執(zhí)行,主設(shè)備能夠成功地將數(shù)據(jù)寫入AT24C02存儲(chǔ)器,從而完成整個(gè)寫操作過程。6、讀操作流程:讀操作的初始化與寫操作類似,需要將讀寫控制位設(shè)置為“1”。讀操作包括三種方式:立即地址讀、選擇地址讀和連續(xù)讀。每種方式的具體實(shí)現(xiàn)細(xì)節(jié)可能有所不同,但基本原理是主設(shè)備發(fā)送讀取請(qǐng)求,AT24C02響應(yīng)并發(fā)送請(qǐng)求的數(shù)據(jù)。5系統(tǒng)調(diào)試5.1系統(tǒng)操作使用介紹在仿真過程中,一旦按下開始鍵,仿真將立即啟動(dòng),并通過LCD1602液晶顯示屏展示當(dāng)前的年、月、日、時(shí)、分、星期、總里程以及當(dāng)前速度等信息。這些信息對(duì)于駕駛者來說至關(guān)重要,可以幫助他們實(shí)時(shí)了解車輛的行駛狀態(tài)。LCD1602液晶顯示屏以其清晰、易讀的特點(diǎn),為駕駛者提供了直觀的信息展示。通過屏幕上的顯示,駕駛者可以迅速掌握當(dāng)前的時(shí)間、日期以及車輛的行駛里程和速度。此外,仿真中還設(shè)置了“設(shè)置”鍵,通過按下該鍵,駕駛者可以選擇對(duì)時(shí)間、輪胎半徑以及超速報(bào)警值進(jìn)行調(diào)整。這一功能使得駕駛者可以根據(jù)自己的需求和車輛的實(shí)際情況進(jìn)行個(gè)性化設(shè)置,提高了仿真的實(shí)用性和靈活性。同時(shí),“加”和“減”按鍵則用于對(duì)時(shí)間、輪胎半徑和超速報(bào)警值進(jìn)行加減調(diào)整。通過這兩個(gè)按鍵的配合使用,駕駛者可以精確地調(diào)整這些參數(shù),以滿足不同的駕駛需求。值得一提的是,當(dāng)“加”和“減”鍵同時(shí)被按下時(shí),里程數(shù)將被清零。這一設(shè)計(jì)使得駕駛者可以方便地重置里程數(shù),為下一次的行駛做好準(zhǔn)備。綜上所述,通過本次仿真設(shè)計(jì),我們?yōu)轳{駛者提供了一款功能豐富、操作簡(jiǎn)便的測(cè)速儀。無論是實(shí)時(shí)顯示行駛信息,還是個(gè)性化設(shè)置參數(shù),都能為駕駛者帶來更加便捷和安全的駕駛體驗(yàn)。5.2系統(tǒng)調(diào)試過程(1)啟動(dòng)仿真,顯示器上會(huì)顯示出里程且單位公里如圖5-1所示。圖5-1里程單位顯示(2)按鍵功能中還有里程清零功能,當(dāng)同時(shí)按下按鍵“加”和“減”鍵后松開時(shí)可以達(dá)到清除里程的效果如圖5-2所示,圖5-3所示。圖5-2同時(shí)按下“加”和“減”鍵圖5-3里程清零5.3分析及措施測(cè)量里程的實(shí)物方案選擇采用霍爾模塊作為核心檢測(cè)元件。當(dāng)車輪轉(zhuǎn)動(dòng)時(shí),霍爾元件會(huì)檢測(cè)到電機(jī)磁極的變化,從而觸發(fā)輸出端電壓的變化并輸出脈沖信號(hào)。這個(gè)脈沖信號(hào)被接入到單片機(jī)的外部中斷0引腳P3.2上。單片機(jī)設(shè)定為每50毫秒(ms)中斷一次,中斷服務(wù)程序中會(huì)記錄這段時(shí)間內(nèi)接收到的脈沖數(shù)。當(dāng)單片機(jī)中斷10次后,它會(huì)累計(jì)這500ms內(nèi)的脈沖數(shù),進(jìn)而根據(jù)已知的車輪周長(zhǎng)計(jì)算出車在這500ms內(nèi)行駛的距離。接著,將這段距離乘以二,就可以得到車在1秒內(nèi)行駛的距離。通過進(jìn)一步的換算,這個(gè)距離值可以被轉(zhuǎn)化
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 應(yīng)急預(yù)案臭氧中毒(3篇)
- 孔口墜落應(yīng)急預(yù)案(3篇)
- 引橋擋墻施工方案(3篇)
- 截流排水應(yīng)急預(yù)案(3篇)
- 工地水井施工方案(3篇)
- 標(biāo)線設(shè)計(jì)施工方案(3篇)
- 下載護(hù)坡施工方案(3篇)
- 水庫(kù)打樁施工方案(3篇)
- 工地砌磚施工方案(3篇)
- 熱水供應(yīng)應(yīng)急預(yù)案(3篇)
- 2026年內(nèi)蒙古白音華鋁電有限公司招聘?jìng)淇碱}庫(kù)帶答案詳解
- 2025年玉溪市市直事業(yè)單位選調(diào)工作人員考試筆試試題(含答案)
- 2026年游戲AB測(cè)試實(shí)施方法含答案
- 2025湖南湘西鶴盛原煙發(fā)展有限責(zé)任公司招聘擬錄用人員筆試歷年備考題庫(kù)附帶答案詳解
- 江蘇省2025年普通高中學(xué)業(yè)水平合格性考試英語試卷(含答案)
- 枕骨骨折的護(hù)理課件
- GB/T 26951-2025焊縫無損檢測(cè)磁粉檢測(cè)
- 腹部手術(shù)圍手術(shù)期疼痛管理指南(2025版)課件
- 呼吸康復(fù)科普脫口秀
- 2025年《思想道德與法治》期末考試題庫(kù)及答案
- 2025初一英語閱讀理解100篇
評(píng)論
0/150
提交評(píng)論