2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p>  基于AT89C52單片機出租車計價器設(shè)計</p><p><b>  摘 要</b></p><p>  隨著城市建設(shè)日益加快,象征著城市面貌的出租車行業(yè)也將加速發(fā)展?,F(xiàn)在各大中城市出租車行業(yè)都已普及自動計價器,所以計價器技術(shù)的發(fā)展有很好的前景。盡管小城市尚未普及,但計價器的普及也是毫無疑問的,所以未來汽車計價器的市場還是十分有潛力的。</

2、p><p>  出租車計價器是單片機的一種典型應(yīng)用。基于單片機的計價器是由單片機和外部電路組成。包括檢測模塊,控制模塊,人機模塊。里程檢測模塊由脈沖模擬轉(zhuǎn)速,控制模塊包括AT89C52單片機,人機模塊包括獨立鍵盤和LED動態(tài)顯示。利用脈沖模擬車輪轉(zhuǎn)動進行里程檢測,采用AT24C02 實現(xiàn)在系統(tǒng)掉電的時候保存單價和系統(tǒng)時間等信息,輸出采用8位LED數(shù)碼管,通過開關(guān)S1分屏控制單價、路程、總金額以及時間的顯示。</

3、p><p>  系統(tǒng)的軟件設(shè)計主要有:主程序模塊、定時中斷服務(wù)程序、里程計數(shù)中斷服務(wù)程序、中途等待中斷服務(wù)程序、顯示子程序服務(wù)程序鍵盤服務(wù)程序。</p><p>  本電路設(shè)計的計價器主要功能有:數(shù)據(jù)的復(fù)位、白天/晚上轉(zhuǎn)換、數(shù)據(jù)輸出、計時計價、單價輸出及調(diào)整、路程輸出、語音播報數(shù)據(jù)信息、實現(xiàn)在系統(tǒng)掉電的時候保存單價和系統(tǒng)時間等信息等功能。本電路設(shè)計的計價器不但能實現(xiàn)基本的計價,而且還能根據(jù)白天

4、、黑夜、中途等待來調(diào)節(jié)單價,同時在不計價的時候還能作為時鐘為司機同志提供方便。</p><p><b>  系統(tǒng)性能指標(biāo)</b></p><p><b>  1.設(shè)定價格;</b></p><p>  2.顯示當(dāng)前單價、行駛里程和總金額;</p><p>  3.里程精確到0.1公里。</p&

5、gt;<p>  通過多次調(diào)試系統(tǒng)性能達到設(shè)計要求。</p><p>  關(guān)鍵詞:AT89C52,脈沖模擬 ,I2C總線,動態(tài)顯示</p><p><b>  目 錄</b></p><p><b>  前 言1</b></p><p>  第1章 系統(tǒng)工作原理3</p>

6、;<p>  1.1功能要求3</p><p>  1.2基本原理3</p><p>  第2章 硬件設(shè)計5</p><p>  2.1 單片機最小系統(tǒng)單元5</p><p>  2.2 掉電存儲單元8</p><p>  2.3 鍵盤調(diào)整單元9</p><p> 

7、 2.4 顯示單元10</p><p>  第3章 軟件設(shè)計14</p><p>  3.1 系統(tǒng)主程序14</p><p>  3.2 里程計數(shù)中斷程序15</p><p>  3.3 中途等待中斷程序15</p><p>  3.4 計算程序17</p><p>  3.5 顯示

8、程序18</p><p>  3.6 鍵盤程序18</p><p>  第4章 調(diào)試改進過程及運行結(jié)果分析21</p><p>  4.1 動態(tài)掃描的調(diào)試和分析21</p><p>  4.2 AT24C02的編程與調(diào)試21</p><p>  4.3 按鍵查詢功能的實現(xiàn)21</p><

9、p>  4.4 計算程序的分析與設(shè)計22</p><p>  4.5 結(jié)果分析與性能改進23</p><p>  4.6 計價器系統(tǒng)的仿真23</p><p><b>  結(jié) 論26</b></p><p><b>  謝 辭27</b></p><p>&

