畢業(yè)設計(論文)基于單片機的出租車計價裝置設計_第1頁
畢業(yè)設計(論文)基于單片機的出租車計價裝置設計_第2頁
畢業(yè)設計(論文)基于單片機的出租車計價裝置設計_第3頁
畢業(yè)設計(論文)基于單片機的出租車計價裝置設計_第4頁
畢業(yè)設計(論文)基于單片機的出租車計價裝置設計_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 基于單片機的出租車計價裝置設計基于單片機的出租車計價裝置設計 學院名稱: 專 業(yè): 班 級: 姓 名: 指導教師姓名: 指導教師職稱: 基于單片機的出租車計價裝置設計 摘摘 要要:為了滿足出租車分時計費、分段計費、等候計費等功能的要求,實行 自動計費,本系統(tǒng)采用單片機為核心控制單元,利用霍爾傳感器進行瞬時速度測量, 采用四位數(shù)碼管顯示,應用電擦除存儲器對系統(tǒng)掉電時的系統(tǒng)信息進行存儲。實驗測 試結(jié)果表明:本裝置能實現(xiàn)可靠的出租車分時、分段、等候計費等功能,已達到設計 任務要求。 關鍵詞關鍵詞:計價裝置;單片機;霍爾傳感器 design of the taxi accumulative devi

2、ce based on microcontroller abstract: in order to meet the taxi functions of requirements such as timeshare billing, subsection billing, waiting for billing, the realization of automatic billing and so on, this system use microcontroller as the core control elements, and use hall sensors for instant

3、aneous velocity measurement, four digital tube displayed. when power lost, system applies electric erased the memory to store system information. the test results show: this device can achieve taxi timeshare, segmented, waiting for billing and other functions reliably, and has achieved the design ta

4、sk requirements. . keywords: taxi accumulative device; microcontroller; hall sensor; 目 錄 前 言.1 第 1 章 緒論.2 1.1 課題的目的及意義.2 1.2 研究內(nèi)容.2 1.3 技術要求.3 第 2 章 系統(tǒng)總體設計方案.4 2.1 方案的選擇與論證.4 2.2 系統(tǒng)各模塊功能的設計.6 2.2.1 單片機模塊.6 2.2.2 傳感模塊.6 2.2.3 數(shù)據(jù)存儲模塊.6 2.2.4 輸入模塊.6 2.2.5 顯示模塊.6 2.2.6 供電電路.6 第 3 章 系統(tǒng)硬件設計.7 3.1 單片機模塊設計.

5、7 3.1.1 時鐘電路.7 3.1.2 復位電路.8 3.2 傳感模塊.9 3.3 數(shù)據(jù)存儲模塊.10 3.4 顯示模塊.11 3.5 輸入模塊.13 3.6 電源模塊.13 第 4 章 系統(tǒng)軟件設計.14 4.1 軟件設計思路.14 4.2 程序模塊.14 4.2.1 主程序.14 4.2.2 定時子程序.15 2 4.2.3 按鍵掃描子程序.16 4.2.4 顯示子程序.17 4.3 主程序設計.18 第 5 章 出租車計價裝置的調(diào)試.20 5.1 硬件調(diào)試.20 5.1.1 上電前的調(diào)試.20 5.1.2 上電后的調(diào)試.20 5.1.3 霍爾開關檢測部分.20 5.2 軟硬件聯(lián)調(diào).21

6、 5.2.1 里程計價測試.21 5.2.2 掉電存儲測試.22 第 6 章 總結(jié).24 參考文獻.25 致 謝.27 附錄 1 電路原理圖.28 附錄 2 程序.29 附錄 3 元器件清單.38 第 1 頁 共 38 頁 基于單片機的出租車計價裝置設計基于單片機的出租車計價裝置設計 前 言 隨著生活水平的提高,人們已不再滿足于衣食住的享受,出行的舒適已受到越來 越多人的關注。于是,出租車行業(yè)以低價高質(zhì)的服務給人們帶來了出行的享受。但是 總存在著收費糾紛困擾著出租車行業(yè)的發(fā)展,而解決這一矛盾的最好的方法就是改善 計價器,用更加精良的計費器更好的為乘客提供方便快捷的服務。 我國在 70 年代開始

7、就出現(xiàn)出租車,但那時的計費系統(tǒng)大都是國外進口的,不但不 夠準確,價格還十分的昂貴。隨著改革開放的深入,出租車行業(yè)的發(fā)展勢頭已十分的 突出。出租車計費器從最開始的只顯示路程,需要司機自己定價,按四舍五入法計算, 到能夠自動計費,以及現(xiàn)在的能夠打印發(fā)票和語音提示,按時間自動變換單價等功能。 隨著城市的旅游業(yè)的發(fā)展,出租車行業(yè)已成為城市的窗口,象征著一個城市的文明程 度。現(xiàn)在各大中城市出租車行業(yè)都已普及自動計費器,所以計費器技術的發(fā)展已成定 局。而部分小城市尚未普及,著城市建設日益加快,象征著城市面貌的出租車行業(yè)也 將加速發(fā)展,計價器的普及也是毫無疑問的,所以未來出租車計費器的市場還是十分 潛力的。

8、出租車計費器時乘客與司機雙方的交易準則,它是出租車行業(yè)的重要標志, 具有良好性能的計費器無論是對廣大出租車司機還是乘客來說都是有必要的。因此, 出租車計費器的研究也是十分有價值的。 近些年出租車計價器都是應用了單片機技術制造出來的,單片機是微型機的一個 主要分支,在結(jié)構(gòu)上的最大特點是把 cpu、存儲器、定時器和多種輸入/輸出接口電路 集成在一塊超大規(guī)模集成電路芯片上。所以本次設計中采用 51 系列單片機作為控制芯 片進行設計,用較少的硬件和適當?shù)能浖嗷ヅ浜峡梢暂p易的實現(xiàn)設計要求,且靈活 性強,用匯編語言進行編程。利用單片機豐富的 i/o 端口,以其控制的靈活性實現(xiàn)對 里程計費、價格調(diào)整和時鐘

