單片機(jī)原理與應(yīng)用技術(shù)課程設(shè)計(jì)報(bào)告_第1頁
單片機(jī)原理與應(yīng)用技術(shù)課程設(shè)計(jì)報(bào)告_第2頁
單片機(jī)原理與應(yīng)用技術(shù)課程設(shè)計(jì)報(bào)告_第3頁
單片機(jī)原理與應(yīng)用技術(shù)課程設(shè)計(jì)報(bào)告_第4頁
單片機(jī)原理與應(yīng)用技術(shù)課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、單片機(jī)原理與應(yīng)用技術(shù)課程設(shè)計(jì)報(bào)告題目 基于單片機(jī)控制的出租車計(jì)價(jià)器專業(yè)班級(jí): 電氣工程及其自動(dòng)化 2021年3月6日基于單片機(jī)控制的出租車計(jì)價(jià)器任務(wù)書一. 設(shè)計(jì)目的與要求1.根本功能1顯示:可以顯示 單價(jià)、里程、總金額。2停車計(jì)費(fèi)功能:中途因故停車超過5分鐘后每分鐘按當(dāng)時(shí)單價(jià)的50%收費(fèi)。3自動(dòng)分時(shí)計(jì)費(fèi)功能:白天和夜間應(yīng)能自動(dòng)更換單價(jià)。2.性能 里程誤差小于2%。3.擴(kuò)展功能1可增加時(shí)鐘功能。2可增加數(shù)據(jù)掉電保護(hù)功能。二.方案完成時(shí)間 三周 1第一周完成軟件和硬件的整體設(shè)計(jì),同時(shí)按要求上交設(shè)計(jì)報(bào)告一份。 2第二周完成軟件的具體設(shè)計(jì)和硬件的制作。 3第三周完成軟件和硬件的聯(lián)合調(diào)試。目 錄 TOC

2、 o 1-3 h z u HYPERLINK l _Toc216792292 1 引言 PAGEREF _Toc216792292 h 1 HYPERLINK l _Toc216792293 2 總體設(shè)計(jì)方案 PAGEREF _Toc216792293 h 1 HYPERLINK l _Toc216792294 2.1 設(shè)計(jì)思路 PAGEREF _Toc216792294 h 1 HYPERLINK l _Toc216792295 PAGEREF _Toc216792295 h 1 HYPERLINK l _Toc216792296 3 設(shè)計(jì)原理分析 PAGEREF _Toc216792296

3、 h 2 HYPERLINK l _Toc216792297 PAGEREF _Toc216792297 h 2 HYPERLINK l _Toc216792298 PAGEREF _Toc216792298 h 2 HYPERLINK l _Toc216792299 PAGEREF _Toc216792299 h 3 HYPERLINK l _Toc216792300 PAGEREF _Toc216792300 h 3 HYPERLINK l _Toc216792301 PAGEREF _Toc216792301 h 4 HYPERLINK l _Toc216792302 3.1.5 鍵盤電

4、路 PAGEREF _Toc216792302 h 5 HYPERLINK l _Toc216792303 PAGEREF _Toc216792303 h 6 HYPERLINK l _Toc216792304 PAGEREF _Toc216792304 h 6 HYPERLINK l _Toc216792305 3.2.2外部計(jì)數(shù)中斷計(jì)程計(jì)價(jià)程序 PAGEREF _Toc216792305 h 6 HYPERLINK l _Toc216792306 4 結(jié)束語 PAGEREF _Toc216792306 h 7 HYPERLINK l _Toc216792307 參考文獻(xiàn) PAGEREF _

5、Toc216792307 h 8 HYPERLINK l _Toc216792308 附錄 PAGEREF _Toc216792308 h 9 HYPERLINK l _Toc216792309 整體電路圖 PAGEREF _Toc216792309 h 9 HYPERLINK l _Toc216792310 源程序 PAGEREF _Toc216792310 h 10基于單片機(jī)控制的出租車計(jì)價(jià)器摘要:隨著出租車行業(yè)的開展,出租車行業(yè)已經(jīng)是城市交通的重要組成局部,從加強(qiáng)行業(yè)管理以及減少與乘客的糾紛出發(fā),以單片機(jī)為核心的智能出租車計(jì)價(jià)系統(tǒng)的開發(fā)就顯得尤其重要。本設(shè)計(jì)采用AT89S51單片機(jī)為主控