10、lt;b>  參考文獻28</b></p><p>  附 錄A 系統(tǒng)原理圖30</p><p>  附 錄B 仿真圖PCB板31</p><p>  附 錄C 系統(tǒng)源程序33</p><p><b>  外文資料翻譯55</b></p><p><b>

11、;  前 言</b></p><p>  單片機是一種可通過編程控制的微處理器,雖其自身不能單獨用在某項工程或產(chǎn)品上,但當(dāng)其與外圍數(shù)字器件和模擬器件結(jié)合時便可發(fā)揮強大的功能,現(xiàn)在單片機已廣泛應(yīng)用于眾多領(lǐng)域。舉例如下:</p><p>  1. 工業(yè)自動化。如數(shù)據(jù)采集、測控技術(shù)。</p><p>  2. 智能儀器儀表。如數(shù)字示波器、數(shù)字信號源、感應(yīng)電流表

12、等。</p><p>  3. 消費類電子產(chǎn)品。如空調(diào)機、微波爐、IC卡、汽車電子設(shè)備等。</p><p>  4. 通信方面。如調(diào)制解調(diào)器、程控交換技術(shù)等。</p><p>  5. 武器裝備。如飛機、軍艦、導(dǎo)彈、魚雷制導(dǎo)、智能武器等。</p><p>  作為與自動化技術(shù)和電子密切相關(guān)的理工科學(xué)生,掌握單片機是最簡單也最基礎(chǔ)的要求。為了進

13、一步豐富和鞏固單片機知識,也為了能更好的聯(lián)系實際應(yīng)用,本次畢業(yè)設(shè)計選擇了基于單片機AT89C52控制的出租車計價器,并力求能做出實物。</p><p>  鑒于電子技術(shù)、計算機技術(shù)以及各種更先進的仿真軟件的出現(xiàn),使用高級語言如C代替匯編語言進行編程和控制已成為現(xiàn)實,也成為一種發(fā)展趨勢。單片機C語言編程相對于MC51匯編語言編程有如下優(yōu)點:</p><p>  1. 對單片機的指令系統(tǒng)不需要

14、有很深的理解就可以編程操作單片機。</p><p>  2. 寄存器分配、不同存儲器的尋址及數(shù)據(jù)類型等細節(jié)完全由編輯器自動處理。</p><p>  3. 程序有規(guī)范的結(jié)構(gòu),可分為不同的函數(shù),可使程序結(jié)構(gòu)化。</p><p>  4. 庫中包括許多標(biāo)準(zhǔn)子程序,具有較強的處理能力,使用方便。</p><p>  5. 具有方便的模塊化編程技術(shù),

15、使已編好的程序便于移植,可極大縮短開發(fā)時間,增加程序的可讀性和可維護性。</p><p>  事實上,當(dāng)今許多硬件的開發(fā)都已開始用C語言編程,如各種單片機、DSP、ARM等,用C語言進行工業(yè)控制也已成為一種趨勢,為了更好的適應(yīng)當(dāng)今社會形勢,為了更好的面對挑戰(zhàn)、把握機遇,此次畢業(yè)設(shè)計決定嘗試用C語言編程完成。也希望能在進一步熟悉單片機控制的同時,對數(shù)字電子技術(shù)、模擬電子技術(shù)、計算控制技術(shù)以及常用外圍芯片有更深層次的

16、了解,提高自己的綜合能力。</p><p>  綜上:基于單片機AT89C52設(shè)計的出租車計價器不僅可方便的用軟件代替硬件,降低成本,具備一般計價器的計算里程和顯示總金額的功能,還具備了掉電保持,白天、夜晚單價切換,并且還可很方便的擴展為速度測試儀,具有很好市場前景。</p><p><b>  功能要求</b></p><p>  1. 設(shè)計

17、一個出租車計價器,并利用脈沖信號模擬車輪轉(zhuǎn)動和單片機內(nèi)集成的計數(shù)器測試出出租車運行里程。</p><p>  2. 要求單價可調(diào),里程精確到0.1公里,并要求對等待時間進行計時。</p><p>  3. 利用I2C總線通過EEPROM對存儲空間進行擴展,使其具備掉電存儲功能。</p><p>  4. 有完整的軟件仿真結(jié)果和硬件電路,并用Protel設(shè)計系統(tǒng)原理圖