9、顯示功能。 第 2 頁 共 38 頁 第 1 章 緒論 1.1 課題的目的及意義課題的目的及意義 30 年前,我國出現(xiàn)了出租車,但是由于當時的經(jīng)濟水平,出租車并沒有普遍在我 們生活中出現(xiàn)。隨著改革開放的深入,出租車行業(yè)的發(fā)展勢頭已十分突出。如今出租 車在我國的交通運輸中承擔著重要的角色,出租車計價器是出租車上必不可少的重要 儀器,它是負責出租車營運收費的專用智能化儀表。隨著城市旅游業(yè)的發(fā)展,出租車 行業(yè)已成為城市的窗口,象征著一個城市的文明程度。步入 21 世紀,出租車已經(jīng)廣泛 地出現(xiàn)在我們周圍。隨著人們生活水平的不斷提高,出租車的使用頻率也越來越高, 出租車行業(yè)也以高質(zhì)量的服務給人們帶來了出

10、行的享受。但是由于行業(yè)的特殊性,出 租車行業(yè)總存在著買糾紛,困擾著行業(yè)的發(fā)展。而在出租車行業(yè)中解決這一矛盾的最 好方法就是改良計價器,用更加精良的計價器來為乘客提供更加方便快捷的服務1。 隨著社會的進步,電子類產(chǎn)品也得到了廣泛的發(fā)展。尤其是單片機的發(fā)展異常迅 速。由于單片機的特殊結(jié)構(gòu)形式,在某些應用領域中,它承擔了一些通用的微型計算 機無法完成的工作,它是一種高性能,低價格的處理器。集成度高,體積小,可靠性 又高,控制功能強,電壓低2。隨著城市旅游業(yè)的發(fā)展,出租車行業(yè)已成為城市的窗口, 象征著一個城市的文明程度。出租車的使用頻率也越來越高,出租車行業(yè)也以高質(zhì)量 的服務給人們帶來了出行的享受,使

11、用更加精良的計價器來為乘客提供更加方便快捷 的服務。采用模擬電路和數(shù)字電路設計的計價器整體電路的規(guī)模較大,用到的器件多, 造成故障率高,難調(diào)試,接觸不良,功能不易實現(xiàn)。為此此次采用了單片機進行設計, 相對來說功能強大,用較少的硬件和適當?shù)能浖嗷ヅ浜峡梢院苋菀椎膶崿F(xiàn)設計要求, 且靈活性強,可以通過軟件編程來完成更多的附加功能,有性能可靠、電路簡單、成 本低等特點3。 第 3 頁 共 38 頁 1.2 研究內(nèi)容研究內(nèi)容 本次課題設計主要是以單片機 at89c51 為核心,結(jié)合可擦除存儲器 at24c02 的 功能,實現(xiàn)出租車計價3。具體課題設計研究內(nèi)容如下: 1. 在了解出租車分時、分段、等候等

12、計費原則的基礎上,對各種計費裝置電路設 計與可實現(xiàn)方案進行對比、論證。 2. 設計系統(tǒng)供電電路、按鍵輸入電路、單片機主控制電路、a/d 轉(zhuǎn)換電路、數(shù)字 顯示電路、過載保護等各模塊電路來滿足出租汽車計價器各種性能指標要求的硬件電 路。 3. 針對硬件平臺運用 c 語言進行設計單片機程序,實現(xiàn)分時計費、分段計費、等 候計費等功能進行軟件設計,來完成出租汽車的里程計價裝置。 4. 最終完成系統(tǒng)板的制作安裝,對其軟硬件的進行綜合調(diào)試,并進行測試數(shù)據(jù)的 分析。 1.3 技術要求技術要求 根據(jù)課題的意義和目的,經(jīng)分析本次課題需要研究的內(nèi)容,提出了該課題相應的 設計任務的要求,具體如下: 1. 輸入電壓 d

13、c 24v5%; 2. 時間從 7:0021:00 實行基價,從 21:007:00 實行基價上浮 20%; 3. 里程從 0km 3km 基價,4km 9km 實行價格 1,10km 20km 實行價格 2,超 過 20km 后實行價格 3; 4. 用數(shù)碼管直接顯示里程、當前計費標準、需支付總金額數(shù),顯示清晰直觀; 5. 系統(tǒng)穩(wěn)定性好,能可靠工作。 第 4 頁 共 38 頁 移位寄存器移位寄存器 金額金額 顯示顯示 單價單價 顯示顯示 里程傳感器里程傳感器 電源電路電源電路 及保護電路及保護電路 第 2 章 系統(tǒng)總體設計方案 在了解課題研究的目的意義,認真分析研究任務內(nèi)容與技術指標的基礎上,

14、為了 滿足出租車計價裝置分時、分段計價的要求,首先進行系統(tǒng)方案的論證與確定。 2.1 方案的選擇與論證方案的選擇與論證 方案一:方案一:采用數(shù)字電路控制,其實現(xiàn)方案框圖,數(shù)字電路實現(xiàn)方案圖,如圖 2-1 所 示。采用傳感器件,輸出脈沖信號,經(jīng)過放大整形作為移位寄存器的脈沖,實現(xiàn)計價。 采用傳感器件,輸出脈沖信號,經(jīng)過放大整形作為移位寄存器的脈沖,實現(xiàn)計價,但 是考慮到這種電路過于簡單,性能不夠穩(wěn)定,而且電路不夠?qū)嵱?。模擬電路和數(shù)字電 路設計的計價器整體電路的規(guī)模較大,用到的器件多,造成故障率高,難調(diào)試,對于 模式的切換需要用到機械開關,機械開關時間久了會造成接觸不良,功能不易實現(xiàn)。 圖 2-1

