二稿(基于單片機(jī)的出租車計(jì)費(fèi)器)_第1頁
二稿(基于單片機(jī)的出租車計(jì)費(fèi)器)_第2頁
二稿(基于單片機(jī)的出租車計(jì)費(fèi)器)_第3頁
二稿(基于單片機(jī)的出租車計(jì)費(fèi)器)_第4頁
二稿(基于單片機(jī)的出租車計(jì)費(fèi)器)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、畢業(yè)設(shè)計(jì)初稿題 目 基于單片機(jī)的出租車計(jì)費(fèi)器設(shè)計(jì) 學(xué)生姓名 陳鎮(zhèn) 學(xué) 號 201014240132 系 別 物電系 專 業(yè) 電氣工程及其自動(dòng)化 屆 別 10級 指導(dǎo)教師 周桂珍 職 稱 講師 2014 年 3 月 3 日摘要:隨著社會(huì)的進(jìn)步,電子類產(chǎn)品也得到了廣泛的發(fā)展。尤其是單片機(jī)的發(fā)展異常迅速。由于單片機(jī)的特殊結(jié)構(gòu)形式,在某些應(yīng)用領(lǐng)域中,它承擔(dān)了一些微型計(jì)算機(jī)無法完成的工作,它是一種高性能,低價(jià)格的處理器。集成度高,體積小,可靠高,控制功能強(qiáng),電壓低。由于單片機(jī)具有這些特點(diǎn),在人類的生活應(yīng)用中十分廣泛。本篇文章就是以AT89S51單片機(jī)為核心,附加A44E霍爾傳感器測距,實(shí)現(xiàn)對出租車計(jì)價(jià)統(tǒng)

2、計(jì),采用AT24C02實(shí)現(xiàn)在系統(tǒng)掉電的時(shí)候保存單價(jià)和系統(tǒng)時(shí)間等信息,輸出采用液晶顯示。本電路設(shè)計(jì)的計(jì)價(jià)器不但能實(shí)現(xiàn)基本的計(jì)價(jià),而且還能根據(jù)白天、黑夜、中途等待來調(diào)節(jié)單價(jià),同時(shí)在不計(jì)價(jià)的時(shí)候能夠提供時(shí)間顯示。關(guān)鍵詞 單片機(jī)AT89S41;AT24C02掉電存儲 ;里程計(jì)算Abstract: With the progress of society, electronic products have also been extensive development. In

3、 particular, the development of SCM is very rapidly. Because of the special structure of SCM, in some applications, it incurred some common micro-computer can not complet

4、e the work, it is a high-performance, low prices of processors. High integration, small size, high reliability, strong control function, low voltage. As SCM with these ch

5、aracteristics, the human life in very broad application. This paper is to AT89S51 SCM as the center, additional A44E Hall sensor location, and the Taximeter statistics, A

6、T24C02 used in the system to achieve power-down when the unit prices and save time, and other information systems, the output of digital display by paragraph 8 Tube.

7、 The circuit design of the meter can not only achieve the basic pricing, but also based on the day, night, waiting for the half-way to regulate the price, 

8、while not pricing the time as the clock can provide convenience for drivers.Key words: SCM AT89S51; AT24C02 Power-down storage; mileage calculation 目 錄1緒論11.1概述11.2 基本內(nèi)容11.2.1 設(shè)計(jì)任務(wù)11.2.2 設(shè)計(jì)要求11.3

9、 系統(tǒng)主要功能22硬件設(shè)計(jì)32.1 系統(tǒng)的硬件構(gòu)成及功能32.2 AT89C51單片機(jī)及其引腳說明42.3 AT24C02引腳圖及其引腳功能62.4 AT24C02 掉電存儲單元的設(shè)計(jì)62.5 里程計(jì)算、計(jì)價(jià)單元的設(shè)計(jì)72.6 數(shù)據(jù)顯示單元設(shè)計(jì)83 系統(tǒng)的軟件設(shè)計(jì)103.1 系統(tǒng)主程序設(shè)計(jì)103.2 定時(shí)中斷服務(wù)程序123.3 里程計(jì)數(shù)中斷服務(wù)程序123.4 中途等待中斷服務(wù)程序123.5 顯示子程序服務(wù)程序123.6 鍵盤服務(wù)程序124 系統(tǒng)調(diào)試與測試結(jié)果分析134.1 使用的儀器儀表134.2 系統(tǒng)調(diào)試145 AT89C51程序14參考文獻(xiàn)141緒論出租車大家都不會(huì)感到陌生,它在我們的生活