18、。</p><p>  2 總體設(shè)計方案的論證與比較</p><p>  2.1 總體設(shè)計方案的論證與比較</p><p>  方案一:采用PLC控制。其原理方框圖如圖2.1所示。采用傳感器件,輸出脈沖信號,經(jīng)過放大整形作為移位寄存器的脈沖,實現(xiàn)計價,但是考慮到這種電路過于簡單,性能不夠穩(wěn)定,而且不能調(diào)節(jié)單價,也不能根據(jù)天氣調(diào)節(jié)計費標(biāo)準(zhǔn),電路不夠?qū)嵱谩F湓矸娇驁D如

19、圖2.1所示。</p><p>  圖2.1數(shù)字電路方案</p><p>  方案二:采用單片機控制。利用單片機豐富的IO端口,及其控制的靈活性,實現(xiàn)基本的里程計價功能和價格調(diào)節(jié)、時鐘顯示功能。其原理方框圖如圖2.2所示。</p><p>  圖2.2總體設(shè)計思路框圖</p><p>  采用模擬電路和數(shù)字電路設(shè)計的計價器整體電路的規(guī)模較大,

20、用到的器件多,造成故障率高,難調(diào)試,對于模式的切換需要用到機械開關(guān),機械開關(guān)時間久了會造成接觸不良,功能不易實現(xiàn)。通過比較以上兩種方案,單片機有較大的活動空間,利用單片機豐富的IO端口,及其控制的靈活性,不但能實現(xiàn)基本的里程計價功能和價格調(diào)節(jié)、時鐘顯示功能,而且能在很大的程度上擴展功能,還可以方便的對系統(tǒng)進行升級。為此我們采用了單片機進行設(shè)計,相對來說功能強大,用較少的硬件和適當(dāng)?shù)能浖嗷ヅ浜峡梢院苋菀椎膶崿F(xiàn)設(shè)計要求</p>

21、<p>  第1章 系統(tǒng)工作原理</p><p><b>  功能要求</b></p><p>  出租車計價器是根據(jù)乘客乘坐汽車行駛距離和等候時間的多少進行計價的,并在行駛中同步顯示本次消費、運行里程、運行單價以及等待時間等信息。從起步開始,當(dāng)汽車行駛里程未滿3公里時,均按起步價計算。超過3公里后,實現(xiàn)每1公里單價收費,中間遇到暫停時,計程數(shù)不再增加,

22、開始計時收費,計程收費和計時收費的和便構(gòu)成了一位乘客的車費。同時,白天和夜晚價格不同,可以進行切換。白天單價、夜晚單價、等待單價和起步價格都可通過獨立鍵盤進行調(diào)節(jié)。(默認(rèn)起步價為5元/3公里,里程單價白天為2.5元/公里,夜晚為3.5元/公里,等待計時單價為1元/1分鐘)</p><p>  為提高計時、計價精度,確保乘客對自己消費的知情權(quán),出租車計價器應(yīng)做到里程數(shù)精確到0.1公里,同時為減少司機朋友來回調(diào)整單價

23、以及停車后需重設(shè)單價的麻煩,計價器應(yīng)具有掉電保持功能,即當(dāng)重新啟動后維持原有數(shù)值(包括總金額、等待時間、行駛里程、單價)不變,直至強制按下清零鍵,計價器顯示起步價(剛起步時對應(yīng)總金額)、運行單價,為下一次計價做準(zhǔn)備。</p><p><b>  基本原理</b></p><p>  計價器系統(tǒng)主要由五部分組成:分別為脈沖信號模擬車輪轉(zhuǎn)動的里程檢測單元、AT89C52單

