多功能出租車計價器設計資料_第1頁
多功能出租車計價器設計資料_第2頁
多功能出租車計價器設計資料_第3頁
多功能出租車計價器設計資料_第4頁
多功能出租車計價器設計資料_第5頁
已閱讀5頁,還剩39頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、多功能出租車計價器目 錄第1節 引 言···············································

2、;··················· 11. 1 出租車計價器概述····························&#

3、183;············································ 11. 2 本設計任務···&#

4、183;·················································&#

5、183;····························· 1 1.2.1 設計任務··················&

6、#183;·················································&

7、#183;············ 1 1.2.2 設計要求···································

8、·············································· 11. 3 系統主要功能··

9、;··················································

10、;··························· 2第2節 出租車計價器硬件設計····················&

11、#183;···························· 32.1 系統的硬件構成及功能··················

12、83;················································· 32

13、. 2 AT89S51單片機及其引腳說明··············································

14、3;··········· 32.3 AT24C02引腳圖及其引腳功能···································

15、························ 62. 4 AT24C02 掉電存儲單元的設計······················

16、··································· 62.5 里程計算、計價單元的設計············

17、················································· 72.6

18、數據顯示單元設計················································

19、3;························· 8第3節 系統軟件設計······················

20、3;····································103. 1 系統主程序設計···········&#

21、183;·················································&#

22、183;·············· 103. 2 定時中斷程序設計································

23、3;······································· 103. 3 里程計數中斷服務程序設計·······&#

24、183;·················································&#

25、183;·· 103.4 中途等待中斷服務程序設計············································&

26、#183;··············· 103. 5 鍵盤服務程序設計·······························

27、83;·········································103. 6 顯示子程序服務程序設計·····

28、83;·················································

29、83;······· 10第4節 系統調試與測試結果分析·······································

30、83;······ 134. 1 使用的儀器儀表·········································

31、·································· 134.2 系統調試··············&

32、#183;·················································&

33、#183;···················· 134.3 測試結果···························&#

34、183;·················································&#

35、183;······· 134.4 測試結果分析········································&

36、#183;····································· 13第5節 結束語··········

37、83;·················································

38、83;···· 14附錄············································

39、3;······························ 15參考文獻··················

40、83;·················································

41、83;·· 40多功能出租車計價器第1節 引 言本次課程設計利用單片機技術來實現一臺多功能出租車計價器,具有性能可靠、電路簡單、成本低等特點。1.1 出租車計價器概述計價器顯示的營運金額是營運里程與價格的函數(等候時間一般折算成一定比例的里程來計算)。出租車計價器通過傳感器與行駛車輛連接。出租汽車的實際里程通過傳感器的脈沖信號在計價器里折算成一定的計價營運里程。目前市場上出租車計價器功能主要有具有數據的復位功能、白天/晚上轉換功能、數據輸出功能、計時計價功能等等,但能夠進行語音播報數據信息的出租車計價器還是比較少見的,針對這一點我們來設計一款多功能出租車計價器,在原有功能的

42、基礎上增加單價輸出、單價調整、路程輸出、顯示當前的系統時間、語音播報數據信息等功能。1.2 本設計任務1.2.1 設計任務 設計一款基于AT89S51單片機的出租車計價器。1.2.2 設計要求1.基本要求(1) 不同情況具有不同的收費標準。l 白天l 晚上l 途中等待(>10min 開始收費)(2) 能進行手動修改單價。(3) 具有數據的復位功能。(4) IO 口分配的簡易要求。l 距離檢測使用霍爾開關A44El 白天/晚上收費標準的轉換開關l 數據的清零開關l 單價的調整(最好使用和按鍵)(5) 數據輸出(采用LCM103)。l 單價輸出 2 位l 路程輸出 2 位l 總金額輸出 3