6、器,A44E霍爾傳感器測距,實(shí)現(xiàn)對出租車的多功能的計(jì)價(jià)設(shè)計(jì),輸出采用段數(shù)碼顯示管。本設(shè)計(jì)是以單片機(jī)AT89S51為核心,通過外圍及附屬電路來實(shí)現(xiàn)的。該系統(tǒng)滿足計(jì)程、計(jì)時(shí)、計(jì)費(fèi)、存儲(chǔ)等多種計(jì)量功能為一體的出租車計(jì)價(jià)器的實(shí)用要求。給出了硬件電路圖及主程序流程圖,闡述了軟硬件設(shè)計(jì)過程中關(guān)鍵技術(shù)的處理。關(guān)鍵詞:計(jì)價(jià)器 單片機(jī)AT89S51 1 引言出租車計(jì)價(jià)器是根據(jù)用戶的實(shí)際情況而自動(dòng)顯示用車費(fèi)用的自動(dòng)化儀表。儀表根據(jù)用車起價(jià)、行車?yán)锍逃?jì)費(fèi)及中途等待時(shí)間計(jì)費(fèi)三項(xiàng)求得客戶用車的乘車?yán)锍碳翱傎M(fèi)用,最終通過數(shù)碼管顯示出來。2 總體設(shè)計(jì)方案2.1 設(shè)計(jì)思路起步費(fèi)用:由用戶設(shè)定起步價(jià)保存在電路中,傳感器檢測到的

7、行車?yán)锍淘谄饍r(jià)費(fèi)用里程以內(nèi),就關(guān)閉行車?yán)锍逃?jì)費(fèi)程序,顯示器一直顯示起價(jià)費(fèi)。當(dāng)行車?yán)锍坛^了起價(jià)費(fèi)用里程,行車?yán)锍逃?jì)費(fèi)程序才啟動(dòng)計(jì)費(fèi)。行車?yán)锍逃?jì)費(fèi):通過傳感器將汽車的行駛距離送入處理電路,然后換算成行車?yán)锍?,根?jù)行車?yán)锍毯鸵言O(shè)定的單價(jià)計(jì)算出所需的行車費(fèi)用,將這個(gè)費(fèi)用送入總費(fèi)用顯示緩沖區(qū)。等待計(jì)費(fèi):在路途中,傳感器檢測到汽車停了下來,這時(shí)候就要啟動(dòng)等候計(jì)費(fèi)程序中途因故停車超過5分鐘后每分鐘按當(dāng)時(shí)單價(jià)的50%收費(fèi)。整個(gè)行車過程中的總費(fèi)用=起步價(jià)+行車費(fèi)用+等候費(fèi),這個(gè)費(fèi)用在總費(fèi)用顯示緩沖區(qū)完成求和之后通過顯示器顯示出來,客戶能夠直觀明了的查看出來,十分方便。方案論證與比擬在設(shè)計(jì)時(shí)對以下兩種方案進(jìn)行了

8、論證:方案一:使用傳統(tǒng)的數(shù)字電路和模擬電路來完成設(shè)計(jì)要求。在使用數(shù)模電來實(shí)現(xiàn)時(shí),由于該系統(tǒng)比擬大,整體電路不容易實(shí)現(xiàn)。整體電路的規(guī)模較大,用到的器件多,造成故障率高,難調(diào)試。方案二:使用單片機(jī)來完成設(shè)計(jì)要求。單片機(jī)功能強(qiáng)大,用硬件和軟件相結(jié)合可以很容易的實(shí)現(xiàn)設(shè)計(jì)要求,且靈活性強(qiáng),可以通過軟件編程來完成更多的附加功能。針對計(jì)費(fèi)模式的切換,通過軟件編程就可以輕而易舉的實(shí)現(xiàn)。總體設(shè)計(jì)框圖1如下所示。圖1總體設(shè)計(jì)框圖3 設(shè)計(jì)原理分析單片機(jī)最小系統(tǒng)單元AT89S51提供以下標(biāo)準(zhǔn)功能:4K字節(jié)閃速存儲(chǔ)器,128字節(jié)RAM,32根I/O引線,兩個(gè)16位定時(shí)器/計(jì)數(shù)器,五個(gè)中斷源,兩個(gè)中斷優(yōu)先級(jí),一個(gè)全雙工串

