單片機(jī)里程計(jì)價(jià)器的設(shè)計(jì)_第1頁(yè)
單片機(jī)里程計(jì)價(jià)器的設(shè)計(jì)_第2頁(yè)
單片機(jī)里程計(jì)價(jià)器的設(shè)計(jì)_第3頁(yè)
單片機(jī)里程計(jì)價(jià)器的設(shè)計(jì)_第4頁(yè)
單片機(jī)里程計(jì)價(jià)器的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、摘要本文的硬件設(shè)計(jì)主要包括單片機(jī)at89c51、a44e霍爾傳感器電路、at24c02 掉電存儲(chǔ)單元的、里程與計(jì)價(jià)單元電路、數(shù)據(jù)存儲(chǔ)電路、數(shù)據(jù)顯示電路、按鍵電路、語(yǔ)音播報(bào)電路、電源電路等電路的設(shè)計(jì)。在硬件設(shè)計(jì)過(guò)程中,充分利用各部件的功能,實(shí)現(xiàn)多功能的出租車(chē)計(jì)價(jià)器設(shè)計(jì)。在主程序模塊中,需要完成對(duì)各接口芯片的初始化、出租車(chē)起價(jià)和單價(jià)的初始化、中斷向量的設(shè)計(jì)以及開(kāi)中斷、循環(huán)等待等工作。abstract this includes hardware design of microcontroller at89c51, a44e hall sensor circuit, at24c02 power-do

2、wn memory cell, the cell circuit mileage and valuation, data storage circuit, the data show circuit, the circuit keys, voice broadcast circuits, power circuits and other circuit design. in the hardware design process, the full use of the various components of the function, to achieve multi-functiona

3、l design of the taxi meter. in the main program module, need to complete the initialization of the interface chip, and the price of a taxi from initialization, interruptvector design and open break, waiting for other work cycle.目 錄1緒論11.1概述11.2 基本內(nèi)容11.2.1 設(shè)計(jì)任務(wù)11.2.2 設(shè)計(jì)要求11.3 系統(tǒng)主要功能22硬件設(shè)計(jì)32.1 系統(tǒng)的硬件構(gòu)成

4、及功能32.2 at89c51單片機(jī)及其引腳說(shuō)明42.3 at24c02引腳圖及其引腳功能62.4 at24c02 掉電存儲(chǔ)單元的設(shè)計(jì)62.5 里程計(jì)算、計(jì)價(jià)單元的設(shè)計(jì)72.6 數(shù)據(jù)顯示單元設(shè)計(jì)83 系統(tǒng)的軟件設(shè)計(jì)103.1 系統(tǒng)主程序設(shè)計(jì)103.2 定時(shí)中斷服務(wù)程序123.3 里程計(jì)數(shù)中斷服務(wù)程序123.4 中途等待中斷服務(wù)程序123.5 顯示子程序服務(wù)程序123.6 鍵盤(pán)服務(wù)程序124 系統(tǒng)調(diào)試與測(cè)試結(jié)果分析134.1 使用的儀器儀表134.2 系統(tǒng)調(diào)試14結(jié) 束 語(yǔ)14參考文獻(xiàn)14附 錄15第一章 緒論 本次基于at89c51單片機(jī)的出租車(chē)計(jì)價(jià)器系統(tǒng)的設(shè)計(jì),要求能夠?qū)Τ鲎廛?chē)所用的時(shí)間進(jìn)行

5、計(jì)時(shí),并且所需的費(fèi)用用數(shù)碼管顯示出來(lái),更注重它的穩(wěn)定性和實(shí)用性。主要研究?jī)?nèi)容包括以下子系統(tǒng):電源部分、開(kāi)關(guān)按鈕、程序控制部分、時(shí)間和價(jià)錢(qián)顯示部分。1.1概述 計(jì)價(jià)器顯示的營(yíng)運(yùn)金額是基于“價(jià)格=速度*時(shí)間*單價(jià),總價(jià)等于其和”的原理來(lái)計(jì)算的。出租車(chē)計(jì)價(jià)器通過(guò)傳感器與行駛車(chē)輛連接。出租汽車(chē)的實(shí)際里程通過(guò)傳感器的脈沖信號(hào)在計(jì)價(jià)器里折算成一定的計(jì)價(jià)營(yíng)運(yùn)里程。目前市場(chǎng)上出租車(chē)計(jì)價(jià)器功能主要有具有數(shù)據(jù)的復(fù)位功能、白天/晚上轉(zhuǎn)換功能、數(shù)據(jù)輸出功能、計(jì)時(shí)計(jì)價(jià)功能等等,但存在著太多的不足,容易為司機(jī)和顧客之間造成麻煩,基于此,設(shè)計(jì)一款能夠提高抗干擾能力、防作弊能力、掉電保護(hù)功能的計(jì)價(jià)器,以使其功能更加完善。1.