43、位(6) 按鍵。l 啟動計時開關l 數據復位(清零)l 白天/晚上轉換2.發揮部分(1) 能夠在掉電的情況下存儲單價等數據。(2) 能夠顯示當前的系統時間。(3) 語音播報數據信息。1.3 系統主要功能 本課程設計所設計的出租車計價器的主要功能有:數據的復位、白天/晚上轉換、數據輸出、計時計價、單價輸出及調整、路程輸出、語音播報數據信息、實現在系統掉電的時候保存單價和系統時間等信息等功能。輸出采用8 段數碼顯示管。本電路設計的計價器不但能實現基本的計價,而且還能根據白天、黑夜、中途等待來調節單價,同時在不計價的時候還能作為時鐘為司機同志提供方便。第2節 計價器硬件設計本系統的硬件設計主要包括單

44、片機AT89S51、數據顯示部件、A44E霍爾傳感器電路、AT24C02 掉電存儲單元的設計、里程計算及計價單元的設計。在硬件設計過程中,充分利用各部件的功能,實現多功能的出租車計價器設計。2.1 系統的硬件構成及功能計價器的單片機控制方案圖如圖1所示。它由以下幾個部件組成:單片機AT89S51、總金額及單價顯示部件、鍵盤控制部件,AT24C02 掉電存儲控制、里程計算單元、串中顯示驅動電路等。利用單片機豐富的IO端口,及其控制的靈活性,實現基本的里程計價功能和價格調節、時鐘顯示功能。不但能實現所要求的功能而且能在很大的程度上擴展功能,而且還可以方便的對系統進行升級。具體電路參見“多功能出租車

45、計價器總體電路圖”。 圖1 單片機控制方案圖2.2 AT89S51單片機及其引腳說明AT89S51是美國ATMEL公司生產的低功耗,高性能CMOS 8位單片機,片內含4KB的可系統編程的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準8051指令系統及引腳。它集Flash程序存儲器既可在線編程(ISP)也可用傳統方法進行編程及通用 8位微處理器于單片芯片中,具有高性價比。AT89S51是一個有40個引腳的芯片,引腳配置如圖2所示。圖2 AT89S51引腳配置AT89S51芯片的40個引腳功能為:VCC 電源電壓。GND 接地。RST 復位輸入。當RST變

46、為高電平并保持2個機器周期時,將使單片機復位。WDT溢出將使該引腳輸出高電平,設置SFR AUXR的DISRTO位(地址8EH)可打開或關閉該功能。DISKRTO位缺省為RESET輸出高電平打開狀態。XTAL1 反向振蕩放大器的輸入及內部時鐘工作電路的輸入。XTAL2 來自反向振蕩放大器的輸出。P0口 一組8位漏極開路型雙向I/O口。也即地址/數據總線復用口。作為輸出口用時,每位能驅動8個TTL邏輯門電路,對端口寫“1”可作為高阻抗輸入端用。在訪問外部數據存儲器或程序存儲器時,這組口線分時轉換地址(低8位)和數據總線復用,在訪問期間激活內部上拉電阻。在Flash編程時,P0口接收指令字節,而在

47、程序校驗時,輸出指令字節,校驗時,要求外接上拉電阻。P1口 一個帶內部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。Flash編程和程序校驗期間,P1接收低8位地址。P1口部分端口引腳及功能如表1所示。表1 P1口特殊功能P1口引腳特殊功能P1.5MOSI(用于ISP編程)P1.6MOSI(用于ISP編程)P1.7SCK(用于ISP編程)P2口 一個帶內部上拉電阻的8位雙向I/O口。P1的輸出緩沖

48、級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。在訪問外部程序存儲器或16位地址的外部數據存儲器時,P2口送出高8位地址數據。在訪問8位地址的外部數據存儲器時,P2口線上的內容在整個訪問期間不改變。Flash編程和程序校驗期間,P2亦接收低8位地址。P3口 一個帶內部上拉電阻的8位雙向I/O口。P3的輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對P3口寫“1”時,它們被內部的上拉電阻把拉到高電并可作輸入端口。作輸入端口使用時,被