9、行口,一個(gè)精密模擬比擬器以及片內(nèi)振蕩器和時(shí)鐘電路。此外,AT89C51是用可降到0頻率的靜態(tài)邏輯操作設(shè)計(jì)的并支持兩種可選的軟件節(jié)電工作方式??臻e方式停止CPU工作但允許RAM,定時(shí)器/計(jì)數(shù)器,串行口和中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM內(nèi)容但振蕩器停止工作并禁止所有其它部件的工作直到下一個(gè)硬件復(fù)位。AT89S51片內(nèi)的Flash ROM允許在系統(tǒng)內(nèi)改變編程序或常規(guī)的非易失性存儲(chǔ)器編程器來編程。單獨(dú)的單片機(jī)是不能夠工作的,它需要配合外圍電路才能實(shí)現(xiàn)各種控制。單片機(jī)最小系統(tǒng)電路由AT89S51單片機(jī)、時(shí)鐘電路和位電路組成,是整個(gè)電路的主要局部。時(shí)鐘電路用來產(chǎn)生一個(gè)時(shí)鐘信號(hào),這個(gè)時(shí)鐘信號(hào)是控制單片機(jī)

10、內(nèi)各運(yùn)算器、控制器、存儲(chǔ)器進(jìn)行工作的一個(gè)時(shí)鐘基準(zhǔn)。時(shí)鐘局部采用外接晶體振蕩電路,在AT89S51的18和19腳外接6MHz的英晶振并跨接兩個(gè)30pF電容就構(gòu)成了時(shí)鐘電路。復(fù)位電路是對單片機(jī)進(jìn)行初始化操作,當(dāng)系統(tǒng)上電后把PC初始化為0000H,使單片機(jī)從0000H單元開始執(zhí)行程序。另外當(dāng)程序運(yùn)行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),為擺脫困境,也須按復(fù)位鍵重新啟動(dòng)。電路圖如圖2所示。圖2單片機(jī)最小系統(tǒng)電路霍爾電路它是本系統(tǒng)的根底元件,由它將出租車行駛時(shí)車輪所轉(zhuǎn)的圈數(shù)轉(zhuǎn)換成脈沖信號(hào)送入數(shù)據(jù)處理電路,完成相應(yīng)的操作。它用一塊A44E,安裝在車輪上來檢測信號(hào)。A44E是開關(guān)型的霍爾器件,其工作電壓范圍比

11、擬寬4.518V,其輸出的信號(hào)符合TTL電平標(biāo)準(zhǔn),可以直接接到單片機(jī)的IO端口上,而且其最高檢測頻率可到達(dá)1MHz。在這里用555電路來產(chǎn)生一個(gè)脈沖來模擬霍爾傳感器輸出的里程脈沖,選擇P3.3 口作為信號(hào)的輸入端,內(nèi)部采用外部中斷0,555脈沖產(chǎn)生電路輸出一個(gè)脈沖信號(hào)直接加到外部中斷0上產(chǎn)生的頻率F=,引起單片機(jī)的中斷,對脈計(jì)數(shù),通過計(jì)算將脈沖增加表達(dá)在金額和里程上。具體電路如圖3所示。圖3 555脈沖產(chǎn)生電路圖掉電存儲(chǔ)單元單元電路掉電存儲(chǔ)單元的作用是在電源斷開的時(shí)候,存儲(chǔ)當(dāng)前設(shè)定的單價(jià)信息。AT24C02 是ATMEL公司的2KB 字節(jié)的電可擦除存儲(chǔ)芯片,采用兩線串行的總線和單片機(jī)通訊,電壓