6、2 系統(tǒng)主要功能 本文所做的出租車(chē)計(jì)價(jià)器設(shè)計(jì)由硬件設(shè)計(jì)和軟件設(shè)計(jì)兩部分組成,主要內(nèi)容包括:出租車(chē)計(jì)價(jià)器系統(tǒng)的工作原理、出租車(chē)計(jì)價(jià)器系統(tǒng)的硬件電路設(shè)計(jì)(單片機(jī)主電路、里程與計(jì)價(jià)單元電路、數(shù)據(jù)存儲(chǔ)電路、顯示電路、按鍵電路、語(yǔ)音播報(bào)電路、電源電路等)、出租車(chē)計(jì)價(jià)器系統(tǒng)的軟件設(shè)計(jì)(初始化模塊、里程及計(jì)價(jià)換算模塊、數(shù)據(jù)存儲(chǔ)模塊、按鍵處理模塊、顯示模塊、語(yǔ)音播報(bào)模塊等)。輸出采用8 段數(shù)碼顯示管。本電路設(shè)計(jì)的計(jì)價(jià)器不但能實(shí)現(xiàn)基本的計(jì)價(jià),而且還能根據(jù)白天、黑夜、中途等待來(lái)調(diào)節(jié)單價(jià),能在掉電的情況下存儲(chǔ)數(shù)據(jù),防止外界干擾,同時(shí)在不計(jì)價(jià)的時(shí)候還能作為時(shí)鐘為司機(jī)同志提供方便。第二章 硬件設(shè)計(jì) 本文的硬件設(shè)計(jì)主要包

7、括單片機(jī)at89c51、a44e霍爾傳感器電路、at24c02 掉電存儲(chǔ)單元的、里程與計(jì)價(jià)單元電路、數(shù)據(jù)存儲(chǔ)電路、數(shù)據(jù)顯示電路、按鍵電路、語(yǔ)音播報(bào)電路、電源電路等電路的設(shè)計(jì)。在硬件設(shè)計(jì)過(guò)程中,充分利用各部件的功能,實(shí)現(xiàn)多功能的出租車(chē)計(jì)價(jià)器設(shè)計(jì)。2.1 系統(tǒng)的硬件構(gòu)成及功能 計(jì)價(jià)器的單片機(jī)控制方案圖如圖1 單片機(jī)控制方案圖所示。它由以下幾個(gè)部件組成:?jiǎn)纹瑱C(jī)at89c51、總金額及單價(jià)顯示部件、鍵盤(pán)控制部件,at24c02 掉電存儲(chǔ)控制、里程計(jì)算單元、串中顯示驅(qū)動(dòng)電路等。鍵盤(pán)控制總金額顯示at24c02掉電存儲(chǔ)里程計(jì)算模塊at89c51單片機(jī)串口顯示驅(qū)動(dòng)模塊單價(jià)顯示圖1 單片機(jī)控制方案圖2.2 a

8、t89c51單片機(jī)及其引腳說(shuō)明 at89c51是一種低功耗,高性能cmos 8位單片機(jī),片內(nèi)含4kb的可系統(tǒng)編程的flash只讀程序存儲(chǔ)器,器件采用高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)8051指令系統(tǒng)及引腳。它集flash程序存儲(chǔ)器及通用 8位微處理器于單片芯片中,既可在線編程(isp)也可用傳統(tǒng)方法進(jìn)行編程,具有很高的性?xún)r(jià)比。圖2 at89c51引腳配置at89c51芯片的40個(gè)引腳功能為:vcc 電源電壓。gnd 接地。rst 復(fù)位輸入。當(dāng)rst變?yōu)楦唠娖讲⒈3?個(gè)機(jī)器周期時(shí),將使單片機(jī)復(fù)位。xtal1 反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。xtal2 來(lái)自反向振蕩放大器的輸出。