15、 數(shù)字電路實現(xiàn)方案框圖 方案二:方案二:采用單片機控制。利用單片機豐富的 i/o 端口,及其控制的靈活性,實 現(xiàn)基本的里程計價功能,途中等待等不同功能4。 第 5 頁 共 38 頁 采用單片機控制。利用單片機豐富的 i/o 端口,及其控制的靈活性,有較大的活 動空間,便于修改。不但能實現(xiàn)基本的里程計價功能和價格調(diào)節(jié)、顯示功能,而且能 在很大的程度上擴展功能,還可以方便的對系統(tǒng)進行升級。為此我們采用了單片機進 行設計,相對來說功能強大,用較少的硬件和適當?shù)能浖嗷ヅ浜峡梢院苋菀椎膶崿F(xiàn) 設計要求。單片機控制實現(xiàn)方案框圖,如圖 2-2 所示。 按鍵 控制 89c51 單片機 數(shù)碼管顯示驅(qū)動電路 單

16、價 顯 示 總 價 顯 示 可擦除存儲器 霍爾測速 圖 2-2 單片機控制實現(xiàn)方案框圖 綜上對比,采用方案一數(shù)字電路設計的計價器整體電路的規(guī)模較大,用到的器件 多,造成故障率高,難調(diào)試,對于模式的切換需要用到機械開關,機械開關時間久了 會造成接觸不良,功能不易實現(xiàn)。而方案二單片機有較大的活動空間,利用單片機豐 富的 i/o 端口,及其控制的靈活性,不但能實現(xiàn)基本的里程計價功能和價格調(diào)節(jié)、時 鐘顯示功能,而且能在很大的程度上擴展功能,還可以方便的對系統(tǒng)進行升級。采用 了單片機進行設計,相對來說功能強大,用較少的硬件和適當?shù)能浖嗷ヅ浜峡梢院?容易的實現(xiàn)設計要求。因此采用方案二作為本次設計的實現(xiàn)方

17、案。 第 6 頁 共 38 頁 2.2 系統(tǒng)各模塊功能的設計系統(tǒng)各模塊功能的設計 2.2.1 單片機模塊單片機模塊 本設計是利用單片機作為核心控制器件,它將鍵盤輸入的控制信號內(nèi)部進行處理 和轉(zhuǎn)換,再將處理后的數(shù)字信號一方面送給 d/a 轉(zhuǎn)換電路進行數(shù)模轉(zhuǎn)換,另一方面送 給顯示電路,顯示輸出數(shù)值5。 2.2.2 傳感模塊傳感模塊 通過安裝在車輪上的霍爾傳感器 a44e 檢測到的信號,送到單片機,經(jīng)處理計算, 送給顯示單元的。當車輪轉(zhuǎn)動一周時,霍爾傳感器將有一個脈沖的低電平,單片機外 部中斷檢查到傳遞給單片機進行轉(zhuǎn)速計算6。 2.2.3 數(shù)據(jù)存儲模塊數(shù)據(jù)存儲模塊 每當設定一次單價,系統(tǒng)就自動調(diào)用存

18、儲程序,將單價信息保存在 at24c02 電可 擦除存儲存儲器內(nèi)。當系統(tǒng)重新上電的時候,自動調(diào)用讀存儲器程序,將存儲器內(nèi)的 單價等信息,讀到緩存單元中,供主程序使用7。 2.2.4 輸入模塊輸入模塊 本設計中需要用到七個按鍵,通過行列掃描才驅(qū)動鍵盤,由于單片機的內(nèi)部上拉, 按鍵沒按下時,處于穩(wěn)定的高電平,當有按鍵按下時,單片機可掃描檢查到低電平。 而不會引起按鍵的誤操作,提高按鍵電路的抗干擾能力。 2.2.5 顯示模塊顯示模塊 采用四個共陽級的 8 段數(shù)碼管,用單片機一組 i/o 口作為數(shù)據(jù)口向數(shù)碼管發(fā)送數(shù) 據(jù)信息,而用另一組 i/o 口對數(shù)碼管進行位選,從而實現(xiàn)動態(tài)顯示。在位選信號中采 用

19、74ls07 實現(xiàn)對數(shù)碼管進行驅(qū)動8。 2.2.6 供電電路供電電路 220v 市電經(jīng) 220v/9v 變壓器降壓后得到的 9v 交流電壓,經(jīng)三端穩(wěn)壓器 7805 得 到+5v 的電壓。 第 7 頁 共 38 頁 第 3 章 系統(tǒng)硬件設計 確定了出租車計價裝置的方案設計,根據(jù)系統(tǒng)實現(xiàn)方案中各模塊的設計要求,對 出租車計價裝置各模塊硬件電路進行設計,其主要包括以下四個模塊單片機模塊設計、 霍爾檢測模塊、掉電存儲 eeprom 模塊、按鍵模塊、數(shù)碼管顯示模塊。 3.1 單片機模塊設計單片機模塊設計 3.1.1 時鐘電路時鐘電路 at89c51 中有一個用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳 x

20、tal1 和 xtal2 分別為該放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外石英晶 體或 8051 單片機的時鐘信號通常用兩種電路形式得到:內(nèi)部振蕩方式和外部振蕩方式。 本設計主要是用內(nèi)部振蕩方式完成的9。在引腳 xtal1 和 xtal2 外接晶體振蕩器(簡稱 晶振)或陶瓷諧振器,就構(gòu)成了內(nèi)部振蕩方式。由于單片機內(nèi)部有一個高增益反相放大 器,當外接晶振后,就構(gòu)成了自激振蕩器并產(chǎn)生振蕩時鐘脈沖。晶振頻率,以 19.2k 波特率為例,19.2k 波特率的晶振為 19200(256-0fdh)3842 =11.0592 (smod=1) 選用 11.0592mhz 只是為了得到精確的通

