![[畢業(yè)設(shè)計(jì)]基于單片機(jī)的多功能出租車計(jì)價(jià)器設(shè)計(jì)_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/5/2d34bdac-efa1-46c7-a087-a565250fc4a5/2d34bdac-efa1-46c7-a087-a565250fc4a51.gif)
![[畢業(yè)設(shè)計(jì)]基于單片機(jī)的多功能出租車計(jì)價(jià)器設(shè)計(jì)_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/5/2d34bdac-efa1-46c7-a087-a565250fc4a5/2d34bdac-efa1-46c7-a087-a565250fc4a52.gif)
![[畢業(yè)設(shè)計(jì)]基于單片機(jī)的多功能出租車計(jì)價(jià)器設(shè)計(jì)_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/5/2d34bdac-efa1-46c7-a087-a565250fc4a5/2d34bdac-efa1-46c7-a087-a565250fc4a53.gif)
![[畢業(yè)設(shè)計(jì)]基于單片機(jī)的多功能出租車計(jì)價(jià)器設(shè)計(jì)_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/5/2d34bdac-efa1-46c7-a087-a565250fc4a5/2d34bdac-efa1-46c7-a087-a565250fc4a54.gif)
![[畢業(yè)設(shè)計(jì)]基于單片機(jī)的多功能出租車計(jì)價(jià)器設(shè)計(jì)_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/5/2d34bdac-efa1-46c7-a087-a565250fc4a5/2d34bdac-efa1-46c7-a087-a565250fc4a55.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、數(shù)理與信息工程學(xué)院課程設(shè)計(jì)多功能出租車計(jì)價(jià)器 數(shù)理與信息工程學(xué)院畢業(yè)設(shè) 計(jì) 題 目: 多功能出租車計(jì)價(jià)器 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù)(專升本) 班 級(jí): 姓 名: 學(xué)號(hào): 指導(dǎo)老師: 成 績: ( 2006.6 )目 錄第1節(jié) 引 言 11. 1 出租車計(jì)價(jià)器概述 11. 2 本設(shè)計(jì)任務(wù) 1 1.2.1 設(shè)計(jì)任務(wù) 1 1.2.2 設(shè)計(jì)要求 11. 3 系統(tǒng)主要功能 2第2節(jié) 出租車計(jì)價(jià)器硬件設(shè)計(jì) 32.1 系統(tǒng)的硬件構(gòu)成及功能 32. 2 at89s51單片機(jī)及其引腳說明 32.3 at24c02引腳圖及其引腳功能 62. 4 at24c02 掉電存儲(chǔ)單元的設(shè)計(jì) 62.5 里程計(jì)算、計(jì)價(jià)單元的
2、設(shè)計(jì) 72.6 數(shù)據(jù)顯示單元設(shè)計(jì) 8第3節(jié) 系統(tǒng)軟件設(shè)計(jì)103. 1 系統(tǒng)主程序設(shè)計(jì) 103. 2 定時(shí)中斷程序設(shè)計(jì) 103. 3 里程計(jì)數(shù)中斷服務(wù)程序設(shè)計(jì) 103.4 中途等待中斷服務(wù)程序設(shè)計(jì) 103. 5 鍵盤服務(wù)程序設(shè)計(jì)103. 6 顯示子程序服務(wù)程序設(shè)計(jì) 10第4節(jié) 系統(tǒng)調(diào)試與測試結(jié)果分析 134. 1 使用的儀器儀表 134.2 系統(tǒng)調(diào)試 134.3 測試結(jié)果 134.4 測試結(jié)果分析 13第5節(jié) 結(jié)束語 14附錄 15參考文獻(xiàn) 40 數(shù)理與信息工程學(xué)院課程設(shè)計(jì)多功能出租車計(jì)價(jià)器多功能出租車計(jì)價(jià)器第1節(jié) 引 言本次設(shè)計(jì)利用單片機(jī)技術(shù)來實(shí)現(xiàn)一臺(tái)多功能出租車計(jì)價(jià)器,具有性能可靠、電路簡單
3、、成本低等特點(diǎn)。1.1 出租車計(jì)價(jià)器概述計(jì)價(jià)器顯示的營運(yùn)金額是營運(yùn)里程與價(jià)格的函數(shù)(等候時(shí)間一般折算成一定比例的里程來計(jì)算)。出租車計(jì)價(jià)器通過傳感器與行駛車輛連接。出租汽車的實(shí)際里程通過傳感器的脈沖信號(hào)在計(jì)價(jià)器里折算成一定的計(jì)價(jià)營運(yùn)里程。目前市場上出租車計(jì)價(jià)器功能主要有具有數(shù)據(jù)的復(fù)位功能、白天/晚上轉(zhuǎn)換功能、數(shù)據(jù)輸出功能、計(jì)時(shí)計(jì)價(jià)功能等等,但能夠進(jìn)行語音播報(bào)數(shù)據(jù)信息的出租車計(jì)價(jià)器還是比較少見的,針對這一點(diǎn)我們來設(shè)計(jì)一款多功能出租車計(jì)價(jià)器,在原有功能的基礎(chǔ)上增加單價(jià)輸出、單價(jià)調(diào)整、路程輸出、顯示當(dāng)前的系統(tǒng)時(shí)間、語音播報(bào)數(shù)據(jù)信息等功能。1.2 本設(shè)計(jì)任務(wù)1.2.1 設(shè)計(jì)任務(wù) 設(shè)計(jì)一款基于at89s
4、51單片機(jī)的出租車計(jì)價(jià)器。1.2.2 設(shè)計(jì)要求1.基本要求(1) 不同情況具有不同的收費(fèi)標(biāo)準(zhǔn)。l 白天l 晚上l 途中等待(10min 開始收費(fèi))(2) 能進(jìn)行手動(dòng)修改單價(jià)。(3) 具有數(shù)據(jù)的復(fù)位功能。(4) io 口分配的簡易要求。l 距離檢測使用霍爾開關(guān)a44el 白天/晚上收費(fèi)標(biāo)準(zhǔn)的轉(zhuǎn)換開關(guān)l 數(shù)據(jù)的清零開關(guān)l 單價(jià)的調(diào)整(最好使用和按鍵)(5) 數(shù)據(jù)輸出(采用lcm103)。l 單價(jià)輸出 2 位l 路程輸出 2 位l 總金額輸出 3 位(6) 按鍵。l 啟動(dòng)計(jì)時(shí)開關(guān)l 數(shù)據(jù)復(fù)位(清零)l 白天/晚上轉(zhuǎn)換2.發(fā)揮部分(1) 能夠在掉電的情況下存儲(chǔ)單價(jià)等數(shù)據(jù)。(2) 能夠顯示當(dāng)前的系統(tǒng)時(shí)間
5、。(3) 語音播報(bào)數(shù)據(jù)信息。1.3 系統(tǒng)主要功能 本課程設(shè)計(jì)所設(shè)計(jì)的出租車計(jì)價(jià)器的主要功能有:數(shù)據(jù)的復(fù)位、白天/晚上轉(zhuǎn)換、數(shù)據(jù)輸出、計(jì)時(shí)計(jì)價(jià)、單價(jià)輸出及調(diào)整、路程輸出、語音播報(bào)數(shù)據(jù)信息、實(shí)現(xiàn)在系統(tǒng)掉電的時(shí)候保存單價(jià)和系統(tǒng)時(shí)間等信息等功能。輸出采用8 段數(shù)碼顯示管。本電路設(shè)計(jì)的計(jì)價(jià)器不但能實(shí)現(xiàn)基本的計(jì)價(jià),而且還能根據(jù)白天、黑夜、中途等待來調(diào)節(jié)單價(jià),同時(shí)在不計(jì)價(jià)的時(shí)候還能作為時(shí)鐘為司機(jī)同志提供方便。第2節(jié) 計(jì)價(jià)器硬件設(shè)計(jì)本系統(tǒng)的硬件設(shè)計(jì)主要包括單片機(jī)at89s51、數(shù)據(jù)顯示部件、a44e霍爾傳感器電路、at24c02 掉電存儲(chǔ)單元的設(shè)計(jì)、里程計(jì)算及計(jì)價(jià)單元的設(shè)計(jì)。在硬件設(shè)計(jì)過程中,充分利用各部件的
6、功能,實(shí)現(xiàn)多功能的出租車計(jì)價(jià)器設(shè)計(jì)。2.1 系統(tǒng)的硬件構(gòu)成及功能計(jì)價(jià)器的單片機(jī)控制方案圖如圖1所示。它由以下幾個(gè)部件組成:單片機(jī)at89s51、總金額及單價(jià)顯示部件、鍵盤控制部件,at24c02 掉電存儲(chǔ)控制、里程計(jì)算單元、串中顯示驅(qū)動(dòng)電路等。利用單片機(jī)豐富的io端口,及其控制的靈活性,實(shí)現(xiàn)基本的里程計(jì)價(jià)功能和價(jià)格調(diào)節(jié)、時(shí)鐘顯示功能。不但能實(shí)現(xiàn)所要求的功能而且能在很大的程度上擴(kuò)展功能,而且還可以方便的對系統(tǒng)進(jìn)行升級(jí)。具體電路參見“多功能出租車計(jì)價(jià)器總體電路圖”。 圖1 單片機(jī)控制方案圖2.2 at89s51單片機(jī)及其引腳說明at89s51是美國atmel公司生產(chǎn)的低功耗,高性能cmos 8位單
7、片機(jī),片內(nèi)含4kb的可系統(tǒng)編程的flash只讀程序存儲(chǔ)器,器件采用atmel公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)8051指令系統(tǒng)及引腳。它集flash程序存儲(chǔ)器既可在線編程(isp)也可用傳統(tǒng)方法進(jìn)行編程及通用 8位微處理器于單片芯片中,具有高性價(jià)比。at89s51是一個(gè)有40個(gè)引腳的芯片,引腳配置如圖2所示。圖2 at89s51引腳配置at89s51芯片的40個(gè)引腳功能為:vcc 電源電壓。gnd 接地。rst 復(fù)位輸入。當(dāng)rst變?yōu)楦唠娖讲⒈3?個(gè)機(jī)器周期時(shí),將使單片機(jī)復(fù)位。wdt溢出將使該引腳輸出高電平,設(shè)置sfr auxr的disrto位(地址8eh)可打開或關(guān)閉該功能。dis
8、krto位缺省為reset輸出高電平打開狀態(tài)。xtal1 反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。xtal2 來自反向振蕩放大器的輸出。p0口 一組8位漏極開路型雙向i/o口。也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能驅(qū)動(dòng)8個(gè)ttl邏輯門電路,對端口寫“1”可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。在flash編程時(shí),p0口接收指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻。p1口 一個(gè)帶內(nèi)部上拉電阻的8位雙向i/o口,p1的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)ttl邏輯門
9、電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(iil)。flash編程和程序校驗(yàn)期間,p1接收低8位地址。p1口部分端口引腳及功能如表1所示。表1 p1口特殊功能p1口引腳特殊功能p1.5mosi(用于isp編程)p1.6mosi(用于isp編程)p1.7sck(用于isp編程)p2口 一個(gè)帶內(nèi)部上拉電阻的8位雙向i/o口。p1的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)ttl邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,
10、某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(iil)。在訪問外部程序存儲(chǔ)器或16位地址的外部數(shù)據(jù)存儲(chǔ)器時(shí),p2口送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲(chǔ)器時(shí),p2口線上的內(nèi)容在整個(gè)訪問期間不改變。flash編程和程序校驗(yàn)期間,p2亦接收低8位地址。p3口 一個(gè)帶內(nèi)部上拉電阻的8位雙向i/o口。p3的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)ttl邏輯門電路。對p3口寫“1”時(shí),它們被內(nèi)部的上拉電阻把拉到高電并可作輸入端口。作輸入端口使用時(shí),被外部拉低的p3口將用上拉電阻輸出電流(iil)。p3口除了作為一般的i/o口線外,更重要的用途是它的第二功能,如表2所示。p3口還接收一些用于flash閃
11、速存儲(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ǔ)器寫選通)p3.7 (外部數(shù)據(jù)存儲(chǔ)器讀選通)psen/ 程序儲(chǔ)存允許輸出是外部程序存儲(chǔ)器的讀先通信號(hào),當(dāng)at89s51由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次psen/有效,即輸出兩個(gè)脈沖。當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,沒有兩次有效的psen/信號(hào)。ea/vpp 外部訪問允許。欲使cpu僅訪問外部程序存儲(chǔ)器,ea端必須保持低電平,
12、需注意的是:如果加密位lb1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存ea端狀態(tài)。flash存儲(chǔ)器編程時(shí),該引腳加上+12v的編程電壓vpp。2.3 at24c02引腳圖及其引腳功能at24c02芯片引腳配置如圖3所示。圖3 at24c02引腳配置圖at24c02芯片dip封裝,共有8個(gè)引腳,其中:a2a0 地址引腳;sda、scl i2c總線接口;wp 寫保護(hù)引腳,wp接vss時(shí),禁止寫入高位地址,wp接vdd時(shí),允許寫入任何地址;vcc 電源端gnd 接地端2.4 at24c02 掉電存儲(chǔ)單元的設(shè)計(jì)掉電存儲(chǔ)單元的作用是在電源斷開的時(shí)候,存儲(chǔ)當(dāng)前設(shè)定的單價(jià)信息。at24c02 是atmel公司的2kb 字節(jié)的
13、電可擦除存儲(chǔ)芯片,采用兩線串行的總線和單片機(jī)通訊,電壓最低可以到2.5v,額定電流為1ma,靜態(tài)電流10ua(5.5v),芯片內(nèi)的資料可以在斷電的情況下保存40 年以上,而且采用8 腳的dip 封裝,使用方便。其電路如圖4所示。圖 4 掉電存儲(chǔ)電路原理圖圖中r8、r10 是上拉電阻,其作用是減少at24c02 的靜態(tài)功耗,由于at24c02 的數(shù)據(jù)線和地址線是復(fù)用的,采用串口的方式傳送數(shù)據(jù),所以只用兩根線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à)等信息,
14、讀到緩存單元中,供主程序使用。2.5 里程計(jì)算、計(jì)價(jià)單元的設(shè)計(jì) 里程計(jì)算是通過安裝在車輪上的霍爾傳感器a44e檢測到的信號(hào),送到單片機(jī),經(jīng)處理計(jì)算,送給顯示單元的。其原理如圖5所示。圖 5 傳感器測距示意圖由于a44e 屬于開關(guān)型的霍爾器件,其工作電壓范圍比較寬(4.518v),其輸出的信號(hào)符合ttl 電平標(biāo)準(zhǔn),可以直接接到單片機(jī)的io 端口上,而且其最高檢測頻率可達(dá)到1mhz。a44e 集成霍耳開關(guān)由穩(wěn)壓器a、霍耳電勢發(fā)生器(即硅霍耳片)b、差分放大器c、施密特觸發(fā)器d 和oc 門輸出e 五個(gè)基本部分組成。在輸入端輸入電壓cc v ,經(jīng)穩(wěn)壓器穩(wěn)壓后加在霍耳電勢發(fā)生器的兩端,根據(jù)霍耳效應(yīng)原理,
15、當(dāng)霍耳片處在磁場中時(shí),在垂直于磁場的方向通以電流,則與這二者相垂直的方向上將會(huì)產(chǎn)生霍耳電勢差h v 輸出,該h v 信號(hào)經(jīng)放大器放大后送至施密特觸發(fā)器整形,使其成為方波輸送到oc 門輸出。當(dāng)施加的磁場達(dá)到工作點(diǎn)(即op b )時(shí),觸發(fā)器輸出高電壓(相對于地電位),使三極管導(dǎo)通,此時(shí)oc 門輸出端輸出低電壓,通常稱這種狀態(tài)為開。當(dāng)施加的磁場達(dá)到釋放點(diǎn)(即rp b )時(shí),觸發(fā)器輸出低電壓,三極管截止,使oc 門輸出高電壓,這種狀態(tài)為關(guān)。這樣兩次電壓變換,使霍耳開關(guān)完成了一次開關(guān)動(dòng)作。 我們選擇了p3.2 口作為信號(hào)的輸入端,內(nèi)部采用外部中斷0(這樣可以減少程序設(shè)計(jì)的麻煩),車輪每轉(zhuǎn)一圈(我們設(shè)車輪
16、的周長是1 米),霍爾開關(guān)就檢測并輸出信號(hào),引起單片機(jī)的中斷,對脈計(jì)數(shù),當(dāng)計(jì)數(shù)達(dá)到1000 次時(shí),也就是1 公里,單片機(jī)就控制將金額自動(dòng)的加增加,其計(jì)算公式:當(dāng)前單價(jià)公里數(shù)=金額。2.6 數(shù)據(jù)顯示單元設(shè)計(jì)由于設(shè)計(jì)要求有單價(jià)(2 位)、路程(2 位)、總金額(3 位)顯示輸出,加上我們另外擴(kuò)展了時(shí)鐘顯示(包含時(shí)分秒的顯示),采用lcd 液晶段碼顯示,在距離屏幕1 米之外就無法看清數(shù)據(jù),不能滿足要求,而且在白天其對比度也不能夠滿足要求,因此我們采用6 位led數(shù)碼管的分屏顯示,如圖6 所示:時(shí)鐘顯示(圖中顯示為12 點(diǎn)0 分46 秒)總金額和單價(jià)顯示(圖中顯示為總金額55.3元,每公里4.6 元)
17、路程和單價(jià)顯示(圖中顯示為總路程12 公里,當(dāng)前單價(jià)4.6 元)單價(jià)調(diào)整顯示(圖中顯示為右起白天單價(jià)4 .6 元/晚上7.8 /中途等待1.2 元)圖 6 采用6 位led數(shù)碼管的分屏顯示數(shù)據(jù)的分屏的顯示是通過按鍵s1 來實(shí)現(xiàn)切換的,如圖7 所示。在出租車不走的時(shí)候,按下s1,可以實(shí)現(xiàn)數(shù)據(jù)的分屏顯示;車在行走的時(shí)候只有總金額和單價(jià)顯示屏在顯示,當(dāng)?shù)竭_(dá)目的地的時(shí)候,客戶要求查看總的里程的時(shí)候,就可以按下s1 切換到里程和單價(jià)顯示屏,供客戶查詢。顯示電路的電路原理圖如圖8所示。圖 7 s1切換顯示屏圖 8 顯示器原理圖從單片機(jī)串口輸出的信號(hào)先送到左邊的移位寄存器(74hc164),由于移位脈沖的作
18、用,使數(shù)據(jù)向右移,達(dá)到顯示的目的。移位寄存器74hc164還兼作數(shù)碼管的驅(qū)動(dòng),插頭1(header1)接電源,插頭2(header2)接數(shù)據(jù)和脈沖輸出端。電路中的三個(gè)整流管d1d3 的作用是降低數(shù)碼管的工作電壓,增加其使用壽命。第3節(jié) 系統(tǒng)的軟件設(shè)計(jì)本系統(tǒng)的軟件設(shè)計(jì)主要可分為主程序模塊、定時(shí)計(jì)數(shù)中斷程序、里程計(jì)數(shù)中斷服務(wù)程序、中途等待中斷服務(wù)程序、顯示子程序服務(wù)程序、鍵盤服務(wù)程序六大模塊。下面對各部分模塊作介紹。3.1 系統(tǒng)主程序設(shè)計(jì)在主程序模塊中,需要完成對各接口芯片的初始化、出租車起價(jià)和單價(jià)的初始化、中斷向量的設(shè)計(jì)以及開中斷、循環(huán)等待等工作。另外,在主程序模塊中還需要設(shè)置啟動(dòng)/清除標(biāo)志寄存
19、器、里程寄存器和價(jià)格寄存器,并對它們進(jìn)行初始化。然后,主程序?qū)⒏鶕?jù)各標(biāo)志寄存器的內(nèi)容,分別完成啟動(dòng)、清除、計(jì)程和計(jì)價(jià)等不同的操作。主程序流程圖如圖9 所示。當(dāng)按下s1時(shí),就啟動(dòng)計(jì)價(jià),將根據(jù)里程寄存器中的內(nèi)容計(jì)算和判斷出行駛里程是否已超過起價(jià)公里數(shù)。若已超過,則根據(jù)里程值、每公里的單價(jià)數(shù)和起價(jià)數(shù)來計(jì)算出當(dāng)前的累計(jì)價(jià)格,并將結(jié)果存于價(jià)格寄存器中,然后將時(shí)間和當(dāng)前累計(jì)價(jià)格送顯示電路顯示出來。當(dāng)?shù)竭_(dá)目的地的時(shí)候,由于霍爾開關(guān)沒有送來脈沖信號(hào),就停止計(jì)價(jià),顯示當(dāng)前所應(yīng)該付的金額和對應(yīng)的單價(jià),到下次啟動(dòng)計(jì)價(jià)時(shí),系統(tǒng)自動(dòng)對顯示清零,并重新進(jìn)行初始化過程。3.2 定時(shí)中斷服務(wù)程序在定時(shí)中斷服務(wù)程序中,每100
20、ms 產(chǎn)生一次中斷,當(dāng)產(chǎn)生10 次中斷的時(shí)候,也就到了一秒,送數(shù)據(jù)到相應(yīng)的顯示緩沖單元,并調(diào)用顯示子程序?qū)崟r(shí)顯示。其程序流程如圖10 所示。3.3 里程計(jì)數(shù)中斷服務(wù)程序每當(dāng)霍爾傳感器輸出一個(gè)低電平信號(hào)就使單片機(jī)中斷一次,當(dāng)里程計(jì)數(shù)器對里程脈沖計(jì)滿1000 次時(shí),使微機(jī)進(jìn)入里程計(jì)數(shù)中斷服務(wù)程序中。在該程序中,需要完成當(dāng)前行駛里程數(shù)和總額的累加操作,并將結(jié)果存入里程和總額寄存器中。3.4 中途等待中斷服務(wù)程序當(dāng)在計(jì)數(shù)狀態(tài)下霍爾開關(guān)沒有輸出信號(hào),片內(nèi)的t1 定時(shí)器便被啟動(dòng),每當(dāng)計(jì)時(shí)到達(dá)10分鐘,就對當(dāng)前金額加上中途等待的單價(jià),以后每十分鐘都自動(dòng)加上中途等待的單價(jià)。當(dāng)中途等待結(jié)束的時(shí)候,也就自動(dòng)切換到
21、正常的計(jì)價(jià)。3.5 顯示子程序服務(wù)程序由于是分屏顯示數(shù)據(jù),所以就要用到4 個(gè)顯示子程序,分別是:時(shí)分秒顯示子程序(hms_dis)、金額單價(jià)顯示子程序(cp_dis)、路程單價(jià)顯示子程序(dp_dis)、單價(jià)調(diào)節(jié)子程序(pa_dis)。3.6 鍵盤服務(wù)程序鍵盤采用查詢的方式,放在主程序中,當(dāng)沒有按鍵按下的時(shí)候,單片機(jī)循環(huán)主程序,一旦有按鍵按下,便轉(zhuǎn)向相應(yīng)的子程序處理,處理結(jié)束再返回。開始初始化數(shù)據(jù)否s1按下?是是s4按下?否設(shè)定晚上單價(jià)設(shè)定默認(rèn) 單價(jià)(白天)否按下s4?是啟動(dòng)計(jì)價(jià)器設(shè)定中途等待單價(jià)圖9 主程序流程圖否是到一公里?是否否是顯示金額及單價(jià)s3按下?顯示路程和單價(jià)s3按下?總路程加1
22、總金額加1是里程中斷?停止計(jì)價(jià)和里程計(jì)數(shù)是否s4按下?返回時(shí)間顯示是否傳感有信號(hào)? 開始保護(hù)現(xiàn)場重置計(jì)數(shù)初值否中斷10次?是數(shù)據(jù)送顯示緩沖單元調(diào)用顯示子程序恢復(fù)現(xiàn)場并中斷返回 圖10 定時(shí)中斷服務(wù)程序第4節(jié) 系統(tǒng)調(diào)試與測試結(jié)果分析根據(jù)系統(tǒng)設(shè)計(jì)方案,本系統(tǒng)的調(diào)試共分為三大部分:硬件調(diào)試,軟件調(diào)試和軟硬件聯(lián)調(diào)。測試包括里程計(jì)價(jià)測試、掉電存儲(chǔ)測試測試。4.1 使用的儀器儀表 數(shù)字萬用表dt9203單片機(jī)仿真器wave6000燒寫器 gf2100雙蹤穩(wěn)壓穩(wěn)流電源dh1718e-5數(shù)字示波器 tds10024.2 系統(tǒng)調(diào)試根據(jù)系統(tǒng)設(shè)計(jì)方案,本系統(tǒng)的調(diào)試共分為三大部分:硬件調(diào)試,軟件調(diào)試和軟硬件聯(lián)調(diào)。由于
23、在系統(tǒng)設(shè)計(jì)中采用模塊設(shè)計(jì)法,所以方便對各電路模塊功能進(jìn)行逐級(jí)測試。4.3 測試結(jié)果 略。4.4 測試結(jié)果分析 略。結(jié) 束 語本款出租車計(jì)價(jià)器比目前市場現(xiàn)在的增加了不少功能,其中包括單價(jià)輸出、單價(jià)調(diào)整、路程輸出、顯示當(dāng)前的系統(tǒng)時(shí)間、語音播報(bào)數(shù)據(jù)信息等功能。另外,多功能出租車計(jì)價(jià)器還具有性能可靠、電路簡單、成本低、實(shí)用性強(qiáng)等特點(diǎn),加上經(jīng)過優(yōu)化的程序,使其有很高的智能化水平。通過本次課程設(shè)計(jì),又使我學(xué)到了許多書本上無法學(xué)到的知識(shí),也使也深該體會(huì)到單片機(jī)技術(shù)應(yīng)用領(lǐng)域的廣泛,不僅使我對學(xué)過的單片機(jī)知識(shí)有了很多的鞏固,同時(shí)也對單片機(jī)這一門課程產(chǎn)生了更大的興趣。在本次課程設(shè)計(jì)過程中,我學(xué)會(huì)了在網(wǎng)絡(luò)上查找有關(guān)
24、本設(shè)計(jì)的各硬件的資源,其中包括:at89s51單片機(jī)及其引腳說明、at24c02引腳圖及其引腳功能等,為本次課程設(shè)計(jì)提供了一定的資料。由于平時(shí)很少進(jìn)行課程設(shè)計(jì),所以對于課程設(shè)計(jì)報(bào)告的格式也是近期才接觸到,經(jīng)過這兩次的設(shè)計(jì),為我們以后畢業(yè)設(shè)計(jì)的制作也奠定了一定的基礎(chǔ)。附 錄1. 系統(tǒng)實(shí)物圖 略。2. 總體設(shè)計(jì)電路圖多功能出租車計(jì)價(jià)器總體電路圖3計(jì)價(jià)表使用說明(1)s1按鍵的功能在出租車不走的時(shí)候,按下s1,可以實(shí)現(xiàn)數(shù)據(jù)的分屏顯示;車在行走的時(shí)候只有總金額和單價(jià)顯示屏在顯示,當(dāng)?shù)竭_(dá)目的地的時(shí)候,客戶要求查看總的里程的時(shí)候,就可以按下s1 切換到里程和單價(jià)顯示屏,供客戶查詢。(2)s2按鍵的功能 在
25、按下s1按鍵之后,若接著按下s2鍵則進(jìn)行單價(jià)調(diào)整(默認(rèn)為調(diào)整白天單價(jià)),當(dāng)接著按下s1時(shí),則進(jìn)行晚上單價(jià)調(diào),再次按下s1可進(jìn)行中途等待單價(jià)調(diào)整。當(dāng)單價(jià)調(diào)整結(jié)束后,可以通過過按下s2按鍵進(jìn)行時(shí)間調(diào)整,默認(rèn)為調(diào)整時(shí),接著按下s1可進(jìn)行調(diào)整分,分調(diào)整后再接下s1可進(jìn)行秒調(diào)整。當(dāng)時(shí)調(diào)整完成后,若接著按下s2則又可進(jìn)行單價(jià)調(diào)整。(3)s3按鍵的功能 在顯示金額及單價(jià)時(shí),若按下s3鍵則顯示路程和單價(jià),再次按下s3,可返回顯示金額及單價(jià)。(4)s4按鍵的功能在按下s1按鍵之后,若接著按下s4按鍵,則進(jìn)行設(shè)定默認(rèn)晚上單價(jià),并啟動(dòng)計(jì)價(jià)器,若沒有按下s4則可設(shè)定默認(rèn)單價(jià)(白天),并啟動(dòng)計(jì)價(jià)器。當(dāng)設(shè)定默認(rèn)晚上單價(jià)結(jié)
26、束后,再次接下s4按鍵,則可設(shè)定默認(rèn)中途等待單價(jià),并啟動(dòng)計(jì)價(jià)器。當(dāng)設(shè)定默認(rèn)中途等待單價(jià)后,若還按一次s4,則返回系統(tǒng)時(shí)間的顯示。4. 全部源程序該出租車計(jì)價(jià)器的系統(tǒng)軟件設(shè)計(jì)源程序如下:day_priceequ 6fhnight_priceequ 6ehmidway_priceequ 6dhstart_priceequ 6chcountl equ 6bhcounth equ 6ahm100 equ 69h ; 外部中斷次數(shù)distance equ 68h ; 行車距離ms100 equ 67hsec equ 66hmin equ 65hhour equ 64hledsl equ 63h ; 時(shí)分
27、鈔顯示緩沖區(qū)ledsh equ 62hledml equ 61hledmh equ 60hledhl equ 5fhledhh equ 5ehleddanjial equ 5dh ; 總額,單價(jià)顯示緩沖區(qū)leddanjiah equ 5chline_ equ 5bhledcount1 equ 5ahledcount2 equ 59hledcount3 equ 58hleddanjia2l equ 57h ; 路程,單價(jià)顯示緩沖區(qū)leddanjia2h equ 56hline_ equ 55hline_ equ 54hleddistancel equ 53hleddistanceh equ 52
28、hledday_pl equ 51h ; 中途,晚上,白天顯示緩沖區(qū)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 47hh1 equ 46hm2 equ 45hh2 equ 44hprice equ 43horg 0000hajmpmainorg 0003hajmptoorg 000bhajm
29、ptotimeorg 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 r0,#0dec r0djnzr7,looplmov countl, #00h ; 起步價(jià)mov counth, #05hmov day_price,#25h ; 白天價(jià)格初始
30、化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_disacall t100msdacall t100msdacall t100msdjb s1, key_mainacall t10msdjb s1, key_mainjnb s1,$sjmp wai1wa1
31、: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 countl, #00h; 起步價(jià)mov counth, #05hlcall cp_dis; 總金額和單價(jià)顯示k1: jb s2, k2acall t10msdjb s2, k2wait2: jnb s2, w
32、ait2inc 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, s33cjne a, #1, nxt1lcall dp_disnxt1: cjne a, #2, nxt2clr cmov a, m2subb a, m1mov m1, am
33、ov 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:cjne a, #2, nt2mov price,night_pricelcall cp_disnt2:cjne a, #3, nt3mov price,midway_priceset
34、b 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,next12lcall nig_pnext12:cjne a, #3, ky1lcall mid_pmov s11, #0ljmp key_mainky1:jb s2, ky2a
35、call 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 key_djkey_sj:jb s1, key1acall t10msdjb s1, key1wait7:jnb s1, wait7inc s11mov a, s11cjne a,
36、 #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_disljmp key_djnext23:cjne a, #2, next24clr tr0lcall hms_disnext24:cjne a, #3, key2mov s22,#0lc
37、all 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_priceda amov day_price,amov a, day_pricecjne a, #99h, key11mov day_price, #0key11: jb s4, key12
38、lcall 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_pnext31:cjne a, #2,next32lcall nig_pnext32:cjne a, #3,next33lcall mid_pnext33:cjne a, #4, ke
39、y13mov s11, #0key13:jb s2, key14lcall t10msdjb s2, key14wait12:jnb s2, wait12ljmp key_mainkey14:ajmp day_pnig_p:setb f0 ;調(diào)用定時(shí)延時(shí)標(biāo)志位lcall t100msdlcall t100msdmov lednig_pl, #0ahmov lednig_ph, #0ahlcall pa_dis1lcall t100msdlcall t100msdlcall pa_disjb s3, key21lcall t10msdjb s3, key21mov a, #1add a, nig
40、ht_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, key23acall t10msdjb s1, key23wait15:jnb s1, wait15inc s11mov a, s11cjne a, #1,next41lcall d
41、ay_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_pmid_p: setb f0 ;調(diào)用定時(shí)延時(shí)標(biāo)志位lcall t100msdmov ledw_pl, #0ahmov ledw_ph, #0ahlcall pa_dis1lc
42、all 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, key32lcall t10msdjb s4, key32mov a, midway_priceadd a, #99hda amov midway_price,acjne a, #00h, ke
43、y32mov 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: cjne a, #4, key33mov s11, #0ljmp key_djkey33: jb s2, key34lcall t10msdjb s2, key34wait3
44、1:jnb s2, wait31ljmp key_mainkey34: 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, houradd a, #1da amov hour,acjne a, #24h, key41mov hour, #0key41: jb s4, key
45、42mov 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, #3,key43mov s11, #0ljmp key_sjkey43: jb s2, key44lcall t10msdjb s2, k
46、ey44wait32: 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, key51mov 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, s11cjne a, #1,next71lcall hou_tnext71: cjne a, #2,ne
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 制作安裝供貨合同范例
- 公司簽訂長期合同范本
- 勞動(dòng)合同范本設(shè)計(jì)
- 白茶行業(yè)分析研究報(bào)告
- 廠房轉(zhuǎn)讓經(jīng)營合同范本
- 原油廢料銷售合同范本
- 動(dòng)物藥品銷售合同范例
- 公司聘用員工合同范本
- 發(fā)廊轉(zhuǎn)讓協(xié)議合同范本
- 共同合作融資合同范本
- 2025年黑龍江生態(tài)工程職業(yè)學(xué)院單招職業(yè)傾向性測試題庫1套
- 白介素6臨床意義
- 2025年充電樁場地租賃合同官方版模板
- DeepSeek的應(yīng)用與部署
- 2019版外研社高中英語選擇性必修二Unit 1 Growing up 單詞表
- 有機(jī)金屬化學(xué)1
- JIT標(biāo)準(zhǔn)作業(yè)作業(yè)指導(dǎo)書
- 安徽省2020-2021學(xué)年七年級(jí)語文下學(xué)期期末測試卷[含答案]
- 人教版三年級(jí)數(shù)學(xué)下冊各單元教材分析(全冊共九個(gè)單元)
- 公司駕駛員承諾書
- 中國石油電子招標(biāo)投標(biāo)交易平臺(tái)投標(biāo)保證金操作指南V1.0
評論
0/150
提交評論