出租車計(jì)費(fèi)系統(tǒng)_第1頁
出租車計(jì)費(fèi)系統(tǒng)_第2頁
出租車計(jì)費(fèi)系統(tǒng)_第3頁
出租車計(jì)費(fèi)系統(tǒng)_第4頁
出租車計(jì)費(fèi)系統(tǒng)_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

PAGE26課程設(shè)計(jì)報(bào)告項(xiàng)目名稱:出租車計(jì)價(jià)器設(shè)計(jì)與制作課程名稱:單片機(jī)技術(shù)二級(jí)學(xué)院:電氣與電子工程學(xué)院系:電氣工程系班級(jí):14電氣4班學(xué)號(hào):2014010143409學(xué)生姓名:黃凌周小組成員:劉智超黃凌周指導(dǎo)教師:鐘立華成績:報(bào)告完成日期2016年12月20日目錄TOC\o"1-3"\h\u26365摘要 130311課程設(shè)計(jì)任務(wù)書 2201801.1課程設(shè)計(jì)任務(wù) 211321.2課程設(shè)計(jì)方案 3282662硬件電路設(shè)計(jì) 4155732.1振蕩電路 4261932.2復(fù)位電路設(shè)計(jì) 4158252.3鍵盤接口電路 5176382.4顯示電路 6109042.4.11602LCD的基本參數(shù)及引腳功能 6239672.4.2顯示模塊采用1602液晶顯示接口電路 7228792.5單片機(jī)各引腳功能說明 792363軟件設(shè)計(jì) 10217073.1單片機(jī)資源使用 10286893.2單片機(jī)軟件模塊設(shè)計(jì) 10138733.2.1中斷子函數(shù) 10315973.2.2判鍵子函數(shù) 1116813.2.3顯示子程序 11121673.3總程序流程框圖 121201總結(jié) 1318310參考文獻(xiàn) 1424767附錄1元件件清單 1513786附錄2原理圖 1617000附錄3程序清單 17

摘要本設(shè)計(jì)的是一個(gè)基于單片機(jī)STC89C52的出租車自動(dòng)計(jì)費(fèi)設(shè)計(jì),附有復(fù)位電路,時(shí)鐘電路,鍵盤電路等。復(fù)位電路是單片機(jī)的初始化操作,除了正常的初始化外,為擺脫困境,通過復(fù)位電路可以重新開始。時(shí)鐘電路采用12MHz的晶振,作為系統(tǒng)的時(shí)鐘源,具有較高的準(zhǔn)確性。在上電時(shí)字符型液晶1602顯示最初的起步價(jià),里程收費(fèi),等待時(shí)間收費(fèi)三種收費(fèi),通過按鍵可以調(diào)整起步價(jià),里程收費(fèi),等待時(shí)間收費(fèi)。通過按鍵模擬出租車的運(yùn)行,暫停,停止。在1602液晶上可以顯示運(yùn)行的時(shí)間,運(yùn)行時(shí)暫停的時(shí)間,通過計(jì)算可以得出總共的費(fèi)用和總的路程。在這里主要是以STC89C52單片機(jī)為核心控制器,P1口接1602液晶顯示模塊。關(guān)鍵字STC89C52;1602液晶;出租車計(jì)費(fèi)器

