單片機課程設計出租車計價器_第1頁
單片機課程設計出租車計價器_第2頁
單片機課程設計出租車計價器_第3頁
單片機課程設計出租車計價器_第4頁
單片機課程設計出租車計價器_第5頁
已閱讀5頁,還剩23頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、河南理工大學微機原理與單片機接口技術課程設計報告出租車計價器設計姓 名: 郝高鋒 蔣亞光 學 號:專業班級:指導老師: 所在學院: 電氣工程與自動化學院 2013年 04月 10 日摘要本設計是一個基于單片機的出租車計價器。本設計主要完成的功能有計時,計費,記錄里程,空車顯示,暫停,測速等。用到的硬件主要有C51單片機,直流電動機,霍爾傳感器等。通過霍爾傳感器及單片機的外部中斷功能,記錄車輪的旋轉圈數,通過車輪的周長計算里程。由于使用的單片機系統附帶的數碼管顯示只有四個數碼管,所以每次只能顯示一種數據:里程、費用或者等待時間。為了所有的數據都能在數碼管上顯示,加入了按鍵。第五個鍵可以顯示里程,

2、第六個鍵可以顯示等待時間,第五個鍵和第六個鍵都沒有按的話就是顯示費用。本設計還附有測速的功能,通過單片機內部的計時器計時,通過每分鐘測得的里程計算出車的速度。通過測得的速度判定使用里程計費還是通過時間計費,這樣也比較人性化。本設計的另一個人性化之處在于可以暫停計費,這樣可以隨時暫停計費,支持部分收費。本設計的空車提示功能對司機和乘客都有好處,方便乘客叫車,也可以減少司機的麻煩。本設計通過燈的提示表示某個鍵被按下,這樣能讓司機和乘客很清晰的看到按了什么鍵。當按下啟動計費鍵后綠燈會亮,這樣就會讓司機很容易判斷是不是按了啟動計費鍵,以免造成不必要的損失。當按下暫停鍵時,紅燈就會亮,這樣方便乘客判斷是

3、不是暫停了計費,有利于保障乘客的合法權益。而空車則有黃燈提示,這樣乘客只要看到黃燈就能判斷是空車能夠方便乘客叫車。本設計主要有三部分組成,分別是霍爾傳感器測量部分、單片機處理部分、數碼顯示部分。霍爾傳感器測量部分主要是由硬件組成的不需要太多的編程,而單片機處理部分主要任務是編程,數碼管顯示部分是單片機的擴張部分。下面對本設計進行一些簡單的功能總體描述。加電之后系統默顯示三公里內的費用,此時處于初始狀態;第一個鍵是計費啟動鍵,按下之后開始計費同時綠燈亮;第二個鍵是計費暫停鍵,按下之后計費暫停同時紅燈亮;第三個鍵是空車提示鍵,按下之后黃燈亮,同時等待時間、里程、費用等都歸零;第四個鍵是單程和往返轉

4、換鍵,可以實現單程、往返的轉化;第五個鍵是里程查詢鍵,按了之后數碼管顯示里程數;第六個鍵是等待時間查詢鍵,按了之后可以查詢等待時間。關鍵字:C51單片機 霍爾傳感器 費用 里程 等待時間 中斷 計時器1概述1.1出租車起源出租車是一種公共交通工具,一般是短途的、往返于同一城市的不同地點。其收費一般比其它的公共交通高,比如:公交車、地鐵等。出租車起源于英國。1620年,倫敦出現了第一家四輪馬車出租車隊,盡管整個車隊才有四輛馬車,但是車夫們穿著統一訂做的制服,行駛于街道十分拉風,隨即這一行業開始迅猛發展起來。1654年,英國議會頒布了出租馬車管理的法令,并給出租馬車主發放營業許可證。 1886年卡

5、爾·本茨發明了以汽油發動機為動力的三輪汽車,這一年被稱為汽車元年。 而直到1897年,世界上第一家出租汽車公司才在德國斯圖加特成立。我國的出租車行業最早是始于清朝末年,當時有一些德國商人和法國商人在中國辦了洋車行,包括上海、北京、青島、寧波等口岸城市。建國之后出租車行業曾經存在過一陣子,到文革期間出租車被當作資本主義的尾巴給徹底割掉了。之后文革之后有緩慢的發展,到改革開放后有了較大的發展。1.2出租車計價器研究現狀出租車計價器大概經歷了四個發展階段,一、傳統的全部由機械元器件組成的機械式,二、半電子式即用電子線路代替部分機械元器件,三、集成電路式,四、單片機式。使用單片機設