21、信波特率,串口通信的可靠性高。外接石英 晶體及電容 c2、c3 接在放大器的反饋回路中構(gòu)成并聯(lián)諧振電路,起穩(wěn)定振蕩頻率、 快速起振的作用。對外接電容 c2、c3 雖然沒有十分嚴格的要求,但電容容量的大小 會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程度及溫度的穩(wěn)定性, 一般在 2060pf 之間選擇,本次采用 22pf10。時鐘電路設計圖,如圖 3-1 所示。 第 8 頁 共 38 頁 圖 3-1 時鐘電路設計圖 3.1.2 復位電路復位電路 單片機有一個復位引腳 rst,它是施密特觸發(fā)輸入,當振蕩器起振后,該引腳上 出現(xiàn) 2 個機器周期以上的高電平,使器件復位,只要 rst 保持

22、高電平,單片機保持復 位狀態(tài)11。此時 ale、psen、p0、p1、p2、p3 口都輸出高電平。rst 變?yōu)榈碗娖胶螅?退出復位,單片機從初始狀態(tài)開始工作。 對于復位電路,本設計采用上電復位電路,由于 89c51 是高電平復位,因此通過 在 reset 端接一個電阻到地,并接一個電容到電源的方式完成上電復位,上電時電源 給電容充電,電容導通,因此 reset 腳就相當于連接到+5v 電源,開始復位,當電容 充電完成后,電容斷開,reset 腳被下拉電阻鉗位在低電平,則退出復位狀態(tài)12。復 位電路設計圖,如圖 3-2 所示。 第 9 頁 共 38 頁 圖 3-2 復位電路設計圖 3.2 傳感模

23、塊傳感模塊 本設計中,當車輪轉(zhuǎn)動一周時,霍爾傳感器將有一個脈沖的低電平,單片機外部 中斷檢查到傳遞給單片機進行轉(zhuǎn)速計算。傳感器檢測圖,如圖 3-3 所示。 圖 3-3 傳感器檢測示意圖 電路中的霍爾傳感器到單片機的電路設計圖,如圖 3-4 霍爾傳感器接線電路所示。 第 10 頁 共 38 頁 圖 3-4 霍爾傳感器接線電路 電路中所使用的霍爾傳感器為 a44e,可以檢測磁場及其變化,可在各種與磁場有 關的場合中使用?;魻柶骷曰魻栃獮槠涔ぷ骰A?;魻柶骷哂性S多優(yōu)點,它們 的結(jié)構(gòu)牢固,體積小,重量輕,壽命長,安裝方便,功耗小,頻率高(可達 1mhz), 耐震動,不怕灰塵,油污,水汽及鹽霧等的

24、污染或腐 13?;魻柧€性器件的精度高,線 性度好;霍爾開關器件無觸點,無磨損,輸出波形清晰,無抖動,無回跳,位置重復 精度高。取用了各種補償和保護措施的霍爾器件的工作溫度范圍寬,可達- 55150,非常適合測速使用。 3.3 數(shù)據(jù)存儲模塊數(shù)據(jù)存儲模塊 本次設計利用的 atmel 公司的 at24c02 作為掉電存儲器。at24c02 是一個 2k 位串行 cmos eeprom,內(nèi)部含有 256 個 8 位字節(jié),該器件通過 iic 總線接口進 行操作14??刹脸鎯﹄娐吩O計圖,如圖 3-5 所示,圖中 r2、r3 為 10k 歐姆的上拉 電阻,寫保護(wp)接地,增加抗干擾性能。 第 11 頁

25、 共 38 頁 圖 3-5 可擦除存儲器電路設計圖 3.4 顯示模塊顯示模塊 本設計中采用四位一體共陰的數(shù)碼管,數(shù)碼管的位選信號即每個數(shù)碼管的公共端, 通過同相電平驅(qū)動芯片 74ls07 驅(qū)動。由于是共陰的數(shù)碼管,因此當 p2.0-p2.3 輸出為 高電平時,數(shù)碼管位選位被關閉,當 p2.0-p2.3 輸出為低電平時,數(shù)碼管位選位被打開 15。數(shù)碼管顯示電路圖,如圖 3-6 所示。 第 12 頁 共 38 頁 圖 3-6 數(shù)碼管顯示電路 數(shù)碼管動態(tài)顯示接口是單片機中應用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是 將所有數(shù)碼管的 8 個顯示筆劃a, b, c, d, e, f, g, dp的同名端連

26、在一起,另外為每個數(shù)碼 管的公共極 com 增加位選通控制電路,位選通由各自獨立的 i/o 線控制,當單片機輸 出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形, 取決于單片機對位選通 com 端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通 控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮16。通過分時輪流控制各 個數(shù)碼管的的 com 端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。在輪流顯示 過程中,每位數(shù)碼管的點亮時間為 12ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余 輝效應,盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度足夠快,給人的印 象就是一組穩(wěn)

27、定的顯示數(shù)據(jù),不會有閃爍感,動態(tài)顯示的效果能夠節(jié)省大量的 i/o 端 口,而且功耗更低17。 第 13 頁 共 38 頁 3.5 輸入模塊輸入模塊 本設計中需要用到七個按鍵,通過行列掃描才驅(qū)動鍵盤,由于單片機的內(nèi)部上拉, 按鍵沒按下時,處于穩(wěn)定的高電平,當有按鍵按下時,單片機可掃描檢查到低電平。 而不會引起按鍵的誤操作,提高按鍵電路的抗干擾能力18。鍵盤電路圖,如圖 3-7 所 示。 圖 3-7 鍵盤電路 3.6 電源模塊電源模塊 電源電路設計,如圖 3-8 所示。220 v 市電經(jīng) 220 v9 v 變壓器降壓后得到的 9v 交流電壓,變壓器輸出的 9v 電壓經(jīng)四個二極管組成的橋式整流并電容