10、中已經(jīng)起到了很重要的作用. 出租車的日益普偏,了解在出租車上應(yīng)用的記價(jià)器的工作原理,并利用單片機(jī)實(shí)現(xiàn)該系統(tǒng)。出租車要實(shí)現(xiàn)的功能包括接受里程傳感器的脈沖輸入(里程計(jì)算是通過安裝在車輪上的霍爾傳感器A44E檢測到的信號,送到單片機(jī),經(jīng)處理計(jì)算,送給顯示單元的)。 AT89S51單片機(jī)是美國ATMEL公司生產(chǎn)的低功耗,高性能CMOS 8位單片機(jī),片內(nèi)含4KB的可系統(tǒng)編程的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)8051指令系統(tǒng)及引腳。它集Flash程序存儲器既可在線編程(ISP)也可用傳統(tǒng)方法進(jìn)行編程及通用 8位

11、微處理器于單片芯片中,具有高性價(jià)比。 本次設(shè)計(jì)基于AT89S51單片機(jī)來實(shí)現(xiàn)一臺出租車計(jì)價(jià)器,具有性能可靠、電路簡單、成本低等特點(diǎn)。1.1概述計(jì)價(jià)器顯示的營運(yùn)金額是基于“價(jià)格=速度*時(shí)間*單價(jià)”等價(jià)于“價(jià)格=路程*單價(jià)格,總費(fèi)用=價(jià)格+起步價(jià)”的原理。出租車計(jì)價(jià)器通過傳感器與行駛車輛連接。出租汽車的實(shí)際里程通過傳感器的脈沖信號在計(jì)價(jià)器里折算成一定的計(jì)價(jià)營運(yùn)里程。目前市場上出租車計(jì)價(jià)器功能主要有具有數(shù)據(jù)的復(fù)位功能、白天/晚上轉(zhuǎn)換功能、數(shù)據(jù)輸出功能、計(jì)時(shí)計(jì)價(jià)功能等等,但存在著太多的不足,容易為司機(jī)和顧客之間造成麻煩,基于此,設(shè)計(jì)一款能夠提高抗干擾能力、防作弊能力、掉電保護(hù)功能的計(jì)價(jià)器,以

12、使其功能更加完善。1.2 基本內(nèi)容1.2.1 設(shè)計(jì)任務(wù) 設(shè)計(jì)一款基于AT89C51單片機(jī)的出租車計(jì)價(jià)器。1.2.2 設(shè)計(jì)要求(1).基本要求1不同情況具有不同的收費(fèi)標(biāo)準(zhǔn)。l 白天l 晚上l 途中等待(>10min 開始收費(fèi))2能進(jìn)行手動(dòng)修改單價(jià)。3具有數(shù)據(jù)的復(fù)位功能。4 IO 口分配的簡易要求。l 距離檢測使用霍爾開關(guān)A44El 白天/晚上收費(fèi)標(biāo)準(zhǔn)的轉(zhuǎn)換開關(guān)l 數(shù)據(jù)的清零開關(guān)l 單價(jià)的調(diào)整(使用和按鍵)5數(shù)據(jù)輸出(采用LCM103)。l 單價(jià)輸出 2 位l 路程輸出 2 位l 總金額輸出 3 位6按鍵。 l 啟動(dòng)計(jì)時(shí)開關(guān) l 數(shù)據(jù)復(fù)位(清零) l 白天/晚上轉(zhuǎn)換(2).發(fā)揮部分1 能夠在