9、 p0口 一組8位漏極開(kāi)路型雙向i/o口,即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能驅(qū)動(dòng)8個(gè)ttl邏輯門(mén)電路,對(duì)端口寫(xiě)“1”可作為高阻抗輸入端用。在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問(wèn)期間激活內(nèi)部上拉電阻。在flash編程時(shí),p0口接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻。 p1口 帶內(nèi)部上拉電阻的8位雙向i/o口,p1的輸出緩沖級(jí)可驅(qū)動(dòng)4個(gè)ttl邏輯門(mén)電路。對(duì)端口寫(xiě)“1”,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(iil)。f

10、lash編程和程序校驗(yàn)期間,p1接收低8位地址。p1口部分端口引腳及功能如表1 p1口特殊功能所示。表1 p1口特殊功能p1口引腳特殊功能p1.5mosi(用于isp編程)p1.6mosi(用于isp編程)p1.7sck(用于isp編程) p2口 帶內(nèi)部上拉電阻的8位雙向i/o口?;竟δ芘cp1口基本相同,只是在訪問(wèn)8位地址的外部數(shù)據(jù)存儲(chǔ)器時(shí),p2口線上的內(nèi)容在整個(gè)訪問(wèn)期間不改變,flash編程和程序校驗(yàn)期間,p2亦接收低8位地址。 p3口 帶內(nèi)部上拉電阻的8位雙向i/o口?;竟δ芘cp1、p2口基本相同,不再累述。p3口除了作為一般的i/o口線外,更重要的用途是它的第二功能,如表2 p3口特

11、殊功能所示。p3口還接收一些用于flash閃速存儲(chǔ)器編程和程序校驗(yàn)期間的控制信號(hào)。表2 p3口特殊功能p3口引腳特殊功能p3.0rxd(串行輸入口)p3.1txd(串行輸出口)p3.2(外部中斷0)p3.3(外部中斷1)p3.4t0(定時(shí)器0外部輸入)p3.5t1(定時(shí)器1外部輸入)p3.6 (外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通)p3.7 (外部數(shù)據(jù)存儲(chǔ)器讀選通) psen/ 程序儲(chǔ)存允許輸出,是外部程序存儲(chǔ)器的讀先通信號(hào),當(dāng)at89c51由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次psen/有效,即輸出兩個(gè)脈沖。當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器,沒(méi)有兩次有效的psen/信號(hào)。ea/vpp 外部訪問(wèn)允許。欲使c

12、pu僅訪問(wèn)外部程序存儲(chǔ)器,ea端必須保持低電平,需注意的是:如果加密位lb1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存ea端狀態(tài)。flash存儲(chǔ)器編程時(shí),該引腳加上+12v的編程電壓vpp。2.3 at24c02引腳圖及其引腳功能圖3 at24c02引腳配置圖 at24c02芯片dip封裝,共有8個(gè)引腳,其中:a2a0 地址引腳;sda、scl i2c總線接口; wp 寫(xiě)保護(hù)引腳,wp接vss時(shí),禁止寫(xiě)入高位地址,wp接vdd時(shí),允許寫(xiě)入任何地址;vcc 電源端;gnd 接地端2.4 at24c02 掉電存儲(chǔ)單元的設(shè)計(jì) 掉電存儲(chǔ)單元的作用是在電源斷開(kāi)的時(shí)候,存儲(chǔ)當(dāng)前設(shè)定的單價(jià)信息。at24c02 是2kb字節(jié)的

13、電可擦除存儲(chǔ)芯片,采用兩線串行的總線和單片機(jī)通訊,電壓最低可以到2.5v,額定電流為1ma,靜態(tài)電流10ua(5.5v),而且采用8 腳的dip 封裝,使用方便。其電路如圖 4 掉電存儲(chǔ)電路原理圖所示。圖 4 掉電存儲(chǔ)電路原理圖圖中r8、r10 是上拉電阻,其作用是減少at24c02 的靜態(tài)功耗,由于at24c02 的數(shù)據(jù)線和地址線是復(fù)用的,采用串口的方式傳送數(shù)據(jù),所以只用兩根線scl(移位脈沖)和sda(數(shù)據(jù)/地址)與單片機(jī)傳送數(shù)據(jù)。2.5 里程計(jì)算、計(jì)價(jià)單元的設(shè)計(jì)里程計(jì)算是通過(guò)安裝在車(chē)輪上的霍爾傳感器a44e檢測(cè)到的信號(hào),送到單片機(jī),經(jīng)處理計(jì)算,送給顯示單元的。其原理如圖 5 傳感器測(cè)距示