28、濾波,再經(jīng)三端 穩(wěn)壓器 7805 得到+5 v 的電壓19。以作為系統(tǒng)本身的工作電源。穩(wěn)壓電源由電源變壓 器、整流電路、濾波電路和穩(wěn)壓電路組成20。 第 14 頁 共 38 頁 圖 3-8 電源電路設計 第 15 頁 共 38 頁 第 4 章 系統(tǒng)軟件設計 根據(jù)硬件各模塊的設計,結(jié)合硬件電路實現(xiàn)預計的各種功能再來進行軟件部分的 設計。通過軟硬件的結(jié)合,達到分時、分段計費的要求。 4.1 軟件設計思路軟件設計思路 根據(jù)出租車計價裝置的設計功能要求,系統(tǒng)程序必須完成以下任務:弄臺掃描, 按鍵掃描處理,時鐘信號產(chǎn)生。51 單片機實現(xiàn)多任務運行的方法就是分時復用,在程 序設計的時候要相應的分配好各自的

29、 cpu 時間21。對通過分析可以看出,動態(tài)掃描、 按鍵掃描對時鐘任務可用單片機定時器實現(xiàn)。該程序子程序包括定時子程序,按鍵掃 描顯示子程序,顯示子程序。軟件程序結(jié)構(gòu)圖,如圖 4-1 所示。 主程序 定時子程序 按鍵掃描子程序 顯示子程序 圖 4-1 軟件程序結(jié)構(gòu)圖 4.2 程序模塊程序模塊 4.2.1 主主程序程序 系統(tǒng)在上電復位后,先對定時器0和定時器1進行設置和賦值,再進行系統(tǒng)各參數(shù) 初始化設置,開啟用于顯示模塊的定時器0,再進行按鍵掃描,通過鍵處理函數(shù)對各模 第 16 頁 共 38 頁 塊進行控制。在硬件沒有任何觸發(fā)信號時,主程序進行反復循環(huán)執(zhí)行,并時刻檢測觸 發(fā)端口是否有觸發(fā)信號22

30、。系統(tǒng)初始化完成后,啟動時鐘系統(tǒng)隨后進入正常工作狀態(tài)。 系統(tǒng)主程序流程圖,如圖4-2所示。 開 始 初始化 按鍵掃描 里程輸入 計費處理 結(jié)束收費 開始計費 啟動計價器 圖 4-2 系統(tǒng)主程序流程圖 4.2.2 定時子程序定時子程序 時間子函數(shù)部分主要用于產(chǎn)生時鐘信號,實現(xiàn)對等待計時部分電路的等待計時。 該部分主要采用單片機定時器 0 來實現(xiàn),編程時需要對定時器進行各項設置并對計數(shù) 器輸入初始值,每次對單片機進行復位時都要重復以上步驟23。在該程序中定時器 0,工作于方式 1,16 位定時方式。定時子程序流程圖,如圖 4-3 所示。 第 17 頁 共 38 頁 開 始 重設定時器初值 數(shù)據(jù)送顯

31、示緩沖單元 位 選 返 回 保護現(xiàn)場 調(diào)用顯示子程序 圖 4-3 定時子程序流程圖 4.2.3 按鍵掃描子程序按鍵掃描子程序 在本設計中采用了按鍵來切換各種不同狀態(tài),而系統(tǒng)需要時刻查詢按鍵信息,因 此需要采用按鍵掃描來實時查詢按鍵情況,在該程序中單獨編寫了按鍵掃描子程序, 在有按鍵信息時進行程序調(diào)用和跳轉(zhuǎn),該按鍵掃描子程序中還嵌套了按鍵掃描程序以 處理在有客情況下的狀態(tài)切換24。按鍵掃描子程序流程圖,如圖 4-4 所示。 第 18 頁 共 38 頁 是 否 開 始 等待按鍵 執(zhí)行按鍵功能 結(jié) 束 按鍵掃描 消抖延時 有鍵按下? 圖 4-4 按鍵掃描子程序流程圖 4.2.4 顯示子程序顯示子程序

32、 程序利用定時器每 1ms 產(chǎn)生一次中斷,相應變量置位,點亮一個數(shù)碼管,顯示一 位數(shù)據(jù),利用主函數(shù)內(nèi)的循環(huán),實現(xiàn)動態(tài)掃描顯示,同時根據(jù)數(shù)碼管余輝和人眼暫留 現(xiàn)象,即可實現(xiàn)顯示25。顯示子程序流程圖,如圖 4-5 所示。 第 19 頁 共 38 頁 否 否 否 否 是 是 是 是 開 始 led 初始化 led 寫命令 led 判忙 p0.7=0? 寫完成? 設置字符位置 寫數(shù)據(jù) 判 忙 p0.7=0? 寫完成? 結(jié) 束 圖 4-5 顯示子程序流程圖 4.3 主程序設計主程序設計 /主程序/ void main(void) 第 20 頁 共 38 頁 timer0_init(); it0 = 1

33、; ex0 = 1; if(read24c02_onebyte(0 xff) != 0 x55) write24c02_onebyte(0 x00, 1); write24c02_onebyte(0 x01, 2); write24c02_onebyte(0 x02, 3); write24c02_onebyte(0 x03, 4); write24c02_onebyte(0 xff, 0 x55); else price0 = read24c02_onebyte(0 x00); price1 = read24c02_onebyte(0 x01); price2 = read24c02_one

34、byte(0 x02); price3 = read24c02_onebyte(0 x03); ea = 1; while(1) * 定時子程序 * 按鍵掃描子程序 * 顯示子程序 * 第 21 頁 共 38 頁 第 5 章 出租車計價裝置的調(diào)試 完成系統(tǒng)的硬件軟件設計后,需要通過調(diào)試,并進行數(shù)據(jù)測試,由測得的數(shù)據(jù)來 驗證上述的設計方案是否達到課題要求的功能及指標。 5.1 硬件調(diào)試硬件調(diào)試 硬件調(diào)試主要是針對霍爾計數(shù),可擦除存儲器at24c02電路,led驅(qū)動,按鍵電 路等等進行檢測。這一部分硬件調(diào)試主要分成兩大塊:上電前的調(diào)試和上電后的調(diào)試 26。 5.1.1 上電前的調(diào)試上電前的調(diào)試 在