13、掉電的情況下存儲單價(jià)等數(shù)據(jù)。2 能夠抵抗外界干擾,保證數(shù)據(jù)穩(wěn)定、準(zhǔn)確。1.3 系統(tǒng)主要功能本文所做的出租車計(jì)價(jià)器設(shè)計(jì)由硬件設(shè)計(jì)和軟件設(shè)計(jì)兩部分組成,主要內(nèi)容包括:出租車計(jì)價(jià)器系統(tǒng)的工作原理、出租車計(jì)價(jià)器系統(tǒng)的硬件電路設(shè)計(jì)(單片機(jī)主電路、里程與計(jì)價(jià)單元電路、數(shù)據(jù)存儲電路、顯示電路、按鍵電路、電源電路等)、出租車計(jì)價(jià)器系統(tǒng)的軟件設(shè)計(jì)(初始化模塊、里程及計(jì)價(jià)換算模塊、數(shù)據(jù)存儲模塊、按鍵處理模塊、顯示模塊等)。輸出采用8 段數(shù)碼顯示管。本電路設(shè)計(jì)的計(jì)價(jià)器不但能實(shí)現(xiàn)基本的計(jì)價(jià),而且還能根據(jù)白天、黑夜、中途等待來調(diào)節(jié)單價(jià),能在掉電的情況下存儲數(shù)據(jù),防止外界干擾。2硬件設(shè)計(jì)本文的硬件設(shè)計(jì)主要包括單片機(jī)AT8

14、9C51、A44E霍爾傳感器電路、AT24C02 掉電存儲單元的、里程與計(jì)價(jià)單元電路、數(shù)據(jù)存儲電路、數(shù)據(jù)顯示電路、按鍵電路、電源電路等電路的設(shè)計(jì)。在硬件設(shè)計(jì)過程中,充分利用各部件的功能,實(shí)現(xiàn)多功能的出租車計(jì)價(jià)器設(shè)計(jì)。2.1 系統(tǒng)的硬件構(gòu)成及功能計(jì)價(jià)器的單片機(jī)控制方案圖如圖1 單片機(jī)控制方案圖所示。它由以下幾個(gè)部件組成:單片機(jī)AT89S51、總金額及單價(jià)顯示部件、鍵盤控制部件,AT24C02 掉電存儲控制、里程計(jì)算單元、串中顯示驅(qū)動(dòng)電路等。鍵盤控制總金額顯示AT24C02掉電存儲里程計(jì)算模塊AT89C51單片機(jī)串口顯示驅(qū)動(dòng)模塊單價(jià)顯示圖1 單片機(jī)控制方案圖2.2 AT89C51單片機(jī)及其引腳說明

15、AT89S51是一種低功耗,高性能CMOS 8位單片機(jī),片內(nèi)含4KB的可系統(tǒng)編程的Flash只讀程序存儲器,器件采用高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)8051指令系統(tǒng)及引腳。它集Flash程序存儲器及通用 8位微處理器于單片芯片中,既可在線編程(ISP)也可用傳統(tǒng)方法進(jìn)行編程,具有很高的性價(jià)比。圖2 AT89S51引腳配置AT89C51芯片的40個(gè)引腳功能為:VCC 電源電壓。 GND 接地。RST 復(fù)位輸入。(當(dāng)RST變?yōu)楦唠娖讲⒈3?個(gè)機(jī)器周期時(shí),將使單片機(jī)復(fù)位。)XTAL1 反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2 來自反向振蕩放大器的輸出。P0口 一組8位漏極開路型

16、雙向I/O口,即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能驅(qū)動(dòng)8個(gè)TTL邏輯門電路,對端口寫“1”可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。在Flash編程時(shí),P0口接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻。P1口 帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅(qū)動(dòng)4個(gè)TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號拉低時(shí)會(huì)輸出一個(gè)電流(IIL)。Flash編程和程序校驗(yàn)期間,P

