




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 編號 畢業(yè)設(shè)計(論文)題目 出租車里程、計費顯示系統(tǒng) 二級學院 電子信息與自動化 專 業(yè) 測控技術(shù)與儀器 班 級 學生姓名 張利娜 學號 指導教師 王先全 評閱教師 時 間 目錄摘 要IAbstractII1 緒 論11.1 研究目的意義11.2 國內(nèi)外現(xiàn)狀11.3 發(fā)展趨勢21.4 本文主要內(nèi)容22 方案設(shè)計42.1 設(shè)計的主要功能42.2 設(shè)計的原理43 硬件設(shè)計63.1 單片機最小系統(tǒng)63.2 晶振電路63.3 按鍵掃描模塊73.4 AT24C02掉電存儲模塊83.5 DS1302實時時鐘芯片模塊93.5.1 DS1302的簡介93.5.2 DS1302的工作模式寄存器103.5.3
2、DS1302讀寫時序說明103.5.4 DS1302電路連接圖113.6 A3144霍爾傳感器測距模塊123.6.1 A3144測距原理123.6.2 A3144功能框圖133.6.3 A3144電路連接原理圖143.7 驅(qū)動電路模塊153.8 LM016L顯示模塊163.8.1 LM016L的簡介163.8.2 LM016L工作原理163.8.3 LM016L電路連接原理圖173.9 LED指示燈模塊173.10 總體電路圖183.11 本章小結(jié)184 軟件設(shè)計194.1 軟件開發(fā)環(huán)境194.2 程序設(shè)計總方案194.3 按鍵掃描子程序204.4 定時器子程序214.5 DS1302時鐘子程
3、序224.6 計算總金額子程序244.7 顯示子程序254.8 本章小結(jié)265 仿真與調(diào)試275.1 編程工具-C51語言275.2 單片機仿真軟件調(diào)試-PROTEUS275.2.1 AT24C02掉電保護仿真275.2.2 DS3102定時時鐘仿真285.2.3 里程、等待時間、總金額的仿真305.3 實物調(diào)試305.4 軟件設(shè)計中遇到的問題及解決方法315.5 硬件制作中遇到的問題及解決方法325.6 本章小結(jié)336 結(jié)束34致 謝35參考文獻36附錄一:電路原理圖38附錄二:源程序39附錄三:元件清單61文獻綜述62摘 要在現(xiàn)代生活中,出租車在道路交通中承擔著一個非常有意義的角色。所以,
4、出租車擁有十分良好的計費性能不論是對于出租車司機或者乘客來說都是非常重要的。計價器自產(chǎn)生以來,大部分應(yīng)用在出租車上的計價器都僅僅具備很簡單的計費功能。目前,國內(nèi)的很多出租車計價器依然只是根據(jù)出租車的行車的里程來進行計費的。隨著現(xiàn)代社會科技的發(fā)展,出租車的計價器的合理性、科學性等優(yōu)良性能也被要求越來越高。所以,出租車計價器的計費、顯示等功能亟待優(yōu)化。在現(xiàn)代的電子行業(yè)中,出租車計價器采用模擬電路和數(shù)字電路設(shè)計的計價器系統(tǒng)十分復雜、發(fā)生的故障比較多、調(diào)試計價器準確性的難度也很大。另外,這種計價器設(shè)計中模式的轉(zhuǎn)換采用的是機械開關(guān),不方便快捷的實現(xiàn)計價器的每項功能。本設(shè)計給出了一種基于AT89C51單片
5、機的出租車里程、計費顯示系統(tǒng)的設(shè)計方法,主要包括用AT89C51單片機為主控芯片,單片機系統(tǒng)分別控制A3144霍耳傳感器檢測里程模塊、驅(qū)動電路模塊、按鍵控制模塊、DS1302實時時鐘模塊、LM016L 液晶顯示模塊、LED指示燈模塊等。采用單片機的出租車里程、計費顯示系統(tǒng)具有精度高、功能齊全、讀數(shù)方便、抗干擾能力強、并且具有可擴展性等優(yōu)點,在將來一定會全面應(yīng)用于出租車計價器的領(lǐng)域。關(guān)鍵詞:計價器 AT89C51 AT24C02 A3144霍耳傳感器 LM016L液晶顯示 AbstractIn modern life, taxi play a very significant role in r
6、oad traffic.Therefore, taxi has a very good performance on billing are all very important for taxi drivers and passengers .Since the Taximeter produced, most of the taximeters applications only have simple billing function.At present, most of the domestic taximeter is still based on the taxi driving
7、 mileage for billing.With the development of science and technology in modern society, the taximeters rationality, scientific and other excellent properties are required higher and higher.So, the taximeters function of billing and display should be optimized.In modern electronic industry, taximeter
8、adopts analog circuit and digital circuit design of the taximeter system is very complex, lots of fault, debugging the taximeters accuracy is very difficulty .In addition, this kind of mode conversion of taximeter uses the design of a mechanical switch, it is very inconvenient to realize each functi
9、on of the taximeter.This design presents a taximeter system of billing and display ,which is based on AT89C51 design methods, including using AT89C51 as the main control chip, SCM system control the A3144 Hall sensor detection distance module, driver circuit module, key control module, DS1302 real-t
10、ime clock module, LM016L liquid crystal display module, LED Indicator light module, etc.Taximeter has lots of futures,such as charging display system with high precision, complete function, easy reading, strong anti-interference ability, and has the advantages of expandability.in the future, this ki
11、nd of taximeter will be fully applied.Keywords: Taximeter AT89C51 AT24C02 A3144 Hall Sensor LM016L Display1 緒 論1.1 研究目的意義在中國,城市交通中的出租車自二十世紀八十年代興起。隨著該出租車行業(yè)的蓬勃發(fā)展,出租車已然成為城市道路交通中的必要成分和現(xiàn)代城市的必備的交通基礎(chǔ)設(shè)施,變成了人們在生活和工作中十分重要的一種交通設(shè)施。出租車在我們的道路交通中扮演著非常必要的角色,由此而誕生的計費器則是出租車上不可或缺的重要計量儀器,它主要負責出租車正常運作和收費的專用智能化儀器1。出租車里程、
12、計費顯示系統(tǒng)是一個依據(jù)出租車行駛的里程和行車途中等待的時間來進行計費,并可以直接顯示出等待時間、單價、起步價和總金額的的設(shè)計系統(tǒng)。隨著生活質(zhì)量的提高,出租車司機和乘客不再僅僅要求計價器計費精準、性能穩(wěn)定等特性,而且對計價器的外觀等要求也逐漸提高。出租車計費器的計費方法是一種基于乘客和出租車司機之間的交易規(guī)范,這是出租車行業(yè)蓬勃發(fā)展的重要標志,也是出租車正常運營的最重要的電子儀器之一,它關(guān)系著出租車中交易雙方的切身利益。為了維護出租車司機和乘客雙方的權(quán)益,現(xiàn)在大多數(shù)的國家都對出租車計費系統(tǒng),進行強制的管理。依據(jù)國家的法律、法規(guī),出租車計費器是納進我國第一批強制進行檢查認定的計量儀器之一2。因此,
13、出租車里程、計費顯示系統(tǒng)的研究和設(shè)計是相當具有實際應(yīng)用效益的。1.2 國內(nèi)外現(xiàn)狀1)秦浩華發(fā)表的“具有區(qū)域識別區(qū)域功能出租車計價器車載定位模塊的研制3”研究論文里詳細講述了依據(jù)公共交通需求的不同,可以對出租車實現(xiàn)分區(qū)域計價的方法。也就是出租車需求較高的中心區(qū)域,計價上漲;需求較低的其他地方,計價降低。通過這種方式來適應(yīng)人們出行的習慣和方式,從而讓出租車的利用價值提到最高,可以很好的解決中心區(qū)域的擁堵情況。2)楊書華在期刊論文“出租車計價器加密傳感器的設(shè)計4”中詳細講述了一種新型對出租車計費的管理方法,呈現(xiàn)了出租車里程檢測所用的傳感器存在漏洞的問題。此設(shè)計給出了傳感器可加密的模型和設(shè)計的系統(tǒng)結(jié)構(gòu)
14、模型,增強了出租車計價器的計費管理。3)陳偉宏、肖衛(wèi)初、楊明在期刊論文“基于單片機的多功能出租車計價器的設(shè)計5”里講述了用AT89S52芯片控制的具有很多功能的計價器的設(shè)計,并且詳細講述了在軟件設(shè)計和硬件設(shè)計時有些技術(shù)問題解決的辦法。設(shè)計的計價器具有檢測里程、顯示時間、計算總金額、調(diào)出明細、查看、總計的作用,而且還有語音提醒:超速等、預防作弊、打印賬單等功能。4)楊世品、陳林在“基于Proteus的單片機出租車計價器的設(shè)計6”設(shè)計論文中,將出租車計價器的硬件仿真部分在Proteus軟件中進行仿真。在這里,他們詳細講述了Proteus的優(yōu)點、仿真方法和Proteus在電子技術(shù)方面的一些實用價值。
15、1.3 發(fā)展趨勢自從出租車計費器問世以來,不僅給司機帶來方便,也給乘客帶來極大的好處。我國國內(nèi)出租車從誕生開始就是使用的僅僅能夠進行計算里程功能的計費器。目前生產(chǎn)的計費器中有極大部分是臺灣本土公司制造的。如今,我們國家制造計費器的公司有一百多家,主要是集中在北京,上海,沈陽和廣州等地7。在中國第一個生產(chǎn)出租車計費器的公司是重慶市起重機廠8,那時的計費器幾乎都是采用的機械齒輪結(jié)構(gòu),而且僅僅能夠進行簡單的計算里程的功能,當時的計費器成為早期的計費器應(yīng)該算是計費器制造的一個里程表。伴隨電子科學行業(yè)的蓬勃發(fā)展,就制造出了第二代計費器,它能夠?qū)崿F(xiàn)半機械半電子化。此時它在計程的同時還可以完成計價的工作。隨
16、著集成電路的大規(guī)模的迅速發(fā)展,就制造出了全電子化的出租車計費器,此時的計費器的功能也增強了很多,這就產(chǎn)生了第三代出租車計費器。當單片機系列逐漸發(fā)展并且將其運用到出租車計費器上后?,F(xiàn)代出租車計費器的各種功能也更加完善,同時具備了計里程,計費,液晶顯示,語音提示等多樣功能。而且,單片機以及其外圍芯片的快速研發(fā)也更加加快了出租車計費器設(shè)計的發(fā)展。出租車計費器在現(xiàn)在交通中使用時,不僅被要求能夠很好的計里程和計費等功能,而且要求較好的可靠性和很高的計算精度。1.4 本文主要內(nèi)容本次設(shè)計的主要內(nèi)容是運用AT89C51單片機作為本系統(tǒng)的核心,實現(xiàn)對出租車里程、計費顯示系統(tǒng)的設(shè)計,使得單片機和設(shè)計電路都能夠正
17、常運行,對輸入信號做出應(yīng)有的正確反映。其具體工作如下:1)研究出租車里程、計費顯示系統(tǒng)的原理,并設(shè)計出總體設(shè)計方法;2)選定出租車行車里程檢測傳感器(A3144霍爾傳感器),并設(shè)計出其驅(qū)動電路和放大電流作用的電壓跟隨器電路;3)選定實時時鐘芯片(DS1302實時時鐘芯片),使設(shè)計系統(tǒng)能夠準確顯示時間,并設(shè)計電路;4)選定防止設(shè)計的系統(tǒng)因為掉電使得系統(tǒng)歷史信息丟失的芯片(AT24C02掉電存儲芯片),并設(shè)計電路;5)選定顯示屏(LM016L液晶顯示屏),并設(shè)計電路;6)設(shè)計單片機硬件系統(tǒng),包括數(shù)據(jù)的處理電路,行車里程的數(shù)據(jù)的采集電路,定時時鐘電路,按鍵控制電路,掉電保護電路;7)設(shè)計出租車里程、
18、計費顯示系統(tǒng)的單片機軟件程序;8)在Proteus中將電路仿真圖,進行仿真調(diào)試。2 方案設(shè)計2.1 設(shè)計的主要功能1)實現(xiàn)車輛行車里程計數(shù)、等待時間的采集;2)系統(tǒng)掉電時具有保存歷史總金額和系統(tǒng)時間等信息,具有掉電存儲能力;3)系統(tǒng)能夠根據(jù)出租車行駛的里程、中途的等待時間、行車時間屬于白天/夜間模式,顯示出對應(yīng)的起步價、單價時間,并計算出總金額等信息;4)系統(tǒng)能夠自動進行白天與夜間計費模式的切換。5)系統(tǒng)能夠清楚的顯示出租車行車起步價、白天或夜間每公里的單價、當前時間、行車里程、等待時間及總金額等信息。2.2 設(shè)計的原理本設(shè)計出租車里程、計費顯示系統(tǒng)使用AT89C51單片機芯片控制程序的運行,
19、利用單片機具有多樣IO接口和單片機靈活的控制性,來實現(xiàn)A3144霍爾傳感器的行車里程的檢測功能、行車總里程和總金額計算的功能、夜間和白天行車單價和起步價,自動切換工作模式和時間、日期顯示的功能。由于傳統(tǒng)的出租車計費器功能比較單一,不能滿足日益迅猛發(fā)展的計費器行業(yè)的需求。因此,采用單片機的出租車里程、計費顯示系統(tǒng)具有精度高、功能齊全、讀數(shù)方便、抗干擾能力強、具有可擴展性等優(yōu)點成為計價器發(fā)展的一種趨勢。本系統(tǒng)出租車里程、計費顯示系統(tǒng)的硬件設(shè)計主要包含九個模塊:單片機最小系統(tǒng)模塊、晶振電路模塊、按鍵控制模塊、DS1302實時時鐘模塊、AT24C02掉電存儲模塊、A3144霍爾傳感器里程采集模塊、驅(qū)動
20、電路模塊、LM016L顯示模塊、LED指示燈模塊。本設(shè)計方案可變空間大,不僅能夠?qū)崿F(xiàn)任務(wù)書需要的功能,還具有擴展的功能。出租車里程、計費顯示系統(tǒng)的總體框圖如圖2.1所示。圖2.1 系統(tǒng)總體框圖開關(guān)(按鍵)啟動系統(tǒng),系統(tǒng)開始運行,LED指示燈運行,然后調(diào)用AT24C02掉電存儲模塊里存儲的歷史信息:歷史總金額,起始價及單價。然后運行(按鍵)啟動驅(qū)動電路模塊和霍爾傳感器里程采集模塊,此時單片機開始采集里程檢測信號。當出租車啟動時,AT89C51單片機將A3144霍爾傳感器檢測到的信號進行里程計算,總金額計算,最后在LM016L液晶顯示分別將歷史總金額,起始價,單價,時間,里程,當前總金額分屏顯示。
21、3 硬件設(shè)計3.1 單片機最小系統(tǒng)單片機最簡單的系統(tǒng)就是最小系統(tǒng),它主要有復位電路、晶振電路、功能實現(xiàn)電路等組成部分25。單片機最小系統(tǒng)方便設(shè)計、應(yīng)用比較簡單,所以在現(xiàn)在電子硬件設(shè)計行業(yè)中受到大多數(shù)人群的歡迎。本系統(tǒng)的硬件設(shè)計仿真部分的核心芯片選用AT89C51單片機。AT89C51單片機有著較高的性能CMOS、低電壓的特點。其片內(nèi)含有256b的隨機存取存儲器RAM和8kb的可以反復擦寫的Flash只讀程序存儲器,兼容標準MCS-51指令系統(tǒng),片內(nèi)置有8位中央處理器和Flash存儲單元,在電子行業(yè)中有著廣泛的應(yīng)用9。此次設(shè)計單片機AT89C51基本電路如圖3.1所示。圖3.1 最小系統(tǒng)圖3.2
22、 晶振電路晶振電路是單片機的核心部分,它掌握著單片機的運行節(jié)奏,使單片機完成不同的指令功能。本系統(tǒng)設(shè)計單片機的時鐘電路,采用內(nèi)部時鐘的方式。如圖3.1所示,C1、C2為諧振電容,它們的電容大小會直接影響振蕩器頻率的高低、穩(wěn)定性。而XTAL1腳和XTAL2腳是單片機內(nèi)部的高增益反相放大器的輸入端、輸出端,這樣組成的振蕩器的頻率范圍是1.2MHz12MHz。當電容大小取C1=C2=22pF時,產(chǎn)生的時鐘頻率為12MHz,可以讓單片機更加快速的處理數(shù)據(jù)。 圖 3.1 晶振電路3.3 按鍵掃描模塊 為了快捷實現(xiàn)系統(tǒng)各個模式的選擇,最簡單的方法就是采用按鍵的形式。如圖3.4所示,選擇按鍵一端接地,另一端
23、分別接單片機的引腳P1.4和引腳P1.5。按鍵連接到單片機上需要連接上拉電阻,確保按鍵的準確性。在按鍵沒有按下之前,單片機的引腳檢測到高電平;在按鍵按下過后,單片機就會檢測到低電平。通過電平由高到低的轉(zhuǎn)變,就可以判斷按鍵按下了,并執(zhí)行相應(yīng)的程序。圖3.4按鍵掃描電路3.4 AT24C02掉電存儲模塊本系統(tǒng)設(shè)計的掉電保護模塊由AT24C02芯片來實現(xiàn)掉電存儲的功能。掉電保護模塊的作用就是當系統(tǒng)電源斷開后,AT24C02芯片存儲斷電前已顯示的歷史總金額的信息。因為掉電保護芯片AT24C02有兩條線:地址線、數(shù)據(jù)線,它們是復用的,而且通過串口的方式傳送數(shù)據(jù)。因此,只有兩個端口SDA(數(shù)據(jù)/地址)、S
24、CL(移位脈沖)和AT89C51單片機系統(tǒng)間進行相關(guān)的數(shù)據(jù)的傳送。本設(shè)計系統(tǒng)設(shè)定為每隔3s就將總金額信息保存到AT24C02芯片中。當出租車里程、計費顯示系統(tǒng)再次通電時,AT24C02就會運行讀存儲器程序,然后把存儲器內(nèi)存儲的歷史總金額信息,寫到芯片緩存單元中,提供給主程序執(zhí)行命令。該部分電路如圖3.3所示。圖3.3 AT24C02掉電存儲電路3.5 DS1302實時時鐘芯片模塊 本設(shè)計是出租車里程、計費系統(tǒng),因此白天與夜間計費單價不同,設(shè)計的系統(tǒng)需要在一天的特定時間點自動跳變計費單價,這就需要在液晶顯示屏上顯示出當前準確時間和單價,以確保乘客和出租車司機共同的權(quán)益,不存在計費作弊的嫌疑。3.
25、5.1 DS1302的簡介 DS1302是一種可以顯示時間、日期的芯片,它具有特點:高性能、低功耗、帶RAM,它具有閏年補償?shù)墓δ?,并且能夠精確對秒、分、時、日、周、月、年進行計時23。此外,實時時鐘芯片DS1302的工作電壓范圍是2.5V5.5V,DS1302模塊電路如圖3.4所示。各引腳的功能為:Vcc1:備份電源;Vcc2:主電源。當Vcc1Vcc2+0.2V時,由Vcc1向DS1302供電,當Vcc1 Vcc2時,由Vcc2向DS1302供電。SCLK:串行時鐘,輸入。 I/O:三條接口線,且都是雙向傳輸數(shù)據(jù)。CE:使能端口,當CE為高時,方可進行讀或?qū)懙牟僮?。CE端口的功能:1)主要
26、控制字訪問,移位寄存器的控制邏輯。2)提供結(jié)束多字節(jié)數(shù)據(jù)、單字節(jié)數(shù)據(jù)傳送的方法。3.5.2 DS1302的工作模式寄存器DS1302的工作方式是突發(fā)模式,有時鐘突發(fā)模式寄存器、RAM突發(fā)模式寄存器,DS1302工作模式寄存器如表3.1所示。此外,DS1302還有充電寄存器等。表3.1 DS1302工作模式寄存器工作模式寄存器讀寄存器寫寄存器時鐘突發(fā)模式寄存器CLOCK BURSTBFhBEhRAM突發(fā)模式寄存器RAM BURSTFFhFEh3.5.3 DS1302讀寫時序說明DS1302的驅(qū)動方式是SPI總線驅(qū)動。它能向寄存器中寫控制字,而且要讀出該寄存器中的數(shù)據(jù)。設(shè)計實時時鐘電路時,必須先知
27、道它的控制字,才能很好的用單片機與DS1302通信,DS1302的控制字如圖3.4。501432671RAMA4A3A2A1A0RDCKWR圖3.4 DS1302控制字DS1302的控制字中最高有效位(位7)一定為1,假如最高有效位(位7)為0,那就不可以將所需的數(shù)據(jù)寫入實時時鐘芯片中。位6:控制字是邏輯0,就代表對日歷上時鐘數(shù)據(jù)的存??;如果為邏輯1,就代表對RAM數(shù)據(jù)的存取。位5至位1(A4A0):指示操作單元的地址。位0(最低有效位):如果是邏輯0,代表著需要啟動寫操作;如果是邏輯為1,表示進行讀操作。DS1302的控制字的輸出方法是從最低位(0位)開始,在控制字的指令輸入后,在SCLK時
28、鐘的下一個上升沿時,所需數(shù)據(jù)就會寫入DS1302中。相同的,DS1302讀數(shù)據(jù)的方法也是從最低位讀到最高位,在寫入8位的控制字指令后,SCLK脈沖的下一個下降沿就讀出DS1302中的數(shù)據(jù)。DS1302數(shù)據(jù)讀寫時序如圖3.5所示。圖3.5 DS1302數(shù)據(jù)讀寫時序3.5.4 DS1302電路連接圖DS1302實時時鐘電路連接原理圖如圖3.6所示,DS1302與AT89C51單片機的連接端口:RST端口、SCLK串行時鐘端口、I/O串行數(shù)據(jù)端口,Vcc2為主電源,Vcc1為備用電源,DS1302外接32.768KHz的晶振,為芯片提供計時脈沖。圖3.6 DS1302時鐘電路3.6 A3144霍爾傳
29、感器測距模塊出租車里程的檢測是通過安裝在輪胎上的磁鐵與車上安裝的霍爾傳感器A3144重合時檢測到的磁鐵信號。A3144每檢測到磁鐵一次,就傳入單片機進行處理和計算,最后傳送給顯示單元模塊。3.6.1 A3144測距原理A3144霍爾傳感器測距原理如圖3.7所示。車輛的輪胎每轉(zhuǎn)動一周,假如輪胎的周長是10m,當霍爾傳感器檢測磁鐵時,就傳送脈沖信號給AT89C51單片機,這時單片機引起中斷,進而對脈沖進行計數(shù),當脈沖次數(shù)達到一百次時就是1km。圖3.7 A3144測距原理圖3.6.2 A3144功能框圖A3144霍爾傳感器芯片三個引腳功能的說明,功能框圖如圖3.8所示:1) Vcc 為電源輸入端,
30、圖中腳。2) GND為接地端,圖中腳。3) OUT 為輸出端,主要功能是輸出數(shù)字信號,圖中腳。圖3.8 A3144功能框圖3.6.3 A3144電路連接原理圖在設(shè)計該電路模塊過程中,為了實現(xiàn)阻抗匹配、電壓穩(wěn)定輸出,通過查閱資料可知需要設(shè)計一個電壓跟隨器模塊,這里選定LM393芯片,它還具有放大電流的作用。A3144及其跟隨電路LM393電路連接原理圖如圖3.9所示。圖3.9 A3144及其跟隨電路LM3933.7 驅(qū)動電路模塊本設(shè)計系統(tǒng)使用了驅(qū)動電機,要求工作電流比較大,為了系統(tǒng)更穩(wěn)定的工作,解決實際模型中的可操作性,所以加入了驅(qū)動電路ULN2003。該驅(qū)動模塊電路如圖3.10所示。圖3.10
31、 驅(qū)動模塊電路圖3.8 LM016L顯示模塊此次設(shè)計顯示屏選用LM016L液晶顯示屏,顯示模塊將對行車里程、當前時間、等待時間、總金額等信息進行顯示。3.8.1 LM016L的簡介 LM016L液晶顯示相比數(shù)碼管顯示更加直觀好看,使得測量結(jié)果更容易讀取。LM016L液晶顯示屏采用的控制器是HD44780,它的指令集有著簡單、功能強的特點,而且具有字符移動、閃爍等功能,LM016L芯片與單片機有兩種方式進行通信:8位、四位并行傳輸。HD44780控制器有兩個8位寄存器,數(shù)據(jù)寄存器忙標志和指令寄存器10。3.8.2 LM016L工作原理LM016L液晶顯示屏只有兩個操作:寫操作、讀操作,現(xiàn)在設(shè)計的
32、系統(tǒng)不要求從LM016L液晶顯示屏讀取相關(guān)數(shù)據(jù)。因此,LM016L液晶顯示屏只運行寫指令和寫數(shù)據(jù)。在程序中加入延時可以保證顯示模塊有足夠的時間處理數(shù)據(jù),顯示模塊的時序圖為源程序的編寫提供了依據(jù)。LM016L液晶顯示屏的寫操作時序圖,如圖3.11所示。圖3.11 LM016L寫操作時序圖顯示模塊電路電源電壓由VCC引腳引入,系統(tǒng)通電后,發(fā)光二極管會被點亮。數(shù)據(jù)端8位分別連接接AT89C51單片機的P0口,3個控制端口分別由P2.5,P2.5,P2.7端口來控制,實現(xiàn)LM016L液晶顯示屏與單片機的通信。3.8.3 LM016L電路連接原理圖LM016L接口電路如圖3.12所示,VSS引腳接地,V
33、DD引腳接電源,VEE引腳接滑動變阻器,調(diào)節(jié)該滑動變阻器的阻值能夠調(diào)節(jié)液晶顯示屏的對比度。圖 3.12 LM016L顯示電路3.9 LED指示燈模塊本設(shè)計的硬件設(shè)計中,為了方便觀察每個部分工作情況,設(shè)計了四個LED指示燈,分別是開機指示燈,運行指示燈,等待指示燈,中斷計數(shù)指示燈(即暫停狀態(tài)霍爾傳感器停止檢測里程)。LED指示燈電路如圖3.13所示,接入端口用已標出,簡單明了。圖3.14 LED指示燈電路3.10 總體電路圖此次設(shè)計的硬件仿真電路是在Proteus軟件中進行設(shè)計的,使得仿真電路看起來更加簡潔明了。但是,由于有些仿真元器件,例如A3144霍爾傳感器,在Proteus軟件中沒有仿真元
34、器件。在本設(shè)計中,利用時鐘信號脈沖代替霍爾傳感器與磁鐵感應(yīng)的信號,這里電動機轉(zhuǎn)動一圈代表出租車輪胎轉(zhuǎn)動一圈。本電路仿真效果與實物圖一樣,仿真電路圖見附錄一。3.11 本章小結(jié)本章節(jié)詳細介紹了系統(tǒng)硬件部分的設(shè)計和在Proteus中進行的硬件仿真部分的設(shè)計。硬件仿真部分設(shè)計主要包括了一下九個模塊:單片機最小系統(tǒng)、晶振模塊、按鍵控制模塊、AT24C02掉電存儲模塊、DS1302實時時鐘電路模塊、A3144霍爾傳感器里程采集模塊、驅(qū)動電路模塊、LM016L顯示模塊、LED指示燈顯示模塊。文章中詳細介紹了各個模塊中用到的各種芯片,包括其管腳分布、管腳功能。同時,也給出了各模塊的電路連接原理圖。本系統(tǒng)設(shè)計
35、理論上很好的實現(xiàn)了設(shè)計原理要求,設(shè)計簡單明了,在實物電路實現(xiàn)時還考慮了電流不足和電壓不穩(wěn)等諸多問題,在本設(shè)計的硬件電路部分大大加強可操作性和有效性。4 軟件設(shè)計本設(shè)計出租車里程、計費顯示系統(tǒng)是硬件設(shè)計和軟件程序都需要兼顧的設(shè)計方案,此時選擇軟件程序的編程語言十分重要。進行單片機的軟件程序設(shè)計現(xiàn)在常用的是語言就是匯編語言和C語言。匯編語言的優(yōu)勢是它占用的內(nèi)存少,執(zhí)行速度快。但它對計算機硬件要求比較高,而且匯編語言程序的可讀性和移植性都不行。雖然C語言執(zhí)行命令的速度相較于匯編語言的速度低,但是C語言程序的語句簡單,方便理解,指令編寫靈活,功能、結(jié)構(gòu)也豐富多樣,編寫程序設(shè)計的柔韌性大,每個版塊還可以
36、重復調(diào)用。隨著電子科技方面單片機的快速發(fā)展,單片機系統(tǒng)內(nèi)部的資源豐富,處理速度也非常迅速。所以,在本系統(tǒng)設(shè)計中選擇C語言編寫軟件程序。4.1 軟件開發(fā)環(huán)境本系統(tǒng)設(shè)計的編程軟件采用美國Keil Software公司研發(fā)的Keil C51軟件,并用C語言代碼進行源程序的編寫。Keil C51編程軟件是一個擁有豐富的庫函數(shù),而且功能極其豐富的集成開發(fā)工具和調(diào)試的軟件編程工具。最重要的是,Keil C51生成的目標代碼效率高,大部分語句生成的C語言的代碼十分緊湊,能夠讓非編程人員快速理解。4.2 程序設(shè)計總方案 該程序由一個主程序及6個子程序構(gòu)成,子程序中包括:按鍵掃描流程、定時器初始化、DS1302
37、時鐘芯片流程、計算總金額流程、LM016L顯示流程、AT24C02掉電存儲流程。本設(shè)計主程序?qū)Π存I和霍爾傳感器進行監(jiān)測,當有按鍵按下時根據(jù)按鍵的選擇作出相應(yīng)的處理并顯示??傮w流程圖如圖4.1所示。圖4.1 整體程序的流程框圖4.3 按鍵掃描子程序 本設(shè)計有兩個按鍵,分別是開機/運行按鍵和暫停/ 運行按鍵。在判斷按鍵按下情況是,假如一條延時語句延時,如果判斷出按鍵確實按下,就判斷按鍵是否釋放,最后再自行按下鍵后需要運行的功能程序。按鍵子程序的流程圖如圖4.2所示。 圖4.2 判鍵流程圖4.4 定時器子程序由于硬件中要用到時鐘脈沖,故必須對單片機的定時進行初始化,其流程圖如圖4.3所示。當時鐘脈沖
38、計數(shù)達到比較數(shù)值時,引起定時器中斷。圖4.3 定時器流程圖定時器中斷部分程序如下:void TIM0_interrupt(void) interrupt 1 using 0/定時器0中斷,50msstatic unsigned char pwm_count;if(Drive_flage=1)if(pwm_count=PWM_ON)Drive = 1; /直流電機轉(zhuǎn) pwm_count+;if(pwm_count = CYCLE)pwm_count=0;if(PWM_ON!=0) /如果左右時間是0 保持原來狀態(tài)Drive = 0; /直流電機不轉(zhuǎn)4.5 DS1302時鐘子程序本設(shè)計是出租車里程
39、、計費系統(tǒng),需要對時間的準確顯示。利用定時時鐘芯片DS1302具有閏年補償功能,并且可以對秒、分、時、日、周、月、年進行精確的計時25。DS1302定時時鐘流程圖如圖4.4所示。圖4.4 DS1302定時時鐘流程圖對DS1302讀數(shù)據(jù)和計費標準跳變時間設(shè)置的部分程序如下:void Run_DS1302(void) v_W1302(0x8f, 0);sec = bcdtodec(uc_R1302(0x81); /讀出DS1302中的秒v_W1302(0x8f, 0);min = bcdtodec(uc_R1302(0x83); /讀出DS1302中的分v_W1302(0x8f, 0); . if
40、(5hour & hour18) /早上6點晚上6點=白天 start_value = 10; run_value = 2; State_val = Day; else /夜晚 start_value = 11; run_value = 2.3; State_val = Night; 4.6 計算總金額子程序本設(shè)計的重點是通過行車里程和等待時間計算總金額,計算總金額流程圖如圖4.6所示。以下是詳細計算方法:1) 等待時間和等待費用:行車途中,出租車里程、計費顯示系統(tǒng)可以根據(jù)等待時間計費,每等待3分鐘計費1元。2) 白天:行車里程在3km以內(nèi),起步價為10.00元,超過3km后,每公里按2.00
41、元計費。夜間:行車里程在3km以內(nèi),起步價為11.00元,超過3km后,每公里按2.30元計費。總金額=起步價+里程里程單價+等待時間等待單價;3) 計費器以km為單位統(tǒng)計里程,計算里程到0.5km。圖4.5 計算總金額流程圖計算總金額部分程序如下:if(total_mileage/1000 = 3) /超出3kmmoney=start_value + run_value*(total_mileage/1000 - 3 ) +wite_value*(wait_time/3);/起步價+里程里程單價+等待時間等待單價if(dispbuf2 = 5) money+= run_value/2.0;
42、/尾數(shù)是否大于0.5km else money=start_value + wite_value*(wait_time/3);4.7 顯示子程序 盡管數(shù)碼管也可以完成,但界面不夠美觀。本設(shè)計采用LM016L液晶顯示屏,它具有重量輕、體積小、功耗低、接口簡單方便可靠性高等優(yōu)點。它內(nèi)部帶有一定字符的字庫,只要把對應(yīng)數(shù)字或字母的ASC值,送到它的8位數(shù)據(jù)端,即可顯示對應(yīng)字符。顯示程序流程圖如圖4.6所示。4.6 顯示子程序流程圖4.8 本章小結(jié)本章節(jié)主要介紹了系統(tǒng)的軟件部分的設(shè)計部分。開始部分總體介紹了系統(tǒng)的總流程圖,然后分模塊介紹了中斷程序流程、按鍵程序流程、顯示流程、總金額程序。各個模塊給出了主
43、要程序段和流程圖。系統(tǒng)的詳細程序清單見本文的附錄二。5 仿真與調(diào)試下面主要介紹編程軟件Keil C51編譯和Proteus軟件仿真,在調(diào)試過程中出租車里程、計費顯示系統(tǒng)各個模塊調(diào)試時遇到的各種問題、分析問題的方法和解決問題的情況。5.1 編程工具-C51語言AT80C51單片機的軟件程序設(shè)計,C51語言用來設(shè)計程序比較于匯編語言的代碼運行速度有所降低。但它能夠簡明的實現(xiàn)程序的模塊化,而且代碼的結(jié)構(gòu)也十分清晰、非編程人員也能輕松的理解程序。C51語言不僅容易維護、更新、移植,還能夠?qū)崿F(xiàn)比較大的規(guī)模的單片機程序設(shè)計。最近幾年,C51語言的編譯器的各種性能不斷提高。在大部分的應(yīng)用環(huán)境中,C51語言程
44、序的執(zhí)行速度已經(jīng)快要趕上匯編語言的執(zhí)行速度。所以,采用C51語言實現(xiàn)單片機軟件程序設(shè)計早已是單片機軟件程序設(shè)計的最佳選擇。本設(shè)計的軟件程序在 Keil Vision4 C51版上進行編寫,編譯,調(diào)試和運行等操作,并且為Proteus中電路的仿真生成Hex文件。5.2 單片機仿真軟件調(diào)試-PROTEUS 1)打開Proteus軟件。 2)點擊“文件”下拉菜單的“打開設(shè)計”選項,選擇到電路仿真設(shè)計要求的元器件,在所選的元器件上單擊右鍵選中,雙擊左鍵對所選元器件更改名字和值域,然后在編輯器左邊P的那一欄里,點擊后在圖中放置所需的元器件,再按照設(shè)計電路用線連接起來,最后記得保存設(shè)計電路。 3)選擇在K
45、eil Vision4 C51中編譯成功后,點擊生成的hex文件,然后下載到AT89C51單片機芯片中。步驟:雙擊左鍵,點擊AT89C51單片機芯片,在打開的對話框中將編譯生成的hex文件選中,然后點擊確定。 4)單擊Proteus軟件運行界面左下角的運行按鈕,此時就開始進行電路仿真和調(diào)試,不斷改進程序和連接元器件的方式,當仿真結(jié)果達到要求時為止。 5.2.1 AT24C02掉電保護仿真內(nèi)容:AT24C02掉電保護的仿真。目的:LM016L液晶顯示屏在設(shè)計系統(tǒng)運行后,是否顯示歷史總金額。步驟:在PROTEUS中打開設(shè)計,觀察LM016L液晶顯示屏的顯示情況。結(jié)果:顯示正確,顯示結(jié)果如圖圖5.2
46、所示。圖5.2 LCD原始金額顯示界面5.2.2 DS3102定時時鐘仿真內(nèi)容:DS3102定時時鐘的仿真。目的:LM016L液晶顯示屏在設(shè)計系統(tǒng)運行后,是否顯示當前是白天/夜間模式,日期,時間的信息。步驟:在PROTEUS中打開設(shè)計,按下開機/運行鍵,觀察系統(tǒng)是否正常運行,觀察液晶顯示屏顯示情況是否正確。結(jié)果:顯示正確,顯示結(jié)果如圖5.3所示,圖5.4所示,圖5.5所示。圖5.3 LCD夜間顯示界面圖5.4 LCD白天顯示界面 圖5.5 LCD時間顯示界面5.2.3 里程、等待時間、總金額的仿真內(nèi)容:里程、等待時間、總金額的仿真。目的:LM016L液晶顯示屏在設(shè)計系統(tǒng)運行后,是否顯示里程、等
47、待時間、總金額等信息。步驟:在PROTEUS中打開設(shè)計,按下開機/運行鍵,觀察系統(tǒng)是否正常運行,觀察液晶顯示屏山里程和總金額是否正確顯示;當系統(tǒng)里程運行超過三公里后,按下運行/等待鍵,觀察液晶顯示屏上等待時間是否變化,超過三分鐘后,總金額是否正確。結(jié)果:顯示正確,顯示結(jié)果如圖5.6所示。當出租車行車里程大于3km時,系統(tǒng)就會對行車時間是白天還是夜間進行總金額計算和等待時間金額計算,計算公式為:總金額=起步價+里程里程單價+等待時間等待單價。此時為白天模式,起步價為10元,超過三公里每公里2.0元,有等待時間,則計算總金額為10+2.0(5-3)+(16-1)/3=19.0元。圖5.6 里程,等
48、待時間,總金額顯示界面5.3 實物調(diào)試仿真無誤后開始焊接元器件,本系統(tǒng)設(shè)計為5V供電,所以連接一個5V數(shù)據(jù)線即可通電。但是由于仿真和實物有很大區(qū)別,所以實物功能沒能實現(xiàn)成功。焊接完成的實物圖如圖5.8所示。實物元器件清單圖詳見附錄三。圖5.8 實物圖5.4 軟件設(shè)計中遇到的問題及解決方法軟件設(shè)計中遇到的問題除程序的語法錯誤外,主要集中在霍爾傳感器中里程檢測數(shù)據(jù)的讀取,定時時鐘的時鐘、日期的顯示,總金額的計算,液晶屏的顯示。(1)LCD顯示不正確程序編譯后,在Proteus中仿真,按照正常情況,LM016L應(yīng)該有數(shù)據(jù)顯示。但是,點擊運行按鈕,LCD液晶顯示屏只是變亮了一些,不會顯示任何字符、數(shù)字
49、。a首先,懷疑仿真電路圖的連線有問題。因為,LCD顯示屏與單片機的連線,采用的是網(wǎng)絡(luò)標號的形式。所以,猜測采用網(wǎng)絡(luò)標號的連線出現(xiàn)了問題,故把網(wǎng)絡(luò)標號的連接線改成導線連接。再次運行仿真,發(fā)現(xiàn)情況依然如此,故排除網(wǎng)絡(luò)標號的問題。b然后,懷疑keil編程出現(xiàn)了問題。猜測是電機出現(xiàn)了問題,可能是電機芯片未工作,沒有產(chǎn)生數(shù)據(jù),因此不會有數(shù)據(jù)顯示。所以,另外編寫一簡單的程序,控制LCD液晶顯示器直接顯示一個字符串。結(jié)果LCD液晶顯示器能正確顯示,故排除LCD顯示程序出現(xiàn)了問題,從而發(fā)現(xiàn)是AT24C02出現(xiàn)了問題。(2)顯示不正確程序中首先根據(jù)統(tǒng)計脈沖數(shù)再讀取單片機芯片內(nèi)的金額,然后將總金額等信息顯示在液晶
50、顯示器上面。但是,從顯示的結(jié)果上來看,顯示不正確。雖然對暫停時間進行改變過后,顯示的數(shù)字有相應(yīng)的變化,但是,該顯示的價格不對且顯示出現(xiàn)亂碼,而且,精度也與資料中給出的參數(shù)不符。a.首先,懷疑單片機沒有工作。猜測可能是在keil里面編程編譯連接的時候沒有生成.hex文件,經(jīng)檢查,keil已經(jīng)生成了.hex文件,故排除kei編譯的時候出了問題;接著懷疑Protues在調(diào)用的時候出了問題,沒有調(diào)取成功。因此,編譯一個簡單的小程序:對P0口賦高電平,驅(qū)動發(fā)光二極管檢驗。發(fā)現(xiàn)二極管發(fā)光正常,故排除是調(diào)用文件的環(huán)節(jié)出了問題。b.然后,猜想可能是顯示階段出現(xiàn)了問題。猜測會不會LCD液晶顯示程序出了問題呢?于
51、是檢查LCD顯示程序,發(fā)現(xiàn)顯示LCD正常,故排除LCD顯示程序的問題。 經(jīng)過上面的改正以后,在工作狀態(tài)為僅白天或者僅夜間時的仿真,本設(shè)計系統(tǒng)可以正常工作,但是到了特定的價格跳變時間,單價不跳變,所以就編寫了自動換擋程序,設(shè)計白天和夜間自動跳價的電路。當時設(shè)計好了以后,發(fā)現(xiàn)當達到跳價臨界值時,顯示不穩(wěn)定。硬件電路不會有問題,只能是軟件有問題。經(jīng)改正,加一個延時程序就可以了。5.5 硬件制作中遇到的問題及解決方法本設(shè)計硬件制作方法是PCB電路板的制作方法,電路為手繪。在制作液晶顯示部分時,通將液晶的各個管腳與單片機相連,或按照資料與電源、地等連接。上電后,液晶點亮,但是,當單片機運行自己編寫的液晶
52、測試程序時,卻發(fā)現(xiàn)液晶始終沒有顯示。分析過后,總結(jié)可能的原因如下: a.測試程序出錯,有可能是時序不對或者是延時太短。 b.硬件中液晶與單片機的連接不可靠,可能出現(xiàn)了虛接。 c.液晶的對比度控制有問題。首先,進行后兩種原因的排除,因為硬件的問題容易發(fā)現(xiàn)。對于連接不可靠的情況,通過萬用表測二極管檔進行一一排除,發(fā)現(xiàn)連接正確可靠。然后進行對比度控制檢查,通過仔細閱讀液晶資料,發(fā)現(xiàn)連接錯誤,此時液晶的對比度為最低,所以,即使液晶有顯示,也因為對比度的問題無法用肉眼識別。糾正過后,發(fā)現(xiàn)液晶顯示正常。問題得到解決。5.6 本章小結(jié)在本章節(jié)中,詳細介紹了在硬件及軟件設(shè)計中遇到的各種問題,并對各種問題進行了
53、較為詳細地分析,提出了可能的解決方案,并記錄了最終解決問題的辦法。這在設(shè)計實踐中不失為寶貴的經(jīng)驗。6 結(jié)束由于本設(shè)計使用的是AT89C51單片機為核心控制的出租車里程、計費顯示系統(tǒng),以及高耐壓、大電流復合晶體管的ULN2003芯片。使得本系統(tǒng)具有精度高、功能齊全、讀數(shù)方便、抗干擾能力強、性能可靠、電路簡單,成本低等特點。具有自動進行白天/黑夜的切換,本設(shè)計系統(tǒng)有著很大的實際應(yīng)用價值。 設(shè)計出租車里程、計費顯示系統(tǒng)的過程中,了解了AT89C51單片機系統(tǒng)設(shè)計的過程應(yīng)該注意兩個方面:1. 設(shè)計硬件的選擇:選擇合適的元器件是單片機設(shè)計系統(tǒng)中的一個很重要的環(huán)節(jié)。選擇元器件的標準應(yīng)該是性能達到設(shè)計要求,且價格實惠的。選擇使應(yīng)該依據(jù)設(shè)計得需求來選擇所需的元器件,只要恰好能夠達到設(shè)計要求即可,不用太要求元器件的性能,那樣價格較貴。 2.AT89C51單片機系統(tǒng)設(shè)計是硬件設(shè)計仿真和軟件程序編輯結(jié)合在一起的一種設(shè)計,因此單片機系統(tǒng)和硬件設(shè)計及軟件編程之間應(yīng)該協(xié)調(diào)一致。在系統(tǒng)設(shè)計過程中,為了提高單片機系統(tǒng)執(zhí)行命令的速度,硬件設(shè)計和軟件編程設(shè)計都應(yīng)該不斷改進。 本系統(tǒng)是以AT89C51單片機來控制系統(tǒng)的運行的設(shè)計,通過霍爾傳感器產(chǎn)生的脈沖信號,將該脈沖數(shù)進行轉(zhuǎn)換成距離,再讀取DS1302
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB 17440-2025糧食加工、儲運系統(tǒng)粉塵防爆安全規(guī)范
- JJF 1282-2025時間繼電器校準規(guī)范
- 動漫制作合同范本
- 農(nóng)村地抵押合同范例
- 買賣鞋合同范例
- 公路發(fā)包合同范本
- 買斷企業(yè)產(chǎn)品合同范本
- 代辦檢測合同范本
- 企業(yè)bt項目合同范本
- 三方工程合同范本
- 2025年湖南城建職業(yè)技術(shù)學院單招職業(yè)適應(yīng)性測試題庫及答案一套
- 教科版科學三下開學第一課《科學家這樣做-童第周》
- 疲勞斷裂材料性能優(yōu)化-深度研究
- 2025年貴州蔬菜集團有限公司招聘筆試參考題庫含答案解析
- 小學二年級有余數(shù)的除法口算題(共300題)
- 北京市矢量地圖-可改顏色
- 高職院校高水平現(xiàn)代物流管理專業(yè)群建設(shè)方案(現(xiàn)代物流管理專業(yè)群)
- 妊娠期高血壓疾病試題
- 2024專升本英語答題卡浙江省
- 【冠心病探究文獻綜述2000字】
- (完整版)50028-城鎮(zhèn)燃氣設(shè)計規(guī)范
評論
0/150
提交評論