49、外部拉低的P3口將用上拉電阻輸出電流(IIL)。P3口除了作為一般的I/O口線外,更重要的用途是它的第二功能,如表2所示。P3口還接收一些用于Flash閃速存儲器編程和程序校驗期間的控制信號。表2 P3口特殊功能P3口引腳特殊功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2(外部中斷0)P3.3(外部中斷1)P3.4T0(定時器0外部輸入)P3.5T1(定時器1外部輸入)P3.6 (外部數據存儲器寫選通)P3.7 (外部數據存儲器讀選通)PSEN/ 程序儲存允許輸出是外部程序存儲器的讀先通信號,當AT89S51由外部程序存儲器取指令(或數據)時,每個機器周期兩次PSEN/有

50、效,即輸出兩個脈沖。當訪問外部數據存儲器,沒有兩次有效的PSEN/信號。EA/VPP 外部訪問允許。欲使CPU僅訪問外部程序存儲器,EA端必須保持低電平,需注意的是:如果加密位LB1被編程,復位時內部會鎖存EA端狀態。Flash存儲器編程時,該引腳加上+12V的編程電壓VPP。2.3 AT24C02引腳圖及其引腳功能AT24C02芯片引腳配置如圖3所示。圖3 AT24C02引腳配置圖AT24C02芯片DIP封裝,共有8個引腳,其中:A2A0 地址引腳;SDA、SCL I2C總線接口;WP 寫保護引腳,WP接VSS時,禁止寫入高位地址,WP接VDD時,允許寫入任何地址;VCC 電源端GND 接地

51、端2.4 AT24C02 掉電存儲單元的設計掉電存儲單元的作用是在電源斷開的時候,存儲當前設定的單價信息。AT24C02 是ATMEL公司的2KB 字節的電可擦除存儲芯片,采用兩線串行的總線和單片機通訊,電壓最低可以到2.5V,額定電流為1mA,靜態電流10Ua(5.5V),芯片內的資料可以在斷電的情況下保存40 年以上,而且采用8 腳的DIP 封裝,使用方便。其電路如圖4所示。圖 4 掉電存儲電路原理圖圖中R8、R10 是上拉電阻,其作用是減少AT24C02 的靜態功耗,由于AT24C02 的數據線和地址線是復用的,采用串口的方式傳送數據,所以只用兩根線SCL(移位脈沖)和SDA(數據/地址

52、)與單片機傳送數據。每當設定一次單價,系統就自動調用存儲程序,將單價信息保存在芯片內;當系統重新上電的時候,自動調用讀存儲器程序,將存儲器內的單價等信息,讀到緩存單元中,供主程序使用。2.5 里程計算、計價單元的設計 里程計算是通過安裝在車輪上的霍爾傳感器A44E檢測到的信號,送到單片機,經處理計算,送給顯示單元的。其原理如圖5所示。圖 5 傳感器測距示意圖由于A44E 屬于開關型的霍爾器件,其工作電壓范圍比較寬(4.518V),其輸出的信號符合TTL 電平標準,可以直接接到單片機的IO 端口上,而且其最高檢測頻率可達到1MHZ。A44E 集成霍耳開關由穩壓器A、霍耳電勢發生器(即硅霍耳片)B

53、、差分放大器C、施密特觸發器D 和OC 門輸出E 五個基本部分組成。在輸入端輸入電壓CC V ,經穩壓器穩壓后加在霍耳電勢發生器的兩端,根據霍耳效應原理,當霍耳片處在磁場中時,在垂直于磁場的方向通以電流,則與這二者相垂直的方向上將會產生霍耳電勢差H V 輸出,該H V 信號經放大器放大后送至施密特觸發器整形,使其成為方波輸送到OC 門輸出。當施加的磁場達到工作點(即OP B )時,觸發器輸出高電壓(相對于地電位),使三極管導通,此時OC 門輸出端輸出低電壓,通常稱這種狀態為開。當施加的磁場達到釋放點(即rP B )時,觸發器輸出低電壓,三極管截止,使OC 門輸出高電壓,這種狀態為關。這樣兩次電