17、1接收低8位地址。P1口部分端口引腳及功能如表1 P1口特殊功能所示。表1 P1口特殊功能P1口引腳特殊功能P1.5MOSI(用于ISP編程)P1.6MOSI(用于ISP編程)P1.7SCK(用于ISP編程)P2口 帶內(nèi)部上拉電阻的8位雙向I/O口?;竟δ芘cP1口基本相同,只是在訪問8位地址的外部數(shù)據(jù)存儲器時(shí),P2口線上的內(nèi)容在整個(gè)訪問期間不改變,F(xiàn)lash編程和程序校驗(yàn)期間,P2亦接收低8位地址。P3口 帶內(nèi)部上拉電阻的8位雙向I/O口。基本功能與P1、P2口基本相同,不再累述。P3口除了作為一般的I/O口線外,更重要的用途是它的第二功能,如表2 P3口特殊功能所示。P3口還接收一些用于F

18、lash閃速存儲器編程和程序校驗(yàn)期間的控制信號。表2 P3口特殊功能P3口引腳特殊功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2(外部中斷0)P3.3(外部中斷1)P3.4T0(定時(shí)器0外部輸入)P3.5T1(定時(shí)器1外部輸入)P3.6 (外部數(shù)據(jù)存儲器寫選通)P3.7 (外部數(shù)據(jù)存儲器讀選通)PSEN 程序儲存允許輸出,是外部程序存儲器的讀先通信號,當(dāng)AT89C51由外部程序存儲器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN/有效,即輸出兩個(gè)脈沖。當(dāng)訪問外部數(shù)據(jù)存儲器,沒有兩次有效的PSEN/信號。EA/VPP 外部訪問允許。欲使CPU僅訪問外部程序存儲器,EA端必須保

19、持低電平,需注意的是:如果加密位LB1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。Flash存儲器編程時(shí),該引腳加上+12V的編程電壓VPP。2.3 AT24C02引腳圖及其引腳功能圖3 AT24C02引腳配置圖 AT24C02芯片DIP封裝,共有8個(gè)引腳,其中:A2A0 地址引腳; SDA、SCL I2C總線接口;WP 寫保護(hù)引腳,WP接VSS時(shí),禁止寫入高位地址,WP接VDD 時(shí), 允許寫入任何地址; VCC 電源端GND 接地端2.4 AT24C02 掉電存儲單元的設(shè)計(jì) 掉電存儲單元的作用是在電源斷開的時(shí)候,存儲當(dāng)前設(shè)定的單價(jià)信息。AT24C02 是2KB字節(jié)的電可擦除存儲芯片,采用兩線串行的總

20、線和單片機(jī)通訊,電壓最低可以到2.5V,額定電流為1mA,靜態(tài)電流10uA(5.5V),而且采用8 腳的DIP 封裝,使用方便。其電路如圖 4 掉電存儲電路原理圖所示。圖 4 掉電存儲電路原理圖圖中R8、R10 是上拉電阻,其作用是減少AT24C02 的靜態(tài)功耗,由于AT24C02 的數(shù)據(jù)線和地址線是復(fù)用的,采用串口的方式傳送數(shù)據(jù),所以只用兩根線SCL(移位脈沖)和SDA(數(shù)據(jù)/地址)與單片機(jī)傳送數(shù)據(jù)。每當(dāng)設(shè)定一次單價(jià),系統(tǒng)就自動(dòng)調(diào)用存儲程序,將單價(jià)信息保存在芯片內(nèi);當(dāng)系統(tǒng)重新上電的時(shí)候,自動(dòng)調(diào)用讀存儲器程序,將存儲器內(nèi)的單價(jià)等信息讀到緩存單元中,供主程序使用。2.5 里程計(jì)算、計(jì)價(jià)單元的設(shè)計(jì)

21、里程計(jì)算是通過安裝在車輪上的霍爾傳感器A44E檢測到的信號,送到單片機(jī),經(jīng)處理計(jì)算,送給顯示單元的。其原理如圖 5 傳感器測距示意圖所示。圖 5 傳感器測距示意圖由于A44E 屬于開關(guān)型的霍爾器件,其工作電壓范圍比較寬(4.518V),其輸出的信號符合TTL 電平標(biāo)準(zhǔn),可以直接接到單片機(jī)的IO 端口上,而且其最高檢測頻率可達(dá)到1MHZ。 A44E 集成霍耳開關(guān)由穩(wěn)壓器A、霍耳電勢發(fā)生器(即硅霍耳片)B、差分放大器C、施密特觸發(fā)器D 和OC 門輸出E 五個(gè)基本部分組成。在輸入端輸入電壓VCC時(shí),經(jīng)穩(wěn)壓器穩(wěn)壓后加在霍耳電勢發(fā)生器的兩端,根據(jù)霍耳效應(yīng)原理,當(dāng)霍耳片處在磁場中時(shí),在垂直于磁場