6、計的出租車計價器功能很強大,可以滿足計時、計程、計費、查看、存儲、統計等多種計量功能。利用編程可設計出多種不同的計費模式,不同的情況采取不同的收費方式,使司機在工作中能夠應付各種突發狀況,設計理念更加人性化,符合當今社會的需要。其各種功能由鍵盤控制,操作簡單。且計價器造價低廉,安裝方便,優勢明顯。1.3出租車計價器發展趨勢隨著單片機性能不斷提高而價格卻不斷下降,單片機控制得到更廣泛的應用。外圍芯片的不斷發展使得計價器的功能更加強大,性能更加穩定。隨著電子技術的發展以及對計價器的不斷改進和完善,產生了諸多的附加功能。例如: (1)存儲功能,可存儲多項營運數據,便于查詢。新型數據存儲器的應用使得計

7、價器的營運數據在掉電情況下還可以保存10年;(2)永久時鐘功能,在非營運狀態下,日歷時鐘芯片的使用使計價器可以顯示永久時鐘;(3)LCD顯示功能,液晶屏的使用讓計價器實現多屏顯示的功能,可同時顯示各項營運數據使乘客一目了然。1.4本設計的目的及意義隨著人民生活水平的提高,人們已經不再滿足于衣食住的享受,出行的舒適程度已經受到越來越多人的關注。于是,出租車行業以較低價格,較高的服務質量,給人們帶來了出行的方便及享受。但是大量的買賣糾紛困擾著行業的發展。改良計價器是解決這一矛盾的最好方法。用更加精良的計價器來為乘客提供更加方便快捷、優良的服務是本設計的一大目的。凡坐過出租車的人都知道,只要汽車一開

8、動,隨著行駛里程的增加,汽車前面的計價器,里程顯示器顯示的讀數就會從零逐漸增大,而當行駛到某一值時(如3千米)計費數字顯示器開始從起步價(如5元)增加。當出租車到達某地需要在那里等候時,司機按下“計時”鍵,每等候一定時間,計費顯示就增加一個等候費用。汽車繼續行駛時,停止計算等候費,繼續增加里程計費。到達目的地,便可按顯示的數字收費。我國在70年代開始出現出租車,但那時的計費系統大都是從國外進口的,不但不準確,而且價格還十分昂貴。隨著改革開放日益深入,出租車行業的發展勢頭已十分突出,國內很多機械廠家都推出了國產計價器。出租車計價器的功能也從剛開始的只顯示路程(需要司機自己定價,計算后四舍五入),

9、發展到能夠自主計費,以及現在的能夠打發票和語音提示、按時間自主變動單價等功能。隨著城市旅游業的發展,出租車行業已成為城市的窗口,象征著一個城市的文明程度。所以可以本課題的研究很有必要,意義重大。2系統總體方案及硬件設計2.1計價器工作原理出租車計價器是根據乘客乘坐汽車行駛距離和等候時間的多少進行計價,并在行程中同步顯示費用。從起步價開始,當汽車程行駛未滿3公里時,均按起步價計算。過3公里后,實現每1公里單價收費,中間遇暫停時,開始計時收費,測距收費和計時收費的和便構成了乘客的總車費。完整的出租車計價器還應包括存儲、查看、統計等功能。本計價器設計采用單片機控制。主要是利用單片機豐富的I/O端口以

10、及其控制的靈活性,實現基本的里程計價功能、時鐘顯示功能、空車提醒等功能。其原理框圖如下:里程鍵 盤 控 制89S51單片機里程計算單元串口顯示驅動電路總金額顯示等待時 間 原理框架圖通過鍵盤控制計價器的啟動、暫停、空車提示及各種顯示之間的轉換。測量單元是非常重要的單元,用來測量里程;同時與計時器配合工作也可以測速。而單片機是核心處理單元,處理按鍵信息及測量單元的信息,并發出正確的指令,在整個系統中的作用就相當于人的大腦。顯示單元是一個重要的人際交流單元,主要用來顯示費用、里程、總等待時間等信息,為司機和乘客提供各種方便。2.2單片機單元單片機單元是本設計的核心部分,采用的是C51單片機。AT8