1課程設(shè)計(jì)任務(wù)書1.1課程設(shè)計(jì)任務(wù)基于單片機(jī)出租車模擬計(jì)價(jià)器,采用at24c02存儲(chǔ)芯片+LCD1602液晶顯示等設(shè)計(jì)而成。用24c02來存儲(chǔ)單價(jià),通過按鍵來模擬增加里程,模擬出租車向前開。通過液晶顯示器顯示當(dāng)前的行駛狀態(tài)、行駛公里、行駛時(shí)間時(shí)間(時(shí)、分、秒)、費(fèi)用、單價(jià)、等信息??梢栽O(shè)置每公里單價(jià),以及夜間單價(jià)和白天單價(jià)的不同模式,設(shè)置后掉電無需重新設(shè)置,設(shè)置有等待/繼續(xù)計(jì)時(shí)模式。計(jì)費(fèi)分行走的里程*單價(jià)+等待的時(shí)間*價(jià)格。1.2課程設(shè)計(jì)方案方案一:采用數(shù)字電子技術(shù),利用555定時(shí)芯片構(gòu)成多諧振蕩器,或采用外圍的晶振電路作為時(shí)鐘脈沖信號(hào),采用計(jì)數(shù)芯片對脈沖盡心脈沖的計(jì)數(shù)和分頻,最后通過譯碼電路對數(shù)據(jù)進(jìn)行譯碼,將譯碼所得的數(shù)據(jù)送給數(shù)碼管顯示,一下是該方案的流程框圖,方案一如圖1.1所示:時(shí)時(shí)鐘脈沖等待信號(hào)公里脈沖計(jì)費(fèi)脈沖計(jì)時(shí)計(jì)費(fèi)譯碼數(shù)碼管顯示圖1.1方案一方案二:采用EDA技術(shù),根據(jù)層次化設(shè)計(jì)理論,該設(shè)計(jì)問題自頂向下可分為分頻模塊,控制模塊計(jì)量模塊、譯碼和動(dòng)態(tài)掃描顯示模塊,其系統(tǒng)框圖如圖1.2所示:時(shí)鐘信號(hào)時(shí)鐘信號(hào)等待信號(hào)公里脈沖計(jì)費(fèi)/復(fù)位分頻器控制器計(jì)費(fèi)計(jì)時(shí)計(jì)程譯碼顯示圖1.2方案二方案三:采用MCU技術(shù),通過單片機(jī)作為主控器,利用1602字符液晶作為顯示電路,采用外部晶振作為時(shí)鐘脈沖,通過按鍵可以方便調(diào)節(jié),以下是方案三的系統(tǒng)流程圖,本方案主要是必須對于數(shù)字電路比較熟悉,成本又高。方案圖如圖1.3所示:STC89C52STC89C521602液晶LED燈電源電路按鍵電路復(fù)位電路圖1.3方案三方案總結(jié):通過各個(gè)方案的比較本次采用方案三,不但控制簡單,而且成本低廉,設(shè)計(jì)電路簡單。2硬件電路設(shè)計(jì)2.1振蕩電路單片機(jī)內(nèi)部有一個(gè)高增益、反相放大器,其輸入端為芯片引腳XTAL1,其輸出端為引腳XTAL2。通過這兩個(gè)引腳在芯片外并接石英晶體振蕩器和兩只電容(電容和一般取20pF)。這樣就構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。振蕩電路脈沖經(jīng)過二分頻后作為系統(tǒng)的時(shí)鐘信號(hào),再在二分頻的基礎(chǔ)上三分頻產(chǎn)生ALE信號(hào),此時(shí)得到的信號(hào)時(shí)機(jī)器周期信號(hào)。振蕩電路如圖2.1所示:圖2.1振蕩電路2.2復(fù)位電路設(shè)計(jì)復(fù)位操作有兩種基本形式:一種是上電復(fù)位,另一種是按鍵復(fù)位。按鍵復(fù)位具有上電復(fù)位功能外,若要復(fù)位,只要按圖中的RESET鍵,電源VCC經(jīng)電阻R1、R2分壓,在RESET端產(chǎn)生一個(gè)復(fù)位高電平。上電復(fù)位電路要求接通電源后,通過外部電容充電來實(shí)現(xiàn)單片機(jī)自動(dòng)復(fù)位操作。上電瞬間RESET引腳獲得高電平,隨著電容的充電,RERST引腳的高電平將逐漸下降。RERST引腳的高電平只要能保持足夠的時(shí)間(2個(gè)機(jī)器周期),單片機(jī)就可以進(jìn)行復(fù)位操作。按鍵復(fù)位電路圖如圖2.2所示。圖2.2復(fù)位電路2.3鍵盤接口電路獨(dú)立式鍵盤:獨(dú)立式鍵盤中,每個(gè)按鍵占用一根I/O口線,每個(gè)按鍵電路相對獨(dú)立。I/O口通過按鍵與地相連,I/O口有上拉電阻,無鍵按下時(shí),引腳端為高電平,有鍵按下時(shí),引腳電平被拉低。I/O口內(nèi)部有上拉電阻時(shí),外部可不接上拉電阻。鍵盤接口電路如圖2.3所示:圖2.3鍵盤接口電路2.4顯示電路2.4.11602LCD的基本參數(shù)及引腳功能1602LCD分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應(yīng)用中并無差別,兩者尺寸差別如圖10所示。圖10LM016L結(jié)構(gòu)圖LCD1602主要技術(shù)參數(shù):