24、片機、外擴串行EEPROM-AT24C02、獨立鍵盤和LED顯示。</p><p>  通過按鍵控制脈沖,按下按鍵,即給出一個脈沖,并把該脈沖交由單片機進行處理,單片機則根據(jù)程序設(shè)定,通過計算脈沖個數(shù)換算出已行駛里程(里程=脈沖個數(shù)*出租車車輪周長),然后再根據(jù)從EEPROM-AT24C02中讀取的單價等相關(guān)數(shù)據(jù)進行總的消費金額的計算:當(dāng)里程小于3公里時,總金額=起步價+等待時間*等待單價;當(dāng)里程大于3公里時,總

25、金額=起步價+(里程-3)*運行單價+等待時間*等待單價;計算好的金額、等待時間、里程和單價等數(shù)據(jù)信息都可實時地顯示在數(shù)碼管上。</p><p>  獨立鍵盤可以調(diào)整單價等相關(guān)數(shù)據(jù),當(dāng)按下某按鍵,會給單片機相應(yīng)端口一低電平信號,單片機會通過循環(huán)掃描檢測到此信號,并根據(jù)預(yù)先設(shè)置好的程序做出相應(yīng)的處理;調(diào)整好的數(shù)據(jù)存儲到EEPROM中,掉電后可以使該數(shù)據(jù)不丟失,下次得電后直接從EEPROM-AT24C02中讀到單片機

26、,并通過數(shù)碼管實時顯示。系統(tǒng)結(jié)構(gòu)圖如圖1-1所示。</p><p><b>  圖1-1系統(tǒng)結(jié)構(gòu)圖</b></p><p><b>  第2章 硬件設(shè)計</b></p><p>  2.1 單片機最小系統(tǒng)單元</p><p>  主控機系統(tǒng)采用STC公司生產(chǎn)的 STC89C52單片機,它含有512

27、字節(jié)數(shù)據(jù)存儲器RAM,內(nèi)置8K 的電可擦除FLASH ROM,可重復(fù)編程,大小滿足主控機軟件系統(tǒng)設(shè)計,所以不必再擴展程序存儲器。芯片外圍電路最高可接入40MHZ的晶振(AT單片機數(shù)值一般為24MHZ)。復(fù)位電路和晶振電路,以及P0口接入的10K的上拉電阻便構(gòu)成了STC89C52 單片機工作所需的最簡外圍電路。單片機最小系統(tǒng)電路圖如圖2-1所示。</p><p>  里程計算主要通過脈沖信號模擬車輪轉(zhuǎn)動,又通過按鍵

28、控制脈沖,出租車車輪每旋轉(zhuǎn)一周,并把該脈沖交由單片機進行處理,單片機則根據(jù)程序設(shè)定,通過計算脈沖個數(shù)換算出已行駛里程:里程=脈沖個數(shù)*出租車車輪周長。</p><p>  2.3 掉電存儲單元</p><p>  AT24C02的作用是在電源斷開的時候,存儲當(dāng)前設(shè)定的總金額,等待時間,運行里程以及單價等信息。AT24C02 是Ateml公司的2KB的電可擦除存儲芯片,采用兩線串行的總線和單

29、片機通訊,電壓最低可以到2.5V,額定電流為1mA,靜態(tài)電流10uA(5.5V),芯片內(nèi)的資料可以在斷電的情況下保存40年以上,而且采用8 腳的DIP 封裝,使用方便。AT24C02芯片引腳配置如圖2-4所示。</p><p>  圖2-4 AT24C02引腳配置圖</p><p>  圖中R4、R5 是上拉電阻,其作用是減少AT24C02 的靜態(tài)功耗。由于AT24C02的數(shù)據(jù)線和地址線是

30、復(fù)用的,采用串口的方式傳送數(shù)據(jù),只用兩根線SCL(時鐘脈沖)和SDA(數(shù)據(jù)/地址)與單片機P3.6和P3.7口連接,進行傳送數(shù)據(jù)時遵守I2C總線協(xié)議。</p><p>  每當(dāng)設(shè)定一次單價,系統(tǒng)就調(diào)用存儲程序,將單價信息保存在芯片內(nèi);當(dāng)系統(tǒng)重新上電的時候,自動調(diào)用讀存儲器程序,將存儲器內(nèi)的單價等信息,讀到緩存單元中,供主程序使用。</p><p>  事實上AT24C02為典型的支持I2C