11、9C51是美國ATMEL公司生產的低電壓,高性能CMOS8位單片機,片內含4k bytes的可反復擦寫的只讀程序存儲器(PEROM)和128 bytes的隨機存取數據存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準MCS-51指令系統,片內置通用8位中央處理器(CPU)和Flash存儲單元,功能強大AT89C51單片機可為您提供許多高性價比的應用場合,可靈活應用于各種控制領域。主要性能參數:·與MCS-51產品指令系統完全兼容 ·4k字節可重擦寫Flash閃速存儲器·1000次擦寫周期·全靜態操作:0Hz24MHz

12、3;三級加密程序存儲器·128×8字節內部RAM·32個可編程IO口線·2個16位定時計數器·6個中斷源·可編程串行UART通道·低功耗空閑和掉電模式單片機引腳圖如下:AT89C51 提供以下標準功能:4k 字節Flash 閃速存儲器,128字節內部RAM,32 個IO 口線,兩個16位定時計數器,一個5向量兩級中斷結構,一個全雙工串行通信口,片內振蕩器及時鐘電路。同時,AT89C51可降至0Hz的靜態邏輯操作,并支持兩種軟件可選的節電工作模式。空閑方式停止CPU的工作,但允許RAM,定時計數器,串行通信口及中斷系統繼續工作

13、。掉電方式保存RAM中的內容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復位。·P0 口:P0 口是一組8 位漏極開路型雙向IO 口,也即地址數據總線復用口。作為輸出口用時,每位能吸收電流的方式驅動8個TTL邏輯門電路,對端口寫“1”可作為高阻抗輸入端用。在訪問外部數據存儲器或程序存儲器時,這組口線分時轉換地址(低8位)和數據總線復用,在訪問期間激活內部上拉電阻。在FIash編程時,P0口接收指令字節,而在程序校驗時,輸出指令字節,校驗時,要求外接上拉電阻。·P1口:P1是一個帶內部上拉電阻的8位雙向IO口,P1的輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門

14、電路。對端口寫“1”,通過內部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。FIash編程和程序校驗期間,P1接收低8位地址。·P2口:P2是一個帶有內部上拉電阻的8位雙向IO口,P2的輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。在訪問外部程序存儲器或16位地址的外部數據存儲器(例如執行MOVXDPTR指令)時,P2口送出高8位地址數

15、據。在訪問8 位地址的外部數據存儲器(如執行MOVXRI 指令)時,P2 口線上的內容(也即特殊功能寄存器(SFR)區中R2寄存器的內容),在整個訪問期間不改變。Flash編程或校驗時,P2亦接收高位地址和其它控制信號。·P3口:P3口是一組帶有內部上拉電阻的8 位雙向IO 口。P3 口輸出緩沖級可驅動(吸收或輸出電流)4 個TTL邏輯門電路。對P3 口寫入“1”時,它們被內部上拉電阻拉高并可作為輸入端口。作輸入端時,被外部拉低的P3 口將用上拉電阻輸出電流(IIL)。P3口除了作為一般的IO口線外,更重要的用途是它的第二功能,如下表所示:端口引腳第二功能P30RXD(串行輸入口)P

16、31TXD(串行輸出口)P32/INT0(外中斷0)P33/INT1(外中斷1)P34T0(定時計數器0外部輸入)P35T1(定時計數器1外部輸入)P36/WR(外部數據存儲器寫選通)P37/RD(外部數據存儲器讀選通)本設計使用的單片機最小系統如下圖:2.3里程計算里程計算是通過安裝在車輪上的霍爾傳感器A44E檢測到的信號,送到單片機,經處理計算,送給顯示單元的。霍爾傳感器是根據霍爾效應制作的一種磁場傳感器。在半導體薄片兩端通以控制電流I,并在薄片的垂直方向施加磁感應強度為B的勻強磁場,則在垂直于電流和磁場的方向上,將產生電勢差為UH的霍爾電壓。由于A44E 屬于開關型的霍爾器件,其工作電壓