54、壓變換,使霍耳開關完成了一次開關動作。 我們選擇了P3.2 口作為信號的輸入端,內部采用外部中斷0(這樣可以減少程序設計的麻煩),車輪每轉一圈(我們設車輪的周長是1 米),霍爾開關就檢測并輸出信號,引起單片機的中斷,對脈計數,當計數達到1000 次時,也就是1 公里,單片機就控制將金額自動的加增加,其計算公式:當前單價×公里數=金額。2.6 數據顯示單元設計由于設計要求有單價(2 位)、路程(2 位)、總金額(3 位)顯示輸出,加上我們另外擴展了時鐘顯示(包含時分秒的顯示),采用LCD 液晶段碼顯示,在距離屏幕1 米之外就無法看清數據,不能滿足要求,而且在白天其對比度也不能夠滿足要求

55、,因此我們采用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 切換到里程和單價顯示屏,

56、供客戶查詢。顯示電路的電路原理圖如圖8所示。圖 7 S1切換顯示屏圖 8 顯示器原理圖從單片機串口輸出的信號先送到左邊的移位寄存器(74HC164),由于移位脈沖的作用,使數據向右移,達到顯示的目的。移位寄存器74HC164還兼作數碼管的驅動,插頭1(header1)接電源,插頭2(header2)接數據和脈沖輸出端。電路中的三個整流管D1D3 的作用是降低數碼管的工作電壓,增加其使用壽命。第3節 系統的軟件設計本系統的軟件設計主要可分為主程序模塊、定時計數中斷程序、里程計數中斷服務程序、中途等待中斷服務程序、顯示子程序服務程序、鍵盤服務程序六大模塊。下面對各部分模塊作介紹。3.1 系統主程序

57、設計在主程序模塊中,需要完成對各接口芯片的初始化、出租車起價和單價的初始化、中斷向量的設計以及開中斷、循環等待等工作。另外,在主程序模塊中還需要設置啟動/清除標志寄存器、里程寄存器和價格寄存器,并對它們進行初始化。然后,主程序將根據各標志寄存器的內容,分別完成啟動、清除、計程和計價等不同的操作。主程序流程圖如圖9 所示。當按下S1時,就啟動計價,將根據里程寄存器中的內容計算和判斷出行駛里程是否已超過起價公里數。若已超過,則根據里程值、每公里的單價數和起價數來計算出當前的累計價格,并將結果存于價格寄存器中,然后將時間和當前累計價格送顯示電路顯示出來。當到達目的地的時候,由于霍爾開關沒有送來脈沖信

58、號,就停止計價,顯示當前所應該付的金額和對應的單價,到下次啟動計價時,系統自動對顯示清零,并重新進行初始化過程。3.2 定時中斷服務程序在定時中斷服務程序中,每100ms 產生一次中斷,當產生10 次中斷的時候,也就到了一秒,送數據到相應的顯示緩沖單元,并調用顯示子程序實時顯示。其程序流程如圖10 所示。3.3 里程計數中斷服務程序每當霍爾傳感器輸出一個低電平信號就使單片機中斷一次,當里程計數器對里程脈沖計滿1000 次時,使微機進入里程計數中斷服務程序中。在該程序中,需要完成當前行駛里程數和總額的累加操作,并將結果存入里程和總額寄存器中。3.4 中途等待中斷服務程序當在計數狀態下霍爾開關沒有