12、最低可以到,額定電流為1mA,靜態(tài)電流10A(5.5V),芯片內(nèi)的資料可以在斷電的情況下保存40 年以上,而且采用8 腳的DIP 封裝,使用方便。AT24C02芯片引腳配置如圖4所示。圖4 AT24C02引腳配置圖AT24C02芯片DIP封裝,共有8個(gè)引腳,其中:A2A0 地址引腳;SDA、SCL I2C總線接口;WP 寫保護(hù)引腳,WP接VSS時(shí),禁止寫入高位地址,WP接VDD時(shí),允許寫入任何地址;VCC 電源端GND 接地端圖5 掉電存儲(chǔ)電路原理圖圖中R8、R10 是上拉電阻,其作用是減少AT24C02 的靜態(tài)功耗,由于AT24C02 的數(shù)據(jù)線和地址線是復(fù)用的,采用串口的方式傳送數(shù)據(jù),所以只

13、用兩根線SCL移位脈沖和SDA數(shù)據(jù)/地址與單片機(jī)傳送數(shù)據(jù)。每當(dāng)設(shè)定一次單價(jià),系統(tǒng)就自動(dòng)調(diào)用存儲(chǔ)程序,將單價(jià)信息保存在芯片內(nèi);當(dāng)系統(tǒng)重新上電的時(shí)候,自動(dòng)調(diào)用讀存儲(chǔ)器程序,將存儲(chǔ)器內(nèi)的單價(jià)等信息,讀到緩存單元中,供主程序使用。3.1.4顯示單元電路設(shè)計(jì)由于設(shè)計(jì)要求有單價(jià)、路程、總金額顯示輸出,加上另外擴(kuò)展了時(shí)鐘顯示包含時(shí)分秒的顯示,采用6 位LED數(shù)碼管的分屏顯示。在顯示電路里采用串中顯示的方式,74LS164是一個(gè)串行輸入,并行輸出移位存放器,并帶有去除端。從單片機(jī)串口RXD輸出的信號(hào)先送到最左邊74LS164的串行輸入端AB,由于移位脈沖的作用,使數(shù)據(jù)向右移,到達(dá)顯示的目的。移位存放器74LS

14、164還兼作數(shù)碼管的驅(qū)動(dòng)。電路中的三個(gè)整流管D1D3 的作用是降低數(shù)碼管的工作電壓,增加其使用壽命。具體電路如下列圖6所示。圖6串口顯示電路圖由于所有六位段選都由單片機(jī)的RXD和TXD控制,因此,在每一瞬時(shí),六位LED只有一個(gè)亮。要想每位顯示不同的字符,就必須使RXD和TXD連續(xù)輸出點(diǎn)亮各位LED,既在第一個(gè)被點(diǎn)亮后,下一個(gè)要顯示數(shù)據(jù)來到后,該位就自動(dòng)轉(zhuǎn)到下一位數(shù)碼管顯示,如此輪流,使每位分時(shí)顯示該位應(yīng)顯示的字符。段選碼,位選碼每送一次后延時(shí)1mss100ms所以每位顯示的時(shí)間間隔不能超過20ms,并保持延時(shí)一段時(shí)間,以造成視覺暫留效果,給人看上去每位數(shù)碼管總在亮。采用了六個(gè)LED數(shù)碼管,而顯