17、范圍比較寬(4.518V),其輸出的信號符合TTL 電平標準,可以直接接到單片機的IO 端口上,而且其最高檢測頻率可達到1MHZ。差分放大器C、施密特觸發器D 和OC 門輸出E 五個基本部分組成。在輸入端輸入電壓CC V ,經穩壓器穩壓后加在霍耳電勢發生器的兩端,根據霍耳效應原理,當霍耳片處在磁場中時,在垂直于磁場的方向通以電流,則與這二者相垂直的方向上將會產生霍耳電勢差H V 輸出,該H V 信號經放大器放大后送至施密特觸發器整形,使其成為方波輸送到OC 門輸出。當施加的磁場達到“工作點”(即OP B )時,觸發器輸出高電壓(相對于地電位),使三極管導通,此時OC 門輸出端輸出低電壓,通常稱

18、這種狀態為“開”。當施加的磁場達到“釋放點”(即rP B )時,觸發器輸出低電壓,三極管截止,使OC 門輸出高電壓,這種狀態為“關”。這樣兩次電壓變換,使霍耳開關完成了一次開關動作。里程測量原理圖如下:本設計選擇了P3.2 口作為信號的輸入端,內部采用外部中斷0,車輪每轉一圈(我們設車輪的周長是1 米),霍爾開關就檢測并輸出信號,引起單片的中斷,對脈計數,當計數達到1000 次時,也就是1 公里,單片機就控制將金額自動的加增加,算公式:單價× 公里數=金額。2.4鍵盤控制及指示燈單元本設計是用了最小系統的所有六個鍵。第一個鍵是計費啟動鍵,按下之后開始計費同時綠燈亮;第二個鍵是計費暫停

19、鍵,按下之后計費暫停同時紅燈亮;第三個鍵是空車提示鍵,按下之后黃燈亮,同時等待時間、里程、費用等都歸零;第四個鍵是單程和往返轉換鍵,可以實現單程、往返的轉化;第五個鍵是里程查詢鍵,按了之后數碼管顯示里程數;第六個鍵是等待時間查詢鍵,按了之后可以查詢等待時間。鍵盤電路如下圖:本設計的燈指示功能主要是方便乘客和司機。按下啟動鍵時綠燈亮這樣既能提示乘客已經開始計費,防止司機多計費又能防止司機忘記按下啟動鍵而造成少收費,使司機受到損失。是一個非常人性化的設計。2.5顯示單元本設計利用的單片機最小系統只有四個數碼管動態顯示所以同一時間內只能顯示費用、里程、等待時間中的一個,所以為了能夠讓乘客和司機能看到

20、各種數據就要用到鍵盤轉換,按下不同的鍵顯示不同的數據。系統默認的是顯示費用,如果想看到其它的數據就要按下相應的按鍵。第五個鍵是里程查詢鍵,按了之后數碼管顯示里程數;第六個鍵是等待時間查詢鍵,按了之后可以查詢等待時間。單片機最小系統所用的數碼顯示管是共陰極的數碼顯示管,送高電平亮。由于四個數碼管共用一個八位端口所以要用到動態顯示。數碼管的動態顯示的掃描時間比較難調節,需要多次的調節。比較繁瑣不過只要堅持多次調節就能夠成功。3 軟件設計本設計的電路部分比較簡單主要是軟件部分,所以軟件是核心部分。主要包括外部中斷0,定時器中斷1,鍵盤掃描,數碼管顯示等模塊。3.1主程序模塊 主程序主要是完成初始化,

21、包括推挽試輸出、設置定時器工作方式、中斷控制寄存器設置。當然還包括一個死循環,循環中包括鍵盤掃描和數碼管顯示。開 始初始化、賦初值鍵盤掃描數碼管顯示判定是那個鍵被按下執行相關操作3.2外部中斷 車輪每轉一周執行一次中斷程序執行一次中斷程序,如果是處在根據里程計費的模式則記錄圈數的變量q和n都增加1,然后判定q是否達到一千,如果達到一千則路程增加二百米。同時判定是單程還是雙程,如果單程則費用增加0.4元,如果是雙程則費用增加0.3元。如果是處在計時收費模式則僅n增加1。流程圖如下 否 是 否 是 否 是 否 是 開始K是否為0q+n+n+q是否為1000j是否大于3f=5d是否為0f=2*(j-

22、3)f=1.5*(j-3)j+0,2結束變量k是否為零是為了判定是否為計程收費,如果k為零則說明是計程收費、如果k不為零則表示是計時收費。變量j表示里程,里程小于3公里時費用為5元,當里程大于三公里時按單程價格為2元/公里,往返價格為1.5元/公里收費。3.3計時測速單元 定時測速主要是為了滿足“車速<5公里/小時的時間累積為總等待時間,每5分鐘等待時間相當于里程數增加1公里”這項要求的。測速的原理是:通過定時器可以實現每一分鐘都執行一次定時器中斷程序,在定時器中斷程序中判定車輪在這一分鐘轉的圈數,然后利用圈數及車輪的周長計算車速。當車速小于5公里/小時時就會進入計時收費模式,此時變量k