31、總線的器件,對其進行編程時需遵守I2C總線的時序要求,以及I2C委員會對各種I2C芯片的地址分配規(guī)則?,F(xiàn)把I2C總線與AT24C02的通訊時序、通訊規(guī)則簡要介紹如下:</p><p>  1. I2C總線節(jié)點的尋址字節(jié)</p><p>  主機產(chǎn)生起始條件后,發(fā)送的第一個字節(jié)為尋址字節(jié)。該字節(jié)的頭七位為從機地址,對于AT24C02來說高四位為1010,它是I2C總線器件的固有地址,緊接著是

32、A1、A2、A3通過接地或者高電平?jīng)Q定外圍器件的地址數(shù)據(jù),第八位是讀寫控制為,當(dāng)為0是表示主節(jié)點向從節(jié)點發(fā)送數(shù)據(jù),當(dāng)為1時表示要接收數(shù)據(jù)。</p><p>  2. I2C總線數(shù)據(jù)傳輸?shù)母袷?lt;/p><p>  (1) 主控器的寫數(shù)據(jù)格式:</p><p>  首先由主機發(fā)送起始信號—當(dāng)SCL為高電平時,SDA由高到低有跳變;然后發(fā)一個尋址字節(jié),當(dāng)收到應(yīng)答信號后發(fā)送

33、數(shù)據(jù),其中應(yīng)答信號為當(dāng)SCL為高時SDA傳送0,并持續(xù)4.7us以上;當(dāng)主機產(chǎn)生停止信號時,數(shù)據(jù)傳送結(jié)束,停止信號是當(dāng)SCL為高電平時SDA有一個由低到高的跳變。</p><p>  (2)主控器的讀數(shù)據(jù)格式:</p><p>  與寫數(shù)據(jù)的不同之處在于數(shù)據(jù)發(fā)送結(jié)束和停止位之間加一個非應(yīng)答位,表示數(shù)據(jù)發(fā)送結(jié)束,格式為當(dāng)SCL為高時SDA傳送1,并持續(xù)4.7us以上。 </p>

34、<p>  3. 要特別注意的是SDA和SCL都是雙向傳輸線,平時均處于高電平備用狀態(tài),只有當(dāng)需要關(guān)閉時才使其鉗制在低電平,且僅在SCL為高電平時數(shù)據(jù)才能傳送,而當(dāng)SCL為低電平時才允許數(shù)據(jù)發(fā)生變化。</p><p>  2.4 鍵盤調(diào)整單元</p><p>  當(dāng)單價等信息需要進行修改時,就要用到鍵盤。由于調(diào)節(jié)信息不多,故采用5個獨立鍵盤即可,分別實現(xiàn)清零、切換、增大、減小和

35、功能等作用。電路原理如圖2-5所示。</p><p>  圖2-5 鍵盤調(diào)整單元接線圖</p><p>  圖中,鍵盤從上至下依次為:</p><p>  S0:接P1.0口,對上一次的計費進行清零,為下次載客做準(zhǔn)備;</p><p>  S1:接P1.1口,通過對功能鍵S3按下次數(shù)的計數(shù),實現(xiàn)單價數(shù)據(jù)的增大;</p><

36、p>  S2:接P1.2口,通過對功能鍵S3按下次數(shù)的計數(shù),實現(xiàn)單價數(shù)據(jù)的減??;</p><p>  S3:接P1.3口,按1次,進入調(diào)整白天單價;按2次,進入調(diào)整夜晚單價;按3次,進入調(diào)整等待單價;按4次,進入調(diào)整起步價;按5次,返回。</p><p>  S4: 實現(xiàn)白天單價和夜晚單價的切換。</p><p>  需要注意的時,當(dāng)按鍵按下和釋放的瞬間都有抖

37、動現(xiàn)象,一般來說,抖動的時間長短與鍵盤的機械特性有關(guān),大約為5-10ms [5] 。所以在實際編程時一定要注意鍵盤的去抖動。鍵盤去抖動有專用的延時電路,也有專門的延時芯片,也可以用軟件去抖,考慮到電路的難易程度,從簡化硬件的角度,本次設(shè)計采用軟件去抖動,用一個短延時程序,進行鍵盤去抖操作。</p><p><b>  2.5 顯示單元</b></p><p>  顯示