35、上電前,必須確保電路中不存在斷路或短路情況,這一工作是整個調(diào)試工作的 第一步,也是非常重要的一個步驟。在這部分調(diào)試中主要使用的工具是萬用表,用來 完成檢測電路中是否存在斷路或者短路情況等。 通過萬用表的檢測,沒有發(fā)現(xiàn)短路和斷路的地方,電路基本正常27。 5.1.2 上電后的調(diào)試上電后的調(diào)試 在確保硬件電路正常,無異常情況(斷路或短路)方可上電調(diào)試,上電調(diào)試的目的 是檢驗電路是否接錯,同時還要檢驗原理是否正確28。 5.1.3 霍爾開關檢測部分霍爾開關檢測部分 觀察測量霍爾信號,用小磁鐵的來回晃動檢查霍爾器件的信號腳的高低電平變化, 確定霍爾的好壞,觀察波形是否為標準的方波29。 第 22 頁

36、共 38 頁 5.2 軟硬件聯(lián)調(diào)軟硬件聯(lián)調(diào) 5.2.1 里程計價測試里程計價測試 由于試驗條件有限,我們采小磁鐵車輪,每靠近一次,代表走了一公里,系統(tǒng)自 動將當前的單價加到總金額上。 (1)當時間設定在早晨 7 點點到當日夜晚 23 點時,里程數(shù)是以 1 公里計算的, 假設單價在 03 公里為 1 元,49 公里以上為 2 元,920 公里為 3 元, 21 公里以上為 4 元。 當里程數(shù)行到 3 公里時,數(shù)碼管顯示單價為 1 元/km,里程為 3,總價為 3 元; 當里程數(shù)行到 49 公里時,數(shù)碼管顯示單價為 2 元/km,總價為 13+(x-3) 2 元; 當里程數(shù)行到 1020 公里時,

37、數(shù)碼管顯示單價為 3 元/km,總價為 13 +(9- 3)2+(x -9)3 元; 當里程數(shù)行到 20 公里以上時,數(shù)碼管顯示單價為 34 元/km,總價為 13+(9- 3)2+(20-9)3+(x-20)4 元30。 白天價格測試表,表 5-1 所示,測試條件是:設定白天 0km3km 是 1 元, 4km9km 是 2 元 1,10km20km 是 3 元,超過 20km 后是 4 元。 表 5-1 白天價格測試表 1km3km4km9km10km20km21km 理論1.0 元1.0 元2.0 元2.0 元30 元3.0 元4.0 元單 價 實際1.0 元1.0 元2.0 元2.0

38、元3.0 元3.0 元4.0 元 理論1.0 元3.0 元5.0 元15.0 元18.0 元48.0 元52.0 元總 金 額 實際1.0 元3.0 元5.0 元15.0 元18.0 元48.0 元52.0 元 第 23 頁 共 38 頁 (2)當時間設定在夜晚 23 點到早晨 6 點日時,基價上浮 20%,為 1.2 元。 夜間價格測試表,表 5-2 所示,測試條件是:設定夜間 0km3km 是 1.2 元, 4km9km 是 2 元,10km20km 是 3 元,超過 20km 后是 4 元。 表 5-2 夜間價格測試表 1km3km4km9km10km20km21km 理論1.2 元1.

39、0 元2.0 元2.0 元3.0 元3.0 元4.0 元單 價 實際1.2 元1.0 元2.0 元2.0 元3.0 元3.0 元4.0 元 理論1.2 元3.6 元6.0 元18.0 元21.6 元57.6 元62.4 元總 金 額 實際1.2 元3.6 元6.0 元18.0 元21.6 元57.6 元62.4 元 里程測試數(shù)據(jù)的分析: 通過表 5-1、表 5-2 的數(shù)據(jù),我們可以看到系統(tǒng)的計價功能很穩(wěn)定,誤差很小,幾 乎為零,測試結(jié)果表明設計達到預期成果。 5.2.2 掉電存儲測試掉電存儲測試 掉電存儲測試結(jié)果,如表 5-3 白天/夜間掉電存儲表所示。 表 5-3 白天/夜間掉電存儲表 白天

40、單價 0km3km4km9km 10km20km超過 20km 掉電前數(shù)據(jù) 1.0/1.2 元2.0/2.0 元3.0/3.0 元4.0/4.0 元 重新上電后數(shù)據(jù) 1.0/1.2 元2.0/2.0 元3.0/3.0 元4.0/4.0 元 掉電存儲測試分析: 第 24 頁 共 38 頁 如表 5-3 白天/夜間掉電存儲測試圖,測試結(jié)果表明,掉電前與重新上電后的數(shù)據(jù) 誤差幾乎為零,因此掉電存儲的設計達到了預期的效果。 第 25 頁 共 38 頁 第 6 章 總結(jié) 本出租車計價器具有功能強、性能可靠、電路簡單、成本低的特點,加上經(jīng)過優(yōu) 化的程序,使其有很高的智能化水平。但是在我們設計和調(diào)試的過程中

41、,也發(fā)現(xiàn)了一 些問題,譬如計價的金額位數(shù)有限,實際的里程可能會很遠,會超出我們的顯示范圍。 計價器的設計還不夠人性化,比如加上語音的提示功能,可能會更有生命力,爭取使 該系統(tǒng)慢慢趨向完美。 在學習了相關的文獻的基礎上,本文設計了基于單片機的出租車自動計費系統(tǒng)。 介紹了基于單片機的匯編語言來實現(xiàn)的出租車計價器。本系統(tǒng)解決了以往計價器計價 不準確、使用壽命短等缺點。 本次設計的出租車計費系統(tǒng)符合了開始預期的設計指標:在了解出租車分時、分 段、等候等計費原則的基礎上,對各種計費裝置電路設計與可實現(xiàn)方案進行對比、論 證,設計能滿足出租汽車計價器各種性能指標要求的硬件電路,并針對硬件平臺進行 軟件設計,