14、意圖所示。圖 5 傳感器測(cè)距示意圖由于a44e 屬于開(kāi)關(guān)型的霍爾器件,其工作電壓范圍比較寬(4.518v),其輸出的信號(hào)符合ttl 電平標(biāo)準(zhǔn),可以直接接到單片機(jī)的io 端口上,而且其最高檢測(cè)頻率可達(dá)到1mhz。a44e 集成霍耳開(kāi)關(guān)由穩(wěn)壓器a、霍耳電勢(shì)發(fā)生器(即硅霍耳片)b、差分放大器c、施密特觸發(fā)器d 和oc 門(mén)輸出e 五個(gè)基本部分組成。在輸入端輸入電壓vcc時(shí),經(jīng)穩(wěn)壓器穩(wěn)壓后加在霍耳電勢(shì)發(fā)生器的兩端,根據(jù)霍耳效應(yīng)原理,當(dāng)霍耳片處在磁場(chǎng)中時(shí),在垂直于磁場(chǎng)的方向通以電流,則與這二者相垂直的方向上將會(huì)產(chǎn)生霍耳電勢(shì)差h v 輸出,該h v 信號(hào)經(jīng)放大器放大后送至施密特觸發(fā)器整形,使其成為方波輸送到

15、oc 門(mén)輸出。當(dāng)施加的磁場(chǎng)達(dá)到工作點(diǎn)(即bop)時(shí),觸發(fā)器輸出高電壓(相對(duì)于地電位),使三極管導(dǎo)通,此時(shí)oc門(mén)輸出端輸出低電壓,通常稱(chēng)這種狀態(tài)為開(kāi)。當(dāng)施加的磁場(chǎng)達(dá)到釋放點(diǎn)(即brp)時(shí),觸發(fā)器輸出低電壓,三極管截止,使oc門(mén)輸出高電壓,這種狀態(tài)為關(guān)。這樣兩次電壓變換,使霍耳開(kāi)關(guān)完成了一次開(kāi)關(guān)動(dòng)作。2.6 數(shù)據(jù)顯示單元設(shè)計(jì)由于設(shè)計(jì)要求有單價(jià)(2 位)、路程(2 位)、總金額(3 位)顯示輸出,加上我們另外擴(kuò)展了時(shí)鐘顯示(包含時(shí)分秒的顯示),采用lcd 液晶段碼顯示,在距離屏幕1 米之外就無(wú)法看清數(shù)據(jù),不能滿(mǎn)足要求,而且在白天其對(duì)比度也不能夠滿(mǎn)足要求,因此我們采用6 位led數(shù)碼管的分屏顯示,如圖

16、 6 采用6 位led數(shù)碼管的分屏顯示所示:時(shí)鐘顯示(圖中顯示為12 點(diǎn)0 分46 秒)圖 6 采用6 位led數(shù)碼管的分屏顯示數(shù)據(jù)的分屏的顯示是通過(guò)按鍵s1 來(lái)實(shí)現(xiàn)切換的, 圖 7 s1切換顯示屏在出租車(chē)不走的時(shí)候,按下s1,可以實(shí)現(xiàn)數(shù)據(jù)的分屏顯示;車(chē)在行走的時(shí)候只有總金額和單價(jià)顯示屏在顯示,當(dāng)?shù)竭_(dá)目的地的時(shí)候,客戶(hù)要求查看總的里程的時(shí)候,就可以按下s1 切換到里程和單價(jià)顯示屏,供客戶(hù)查詢(xún)。從單片機(jī)串口輸出的信號(hào)先送到左邊的移位寄存器(74hc164),由于移位脈沖的作用,使數(shù)據(jù)向右移,達(dá)到顯示的目的。移位寄存器74hc164還兼作數(shù)碼管的驅(qū)動(dòng),插頭1(header1)接電源,插頭2(hea

17、der2)接數(shù)據(jù)和脈沖輸出端。電路中的三個(gè)整流管d1d3 的作用是降低數(shù)碼管的工作電壓,增加其使用壽命。第三章 系統(tǒng)的軟件設(shè)計(jì)本系統(tǒng)的軟件設(shè)計(jì)主要可分為主程序模塊、里程及計(jì)價(jià)換算模塊、數(shù)據(jù)存儲(chǔ)模塊、鍵盤(pán)處理模塊、顯示模塊、語(yǔ)音播報(bào)模塊、定時(shí)計(jì)數(shù)中斷模塊、中途等待中斷服務(wù)模塊等幾大模塊。3.1 系統(tǒng)主程序設(shè)計(jì)在主程序模塊中,需要完成對(duì)各接口芯片的初始化、出租車(chē)起價(jià)和單價(jià)的初始化、中斷向量的設(shè)計(jì)以及開(kāi)中斷、循環(huán)等待等工作。另外,在主程序模塊中還需要設(shè)置啟動(dòng)/清除標(biāo)志寄存器、里程寄存器和價(jià)格寄存器,并對(duì)它們進(jìn)行初始化。然后,主程序?qū)⒏鶕?jù)各標(biāo)志寄存器的內(nèi)容,分別完成啟動(dòng)、清除、計(jì)程和計(jì)價(jià)等不同的操作。