59、輸出信號,片內的T1 定時器便被啟動,每當計時到達10分鐘,就對當前金額加上中途等待的單價,以后每十分鐘都自動加上中途等待的單價。當中途等待結束的時候,也就自動切換到正常的計價。3.5 顯示子程序服務程序由于是分屏顯示數據,所以就要用到4 個顯示子程序,分別是:時分秒顯示子程序(HMS_DIS)、金額單價顯示子程序(CP_DIS)、路程單價顯示子程序(DP_DIS)、單價調節子程序(PA_DIS)。3.6 鍵盤服務程序鍵盤采用查詢的方式,放在主程序中,當沒有按鍵按下的時候,單片機循環主程序,一旦有按鍵按下,便轉向相應的子程序處理,處理結束再返回。開始初始化數據否S1按下?是是S4按下?否設定晚

60、上單價設定默認 單價(白天)否按下S4?是啟動計價器設定中途等待單價圖9 主程序流程圖否是到一公里?是否否是顯示金額及單價S3按下?顯示路程和單價S3按下?總路程加1總金額加1是里程中斷?停止計價和里程計數是否S4按下?返回時間顯示是否傳感有信號? 開始保護現場重置計數初值否中斷10次?是數據送顯示緩沖單元調用顯示子程序恢復現場并中斷返回 圖10 定時中斷服務程序第4節 系統調試與測試結果分析根據系統設計方案,本系統的調試共分為三大部分:硬件調試,軟件調試和軟硬件聯調。測試包括里程計價測試、掉電存儲測試測試。4.1 使用的儀器儀表 數字萬用表DT9203單片機仿真器WAVE6000燒寫器 GF

61、2100雙蹤穩壓穩流電源DH1718E-5數字示波器 TDS10024.2 系統調試根據系統設計方案,本系統的調試共分為三大部分:硬件調試,軟件調試和軟硬件聯調。由于在系統設計中采用模塊設計法,所以方便對各電路模塊功能進行逐級測試。4.3 測試結果 略。4.4 測試結果分析 略。結 束 語本款出租車計價器比目前市場現在的增加了不少功能,其中包括單價輸出、單價調整、路程輸出、顯示當前的系統時間、語音播報數據信息等功能。另外,多功能出租車計價器還具有性能可靠、電路簡單、成本低、實用性強等特點,加上經過優化的程序,使其有很高的智能化水平。通過本次課程設計,又使我學到了許多書本上無法學到的知識,也使也

62、深該體會到單片機技術應用領域的廣泛,不僅使我對學過的單片機知識有了很多的鞏固,同時也對單片機這一門課程產生了更大的興趣。在本次課程設計過程中,我學會了在網絡上查找有關本設計的各硬件的資源,其中包括:AT89S51單片機及其引腳說明、AT24C02引腳圖及其引腳功能等,為本次課程設計提供了一定的資料。由于平時很少進行課程設計,所以對于課程設計報告的格式也是近期才接觸到,經過這兩次的設計,為我們以后畢業設計的制作也奠定了一定的基礎。附 錄1. 系統實物圖 略。2. 總體設計電路圖多功能出租車計價器總體電路圖3計價表使用說明 (1)S1按鍵的功能在出租車不走的時候,按下S1,可以實現數據的

63、分屏顯示;車在行走的時候只有總金額和單價顯示屏在顯示,當到達目的地的時候,客戶要求查看總的里程的時候,就可以按下S1 切換到里程和單價顯示屏,供客戶查詢。(2)S2按鍵的功能 在按下S1按鍵之后,若接著按下S2鍵則進行單價調整(默認為調整白天單價),當接著按下S1時,則進行晚上單價調,再次按下S1可進行中途等待單價調整。當單價調整結束后,可以通過過按下S2按鍵進行時間調整,默認為調整時,接著按下S1可進行調整分,分調整后再接下S1可進行秒調整。當時調整完成后,若接著按下S2則又可進行單價調整。(3)S3按鍵的功能 在顯示金額及單價時,若按下S3鍵則顯示路程和單價,再次按下S3,可返回顯示金額及