22、的方向通以電流,則與這二者相垂直的方向上將會(huì)產(chǎn)生霍耳電勢差H V 輸出,該H V 信號經(jīng)放大器放大后送至施密特觸發(fā)器整形,使其成為方波輸送到OC 門輸出。當(dāng)施加的磁場達(dá)到工作點(diǎn)(即BOP)時(shí),觸發(fā)器輸出高電壓(相對于地電位),使三極管導(dǎo)通,此時(shí)OC門輸出端輸出低電壓,通常稱這種狀態(tài)為開。當(dāng)施加的磁場達(dá)到釋放點(diǎn)(即BrP)時(shí),觸發(fā)器輸出低電壓,三極管截止,使OC門輸出高電壓,這種狀態(tài)為關(guān)。這樣兩次電壓變換,使霍耳開關(guān)完成了一次開關(guān)動(dòng)作。 我們選擇了P3.2 口作為信號的輸入端,內(nèi)部采用外部中斷0(這樣可以減少程序設(shè)計(jì)的麻煩),車輪每轉(zhuǎn)一圈(我們設(shè)車輪的周長是1 米),霍爾開關(guān)就檢測并輸出信號,引

23、起單片機(jī)的中斷,對脈沖計(jì)數(shù),當(dāng)計(jì)數(shù)達(dá)到1000 次時(shí),也就是1 公里,單片機(jī)就控制將金額自動(dòng)的增加,其計(jì)算公式:當(dāng)前單價(jià)×公里數(shù)=金額(和上面有出入)。2.6 數(shù)據(jù)顯示單元設(shè)計(jì)由于設(shè)計(jì)要求有單價(jià)(2 位)、路程(2 位)、總金額(3 位)顯示輸出,加上我們另外擴(kuò)展了時(shí)鐘顯示(包含時(shí)分秒的顯示),采用LCD 液晶段碼顯示,在距離屏幕1 米之外就無法看清數(shù)據(jù),不能滿足要求,而且在白天其對比度也不能夠滿足要求,因此我們采用6位LED數(shù)碼管分屏顯示,如圖6圖 6 采用6 位LED數(shù)碼管的分屏顯示數(shù)據(jù)的分屏的顯示是通過按鍵S1 來實(shí)現(xiàn)切換的,如圖7圖 7 S1切換顯示屏在出租車不走的時(shí)候,按下

24、S1,可以實(shí)現(xiàn)數(shù)據(jù)的分屏顯示;車在行走的時(shí)候只有總金額和單價(jià)顯示屏在顯示,當(dāng)?shù)竭_(dá)目的地的時(shí)候,客戶要求查看總的里程的時(shí)候,就可以按下S1 切換到里程和單價(jià)顯示屏,供客戶查詢。顯示電路的電路原理圖如圖 8 顯示器原理圖所示。圖 8 顯示器原理圖 從單片機(jī)串口輸出的信號先送到左邊的移位寄存器(74HC164),由于移位脈沖的作用,使數(shù)據(jù)向右移,達(dá)到顯示的目的。移位寄存器74HC164還兼作數(shù)碼管的驅(qū)動(dòng),插頭1(header1)接電源,插頭2(header2)接數(shù)據(jù)和脈沖輸出端。電路中的三個(gè)整流管D1D3 的作用是降低數(shù)碼管的工作電壓,增加其使用壽命。3 系統(tǒng)的軟件設(shè)計(jì) 本系統(tǒng)的軟件設(shè)計(jì)主要可分為主