18、主程序流程圖如圖9 所示。3.5 顯示子程序服務(wù)程序由于是分屏顯示數(shù)據(jù),所以就要用到4 個(gè)顯示子程序,分別是:時(shí)分秒顯示子程序(hms_dis)、金額單價(jià)顯示子程序(cp_dis)、路程單價(jià)顯示子程序(dp_dis)、單價(jià)調(diào)節(jié)子程序(pa_dis)。3.6 鍵盤(pán)服務(wù)程序鍵盤(pán)采用查詢(xún)的方式,放在主程序中,當(dāng)沒(méi)有按鍵按下的時(shí)候,單片機(jī)循環(huán)主程序,一旦有按鍵按下,便轉(zhuǎn)向相應(yīng)的子程序處理,處理結(jié)束再返回。如圖9 主程序流程圖,圖10 定時(shí)中斷服務(wù)程序。開(kāi)始s1按下?初始化數(shù)據(jù)s4按下?設(shè)定默認(rèn) 單價(jià)(白天)啟動(dòng)計(jì)價(jià)器里程中斷?到一公里?總路程加1總金額加1傳感有信號(hào)?停止計(jì)價(jià)和里程計(jì)數(shù)設(shè)定晚上單價(jià)按下

19、s4?設(shè)定中途等待單價(jià)s4按下?返回時(shí)間顯示顯示金額及單價(jià)s3按下?顯示路程和單價(jià)s3按下?是否是否是是否否是否是是否是否否是圖9 主程序流程圖重置計(jì)數(shù)初值中斷10次?數(shù)據(jù)送顯示緩沖單元調(diào)用顯示子程序恢復(fù)現(xiàn)場(chǎng)并中斷返回開(kāi)始保護(hù)現(xiàn)場(chǎng)否是圖10 定時(shí)中斷服務(wù)程序結(jié)論本款出租車(chē)計(jì)價(jià)器比目前市場(chǎng)現(xiàn)在的增加了不少功能,其中包括單價(jià)輸出、單價(jià)調(diào)整、路程輸出、顯示當(dāng)前的系統(tǒng)時(shí)間、語(yǔ)音播報(bào)數(shù)據(jù)信息等功能。另外,多功能出租車(chē)計(jì)價(jià)器還具有性能可靠、電路簡(jiǎn)單、成本低、實(shí)用性強(qiáng)等特點(diǎn),加上經(jīng)過(guò)優(yōu)化的程序,使其有很高的智能化水平。在本次課程設(shè)計(jì)過(guò)程中,我學(xué)會(huì)了在網(wǎng)絡(luò)上查找有關(guān)本設(shè)計(jì)的各硬件的資源,其中包括:at89c5

20、1單片機(jī)及其引腳說(shuō)明、at24c02引腳圖及其引腳功能等,為本次課程設(shè)計(jì)提供了一定的資料。由于平時(shí)很少進(jìn)行課程設(shè)計(jì),所以對(duì)于課程設(shè)計(jì)報(bào)告的格式也是近期才接觸到,經(jīng)過(guò)這兩次的設(shè)計(jì),為我們以后畢業(yè)設(shè)計(jì)的制作也奠定了一定的基礎(chǔ)。參考文獻(xiàn)1 陳愛(ài)文基于at89c51單片機(jī)的多功能出租車(chē)計(jì)價(jià)器機(jī)電工程技術(shù),2008,37(11):16-172 張 穎多功能出租車(chē)計(jì)價(jià)器的設(shè)計(jì)計(jì)算機(jī)與信息技術(shù),2009,(9):24-253 李光第,朱月秀單片機(jī)基礎(chǔ)北京:北京航空航天大學(xué)出版社,20044 陳小忠單片機(jī)接口技術(shù)實(shí)用子程序北京:人民郵電出版社,20035 李光飛單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo)北京:北京航空航天大學(xué)出版