42、來完成出租汽車的里程計價裝置。 本款出租車計價器比目前市場現(xiàn)在的增加了不少功能,其中包括單價輸出、單價 調(diào)整、路程輸出、顯示當前的系統(tǒng)時間。另外,出租車計價器還具有性能可靠、電路 簡單、成本低、實用性強等特點,加上經(jīng)過優(yōu)化的程序,使其有很高的智能化水平。 通過本次設計,又使我學到了許多書本上無法學到的知識,也使我深該體會到單 片機技術應用領域的廣泛,不僅使我對學過的單片機知識有了很多的鞏固,同時也對 單片機這一門課程產(chǎn)生了更大的興趣。 第 26 頁 共 38 頁 參考文獻 1 張鑫, 華臻陳書謙. 單片機原理及應用m. 北京工業(yè)出版社. 2005. 2 張齊. 單片機原理與應用系統(tǒng)設計m. 北

43、京: 電子工業(yè)出版社, 2010. 3 閻石. 數(shù)字電子技術基礎m. 北京: 高等教育出版社, 2006. 4 潭浩強. c 程序設計m. 北京:清華大學出版社, 2004. 5 張毅剛, 劉杰. mcs-51 單片機原理及應用m. 哈爾濱: 哈爾濱工業(yè)大學出版社, 2004. 6 李萍. at89s51 單片機原理、開發(fā)月應用實例m. 北京: 中國電力出版社, 2008. 7 蔡美琴, 何為民, 何金兒, 毛敏, 陶蘇正, 毛義梅.mcs-51 系列單片機系統(tǒng)及其應用 m. 北京: 高等教育出版社, 2004. 8 萬福君, 潘松峰, 劉芳. mcs-51 單片機原理、系統(tǒng)設計及應用m. 北

44、京:清華大學 出版社, 2008. 9 馬忠梅, 籍順心等. 單片機的 c 語言應用程序設計m. 北京: 北京航空航天大學出 版社, 2005. 10 黃遵熹. 單片機原理接口與應用m. 西安: 西北工業(yè)大學出版社, 2000. 11 樓然苗, 李光飛. 51 系列單片機設計實例m. 北京: 北京航空航天大學出版社, 2003. 12 吳秀清, 周荷琴. 微型計算機原理與接口技術m. 北京: 中國科學技術大出版社, 2004. 13 馬忠梅, 籍順心等. 單片機的 c 語言應用程序設計m. 北京: 北京航空航天大學出 版社, 2005. 14 郁有文, 常健, 程繼紅. 傳感器原理及工程應用m

45、. 西安: 電子科技大學出版社, 2000. 15 張國雄. 測控電路m. 天津: 機械工業(yè)出版社, 2008. 16 楊世品, 陳林.基于 proteus 的單片機出租車計價器的設計j. 中文核心期, 2007, (23): 4-2. 17 張小虎, 劉潔. 基于單片機的出租車計價器編碼傳感器的設計j. 自動化技術與應 用, 2005, (24): 10. 18 王偉. 高性能、低功耗帶 ram 實時時鐘芯片 ds1302(下)j. 電子世界第四期, 第 27 頁 共 38 頁 1995, (5): 32-41. 19 liu zhenyu. dual butterfly matched f

46、ilter asic designj.chinese journal of electronics, 2001, 10(4): 563-566. 20 陳勇, 黃石紅. 液晶顯示模塊與單片機接口技術j. 南京林業(yè)大學學報(自然科學版), 2002, 26(5): 24-25. 21 feng ji chao, huang jian ping. design of automobile hand brake fastener efficiency testing machine j. wuhan university of technology, 2008, (11): 53. 22 魏宋揚.

47、出租汽車計價器常見故障及分析處理j. 中國測試, 2009, 35(5): 126-127. 23 劉光潭. 中外集成電路簡明速察手冊m. 上海: 電子工業(yè)出版社, 1991. 24 張勇. 制作基于 ds1302 電子時鐘時的難點分析j. 濟南職業(yè)學院學報. 2006, 06(3): 74-75. 25 孫超, 郭勇新. 電力電子技術的應用j. 南京航空航天大學. 2009, 43(4): 88-90. 26 李華, mcs251 系列單片機實用接口技術報j. 北京航天航空大學學報, 2003. 1(13): 11-12. 27 孫育才, 蘇字成. 微型計算機應用系統(tǒng)設計與實現(xiàn)j. 東南大學

48、出版社, 1990, 1(14): 12-13. 28 何立民. 單片機應用技術選編j. 北京航天航空大學出版社, 1999, 2(13) : 13-14. 29 黃再銀. 出租車多功能計費器的設計j. 電子技術應用, 2002, (08): 74-76. 30 吳冬梅, 吳延海, 鄧玉玖. 基于 cpld/fpga 的出租車計費器j. 現(xiàn)代電子技術, 2004, (11): 71-73. 第 28 頁 共 38 頁 致 謝 為期兩個月的畢業(yè)設計已經(jīng)結(jié)束,而在這短短的時間里卻有著很深的感受和體會, 期間不僅豐富和拓展了單片機的接口技術與 led 液晶顯示器的知識,懂得了如何深入 細致的研究設計