25、程序模塊、里程及計(jì)價(jià)換算模塊、數(shù)據(jù)存儲模塊、鍵盤處理模塊、顯示模塊、定時(shí)計(jì)數(shù)中斷模塊、中途等待中斷服務(wù)模塊等幾大模塊。3.1 系統(tǒng)主程序設(shè)計(jì)在主程序模塊中,需要完成對各接口芯片的初始化、出租車起價(jià)和單價(jià)的初始化、中斷向量的設(shè)計(jì)以及開中斷、循環(huán)等待等工作。另外,在主程序模塊中還需要設(shè)置啟動(dòng)/清除標(biāo)志寄存器、里程寄存器和價(jià)格寄存器,并對它們進(jìn)行初始化。然后,主程序?qū)⒏鶕?jù)各標(biāo)志寄存器的內(nèi)容,分別完成啟動(dòng)、清除、計(jì)程和計(jì)價(jià)等不同的操作。主程序流程圖如圖9 所示。開始S1按下?初始化數(shù)據(jù)S4按下?設(shè)定默認(rèn) 單價(jià)(白天)啟動(dòng)計(jì)價(jià)器里程中斷?到一公里?總路程加1總金額加1傳感有信號?停止計(jì)價(jià)和里程計(jì)數(shù)設(shè)定晚

26、上單價(jià)按下S4?設(shè)定中途等待單價(jià)S4按下?返回時(shí)間顯示顯示金額及單價(jià)S3按下?顯示路程和單價(jià)S3按下?是否是否是是否否是否是是否是否否是圖9 主程序流程圖3.2 定時(shí)中斷服務(wù)程序在定時(shí)中斷服務(wù)程序中,每100ms 產(chǎn)生一次中斷,當(dāng)產(chǎn)生10 次中斷的時(shí)候,也就到了一秒,送數(shù)據(jù)到相應(yīng)的顯示緩沖單元,并調(diào)用顯示子程序?qū)崟r(shí)顯示。其程序流程如圖10 所示。 圖10 定時(shí)中斷服務(wù)程序3.3 里程計(jì)數(shù)中斷服務(wù)程序每當(dāng)霍爾傳感器輸出一個(gè)低電平信號就使單片機(jī)中斷一次,當(dāng)里程計(jì)數(shù)器對里程脈沖計(jì)滿1000 次時(shí),使微機(jī)進(jìn)入里程計(jì)數(shù)中斷服務(wù)程序中。在該程序中,需要完成當(dāng)前行駛里程數(shù)和總額的累加操作,并將結(jié)果存入里程和

27、總額寄存器中。3.4 中途等待中斷服務(wù)程序當(dāng)在計(jì)數(shù)狀態(tài)下霍爾開關(guān)沒有輸出信號,片內(nèi)的T1 定時(shí)器便被啟動(dòng),每當(dāng)計(jì)時(shí)到達(dá)10分鐘,就對當(dāng)前金額加上中途等待的單價(jià),以后每十分鐘都自動(dòng)加上中途等待的單價(jià)。當(dāng)中途等待結(jié)束的時(shí)候,也就自動(dòng)切換到正常的計(jì)價(jià)。3.5 顯示子程序服務(wù)程序由于是分屏顯示數(shù)據(jù),所以就要用到4 個(gè)顯示子程序,分別是:時(shí)分秒顯示子程序(HMS_DIS)、金額單價(jià)顯示子程序(CP_DIS)、路程單價(jià)顯示子程序(DP_DIS)、單價(jià)調(diào)節(jié)子程序(PA_DIS)。3.6 鍵盤服務(wù)程序鍵盤采用查詢的方式,放在主程序中,當(dāng)沒有按鍵按下的時(shí)候,單片機(jī)循環(huán)主程序,一旦有按鍵按下,便轉(zhuǎn)向相應(yīng)的子程序處

