畢業設計基于單片機的多功能出租車計價器設計_第1頁
畢業設計基于單片機的多功能出租車計價器設計_第2頁
畢業設計基于單片機的多功能出租車計價器設計_第3頁
畢業設計基于單片機的多功能出租車計價器設計_第4頁
畢業設計基于單片機的多功能出租車計價器設計_第5頁
已閱讀5頁,還剩31頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

.z編號:畢業論文(設計)題目指導教師學生**學號專業教學單位**學院機電工程系〔蓋章〕二O**年**月**日目錄引言··································································11.1出租車計價器概述·········································································11.2本設計任務···················································································1設計任務·················································································1設計要求·················································································11.3系統主要功能···············································································2出租車計價器硬件設計·················································32.1系統的硬件構成及功能····································································32.2AT89S51單片機及其引腳說明··························································32.3AT24C02引腳圖及其引腳功能···························································62.4AT24C02掉電存儲單元的設計·························································62.5里程計算、計價單元的設計·····························································72.6數據顯示單元設計··········································································8系統軟件設計···························································103.1系統主程序設計············································································103.2定時中斷程序設計········································································103.3里程計數中斷效勞程序設計····························································103.4中途等待中斷效勞程序設計····························································103.5鍵盤效勞程序設計·········································································103.6顯示子程序效勞程序設計·······························································10系統調試與測試結果分析··············································134.1使用的儀器儀表···········································································134.2系統調試·····················································································13完畢語·································································14附錄···········································································15參考文獻·······································································40-.z多功能出租車計價器*坤指導教師:鄧廣福第1節引言本次設計利用單片機技術來實現一臺多功能出租車計價器,具有性能可靠、電路簡單、本錢低等特點。1.1出租車計價器概述:計價器顯示的營運金額是營運里程與價格的函數〔等候時間一般折算成一定比例的里程來計算〕。出租車計價器通過傳感器與行駛車輛連接。出租汽車的實際里程通過傳感器的脈沖信號在計價器里折算成一定的計價營運里程。目前市場上出租車計價器功能主要有具有數據的復位功能、白天/晚上轉換功能、數據輸出功能、計時計價功能等等,但能夠進展語音播報數據信息的出租車計價器還是比擬少見的,針對這一點我們來設計一款多功能出租車計價器,在原有功能的根底上增加單價輸出、單價調整、路程輸出、顯示當前的系統時間、語音播報數據信息等功能。1.2本設計任務設計任務設計一款基于AT89S51單片機的出租車計價器。設計要求1.根本要求不同情況具有不同的收費標準。白天晚上途中等待〔>10min開場收費〕能進展手動修改單價。具有數據的復位功能。IO口分配的簡易要求。距離檢測使用霍爾開關A44E白天/晚上收費標準的轉換開關數據的清零開關單價的調整〔最好使用+和-按鍵〕數據輸出〔采用LCM103〕。單價輸出2位路程輸出2位總金額輸出3位按鍵。啟動計時開關數據復位〔清零〕白天/晚上轉換2.發揮局部能夠在掉電的情況下存儲單價等數據。能夠顯示當前的系統時間。語音播報數據信息。1.3系統主要功能本課程設計所設計的出租車計價器的主要功能有:數據的復位、白天/晚上轉換、數據輸出、計時計價、單價輸出及調整、路程輸出、語音播報數據信息、實現在系統掉電的時候保存單價和系統時間等信息等功能。輸出采用8段數碼顯示管。本電路設計的計價器不但能實現根本的計價,而且還能根據白天、黑夜、中途等待來調節單價,同時在不計價的時候還能作為時鐘為司機同志提供方便。第2節計價器硬件設計本系統的硬件設計主要包括單片機AT89S51、數據顯示部件、A44E霍爾傳感器電路、AT24C02掉電存儲單元的設計、里程計算及計價單元的設計。在硬件設計過程中,充分利用各部件的功能,實現多功能的出租車計價器設計。2.1系統的硬件構成及功能計價器的單片機控制方案圖如圖1所示。它由以下幾個部件組成:單片機AT89S51、總金額及單價顯示部件、鍵盤控制部件,AT24C02掉電存儲控制、里程計算單元、串中顯示驅動電路等。利用單片機豐富的IO端口,及其控制的靈活性,實現根本的里程計價功能和價風格節、時鐘顯示功能。不但能實現所要求的功能而且能在很大的程度上擴展功能,而且還可以方便的對系統進展升級。具體電路參見“多功能出租車計價器總體電路圖〞。圖1單片機控制方案圖2.2AT89S51單片機及其引腳說明AT89S51是美國ATMEL公司生產的低功耗,高性能CMOS8位單片機,片內含4KB的可系統編程的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準8051指令系統及引腳。它集Flash程序存儲器既可在線編程〔ISP〕也可用傳統方法進展編程及通用8位微處理器于單片芯片中,具有高性價比。AT89S51是一個有40個引腳的芯片,引腳配置如圖2所示。圖2AT89S51引腳配置AT89S51芯片的40個引腳功能為:VCC電源電壓。GND接地。RST復位輸入。當RST變為高電平并保持2個機器周期時,將使單片機復位。WDT溢出將使該引腳輸出高電平,設置SFRAU*R的DISRTO位〔地址8EH〕可翻開或關閉該功能。DISKRTO位缺省為RESET輸出高電平翻開狀態。*TAL1反向振蕩放大器的輸入及內部時鐘工作電路的輸入。*TAL2來自反向振蕩放大器的輸出。P0口一組8位漏極開路型雙向I/O口。也即地址/數據總線復用口。作為輸出口用時,每位能驅動8個TTL邏輯門電路,對端口寫“1〞可作為高阻抗輸入端用。在外部數據存儲器或程序存儲器時,這組口線分時轉換地址〔低8位〕和數據總線復用,在期間激活內部上拉電阻。在Flash編程時,P0口接收指令字節,而在程序校驗時,輸出指令字節,校驗時,要求外接上拉電阻。P1口一個帶內部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅動〔吸收或輸出電流〕4個TTL邏輯門電路。對端口寫“1〞,通過內部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內部存在上拉電阻,*個引腳被外部信號拉低時會輸出一個電流〔IIL〕。Flash編程和程序校驗期間,P1接收低8位地址。P1口局部端口引腳及功能如表1所示。表1P1口特殊功能P1口引腳特殊功能P1.5MOSI〔用于ISP編程〕P1.6MOSI〔用于ISP編程〕P1.7SCK〔用于ISP編程〕P2口一個帶內部上拉電阻的8位雙向I/O口。P1的輸出緩沖級可驅動〔吸收或輸出電流〕4個TTL邏輯門電路。對端口寫“1〞,通過內部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內部存在上拉電阻,*個引腳被外部信號拉低時會輸出一個電流〔IIL〕。在外部程序存儲器或16位地址的外部數據存儲器時,P2口送出高8位地址數據。在8位地址的外部數據存儲器時,P2口線上的內容在整個期間不改變。Flash編程和程序校驗期間,P2亦接收低8位地址。P3口一個帶內部上拉電阻的8位雙向I/O口。P3的輸出緩沖級可驅動〔吸收或輸出電流〕4個TTL邏輯門電路。對P3口寫“1〞時,它們被內部的上拉電阻把拉到高電并可作輸入端口。作輸入端口使用時,被外部拉低的P3口將用上拉電阻輸出電流〔IIL〕。P3口除了作為一般的I/O口線外,更重要的用途是它的第二功能,如表2所示。P3口還接收一些用于Flash閃速存儲器編程和程序校驗期間的控制信號。表2P3口特殊功能P3口引腳特殊功能P3.0R*D〔串行輸入口〕P3.1T*D〔串行輸出口〕P3.2〔外部中斷0〕P3.3〔外部中斷1〕P3.4T0〔定時器0外部輸入〕P3.5T1〔定時器1外部輸入〕P3.6〔外部數據存儲器寫選通〕P3.7〔外部數據存儲器讀選通〕PSEN/程序儲存允許輸出是外部程序存儲器的讀先通信號,當AT89S51由外部程序存儲器取指令〔或數據〕時,每個機器周期兩次PSEN/有效,即輸出兩個脈沖。當外部數據存儲器,沒有兩次有效的PSEN/信號。EA/VPP外部允許。欲使CPU僅外部程序存儲器,EA端必須保持低電平,需注意的是:如果加密位LB1被編程,復位時內部會鎖存EA端狀態。Flash存儲器編程時,該引腳加上+12V的編程電壓VPP。2.3AT24C02引腳圖及其引腳功能AT24C02芯片引腳配置如圖3所示。圖3AT24C02引腳配置圖AT24C02芯片DIP封裝,共有8個引腳,其中:A2~A0地址引腳;SDA、SCLI2C總線接口;WP寫保護引腳,WP接VSS時,制止寫入高位地址,WP接VDD時,允許寫入任何地址;VCC電源端GND接地端2.4AT24C02掉電存儲單元的設計掉電存儲單元的作用是在電源斷開的時候,存儲當前設定的單價信息。AT24C02是ATMEL公司的2KB字節的電可擦除存儲芯片,采用兩線串行的總線和單片機通訊,電壓最低可以到2.5V,額定電流為1mA,靜態電流10Ua(5.5V),芯片內的資料可以在斷電的情況下保存40年以上,而且采用8腳的DIP封裝,使用方便。其電路如圖4所示。圖4掉電存儲電路原理圖圖中R8、R10是上拉電阻,其作用是減少AT24C02的靜態功耗,由于AT24C02的數據線和地址線是復用的,采用串口的方式傳送數據,所以只用兩根線SCL〔移位脈沖〕和SDA〔數據/地址〕與單片機傳送數據。每當設定一次單價,系統就自動調用存儲程序,將單價信息保存在芯片內;當系統重新上電的時候,自動調用讀存儲器程序,將存儲器內的單價等信息,讀到緩存單元中,供主程序使用。2.5里程計算、計價單元的設計里程計算是通過安裝在車輪上的霍爾傳感器A44E檢測到的信號,送到單片機,經處理計算,送給顯示單元的。其原理如圖5所示。圖5傳感器測距示意圖由于A44E屬于開關型的霍爾器件,其工作電壓*圍比擬寬〔4.5~18V〕,其輸出的信號符合TTL電平標準,可以直接接到單片機的IO端口上,而且其最高檢測頻率可到達1MHZ。A44E集成霍耳開關由穩壓器A、霍耳電勢發生器(即硅霍耳片)B、差分放大器C、施密特觸發器D和OC門輸出E五個根本局部組成。在輸入端輸入電壓CCV,經穩壓器穩壓后加在霍耳電勢發生器的兩端,根據霍耳效應原理,當霍耳片處在磁場中時,在垂直于磁場的方向通以電流,則與這二者相垂直的方向上將會產生霍耳電勢差HV輸出,該HV信號經放大器放大后送至施密特觸發器整形,使其成為方波輸送到OC門輸出。當施加的磁場到達?工作點?(即OPB)時,觸發器輸出高電壓(相對于地電位),使三極管導通,此時OC門輸出端輸出低電壓,通常稱這種狀態為?開?。當施加的磁場到達?釋放點?(即rPB)時,觸發器輸出低電壓,三極管截止,使OC門輸出高電壓,這種狀態為?關?。這樣兩次電壓變換,使霍耳開關完成了一次開關動作。我們選擇了P3.2口作為信號的輸入端,內部采用外部中斷0〔這樣可以減少程序設計的麻煩〕,車輪每轉一圈〔我們設車輪的周長是1米〕,霍爾開關就檢測并輸出信號,引起單片機的中斷,對脈計數,當計數到達1000次時,也就是1公里,單片機就控制將金額自動的加增加,其計算公式:當前單價×公里數=金額。2.6數據顯示單元設計由于設計要求有單價〔2位〕、路程〔2位〕、總金額〔3位〕顯示輸出,加上我們另外擴展了時鐘顯示〔包含時分秒的顯示〕,采用LCD液晶段碼顯示,在距離屏幕1米之外就無法看清數據,不能滿足要求,而且在白天其比照度也不能夠滿足要求,因此我們采用6位LED數碼管的分屏顯示,如圖6所示:時鐘顯示〔圖中顯示為時鐘顯示〔圖中顯示為12點0分46秒〕總金額和單價顯示〔圖中顯示為總金額55.3元,每公里4.6元〕路程和單價顯示〔圖中顯示為總路程12公里,當前單價4.6元〕單價調整顯示〔圖中顯示為右起白天單價4.6元/晚上7.8/中途等待1.2元〕圖6采用6位LED數碼管的分屏顯示數據的分屏的顯示是通過按鍵S1來實現切換的,如圖7所示。在出租車不走的時候,按下S1,可以實現數據的分屏顯示;車在行走的時候只有總金額和單價顯示屏在顯示,當到達目的地的時候,客戶要求查看總的里程的時候,就可以按下S1切換到里程和單價顯示屏,供客戶查詢。顯示電路的電路原理圖如圖8所示。圖7S1切換顯示屏圖8顯示器原理圖從單片機串口輸出的信號先送到左邊的移位存放器〔74HC164〕,由于移位脈沖的作用,使數據向右移,到達顯示的目的。移位存放器74HC164還兼作數碼管的驅動,插頭1〔header1〕接電源,插頭2〔header2〕接數據和脈沖輸出端。電路中的三個整流管D1~D3的作用是降低數碼管的工作電壓,增加其使用壽命。第3節系統的軟件設計本系統的軟件設計主要可分為主程序模塊、定時計數中斷程序、里程計數中斷效勞程序、中途等待中斷效勞程序、顯示子程序效勞程序、鍵盤效勞程序六大模塊。下面對各局部模塊作介紹。3.1系統主程序設計在主程序模塊中,需要完成對各接口芯片的初始化、出租車起價和單價的初始化、中斷向量的設計以及開中斷、循環等待等工作。另外,在主程序模塊中還需要設置啟動/去除標志存放器、里程存放器和價格存放器,并對它們進展初始化。然后,主程序將根據各標志存放器的內容,分別完成啟動、去除、計程和計價等不同的操作。主程序流程圖如圖9所示。當按下S1時,就啟動計價,將根據里程存放器中的內容計算和判斷出行駛里程是否已超過起價公里數。假設已超過,則根據里程值、每公里的單價數和起價數來計算出當前的累計價格,并將結果存于價格存放器中,然后將時間和當前累計價格送顯示電路顯示出來。當到達目的地的時候,由于霍爾開關沒有送來脈沖信號,就停頓計價,顯示當前所應該付的金額和對應的單價,到下次啟動計價時,系統自動對顯示清零,并重新進展初始化過程。3.2定時中斷效勞程序在定時中斷效勞程序中,每100ms產生一次中斷,當產生10次中斷的時候,也就到了一秒,送數據到相應的顯示緩沖單元,并調用顯示子程序實時顯示。其程序流程如圖10所示。3.3里程計數中斷效勞程序每當霍爾傳感器輸出一個低電平信號就使單片機中斷一次,當里程計數器對里程脈沖計滿1000次時,使微機進入里程計數中斷效勞程序中。在該程序中,需要完成當前行駛里程數和總額的累加操作,并將結果存入里程和總額存放器中。3.4中途等待中斷效勞程序當在計數狀態下霍爾開關沒有輸出信號,片內的T1定時器便被啟動,每當計時到達10分鐘,就對當前金額加上中途等待的單價,以后每十分鐘都自動加上中途等待的單價。當中途等待完畢的時候,也就自動切換到正常的計價。3.5顯示子程序效勞程序由于是分屏顯示數據,所以就要用到4個顯示子程序,分別是:時分秒顯示子程序〔HMS_DIS〕、金額單價顯示子程序〔CP_DIS〕、路程單價顯示子程序(DP_DIS)、單價調節子程序(PA_DIS)。3.6鍵盤效勞程序鍵盤采用查詢的方式,放在主程序中,當沒有按鍵按下的時候,單片機循環主程序,一旦有按鍵按下,便轉向相應的子程序處理,處理完畢再返回。開場開場初始化數據初始化數據否S1按下否S1按下.是是是S4按下是S4按下.否否設定晚上單價設定默認單價〔白天〕設定晚上單價設定默認單價〔白天〕否否按下S4.按下S4.是啟動計價器是啟動計價器設定中途等待單價設定中途等待單價圖9主程序流程圖否是到一公里.是否否是顯示金額及單價S3按下.顯示路程和單價S3按下.總路程加1總金額加1是里程中斷.停頓計價和里程計數是否S4按下.返回時間顯示是否傳感有信號.開場圖9主程序流程圖否是到一公里.是否否是顯示金額及單價S3按下.顯示路程和單價S3按下.總路程加1總金額加1是里程中斷.停頓計價和里程計數是否S4按下.返回時間顯示是否傳感有信號.開場保護現場保護現場重置計數初值重置計數初值否否中斷10次.中斷10次.是是數據送顯示緩沖單元數據送顯示緩沖單元調用顯示子程序調用顯示子程序恢復現場恢復現場并中斷返回圖10定時中斷效勞程序第4節系統調試與測試結果分析根據系統設計方案,本系統的調試共分為三大局部:硬件調試,軟件調試和軟硬件聯調。測試包括里程計價測試、掉電存儲測試測試。4.1使用的儀器儀表數字萬用表DT9203單片機仿真器WAVE6000燒寫器GF2100雙蹤穩壓穩流電源DH1718E-5數字示波器TDS10024.2系統調試根據系統設計方案,本系統的調試共分為三大局部:硬件調試,軟件調試和軟硬件聯調。由于在系統設計中采用模塊設計法,所以方便對各電路模塊功能進展逐級測試。結束語本款出租車計價器比目前市場現在的增加了不少功能,其中包括單價輸出、單價調整、路程輸出、顯示當前的系統時間、語音播報數據信息等功能。另外,多功能出租車計價器還具有性能可靠、電路簡單、本錢低、實用性強等特點,加上經過優化的程序,使其有很高的智能化水平。通過本次課程設計,又使我學到了許多書本上無法學到的知識,也使也深該體會到單片機技術應用領域的廣泛,不僅使我對學過的單片機知識有了很多的穩固,同時也對單片機這一門課程產生了更大的興趣。在本次課程設計過程中,我學會了在網絡上查找有關本設計的各硬件的資源,其中包括:AT89S51單片機及其引腳說明、AT24C02引腳圖及其引腳功能等,為本次課程設計提供了一定的資料。由于平時很少進展課程設計,所以對于課程設計報告的格式也是近期才接觸到,經過這兩次的設計,為我們以后畢業設計的制作也奠定了一定的根底。附錄系統實物圖略。2.總體設計電路圖多功能出租車計價器總體電路圖3.計價表使用說明

