

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 本科生畢業(yè)設(shè)計(jì)</b></p><p> 基于單片機(jī)的多功能出租車計(jì)價(jià)器設(shè)計(jì)</p><p> Design of Digital Frequency </p><p> Meter Based on SCM</p><p> 學(xué)生姓名陳展智</p><p> 所在專
2、業(yè)電氣工程及其自動(dòng)化</p><p> 所在班級(jí)12級(jí)電氣工程及其自動(dòng)化1班</p><p> 申請(qǐng)學(xué)位工學(xué)學(xué)士</p><p> 指導(dǎo)教師黃小容職稱</p><p> 答辯時(shí)間2016年 05 月 28 日</p><p><b> 學(xué)位論文原創(chuàng)性聲明</b></p><
3、;p> 本人鄭重聲明:所呈交的學(xué)位論文(畢業(yè)設(shè)計(jì)),是本人在導(dǎo)師的指導(dǎo)下,獨(dú)立進(jìn)行研究工作所取得的成果。所有數(shù)據(jù)、圖片資料均真實(shí)可靠。除文中已經(jīng)注明引用的內(nèi)容外,本論文不含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫過的作品或成果。對(duì)本文的研究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式標(biāo)明。本畢業(yè)論文的知識(shí)產(chǎn)權(quán)歸屬于培養(yǎng)單位。</p><p> 本聲明的法律結(jié)果由本人承擔(dān)。</p><p&g
4、t; 論文作者簽名: 日期: 年 月 日</p><p><b> 目 錄</b></p><p><b> 摘 要II</b></p><p> AbstractIII</p><p> 1 多功能出租車計(jì)價(jià)器的設(shè)計(jì)內(nèi)容1</p>
5、<p> 1.1多功能出租車計(jì)價(jià)器設(shè)計(jì)目的1</p><p> 1.2系統(tǒng)主要功能1</p><p> 1.3方案論證與比較1</p><p> 2 出租車計(jì)價(jià)系統(tǒng)的硬件設(shè)計(jì)3</p><p> 2.1晶振電路部分3</p><p> 2.2按鍵復(fù)位電路3</p>&l
6、t;p> 2.3蜂鳴器電路4</p><p> 2.4獨(dú)立式鍵盤接口電路5</p><p> 2.5 1602LCD液晶顯示電路5</p><p> 2.5.1 1602LCD的基本參數(shù)及引腳功能5</p><p> 2.5.2 1602液晶顯示接口電路7</p><p> 2.6路程測(cè)量設(shè)
7、計(jì)部分7</p><p> 2.7單片機(jī)各引腳功能說明9</p><p> 3 出租車計(jì)價(jià)系統(tǒng)的軟件設(shè)計(jì)12</p><p> 3.1中斷子函數(shù)13</p><p> 3.2判鍵子函數(shù)15</p><p> 3.3顯示子程序16</p><p> 3.4總程序流程框圖1
8、6</p><p><b> 4 系統(tǒng)調(diào)試17</b></p><p> 4.1 單片機(jī)仿真軟件在線調(diào)試—PROTEUS17</p><p> 4.2出租車計(jì)價(jià)器硬件調(diào)試18</p><p> 5 設(shè)計(jì)體會(huì)與展望21</p><p><b> 鳴 謝22</b
9、></p><p><b> 參考文獻(xiàn)23</b></p><p><b> 附 錄24</b></p><p><b> 源程序26</b></p><p><b> 摘 要</b></p><p> 隨
10、著時(shí)間推移,出租車行業(yè)的發(fā)展勢(shì)頭已十分突出,出租車計(jì)價(jià)器的功能從剛開始的只顯示路程,配合司機(jī)自己定價(jià),計(jì)算后四舍五入,到現(xiàn)在不僅能夠自主計(jì)費(fèi),還能實(shí)現(xiàn)一些人性化的附加功能?,F(xiàn)在各大中城市出租車行業(yè)都已普及自動(dòng)計(jì)價(jià)器,所以計(jì)價(jià)器技術(shù)的發(fā)展、計(jì)價(jià)器的普及也是非常迅速的。</p><p> 本設(shè)計(jì)的是一個(gè)基于單片機(jī)STC89C52的出租車自動(dòng)計(jì)費(fèi)設(shè)計(jì),附有復(fù)位電路,時(shí)鐘電路,鍵盤電路等。復(fù)位電路是單片機(jī)的初始化操作,
11、除了正常的初始化外,為擺脫困境,通過復(fù)位電路可以重新開始。時(shí)鐘電路采用12MHz的晶振,作為系統(tǒng)的時(shí)鐘源,具有較高的準(zhǔn)確性。</p><p> 在上電時(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)用和總的路程。</p&g
12、t;<p> 關(guān)鍵字: STC89C52;1602液晶;出租車計(jì)費(fèi)器;里程收費(fèi) </p><p><b> Abstract</b></p><p> Over time, the development momentum of the taxi industry has been very prominent, taxi meter functi
13、on from the beginning of the show only walk, with drivers themselves pricing, calculated after rounding, and now not only self-billing, but also to achieve some humane additional features. Major cities in the taxi indust
14、ry now have universal automatic meter, the meter so the development of technology, the popularity meter is very rapid. </p><p> This design is a taxi billing design based on single chip AT89S51, a reset cir
15、cuit, clock circuit, keyboard circuit. The reset circuit is a single chip initialization operation, in addition to the normal initialization, to shake off the dilemma, the reset circuit can start again. The clock circuit
16、 using a 12MHz crystal, as the system clock source, with higher accuracy.</p><p> In power in character type liquid crystal display 1602 starting price, the initial mileage, waiting time charge three fee, b
17、uttons can be adjusted by the starting price, mileage, waiting time charge. Through the simulation of the taxi operation button, pause, stop. In the 1602 LCD can display the running time, run time pause time, can be obta
18、ined by the computation of the total cost and the total distance.</p><p> Key words: single chip microcomputer At89c51 devices,1602 liquid crystal display (LCD),The taxi fare register,the initial mileage<
19、;/p><p> 基于單片機(jī)的多功能出租車計(jì)價(jià)器設(shè)計(jì)</p><p> 電氣工程及其自動(dòng)化,2012103120108 陳展智</p><p><b> 指導(dǎo)老師:黃小容</b></p><p> 1 多功能出租車計(jì)價(jià)器的設(shè)計(jì)內(nèi)容</p><p> 1.1多功能出租車計(jì)價(jià)器設(shè)計(jì)目的<
20、/p><p> 多功能出租車計(jì)價(jià)器設(shè)計(jì)的主要目的有兩點(diǎn):</p><p> 1.對(duì)客戶計(jì)算路程費(fèi)用;2.對(duì)出租車司機(jī)計(jì)算稅費(fèi)。</p><p> 在我們看來,出租車計(jì)價(jià)器只是完成了計(jì)算乘車費(fèi)用這一功能,可是實(shí)際上并不是這么簡(jiǎn)單,除了完成對(duì)乘車費(fèi)用的計(jì)算與顯示外,它還有五大功能,分別如下:功能之一是其具有自檢功能,在剛剛開機(jī)時(shí)所有可顯示的字符及狀態(tài)指示燈均顯示3s以
21、上以證明其自身處于“健康”狀態(tài);功能之二是其具有數(shù)據(jù)存儲(chǔ)功能,可存儲(chǔ)至少100次的營(yíng)業(yè)數(shù)據(jù);功能之三是其具有失電保護(hù)功能,無供電情況下也可對(duì)數(shù)據(jù)起到保護(hù)作用;功能之四是其具有打印功能,用于打印乘車票據(jù);功能之五是其可通過對(duì)“空車”車牌的翻動(dòng)來開始或終止計(jì)費(fèi)。</p><p><b> 1.2系統(tǒng)主要功能</b></p><p> 本出租車自動(dòng)計(jì)費(fèi),上電后顯示最初的
22、起步價(jià),里程計(jì)費(fèi)單價(jià),等待時(shí)間計(jì)費(fèi)單價(jià),通過按鍵可以調(diào)節(jié)起步價(jià),里程計(jì)費(fèi)單價(jià),等待時(shí)間計(jì)費(fèi)單價(jià)。同時(shí)具有運(yùn)行,暫停,停止等狀態(tài),可以顯示運(yùn)行的時(shí)間,同時(shí)可以顯示暫停的時(shí)間,具有累加功能,暫停和運(yùn)行時(shí)間在暫停和運(yùn)行前一次的狀態(tài)上計(jì)時(shí)。出租車停止后能夠顯示行駛的總費(fèi)用。</p><p> 1.3方案論證與比較</p><p> 方案一:采用數(shù)字電子技術(shù),利用555定時(shí)芯片構(gòu)成多諧振蕩器,或
23、采用外圍的晶振電路作為時(shí)鐘脈沖信號(hào),采用計(jì)數(shù)芯片對(duì)脈沖盡心脈沖的計(jì)數(shù)和分頻,最后通過譯碼電路對(duì)數(shù)據(jù)進(jìn)行譯碼,將譯碼所得的數(shù)據(jù)送給數(shù)碼管顯示,一下是該方案的流程框圖,方案一如圖1-1所示:</p><p><b> 圖1-1方案一</b></p><p> 方案二:采用EDA技術(shù),根據(jù)層次化設(shè)計(jì)理論,該設(shè)計(jì)問題自頂向下可分為分頻模塊,控制模塊 計(jì)量模塊、譯碼和動(dòng)態(tài)掃
24、描顯示模塊,其系統(tǒng)框圖如圖1-2所示:</p><p><b> 圖1-2方案二</b></p><p><b> 圖1-2方案二</b></p><p> 方案三:采用MCU技術(shù),通過單片機(jī)作為主控器,利用1602字符液晶作為顯示電路,采用外部晶振作為時(shí)鐘脈沖,通過按鍵可以方便調(diào)節(jié),以下是方案三的系統(tǒng)流程圖,本方案
25、成本不高。方案圖如圖1-3所示:</p><p><b> 圖1-3方案三</b></p><p> 方案總結(jié):通過各個(gè)方案的比較,本次采用方案三,不但控制簡(jiǎn)單,而且成本低廉,設(shè)計(jì)電路簡(jiǎn)單。</p><p> 2 出租車計(jì)價(jià)系統(tǒng)的硬件設(shè)計(jì)</p><p><b> 2.1晶振電路部分</b>
26、</p><p> 本設(shè)計(jì)中使用的振蕩電路,由12MHZ晶體振蕩器和兩個(gè)約20PF的電容組成,在XTAL1和XTAL2兩端跨接晶體,電容的大小不會(huì)影響振蕩頻率的高低。在整個(gè)系統(tǒng)中為系統(tǒng)各個(gè)部分提供基準(zhǔn)頻率,以防因其工作頻率不穩(wěn)定而造成相關(guān)設(shè)備的工作頻率不穩(wěn)定,晶振可以在電路中產(chǎn)生振蕩電流,發(fā)出時(shí)鐘信號(hào)。晶振電路如圖2-1所示:</p><p><b> 圖2-1 晶振電路&l
27、t;/b></p><p><b> 2.2按鍵復(fù)位電路</b></p><p> 單片機(jī)的復(fù)位是由外部的復(fù)位電路實(shí)現(xiàn)的, 復(fù)位電路通常采用上電自動(dòng)復(fù)位和按鈕復(fù)位兩種方式。上電自動(dòng)復(fù)位是通過外部復(fù)位電路的電容充電來實(shí)現(xiàn)的。除了上電復(fù)位外還需要按鍵手動(dòng)復(fù)位(圖2-2)。按鍵手動(dòng)復(fù)位有電平方式和脈沖方式兩種。其中電平復(fù)位是通過RST端經(jīng)電阻與電源VCC接通而實(shí)現(xiàn)
28、的。單片機(jī)的復(fù)位速度比外圍I/O接口電路快為能夠保證系統(tǒng)可靠的復(fù)位,在初始化程序中應(yīng)安排一定的復(fù)位延遲時(shí)間。</p><p> 按鍵復(fù)位電路圖如圖2-2所示。</p><p> 圖2-2 按鍵復(fù)位電路</p><p><b> 2.3蜂鳴器電路</b></p><p> 本次設(shè)計(jì)采用蜂鳴器。蜂鳴器俗稱喇叭,是一種
29、一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計(jì)算機(jī)、打印機(jī)、復(fù)印機(jī)、報(bào)警器、電子玩具、汽車電子設(shè)備、電話機(jī)、定時(shí)器等電子產(chǎn)品中作發(fā)聲器件。</p><p> 是廣泛運(yùn)用于各種電子產(chǎn)品的一種元器件,它用于提示、報(bào)警、音樂等許多運(yùn)用場(chǎng)合。其結(jié)構(gòu)圖如圖2-3所示:</p><p> 圖2-3蜂鳴器結(jié)構(gòu)圖</p><p> 蜂鳴器與家用電氣上的喇叭在用法上也有
30、相似的地方,通常工作電流比較大,電路上的TTL點(diǎn)評(píng)基本上驅(qū)動(dòng)不了蜂鳴器,需要增加一個(gè)電流放大的電路才可以,即此一個(gè)管腳很難驅(qū)動(dòng)蜂鳴器發(fā)出聲音,所以增加了一個(gè)三極管來增加通過蜂鳴器的電流。</p><p> 三極管主要是做驅(qū)動(dòng)用的。因?yàn)閱纹瑱C(jī)的IO口驅(qū)動(dòng)能力不夠讓蜂鳴器發(fā)出聲音,所以我們通過三極管放大驅(qū)動(dòng)電流,從而可以讓蜂鳴器發(fā)出聲音,你要是輸出高電平,三極管導(dǎo)通,集電極電流通過蜂鳴器讓蜂鳴器發(fā)出聲音,當(dāng)輸出低電
31、平時(shí),三極管截止,沒有電流流過蜂鳴器,所以就不會(huì)發(fā)出聲音。 </p><p> 2.4獨(dú)立式鍵盤接口電路</p><p> 獨(dú)立式鍵盤:獨(dú)立式鍵盤中,每個(gè)按鍵占用一根I/O口線,每個(gè)按鍵電路相對(duì)獨(dú)立。I/O口通過按鍵與地相連,I/O口有上拉電阻,無鍵按下時(shí),引腳端為高電平,有鍵按下時(shí),引腳電平被拉低。I/O口內(nèi)部有上拉電阻時(shí),外部可不接上拉電阻。鍵盤接口電路如圖2-3所示:</p
32、><p> 圖2-4 鍵盤接口電路</p><p> 2.5 1602LCD液晶顯示電路</p><p> 2.5.1 1602LCD的基本參數(shù)及引腳功能</p><p> 1602LCD分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應(yīng)用中并無差別,兩者尺寸差別如圖2-5.1所示。</
33、p><p> 圖2-5 LM016L結(jié)構(gòu)圖</p><p> LCD1602主要技術(shù)參數(shù): </p><p> 容量:16×2個(gè)字符</p><p> 芯片工作電壓:4.5—5.5V</p><p> 工作電流:2.0mA(5.0V)</p><p> 模塊最佳工作電
34、壓:5.0V</p><p> 字符尺寸:2.95×4.35(W×H)mm</p><p><b> 引腳功能說明:</b></p><p> 1602LCD采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表1所示:</p><p><b> 表1引腳接口說明表&l
35、t;/b></p><p> 第1腳:VSS為地電源。</p><p> 第2腳:VDD接5V正電源。</p><p> 第3腳:VL為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高,對(duì)比度過高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K的電位器調(diào)整對(duì)比度。</p><p> 第4腳:RS為寄存器選擇,高電平時(shí)選擇
36、數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。</p><p> 第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ù)。</p><p> 第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。</p><
37、p> 第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。</p><p> 第15腳:背光源正極。</p><p> 第16腳:背光源負(fù)極。 </p><p> 2.5.2 1602液晶顯示接口電路</p><p><b> 圖2-6顯示電路 </b></p><p> 2.6路程測(cè)量設(shè)
38、計(jì)部分</p><p> 出租車中需要一個(gè)能準(zhǔn)確的獲得車輪轉(zhuǎn)動(dòng)即路量信號(hào)的裝置,以得到標(biāo)準(zhǔn)的脈沖信號(hào)送入單片機(jī)的定時(shí)/ 計(jì)數(shù)器T1 即P3. 5 引腳,利用單片機(jī)的T1 的計(jì)數(shù)功能完成100 次的計(jì)數(shù)后產(chǎn)生一中斷來完成路程的測(cè)量。(設(shè)車輪周長(zhǎng)為1 m ,則霍爾傳感器每產(chǎn)生100 個(gè)脈沖便表示車已行程0. 1 km ,為了演示方便本設(shè)計(jì)中采用按鍵了模擬增加里程。每按一個(gè)按鍵增加0.5公里的里程。如果按兩次就是1公
39、里,以此類推不斷的增加來模擬車的不斷前進(jìn)。</p><p> 圖2-7 路程測(cè)量系統(tǒng)圖</p><p> 2.7單片機(jī)各引腳功能說明</p><p> 下面對(duì)AT89C51各引腳的功能進(jìn)行較為詳細(xì)的介紹:</p><p> 1)電源引腳Vcc和Vss</p><p> Vcc(40腳):電源端為+5V
40、 Vss(20腳):接地端。 </p><p> 2)時(shí)鐘電路引腳XTAL1和XTAL2</p><p> XTAL2(18腳):接外部晶體和微調(diào)電容的一端。在單片機(jī)內(nèi)部它是振蕩電路反向放大器的輸出端,振蕩電路的頻率就是晶體固有頻率。若需采用外部時(shí)針電路時(shí),該引腳輸入外時(shí)鐘脈沖。要檢查89C51的振蕩電路是否正常工作,可用示波器查看XTAL
41、2端是否有脈沖信號(hào)輸出。</p><p> XTAL1(19腳):接外部晶體和微調(diào)電容的另一端。在片內(nèi),它是振蕩電路反向放大器的輸入端。在采用外部時(shí)鐘時(shí),該引腳必須接地。 </p><p> 3)控制信號(hào)腳 RST ALE PSEN 和EA。</p><p> RST(9腳):RST是復(fù)位信號(hào)輸入端,高電平有效。在此輸入端保持兩個(gè)機(jī)器周期(24個(gè)時(shí)鐘振蕩周
42、期)的高電平時(shí),就可以完成復(fù)位操作。</p><p> ALE/PROG(30引腳):地址鎖存允許信號(hào)端。當(dāng)AT89C51上電正常工作后,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的振蕩頻率固定輸出正脈沖,
43、因而ALE信號(hào)可以用作對(duì)外輸出時(shí)鐘或定時(shí)信號(hào)。如果你想看一下AT89C51芯片的好壞,可用示波器查看ALE端是否有脈沖信號(hào)輸出,如有脈沖信號(hào)輸出,則AT89C51基本上是好的。ALE的負(fù)載驅(qū)動(dòng)能力為8個(gè)LS型TTL(低功耗高速TTL)。</p><p> PSEN(29腳);程序存儲(chǔ)允許輸出信號(hào)引腳,在訪問片外程序存儲(chǔ)器時(shí),此端定時(shí)輸出負(fù)脈沖作為讀片外存儲(chǔ)器的選通信號(hào)。此引腳接ERROM的OE端。PSEN端有效
44、,即允許讀出ERROM/ROM中的指令碼。CPU在從外部ERROM/ROM取指令期間,每個(gè)周期PSEN兩次有效。不過,在訪問片外RAM時(shí),要少產(chǎn)生兩次PSEN負(fù)脈沖信號(hào)。要檢查一個(gè)AT89C51小系統(tǒng)上電后CPU能否正常到ERROM/ROM中讀取指令碼,也可用于示波器看PSEN端有無脈沖輸出。如有,說明基本上工作正常。</p><p> EA/VPP(31腳):外部程序存儲(chǔ)器地址允許輸入端/固化編程電壓輸入端。
45、當(dāng)EA引腳接高電平時(shí),CPU只訪問片內(nèi)ERROM/ROM并執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令。但在PC(程序計(jì)數(shù)器)的值超過OFFFH(對(duì)8751/8051為4k)時(shí),將自動(dòng)轉(zhuǎn)向執(zhí)行片外存儲(chǔ)器的程序。當(dāng)出入信號(hào)EA引腳接低電平(接地)時(shí),CPU只訪問外部ERROM/ROM并執(zhí)行外部程序存儲(chǔ)器中的指令,而不管是否有片內(nèi)程序存儲(chǔ)器。對(duì)于無芯片內(nèi)的ROM的8031或8032,須外擴(kuò)ERROM,此時(shí)必須將EA引腳接地。如果使用有片內(nèi)ROM的STC89C
46、52,外擴(kuò)ERROM也是可以的,但也要使EA接地。</p><p> 4)I/O(輸入/輸出端口,P0,P1,P2,P3)</p><p> P0口:P0口是一個(gè)漏極開路的8位準(zhǔn)雙向I/O端口。</p><p> P1口:8位準(zhǔn)雙向I/O端口。</p><p> P2口:即可以做地址總線輸出地址高8位,也可以做普通I/O用,(此時(shí)為準(zhǔn)
47、雙向口)。</p><p> P3口:雙功能口,即可以做普通I/O口用(此時(shí)為準(zhǔn)向口,也可以按每位定義實(shí)現(xiàn)第二功能操作)。見表2-1。</p><p> 表2-1 P3口的第二功能表</p><p> 控制器接口說明(HD44780及兼容芯片)</p><p><b> 1、 基本操作時(shí)序</b></p&
48、gt;<p> a 讀狀態(tài):輸入:Rs=L, Rw=H, E=H 輸出:D0—D7=狀態(tài)字</p><p> b 寫指令:輸入:Rs=L, Rw=L, D0—D7=指令碼 輸出:無</p><p><b> E=高脈沖</b></p><p> C 讀數(shù)據(jù):輸入:Rs=H, Rw=L, E=H
49、 輸出:D0—D7=數(shù)據(jù)</p><p> d 寫數(shù)據(jù):輸入:Rs=H, Rw=L, D0—D7=數(shù)據(jù) 輸出:無</p><p><b> E=高脈沖</b></p><p> 狀態(tài)字說明如表2-2所示:</p><p> 表2-2狀態(tài)字說明(a)</p><p&
50、gt; 表2-3 狀態(tài)字說明(b)</p><p> 注:對(duì)控制器進(jìn)行讀寫操作之前,都必須進(jìn)行讀寫檢測(cè),確保STA7為0</p><p><b> RAM地址映射圖</b></p><p> 控制器內(nèi)部帶有80*8位的RAM緩沖區(qū),對(duì)應(yīng)關(guān)系如下圖2-5所示:</p><p> 表2-4 RAM地址映射圖LCD1
51、6字*2行</p><p> 顯示模式設(shè)置如表2-5所示:</p><p> 表2-5 顯示模式設(shè)置</p><p> 顯示開關(guān)及光標(biāo)設(shè)置如表2-6所示:</p><p> 表2-6 顯示開關(guān)及光標(biāo)設(shè)置</p><p><b> 數(shù)據(jù)控制</b></p><p>
52、 控制器內(nèi)部沒有一個(gè)數(shù)據(jù)地址指針,用戶可通過它們來訪問內(nèi)部的全部80字節(jié)RAM。</p><p> 3 出租車計(jì)價(jià)系統(tǒng)的軟件設(shè)計(jì)</p><p> 在設(shè)計(jì)中采用單片機(jī)的P1口控制鍵盤在本次設(shè)計(jì)中像電路鍵盤,其中P1.0到P1.4口作為鍵盤的輸入,直流電機(jī)電路的控制線用了P2口線,P3.0、P3.1、P3.2分別為led信號(hào)控制腳。顯示電路用到了P0和P2口,P0口為液晶的數(shù)據(jù)口。&l
53、t;/p><p><b> 3.1中斷子函數(shù)</b></p><p> 對(duì)于中斷程序,只要定時(shí)器計(jì)數(shù)滿就會(huì)產(chǎn)生中斷50ms中斷一次,共計(jì)20次,秒鐘加1,秒鐘計(jì)滿再分鐘加,當(dāng)分鐘加到99時(shí)全部清零。以下是中斷子函數(shù)的流程圖如圖3-1所示:</p><p> 圖3-1 中斷子程序流程圖</p><p><b>
54、 中斷子程序如下:</b></p><p> void time0_int() interrupt 1</p><p> static uchar value;</p><p> TH0 = 0x3c;</p><p> TL0 = 0xb0; // 50ms</p><p><b&
55、gt; value ++;</b></p><p> if(value % 6 == 0)</p><p> flag_300ms = 1;</p><p> if(value >= 20)</p><p> flag_1s = 1;</p><p> value = 0;</p&g
56、t;<p> 3.2判鍵子函數(shù)(按鍵子程序)</p><p> 對(duì)于獨(dú)立式鍵盤判鍵,首先看有鍵按下不,如果有鍵按下則延時(shí)一會(huì)兒,在判斷是否真的有鍵按下,如果確實(shí)有鍵按下,在判鍵釋放,最后執(zhí)行鍵功能程序。判鍵子函數(shù)的流程框圖如圖3-2所示: </p><p><b> 圖3-2判鍵子程序</b></p><p>
57、 流程圖判鍵子程序如下:</p><p> void key()</p><p> static uchar key_new = 0,key_old = 0,key_value = 0;</p><p> key_io |= 0x3f;</p><p> if(key_new == 0) //按鍵松開</p><
58、;p> if((key_io & 0x3f) == 0x3f)</p><p> key_value ++;</p><p><b> else </b></p><p> if((key_io & 0x3f) != 0x3f) //按鍵按下</p><p> key_value ++;
59、</p><p><b> else </b></p><p> key_value =0;</p><p> if(key_value >= 5)//按鍵按下消抖key_value = 0;</p><p> key_new = 0; //按鍵松開后進(jìn)入等待松開按鍵狀態(tài)</p>&l
60、t;p><b> 3.4顯示子程序</b></p><p> 1602液晶是字符型液晶,它的內(nèi)部自帶字符庫,它可以寫兩行的字符,同時(shí)每行可以寫40個(gè)字符,在寫顯示程序的時(shí)候,我們先寫命令,再設(shè)定字符顯示,最后寫數(shù)據(jù),在每寫一次命令或數(shù)據(jù)都需要判斷液晶是否忙。液晶顯示程序流程圖如圖3-3所示:</p><p> 圖3-3 液晶顯示程序流程圖</p>
61、;<p><b> 液晶顯示程序如下:</b></p><p> void jishu_chashu()</p><p> if((flag_1s == 1) && (flag_time_en == 1))</p><p> flag_1s = 0; miao++ if(miao >= 60)miao
62、 = 0;fen ++;</p><p> if(fen >= 60)fen = 0;</p><p> shi++;if(shi >= 24)shi = 0;</p><p> 3.5總程序流程框圖</p><p> 圖3-4整體程序流程圖</p><p> 具體程序見附錄 源程序</p
63、><p><b> 4 系統(tǒng)調(diào)試</b></p><p> 4.1 單片機(jī)仿真軟件在線調(diào)試—PROTEUS </p><p> 1.打開Proteus軟件。</p><p> 2.選擇file菜單下的open design選項(xiàng),找到所需的元器件,元器件上單擊右鍵選中,再單擊左鍵對(duì)其進(jìn)行命名和賦值,接著在編輯器左邊的一
64、欄中,找出并繪制設(shè)計(jì)所要的各種元器件,按照電路圖連接后并保存。</p><p> 3.將用keil編譯產(chǎn)生的hex文件下載到單片機(jī)中:雙擊51單片機(jī),在對(duì)話框中把保存過的hex文件打開,再單擊確定。</p><p> 4.單擊左下角運(yùn)行按鈕,進(jìn)行軟件仿真調(diào)試,直到出現(xiàn)正確的結(jié)果。下圖3-4是在PROTEUS中仿真通過的整體硬件原理圖。 </p>
65、;<p> 圖4-1 PROTEUS 仿真原理圖</p><p> 4.2出租車計(jì)價(jià)器硬件調(diào)試</p><p><b> 功能介紹:</b></p><p> 出租車計(jì)價(jià)器采用at89c51存儲(chǔ)芯片+LCD1602液晶顯示等設(shè)計(jì)而成。3公里內(nèi)為起步價(jià),3公里以外為每公里多少錢1公里,白天默認(rèn)是1.8元,晚上默認(rèn)是2.2元,
66、這個(gè)價(jià)格用戶可以設(shè)定,等待3分鐘以內(nèi)不計(jì)價(jià),3分鐘以外每分鐘多少元,白天默認(rèn)是0.5元,晚上默認(rèn)是1元,這個(gè)價(jià)格用戶可以設(shè)定。能進(jìn)行白天/晚上轉(zhuǎn)換、途中等待時(shí)間和單價(jià)、總金額和單價(jià)所有數(shù)據(jù)輸出采用LCD1602顯示。設(shè)置好的參數(shù)保存在AT24C02存儲(chǔ)芯片內(nèi),掉電不需要重新再設(shè)置。</p><p> 總價(jià)=3公里內(nèi)路程的價(jià)+3公里外的路程*單價(jià)+等待的時(shí)間*單價(jià)。</p><p><
67、;b> 按鍵說明:</b></p><p> 第一排:左邊第一個(gè)鍵,清零鍵,從新計(jì)價(jià)。</p><p> 第二個(gè)鍵,模擬里程數(shù)增加,按一下距離就加 0.1KM。</p><p> 第二排:左邊第一個(gè)鍵:確定鍵,進(jìn)入菜單設(shè)計(jì)參數(shù)。</p><p> 第二個(gè)鍵:加鍵,在設(shè)置參數(shù)時(shí)加變量的。</p><
68、;p> 第三個(gè)鍵:減鍵/等待時(shí)間開始、暫停鍵</p><p> 第四個(gè)鍵:退出菜單設(shè)置鍵。 </p><p> 在正常顯示界面下 </p><p> 第二排第三個(gè)鍵為“等待時(shí)間開始和暫停鍵”按一下時(shí)間走,再按下時(shí)間暫停。</p><p><b> 在參數(shù)設(shè)置界面下</b></p><
69、;p> 第二排第三個(gè)鍵為“減鍵”。</p><p><b> 參數(shù)設(shè)置:</b></p><p> 按下“確定鍵”進(jìn)入設(shè)計(jì)界面進(jìn)行參數(shù)設(shè)置:會(huì)有3個(gè)不同的選項(xiàng),在此界面按“加、減鍵”可選擇不再的選項(xiàng)并有光標(biāo)會(huì)在對(duì)應(yīng)的選項(xiàng)上閃爍,再按下“確定鍵”可進(jìn)入相對(duì)應(yīng)的參數(shù)設(shè)置界面。</p><p> 第1項(xiàng):白天和晚上的模式設(shè)置</p
70、><p> 第2項(xiàng):白天行駛的參數(shù)設(shè)置</p><p> 第3項(xiàng):晚上行駛的參數(shù)設(shè)置</p><p> 按下“確定鍵”進(jìn)入第1項(xiàng)白天和晚上模式設(shè)置:會(huì)有2個(gè)不同的選項(xiàng),在此界面按“加、減鍵”可選擇白天模式和晚上模式并光標(biāo)會(huì)在對(duì)應(yīng)的選項(xiàng)上閃爍。設(shè)置好后按“退出鍵”可返回上一級(jí)設(shè)置菜單界面。</p><p> bai-t:表示是白天的模式&l
71、t;/p><p> wan-s:表示是晚上的模式</p><p> 按下“確定鍵”進(jìn)入第2項(xiàng)白天行駛的參數(shù)設(shè)置:會(huì)有3個(gè)不同的選項(xiàng),在此界面按“確定鍵”可選擇不同的選項(xiàng)并光標(biāo)會(huì)在對(duì)應(yīng)的選項(xiàng)上閃爍,再按“加、減鍵”對(duì)應(yīng)該的單價(jià)會(huì)加、減。設(shè)置好后按“退出鍵”可返回上一級(jí)設(shè)置菜單界面。</p><p> 第1項(xiàng)3L: 白天3公里內(nèi)的單價(jià)設(shè)置(元) </p>
72、<p> 第2項(xiàng)3W:白天3公里外的單價(jià)設(shè)置(元/公里)</p><p> 第3項(xiàng)dd: 白天等待的時(shí)間單價(jià)設(shè)置(元/分鐘)</p><p> 按下“確定鍵”進(jìn)入第3項(xiàng)晚上行駛的參數(shù)設(shè)置:會(huì)有3個(gè)不同的選項(xiàng),在此界面按“確定鍵”可選擇不同的選項(xiàng)并光標(biāo)會(huì)在對(duì)應(yīng)的選項(xiàng)上閃爍,再按“加、減鍵”對(duì)應(yīng)該的單價(jià)會(huì)加、減。設(shè)置好后按“退出鍵”可返回上一級(jí)設(shè)置菜單界面。</p>
73、;<p> 第1項(xiàng)3L: 晚上3公里內(nèi)的單價(jià)設(shè)置(元) </p><p> 第2項(xiàng)3W:晚上3公里外的單價(jià)設(shè)置(元/公里)</p><p> 第3項(xiàng)dd: 晚上等待的時(shí)間單價(jià)設(shè)置(元/分鐘)</p><p><b> 5 設(shè)計(jì)體會(huì)與展望</b></p><p> 出租車計(jì)費(fèi)器系統(tǒng)的設(shè)計(jì)已經(jīng)全部完成
74、,能按預(yù)期的效果進(jìn)行模擬汽車啟動(dòng),停止,暫停等功能,并能夠通過LCD顯示車費(fèi)數(shù)目。本款出租車計(jì)價(jià)器包括單價(jià)輸出、單價(jià)調(diào)整、顯示當(dāng)前的系統(tǒng)時(shí)間等功能。另外,多功能出租車計(jì)價(jià)器還具有性能可靠、電路簡(jiǎn)單、成本低、實(shí)用性強(qiáng)等特點(diǎn),加上經(jīng)過優(yōu)化的程序,使其有很高的智能化水平。</p><p> 幾個(gè)月來,經(jīng)過自己努力,基本上完成了設(shè)計(jì)要求的內(nèi)容,在系統(tǒng)可行性分析、原理圖設(shè)計(jì)等方面都作了許多實(shí)際工作,取得了一些成績(jī),同時(shí)也
75、遇到了一些問題,存在一些不足。經(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í)踐才能對(duì)理論知識(shí)的理解。</p><p> 通過這次設(shè)計(jì)不僅學(xué)會(huì)了如何去查找相關(guān)資料,更重要的是通過查找
76、資料和翻閱書籍學(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)容,在很大程度上得益于老師的幫助。</p>
77、<p> 這次設(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)一步提高。</p><p><b> 鳴 謝</b></p><p> 時(shí)間飛逝,轉(zhuǎn)瞬間為期數(shù)月的畢業(yè)設(shè)計(jì)結(jié)束了,在這個(gè)過程當(dāng)中學(xué)到了很多
78、東西,能力得到了提升,不僅僅是知識(shí)方面,更重要的是為人處事,如何去面對(duì)壓力和挑戰(zhàn)。這最后的一年是是學(xué)到的最多,懂得的最多的一年。</p><p> 這次畢業(yè)設(shè)計(jì)能夠順利完成,首先我要感謝指導(dǎo)老師黃小容老師,黃小容老師治學(xué)嚴(yán)謹(jǐn)、學(xué)識(shí)淵博,在畢業(yè)設(shè)計(jì)的過程中,從各個(gè)方面給予我諸多幫助。黃小容老師嚴(yán)謹(jǐn)細(xì)致、一絲不茍的作風(fēng),精益求精、注重培養(yǎng)學(xué)生獨(dú)立自主精神態(tài)度,在這里向黃小容老師表示衷心的感謝。</p>
79、<p><b> 參考文獻(xiàn)</b></p><p> [1] 張毅剛, 劉杰. MCS-51單片機(jī)原理及應(yīng)用[M]. 哈爾濱: 哈爾濱工業(yè)大學(xué)出版社, 2004.</p><p> [2] 李萍. AT89S51單片機(jī)原理、開發(fā)月應(yīng)用實(shí)例[M]. 北京: 中國(guó)電力出版社, 2008.</p><p> [3] 魏宋揚(yáng).
80、 出租汽車計(jì)價(jià)器常見故障及分析處理[J]. 中國(guó)測(cè)試, 2009, 35(5): 126-127.</p><p> [4] 萬福君, 潘松峰, 劉芳. MCS-51單片機(jī)原理、系統(tǒng)設(shè)計(jì)及應(yīng)用[M].北京:清華大學(xué)出版社, 2008.</p><p> [5] 馬忠梅, 籍順心等. 單片機(jī)的C語言應(yīng)用程序設(shè)計(jì)[M]. 北京: 北京航空航天大學(xué)出版社, 2005.</p>
81、<p> [6] 黃遵熹. 單片機(jī)原理接口與應(yīng)用[M]. 西安: 西北工業(yè)大學(xué)出版社, 2000.</p><p> [7] 楊世品, 陳林.基于proteus的單片機(jī)出租車計(jì)價(jià)器的設(shè)計(jì)[J]. 中文核心期, 2007, (23): 4-2.</p><p> [8] 張小虎, 劉潔. 基于單片機(jī)的出租車計(jì)價(jià)器編碼傳感器的設(shè)計(jì)[J]. 自動(dòng)化技術(shù)與應(yīng)用, 2005, (
82、24): 10.</p><p> [9] 張?chǎng)? 華臻陳書謙. 單片機(jī)原理及應(yīng)用[M]. 北京工業(yè)出版社. 2005.</p><p> [10] 張齊. 單片機(jī)原理與應(yīng)用系統(tǒng)設(shè)計(jì)[M]. 北京: 電子工業(yè)出版社, 2010.</p><p> [11] 李廣弟,朱月秀,冷祖祁.單片機(jī)基礎(chǔ)[M].第3版.北京航空航天大學(xué)出版社,2007年1月</p
83、><p> [12]李華.MCS-51系列單片機(jī)實(shí)用接口技術(shù)[M].北京航空航天大學(xué)出版社,1996</p><p> [13]陳海宴.51單片機(jī)原理及應(yīng)用[M].北京航空航天大學(xué)出版社,2010.</p><p> [14] 胡輝,單片機(jī)原理及應(yīng)用設(shè)計(jì)—21世紀(jì)高等院校規(guī)劃教材[M],水利水電出版社,2005.7;</p><p> [
84、15] 劉守義,單片機(jī)應(yīng)用技術(shù)[M],西安:西安電子科技大學(xué)出版社,1996.8;</p><p> [16]Chirs J.Georgopoulos.Interface Fundamentals In Microcessor--Controlled System[M].D.Reidel Publishing Company,1985<
85、/p><p><b> 附錄I:系統(tǒng)原理圖</b></p><p><b> 附錄II:實(shí)物圖</b></p><p><b> 附錄III:源程序</b></p><p> #include <reg52.h> //調(diào)用單片機(jī)頭文件</
86、p><p> #define uchar unsigned char //無符號(hào)字符型 宏定義變量范圍0~255</p><p> #define uint unsigned int //無符號(hào)整型 宏定義變量范圍0~65535</p><p> uchar miao,fen = 0,shi;</p><p> uchar fl
87、ag_bai_hei; //白天的晚上的標(biāo)志位</p><p> uchar value;</p><p> uint bai_3l_price = 70; //白天3千米內(nèi)的單價(jià) 7元</p><p> uint bai_3w_price = 18; //白天3千米外的單價(jià)/千米 1.8元</p
88、><p> uint bai_wait_price = 5; //白天等待時(shí)的單價(jià)/分鐘 0.5元</p><p> uint wan_3l_price = 80; //晚上3千米內(nèi)的單價(jià)/千米 8元</p><p> uint wan_3w_price = 22; //晚上3千米外的單價(jià)/千米 2.2元</p&
89、gt;<p> uint wan_wait_price = 10; //晚上等待時(shí)的單價(jià)/分鐘 1元</p><p> uint distance = 0; //行使的距離</p><p> uint zong_jia; //總的價(jià)</p><p> bit flag_300ms = 0;</p><
90、;p> bit flag_1s ;</p><p> bit flag_time_en = 0;</p><p> #include "lcd1602.h"</p><p> /***********************1ms延時(shí)函數(shù)*****************************/</p><p&
91、gt; void delay_1ms(uint q)</p><p><b> uint i,j;</b></p><p> for(i=0;i<q;i++)</p><p> for(j=0;j<120;j++);</p><p> /****************自動(dòng)初始化保存的數(shù)據(jù)*****
92、**************/ </p><p> void zidong_chushifa_iic()</p><p> value = read_24c02(200);</p><p> value = read_24c02(200);</p><p> if(value != 0x91)//新的單片機(jī)初始單片機(jī)內(nèi)
93、問EEPOM</p><p> value = 0x91;</p><p> write_iic_data();</p><p> write_24c02(200,value); //保存數(shù)據(jù)</p><p> delay_1ms(300);</p><p> /****************讀出來保
94、存的數(shù)據(jù)**********************/ </p><p> void read_iic_data()</p><p><b> {</b></p><p> flag_bai_hei = read_24c02(0);</p><p> bai_3l_price = read_24c02(2
95、);</p><p> bai_3l_price = bai_3l_price * 256 + read_24c02(1);</p><p> bai_3w_price = read_24c02(4);</p><p> bai_3w_price = bai_3w_price * 256 + read_24c02(3);</p><p>
96、; bai_wait_price = read_24c02(6);</p><p> bai_wait_price = bai_wait_price * 256 + read_24c02(5);</p><p> wan_3l_price = read_24c02(8);</p><p> wan_3l_price = wan_3l_price * 256
97、+ read_24c02(7);</p><p> wan_3w_price = read_24c02(10);</p><p> wan_3w_price = wan_3w_price * 256 + read_24c02(9);</p><p> wan_wait_price = read_24c02(12);</p><p>
98、wan_wait_price = wan_wait_price * 256 + read_24c02(11);</p><p><b> }</b></p><p> /****************獨(dú)立按鍵處理函數(shù)************************/ </p><p> #define key_io P2</
99、p><p> uchar key_can;</p><p> void key()</p><p> static uchar key_new = 0,key_old = 0,key_value = 0;</p><p> key_io |= 0x3f;</p><p> if(key_new == 0) /
100、/按鍵松開 </p><p> if((key_io & 0x3f) == 0x3f)</p><p> key_value ++;</p><p><b> else </b></p><p> key_value = 0;</p><p> if(key_value >
101、;= 5) //按鍵松開松手檢測(cè)</p><p> key_value = 0;</p><p> key_new = 1;//按鍵松開后進(jìn)入等待按鍵狀態(tài)</p><p><b> else </b></p><p> if((key_io & 0x3f) != 0x3f) //按鍵按下</p
102、><p> key_value ++;</p><p><b> else </b></p><p> key_value =0;</p><p> if(key_value >= 5)//按鍵按下消抖</p><p> key_value = 0;</p><p
103、> key_new = 0; //按鍵松開后進(jìn)入等待松開按鍵狀態(tài)</p><p> key_can = 20;</p><p> if((key_new == 0) && (key_old == 1))</p><p> switch(key_io & 0x3f)</p><p> case 0x
104、3e: key_can = 1; break; //得到按鍵值 </p><p> case 0x3d: key_can = 2; break; //得到按鍵值 </p><p> case 0x3b: key_can = 3; break; //得到按鍵值 </p><p> case 0x37: key_can = 4; break; //
105、得到按鍵值 </p><p> case 0x1f: key_can = 5; break; //得到按鍵值 </p><p> case 0x2f: key_can = 6; break; //得到按鍵值 </p><p> //write_sfm2(2,0,key_can); //按鍵按下顯示按鍵值</p><p>
106、 key_old = key_new; </p><p> #include "menu.h"</p><p> /*********************對(duì)應(yīng)菜單內(nèi)的處理函數(shù)******************/</p><p> void menu_dis()</p><p> if(menu_1 ==
107、0)</p><p> if(key_can == 6)</p><p> distance ++;</p><p> write_sfm4(1,0,distance); </p><p> if(key_can == 5) //清零 從新計(jì)價(jià)</p><p> flag_time_en = 0;
108、</p><p><b> shi = 0;</b></p><p><b> fen = 0;</b></p><p><b> miao = 0;</b></p><p> zong_jia = 0;</p><p> distance =
109、 0;</p><p><b> }</b></p><p> if(key_can == 2)</p><p> flag_time_en = ~flag_time_en;</p><p> if(flag_300ms == 1)</p><p> flag_300ms = 0;<
110、;/p><p> if(distance <= 30)//3公里內(nèi)的價(jià)格</p><p> if(flag_bai_hei == 0)</p><p> if(fen <= 3)</p><p> zong_jia = bai_3l_price;</p><p><b> else <
111、/b></p><p> zong_jia = bai_3l_price + (shi * 60 + fen - 3) * bai_wait_price;</p><p><b> else </b></p><p> if(fen <= 3)</p><p> zong_jia = wan_3l
112、_price; </p><p><b> else </b></p><p> zong_jia = wan_3l_price + (shi * 60 + fen - 3) * bai_wait_price;</p><p> else //3公里外的價(jià)格</p><p> if(flag_bai_h
113、ei == 0)</p><p> if(fen <= 3)</p><p> zong_jia = bai_3l_price + bai_3w_price * (distance - 30) / 10 ;</p><p><b> else </b></p><p> zong_jia = bai_3l_
114、price + bai_3w_price * (distance - 30) / 10 + (shi * 60 + fen - 3) * bai_wait_price;</p><p><b> else </b></p><p> if(fen <= 3)</p><p> zong_jia = wan_3l_price + w
115、an_3w_price * (distance - 30) / 10 ;</p><p><b> else </b></p><p> zong_jia = wan_3l_price + wan_3w_price * (distance - 30) / 10 + (shi * 60 + fen - 3) * wan_wait_price;</p>
116、;<p> if(flag_bai_hei == 0)</p><p> write_sfm2_dian(2,9,bai_3w_price);</p><p><b> else </b></p><p> write_sfm2_dian(2,9,wan_3w_price);</p><p>
117、write_sfm2(2,0,shi); </p><p> write_sfm2(2,3,fen); </p><p> write_sfm2(2,6,miao); </p><p> write_sfm4(1,10,zong_jia); </p><p> write_sfm4(1,0,distance); </p>
118、<p> write_zifu(1,15,0x5c);//¥</p><p> write_zifu(2,12,0x5c);//¥</p><p> *********************顯示函數(shù)******************/</p><p> void jishu_chashu()</p><p>
119、; if((flag_1s == 1) && (flag_time_en == 1))</p><p> flag_1s = 0;</p><p><b> miao++;</b></p><p> if(miao >= 60)</p><p> miao = 0;fen ++;</
120、p><p> if(fen >= 60)fen = 0;shi++;</p><p> if(shi >= 24)shi = 0;</p><p> /*************定時(shí)器0初始化程序***************/</p><p> void time_init() </p><p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)----多功能單片機(jī)出租車計(jì)價(jià)器
- 基于單片機(jī)出租車多功能計(jì)價(jià)器設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 畢業(yè)論文--基于單片機(jī)的出租車計(jì)價(jià)器設(shè)計(jì)
- 基于單片機(jī)的出租車計(jì)價(jià)器設(shè)計(jì)畢業(yè)論文
- 基于單片機(jī)的出租車計(jì)價(jià)器設(shè)計(jì)【畢業(yè)論文】
- 畢業(yè)論文--基于51單片機(jī)設(shè)計(jì)的多功能出租車計(jì)價(jià)器
- 畢業(yè)論文---基于單片機(jī)的出租車計(jì)價(jià)器的設(shè)計(jì)
- 畢業(yè)論文(設(shè)計(jì))基于單片機(jī)的出租車計(jì)價(jià)器的設(shè)計(jì)
- 基于單片機(jī)的出租車計(jì)價(jià)器設(shè)計(jì)
- 基于單片機(jī)的出租車計(jì)價(jià)器
- 基于51單片機(jī)設(shè)計(jì)的多功能出租車計(jì)價(jià)器
- 畢業(yè)論文-- 基于單片機(jī)的出租車計(jì)價(jià)器軟件設(shè)計(jì)
- 基于單片機(jī)的出租車計(jì)價(jià)器畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的出租車計(jì)價(jià)器畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的出租車計(jì)價(jià)器畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的出租車計(jì)價(jià)器設(shè)計(jì)畢業(yè)設(shè)計(jì)論文
- 基于單片機(jī)的出租車計(jì)價(jià)器設(shè)計(jì)畢業(yè)設(shè)計(jì)論文
- 多功能出租車計(jì)價(jià)器畢業(yè)設(shè)計(jì)論文
- 基于51單片機(jī)的出租車計(jì)價(jià)器畢業(yè)設(shè)計(jì)論文
- 基于51單片機(jī)的出租車計(jì)價(jià)器設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論