28、理,處理結(jié)束再返回。如圖9 主程序流程圖,圖10 定時(shí)中斷服務(wù)程序。4 系統(tǒng)調(diào)試與測試結(jié)果分析根據(jù)系統(tǒng)設(shè)計(jì)方案,本系統(tǒng)的調(diào)試共分為三大部分:硬件調(diào)試,軟件調(diào)試和軟硬件聯(lián)調(diào)。測試包括里程計(jì)價(jià)測試、掉電存儲測試測試。4.1 使用的儀器儀表 數(shù)字萬用表 DT9203單片機(jī)仿真器 WAVE6000燒寫器 GF2100雙蹤穩(wěn)壓穩(wěn)流電源 DH1718E-5數(shù)字示波器 TDS10024.2 系統(tǒng)調(diào)試根據(jù)系統(tǒng)設(shè)計(jì)方案,本系統(tǒng)的調(diào)試共分為三大部分:硬件調(diào)試,軟件調(diào)試和軟硬件聯(lián)調(diào)。由于在系統(tǒng)設(shè)計(jì)中采用模塊設(shè)計(jì)法,所以方便對各電路模塊功能進(jìn)行逐級測試。AT89C51程序代碼ORG 0000H ;初始化段地址 LJM

29、P MAIN ;長跳轉(zhuǎn)到主函數(shù)MAIN處 ORG 000BH ;TT0開始地址 LJMP TT0 ;長跳轉(zhuǎn)到TT0 處 ORG 0030H ;主函數(shù)開始地址,避開0030敏感段MAIN: MOV SP,#40H ;設(shè)堆棧底指針,下一個(gè)數(shù)據(jù)將放在41H單元 MOV 70H,#60 ;價(jià)格單元的起步價(jià) MOV 71H,#00 ;價(jià)格單元的十位和百位 MOV 72H,#00 ;秒單元清零 MOV 74H,#00 ;時(shí)單元清零 MOV 75H,#00 ;75H單元清零備用 CLR 00H CLR 01H ;將00H,01H單元清零 MOV 6BH,#0AH ;將0AH(既十進(jìn)制10)放入6B單元 MO

30、V R1,#76H ;把76H放到R1中KKK: MOV R1,#00H ;將76H單元的內(nèi)容清零 INC R1 DJNZ 6BH,KKK ;76H7FH單元全部清零,備用 LCALL DIS ;調(diào)用價(jià)格顯示子程序 LCALL DIS1 ;調(diào)用時(shí)間顯示子程序 MOV TMOD,#11H ;定時(shí)器/計(jì)數(shù)器工作方式設(shè)置 MOV TH0,#3CH MOV TL0,#0B0H ;這句和上一句設(shè)置延時(shí)50ms MOV 6EH,#20 ;將6EH單元設(shè)置20,達(dá)到1s的延時(shí)G2: LCALL DIS ;長調(diào)用價(jià)格顯示子程序 LCALL DIS1 ;長調(diào)用時(shí)間顯示子程序 JB P1.0,G2 ;開關(guān)沒按下,

31、等待按下,顯示初始狀態(tài),全部為零 LCALL TIME1 ;調(diào)用TIME1延時(shí)子程序 JB P1.0,G2 ; 開關(guān)沒按下,跳到G2,否則轉(zhuǎn)到下一步G1: LCALL DIS LCALL DIS1 JNB P1.0,G1 ;開關(guān)按下,繼續(xù)顯示價(jià)格和時(shí)間,并轉(zhuǎn)到中斷 SETB EA ;開中斷 SETB ET0 ;定時(shí)器0中斷允許,向CPU申請中斷 SETB TR0 ;定時(shí)器0工作允許 SETB 01H ;01H單元置位LLL: LCALL CHAI ;調(diào)用現(xiàn)場保護(hù)子程序 LCALL DIS LCALL JISUAN ;調(diào)用計(jì)算子程序 LCALL DIS1 JB P1.0,G3 ;開關(guān)沒按下,則返