38、單元由兩個4位8段共陽數(shù)碼管組成,電路連接時,公共端接高電平,因此我們需要點亮哪個發(fā)光二極管只需給哪個二極管陰極送低電平,并采用動態(tài)掃描進行顯示[6]。前三個數(shù)碼管分別接P2.0、P2.1和P2.2,用于顯示總金額;第四個接P2.3 ,顯示等待時間;第五個和第六個數(shù)碼管分別接P2.4和P2.5,用于顯示里程,由于需精確到小數(shù)位,故最多只能顯示9.9公里,但經(jīng)過添加溢出指示,可計到20公里,在現(xiàn)實中已基本夠用;后面兩個數(shù)碼管分別接P2.6

39、和P2.7,用于顯示單價。由于溢出指示是采用發(fā)光二極管是否點亮表示,故必須選好參數(shù)以確保發(fā)光二極管正常工作。根據(jù)元件手冊(也可用萬用表測量)查得,發(fā)光二極管點亮?xí)r壓降為1.7V,點亮電流為3-20mA,取導(dǎo)通電流為5mA,所以限流電阻可選擇為(5-1.7)/5=660,故可選擇限流電阻值510Ω。</p><p>  由于數(shù)碼管內(nèi)部二極管點亮?xí)r需要5mA以上的電流,而單片機的輸出電流還不到1mA,所以數(shù)碼管與單片

40、機連接時需加驅(qū)動電路,可以使用上拉電阻的方法,也可以使用專門的驅(qū)動芯片,考慮到復(fù)用單片機I/O接口,節(jié)省單片機I/O資源,此次設(shè)計采用74HC573鎖存器,其輸出電流較大,電路接口簡單且可直接驅(qū)動數(shù)碼管顯示。74HC573的引腳分布圖2-6如下。</p><p>  圖2-6 74HC573的引腳分布</p><p>  :為三態(tài)允許輸入端(低電平有效),也可稱作輸出允許端;</p&

41、gt;<p>  1D-8D為數(shù)據(jù)輸入端;</p><p>  1Q-8Q為數(shù)據(jù)輸出端;</p><p><b>  LE為鎖存允許端。</b></p><p>  74HC573所對應(yīng)真值表2-1如表。</p><p>  表2-1 74HC573真值表</p><p>  其中

42、:H—高電平;L—低電平;X—任意電平;Z—高阻態(tài),既不是高電平也不是低電平,其電平狀態(tài)由與它相連接的其它電氣狀態(tài)決定;Q0—上次的電平狀態(tài)。</p><p>  由真值表可以看出,當(dāng)為高電平時,無論LE與D端為何電平狀態(tài),其輸出均為高阻態(tài),此時芯片處于不可控狀態(tài)。做設(shè)計時必須使其處于可控狀態(tài),即應(yīng)該接低電平。當(dāng)為低電平時,若LE為H,則D與Q同時為H或者L,數(shù)據(jù)實現(xiàn)直通傳送;而當(dāng)LE為L時,無論D為何狀態(tài)Q都保

43、持上一次的數(shù)據(jù)狀態(tài),數(shù)據(jù)被鎖存住,利用此特性即可實現(xiàn)對數(shù)碼管的控制。</p><p>  本次設(shè)計中:段選信號LE接P1.5,對應(yīng)圖中標(biāo)號P1.5;位選信號LE接P1.6,對應(yīng)圖中標(biāo)號P1.6??刂骑@示時先給P1.5高電平,使通道打開,接著送字碼,然后把P1.5電平拉低,使字碼保持??;之后打開P1.6(送高電平),緊接著送位碼,控制要顯示的位,然后把P1.6拉低,數(shù)據(jù)被保持。最后延時5ms;依次循環(huán)掃描;利用數(shù)碼