49、上遇到的問題;同時真切地感受到理論聯(lián)系實際的重要性。 畢業(yè)設計是對我們在大學里所學知識的一個融會貫通,充分利用我所學的每一點 每一滴,同時也是走向工作的初步嘗試。不僅可以擴大我們所學知識的范圍,開闊視 野,而且有助于培養(yǎng)獨立思考解決問題的能力,積累經(jīng)驗,為以后工作中實際解決問 題打下基礎。 設計過程中,遇到了很多問題,有軟件的也有硬件的,有屬于粗心大意造成的, 也有的是因為知識水平所限。在老師的指導下,將其一一排除,增長了知識,積累了 經(jīng)驗。除此之外,老師在繁忙的工作中幫我細心地修改論文。在此對老師的幫助表示 忠心的感謝。 通過此次畢業(yè)設計,使我熟悉了開發(fā)電子系統(tǒng)的基本過程,對軟硬件的開發(fā)有了

50、 更深一步的理解,51 單片機的開發(fā)和匯編語言的應用,也積累了一些經(jīng)驗和心得,使 我在專業(yè)知識上有了很大提高。同時,我更清楚了自己在知識上的不足,我將繼續(xù)努 力學習,不斷提高自身的綜合素質(zhì)! 此外感謝學校領導為我們提供設備先進的實驗室,使我們能夠方便地進行設計。 第 29 頁 共 38 頁 附錄 1 電路原理圖 第 30 頁 共 38 頁 附錄 2 程序 include #include type.h #include ds1302.h #include at24cxx.h code unsigned char segcode = 0 x3f, 0 x06, 0 x5b, 0 x4f, 0 x

51、66, 0 x6d, 0 x7d, 0 x07, 0 x7f, 0 x6f, 0 x77, 0 x7c, 0 x39, 0 x5e, 0 x79, 0 x71, 0 x00 ; uint8 hour = 18; uint8 min = 0; uint8 sec = 0; uint8 costtype = 0; uint16 cost; uint16 costh, costl; uint8 price0 = 1; uint8 price1 = 2; uint8 price2 = 3; uint8 price3 = 4; uint8 price = 1; uint8 km = 0; uint8 d

52、ispbuf4 = 1, 2, 3, 4; code uint8 com4 = 0 xfe, 0 xfd, 0 xfb, 0 xf7; uint8 disptype = 0; bit fgadjust = 0; uint8 pricesave4 = 1,2,3,4; sbit startkey = p22; sbit adjkey = p21; sbit adjprice1 = p26; sbit adjprice2 = p25; sbit adjprice3 = p24; sbit adjprice4 = p23; sbit testkey = p20; bit fgstart = 0; v

53、oid delay_ms(uint16 z) uint16 x,y; for(x=z;x0;x-) for(y=113;y0;y-); void disp(void) uint8 i; for(i=0; i 7) else pricesave0+; if(adjprice2 = 0) disp(); if(adjprice2 = 0) while(adjprice2 = 0) disp(); if(pricesave1 = 9) pricesave1 = 0; else pricesave1+; if(adjprice3 = 0) disp(); if(adjprice3 = 0) while

54、(adjprice3 = 0) disp(); if(pricesave2 = 9) pricesave2 = 0; else pricesave2+; if(adjprice4 = 0) disp(); if(adjprice4 = 0) 第 33 頁 共 38 頁 while(adjprice4 = 0) disp(); if(pricesave3 = 9) pricesave3 = 0; else pricesave3+; if(testkey = 0) disp(); if(testkey = 0) while(testkey = 0) disp(); if(hour = 23) ho

55、ur = 0; else hour += 5; void timer0_init(void) tmod = tmod tmod = tmod | 0 x01; th0 = 0 x3c;/50ms 12mhz tl0 = 0 xb0; tr0 = 1; et0 = 1; /允許定時器中斷 void time0() interrupt 1 using 1 static uint8 ccnt,cntswitch; if(+ccnt=20) /1 秒到 ccnt=0; /50ms 中斷計數(shù)器清零 sec+; /秒計數(shù)器加 1 if(sec=60) sec=0; /如果 60 秒到 秒計 數(shù)器清零 mi

56、n+; /分計數(shù)器加 1 if(min=60) min=0; /如果 60 分到 分計 數(shù)器清零 hour+; /時計數(shù)器加 1 第 34 頁 共 38 頁 if(hour=24) /如果在 24 小時制下 24 時到 則清零時計數(shù)器 hour=0; if(+cntswitch = 20) cntswitch = 0; if(disptype = 2) disptype = 0; else disptype+; th0=0 x3c; tl0=0 xb0; void int0(void) interrupt 0 using 2 if(fgstart) km+; void vfilldispbuf

57、(void) if(!fgadjust) switch(disptype) case 0: dispbuf0 = 1; if(fgstart) dispbuf1 = price/100%10; dispbuf2 = price/10%10; dispbuf3 = price%10; else dispbuf1 = 0; dispbuf2 = 0; dispbuf3 = 0; break; case 1: dispbuf0 = 2; if(fgstart) dispbuf1 = km/100%10; dispbuf2 = km/10%10; dispbuf3 = km%10; 第 35 頁 共

58、38 頁 else dispbuf1 = 0; dispbuf2 = 0; dispbuf3 = 0; break; case 2: dispbuf0 = 3; if(fgstart) dispbuf1 = costh/10; dispbuf2 = costh%10; dispbuf3 = costl; else dispbuf1 = 0; dispbuf2 = 0; dispbuf3 = 0; break; default: break; else dispbuf0 = pricesave0; dispbuf1 = pricesave1; dispbuf2 = pricesave2; dis

59、pbuf3 = pricesave3; void main(void) timer0_init(); it0 = 1; ex0 = 1; if(read24c02_onebyte(0 xff) != 0 x55) write24c02_onebyte(0 x00, 1); write24c02_onebyte(0 x01, 2); write24c02_onebyte(0 x02, 3); write24c02_onebyte(0 x03, 4); write24c02_onebyte(0 xff, 0 x55); else price0 = read24c02_onebyte(0 x00); price1 = read24c02_onebyte(0

溫馨提示

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

評論

0/150

提交評論