15、示要求顯示金額,里程,單價(jià),如果采用一屏顯示,那么顯示的總金額及里程在顯示時(shí)不能顯示十元以上的金額及十公里以上的里程。所以在設(shè)計(jì)時(shí),這里采用分屏顯示,由S1鍵切換,默認(rèn)顯示金額單價(jià),S1按下時(shí),顯示里程單價(jià)如圖6,延時(shí)一段時(shí)間以后,自動(dòng)返回顯示金額和單價(jià)。如下列圖所示。13.51.0默認(rèn)顯示22.82.0路程,單價(jià)顯示151.0等待顯示圖7 顯示模式3.1.5 鍵盤電路鍵盤采用四個(gè)獨(dú)立按鍵,接在AT89S51的P0口,如圖5所示。通電時(shí)用軟件將P1口置1,當(dāng)有鍵按下,時(shí)相對應(yīng)的接口被置0。圖8鍵盤電路按鍵S1:模式選擇按鍵。按下一次為里程單價(jià)調(diào)整,LED1亮;按下第二次為起價(jià)調(diào)整,LED2亮;

16、按下第三次為等待單價(jià)調(diào)整,LED3亮;再按下返回到了程單價(jià)調(diào)整,以此類推。按鍵S2:位調(diào)整按鍵。按下一次為最低位調(diào)整;按下第二次為次低位調(diào)整;以此類推至功能所需位數(shù)調(diào)整完或有中斷插入。按鍵S3:“+按鍵。每按一次被調(diào)整位加1。按鍵S4:“-按鍵。每按一次被調(diào)整位減1。單片機(jī)的軟件設(shè)計(jì)流程如下所示。其中初始化模塊由硬件初始化和軟件初始化兩局部組成,硬件初始化主要是對單片機(jī)及其它相關(guān)芯片進(jìn)行初始化;而軟件初始化主要是對各種軟件標(biāo)志進(jìn)行初始化。主程序模塊在主程序模塊中,需要完成對各接口芯片的初始化、出租車起價(jià)和單價(jià)的初始化、中斷向量的設(shè)計(jì)以及開中斷、循環(huán)等待等工作。另外,在主程序模塊中還需要設(shè)置時(shí)鐘

17、存放其、里程存放器和價(jià)格存放器的進(jìn)行初始化,并進(jìn)行鍵盤掃描。然后,主程序?qū)⒏鶕?jù)鍵盤掃描的結(jié)果,分別完成啟動(dòng)、去除、時(shí)鐘調(diào)整、計(jì)程和計(jì)價(jià)等不同的操作。其程序流程如圖9所示。開始初始化鍵盤掃描程序S2按下?SB 按路程顯示計(jì)價(jià)程序晚上S3 按SB 按下?計(jì)價(jià)程序白天YYYNNN圖9 主程序流程圖當(dāng)按下計(jì)價(jià)器計(jì)價(jià)開關(guān)時(shí),說明準(zhǔn)備出發(fā),計(jì)價(jià)提示電路就發(fā)出聲響,提醒乘客,車已啟動(dòng)請注意平安,并啟動(dòng)計(jì)價(jià),到達(dá)目的地時(shí)效勞結(jié)束,關(guān)斷計(jì)價(jià)開關(guān),計(jì)價(jià)器會(huì)將當(dāng)前累計(jì)行車?yán)锍碳皟r(jià)格送至顯示電路顯示出來。外部計(jì)數(shù)中斷計(jì)程計(jì)價(jià)程序發(fā)光二極管L1用來顯示車上有無乘客,沒乘客上車時(shí),具有自鎖功能的開關(guān)SB斷開,L1亮,6個(gè)

18、數(shù)碼管顯示時(shí)間。當(dāng)有乘客上車時(shí),把開關(guān)SB接通,L1滅,同時(shí)開始計(jì)程計(jì)價(jià)。開始計(jì)程計(jì)價(jià)時(shí),車輪每轉(zhuǎn)一圈,由于A44E 屬于開關(guān)型的霍爾器件,其工作電壓范圍比擬寬18V,其輸出的信號(hào)符合TTL 電平標(biāo)準(zhǔn),可以直接接到單片機(jī)的IO 端口上,而且其最高檢測頻率可到達(dá)1MHZ。在實(shí)際電路中用555產(chǎn)生一個(gè)里程脈沖來模擬霍而傳感器。選擇了P3.2 口作為信號(hào)的輸入端,內(nèi)部采用外部中斷0這樣可以減少程序設(shè)計(jì)的麻煩,出于出租車的車輪直徑D=因此車輪每轉(zhuǎn)一圈的行程為S=D=。T0每計(jì)N0=125個(gè)數(shù),相當(dāng)于汽車行駛了1252m=250m。把T0設(shè)為計(jì)數(shù)模式2,用T0中斷,計(jì)數(shù)初值為X=28-125=83H。汽