64、單價。(4)S4按鍵的功能在按下S1按鍵之后,若接著按下S4按鍵,則進行設定默認晚上單價,并啟動計價器,若沒有按下S4則可設定默認單價(白天),并啟動計價器。當設定默認晚上單價結束后,再次接下S4按鍵,則可設定默認中途等待單價,并啟動計價器。當設定默認中途等待單價后,若還按一次S4,則返回系統時間的顯示。4. 全部源程序該出租車計價器的系統軟件設計源程序如下:DAY_PRICEEQU 6FHNIGHT_PRICEEQU 6EHMIDWAY_PRICEEQU 6DHSTART_PRICEEQU 6CHCOUNTL EQU 6BHCOUNTH EQU 6AHM100 EQU 69H ; 外部中斷次

65、數DISTANCE EQU 68H ; 行車距離MS100 EQU 67HSEC EQU 66HMIN EQU 65HHOUR EQU 64HLEDSL EQU 63H ; 時分鈔顯示緩沖區LEDSH EQU 62HLEDML EQU 61HLEDMH EQU 60HLEDHL EQU 5FHLEDHH EQU 5EHLEDDANJIAL EQU 5DH ; 總額,單價顯示緩沖區LEDDANJIAH EQU 5CHLINE_ EQU 5BHLEDCOUNT1 EQU 5AHLEDCOUNT2 EQU 59HLEDCOUNT3 EQU 58HLEDDANJIA2L EQU 57H ; 路程,單價

66、顯示緩沖區LEDDANJIA2H EQU 56HLINE_ EQU 55HLINE_ EQU 54HLEDDISTANCEL EQU 53HLEDDISTANCEH EQU 52HLEDDAY_PL EQU 51H ; 中途,晚上,白天顯示緩沖區LEDDAY_PH EQU 50HLEDNIG_PL EQU 4FHLEDNIG_PH EQU 4EHLEDW_PL EQU 4DHLEDW_PH EQU 4CHS1 BIT P1.0S2 BIT P1.1S3 BIT P1.2S4 BIT P1.3S11 EQU 4BHS22 EQU 4AHS33 EQU 49HS44 EQU 48HM1 EQU 4

67、7HH1 EQU 46HM2 EQU 45HH2 EQU 44HPRICE EQU 43HORG 0000HAJMPMAINORG 0003HAJMPTOORG 000BHAJMPTOTIMEORG 001BHAJMPTOSTARTORG 0030HMAIN: MOV SP,#70HMOV TMOD, #11HMOV TH0, #3CHMOV TL0, #0B0HMOV TH1, #3CHMOV TL1, #0B0HMOV 22H, #0AHSETB EASETB TR0SETB EX0SETB IT0SETB ET0SETB ET1MOV R7,#34MOV R0,#69HLOOPL:MOV

68、 R0,#0DEC R0DJNZR7,LOOPLMOV COUNTL, #00H ; 起步價MOV COUNTH, #05HMOV DAY_PRICE,#25H ; 白天價格初始化MOV NIGHT_PRICE,#30H ; 晚上價格初始化MOV MIDWAY_PRICE,#10H ; 中途等待初始化MOV START_PRICE, #50H ; 起步價初始化MOV S11, #0MOV S22, #0MOV S33, #0MOV S44, #0MOV DISTANCE, #02HMOV HOUR, #12HKEY_MAIN: SETB TR0ACALL HMS_DISACALL T100MS

69、DACALL T100MSDACALL T100MSDJB S1, KEY_MAINACALL T10MSDJB S1, KEY_MAINJNB S1,$SJMP WAI1WA1:JB S1, K1ACALL T10MSDJB S1, K1WAIT1:JNB S1, WAIT1MOV R0, #LEDDANJIALMOV R2, #6CLR AMOV COUNTL,AMOV COUNTH,AMOV M100, AMOV DISTANCE,ABK1: MOV R0, ADEC R0DJNZ R2, BK1MOV PRICE,DAY_PRICE; 起動初始化MOV COUNTL, #00H; 起步