〔1〕S1按鍵的功能在出租車不走的時候,按下S1,可以實現數據的分屏顯示;車在行走的時候只有總金額和單價顯示屏在顯示,當到達目的地的時候,客戶要求查看總的里程的時候,就可以按下S1切換到里程和單價顯示屏,供客戶查詢?!?〕S2按鍵的功能在按下S1按鍵之后,假設接著按下S2鍵則進展單價調整〔默認為調整白天單價〕,當接著按下S1時,則進展晚上單價調,再次按下S1可進展中途等待單價調整。當單價調整完畢后,可以通過過按下S2按鍵進展時間調整,默認為調整時,接著按下S1可進展調整分,分調整后再接下S1可進展秒調整。當時調整完成后,假設接著按下S2則又可進展單價調整?!?〕S3按鍵的功能在顯示金額及單價時,假設按下S3鍵則顯示路程和單價,再次按下S3,可返回顯示金額及單價。〔4〕S4按鍵的功能在按下S1按鍵之后,假設接著按下S4按鍵,則進展設定默認晚上單價,并啟動計價器,假設沒有按下S4則可設定默認單價〔白天〕,并啟動計價器。當設定默認晚上單價完畢后,再次接下S4按鍵,則可設定默認中途等待單價,并啟動計價器。當設定默認中途等待單價后,假設還按一次S4,則返回系統時間的顯示。4.全部源程序該出租車計價器的系統軟件設計源程序如下:DAY_PRICEEQU6FHNIGHT_PRICEEQU6EHMIDWAY_PRICEEQU6DHSTART_PRICEEQU6CHCOUNTLEQU6BHCOUNTHEQU6AHM100EQU69H;外部中斷次數DISTANCEEQU68H;行車距離MS100EQU67HSECEQU66HMINEQU65HHOUREQU64HLEDSLEQU63H;時分鈔顯示緩沖區LEDSHEQU62HLEDMLEQU61HLEDMHEQU60HLEDHLEQU5FHLEDHHEQU5EHLEDDANJIALEQU5DH;總額,單價顯示緩沖區LEDDANJIAHEQU5CHLINE_EQU5BHLEDCOUNT1EQU5AHLEDCOUNT2EQU59HLEDCOUNT3EQU58HLEDDANJIA2LEQU57H;路程,單價顯示緩沖區LEDDANJIA2HEQU56HLINE__EQU55HLINE___EQU54HLEDDISTANCELEQU53HLEDDISTANCEHEQU52HLEDDAY_PLEQU51H;中途,晚上,白天顯示緩沖區LEDDAY_PHEQU50HLEDNIG_PLEQU4FHLEDNIG_PHEQU4EHLEDW_PLEQU4DHLEDW_PHEQU4CHS1BITP1.0S2BITP1.1S3BITP1.2S4BITP1.3S11EQU4BHS22EQU4AHS33EQU49HS44EQU48HM1EQU47HH1EQU46HM2EQU45HH2EQU44HPRICEEQU43HORG0000HAJMPMAINORG0003HAJMPTOORG000BHAJMPTOTIMEORG001BHAJMPTOSTARTORG0030HMAIN:MOVSP,*70HMOVTMOD,*11HMOVTH0,*3CHMOVTL0,*0B0HMOVTH1,*3CHMOVTL1,*0B0HMOV22H,*0AHSETBEASETBTR0SETBE*0SETBIT0SETBET0SETBET1MOVR7,*34MOVR0,*69HLOOPL:MOVR0,*0DECR0DJNZR7,LOOPLMOVCOUNTL,*00H;起步價MOVCOUNTH,*05HMOVDAY_PRICE,*25H;白天價格初始化MOVNIGHT_PRICE,*30H;晚上價格初始化MOVMIDWAY_PRICE,*10H;中途等待初始化MOVSTART_PRICE,*50H;起步價初始化MOVS11,*0MOVS22,*0MOVS33,*0MOVS44,*0MOVDISTANCE,*02HMOVHOUR,*12HKEY_MAIN:SETBTR0ACALLHMS_DISACALLT100MSDACALLT100MSDACALLT100MSDS1,KEY_MAINACALLT10MSDS1,KEY_MAINJNBS1,$SJMPWAI1WA1:S1,K1ACALLT10MSDS1,K1WAIT1:JNBS1,WAIT1MOVR0,*LEDDANJIALMOVR2,*6CLRAMOVCOUNTL,AMOVCOUNTH,AMOVM100,AMOVDISTANCE,ABK1:MOVR0,ADECR0DJNZR2,BK1MOVPRICE,DAY_PRICE;起動初始化MOVCOUNTL,*00H;起步價MOVCOUNTH,*05HLCALLCP_DIS;總金額和單價顯示K1:S2,K2ACALLT10MSDS2,K2WAIT2:JNBS2,WAIT2INCS22MOVA,S22CJNEA,*1,NE*T1LCALLPA_DISLJMPKEY_DJNE*T1:CJNEA,*2,NE*T2CLRTR0LCALLHMS_DISLJMPKEY_SJNE*T2:CJNEA,*3,K2MOVS22,*0K2:S3,K3ACALLT10MSDS3,K3WAIT3:JNBS3,WAIT3INCS33MOVA,S33CJNEA,*1,N*T1LCALLDP_DISN*T1:CJNEA,*2,N*T2CLRCMOVA,M2SUBBA,M1MOVM1,AMOVA,H2SUBBA,H1MOVH1,AN*T2:CJNEA,*3,K3MOVS33,*0LCALLCP_DISK3:S4,BK_KEY_MAINACALLT10MSDS4,BK_KEY_MAINWAIT4:JNBS4,WAIT4INCS44MOVA,S44CJNEA,*1,NT1MOVPRICE,DAY_PRICELCALLCP_DISNT1:CJNEA,*2,NT2MOVPRICE,NIGHT_PRICELCALLCP_DISNT2:CJNEA,*3,NT3MOVPRICE,MIDWAY_PRICESETBTR1LCALLCP_DISNT3:CJNEA,*4,BK_KEY_MAINMOVS44,*0LJMPKEY_MAINBK_KEY_MAIN:LJMPWA1KEY_DJ:S1,KY1ACALLT10MSDS1,KY1WAIT5:JNBS1,WAIT5INCS11MOVA,S11CJNEA,*1,NE*T11LJMPDAY_PNE*T11:CJNEA,*2,NE*T12LCALLNIG_PNE*T12:CJNEA,*3,KY1LCALLMID_PMOVS11,*0LJMPKEY_MAINKY1:S2,KY2ACALLT10MSDS2,KY2WAIT6:JNBS2,WAIT6INCS22MOVA,S22CJNEA,*1,NE*T13LCALLPA_DISLJMPKEY_DJNE*T13:CJNEA,*2,NE*T14CLRTR0LCALLHMS_DISLCALLKEY_SJNE*T14:CJNEA,*3,KY2MOVS22,*0LJMPKEY_MAINKY2:AJMPKEY_DJKEY_SJ:S1,KEY1ACALLT10MSDS1,KEY1WAIT7:JNBS1,WAIT7INCS11MOVA,S11CJNEA,*1,NE*T21LCALLHOU_TNE*T21:CJNEA,*2,NE*T22LCALLMIN_TNE*T22:CJNEA,*3,KEY1MOVS11,*0LJMPKEY_MAINKEY1:S2,KEY2ACALLT10MSDS2,KEY2WAIT8:JNBS2,WAIT8INCS22MOVA,S22CJNEA,*1,NE*T23LCALLPA_DISLJMPKEY_DJNE*T23:CJNEA,*2,NE*T24CLRTR0LCALLHMS_DISNE*T24:CJNEA,*3,KEY2MOVS22,*0LCALLKEY_SJLJMPKEY_MAINKEY2:AJMPKEY_SJDAY_P:SETBF0LCALLT100MSDLCALLT100MSDMOVLEDDAY_PL,*0AHMOVLEDDAY_PH,*0AHLCALLPA_DIS1LCALLT100MSDLCALLT100MSDLCALLPA_DISLP1:S3,KEY11MOVA,*1ADDA,DAY_PRICEDAAMOVDAY_PRICE,AMOVA,DAY_PRICECJNEA,*99H,KEY11MOVDAY_PRICE,*0KEY11:S4,KEY12LCALLT10MSDS4,KEY12MOVA,DAY_PRICEADDA,*99HDAAMOVDAY_PRICE,ACJNEA,*00H,KEY12MOVA,*99HKEY12:S1,KEY13ACALLT10MSDS1,KEY13WAIT11:JNBS1,WAIT11INCS11MOVA,S11CJNEA,*1,NE*T31LCALLDAY_PNE*T31:CJNEA,*2,NE*T32LCALLNIG_PNE*T32:CJNEA,*3,NE*T33LCALLMID_PNE*T33:CJNEA,*4,KEY13MOVS11,*0KEY13:S2,KEY14LCALLT10MSDS2,KEY14WAIT12:JNBS2,WAIT12LJMPKEY_MAINKEY14:AJMPDAY_PNIG_P:SETBF0;調用定時延時標志位LCALLT100MSDLCALLT100MSDMOVLEDNIG_PL,*0AHMOVLEDNIG_PH,*0AHLCALLPA_DIS1LCALLT100MSDLCALLT100MSDLCALLPA_DISS3,KEY21LCALLT10MSDS3,KEY21MOVA,*1ADDA,NIGHT_PRICEDAAMOVNIGHT_PRICE,ACJNEA,*99H,KEY21MOVNIGHT_PRICE,*0KEY21:S4,KEY22LCALLT10MSDS4,KEY22MOVA,NIGHT_PRICEADDA,*99HDAAMOVNIGHT_PRICE,ACJNEA,*00H,KEY22MOVNIGHT_PRICE,*99HKEY22:S1,KEY23ACALLT10MSDS1,KEY23WAIT15:JNBS1,WAIT15INCS11MOVA,S11CJNEA,*1,NE*T41LCALLDAY_PNE*T41:CJNEA,*2,NE*T42LCALLNIG_PNE*T42:CJNEA,*3,NE*T43LCALLMID_PNE*T43:CJNEA,*4,KEY23MOVS11,*0LJMPKEY_DJKEY23:S2,KEY24LCALLT10MSDS2,KEY24WAIT30:JNBS2,WAIT30LJMPKEY_MAINKEY24:AJMPNIG_PMID_P:SETBF0;調用定時延時標志位LCALLT100MSDMOVLEDW_PL,*0AHMOVLEDW_PH,*0AHLCALLPA_DIS1LCALLT100MSDLCALLPA_DISS3,KEY31LCALLT10MSDS3,KEY31MOVA,MIDWAY_PRICEADDA,*1DAAMOVMIDWAY_PRICE,ACJNEA,*99H,KEY31MOVMIDWAY_PRICE,*00HCJNEA,*100,KEY31MOVMIDWAY_PRICE,*0KEY31:S4,KEY32LCALLT10MSDS4,KEY32MOVA,MIDWAY_PRICEADDA,*99HDAAMOVMIDWAY_PRICE,ACJNEA,*00H,KEY32MOVNIGHT_PRICE,*99HKEY32:S1,KEY33ACALLT10MSDS1,KEY33WAIT18:JNBS1,WAIT18INCS11MOVA,S11CJNEA,*1,NE*T51LCALLDAY_PNE*T51:CJNEA,*2,NE*T52LCALLNIG_PNE*T52:CJNEA,*3,NE*T53LCALLMID_PNE*T53:CJNEA,*4,KEY33MOVS11,*0LJMPKEY_DJKEY33:S2,KEY34LCALLT10MSDS2,KEY34WAIT31:JNBS2,WAIT31LJMPKEY_MAINKEY34:AJMPMID_PHOU_T:SETBF0;調用定時延時標志位LCALLT100MSDLCALLT100MSDMOVLEDHL,*0AHMOVLEDHH,*0AHLCALLHMS_DIS1;直接調用顯示,不經過拆分程序LCALLT100MSDLCALLT100MSDMOVSEC,*0LCALLHMS_DISS3,KEY41MOVA,HOURADDA,*1DAAMOVHOUR,ACJNEA,*24H,KEY41MOVHOUR,*0KEY41:S4,KEY42MOVA,HOURADDA,*99HDAAMOVHOUR,ACJNEA,*99H,KEY42MOVHOUR,*23HKEY42:S1,KEY43ACALLT10MSDS1,KEY43WAIT21:JNBS1,WAIT21INCS11MOVA,S11CJNEA,*1,NE*T61LJMPHOU_TNE*T61:CJNEA,*2,NE*T62LJMPMIN_TNE*T62:CJNEA,*3,KEY43MOVS11,*0LJMPKEY_SJKEY43:S2,KEY44LCALLT10MSDS2,KEY44WAIT32:JNBS2,WAIT32LJMPKEY_MAINKEY44:AJMPHOU_TMIN_T:SETBF0;調用定時延時標志位LCALLT100MSDLCALLT100MSDMOVLEDML,*0AHMOVLEDMH,*0AHLCALLHMS_DIS1;直接調用顯示,不經過拆分程序LCALLT100MSDLCALLT100MSDMOVSEC,*0LCALLHMS_DISS3,KEY51MOVA,MINADDA,*1DAAMOVMIN,ACJNEA,*60H,KEY51MOVMIN,*0KEY51:S4,KEY52MOVA,MINADDA,*99HDAAMOVMIN,ACJNEA,*99H,KEY52MOVMIN,*59HKEY52:S1,KEY53ACALLT10MSDS1,KEY53WAIT24:JNBS1,WAIT24INCS11MOVA,S11CJNEA,*1,NE*T71LCALLHOU_TNE*T71:CJNEA,*2,NE*T72LCALLMIN_TNE*T72:CJNEA,*3,KEY53SETBTR0MOVS11,*0LJMPKEY_SJKEY53:S2,KEY54LCALLT10MSDS2,KEY54WAIT33:JNBS2,WAIT33LJMPKEY_MAINKEY54:AJMPMIN_TTOTIME:PUSHPSWPUSHACCMOVTH0,*3CHMOVTL0,*0B0HINCMS100MOVA,MS100CJNEA,*10,RETURNMOVMS100,*0MOVA,SECADDA,*1DAAMOVSEC,ACJNEA,*60H,RETURNMOVSEC,*0MOVA,*1HADDA,MINDAAMOVMIN,ACJNEA,*60H,RETURNMOVMIN,*0MOVA,*1HADDA,HOURDAAMOVHOUR,ACJNEA,*24H,RETURNMOVHOUR,*0RETURN:POPACCPOPPSWRETITO:PUSHPSWPUSHACCMOVA,*1ADDA,M100MOVM100,AMOVA,M100CJNEA,*100,RETURN1MOVM100,*0INC21HMOVA,21HCJNEA,*0AH,RETURN1;已經到了1公里MOV21H,*0MOVA,*1ADDA,DISTANCEDAAMOVDISTANCE,AMOVA,PRICEADDA,COUNTLDAAMOVCOUNTL,ACJNEA,*10H,RETURN1MOVCOUNTL,*0MOVA,*1ADDA,COUNTHDAAMOVCOUNTH,ACJNEA,*99H,RETURN1MOVCOUNTH,*0RETURN1:POPACCPOPPSWRETITOSTART:PUSHPSWPUSHACCMOVTH1,*3CHMOVTL1,*0B0HDJNZ22H,RETURN2;1S未到返回MOV22H,*0AHMOVA,*1ADDA,23HDAAMOV23H,ACJNEA,*60H,RETURN2MOV23H,*0MOVA,*1ADDA,24HDAAMOV24H,ACJNEA,*10H,RETURN2MOV24H,*0MOVA,START_PRICEADDA,COUNTLDAAMOVCOUNTL,ACJNEA,*10H,RETURN2MOVCOUNTL,*0MOVA,*1ADDA,COUNTHDAAMOVCOUNTH,ACJNEA,*99H,RETURN2MOVCOUNTH,*0RETURN2:POPACCPOPPSWRETIHMS_DIS:PUSHACCPUSHPSWSETBRS1MOVR0,*SEC;時分秒的拆分(三個字節)MOVR1,*LEDSLMOVR6,*03HLOOP1:MOVA,R0MOVB,AANLA,*0FHMOVR1,ADECR1MOVA,BSWAPAANLA,*0FHMOVR1,ADECR1DECR0DJNZR6,LOOP1POPPSWPOPACCHMS_DIS1:PUSHACCPUSHPSWMOVR7,*06HMOVR0,*LEDSLLOOP:MOVA,R0MOVDPTR,*TABMOVCA,A+DPTRMOVSBUF,ABK:CTI,NE*TSJMPBKNE*T:DECR0DJNZR7,LOOPCLRRS1POPPSWPOPACCRETCP_DIS:PUSHACCPUSHPSWSETBRS1MOVR0,*COUNTH;MOVR1,*LEDCOUNT2MOVA,R0MOVB,AANLA,*0FHMOVR1,ADECR1MOVA,BSWAPAANLA,*0FHMOVR1,AMOVLEDCOUNT1,COUNTLMOVA,LEDCOUNT1;送總金額低位MOVDPTR,*TABMOVCA,A+DPTRMOVSBUF,AJNBTI,$CLRTIMOVA,LEDCOUNT2;送總金額中位MOVDPTR,*TABMOVCA,A+DPTRCPLACC.4MOVSBUF,AJNBTI,$CLRTIMOVA,LEDCOUNT3;送總金額高位MOVDPTR,*TABMOVCA,A+DPTRMOVSBUF,AJNBTI,$CLRTICLRRS1MOVSBUF,*0FEH;送短線(短線的字型碼是0FEH)JNBTI,$CLRTIMOVR0,*PRICE;單價拆分(兩個字節)MOVR1,*LEDDANJIALMOVR6,*03HMOVA,R0MOVB,AANLA,*0FHMOVR1,

溫馨提示

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

評論

0/150

提交評論