23、置1,中斷程序中記錄車運行圈數的不會增加,同時記錄圈數的變量q要減去這一分鐘內的圈數n。當速度再次大于5公里/小時時k又被置0,進入計程收費模式,同時記錄q加上這一分鐘之內的汽車轉過的圈數n。 是 是 否 否 否 是 否 是開始 初始化 賦初值是否到一分鐘n是否大于100q=q-n j=j+0.2 k=1j是否大于3d是否為0f=2*(j-3)f=1.5*(j-3)f=5k是否為1r=nk=0n=0 結束3.4鍵盤掃描單元鍵盤掃描主要是判定哪個鍵被按下然后執行相關的程序。按鍵的具體功能描述如下:第一個鍵是計費啟動鍵,按下之后開始計費同時綠燈亮;第二個鍵是計費暫停鍵,按下之后計費暫停同時紅燈亮;

24、第三個鍵是空車提示鍵,按下之后黃燈亮,同時等待時間、里程、費用等都歸零;第四個鍵是單程和往返轉換鍵,可以實現單程、往返的轉化;第五個鍵是里程查詢鍵,按了之后數碼管顯示里程數;第六個鍵是等待時間查詢鍵,按了之后可以查詢等待時間。3.5顯示單元顯示單元比較簡單只是利用了動態顯示,將要顯示的數據通過數碼管顯示。流程圖如下:開始e是否等于1w是否等于1g=10*fg=j*10g=h顯示g 結束4 Proteus軟件仿真5課程設計體會剛開始時不了解霍爾傳感器是如何使用的所以感覺硬件電路部分無從下手,為了解決這個問題查了很多資料也在網絡上找了很多資料并且和同學進行了討論。明白了霍爾傳感器的工作原理之后就是

25、焊接電路了,這次設計的電路相對還是比較簡單的,所以焊接電路只遇到了一些比較小的問題還是很容易就能解決的。關鍵是程序設計,關于如何測量問題開始有兩種方案:一、用計數器記錄車輪轉過的圈數,二、使用外部中斷記錄車輪轉過的圈數。經過分析發現用計數器記錄圈數不容易測速,所以選擇了使用外部中斷進行記錄圈數。圈定好方案后首先大概的把程序結構想好然后在進行程序的編寫。其實程序的編寫過程還是很順利的,沒有遇到什么困難,但是在程序調試中遇到了一個難題即外部中斷程序不能夠執行,經過了多次的檢查都沒有發現錯,開始懷疑是硬件出了問題于是就懷疑是霍爾傳感器出了問題。不過把霍爾傳感器裝到其他同學的電路上卻運行正常,排除了霍

26、爾傳感器的問題。還是回到了程序上,經過對程序的認真仔細的檢查終于發現了錯誤所在,其實就是一個細節問題,一個很細小的失誤,但是這個失誤讓我付出了很大的代價。首先是花費的時間,為了這個很小的失誤我大概用了近五六個小時的時間,不停的調試、查看程序。其次是很影響心情,因為整個程序的構思和各個方面都沒有什么錯誤,但是偏偏運行結果不正確,這對我造成了很大的心理壓力,信心也很受打擊。解決了這個細小的失誤之后程序和硬件基本上就沒有什么問題了,達到了預想的要求。從本次設計中我學到的最重要的一點就是細節決定成敗。做任何事都要注重細節,正所謂千里之提潰于蟻穴。一定要把每個細節做好,不能只看整體的思路沒有問題就認為大

27、功告成了,往往在某個細節上功虧一簣。其實做好每個細節并不難就看你認真不認真,或許很仔細很認真的去做會在剛開始的時候有點慢,用的時間比較多,但是在調試的時候會省去很多的時間。以前我認為能把程序的主體部分先編出來然后在進行調試就簡單了,但是隨著編寫程序的增多我發現調試和修改程序往往比編寫程序更麻煩,更需要精力。因為你第一遍編寫的時候是按照你的設想編寫的,由于你的不認真可能造成實際編寫的和你所設想的算法有些出入,然后你檢查的時候由于潛意識中認為是按照自己的設想編寫的就很容易忽略某些小的失誤,這樣就很難查出那些不太明顯的錯誤。恰恰就是這些小的失誤可能造成你整個工程的無法完成。參考文獻1河南理工大學.微