70、價MOV COUNTH, #05HLCALL CP_DIS; 總金額和單價顯示K1: JB S2, K2ACALL T10MSDJB S2, K2WAIT2: JNB S2, WAIT2INC S22MOV A, S22CJNE A, #1, NEXT1LCALL PA_DISLJMP KEY_DJNEXT1:CJNE A, #2, NEXT2CLR TR0LCALL HMS_DISLJMP KEY_SJNEXT2:CJNE A, #3, K2MOV S22, #0K2: JB S3, K3ACALL T10MSDJB S3, K3WAIT3:JNB S3, WAIT3INC S33MOV A

71、, S33CJNE A, #1, NXT1LCALL DP_DISNXT1: CJNE A, #2, NXT2CLR CMOV A, M2SUBB A, M1MOV M1, AMOV A, H2SUBB A, H1MOV H1, ANXT2: CJNE A, #3, K3MOV S33, #0LCALL CP_DISK3: JB S4, BK_KEY_MAINACALL T10MSDJB S4, BK_KEY_MAINWAIT4:JNB S4, WAIT4INC S44MOV A, S44CJNE A, #1, NT1MOV PRICE,DAY_PRICELCALL CP_DISNT1:CJN

72、E A, #2, NT2MOV PRICE,NIGHT_PRICELCALL CP_DISNT2:CJNE A, #3, NT3MOV PRICE,MIDWAY_PRICESETB TR1LCALL CP_DISNT3:CJNE A, #4, BK_KEY_MAINMOV S44, #0LJMP KEY_MAINBK_KEY_MAIN: LJMP WA1KEY_DJ:JB S1, KY1ACALL T10MSDJB S1, KY1WAIT5:JNB S1, WAIT5INC S11MOV A, S11CJNE A, #1, NEXT11LJMP DAY_PNEXT11: CJNE A, #2,

73、NEXT12LCALL NIG_PNEXT12:CJNE A, #3, KY1LCALL MID_PMOV S11, #0LJMP KEY_MAINKY1:JB S2, KY2ACALL T10MSDJB S2, KY2WAIT6:JNB S2, WAIT6INC S22MOV A, S22CJNE A, #1, NEXT13LCALL PA_DISLJMP KEY_DJNEXT13:CJNE A, #2, NEXT14CLR TR0LCALL HMS_DISLCALL KEY_SJNEXT14:CJNE A, #3, KY2MOV S22, #0LJMP KEY_MAINKY2:AJMP K

74、EY_DJKEY_SJ:JB S1, KEY1ACALL T10MSDJB S1, KEY1WAIT7:JNB S1, WAIT7INC S11MOV A, S11CJNE A, #1,NEXT21LCALL HOU_TNEXT21:CJNE A, #2,NEXT22LCALL MIN_TNEXT22: CJNE A, #3,KEY1MOV S11, #0LJMP KEY_MAINKEY1: JB S2, KEY2ACALL T10MSDJB S2, KEY2WAIT8:JNB S2, WAIT8INC S22MOV A, S22CJNE A, #1, NEXT23LCALL PA_DISLJ

75、MP KEY_DJNEXT23:CJNE A, #2, NEXT24CLR TR0LCALL HMS_DISNEXT24:CJNE A, #3, KEY2MOV S22,#0LCALL KEY_SJLJMP KEY_MAINKEY2:AJMP KEY_SJDAY_P:SETB F0 LCALL T100MSDLCALL T100MSDMOV LEDDAY_PL, #0AHMOV LEDDAY_PH, #0AHLCALL PA_DIS1LCALL T100MSDLCALL T100MSDLCALL PA_DISLP1: JB S3, KEY11MOV A, #1ADD A, DAY_PRICED

76、A AMOV DAY_PRICE,AMOV A, DAY_PRICECJNE A, #99H, KEY11MOV DAY_PRICE, #0KEY11: JB S4, KEY12LCALL T10MSDJB S4, KEY12MOV A,DAY_PRICEADD A, #99HDA AMOV DAY_PRICE,ACJNE A, #00H, KEY12MOV A, #99HKEY12: JB S1, KEY13ACALL T10MSDJB S1, KEY13WAIT11: JNB S1, WAIT11INC S11MOV A, S11CJNE A, #1,NEXT31LCALL DAY_PNE