19、車每行駛250m,T0計(jì)滿數(shù)溢出一次,使T0中斷,在中斷子程序中,使某存放器加1計(jì)數(shù)。加4次相當(dāng)于汽車行駛1km,這樣行程緩沖區(qū)中行程里程加1,實(shí)現(xiàn)了行駛里程計(jì)算,單片機(jī)就控制將金額自動(dòng)的加增加,其計(jì)算公式:總金額=當(dāng)前單價(jià)公里數(shù)。流程如下列圖所示。單價(jià)開始行車3公里?行車100米?金額起步價(jià)YNY里程加里程加N顯示結(jié)束圖10計(jì)價(jià)子程序流程圖4 結(jié)束語這次課程設(shè)計(jì)讓我學(xué)到了很多在課本上學(xué)不到的東西,我獲益匪淺,同時(shí)也讓我對本專業(yè)有了更進(jìn)一步的了解。由于使用的是單片機(jī)作為核心的控制元件,以及靈敏的霍爾開關(guān)型器件,是本出租車計(jì)價(jià)器具有功能強(qiáng)、性能可靠、電路簡單、本錢低的特點(diǎn),加上經(jīng)過優(yōu)化的程序,使

20、其有很高的智能化水平。但是在我們設(shè)計(jì)和調(diào)試的過程中,也發(fā)現(xiàn)了一些問題,譬如計(jì)價(jià)的金額位數(shù)有限,實(shí)際的里程可能會(huì)很遠(yuǎn),會(huì)超出我們的顯示范圍。計(jì)價(jià)器的設(shè)計(jì)還不夠人性化,比方加上語音的提示功能,可能會(huì)更有生命力。參考文獻(xiàn)1李朝青.單片機(jī)原理與接口技術(shù)M.北京:北京航空航天大學(xué)出版社,19972康華光.數(shù)字電子技術(shù)根底M第四版. 北京:高等教育出版社,20003陳永甫.新編555集成電路應(yīng)用800例 MMM.北京:機(jī)械工業(yè)出版社2007.附錄整體電路圖源程序DAY_PRICE EQU 6FHNIGHT_PRICE EQU 6EHMIDWAY_PRICE EQU 6DHSTART_PRICE EQU 6

21、CHCOUNTL EQU 6BHCOUNTH EQU 6AHM100 EQU 69H ; 外部中斷次數(shù)DISTANCE EQU 68H ; 行車距離MS100 EQU 67HSEC EQU 66HMIN EQU 65HHOUR EQU 64HLEDSL EQU 63H ; 時(shí)分鈔顯示緩沖區(qū)LEDSH EQU 62HLEDML EQU 61HLEDMH EQU 60HLEDHL EQU 5FHLEDHH EQU 5EHLEDDANJIAL EQU 5DH ; 總額,單價(jià)顯示緩沖區(qū)LEDDANJIAH EQU 5CHLINE_ EQU 5BHLEDCOUNT1 EQU 5AHLEDCOUNT2 E

22、QU 59HLEDCOUNT3 EQU 58HLEDDANJIA2L EQU 57H ; 路程,單價(jià)顯示緩沖區(qū)LEDDANJIA2H EQU 56HLINE_ EQU 55HLINE_ EQU 54HLEDDISTANCEL EQU 53HLEDDISTANCEH EQU 52HLEDDAY_PL EQU 51H ; 中途,晚上,白天顯示緩沖區(qū)LEDDAY_PH EQU 50HLEDNIG_PL EQU 4FHLEDNIG_PH EQU 4EHLEDW_PL EQU 4DHLEDW_PH EQU 4CHS11 EQU 4BHS22 EQU 4AHS33 EQU 49HS44 EQU 48HM1

