出租車計(jì)價(jià)器的設(shè)計(jì)說明_第1頁(yè)
出租車計(jì)價(jià)器的設(shè)計(jì)說明_第2頁(yè)
出租車計(jì)價(jià)器的設(shè)計(jì)說明_第3頁(yè)
出租車計(jì)價(jià)器的設(shè)計(jì)說明_第4頁(yè)
出租車計(jì)價(jià)器的設(shè)計(jì)說明_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

摘要單片機(jī)是指將CPU、存儲(chǔ)器和各種I/O接口集成在一個(gè)芯片上的微型計(jì)算機(jī)(MCU)。它主要面向受控應(yīng)用領(lǐng)域,所以也叫嵌入式控制器。這是一項(xiàng)新的工程技術(shù),其內(nèi)涵也隨著單片機(jī)的發(fā)展而發(fā)展。MCS-51系列單片機(jī)屬于結(jié)構(gòu)簡(jiǎn)單,但也是典型的單片機(jī),應(yīng)用相當(dāng)靈活。51系列單片機(jī)產(chǎn)品在國(guó)外發(fā)展迅速,占有重要地位。出租車計(jì)價(jià)器從最初的簡(jiǎn)單計(jì)價(jià),發(fā)展到價(jià)格和路程的獨(dú)立計(jì)量和顯示,并可根據(jù)特殊情況制定相應(yīng)的收費(fèi)標(biāo)準(zhǔn)。單片機(jī)可以實(shí)現(xiàn)出租車計(jì)價(jià)器功能的智能化和多樣化。同時(shí),可以降低儀表的成本。本課程設(shè)計(jì)報(bào)告包括硬件設(shè)計(jì)和軟件設(shè)計(jì),軟件設(shè)計(jì)主要包括程序結(jié)構(gòu)設(shè)計(jì)和程序代碼編寫調(diào)試。該設(shè)計(jì)由主程序和相關(guān)的中斷子程序組成。主程序完成對(duì)整個(gè)模塊的控制,即用掃描健康的功能檢查7279和中斷初始化,是否按下啟動(dòng)鍵、切換鍵、暫停鍵和復(fù)位鍵中的任意一個(gè),或者轉(zhuǎn)到相應(yīng)的功能區(qū)完成執(zhí)行。否則,繼續(xù)監(jiān)控按鍵程序,直到按鍵被按下。中斷程序利用T0計(jì)算從外界進(jìn)來的脈沖數(shù)(模擬為車輛行駛的距離),并根據(jù)這個(gè)距離加價(jià),最終完成所需的出租車計(jì)價(jià)功能。關(guān)鍵詞:單片機(jī)出租車計(jì)價(jià)器中斷目錄第1章設(shè)計(jì)公差和要求11.1基本要求11.2改進(jìn)要求11.3參考原理框圖1。系統(tǒng)組成和工作原理22.1系統(tǒng)的組成2.2工作原理2硬件方案設(shè)計(jì)43.1方案論證和比較4選項(xiàng)14選項(xiàng)243.2單元電路設(shè)計(jì)、參數(shù)計(jì)算和器件選擇5微處理器系統(tǒng)53.2.2鍵盤和顯示器接口53.2.3555多諧振蕩器電路63.3硬件電路設(shè)計(jì)說明7系統(tǒng)軟件設(shè)計(jì)84.1軟件設(shè)計(jì)說明84.27279鍵盤功能設(shè)計(jì)94.3存儲(chǔ)單元和關(guān)鍵字介紹94.3.1存儲(chǔ)單元9簡(jiǎn)介關(guān)鍵詞介紹104.4程序結(jié)構(gòu)設(shè)置104.4.1主程序結(jié)構(gòu)設(shè)計(jì)104.4.2中斷程序結(jié)構(gòu)設(shè)計(jì)124.4.3其他子程序的結(jié)構(gòu)設(shè)計(jì)實(shí)驗(yàn)和測(cè)試結(jié)果145.1實(shí)驗(yàn)調(diào)試14硬件調(diào)試14軟件調(diào)試145.2測(cè)試結(jié)果15結(jié)論16參考文獻(xiàn)17附錄一18附錄二33附錄三34第一章 設(shè)計(jì)要求和要求1.1基本要求(1)里程顯示為:***。**公里。(2)可預(yù)置起步價(jià)和單價(jià):如起步價(jià)3公里6.00元;1.60/公里。1.2提高要求起步價(jià)、起步價(jià)公里、單價(jià)都可以調(diào)整。第二章系統(tǒng)組成和工作原理2.1系統(tǒng)的組成本次設(shè)計(jì)的出租車計(jì)價(jià)器系統(tǒng)由信號(hào)源、三極管和反相器74LS14組成的轉(zhuǎn)換電路、單片機(jī)8031系統(tǒng)和HD7279顯示模塊四部分組成。設(shè)計(jì)框圖如圖2.1所示。信號(hào)源單片微型計(jì)算機(jī)顯示信號(hào)源單片微型計(jì)算機(jī)顯示鍵盤鍵盤圖2.1設(shè)計(jì)結(jié)構(gòu)框圖其中,NE555多諧振蕩器電路輸出矩形脈沖作為信號(hào)源,輸出標(biāo)準(zhǔn)脈沖信號(hào)。8051單片機(jī)模塊是以8051為微處理器的控制系統(tǒng)。主要實(shí)現(xiàn)對(duì)整個(gè)系統(tǒng)的控制和管理,完成數(shù)據(jù)處理。該模塊采用8051,128字節(jié)RAM數(shù)據(jù)存儲(chǔ)器,兩個(gè)16位定時(shí)器/計(jì)數(shù)器,一個(gè)串口,五個(gè)中斷源和兩個(gè)中斷優(yōu)先級(jí),時(shí)鐘頻率為1.2MHz~12MHz。由于其部分沒有程序存儲(chǔ)器,其部分的數(shù)據(jù)存儲(chǔ)器容量不夠,所以需要對(duì)外擴(kuò)展程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器。3.7279可編程數(shù)碼管/鍵盤串行接口芯片是一款具有串行接口的智能顯示驅(qū)動(dòng)芯片,可以同時(shí)驅(qū)動(dòng)8位共陰極數(shù)碼管。該芯片還可以連接功能強(qiáng)大的鍵盤矩陣,多達(dá)64個(gè)按鍵,單個(gè)芯片就可以完成LED顯示和鍵盤接口的所有功能。它是單片機(jī)應(yīng)用系統(tǒng)中常用的外圍接口電路。該機(jī)采用HD7279管理16鍵和8位數(shù)碼管。2.2工作原理出租車定價(jià)是根據(jù)出租車行駛的距離和乘客乘坐的時(shí)間段。出租車行駛的總距離可以用車輪的周長(zhǎng)乘以車輪的轉(zhuǎn)數(shù)得到,即可以計(jì)算出出租車在車輪轉(zhuǎn)幾圈后可以行駛一公里。在本次課程設(shè)計(jì)中,利用555多諧振蕩器電路的輸出脈沖來模擬出租車計(jì)價(jià)器測(cè)量車輪轉(zhuǎn)數(shù)。信號(hào)源輸出電脈沖和標(biāo)準(zhǔn)脈沖信號(hào)。輸出的脈沖信號(hào)連接到8051單片機(jī)系統(tǒng),通過計(jì)算接收到的脈沖數(shù)來計(jì)算當(dāng)前行駛距離。同時(shí)根據(jù)不同的收費(fèi)標(biāo)準(zhǔn),選擇相應(yīng)的起步價(jià)、單價(jià)等收費(fèi)標(biāo)準(zhǔn)進(jìn)行展示。HD7279管理鍵盤和數(shù)字顯示器。通過鍵盤可以啟動(dòng)、暫停、停止計(jì)價(jià)器,切換顯示當(dāng)前里程和需要支付的車費(fèi),還可以顯示單價(jià)、起步價(jià)和起步價(jià)公里數(shù)進(jìn)行金額調(diào)整。硬件方案設(shè)計(jì)3.1方案論證和比較選項(xiàng)1采用數(shù)字電路控制,其原理如圖所示。傳感器裝置用于輸出脈沖信號(hào),該脈沖信號(hào)被放大并整形為移位寄存器的脈沖,以實(shí)現(xiàn)計(jì)價(jià)。但考慮到這種電路過于簡(jiǎn)單,性能不夠穩(wěn)定,不能調(diào)整單價(jià),也不能根據(jù)用戶要求充電,所以電路不夠?qū)嵱?。電路框圖如圖3.1.1所示:金額顯示單價(jià)顯示金額顯示單價(jià)顯示電源和保護(hù)電路里程傳感器移位寄存器電路電源和保護(hù)電路里程傳感器移位寄存器電路圖3.1.1選項(xiàng)2以8051為核心的微處理器系統(tǒng),信號(hào)源輸出矩形脈沖,經(jīng)放大整形后輸出標(biāo)準(zhǔn)脈沖信號(hào)。芯片7279用于處理鍵盤和顯示器。由555定時(shí)器組成的多諧振蕩器電路模擬出租車行駛。原理框圖見圖2.1。該電路設(shè)計(jì)的電表不僅可以實(shí)現(xiàn)基本定價(jià),還可以根據(jù)用戶需求調(diào)整單價(jià)??們r(jià)的計(jì)算公式為:總價(jià)=起步價(jià)+單價(jià)*(總里程-起步價(jià)里程)。AT89C51作為一個(gè)單片機(jī)系統(tǒng),具有很高的靈活性,其強(qiáng)大的控制和處理功能以及可擴(kuò)展的功能為設(shè)計(jì)電路提供了很好的選擇。通過以上兩種方案的比較,第二種方案的活動(dòng)空間更大,不僅可以實(shí)現(xiàn)所有需要的功能而且可以很大程度上擴(kuò)展功能,還可以方便地升級(jí)系統(tǒng),所以我們采用第二種方案。3.2單元電路設(shè)計(jì)、參數(shù)計(jì)算和器件選擇微處理器系統(tǒng)8051單片機(jī)模塊是以8051為微處理器的控制系統(tǒng)。主要實(shí)現(xiàn)對(duì)整個(gè)系統(tǒng)的控制和管理,完成數(shù)據(jù)處理。在該模塊中,單片機(jī)8051、數(shù)據(jù)存儲(chǔ)器6116、程序存儲(chǔ)器27128、地址鎖存器74LS373和74LS138譯碼器構(gòu)成了單片機(jī)的基本系統(tǒng)。在本系統(tǒng)的設(shè)計(jì)中,數(shù)據(jù)處理是通過輸入外部信號(hào)作為T0計(jì)數(shù)來完成的。本次設(shè)計(jì)采用的微處理器系統(tǒng)是以8051為核心的最小開發(fā)系統(tǒng)板,如圖3.2.1所示。圖3.2.1鍵盤和顯示器接口779鍵盤和顯示器接口HD7279A是一款具有串行接口的智能顯示驅(qū)動(dòng)芯片,可以同時(shí)驅(qū)動(dòng)8位共陰極數(shù)碼管。該芯片還可以連接多達(dá)64個(gè)按鍵的鍵盤矩陣,單個(gè)芯片就可以完成LED顯示和鍵盤接口的所有功能。HD7279的主要特性包括:(1)串行接口,可以直接驅(qū)動(dòng)LED,不需要外圍器件。(2)每個(gè)位獨(dú)立控制解碼/非解碼、消隱和閃爍屬性。(3)(循環(huán))左移/(循環(huán))右移指令。(4)采用分段尋址指令,便于控制獨(dú)立的LED。(5)帶去抖動(dòng)電路的64鍵鍵盤控制器。HD7279接口電路如圖3.2.2所示。圖3.2.27279鍵盤和顯示器接口電路555多諧振蕩器電路由555定時(shí)器組成的多諧振蕩器電路如圖3.2.3所示:圖中電容C、電阻R1和R2是振蕩器的定時(shí)元件,決定了輸出矩形波的正負(fù)脈沖寬度。定時(shí)器的觸發(fā)輸入(2腳)和閾值輸入(6腳)與電容相連;集電極開路的輸出端(7腳)接R1和R2的連接點(diǎn),控制電容C的充放電;外部控制輸入(引腳5)通過一個(gè)0.01uF電容接地。圖3.2.3555多諧振蕩器電路其中振蕩周期T=T1+T2=0.7(R1+2R2)C,振蕩頻率f=1/t.正向脈寬T1與振蕩周期T之比稱為矩形波的占空比D=(R1+R2)/(R1+2R2)。如果R2>>R1,那么D≈1/2,即輸出信號(hào)正負(fù)脈寬相等的矩形波(方波)。在具體設(shè)計(jì)方案中,R1和R2使用100K電位器,使輸出方波占空比可調(diào)。3.3硬件電路設(shè)計(jì)說明該系統(tǒng)的硬件電路可分為脈沖信號(hào)模塊、微處理器系統(tǒng)模塊和鍵盤顯示模塊。將介紹以下模塊。1.脈沖信號(hào)模塊采用NE555多諧振蕩器電路,調(diào)整到50%占空比,輸出頻率為100HZ的8051標(biāo)準(zhǔn)方波。使用中斷程序,每100個(gè)脈沖記錄一次,即使出租車已經(jīng)走了一公里,也會(huì)給出租車定價(jià)。2.微處理器系統(tǒng)模塊采用8051單片機(jī)和基本外圍電路實(shí)現(xiàn)出租車的基本功能。里程通過T0中斷計(jì)數(shù),7279的CS、CLK、DATA、KEY分別通過P1.0、P1.1、P1.2、P1.3連接控制鍵盤顯示模塊。3.鍵盤顯示模塊用7279驅(qū)動(dòng)8位共陰極數(shù)碼管。這個(gè)芯片還可以連接到多達(dá)64個(gè)按鍵的鍵盤矩陣上,用一個(gè)芯片就可以完成LED顯示和鍵盤接口的所有功能。人性化操作。第四章系統(tǒng)軟件設(shè)計(jì)4.1軟件設(shè)計(jì)描述該系統(tǒng)的軟件設(shè)計(jì)可分為六個(gè)模塊:主程序模塊、計(jì)時(shí)中斷程序、里程計(jì)數(shù)中斷服務(wù)程序、等待中斷服務(wù)程序、顯示子程序服務(wù)程序和鍵盤服務(wù)程序。將介紹以下模塊。1.在程序模塊中,需要完成各個(gè)接口芯片的初始化,出租車起步價(jià)和單價(jià)的初始化,中斷向量的設(shè)計(jì)來啟動(dòng)和停止中斷,循環(huán)等待等。設(shè)計(jì)相應(yīng)標(biāo)志位并初始化。2.在里程計(jì)數(shù)中斷服務(wù)的程序設(shè)計(jì)中,需要完成當(dāng)前里程和總額的累加,并將結(jié)果存儲(chǔ)在里程和總額寄存器中。并調(diào)用顯示子程序顯示總量或總距離。3.顯示子程序服務(wù)程序被設(shè)計(jì)成編寫六個(gè)顯示子程序來完成其功能。4.在鍵盤服務(wù)程序的設(shè)計(jì)中,鍵盤以查詢的方式放在主程序中。當(dāng)沒有按鍵時(shí),單片機(jī)循環(huán)主程序。一旦一個(gè)鍵被按下,它轉(zhuǎn)向相應(yīng)的子程序,然后返回。5.為了滿足增加起步價(jià)、里程單價(jià)和起始公里的要求,特別設(shè)置了三個(gè)查找地址,分別是里程單價(jià)、起步價(jià)和起始公里周邊值。當(dāng)需要調(diào)整這三個(gè)值時(shí),可以通過查表程序調(diào)用這三個(gè)參數(shù)的周邊值,顯示里程單價(jià)、起步價(jià)、起步公里的調(diào)整后價(jià)格,但不能將調(diào)整后的參數(shù)代入定價(jià)程序進(jìn)行定價(jià)。在該設(shè)計(jì)中,通過讀取8051芯片的T0端口的輸入脈沖數(shù)來確定里程。為了計(jì)算方便,規(guī)定從T0口發(fā)出的一個(gè)脈沖為1m(即車輪的周長(zhǎng))。當(dāng)程序運(yùn)行時(shí),首先通過按鍵掃描程序判斷是否啟動(dòng)里程計(jì)數(shù)。在這里,設(shè)置程序開始運(yùn)行并顯示HELLO??;設(shè)置S0為起始鍵,S1為單價(jià)顯示鍵,S2為起始公里顯示鍵,S3為起始價(jià)顯示鍵,S4為復(fù)位鍵,S5為切換顯示總金額和總距離的鍵。按鍵掃描后,調(diào)用計(jì)數(shù)子程序。T0口第一次接收到累計(jì)的100個(gè)脈沖后,主程序進(jìn)入T0中斷,開始按照單價(jià)加價(jià)。為了切換出租車計(jì)價(jià)器以顯示總量和總距離,在程序中設(shè)置了顯示切換鍵S5。按此鍵顯示總距離,再按一次顯示總量。當(dāng)另一名乘客上車時(shí),司機(jī)可以按下S4鍵(復(fù)位鍵),所有計(jì)數(shù)存儲(chǔ)單元被清除,程序再次運(yùn)行。此外,為了調(diào)整起步價(jià)、起步價(jià)公里和單價(jià),本程序增加了六個(gè)鍵:起步價(jià)調(diào)整鍵:S6和S7;啟動(dòng)調(diào)節(jié)鍵:S11和S10;單價(jià)調(diào)整鍵:S15和S14。另外,增加等待時(shí)間時(shí),特殊情況下切換為等待公里數(shù)時(shí)間轉(zhuǎn)換暫停,增加該功能對(duì)應(yīng)的兩個(gè)按鍵:S12等待和S13暫停。4.27279鍵盤功能設(shè)計(jì)圖4.2起始價(jià)格顯示開始公里顯示單價(jià)顯示啟動(dòng)出租車計(jì)價(jià)器。起始價(jià)格顯示開始公里顯示單價(jià)顯示啟動(dòng)出租車計(jì)價(jià)器。單價(jià)減一起始公里減一重置距離量切換起步價(jià)減一。起拍價(jià)加一單價(jià)加一中止起始公里加1單價(jià)減一起始公里減一重置距離量切換起步價(jià)減一。起拍價(jià)加一單價(jià)加一中止起始公里加1等待等待圖4.24.3存儲(chǔ)單元和關(guān)鍵字介紹存儲(chǔ)單元的介紹請(qǐng)參見表4.3.1。30小時(shí),31小時(shí)起始價(jià)格存儲(chǔ)單位32H,33H起始公里存儲(chǔ)單位34H,35H單價(jià)存儲(chǔ)單位36小時(shí),37小時(shí),38小時(shí)總距離存儲(chǔ)單元39H,3AH,3BH總量存儲(chǔ)單位50小時(shí)、51小時(shí)、52小時(shí)、53小時(shí)、54小時(shí)、55小時(shí)、56小時(shí)、57小時(shí)、58小時(shí)、59小時(shí)顯示緩沖器00H該標(biāo)志切換顯示總量和總距離。表4.3.1存儲(chǔ)單元4.3.2關(guān)鍵詞介紹請(qǐng)參見表4.3.2。主要的主程序按鍵1讀取鍵子程序雕塑薄膜發(fā)送一字節(jié)子程序探測(cè)器接收一字節(jié)子程序負(fù)荷型定額(DutyTypeRating)HD7279顯示子程序土地使用委員會(huì)(LandUseCommission)0定時(shí)器中斷子程序乞討HD7279初始化子程序TAB00'到9'字體表表1"0."敬“9”表2其他函數(shù)用于顯示字體表。轉(zhuǎn)到第一個(gè)標(biāo)簽頁(yè)鍵值表T0851芯片脈沖輸入端口表4.3.2關(guān)鍵詞介紹4.4程序結(jié)構(gòu)設(shè)計(jì)4.4.1主程序結(jié)構(gòu)設(shè)計(jì)當(dāng)程序開始運(yùn)行時(shí),初始化內(nèi)存區(qū)和7279,初始化計(jì)數(shù)器T0,判斷是否有按鍵被按下,如果沒有按鍵則再次掃描鍵盤;如果按了一個(gè)鍵,確定按的是哪個(gè)鍵,進(jìn)行相應(yīng)的操作,如下圖4.4.1所示。調(diào)整重置密鑰?調(diào)整調(diào)整等待時(shí)間普通YY普通普通普通姜營(yíng)機(jī)場(chǎng)普通NNNY普通圖4.4.1主程序流程圖4.4.2中斷程序結(jié)構(gòu)設(shè)計(jì)每到達(dá)100個(gè)脈沖信號(hào),總距離增加1.00,超過起始公里,總量增加1.60。如圖4.4.2所示。圖4.4.2中斷程序框圖4.4.3其他子程序結(jié)構(gòu)設(shè)計(jì)779顯示子程序設(shè)計(jì)如圖4.4.3所示。圖4.4.3顯示了子程序框圖。第五章實(shí)驗(yàn)調(diào)試和測(cè)試結(jié)果5.1實(shí)驗(yàn)調(diào)試根據(jù)系統(tǒng)設(shè)計(jì)方案,本系統(tǒng)的調(diào)試分為三部分:硬件調(diào)試和軟件調(diào)試。硬件調(diào)試:數(shù)字萬用表單片機(jī)模擬器燃燒器雙路穩(wěn)壓穩(wěn)流電源本課程設(shè)計(jì)的硬件電路是555多諧振蕩器電路,如圖3.2.3所示。焊接后,多諧振蕩器電路輸出的脈沖連接到示波器的輸入端,整形電路的輸出端由示波器測(cè)量,輸出信號(hào)為反向放大的脈沖信號(hào)。用示波器觀察555電路的輸出波形,通過調(diào)節(jié)R2電位器產(chǎn)生0~100hz可調(diào)的方波信號(hào)。輸出方波連接到整形電路的輸入端,實(shí)現(xiàn)了占空比可調(diào)的方波信號(hào)的良好輸出。硬件調(diào)試比較順利。5.1.2軟件調(diào)試:在本次設(shè)計(jì)中,程序的調(diào)試并不混亂,而是將每個(gè)子程序單獨(dú)調(diào)試,使得每個(gè)功能都可以在整體調(diào)試之前實(shí)現(xiàn)。在調(diào)試主程序之初,我遇到了一個(gè)小麻煩,就是在讀取按鍵切換塊程序的時(shí)候,因?yàn)榘存I太多,切換的時(shí)候總是出現(xiàn)問題,不是不轉(zhuǎn)就是轉(zhuǎn)錯(cuò)了。后來仔細(xì)檢查每一條指令,一條一條修改,終于調(diào)試成功了按鍵讀取部分。在T0中斷程序中,總距離存儲(chǔ)在單元36H、37H和38H中,總量存儲(chǔ)在單元39H、3AH和3BH中。當(dāng)T0中斷時(shí),總距離的低位38H單位自動(dòng)加1,會(huì)引起37H和36H單位容量的變化,即總距離的單位進(jìn)位、十分位和百位,要與32H和33H中存儲(chǔ)的起始公里數(shù)進(jìn)行比較,看是否超過起始公里數(shù)。如果不是,則存儲(chǔ)在39H、3AH和3BH單元中的總量就是起始價(jià)格。超過起始公里的,按照34H、35H存儲(chǔ)的單價(jià)累計(jì)總額。因此,可以攜帶總量為39H、3AH的細(xì)胞(即總量的上部?jī)?chǔ)存細(xì)胞)。在調(diào)試過程中發(fā)現(xiàn),總額的增加沒有按照單價(jià)累計(jì),導(dǎo)致總額的估值不正確。后來發(fā)現(xiàn)總距離和起始公里不能正確比較,于是增加了程序LUC0,通過修改完成了它的功能。另外新加入的等待時(shí)間功能也不是很流暢。調(diào)試程序時(shí),按下相應(yīng)的功能鍵,程序總是跳轉(zhuǎn)到初始化。一開始以為是標(biāo)志位有問題。后來經(jīng)過多次調(diào)試和查閱相關(guān)資料,才知道中斷有問題。初始化時(shí),應(yīng)先關(guān)閉之前對(duì)應(yīng)的中斷。最后,經(jīng)過調(diào)試,本設(shè)計(jì)基本完成了相關(guān)功能。5.2測(cè)試結(jié)果出租車計(jì)價(jià)器打開,顯示“你好!”,按S0鍵啟動(dòng)儀表,儀表開始計(jì)數(shù)。每100個(gè)脈沖信號(hào)到達(dá)時(shí),總距離增加1.00,并不斷增加??偩嚯x超過起始公里的,總額加1.60;按S5切換顯示總距離和總量;S7和S6鍵為起步價(jià)調(diào)整鍵,S7為起步價(jià)加1.00元,S6為起步價(jià)減1.00元;S11、S10鍵為起始公里調(diào)整鍵,S10為起始公里加1.00,S11為起始公里減1.00;S15和S14鍵是單價(jià)調(diào)整鍵,S15是單價(jià)加0.1,S14是單價(jià)減0.1;S4是重置鍵;鍵S3是起始價(jià)格顯示鍵,鍵S2是起始公里顯示鍵,鍵S1是單價(jià)顯示鍵,鍵S12是起始時(shí)間計(jì)算量,鍵S13是暫停鍵。最小系統(tǒng)板和7279鍵盤設(shè)計(jì)達(dá)到了預(yù)期的效果。結(jié)論與目前的出租車計(jì)價(jià)器相比,這種出租車計(jì)價(jià)器具有很多功能,包括單價(jià)輸出、單價(jià)調(diào)整、距離輸出、顯示當(dāng)前系統(tǒng)時(shí)間等。此外,本發(fā)明還具有性能可靠、電路簡(jiǎn)單、成本低廉、實(shí)用性強(qiáng)等特點(diǎn)。通過優(yōu)化的程序,它具有很高的智能水平。和通用計(jì)算系統(tǒng)一樣,單片機(jī)應(yīng)用系統(tǒng)由硬件和軟件組成。硬件主要指由單片機(jī)擴(kuò)展的內(nèi)存、輸入輸出設(shè)備等硬件部件組成的機(jī)器。,而軟件是各種工作程序的總稱。只有硬件和軟件緊密配合和協(xié)調(diào),才能形成高性能的單片機(jī)應(yīng)用系統(tǒng)。強(qiáng)大的硬件和完善的軟件編程是顯示其優(yōu)越性的必要條件。軟件是由總體設(shè)計(jì)規(guī)定要完成的任務(wù),所以首先要明確程序要完成的任務(wù),確定輸入/輸出,輸入的數(shù)據(jù)怎么處理,錯(cuò)誤怎么處理等等。結(jié)合硬件結(jié)構(gòu),進(jìn)一步明確了軟件程序所承擔(dān)的各項(xiàng)任務(wù)的細(xì)節(jié),確實(shí)給出了具體的實(shí)現(xiàn)方法。出租車計(jì)價(jià)器是一門專業(yè)課,其設(shè)計(jì)是一個(gè)簡(jiǎn)單的單片機(jī)應(yīng)用系統(tǒng),通常采用順序設(shè)計(jì)方法。該系統(tǒng)軟件由一個(gè)主程序、若干子程序和若干中斷服務(wù)程序組成。本設(shè)計(jì)主要涉及顯示子程序、按鍵讀取子程序、與7279串口相關(guān)的接收/發(fā)送單字節(jié)子程序、T0中斷服務(wù)子程序和主程序。中斷程序?qū)崟r(shí)處理模擬行程的輸入脈沖,使系統(tǒng)并行完成各個(gè)單元的數(shù)據(jù)操作。中斷處理程序必須包括四個(gè)部分:現(xiàn)場(chǎng)保護(hù)、中斷服務(wù)、現(xiàn)場(chǎng)恢復(fù)和中斷返回。服務(wù)程序是中斷處理程序的主體,由中斷要完成的功能決定,而主程序是一個(gè)按順序執(zhí)行的無限循環(huán)程序,不斷查詢各種軟件標(biāo)志,以完成日常事務(wù)的處理,子程序由主程序調(diào)用。主程序、子程序和中斷程序的功能在本課程中得到了清晰的體現(xiàn)。通過這次課程設(shè)計(jì),我學(xué)到了很多書本上學(xué)不到的知識(shí),也應(yīng)該深刻體會(huì)到單片機(jī)技術(shù)的廣泛應(yīng)用,不僅讓我對(duì)單片機(jī)和匯編語(yǔ)言的相關(guān)應(yīng)用有了進(jìn)一步的了解,也提高了我的動(dòng)手能力,實(shí)踐和理論結(jié)合的很好。為我們以后的畢業(yè)設(shè)計(jì)打下了一定的基礎(chǔ)。參考數(shù)據(jù)[1]海勝。微機(jī)控制技術(shù)[M]。清華大學(xué),1999年6月[2]尤德,智英,涂世良。單片機(jī)原理應(yīng)用與實(shí)驗(yàn)(第三版)[M]。:復(fù)旦大學(xué),2000。[3]韓方。MCS-51系列單片機(jī)原理及應(yīng)用[M]。航空航天大學(xué),1996年4月[4]黃著。電子設(shè)計(jì)競(jìng)賽試題分析[M]。東南大學(xué),2003年5月曾若元。MCS-51定時(shí)器/計(jì)數(shù)器在出租車計(jì)價(jià)器中的應(yīng)用[J].高級(jí)測(cè)量和實(shí)驗(yàn)室管理,2005。附錄一程序清單ORG0000H跳轉(zhuǎn)到MAIN主程序ORG000BHLJMPLUCORG001BHLJMPYY主要:MOVSP,#67H一個(gè)叫化子;調(diào)諧7279初始化程序MOVTMOD,#16H計(jì)數(shù)工作時(shí),允許中斷MOVTH0,#0F6H從6小時(shí)數(shù)到FFHMOVTL0,#0F6HMOVTH1,#0F6H從6小時(shí)數(shù)到FFHMOVTL1,#0F6HMOVTCON,#00HMOVIE,#8AH允許T0溢出MOV30H,#06H初始起步價(jià)6.00元,省去了30H31H臺(tái)的起步價(jià)。MOV31H,#00HMOV32H,#03H初始起始公里數(shù)為3.00公里,起始公里數(shù)存儲(chǔ)在32H33H中。MOV33H,#00HMOV34H,#01H初始化單價(jià)1.60元,34H35H存款單價(jià)。MOV35H,#60HMOV36H,#00H初始化距離,36H37H38H總距離MOV37H,#00HMOV38小時(shí),#00小時(shí)MOV39H,#00H總初始化金額,總存款金額39H3AH3BH。MOV3AH,#06HMOV3BH,#00HMOV52H,#16H初始化,50H到59H是顯示緩沖區(qū)。MOV53H,#17H打開并顯示HELLO!,表示工作正常。MOV54H,#18H其中,特殊字符表是查找程序中的TAB2。MOV55H,#18HMOV56H,#00HMOV57H,#1bHMOV58H#0bHMOV59H,#1BHLP:acallDIR;調(diào)用顯示程序顯示緩沖區(qū)的數(shù)據(jù)。LP0:ACALL鍵;調(diào)用密鑰讀取子例程,密鑰值存儲(chǔ)在。CJNEA,#0FFH,LP1確定是否按下了某個(gè)鍵。SJMPLP0LP1:阿卡爾CJH;調(diào)用鍵號(hào)子程序CJNEA,#00H,LP2SJMPL0;轉(zhuǎn)到L0獲取鍵值00H。LP2:CJNEA,#01H,LP3SJMP·L1;前往L1,鍵值為01H。LP3:CJNEA,#02H,LP4LJMPL2;去L2,鍵值為02H。LP4:CJNEA,#03H,LP5lJMPL3轉(zhuǎn)到鍵值為03H的L3。LP5:CJNEA,#04H,LP6SJMPL4;去L4上04H。LP6:CJNEA,#05H,LP7SJMPL5;轉(zhuǎn)到鍵值為05H的L5。LP7:CJNEA,#06H,LP8lJMPL6;轉(zhuǎn)到鍵值為08H的L8。LP8:CJNEA,#08H,LP9SJMPL8;去L2,鍵值為02H。LP9:CJNEA,#09H,LP10SJMPL9;轉(zhuǎn)到L9獲取鍵值09。LP10:CJNEA,#0CH,LP11SJMPL12;轉(zhuǎn)到L12,鍵值為0CH。LP11:CJNEA,#0DH,LP12lJMPL13轉(zhuǎn)到13獲取鍵值0DH。LP12:CJNEA,#07H,LP15lJMPL14轉(zhuǎn)到L14,鍵值為07H。LP15:CJNEA,#0BH,LP16lJMPL15LP16:CJNEA,#0AH,LP17LJMPL16LP17:CJNEA,#0EH,LP13LJMPL17LP13:SJMPLP0;轉(zhuǎn)動(dòng)LP0重新讀取鑰匙。l0:acallQBJ;打QBJ,起步價(jià)就顯示出來了。SJMPLP0l4:INC30H;起始價(jià)格調(diào)整,加1MOV1,30H悉尼R1,第10名,TPTP:JCTPPMOV30H,#00HTPP:acallQBJ;調(diào)整后顯示起拍價(jià)。SJMPLP0l5:12月30日;起始價(jià)格調(diào)整,減1MOV1,30HCJNER1,#1,TP11TP11:JNCTPP1MOV30H,9號(hào)TPP1:acallQBJ;再次顯示起拍價(jià)。AJMPLP0L1:acallQBGL;調(diào)用QBGL,會(huì)顯示起始公里數(shù)。AJMPLP0l8:INC32H;調(diào)整起始公里數(shù),加1MOVR2,32HCJNER2,第10名,LLPP1JNCLLPP2LLPP2:MOV32H,#00Hllpp1:acallQBGL;調(diào)整后顯示lJMPLP0L9:12月32日;起始公里數(shù)的調(diào)整,減1MOVR3,32HCJNER3,#0,LLPP3JCLLPP4LLPP4:MOV32H,#09HLLPP3:ACALLQBGLLJMPLP0轉(zhuǎn)動(dòng)LP0,重新讀取鑰匙。L2:一個(gè)叫賈丹的;給賈丹打電話顯示單價(jià)。lJMPLP0L12:MOVA,35H單價(jià)調(diào)整加一個(gè),#10H每次加0.10元。阿達(dá);BCD碼調(diào)整MOV35H,AMOVA,34H34小時(shí)存儲(chǔ)單價(jià)的高位ADDCA,#00H調(diào)整進(jìn)位加1阿達(dá);BCD碼調(diào)整MOV34HA一個(gè)叫賈丹的;調(diào)整后,再次顯示單價(jià)。LJMPLP0L13:MOVA,35H單價(jià)調(diào)整,減0.10元;清除符號(hào)位SUBBA,#10HJNCLLLL0MOVA,#090HSETB角12月34h日LLLL0:添加一個(gè),#0阿達(dá)MOV35H,AMOVA,34HSUBBA,#00H添加一個(gè),#0阿達(dá)MOV34HA一個(gè)叫賈丹的;調(diào)整后,顯示單價(jià)。LJMPLP0轉(zhuǎn)動(dòng)LP0,重新讀取鑰匙。L3:SETBTR0;TR0被設(shè)置為“1”并開始計(jì)數(shù)。LJMPLP0l14:AJMPMAIN;復(fù)位,程序再次運(yùn)行。l15:CPLTR0;暫停,程序停止計(jì)數(shù)和計(jì)時(shí)LJMPLP0l16:CLR30H;啟動(dòng)T0計(jì)數(shù)器并打開T0中斷。MOVIE,82H號(hào)SETBTR0CLRTR1LJMPLP0l17:SETB30H;啟動(dòng)T1定時(shí)器并暫停T0計(jì)數(shù)器。MOVIE#88HSETBTR1CLRTR0一個(gè)叫石堅(jiān)的;顯示等待時(shí)間呼叫目錄LJMPLP0L6:CPL00H;顯示總量和總距離。JNB00H,LC_1;其中00H是標(biāo)志位,用于存儲(chǔ)。XS的一個(gè)電話;顯示總距離呼叫目錄LJMPLP0LC_1:打電話給XSJE;顯示總金額呼叫目錄LJMPLP0STFS:MOVR7,#08H發(fā)送一字節(jié)子程序B1:RLCMOVP1.2,CSETBP1.1MOVR6,#02HB2:DJNZR6,B2;循環(huán)兩次,效果大概是8US延遲。CLRP1.1MOVR6,#02HB3:DJNZR6,B3DJNZR7,B1浸水使柔軟STJS:MOVR7,#08H接收一字節(jié)子程序A1:SETBP1.1SETBP1.2MOVR6,#02HA2:DJNZR6,A2;延遲大約10微秒MOVC,P1.2鍵盤值讀數(shù)帶進(jìn)位循環(huán)左移CLRP1.1MOVR6,#01HA3:DJNZR6,A3DJNZR7,A1浸水使柔軟重點(diǎn):SETBp1.3;P1港作為輸入MOVC,P1.3JCTP2;1至LP201H,TP1LCALLKEY1鍵盤指令SETB01H浸水使柔軟TP2:CLR01H;該位被清除,并且沒有按鍵。TP1:MOVA,#0FFH浸水使柔軟key1:CLRp1.0;無效的CSMOVR6,#0CH耽擱LLP1:DJNZR6,LLP1MOVA,#15H一個(gè)叫STFS的;發(fā)送一字節(jié)子程序MOVR6,#06H耽擱R6DJNZ有限責(zé)任公司一個(gè)叫STJS的;接收一字節(jié)子程序SETBP1.0浸水使柔軟導(dǎo)演:MOVR5,#08H程序,循環(huán)8次(8個(gè)謝妮管)MOVR0,#52H52H是顯示緩沖器的第一個(gè)地址。MOVR1,#97H顯示代碼D1:CLRp1.0;CS有效,P1.0連接到CSMOVR6,#0CHD2:DJNZR6,D2;延遲,大于25USR1MOV一個(gè)叫STFS的;輸出指令代碼MOV·R6,#06HD3:DJNZR6,D3;耽擱MOVA,R0添加一個(gè),#0DHMOVCA,A+PC;查表指令一個(gè)叫STFS的;發(fā)送顯示數(shù)據(jù),即查表后的顯示代碼。MOVR6,#02HD4:DJNZR6,D4;耽擱SETBp1.0;顯示數(shù)碼管。INCR0十二月R1DJNZR5耽擱浸水使柔軟表0:DB7EH,30H,6DH,79H,33H,5BH,5FH,70H,7FH,7BH表1:DB0FEH,0B0H,0EDH,0F9H,0B3H,0DBH,0DFH,0F0H,0FFH,0FBH表2:DB67H,0EH,37H,4FH,0EH,3DH,09H,00H車:乙,甲;CHE子程序,互換A;用于提取存儲(chǔ)在一個(gè)字節(jié)中的兩個(gè)BCD碼。ANLA,#0FHMOV42H,AMOVA,BANLA,#0FHMOV41H,A浸水使柔軟求:CLRP1.0P1.0復(fù)位,7279初始化子程序MOVR6,#0CH耽擱R6,G0MOVA,#0A4H一個(gè)叫STFS的;發(fā)送一字節(jié)子程序MOVR6,#02H耽擱G1:DJNZR6,G1SETBp1.0;CS有效浸水使柔軟QBJ:MOVA,30H起始價(jià)格顯示起始價(jià)格存儲(chǔ)在單元30h和31h中。ACALLCHE調(diào)用CHE后,它以BCD碼形式存儲(chǔ)MOVA,41H添加一個(gè),#0AHMOV43H,AMOVA,31H一個(gè)電話車MOV52H,#1BH發(fā)送到顯示緩沖區(qū),52H-59HMOV53H,#1BH最初顯示為“6.00元”MOV54H#1BHMOV55H,#1BHMOV56H,#1BHMOV57H,43HMOV58小時(shí),42小時(shí)MOV59H,41HACALLDIR呼叫顯示子程序浸水使柔軟QBGL:MOVA,32H起始公里數(shù)顯示,起始公里數(shù)存儲(chǔ)在一個(gè)電話車MOVA,41H添加一個(gè),#0AHMOV43H,AMOVA,33H一個(gè)電話車MOV52H,#1BH發(fā)送到顯示緩沖區(qū)MOV53H,#1BH初始顯示“3.00公里”MOV54H#1BHMOV55H,#1BHMOV56H,#1BHMOV57H,43HMOV58小時(shí),42小時(shí)MOV59H,41HACALLDIR呼叫顯示子程序浸水使柔軟賈丹:MOVA,34H單價(jià)顯示并存儲(chǔ)在單元34h和35h中。一個(gè)電話車MOVA,41H添加一個(gè),#0AHMOV43H,AMOVA,35H一個(gè)電話車MOV52H,#1BH發(fā)送到顯示緩沖區(qū)MOV53H,#1BH初始顯示“1.60元”MOV54H#1BHMOV55H,#1BHMOV56H,#1BHMOV57H,43HMOV58小時(shí),42小時(shí)MOV59H,41HACALLDIR呼叫顯示子程序浸水使柔軟LC_XS:MOVA,36H總距離顯示總距離存儲(chǔ)在36h、37h和38h中。一個(gè)電話車MOV46小時(shí),42小時(shí)MOV45小時(shí),41小時(shí)MOVA,37H一個(gè)電話車MOV44H,42HMOVA,41H添加一個(gè),#0AHMOV43H,AMOVA,38小時(shí)一個(gè)電話車MOV52H,#15H發(fā)送到顯示緩沖區(qū)MOV53H,#1AH初始顯示“L=0000.00km”MOV54H,46HMOV55小時(shí),45小時(shí)MOV56H,44HMOV57H,43HMOV58小時(shí),42小時(shí)MOV59H,41HACALLDIR呼叫顯示子程序浸水使柔軟XSJE:MOVA,39H總量以39h、3ah和3bh為單位顯示和存儲(chǔ)。一個(gè)電話車MOV46小時(shí),42小時(shí)MOV45H,41HMOVA,3AH一個(gè)電話車MOV44H,42HMOVA,41H添加一個(gè),#0AHMOV43H,AMOVA,3BH一個(gè)電話車MOV52H,#14H發(fā)送到顯示緩沖區(qū)MOV53H,#1AH初始顯示“P=0006.00元”MOV54H,46HMOV55小時(shí),45小時(shí)MOV56H,44HMOV57H,43HMOV58小時(shí),42小時(shí)MOV59H,41HACALLDIR呼叫顯示子程序浸水使柔軟石堅(jiān):MOVIE,88HCLRTR0SETBTR1MOVA,3EH總量以39h、3ah和3bh為單位顯示和存儲(chǔ)。一個(gè)電話車MOV46小時(shí),42小時(shí)MOV45H,41HMOVA,3DH一個(gè)電話車MOV44H,42HMOVA,41HMOV43H,AMOV,3CH一個(gè)電話車MOV52H,#05H發(fā)送到顯示緩沖區(qū)MOV53H,#1AH初始顯示“P=0006.00元”MOV54小時(shí),46小時(shí)MOV55小時(shí),45小時(shí)MOV56H,44HMOV57H,43HMOV58小時(shí),42小時(shí)MOV59H,41HACALLDIR呼叫顯示子程序浸水

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論