21、社,20046 靳達(dá)編單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)實(shí)例導(dǎo)航北京:人民郵電出版社,20027 劉 銳單片機(jī)在智能充電器中的應(yīng)用四川師范大學(xué)學(xué)報(bào),1999,(11):273288 劉勝利現(xiàn)代高頻開(kāi)關(guān)電源實(shí)用技術(shù)北京:電子工業(yè)出版社,20019 何立民單片機(jī)應(yīng)用技術(shù)選編北京:北京航空航天大學(xué)出版社,2000附 錄總體設(shè)計(jì)電路圖多功能出租車(chē)計(jì)價(jià)器總體電路圖2. at89c51程序代碼org 0000h ;初始化段地址 ljmp main ;長(zhǎng)跳轉(zhuǎn)到主函數(shù)main處 org 000bh ;tt0開(kāi)始地址 ljmp tt0 ;長(zhǎng)跳轉(zhuǎn)到tt0 處 org 0030h ;主函數(shù)開(kāi)始地址,避開(kāi)0030敏感段main: m

22、ov sp,#40h ;設(shè)堆棧底指針,下一個(gè)數(shù)據(jù)將放在41h單元 mov 70h,#60 ;價(jià)格單元的起步價(jià) mov 71h,#00 ;價(jià)格單元的十位和百位 mov 72h,#00 ;秒單元清零 mov 74h,#00 ;時(shí)單元清零 mov 75h,#00 ;75h單元清零備用 clr 00h clr 01h ;將00h,01h單元清零 mov 6bh,#0ah ;將0ah(既十進(jìn)制10)放入6b單元 mov r1,#76h ;把76h放到r1中kkk: mov r1,#00h ;將76h單元的內(nèi)容清零 inc r1 djnz 6bh,kkk ;76h7fh單元全部清零,備用 lcall di

23、s ;調(diào)用價(jià)格顯示子程序 lcall dis1 ;調(diào)用時(shí)間顯示子程序 mov tmod,#11h ;定時(shí)器/計(jì)數(shù)器工作方式設(shè)置 mov th0,#3ch mov tl0,#0b0h ;這句和上一句設(shè)置延時(shí)50ms mov 6eh,#20 ;將6eh單元設(shè)置20,達(dá)到1s的延時(shí)g2: lcall dis ;長(zhǎng)調(diào)用價(jià)格顯示子程序 lcall dis1 ;長(zhǎng)調(diào)用時(shí)間顯示子程序 jb p1.0,g2 ;開(kāi)關(guān)沒(méi)按下,等待按下,顯示初始狀態(tài),全部為零 lcall time1 ;調(diào)用time1延時(shí)子程序 jb p1.0,g2 ; 開(kāi)關(guān)沒(méi)按下,跳到g2,否則轉(zhuǎn)到下一步g1: lcall dis lcall d

24、is1 jnb p1.0,g1 ;開(kāi)關(guān)按下,繼續(xù)顯示價(jià)格和時(shí)間,并轉(zhuǎn)到中斷 setb ea ;開(kāi)中斷 setb et0 ;定時(shí)器0中斷允許,向cpu申請(qǐng)中斷 setb tr0 ;定時(shí)器0工作允許 setb 01h ;01h單元置位lll: lcall chai ;調(diào)用現(xiàn)場(chǎng)保護(hù)子程序 lcall dis lcall jisuan ;調(diào)用計(jì)算子程序 lcall dis1 jb p1.0,g3 ;開(kāi)關(guān)沒(méi)按下,則返回 lcall time1 jb p1.0,g3 cpl 01h ;01h單元此時(shí)為零 jnb 01h,g5;01h ;單元內(nèi)容為0,跳到g5 setb et0 ;定時(shí)器0中斷允許,向cpu