77、XT31:CJNE A, #2,NEXT32LCALL NIG_PNEXT32:CJNE A, #3,NEXT33LCALL MID_PNEXT33:CJNE A, #4, KEY13MOV S11, #0KEY13:JB S2, KEY14LCALL T10MSDJB S2, KEY14WAIT12:JNB S2, WAIT12LJMP KEY_MAINKEY14:AJMP DAY_PNIG_P:SETB F0 ;調用定時延時標志位LCALL T100MSDLCALL T100MSDMOV LEDNIG_PL, #0AHMOV LEDNIG_PH, #0AHLCALL PA_DIS1LCAL

78、L T100MSDLCALL T100MSDLCALL PA_DISJB S3, KEY21LCALL T10MSDJB S3, KEY21MOV A, #1ADD A, NIGHT_PRICEDA AMOV NIGHT_PRICE,ACJNE A, #99H,KEY21MOV NIGHT_PRICE,#0KEY21:JB S4, KEY22LCALL T10MSDJB S4, KEY22MOV A, NIGHT_PRICEADD A, #99HDA AMOV NIGHT_PRICE,ACJNE A, #00H, KEY22MOV NIGHT_PRICE,#99HKEY22:JB S1, KE

79、Y23ACALL T10MSDJB S1, KEY23WAIT15:JNB S1, WAIT15INC S11MOV A, S11CJNE A, #1,NEXT41LCALL DAY_PNEXT41:CJNE A, #2,NEXT42LCALL NIG_PNEXT42:CJNE A, #3,NEXT43LCALL MID_PNEXT43:CJNE A, #4, KEY23MOV S11, #0LJMP KEY_DJKEY23:JB S2, KEY24LCALL T10MSDJB S2, KEY24WAIT30:JNB S2, WAIT30LJMP KEY_MAINKEY24: AJMP NIG

80、_PMID_P: SETB F0 ;調用定時延時標志位LCALL T100MSDMOV LEDW_PL, #0AHMOV LEDW_PH, #0AHLCALL PA_DIS1LCALL T100MSDLCALL PA_DISJB S3, KEY31LCALL T10MSDJB S3, KEY31MOV A, MIDWAY_PRICEADD A, #1DA AMOV MIDWAY_PRICE,ACJNE A, #99H, KEY31MOV MIDWAY_PRICE, #00HCJNE A, #100, KEY31MOV MIDWAY_PRICE, #0KEY31: JB S4, KEY32LCA

81、LL T10MSDJB S4, KEY32MOV A, MIDWAY_PRICEADD A, #99HDA AMOV MIDWAY_PRICE,ACJNE A, #00H, KEY32MOV NIGHT_PRICE,#99HKEY32: JB S1, KEY33ACALL T10MSDJB S1, KEY33WAIT18: JNB S1, WAIT18INC S11MOV A, S11CJNE A, #1,NEXT51LCALL DAY_PNEXT51: CJNE A, #2,NEXT52LCALL NIG_PNEXT52: CJNE A, #3,NEXT53LCALL MID_PNEXT53

82、: CJNE A, #4, KEY33MOV S11, #0LJMP KEY_DJKEY33: JB S2, KEY34LCALL T10MSDJB S2, KEY34WAIT31:JNB S2, WAIT31LJMP KEY_MAINKEY34: AJMP MID_PHOU_T: SETB F0 ;調用定時延時標志位LCALL T100MSDLCALL T100MSDMOV LEDHL, #0AHMOV LEDHH, #0AHLCALL HMS_DIS1;直接調用顯示,不經過拆分程序LCALL T100MSDLCALL T100MSDMOV SEC, #0LCALL HMS_DISJB S3, KEY41MOV

溫馨提示

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

評論

0/150

提交評論