容量:16×2個(gè)字符芯片工作電壓:4.5—5.5V工作電流:2.0mA(5.0V)模塊最佳工作電壓:5.0V字符尺寸:2.95×4.35(W×H)mm引腳功能說明:1602LCD采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表1所示:表1引腳接口說明表編號(hào)符號(hào)引腳說明編號(hào)符號(hào)引腳說明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號(hào)14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時(shí)對比度最弱,接地時(shí)對比度最高,對比度過高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K的電位器調(diào)整對比度。第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。第5腳:R/W為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和R/W共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平R/W為低電平時(shí)可以寫入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。第15腳:背光源正極。第16腳:背光源負(fù)極。2.4.2顯示模塊采用1602液晶顯示接口電路圖2.4顯示電路2.5單片機(jī)各引腳功能說明下面對STC89C52各引腳的功能進(jìn)行較為詳細(xì)的介紹:1)電源引腳Vcc和VssVcc(40腳):電源端為+5VVss(20腳):接地端。2)時(shí)鐘電路引腳XTAL1和XTAL2XTAL2(18腳):接外部晶體和微調(diào)電容的一端。在單片機(jī)內(nèi)部它是振蕩電路反向放大器的輸出端,振蕩電路的頻率就是晶體固有頻率。若需采用外部時(shí)針電路時(shí),該引腳輸入外時(shí)鐘脈沖。要檢查89C52的振蕩電路是否正常工作,可用示波器查看XTAL2端是否有脈沖信號(hào)輸出。XTAL1(19腳):接外部晶體和微調(diào)電容的另一端。在片內(nèi),它是振蕩電路反向放大器的輸入端。在采用外部時(shí)鐘時(shí),該引腳必須接地。3)控制信號(hào)腳RSTALEPSEN和EA。RST(9腳):RST是復(fù)位信號(hào)輸入端,高電平有效。在此輸入端保持兩個(gè)機(jī)器周期(24個(gè)時(shí)鐘振蕩周期)的高電平時(shí),就可以完成復(fù)位操作。ALE/PROG(30引腳):地址鎖存允許信號(hào)端。當(dāng)STC89C52上電正常工作后,ALE引腳不斷向外輸出正脈沖信號(hào)。此頻率為振蕩器頻率fosc的1/6,當(dāng)CPU訪問片外存儲(chǔ)器時(shí),ALE輸出信號(hào)作為鎖存低8位地址的控制信號(hào)。在CPU訪問片外數(shù)據(jù)存儲(chǔ)時(shí),每取值一次(一個(gè)機(jī)器周期)會(huì)丟失一個(gè)脈沖。平時(shí)不訪問片外存儲(chǔ)時(shí),ALE端也以1/6的振蕩頻率固定輸出正脈沖,因而ALE信號(hào)可以用作對外輸出時(shí)鐘或定時(shí)信號(hào)。如果你想看一下STC89C52芯片的好壞,可用示波器查看ALE端是否有脈沖信號(hào)輸出,如有脈沖信號(hào)輸出,則STC89C52基本上是好的。ALE的負(fù)載驅(qū)動(dòng)能力為8個(gè)LS型TTL(低功耗高速TTL)。PSEN(29腳);程序存儲(chǔ)允許輸出信號(hào)引腳,在訪問片外程序存儲(chǔ)器時(shí),此端定時(shí)輸出負(fù)脈沖作為讀片外存儲(chǔ)器的選通信號(hào)。此引腳接ERROM的OE端。PSEN端有效,即允許讀出ERROM/ROM中的指令碼。CPU在從外部ERROM/ROM取指令期間,每個(gè)周期PSEN兩次有效。不過,在訪問片外RAM時(shí),要少產(chǎn)生兩次PSEN負(fù)脈沖信號(hào)。要檢查一個(gè)STC89C52小系統(tǒng)上電后CPU能否正常到ERROM/ROM中讀取指令碼,也可用于示波器看PSEN端有無脈沖輸出。如有,說明基本上工作正常。EA/VPP(31腳):外部程序存儲(chǔ)器地址允許輸入端/固化編程電壓輸入端。當(dāng)EA引腳接高電平時(shí),CPU只訪問片內(nèi)ERROM/ROM并執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令。但在PC(程序計(jì)數(shù)器)的值超過OFFFH(對8751/8051為4k)時(shí),將自動(dòng)轉(zhuǎn)向執(zhí)行片外存儲(chǔ)器的程序。當(dāng)出入信號(hào)EA引腳接低電平(接地)時(shí),CPU只訪問外部ERROM/ROM并執(zhí)行外部程序存儲(chǔ)器中的指令,而不管是否有片內(nèi)程序存儲(chǔ)器。對于無芯片內(nèi)的ROM的8031或8032,須外擴(kuò)ERROM,此時(shí)必須將EA引腳接地。如果使用有片內(nèi)ROM的STC89C52,外擴(kuò)ERROM也是可以的,但也要使EA接地。4)I/O(輸入/輸出端口,P0,P1,P2,P3)P0口:P0口是一個(gè)漏極開路的8位準(zhǔn)雙向I/O端口。P1口:8位準(zhǔn)雙向I/O端口。P2口:即可以做地址總線輸出地址高8位,也可以做普通I/O用,(此時(shí)為準(zhǔn)雙向口)。P3口:雙功能口,即可以做普通I/O口用(此時(shí)為準(zhǔn)向口,也可以按每位定義實(shí)現(xiàn)第二功能操作)。見表1。表1P3口的第二功能表引腳第二功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2INT0(外部中斷0)P3.3INT1(外部中斷1)P3.4T0(定時(shí)器0外部中斷)P3.5T1(定時(shí)器1外部中斷)P3.6WR(外部存儲(chǔ)器寫選通)P3.7RD(外部存儲(chǔ)器讀寫通)3軟件設(shè)計(jì)3.1單片機(jī)資源使用在本次設(shè)計(jì)中像電路鍵盤用到了P2口,其中P2.0到P2.5口作為鍵盤的輸入,顯示電路用到了P1和P3口,P1口為液晶的數(shù)據(jù)口。3.2單片機(jī)軟件模塊設(shè)計(jì)3.2.1中斷子函數(shù)對于中斷程序,只要定時(shí)器計(jì)數(shù)滿就會(huì)產(chǎn)生中斷50ms中斷一次,共計(jì)20次,秒鐘加1,秒鐘計(jì)滿再分鐘加,當(dāng)分鐘加到99時(shí)全部清零。以下是中斷子函數(shù)的流程圖如圖3.1所示:圖3.1中斷子程序流程圖3.2.2判鍵子函數(shù)對于獨(dú)立式鍵盤判鍵,首先看有鍵按下不,如果有鍵按下則延時(shí)一會(huì)兒,在判斷是否真的有鍵按下,如果確實(shí)有鍵按下,在判鍵釋放,最后執(zhí)行鍵功能程序。判鍵子函數(shù)的流程框圖如圖3.2所示:圖3.2判鍵子程序流程圖3.2.3顯示子程序1602液晶是字符型液晶,它的內(nèi)部自帶字符庫,它可以寫兩行的字符,同時(shí)每行可以寫40個(gè)字符,在寫顯示程序的時(shí)候,我們先寫命令,再設(shè)定字符顯示,最后寫數(shù)據(jù),在每寫一次命令或數(shù)據(jù)都需要判斷液晶是否忙。液晶顯示程序流程圖如圖3.3所示:3.3顯示子程序流程圖3.3總程序流程框圖整體程序的流程框圖如圖3.4所示:圖3.4整體程序的流程框圖總結(jié)出租車計(jì)費(fèi)器系統(tǒng)的設(shè)計(jì)已經(jīng)全部完成,能按預(yù)期的效果進(jìn)行模擬汽車啟動(dòng),停止,暫停等功能,并能夠通過LCD顯示車費(fèi)數(shù)目。本款出租車計(jì)價(jià)器包括單價(jià)輸出、單價(jià)調(diào)整、顯示當(dāng)前的系統(tǒng)時(shí)間等功能。另外,多功能出租車計(jì)價(jià)器還具有性能可靠、電路簡單、成本低、實(shí)用性強(qiáng)等特點(diǎn),加上經(jīng)過優(yōu)化的程序,使其有很高的智能化水平。兩個(gè)星期來,經(jīng)過自己努力,基本上完成了設(shè)計(jì)要求的內(nèi)容,在系統(tǒng)可行性分析、原理圖設(shè)計(jì)等方面都作了許多實(shí)際工作,取得了一些成績,同時(shí)也遇到了一些問題,存在一些不足。經(jīng)過這兩個(gè)星期的學(xué)習(xí)和工作,我覺得自己不論是在理論知識(shí)方面還是在動(dòng)手能力方面都有了不小的進(jìn)步,自己從中受益匪淺。這次設(shè)計(jì)很好的把以前學(xué)到的理論知識(shí)應(yīng)用于實(shí)踐,使我認(rèn)識(shí)到理論知識(shí)與實(shí)踐之間有一定的差距,只有通過不斷的努力學(xué)習(xí)和實(shí)踐才能很好的把理論知識(shí)應(yīng)用到實(shí)踐當(dāng)中,也只有通過不斷的實(shí)踐才能對理論知識(shí)的理解。通過這次設(shè)計(jì)不僅學(xué)會(huì)了如何去查找相關(guān)資料,更重要的是通過查找資料和翻閱書籍學(xué)到了不少知識(shí),擴(kuò)大了知識(shí)面,提高了知識(shí)水平。經(jīng)過單元設(shè)計(jì)和系統(tǒng)設(shè)計(jì)鞏固了以前所學(xué)的專業(yè)知識(shí),自己真正認(rèn)識(shí)到理論聯(lián)系實(shí)際的重要性,為以后的學(xué)習(xí)和工作提供了很多有價(jià)值的經(jīng)驗(yàn)。通過這次設(shè)計(jì)不僅增強(qiáng)了自己的動(dòng)腦能力和動(dòng)手能力,也提高了我思考問題、分析問題、解決問題的能力,更重要的是學(xué)會(huì)用工程化的思想來解決問題。這在以前的學(xué)習(xí)過程中是不曾學(xué)到的。在短短的三個(gè)月時(shí)間內(nèi)完成設(shè)計(jì)內(nèi)容,在很大程度上得益于老師的幫助。這次設(shè)計(jì)是我認(rèn)真認(rèn)識(shí)到完整、嚴(yán)謹(jǐn)、科學(xué)分析問題、解決問題的思想是多么的重要,只有擁有了科學(xué)的態(tài)度才能設(shè)計(jì)出有用的產(chǎn)品。另外通過本次設(shè)計(jì),是我認(rèn)識(shí)到自己理論知識(shí)的應(yīng)用能力有很大的欠缺,需要在以后的學(xué)習(xí)中進(jìn)一步提高。參考文獻(xiàn)[1]李廣弟,朱月秀,冷祖祁.單片機(jī)基礎(chǔ)[M].第3版.北京航空航天大學(xué)出版社,2007年1月[2]李華.MCS-51系列單片機(jī)實(shí)用接口技術(shù)[M].北京航空航天大學(xué)出版社,1996[3]馬忠梅,張凱,馬巖,單片機(jī)的C語言應(yīng)用程序設(shè)計(jì),[M],北京:北京航空航天大學(xué)出版社,2003.11;[4]胡輝,單片機(jī)原理及應(yīng)用設(shè)計(jì)—21世紀(jì)高等院校規(guī)劃教材[M],水利水電出版社,2005.7;[5]劉守義,單片機(jī)應(yīng)用技術(shù)[M],西安:西安電子科技大學(xué)出版社,1996.8;附錄1元件件清單表5.1元器件清單名稱規(guī)格數(shù)量備注電阻2001個(gè)1K1個(gè)10K5個(gè)1002個(gè)電容20pF2個(gè)10μF2個(gè)極性電容發(fā)光二極管3個(gè)按鍵7個(gè)直流電機(jī)1個(gè)晶振12MHz1個(gè)芯片STC89C521塊1602液晶1塊內(nèi)帶字符庫附錄2原理圖附錄3程序清單#include<reg52.h> //調(diào)用單片機(jī)頭文件#defineucharunsignedchar//無符號(hào)字符型宏定義 變量范圍0~255#defineuintunsignedint //無符號(hào)整型宏定義 變量范圍0~65535ucharmiao,fen=0,shi;ucharflag_bai_hei;//白天的晚上的標(biāo)志位ucharvalue;uintbai_3l_price=60;//白天3千米內(nèi)的單價(jià)6元uintbai_3w_price=18;//白天3千米外的單價(jià)/千米 1.8元uintbai_wait_price=5;//白天等待時(shí)的單價(jià)/分鐘 0.5元uintwan_3l_price=70;//晚上3千米內(nèi)的單價(jià)/千米 7元uintwan_3w_price=22;//晚上3千米外的單價(jià)/千米 2.2元uintwan_wait_price=10;//晚上等待時(shí)的單價(jià)/分鐘 1元uintdistance=0;//行使的距離uintzong_jia;//總的價(jià)bitflag_300ms=0;bitflag_1s;bitflag_time_en=0;#include"lcd1602.h"/***********************1ms延時(shí)函數(shù)*****************************/voiddelay_1ms(uintq){ uinti,j; for(i=0;i<q;i++) for(j=0;j<120;j++);}#include"iic.h"voidwrite_iic_data(){ write_24c02(0,flag_bai_hei); write_24c02(1,bai_3l_price%256);//保存數(shù)據(jù) write_24c02(2,bai_3l_price/256);//保存數(shù)據(jù) write_24c02(3,bai_3w_price%256);//保存數(shù)據(jù) write_24c02(4,bai_3w_price/256);//保存數(shù)據(jù) write_24c02(5,bai_wait_price%256);//保存數(shù)據(jù) write_24c02(6,bai_wait_price/256);//保存數(shù)據(jù) write_24c02(7,wan_3l_price%256);//保存數(shù)據(jù) write_24c02(8,wan_3l_price/256);//保存數(shù)據(jù) write_24c02(9,wan_3w_price%256);//保存數(shù)據(jù) write_24c02(10,wan_3w_price/256);//保存數(shù)據(jù) write_24c02(11,wan_wait_price%256);//保存數(shù)據(jù) write_24c02(12,wan_wait_price/256);//保存數(shù)據(jù)}/****************自動(dòng)初始化保存的數(shù)據(jù)*******************/ voidzidong_chushifa_iic(){ value=read_24c02(200); value=read_24c02(200); if(value!=0x91) //新的單片機(jī)初始單片機(jī)內(nèi)問EEPOM { value=0x91; write_iic_data(); write_24c02(200,value);//保存數(shù)據(jù) } delay_1ms(300); }/****************讀出來保存的數(shù)據(jù)**********************/ voidread_iic_data(){ flag_bai_hei=read_24c02(0); bai_3l_price=read_24c02(2); bai_3l_price=bai_3l_price*256+read_24c02(1); bai_3w_price=read_24c02(4); bai_3w_price=bai_3w_price*256+read_24c02(3); bai_wait_price=read_24c02(6); bai_wait_price=bai_wait_price*256+read_24c02(5); wan_3l_price=read_24c02(8); wan_3l_price=wan_3l_price*256+read_24c02(7); wan_3w_price=read_24c02(10); wan_3w_price=wan_3w_price*256+read_24c02(9); wan_wait_price=read_24c02(12); wan_wait_price=wan_wait_price*256+read_24c02(11);}/****************獨(dú)立按鍵處理函數(shù)************************/ #definekey_ioP2ucharkey_can;voidkey(){ staticucharkey_new=0,key_old=0,key_value=0; key_io|=0x3f; if(key_new==0) //按鍵松開 { if((key_io&0x3f)==0x3f) key_value++; else key_value=0; if(key_value>=5) //按鍵松開松手檢測 { key_value=0; key_new=1; //按鍵松開后進(jìn)入等待按鍵狀態(tài) } } else { if((key_io&0x3f)!=0x3f) //按鍵按下 key_value++; else key_value=0; if(key_value>=5) //按鍵按下消抖 { key_value=0; key_new=0; //按鍵松開后進(jìn)入等待松開按鍵狀態(tài) } } key_can=20; if((key_new==0)&&(key_old==1)) { switch(key_io&0x3f) { case0x3e:key_can=1;break; //得到按鍵值 case0x3d:key_can=2;break; //得到按鍵值 case0x3b:key_can=3;break; //得到按鍵值 case0x37:key_can=4;break; //得到按鍵值 case0x1f:key_can=5;break; //得到按鍵值 case0x2f:key_can=6;break; //得到按鍵值 }// write_sfm2(2,0,key_can);//按鍵按下顯示按鍵值 } key_old=key_new; }#include"menu.h"/*********************對應(yīng)菜單內(nèi)的處理函數(shù)******************/voidmenu_dis(){ if(menu_1==0) { if(key_can==6) { distance++; write_sfm4(1,0,distance); } if(key_can==5) //清零從新計(jì)價(jià) { flag_time_en=0; shi=0; fen=0; miao=0; zong_jia=0; distance=0; } if(key_can==2) { flag_time_en=~flag_time_en; } if(flag_300ms==1) { flag_300ms=0; if(distance<=30)//3公里內(nèi)的價(jià)格 { if(flag_bai_hei==0) { if(fen<=3) zong_jia=bai_3l_price; else zong_jia=bai_3l_price+(shi*60+fen-3)*bai_wait_price; } else { if(fen<=3) zong_jia=wan_3l_price; else zong_jia=wan_3l_price+(shi*60+fen-3)*bai_wait_price; } }else //3公里外的價(jià)格 { if(flag_bai_hei==0) { if(fen<=3) zong_jia=bai_3l_price+bai_3w_price*(distance-30)/10; else zong_jia=bai_3l_price+bai_3w_price*(distance-30)/10+(shi*60+fen-3)*bai_wait_price; } else { if(fen<=3) zong_jia=wan_3l_pr

溫馨提示

  • 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)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論