32、回 LCALL TIME1 JB P1.0,G3 CPL 01H ;01H單元此時(shí)為零 JNB 01H,G5;01H ;單元內(nèi)容為0,跳到G5 SETB ET0 ;定時(shí)器0中斷允許,向CPU申請中斷G6: LCALL DIS LCALL DIS1 JNB P1.0,G6 ;開關(guān)按下,顯示所走的時(shí)間及費(fèi)用 LJMP MAIN ;重新等待下一個(gè)工作狀態(tài)G5: CLR ET0G4: LCALL DIS LCALL DIS1 JNB P1.0,G4G3: LJMP LLLTT0: CLR ET0 /*定時(shí)一秒*/ CLR TR0 MOV TH0,#3CH MOV TL0,#0B0H SETB TR0

33、SETB ET0 DJNZ 6EH,JJJ LCALL ADD1 MOV 6EH,#20JJJ: RETIDIS: MOV 6DH,#06H /*價(jià)格顯示子程序*/ MOV R0,#7AH MOV 6CH,#0FEHHHH: MOV DPTR,#0FDFFH /數(shù)據(jù)指針出口地址,低8位給P0口,高8給/位P2口 MOV A,6CH MOVX DPTR,A MOV A,R0 MOV DPTR,#TAB ;查表首地址 MOVC A,A+DPTR ;查表值送A MOV DPTR,#0FEFFH MOVX DPTR,A LCALL TIME1 MOV A,6CH RL A MOV 6CH,A INC

34、R0 DJNZ 6DH,HHH RETDIS1: MOV 6DH,#04H /*時(shí)間顯示子程序*/ MOV R0,#72H MOV 6CH,#0FEHHHH1: MOV DPTR,#0F7FFH ;FF給P0口,F7給P1.0P1.3口 MOV A, 6CH MOVX DPTR,A ;將6CH的內(nèi)容放到0F7FFH中 MOV A,R0 MOV DPTR,#TAB ;查表首地址 MOVC A A+DPTR ;查表值送A MOV DPTR,#0FBFFH MOV R1,6DH CJNE R1,#03H,K1 ORL A,#80HK1: MOVX DPTR,A LCALL TIME1 MOV A,

35、6CH RL A MOV 6CH,A INC R0 DJNZ 6DH,HHH1 RETTIME1: MOV 6AH,#0AH /*延時(shí)子程序*/FFF: MOV 69H,#0AHGGG: DJNZ 69H,GGG DJNZ 6AH,FFF RETJISUAN:JB 00H,K2 /*判斷是否超過3公里及計(jì)算價(jià)格子程序*/ MOV A,78H CLR C SUBB A,#03H MOV 73H,#06H JC K3 SETB 00H LJMP K3K2: MOV R3,71H MOV R4,70H MOV R2,#00H MOV R5,#00HMOV R6,#03HMOV R7,#0E8H LC

36、ALL NDIV42 MOV 75H,R4 MOV A,R6 MOV R3,A MOV A,R7 MOV R4,A MOV R2,#00H MOV R7,#100 LCALL NDIV31 MOV 74H,R4 MOV A,R7 MOV B,#10 DIV AB MOV 73H,A MOV 72H,B K3: RETCHAI: MOV 6FH,#03H /*保護(hù)現(xiàn)場子程序*/ MOV R0,#77H MOV R1,#7AHZZZ: MOV A,R0 ANL A,#0FH ;保存77H單元中的低4位 MOV R1,A MOV A,R0 SWAP A ANL A,0FH INC R1 MOV R1

37、,A INC R0 INC R1 DJNZ 6FH,ZZZ ;循環(huán)三次 RETADD1: MOV A,77H /*加一子程序*/ CJNE A,#59H, L18 LJMP L19L18: ADD A,#01H DA A MOV 77H,A LJMP L24L19: MOV 77H,#00H JNB 00H,S1 CLR C MOV A,70H ADD A,#12 MOV 70H,A MOV A,71H ADDC A,#00H MOV 71H,AS1: MOV A,78H CJNE A,#59H,L20 LJMP L21L20: ADD A,#01HDA A MOV 78H,A LJMP L24L21: MOV 78H,#00H MOV A,79H CJNE A,#23H, L22 LJMP L23L22: ADD A,#01H DA A MOV 79H,AL23: MOV 79H,#00HL24

溫馨提示

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

最新文檔

評論

0/150

提交評論