28、機原理與單片機接口技術M.2 徐淑華等著. 單片機微型機原理及應用 .哈爾濱工業大學出版社3 馬淑華等著單片機原理與接口技術.北京郵電大學出版社 4李群芳、張士軍、黃建.單片微型計算機與接口技術(第三版).電子工業出版社,2008.5李群芳,肖看.單片機原理接口與應用.北京:清華大學出版社,2005.附1:源程序代碼#include <stc51.h>#define uint unsigned int#define uchar unsigned char sbit w1=P00;sbit w2=P01;sbit w3=P02;sbit w4=P03;sbit L1=P05;sbit

29、 L2=P06;sbit L3=P07;sbit H1=P36;sbit H2=P37;sbit D1=P20;sbit D4=P23;sbit D7=P26;sbit D10=P33;sbit D3=P22;sbit D6=P25;sbit D12=P35;sbit D2=P21;sbit D5=P24;sbit D8=P27;sbit D11=P34;char tab1=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;char tab2=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef;s

30、tatic uchar x,m,k,s,d,e,r,w,y,g1,g2,g3,g4;static int q,n;static float j,f;static uint g,h;void xianshi();void dealy(uint i,c)/延時函數 uint a,b; for(a=i;a>0;a-)for(b=c;b>0;b-); void INT0() interrupt 0/外部中斷0,用于記錄車輪圈數 if(k=0)/k=1時為表示計時收費,k=0時表示計程收費 q=q+r;/加上在計時收費最后一分鐘里漏加的圈數r=0; q+;/圈數加一 if(q>=100

31、0)/是否達到二百米 q=0; j=j+0.2;/里程增加二百米 if(j>3&&d=0)/單程 f=5+2*(j-3); if(j>3&&d=1)/往返 f=5+1.5*(j-3); if(j<=3)/里程小于三公里費用為五元 f=5; if(j<=3)/里程小于三公里費用為五元 f=5; n+;/用于測速的圈數n加一void T1() interrupt 3/定時器1的中斷 TH1 = (65536-50000)/256;/賦初值 TL1 = (65536-50000)%256; x+; if(x>=5)/是否到一秒 x=0;

32、m+; if(m-1)>=10)/是否到一分鐘 m=0; if(n<100)/n小于100時表示速度小于5公里/小時 q=q-n;/圈數減去計程最后一分鐘中多加的圈數 j=j+0.2;/每分鐘相當于兩公里 if(j>3&&d=0)/單程 f=5+2*(j-3); if(j>3&&d=1)/往返 f=5+1.5*(j-3); if(j<=3)/里程小于三公里費用為五元 f=5; k=1;/進入計時收費模式,k=1時為表示計時收費,k=0時表示計程收費。 h+;/等待時間加一分鐘 if(n>=100)/n大于100時表示速度大于5

33、公里/小時 if(k=1)/是否為進入計程收費模式的第一個一分鐘,如果是則需要把q加n r=n; k=0;/進入計程收費模式,k=1時為表示計時收費,k=0時表示計程收費。 n=0;/n清零 void key1()/鍵盤掃描 H1=0; H2=1; if(L1=0)/第一個鍵被按下,是啟動鍵 while(L1=0)/松手檢測 xianshi();TR1=1;/開定時器EX0=1;/開外部中斷0D1=D4=D7=D10=0;/所有的綠燈亮D3=D6=D12=D2=D5=D8=D11=1;/關閉其它燈 if(L2=0) /第二個鍵被按下,是暫停鍵 while(L2=0)/松手檢測xianshi();TR1=0;/關定時器EX0=0;/關外部中斷D1=D4=D7=D10=D2=D5=D8=D11=1;/關閉其它燈D3=D6=D12=0;/三個紅燈亮 if(L3=0)/第三個鍵按下,是清零鍵及空車提示鍵 while(L3=0)/松手檢測 xianshi(); f=j=q=n=m=x=h=0;/所有的記錄變量清零 TR1=0;

溫馨提示

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

評論

0/150

提交評論