44、管點亮后的余暉和人眼視覺暫留效應(yīng)即可實現(xiàn)動態(tài)顯示。數(shù)碼管動態(tài)顯示電路如圖2-7所示。</p><p><b>  第3章 軟件設(shè)計</b></p><p><b>  3.1 系統(tǒng)主程序</b></p><p>  在主程序模塊中,需要完成對各參量和接口的初始化、出租車起步價和單價的初始化以及中斷、計算、循環(huán)等工作。另外,

45、在主程序模塊中還需要設(shè)置啟動/清除標(biāo)志寄存器、里程寄存器和價格寄存器,并對它們進行初始化。然后,主程序?qū)⒏鶕?jù)各標(biāo)志寄存器的內(nèi)容,分別完成啟動、清除、計程和計價等不同的操作。</p><p>  當(dāng)出租車運行后,就啟動計價器,根據(jù)里程寄存器中的內(nèi)容計算和判斷行駛里程是否已超過起步價公里數(shù)。若已超過,則根據(jù)里程值、每公里的單價值和起步價來計算出當(dāng)前的總金額,并將結(jié)果存于總金額寄存器中;中途等待時,無脈沖輸入,不產(chǎn)生中

46、斷,當(dāng)時間超過等待設(shè)定值時,開始進行計時,并把等待金額加到總金額里,然后將總金額、里程、等待時間和單價送數(shù)碼管顯示出來。程序流程如圖3-1所示。</p><p>  圖3-1 主程序流程圖</p><p>  3.2 里程計數(shù)中斷程序</p><p>  每當(dāng)霍爾傳感器輸出一個低電平信號,單片機定時器0(工作在計數(shù)模式)就對其計數(shù)一次,相應(yīng)的變量設(shè)為inter就自加

47、1,當(dāng)里程計數(shù)器inter對里程脈沖計滿500次時,對其自身進行清零操作,為下一次計數(shù)做準(zhǔn)備,同時進入里程計數(shù)中斷服務(wù)程序中,里程變量加1,總金額根據(jù)此時所設(shè)單價做出相應(yīng)的變化。里程中斷子程序如圖3-2所示。</p><p>  圖3-2 里程中斷服務(wù)子程序</p><p><b>  3.4 計算程序</b></p><p>  計算程序根據(jù)

48、里程數(shù)分別進入不同的計算公式。如果里程大于3公里,則執(zhí)行公式:總金額=起步價+(里程-3)*單價+等待時間*等待單價;否則,執(zhí)行公式:總金額=起步價+等待時間*等待單價。程序流程圖如圖3-4所示。</p><p>  圖3-4 計算程序流程圖</p><p><b>  3.5 顯示程序</b></p><p>  由于8位數(shù)碼管所有段選皆有8

49、位的P0口進行控制,因此,在每一瞬間,8位LED會顯示同一個數(shù)字。要想每位顯示不同的字符,就必須采用動態(tài)掃描的方法輪流點亮各位LED,即在每一時刻只使某一位顯示字符。在此瞬間,段選控制I/O口輸出相應(yīng)字符段選碼(字符碼),而位選則控制I/O口在該顯示的位送入選通電平,以保證該位顯示顯示相應(yīng)字符。如此循環(huán)操作,使每位分時顯示該位應(yīng)該顯示的字符 [7] 。</p><p>  在本次設(shè)計中顯示程序利用延時程序,每隔5

50、ms刷新一次,相應(yīng)的數(shù)碼管點亮,顯示一位數(shù)據(jù),利用主函數(shù)內(nèi)的循環(huán),實現(xiàn)動態(tài)掃描顯示,同時根據(jù)數(shù)碼管余輝和人眼暫留現(xiàn)象,給人看上去每個數(shù)碼管總是在亮,以實現(xiàn)動態(tài)顯示。</p><p><b>  3.6 鍵盤程序</b></p><p>  鍵盤采用查詢的方式,放在主程序中,當(dāng)有按鍵按下的時候,在相應(yīng)I/O口產(chǎn)生一次低電平,當(dāng)單片機查詢出該低電平后便轉(zhuǎn)入進行處理,處理結(jié)

溫馨提示

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

評論

0/150

提交評論