25、申請(qǐng)中斷g6: lcall dis lcall dis1 jnb p1.0,g6 ;開(kāi)關(guān)按下,顯示所走的時(shí)間及費(fèi)用 ljmp main ;重新等待下一個(gè)工作狀態(tài)g5: clr et0g4: lcall dis lcall dis1 jnb p1.0,g4g3: ljmp llltt0: clr et0 /*定時(shí)一秒*/ clr tr0 mov th0,#3ch mov tl0,#0b0h setb tr0 setb et0 djnz 6eh,jjj lcall add1 mov 6eh,#20jjj: retidis: mov 6dh,#06h /*價(jià)格顯示子程序*/ mov r0,#7ah

26、mov 6ch,#0fehhhh: mov dptr,#0fdffh /數(shù)據(jù)指針出口地址,低8位給p0口,高8給/位p2口 mov a,6ch movx dptr,a mov a,r0 mov dptr,#tab ;查表首地址 movc a,a+dptr ;查表值送a mov dptr,#0feffh movx dptr,a lcall time1 mov a,6ch rl a mov 6ch,a inc r0 djnz 6dh,hhh retdis1: mov 6dh,#04h /*時(shí)間顯示子程序*/ mov r0,#72h mov 6ch,#0fehhhh1: mov dptr,#0f7f

27、fh ;ff給p0口,f7給p1.0p1.3口 mov a, 6ch movx dptr,a ;將6ch的內(nèi)容放到0f7ffh中 mov a,r0 mov dptr,#tab ;查表首地址 movc a a+dptr ;查表值送a mov dptr,#0fbffh mov r1,6dh cjne r1,#03h,k1 orl a,#80hk1: movx dptr,a lcall time1 mov a, 6ch rl a mov 6ch,a inc r0 djnz 6dh,hhh1 rettime1: mov 6ah,#0ah /*延時(shí)子程序*/fff: mov 69h,#0ahggg: d

28、jnz 69h,ggg djnz 6ah,fff retjisuan:jb 00h,k2 /*判斷是否超過(guò)3公里及計(jì)算價(jià)格子程序*/ mov a,78h clr c subb a,#03h mov 73h,#06h jc k3 setb 00h ljmp k3k2: mov r3,71h mov r4,70h mov r2,#00h mov r5,#00hmov r6,#03hmov r7,#0e8h lcall ndiv42 mov 75h,r4 mov a,r6 mov r3,a mov a,r7 mov r4,a mov r2,#00h mov r7,#100 lcall ndiv31

29、mov 74h,r4 mov a,r7 mov b,#10 div ab mov 73h,a mov 72h,b k3: retchai: mov 6fh,#03h /*保護(hù)現(xiàn)場(chǎng)子程序*/ mov r0,#77h mov r1,#7ahzzz: mov a,r0 anl a,#0fh ;保存77h單元中的低4位 mov r1,a mov a,r0 swap a anl a,0fh inc r1 mov r1,a inc r0 inc r1 djnz 6fh,zzz ;循環(huán)三次 retadd1: mov a,77h /*加一子程序*/ cjne a,#59h, l18 ljmp l19l18:

30、add a,#01h da a mov 77h,a ljmp l24l19: mov 77h,#00h jnb 00h,s1 clr c mov a,70h add a,#12 mov 70h,a mov a,71h addc a,#00h mov 71h,as1: mov a,78h cjne a,#59h,l20 ljmp l21l20: add a,#01hda a mov 78h,a ljmp l24l21: mov 78h,#00h mov a,79h cjne a,#23h, l22 ljmp l23l22: add a,#01h da a mov 79h,al23: mov 79

31、h,#00hl24: ret ndiv42:mov a,r1 /*四除二子程序*/ push acc mov b,#00hndv421:mov a,r2 clr c subb a,r7 mov r1,a mov a,r5 subb a,r6 jc ndv422 mov r5,a mov a,r1 mov r2,a inc b sjmp ndv421ndv422:push b mov b,#10hndv423:clr c mov a, r4 rlc a mov r4,a mov a,r3 rlc a mov r3,a mov a, r2 rlc a mov r2,a xch a,r5 rlc a xch a,r5 mov f0,c clr c subb a,r7 mov r1,a mov a,r5 subb a,r6 jb f0,ncv424 jc ndv425ncv424:mov r5,a mov a,r1 mov r2,a inc r4ndv425:djnz b,ndv423 pop acc clr ov jnz ndv426 setb ovndv426:xch a,r2

溫馨提示

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

評(píng)論

0/150

提交評(píng)論