23、 EQU 47HH1 EQU 46HM2 EQU 45HH2 EQU 44HPRICE EQU 43HORG 0000HAJMP MAINORG 0003HAJMP TOORG 000BHAJMP TOTIMEORG 001BHAJMP TOSTARTORG 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,#69

24、HLOOPL:MOV R0,#0DEC R0DJNZ R7,LOOPLMOV COUNTL, #00H ; 起步價(jià)MOV COUNTH, #05HMOV DAY_PRICE,#25H ; 白天價(jià)格初始化MOV NIGHT_PRICE,#30H ; 晚上價(jià)格初始化MOV MIDWAY_PRICE,#10H ; 中途等待初始化MOV START_PRICE, #50H ; 起步價(jià)初始化MOV S11, #0MOV S22, #0MOV S33, #0MOV S44, #0MOV DISTANCE, #02HMOV HOUR, #12HKEY_MAIN: SETB TR0ACALL HMS_DISA

25、CALL T100MSDACALL T100MSDACALL T100MSDJB S1, KEY_MAINACALL T10MSDJB S1, KEY_MAINJNB S1,$SJMP WAIT1WA1: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; 起動(dòng)初始化MOV COUN

26、TL, #00H; 起步價(jià)MOV COUNTH, #05HLCALL CP_DIS; 總金額和單價(jià)顯示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, WAIT3

27、INC S33MOV A, S33CJNE A, #1, NXT1LCALL DP_DISNXT1: CJNE A, #2, NXT2CLR CMOV A, M2SUBB A, M1MOV M1, AKEY34: AJMP MID_PHOU_T: SETB F0 ;調(diào)用定時(shí)延時(shí)標(biāo)志位LCALL T100MSDLCALL T100MSDMOV LEDHL, #0AHMOV LEDHH, #0AHLCALL HMS_DIS1;直接調(diào)用顯示,不經(jīng)過拆分程序LCALL T100MSDLCALL T100MSDMOV SEC, #0LCALL HMS_DISJB S3, KEY41MOV A, HOUR

28、ADD A, #1DA AMOV HOUR,ACJNE A, #24H, KEY41MOV HOUR, #0KEY41: JB S4, KEY42MOV A, HOURADD A, #99HDA AMOV HOUR,ACJNE A, #99H, KEY42MOV HOUR, #23HKEY42: JB S1, KEY43ACALL T10MSDJB S1, KEY43WAIT21: JNB S1, WAIT21INC S11MOV A, S11CJNE A, #1,NEXT61LJMP HOU_TNEXT61: CJNE A, #2,NEXT62LJMP MIN_TNEXT62: CJNE A

29、, #3,KEY43MOV S11, #0LJMP KEY_SJKEY43: JB S2, KEY44LCALL T10MSDJB S2, KEY44WAIT32: JNB S2, WAIT32LJMP KEY_MAINKEY44: AJMP HOU_TMIN_T: SETB F0 ;調(diào)用定時(shí)延時(shí)標(biāo)志位LCALL T100MSDLCALL T100MSDMOV LEDML, #0AHMOV LEDMH, #0AHLCALL HMS_DIS1;直接調(diào)用顯示,不經(jīng)過拆分程序LCALL T100MSDLCALL T100MSDMOV SEC, #0LCALL HMS_DISJB S3, KEY51M

30、OV A, MINADD A, #1DA AMOV MIN, ACJNE A, #60H, KEY51MOV MIN, #0KEY51: JB S4, KEY52MOV A, MINADD A, #99HDA AMOV MIN, ACJNE A, #99H, KEY52MOV MIN, #59HKEY52: JB S1, KEY53ACALL T10MSDJB S1, KEY53WAIT24: JNB S1, WAIT24INC S11MOV A, S11MOV TH1, #3CHMOV TL1, #0B0HDJNZ 22H, RETURN2 ;1S未到返回MOV 22H, #0AHMOV A

