版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、河南理工大學(xué)-單片機(jī)課程設(shè)計-出租車計價器河南理工大學(xué)單片機(jī)應(yīng)用與仿真訓(xùn)練設(shè)計報告題目:出租車計價器設(shè)計姓 名: 學(xué) 號: 專業(yè)班級: 指導(dǎo)老師: 所在學(xué)院: 電氣工程與自動化學(xué)院 2012年5月20日摘要本設(shè)計用直流電機(jī)轉(zhuǎn)動模擬出租車車輪轉(zhuǎn)動,實(shí)現(xiàn)出租車多功能的計價器功能。設(shè)計采用AT89S52單片機(jī)為主控芯片,用霍爾傳感器檢測電機(jī)轉(zhuǎn)盤轉(zhuǎn)速,采用AT24C02芯片使系統(tǒng)在掉電時路程、單價等重要信息的存儲保護(hù),采用兩個四位8段共陰數(shù)碼顯示管里程、總價格和等待時間等信息。本設(shè)計可以實(shí)現(xiàn)單雙程設(shè)置、系統(tǒng)暫停和清零、空車指示、信息顯示、顯示切換、掉電保護(hù)等功能。出租車計價是根據(jù)車所行駛的路程以及乘客
2、乘車的方式綜合決定的。出租車行駛總路程可以通過車輪的周長乘車輪旋轉(zhuǎn)圈數(shù)得到。即可計算得到車輪旋轉(zhuǎn)幾周出租車能行駛一公里的路程。使用霍爾傳感器方便地計量車輪旋轉(zhuǎn)的圈數(shù)。輸出的脈沖信號被接入到AT89S52單片機(jī)系統(tǒng)中,通過計算接收到的脈沖個數(shù),計算出當(dāng)前所行駛的路程,并且可以計算實(shí)時的速度,在速度低于5公里每小時是進(jìn)入等待計費(fèi)。與此同時,根據(jù)不同的收費(fèi)標(biāo)準(zhǔn),通過選擇相應(yīng)的起步價、單價等收費(fèi)標(biāo)準(zhǔn)進(jìn)行計算。通過鍵盤能夠?qū)崿F(xiàn)往返設(shè)置,啟動、暫停、停止計價器以及切換顯示當(dāng)前的行駛里程和需支付的車費(fèi)。本設(shè)計硬件電路總體可以分為五個單元:單片機(jī)最小系統(tǒng)單元,指示燈電路單元,按鍵電路單元,路程時間與金額顯示單
3、元,轉(zhuǎn)速信號接收單元。軟件系統(tǒng)可以大致分為五個大的模塊為:總初始化模塊,按鍵掃描模塊,中斷與定時模塊,數(shù)據(jù)計算模塊,數(shù)碼管顯示模塊。其中,鍵盤掃描和數(shù)碼管顯示采用查詢方式,轉(zhuǎn)速信號接收與等待記時采用中斷方式。這些軟硬件系統(tǒng)構(gòu)成了最終的設(shè)計。關(guān)鍵字:多功能計價器;AT89S52;AT24C02;霍爾傳感器;顯示切換目錄1 概述11.1 功能要求11.2 設(shè)計參數(shù)11.3 系統(tǒng)原理12 系統(tǒng)總體方案及硬件設(shè)計32.1 系統(tǒng)總體方案32.2 單片機(jī)最小系統(tǒng)單元32.3 轉(zhuǎn)動信號采集單元52.4 顯示單元62.5 指示燈單元72.6 按鍵輸入電路單元72.7 IO分配表83 軟件設(shè)計93.1 總體流程
4、93.2 計算模塊93.3 鍵盤掃描93.4 顯示程序94 Proteus軟件仿真105 課程設(shè)計體會11參考文獻(xiàn):12附1 源程序代碼13附2 系統(tǒng)原理圖251 概述1.1 功能要求(2)能顯示金額數(shù),單位為元,最后一位為小數(shù)位。(3)可設(shè)定單程價格和往返價格,單程價格為2元/公里,往返價格為1.5元/公里。(4)車速 5公里/小時的時間累積為總等待時間,每5分鐘等待時間相當(dāng)于里程數(shù)增加1公里。(5)起步公里數(shù)為3公里,價格為5元,若實(shí)際距離大于3公里,按規(guī)則3計算價格。(6)按暫停鍵,計價器可暫停計價,按查詢鍵,可顯示總等待時間。發(fā)揮部分:空車指示、語音提示、信息存儲等。1.2 設(shè)計參數(shù)由
5、于要求沒有給出車輪的相關(guān)參數(shù),所以這里進(jìn)行一些基本參數(shù)的查詢。據(jù)調(diào)查統(tǒng)計,現(xiàn)行出租車輪胎直徑大致有四種,直徑分別為520mm、540mm、560mm和580mm.本作品針對560mm的出租車進(jìn)行設(shè)計。它的周長為:1.7584 m,57圈行駛100m。1.3 系統(tǒng)原理出租車計價器是乘客與司機(jī)雙方的交易準(zhǔn)則,它是出租車行業(yè)發(fā)展的重要標(biāo)志。它關(guān)系著交易雙方的利益,具有良好性能的計價器無論是對廣大出租車司機(jī)朋友還是乘客來說都是很必要的。因此,汽車計價器的研究也是十分有應(yīng)用價值和現(xiàn)實(shí)意義的。出租車計價是根據(jù)車所行駛的路程以及乘客乘車的方式綜合決定的。出租車行駛總路程可以通過車輪的周長乘車輪旋轉(zhuǎn)圈數(shù)得到。
6、即可計算得到車輪旋轉(zhuǎn)幾周出租車能行駛一公里的路程。使用霍爾傳感器方便地計量車輪旋轉(zhuǎn)的圈數(shù)。輸出的脈沖信號被接入到AT89S52單片機(jī)系統(tǒng)中,通過計算接收到的脈沖個數(shù),計算出當(dāng)前所行駛的路程,并且可以計算實(shí)時的速度,在速度低于5公里每小時是進(jìn)入等待計費(fèi)。于此同時,根據(jù)不同的收費(fèi)標(biāo)準(zhǔn),通過選擇相應(yīng)的起步價、單價等收費(fèi)標(biāo)準(zhǔn)進(jìn)行計算。通過鍵盤能夠?qū)崿F(xiàn)往返設(shè)置,啟動、暫停、停止計價器以及切換顯示當(dāng)前的行駛里程和需支付的車費(fèi)。本設(shè)計硬件電路分為五個單元:單片機(jī)最小系統(tǒng)單元,指示燈電路單元,按鍵電路單元,路程時間與金額顯示單元,轉(zhuǎn)速信號接收單元。軟件系統(tǒng)分為五個大的模塊為:總初始化模塊,按鍵掃描模塊,中斷與
7、定時模塊,數(shù)據(jù)計算模塊,數(shù)碼管顯示模塊。其中,鍵盤掃描和數(shù)碼管顯示采用查詢方式,轉(zhuǎn)速信號接收與等待記時采用中斷方式。這些軟硬件系統(tǒng)構(gòu)成了最終的設(shè)計。2 系統(tǒng)總體方案及硬件設(shè)計2.1 系統(tǒng)總體方案本設(shè)計可以分為五個單元,分別為:單片機(jī)最小系統(tǒng)單元、轉(zhuǎn)速信號接收單元、路程時間與金額顯示單元、指示燈電路單元、按鍵輸入電路單元。系統(tǒng)框圖如圖1所示:圖1 系統(tǒng)框圖2.2 單片機(jī)最小系統(tǒng)單元主控機(jī)系統(tǒng)采用了Atmel 公司生產(chǎn)的 AT89S52單片機(jī),它含有256 字節(jié)數(shù)據(jù)存儲器,內(nèi)置8K 的電可擦除FLASH ROM,可重復(fù)編程,大小滿足主控機(jī)軟件系統(tǒng)設(shè)計。AT89S52主要功能列舉如下:1、擁有靈巧的
8、8位CPU和在系統(tǒng)可編程Flash2、晶片內(nèi)部具時鐘振蕩器(傳統(tǒng)最高工作頻率可至 12MHz)3、內(nèi)部程序存儲器(ROM)為 8KB4、內(nèi)部數(shù)據(jù)存儲器(RAM)為 256字節(jié)5、32 個可編程I/O 口線6、8 個中斷向量源7、三個 16 位定時器/計數(shù)器8、三級加密程序存儲器全雙工UART串行通道。AT89S51芯片的40個引腳功能分別為:VCC 電源電壓。GND 接地。RST 復(fù)位輸入。當(dāng)RST變?yōu)楦唠娖讲⒈3?個機(jī)器周期時,將使單片機(jī)復(fù)位。WDT溢出將使該引腳輸出高電平,設(shè)置SFR AUXR的DISRTO位(地址8EH)可打開或關(guān)閉該功能。DISKRTO位缺省為RESET輸出高電平打開狀
9、態(tài)。ALE/PROG: 當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時,ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。/PSEN: 外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機(jī)器周期兩次/PSEN有效
10、。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。/EA/VPP: 當(dāng)/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1 反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2 來自反向振蕩放大器的輸出。P0口:一組8位漏極開路型雙向I/O口。也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時,每位能驅(qū)動8個TTL邏輯門電路,對端口寫“1”可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存
11、儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。在Flash編程時,P0口接收指令字節(jié),而在程序校驗(yàn)時,輸出指令字節(jié),校驗(yàn)時,要求外接上拉電阻。P1口:一個帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因?yàn)閮?nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流。Flash編程和程序校驗(yàn)期間,P1接收低8位地址。P2口:一個帶內(nèi)部上拉電阻的8位雙向I/O口。P1的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路
12、。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因?yàn)閮?nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流。在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器時,P2口送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲器時,P2口線上的內(nèi)容在整個訪問期間不改變。Flash編程和程序校驗(yàn)期間,P2亦接收低8位地址。P3口:一個帶內(nèi)部上拉電阻的8位雙向I/O口。P3的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對P3口寫“1”時,它們被內(nèi)部的上拉電阻把拉到高電并可作輸入端口。作輸入端口使用時,被外部拉低的P3口將用上拉電阻輸出電流。P3口除了作為一般
13、的I/O口線外,還作特殊功能口。P3口的第二功能引腳分配如下:P3.0:RXD,串行通信輸入。P3.1:TXD,串行通信輸出。:INT0,外部中斷0輸入。P3.3:INT1,外部中斷1輸入。P3.4:T0,計時計數(shù)器0輸入。P3.5:T1,計時計數(shù)器1輸入。P3.6:WR:外部數(shù)據(jù)存儲器的寫入信號。P3.7:RD,外部數(shù)據(jù)存儲器的讀取信號。單片機(jī)最小系統(tǒng)原理圖如圖2所示。2.3 轉(zhuǎn)動信號采集單元轉(zhuǎn)動信號采集是利用霍爾傳感器來實(shí)現(xiàn)的,轉(zhuǎn)輪每轉(zhuǎn)動一周,霍爾傳感器發(fā)出一個脈沖,然后發(fā)給單片機(jī)的外部中斷0端口P3.2,通過中斷來接受傳感器的信號。此模塊的模型如圖3所示。圖2 單片機(jī)最小系統(tǒng)原理圖圖3
14、轉(zhuǎn)動信號采集單元模型2.4 顯示單元采用兩個四位8段共陰數(shù)碼顯示,一組顯示金額,另一組顯示路程與等待時間配合按鍵來切換。數(shù)據(jù)位選用單片機(jī)P0口,片選端分別接在P2口的高四位和低四位。它們的連線如圖4所示。圖4 顯示單元原理圖2.5 指示燈單元本設(shè)計按照功能要求設(shè)置了五個LED燈。原理接線圖如圖5所示。各個LED燈的功能分別為:led0:空車指示;led1:指示單程還是雙程,當(dāng)選擇雙程計費(fèi)時亮;led2:指示顯示的是路程還是等待時間,顯示等待時間時亮;led3:指示系統(tǒng)暫停與否,當(dāng)選擇暫停時亮;led4:指示堵車與否,堵車指示時燈亮。圖5 指示燈單元原理圖 圖6 按鍵輸入電路單元原理圖2.6 按
15、鍵輸入電路單元本設(shè)計按照功能要求設(shè)置了五個按鍵。其功能分別為:key0:系統(tǒng)清零,用來將整個計費(fèi)系統(tǒng)的顯示清零;key1:單程雙程,用來設(shè)置是單程還是往返計費(fèi);key2:顯示切換,用來切換路程與等待時間的顯示;key3:系統(tǒng)暫停,用來將整個計費(fèi)系統(tǒng)暫停;key4:掉電數(shù)據(jù)恢復(fù)。2.7 IO分配表根據(jù)以上分析,總體IO分配如表1所示。表1 IO分配表功能輸入P3.2/INT0轉(zhuǎn)動信號采集輸入P3.0-1、P1.5-7按鍵輸入S0-S5輸出P0數(shù)碼管顯示段選P2數(shù)碼管顯示位選P1.0-4發(fā)光二極管LED0-LED5P3.6AT24C02芯片SDAP3.7AT24C02芯片SCL3 軟件設(shè)計3.1
16、總體流程軟件系統(tǒng)可以大致分為五個大的模塊為:總初始化模塊,按鍵掃描模塊,中斷與定時模塊,數(shù)據(jù)計算模塊,數(shù)碼管顯示模塊。其中,鍵盤掃描和數(shù)碼管顯示采用查詢方式,轉(zhuǎn)速信號接收與等待記時采用中斷方式。 計算模塊計算程序根據(jù)里程數(shù)分別進(jìn)入不同的計算公式。如果里程大于3公里,則執(zhí)行公式:總金額 起步價+(里程-3)*單價+等待時間*等待單價;否則,執(zhí)行公式:總金額 起步價+等待時間*等待單價。對于速度的判斷及等待時間的記錄采用定時器零中斷,設(shè)定10ms一個中斷,然后判斷車速,小于5公里/小時時,則開始記錄等待時間。3.3 鍵盤掃描鍵盤掃描才用查詢方式,當(dāng)有按鍵按下時就對相應(yīng)的標(biāo)志進(jìn)行取反,或調(diào)用其他子函
17、數(shù),在消抖過程中,這里將數(shù)碼管顯示程序潛入以保證顯示的穩(wěn)定。3.4 顯示程序顯示程序利用主函數(shù)內(nèi)的循環(huán),實(shí)現(xiàn)動態(tài)掃描顯示,同時根據(jù)數(shù)碼管余輝和人眼暫留現(xiàn)象,即可實(shí)現(xiàn)顯示4 Proteus軟件仿真將整個系統(tǒng)原理圖在Proteus連接好后,下載如編寫好的程序仿真如下:如圖顯示的狀態(tài)設(shè)置為:單程,車速大于5km/h,當(dāng)路程等于40.4km時的顯示情況。5 課程設(shè)計體會本次單片機(jī)課程設(shè)計,我們選的題目是出租車計價器的設(shè)計。通過仿真、焊接、調(diào)試等不斷的努力,我們的出租車計價器實(shí)現(xiàn)了基本要求的全部功能和發(fā)揮部分的部分功能。比如能顯示里程、金額數(shù)、總等待時間,可設(shè)定單程價格和往返價格,按暫停鍵,計價器可暫停
18、計價,按查詢鍵,可顯示總等待時間,空車指示、信息存儲等。經(jīng)過這些天有關(guān)于出租車計價器的課程設(shè)計,使我對MCS-51系列單片機(jī)的應(yīng)用有了更深的了解。從前的學(xué)習(xí)過程過于浮淺,只是流于表面的理解,而現(xiàn)在要做課程設(shè)計,就不得不要求我們對所用到的知識有更深層次的理解。因?yàn)檎n程設(shè)計的內(nèi)容比及書本中的理論知識而言,更接近于現(xiàn)實(shí)生活,而理論到實(shí)踐的轉(zhuǎn)化往往是一個艱難的過程,它猶如一只攔路虎,橫更在我們的面前。但是我們毫不畏懼,因?yàn)槲覀兿嘈盼覀兡苄?。事情并不總是一帆風(fēng)順的,我們總會遇到困難和險阻。在此次課程設(shè)計的過程中,我們碰到了許多的問題。比如,對于數(shù)碼管動態(tài)掃描顯示和鍵盤的延時防抖的綜合編程不能較好地解決;
19、對于代碼的前后順序及調(diào)用掌握得還不夠好;對于一些相關(guān)的應(yīng)用軟件 KEIL、PROTEUS、Altium designer 09使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實(shí)際動手能力和獨(dú)立思考的能力。同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固??傊敬握n程設(shè)計讓我們更加深刻的掌握了MCS-51系列單片機(jī)的工作原理和編程語言,更加熟練的掌握了KEIL、PROTEUS、Altium designer 09等專業(yè)軟件的使用,熟悉了產(chǎn)品開發(fā)的大致
20、流程,深刻的體會到了團(tuán)隊協(xié)作精神的重要性,培養(yǎng)了我們發(fā)現(xiàn)問題、獨(dú)立思考問題、多種途徑解決問題的能力,鍛煉并提高了了我們的動手實(shí)踐能力和理論與實(shí)踐相結(jié)合的能力。我以后做一個動手能力強(qiáng)的大學(xué)生。1譚浩強(qiáng)著. C程序設(shè)計M. 北京:清華大學(xué)出版社,2005.2張友德、趙志英、涂時亮著.單片微型機(jī)原理、應(yīng)用與實(shí)驗(yàn)M. 上海:復(fù)旦大學(xué)出版社, 2006.3吳戈、李玉峰編著. 案例學(xué)單片機(jī)C語言開發(fā)M.北京:人民郵電出版社,2008.4孫余凱. 傳感器應(yīng)用電路300例M. 北京:電子工業(yè)出版社,2008.5田立. 51單片機(jī)C語言程序設(shè)計快速入門M. 北京:人民郵電出版社, 20076郭天祥著. 新概念5
21、1單片機(jī)C語言教程 入門、提高、開發(fā)、拓展全攻略M. 北京:電子工業(yè)出版社, 2009.7余發(fā)山,王福忠. 單片機(jī)原理及應(yīng)用技術(shù)M. 徐州:中國礦業(yè)大學(xué)出版社,2008.附1 源程序代碼#include #include #include #define uchar unsigned char#define uint unsigned intuchar code table_du 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f ; uchar code table_we 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0
22、x7f ; uchar tt,aa;uchar quanshu;uchar second,minute; /等待時間uint round; /路程,單位100muchar round_24c022;uint distance; /走過距離,單位100muint price,cost; /單價,總價錢uint wait; /等待時間 /秒uchar qian,bai,shi,ge; /顯示數(shù)據(jù)各個位置數(shù)字的臨時變量sbit key0 P31; /清零 (空車)/載客sbit key1 P30; /單程還是往返設(shè)置sbit key2 P17; /切換顯示路程與等待時間sbit key3 P16;/
23、暫停sbit key4 P15;/掉電數(shù)據(jù)恢復(fù)sbit led0 P10;/空車指示時,燈亮。sbit led1 P11;/雙程指示時,燈亮。 sbit led2 P12;/顯示等待時間時,燈亮。sbit led3 P13;/暫停指示時,燈亮。 sbit led4 P14; /堵車指示時,燈亮。bit key0_flag;/(空車)/載客標(biāo)志位bit key1_flag;/單程還是往返標(biāo)志位bit key2_flag;/路程與等待時間標(biāo)志位bit key3_flag;/暫停標(biāo)志位bit flag;/堵車(等待)標(biāo)志位void delayms unsigned int c unsigned ch
24、ar b;for ;c 0;c- for b 110;b 0;b- ; void delay_dis void unsigned char b,c;for c 7;c 0;c- for b 110;b 0;b- ; /初始化函數(shù) (剛上電時)void init_data void distance 0;cost 0;round 0;second 0;minute 0;key0_flag 0;/空車key1_flag 0; /單程key2_flag 1; /路程key3_flag 0; /正常,非暫停flag 1; void jisuan void wait minute*60+second;d
25、istance round+wait/30;/車輪轉(zhuǎn)57圈為100m,等待時間30s為100mif key1_flag else price 20; /單程價格 2元/公里 if distance 30 /小于3公里 cost 50; elsecost price* distance-30 /10+50; /顯示的輔助程序,分離一個數(shù)的各位數(shù)字void fenli uint temp /數(shù)據(jù)的分離處理 if temp 9999 temp 9999;qian temp/1000;bai temp/100%10;shi temp%100/10;ge temp%10; void write void
26、 round_24c020 round & 0x00ff; round_24c021 round 8 & 0x00ff ;write_24c02 0x00,key0_flag ;write_24c02 0x01,key1_flag ;write_24c02 0x02,key2_flag ;write_24c02 0x03,key3_flag ;write_24c02 0x04,second ;write_24c02 0x05,minute ;write_24c02 0x06,round_24c020 ;write_24c02 0x07,round_24c021 ; void r
27、ead void key0_flag read_24c02 0x00 ;key1_flag read_24c02 0x01 ;key2_flag read_24c02 0x02 ;key3_flag read_24c02 0x03 ;second read_24c02 0x04 ;minute read_24c02 0x05 ;round_24c020 read_24c02 0x06 ;round_24c021 read_24c02 0x07 ;round round_24c021 ;round round 8 | round_24c020; /數(shù)碼管顯示程序void display void
28、 uint temp;/-顯示路程或者等待時間-if key2_flag fenli distance ; P2 table_we7; /位選,個位P0 table_duge; /段選delay_dis ; P2 table_we6; /位選,十位P0 table_dushi|0x80; /如果是路程,點(diǎn)亮小數(shù)點(diǎn)兒delay_dis ;P2 table_we5;P0 table_dubai;delay_dis ;P2 table_we4;P0 table_duqian;delay_dis ; else temp minute*100+second;fenli temp ; P2 table_w
29、e7; /位選,個位P0 table_duge; /段選 delay_dis ; P2 table_we6; /位選,十位P0 table_dushi; /如果是路程,點(diǎn)亮小數(shù)點(diǎn)兒 delay_dis ;P2 table_we5;P0 table_dubai|0x80;delay_dis ;P2 table_we4;P0 table_duqian; /-顯示價格-fenli cost ;P2 table_we3;P0 table_duge; delay_dis ;P2 table_we2;P0 table_dushi |0x80; delay_dis ;P2 table_we1;P0 tabl
30、e_dubai; delay_dis ;P2 table_we0;P0 table_duqian;/-指示燈顯示-led0 key0_flag; /空車時key0_flag為1,燈亮led1 !key1_flag; /單程時key1_flag為1,燈亮led2 key2_flag; /led3 !key3_flag; / led4 flag; /堵車時flag為1,燈亮 /鍵盤的掃描 void keyscan void if key0 0 / 清零 delayms 10 ; /按鍵消抖if key0 0 key0_flag !key0_flag;if !key0_flag init_data
31、;while !key0 ;/等待按鍵松開 if key1 0 / 單程還是往返 delayms 10 ;if key1 0 key1_flag !key1_flag;while !key1 ; if key2 0 /切換路程與等待時間 delayms 10 ;if key2 0 key2_flag !key2_flag;while !key2 ; if key3 0 / 暫停 delayms 10 ;if key3 0 key3_flag !key3_flag;if key3_flag EX0 0; /關(guān)閉外部中斷和定時器TR0 0; else EX0 1;TR0 1; while !key
32、3 ; if key4 0 /掉電數(shù)據(jù)恢復(fù) delayms 10 ;if key4 0 read ;while !key4 ; /主程序 void main void init_data ; /初始化數(shù)據(jù)TMOD 0x01;TH0 65536-50000 /256;TL0 65536-50000 %256;ET0 1; / 開定時器中斷IT0 0; /外部中斷0邊沿觸發(fā)方式 EA 1;/開總中斷EX0 1; /開外部中斷TR0 1; /開定時器while 1 keyscan ;jisuan ;write ;display ; / 中斷記錄脈沖數(shù)void zd void interrupt 0
33、/中斷0 aa+;if flag quanshu+;if quanshu 57 /車輪轉(zhuǎn)57圈為100m round+;quanshu 0; /定時器 void timer0 void interrupt 1 /定時0 TH0 65536-50000 /256; /50msTL0 65536-50000 %256;tt+;if tt 20 /1s采樣,計算速度 tt 0;if aa 5 flag 0; /堵車(等待)else flag 1; aa 0;if !flag /等待時間計時 second+;if second 60 minute+;second 0; #include #define somenop _nop_ ;_nop_ ;_nop_ ;_nop_ ;_nop_ ; #define SlaveAddrW 0xAE /0xae ,a0#define SlaveAddrR 0xAF
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025土地承包合同終止范例
- 2025知識產(chǎn)權(quán)委托代理合同
- 2025地下車庫買賣合同書
- 2025貨樣買賣合同范本
- 二零二五年度文化產(chǎn)業(yè)公司股權(quán)受讓協(xié)議書范例3篇
- 二零二五年度特色農(nóng)產(chǎn)品種植基地土地永久轉(zhuǎn)讓協(xié)議
- 2025年度農(nóng)機(jī)購置與農(nóng)業(yè)人才培訓(xùn)合同3篇
- 二零二五年度物聯(lián)網(wǎng)技術(shù)合伙協(xié)議3篇
- 2025年度綜合交通樞紐停車場租賃與交通換乘服務(wù)合同3篇
- 2025年度高端裝備制造企業(yè)整體轉(zhuǎn)讓協(xié)議版3篇
- 化纖織造行業(yè)-生產(chǎn)工藝流程簡介課件
- 棚戶區(qū)改造項目房屋拆除工程施工組織設(shè)計方案
- 流行病學(xué)知識考核試題題庫與答案
- DB11-T212-2017園林綠化工程施工及驗(yàn)收規(guī)范
- 小學(xué)數(shù)學(xué)自制教具學(xué)具的研究及探討
- 廣東省幼兒園一日活動指引(試行)
- 光學(xué)材料-光學(xué)加工流程
- 奔馳卡車產(chǎn)品分析(課堂PPT)
- 反循環(huán)鉆孔灌注樁施工方案
- 新能源小客車購車充電條件確認(rèn)書
- 發(fā)明專利專利答辯模板
評論
0/150
提交評論