31、, #1ADD A, 23HDA AMOV 23H, ACJNE A, #60H, RETURN2MOV 23H, #0MOV A, #1ADD A, 24HDA AMOV 24H,ACJNE A, #10H, RETURN2MOV 24H, #0MOV A, START_PRICEADD A, COUNTLDA AMOV COUNTL,ACJNE A, #10H, RETURN2MOV COUNTL, #0MOV A, #1ADD A, COUNTHDA AMOV COUNTH,ACJNE A, #99H,RETURN2MOV COUNTH,#0RETURN2: POP ACCPOP PSW

32、RETIHMS_DIS:PUSH ACC PUSH PSWSETB RS1MOV R0,#SEC ;時(shí)分秒的拆分(三個(gè)字節(jié))MOV R1,#LEDSLMOV R6,#03HLOOP1:MOV A, R0MOV B, AANL A, #0FHMOV R1,ADEC R1MOV A, BSWAP AANL A, #0FHMOV R1,ADEC R1DEC R0DJNZ R6,LOOP1POP PSWPOP ACCHMS_DIS1: PUSH ACCPUSH PSWMOV R7,#06HMOV R0,#LEDSLLOOP: MOV A, R0MOV DPTR,#TABMOVC A,A+DPTRMOV

33、 SBUF,ABK: JBC TI,NEXTSJMP BKNEXT: DEC R0DJNZ R7,LOOPCLR RS1POP PSWPOP ACCRETCP_DIS:PUSH ACC PUSH PSWSETB RS1MOV R0,#COUNTH ;MOV R1,#LEDCOUNT2MOV A, R0MOV B, AANL A, #0FHMOV R1,ADEC R1MOV A, BSWAP AANL A, #0FHMOV R1,AMOV LEDCOUNT1,COUNTLMOV A,LEDCOUNT1 ;送總金額低位MOV DPTR,#TABMOVC A, A+DPTRMOV SBUF,AJNB

34、 TI,$CLR TIMOV A,LEDCOUNT2 ;送總金額中位MOV DPTR,#TABMOVC A,A+DPTRMOV SBUF,AJNB TI, $CLR TIMOV A,LEDCOUNT3 ;送總金額高位MOV DPTR,#TABMOVC A,A+DPTRMOV SBUF,AJNB TI,$CLR TICLR RS1MOV SBUF,#0FEH ;送短線(短線的字型碼是0FEH)JNB TI, $CLR TIMOV R0,#PRICE;單價(jià)拆分(兩個(gè)字節(jié))MOV R1,#LEDDANJIALMOV R6,#03HMOV A, R0MOV B, AANL A, #0FHMOV R1,

35、ADEC R1MOV A, BSWAP AANL A, #0FHMOV R1,ADEC R1MOV A,LEDDANJIAL ;送單價(jià)低位MOV DPTR,#TABMOVC A,A+DPTRMOV SBUF,AJNB TI, $CLR TIMOV A, LEDDANJIAH ;送單價(jià)高位MOV DPTR,#TABMOVC A,A+DPTRMOV SBUF,AJNB TI,$CLR TIPOP PSWPOP ACCRETDP_DIS:PUSH ACC PUSH PSWSETB RS1MOV R0,#PRICE ;單價(jià)的拆分(一個(gè)字節(jié))MOV R1,#LEDDANJIALMOV A, R0MOV B, AANL A, #0FHMOV R1,ADEC R1MOV A, BSWAP AANL A, #0FHMOV R1,ADEC R1MOV A,LEDDANJIAL ;送單價(jià)低位MOV DPTR,#TABMOVC A,A+DPTRMOV SBUF,AJNB TI, $CLR TIMOV A,LEDDANJIAH ;送單價(jià)高位MOV DPTR,#TABMOVC A,A+DPTRMOV SBUF,AJNB TI,$CLR TIMOV SBUF,#0FEH ;JNB TI, $CLR TIMOV SBUF,#

溫馨提示

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

評(píng)論

0/150

提交評(píng)論