欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 5849|回復(fù): 1
收起左側(cè)

單片機(jī)出租車(chē)計(jì)價(jià)器畢業(yè)設(shè)計(jì)論文下載

[復(fù)制鏈接]
ID:121279 發(fā)表于 2016-5-16 20:34 | 顯示全部樓層 |閱讀模式
該帖有一個(gè)WIFI模塊資料,一個(gè)出租車(chē)計(jì)價(jià)畢業(yè)設(shè)計(jì)

所有資料下載:
網(wǎng)絡(luò)模塊.rar (2.82 MB, 下載次數(shù): 53)
出租車(chē)計(jì)費(fèi)器畢業(yè)設(shè)計(jì).doc (337 KB, 下載次數(shù): 64)

濟(jì)南鐵道職業(yè)技術(shù)學(xué)院

畢業(yè)設(shè)計(jì)報(bào)告摘要

本文介紹了以STC12C5A08AD單片機(jī)為核心的多功能出租車(chē)計(jì)價(jià)器的設(shè)計(jì) ,闡述了系統(tǒng)軟硬件設(shè)計(jì)過(guò)程及關(guān)鍵技術(shù)。經(jīng)測(cè)試,本計(jì)價(jià)器具有計(jì)程、計(jì)價(jià)、計(jì)時(shí)、等待時(shí)間計(jì)價(jià)等多種計(jì)量功能,并且具有存儲(chǔ)、查詢(xún)、起步價(jià)、起步價(jià)里程和每公里價(jià)格的預(yù)置價(jià)格預(yù)置密碼確認(rèn)、車(chē)速顯示、超速提醒、語(yǔ)音服務(wù)、清單打印和車(chē)內(nèi)溫度顯示等多種功能。

關(guān)鍵詞

出租車(chē)計(jì)價(jià)器  多功能  STC12C5A08AD  軟硬件設(shè)計(jì)



目   錄
1 引言  ………………………………………………………………………… 1
2 方案論證  …………………………………………………………………… Y
  2.1 主控芯片的選擇  ……………………………………………………… Y
  2.2 鍵盤(pán)選擇 ……………………………………………………………… Y
  2.3掃描方式的選擇 ……………………………………………………… Y
  2.4顯示驅(qū)動(dòng)方式選擇 ……………………………………………………… Y
3 系統(tǒng)整體 …………………………………………………………………… Y
  3.1系統(tǒng)整體框圖………………………………………………………………Y
4各單元電路設(shè)計(jì)……………………………………………………………… Y
  4.1主控單元………………………………………………………………… Y
  4.2模擬出租車(chē)車(chē)速裝置與里程檢測(cè)單元……………………………………Y
  4.3鍵盤(pán)控制單元…………………………………………………………… Y
  4.4數(shù)碼顯示單元…………………………………………………………… Y
  4.5實(shí)時(shí)時(shí)鐘與等待時(shí)間累加單元………………………………………… Y
  4.6語(yǔ)音播報(bào)與超速提醒單元……………………………………………… Y
  4.7票據(jù)打印單元…………………………………………………………… Y
  4.8車(chē)內(nèi)實(shí)時(shí)溫度顯示單元………………………………………………… Y
5系統(tǒng)軟件設(shè)計(jì)………………………………………………………………… Y
6測(cè)試方案與測(cè)試結(jié)果………………………………………………………… Y
  1  系統(tǒng)性能測(cè)試項(xiàng)目表………………………………………………… Y
  表2  按鍵模擬設(shè)置里程、單程/往返計(jì)價(jià)測(cè)試結(jié)果……………………… Y
  表3  預(yù)置轉(zhuǎn)速后計(jì)價(jià)測(cè)試結(jié)果…………………………………………… Y
  表4  累計(jì)等待時(shí)間計(jì)價(jià)功能測(cè)試結(jié)果…………………………………… Y
  表5  起步價(jià)、起步里程與每公里價(jià)格預(yù)置功能測(cè)試結(jié)果………………… Y
  表6  白天/晚上計(jì)價(jià)標(biāo)準(zhǔn)測(cè)試結(jié)果  ……………………………………… Y
總結(jié) …………………………………………………………………………… Y
致謝 …………………………………………………………………………… Y
參考文獻(xiàn)…………………………………………………………………………Y
附錄一主程序流程 …………………………………………………… Y
附錄二 計(jì)價(jià)子程序流程 …………………………………………………… Y
附錄三顯示子程序 …………………………………………………… Y
附錄四時(shí)鐘子程序 …………………………………………………… Y
附錄五 溫度傳感器子程序 …………………………………………………… Y



引   言
出租車(chē)計(jì)價(jià)器是出租車(chē)營(yíng)運(yùn)收費(fèi)的專(zhuān)用智能化儀表 ,隨著電子技術(shù)的發(fā)展 ,出租車(chē)計(jì)價(jià)器技術(shù)也在不斷進(jìn)步和提高。國(guó)內(nèi)出租車(chē)計(jì)價(jià)器已經(jīng)經(jīng)歷了4 個(gè)階段的發(fā)展。從傳統(tǒng)的全部由機(jī)械元器件組成的機(jī)械式,到半電子式即用電子線(xiàn)路代替部分機(jī)械元器件的出租車(chē)計(jì)價(jià)器;再?gòu)募呻娐肥降侥壳暗膯纹瑱C(jī)系統(tǒng)設(shè)計(jì)的出租車(chē)計(jì)價(jià)器。出租車(chē)計(jì)價(jià)器計(jì)費(fèi)是否準(zhǔn)確、出租車(chē)司機(jī)是否超速才是乘客最關(guān)心的問(wèn)題,而計(jì)價(jià)器營(yíng)運(yùn)數(shù)據(jù)的管理是否方便又是出租車(chē)司機(jī)最關(guān)注的。因此設(shè)計(jì)出一種既能有效防止司機(jī)作弊和超速又能方便司機(jī)的計(jì)價(jià)器尤為重要。因此,本文以單片機(jī)STC12C5A08AD為核心設(shè)計(jì)一款多功能出租車(chē)計(jì)價(jià)器,該計(jì)價(jià)器能實(shí)現(xiàn)里程計(jì)價(jià)與顯示、數(shù)據(jù)存儲(chǔ)與查詢(xún)、時(shí)鐘顯示、超速提醒、語(yǔ)音播報(bào)和票據(jù)打印等功能。它比市場(chǎng)上的一些計(jì)價(jià)器使用更方便 ,功能更全,還具有有效防止司機(jī)作弊和系統(tǒng)穩(wěn)定性好的優(yōu)點(diǎn)。其中的超速提醒功能可以提醒司機(jī)和乘客 ,以告誡司機(jī)不要超速行駛,以避免交通事故的發(fā)生。
方案論證
1、主控芯片選擇
方案一: 用普通的51系列單片機(jī),可以滿(mǎn)足設(shè)計(jì)要求,但從成本、功耗、運(yùn)行速度方面不及STC系列單片機(jī)。
方案二: 采用增強(qiáng)型STC系列單片機(jī),STC系列單片機(jī)具有高速、低功耗高可靠、強(qiáng)抗干擾,強(qiáng)抗靜電、超低價(jià)等優(yōu)點(diǎn),因此本設(shè)計(jì)采用STC12C5A08AD作為系統(tǒng)主控芯片。
2、鍵盤(pán)選擇
方案一:采用獨(dú)立式鍵盤(pán),由于本設(shè)計(jì)需要設(shè)有單程、往返、暫停、清除、鍵盤(pán)預(yù)置、價(jià)格預(yù)置密碼確認(rèn)等功能鍵,如果采用獨(dú)立式鍵盤(pán),編程復(fù)雜,對(duì)使用者來(lái)說(shuō),操作十分不方便。
方案二:采用矩陣式鍵盤(pán),編程簡(jiǎn)單,無(wú)論是按鍵控制還是密碼輸入都很方便,容易被使用者接受和使用。本設(shè)計(jì)采用此方案。
3、掃描方式選擇
方案一:采用動(dòng)態(tài)掃描顯示,由于本設(shè)計(jì)需要顯示的內(nèi)容較多,采用的數(shù)碼管位數(shù)多。如果采用動(dòng)態(tài)顯示,需要將16 個(gè)數(shù)碼管分組驅(qū)動(dòng),占用I/O多,在輪流顯示過(guò)程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為1~2ms,掃描速度跟不上,各位數(shù)碼管并非同時(shí)點(diǎn)亮,顯示亮度不夠。
方案二:采用靜態(tài)顯示,靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是不存在掃描速度及閃爍問(wèn)題,因此編程簡(jiǎn)單;數(shù)碼管位選通由各自獨(dú)立74HC595驅(qū)動(dòng)控制顯示穩(wěn)定且亮度高。本設(shè)計(jì)采用此方案。
4、顯示驅(qū)動(dòng)方式選擇
方案一: 采用74HC164做驅(qū)動(dòng),成本低,接線(xiàn)少,但驅(qū)動(dòng)能力弱,沒(méi)有鎖存,數(shù)碼管顯示不穩(wěn)定。
方案二:采用74HC595做驅(qū)動(dòng),驅(qū)動(dòng)能力強(qiáng),有鎖存端,數(shù)碼管顯示穩(wěn)定,因此本設(shè)計(jì)采用此方案。
系統(tǒng)整體方案
  • 系統(tǒng)整體框圖
1.003.jpg
圖 1 系統(tǒng)整體框圖
整體方案設(shè)計(jì)方框圖如圖 1 所示,整個(gè)系統(tǒng)由單片機(jī)STC12C5A08AD控制,整個(gè)系統(tǒng)由光電傳感器速度采集部分, DS1302 時(shí)鐘電路、ISD2560語(yǔ)音播報(bào)電路、票據(jù)打印電路、溫度采集、模擬車(chē)速裝置、超速提醒和價(jià)格預(yù)置等組成,采用 4×4矩陣式鍵盤(pán)控制、顯示電路采用74HC595驅(qū)動(dòng)。
各單元電路設(shè)計(jì)
1、主控單元
本設(shè)計(jì)采用STC系列單片機(jī)STC12C5A08AD控制,利用單片機(jī)采集按鍵及車(chē)速模擬傳感器信息完成各種控制,并利用其內(nèi)部存儲(chǔ)器,當(dāng)通過(guò)按鍵設(shè)定一次數(shù)據(jù)完畢后(如:晝夜單價(jià)、等候時(shí)間、起租里程、起租金額等),系統(tǒng)就自動(dòng)調(diào)用存儲(chǔ)程序,將數(shù)據(jù)信息保存在芯片內(nèi);當(dāng)系統(tǒng)重新上電時(shí),自動(dòng)調(diào)用讀存儲(chǔ)器程序,將存儲(chǔ)器內(nèi)的數(shù)據(jù)信息,讀到緩存單元中,供主程序使用。由于保存在單片機(jī)中的數(shù)據(jù)是不能隨意進(jìn)行改動(dòng),因此它具有防作弊功能。此外出租車(chē)營(yíng)運(yùn)過(guò)程中的一些營(yíng)運(yùn)數(shù)據(jù),如:單次出租的營(yíng)運(yùn)額和營(yíng)運(yùn)里程、一段時(shí)間內(nèi)的營(yíng)運(yùn)總額和總路程等,也存儲(chǔ)在單片機(jī)中,以便出租車(chē)公司及司機(jī)查詢(xún),使出租車(chē)司機(jī)與出租公司更便于管理營(yíng)運(yùn)數(shù)據(jù)。
2、模擬出租車(chē)車(chē)速裝置與里程檢測(cè)單元
本單元控制部分采用一片STC系列單片機(jī)STC12C5A08AD控制,通過(guò)改變單片機(jī)送給步進(jìn)電機(jī)驅(qū)動(dòng)模塊的脈沖信號(hào)頻率,控制步進(jìn)電機(jī)的轉(zhuǎn)速。步進(jìn)電機(jī)帶動(dòng)轉(zhuǎn)盤(pán)轉(zhuǎn)動(dòng),用光電傳感器同步檢測(cè)轉(zhuǎn)盤(pán)的轉(zhuǎn)速信號(hào),送主控單元單片機(jī)處理,轉(zhuǎn)換成實(shí)時(shí)車(chē)速顯示。本單元設(shè)有三個(gè)按鍵,一個(gè)為轉(zhuǎn)速預(yù)置控制鍵,另外兩個(gè)是預(yù)設(shè)轉(zhuǎn)速加減鍵,預(yù)設(shè)轉(zhuǎn)速可以在本單元同步顯示。模擬出租車(chē)車(chē)速裝置與里程測(cè)量單元電路原理如圖3所示。
1.004.jpg
圖2 主控單元電路圖
3、鍵盤(pán)控制單元
  根據(jù)題目要求,需要設(shè)置的鍵盤(pán)較多,故本設(shè)計(jì)采用4×4矩陣式鍵盤(pán),鍵盤(pán)功能如圖4所示。按單程/往返按鍵一次,進(jìn)行單程計(jì)價(jià),連續(xù)按單程/往返按鍵兩次,進(jìn)行往返計(jì)價(jià);到達(dá)目的地后,按“暫停”鍵,計(jì)價(jià)器可暫停計(jì)價(jià);反復(fù)按“查詢(xún)”鍵,計(jì)價(jià)器能依次顯示總等待時(shí)間,里程數(shù)和金額數(shù);按“清除”鍵,能將記錄的數(shù)據(jù)(里程、等待時(shí)間與價(jià)格等)清0;按價(jià)格預(yù)置/時(shí)間調(diào)整鍵一次,進(jìn)入起步價(jià)、起步價(jià)里程和每公里價(jià)格的預(yù)置狀態(tài),輸入4位密碼后,開(kāi)始預(yù)置起步價(jià),預(yù)置完后按價(jià)格預(yù)置/時(shí)間調(diào)整鍵確認(rèn),再預(yù)置起步價(jià)里程每公里價(jià)格,每預(yù)置完一項(xiàng),按價(jià)格預(yù)置/時(shí)間調(diào)整鍵一次,進(jìn)行確認(rèn);連續(xù)按價(jià)格預(yù)置/時(shí)間調(diào)整鍵兩次,進(jìn)入時(shí)間調(diào)整程序,通過(guò)數(shù)字鍵輸入時(shí)間即可。按下“按鍵模擬“鍵,進(jìn)入按鍵模擬狀態(tài),每按一次,行車(chē)?yán)锍碳?.1公里。
1.005.jpg
圖3 模擬出租車(chē)車(chē)速裝置與里程測(cè)量單元
1.006.jpg
圖4  4×4矩陣式鍵盤(pán)
4、數(shù)碼顯示單元
本設(shè)計(jì)采用16位的高亮度LED數(shù)碼管分別顯示行車(chē)?yán)锍虜?shù)(4 位),金額數(shù)(4 位),實(shí)時(shí)車(chē)速(4 位),另外4位輪流顯示車(chē)內(nèi)實(shí)時(shí)溫度(紅)、實(shí)時(shí)時(shí)鐘(黃)和累計(jì)等待時(shí)間(綠),顯示內(nèi)容分別用紅黃綠指示燈示意。當(dāng)為空車(chē)時(shí),為了節(jié)電,只顯示實(shí)時(shí)時(shí)間和車(chē)內(nèi)實(shí)時(shí)溫度 ,為供司機(jī)查看時(shí)間提供方便;當(dāng)司機(jī)要查詢(xún)以往的營(yíng)運(yùn)數(shù)據(jù)時(shí),按查詢(xún)鍵時(shí),計(jì)價(jià)器依次顯示總等待時(shí)間、里程數(shù)和金額數(shù);有乘客時(shí)顯示營(yíng)運(yùn)的實(shí)時(shí)車(chē)速、程數(shù)、金額數(shù),輪流顯示車(chē)內(nèi)實(shí)時(shí)溫度(紅)、實(shí)時(shí)時(shí)鐘(黃)和累計(jì)等待時(shí)間(綠)。顯示驅(qū)動(dòng)器采用16片串入并出8位移位寄存器74HC595級(jí)聯(lián)。顯示電路如圖5所示。
1.007.jpg
圖5  數(shù)碼顯示單元
5、實(shí)時(shí)時(shí)間與等待時(shí)間單元
時(shí)間計(jì)時(shí)采用美國(guó)DALLAS公司推出的一種高性能、低功耗的實(shí)時(shí)時(shí)鐘芯片DS1302計(jì)價(jià)器在出租車(chē)空車(chē)行駛時(shí)顯示實(shí)時(shí)時(shí)鐘;有乘客時(shí),輪流顯示實(shí)時(shí)時(shí)間和累計(jì)等待時(shí)間。
累計(jì)等待時(shí)間的確定方法是:當(dāng)單片機(jī)檢測(cè)車(chē)速低于5公里/小時(shí)時(shí),啟動(dòng)內(nèi)部定時(shí)器開(kāi)始計(jì)時(shí),車(chē)速高于5公里/小時(shí)時(shí),停止計(jì)時(shí),單片機(jī)將各次等待時(shí)間累加,作為總等待時(shí)間。等待時(shí)間顯示與實(shí)時(shí)時(shí)間顯示輪流進(jìn)行。
1.008.jpg 利用DS1302的實(shí)時(shí)時(shí)鐘作為白天/晚上單價(jià)自動(dòng)轉(zhuǎn)換的一個(gè)基準(zhǔn) ,通過(guò) DS1302 獲取時(shí)間信息分辨白天/晚上 ,然后調(diào)用內(nèi)部程序存儲(chǔ)器信息,獲取白天/晚上的單價(jià)及起始價(jià) ,便開(kāi)始計(jì)價(jià)并顯示時(shí)間、里程和金額等信息;當(dāng)實(shí)時(shí)時(shí)間在21:00至次日5:00時(shí),執(zhí)行晚上收費(fèi)標(biāo)準(zhǔn)。DS1302STC12C5A08AD的連接圖如圖6所示。
6、語(yǔ)音播報(bào)與超速提醒單元
為使計(jì)價(jià)器更加微型化、智能化、人性化,我們?cè)O(shè)計(jì)了語(yǔ)音播報(bào)與超速提醒功能。語(yǔ)音芯片采用集成度較高ISD2560芯片,其最大特點(diǎn)是采用E2PROM進(jìn)行模擬信息直接存取而不必經(jīng)過(guò)A/D和D/ A轉(zhuǎn)換。它內(nèi)部帶有話(huà)筒放大器、自動(dòng)增益控制時(shí)鐘、揚(yáng)聲器驅(qū)動(dòng)電路等,采用+ 5V電源供電。語(yǔ)音模塊與單片機(jī)的接口如圖7所示。設(shè)計(jì)過(guò)程中 ,先將固定語(yǔ)音部分(上、下車(chē)、超速提醒用語(yǔ))信息存儲(chǔ)到ISD2560內(nèi)部的不同起點(diǎn)地址中。營(yíng)運(yùn)過(guò)程中根據(jù)上、下車(chē)與超速的不同營(yíng)運(yùn)狀態(tài)來(lái)實(shí)現(xiàn)不同語(yǔ)音功能播放。在語(yǔ)音芯片工作時(shí),系統(tǒng)首先主程序調(diào)用放音處理程序,根據(jù)發(fā)音地址尋找ISD2560中的發(fā)音單元 ,然后將信號(hào)送到揚(yáng)聲器發(fā)出聲音。
當(dāng)空車(chē)燈掰下乘客上車(chē)時(shí):ISD2560語(yǔ)音播報(bào)電路進(jìn)行語(yǔ)音播報(bào)1(歡迎乘客乘坐本出租車(chē)…);當(dāng)空車(chē)燈打上,乘客下車(chē)時(shí):進(jìn)行播報(bào)2(謝謝再次乘坐本出租車(chē),請(qǐng)交金額…);當(dāng)單片機(jī)檢測(cè)到超速信息時(shí),進(jìn)行播報(bào)3(車(chē)輛超速、請(qǐng)減速
1.009.jpg
圖7 語(yǔ)音播報(bào)與超速提醒單元電路
7、票據(jù)打印單元
本系統(tǒng)設(shè)有票據(jù)打印功能,當(dāng)出租車(chē)到達(dá)指定地點(diǎn),司機(jī)翻起空車(chē)牌,便產(chǎn)生一個(gè)信號(hào)通知單片機(jī),單片機(jī)啟動(dòng)打印服務(wù),將行車(chē)的中途等待時(shí)間、營(yíng)運(yùn)里程、單價(jià)、金額、日期及上下車(chē)時(shí)間等數(shù)據(jù)打印成出租車(chē)專(zhuān)用發(fā)票。微型打印機(jī)接口電路如圖7所示。該電路采用接口插板方式與單片機(jī)相連,這一特點(diǎn)使得計(jì)價(jià)器的票據(jù)打印在功能上與主系統(tǒng)一體化,而在檢查、維修時(shí)又可單獨(dú)進(jìn)行。本設(shè)計(jì)中所用微打是RD系列微型打印機(jī),微型打印機(jī)與單片機(jī)通過(guò)串行接口相連,當(dāng)所需要打印的數(shù)據(jù)出現(xiàn)在打印機(jī)串行輸入口時(shí),STB只要從高電平轉(zhuǎn)到低電平,再?gòu)牡碗娖睫D(zhuǎn)到高電平,就可把數(shù)據(jù)送入打印機(jī)。這時(shí)打印機(jī)將 BUSY 線(xiàn)置為忙(高電平),禁止新數(shù)據(jù)輸入;當(dāng)打印機(jī)取走數(shù)據(jù)并處理完畢后,BUSY線(xiàn)被置為閑(低電平),同時(shí)送出回答脈沖ACK通知系統(tǒng),可以再次輸入數(shù)據(jù)。
8、車(chē)內(nèi)實(shí)時(shí)溫度顯示單元
本設(shè)計(jì)增加了車(chē)內(nèi)實(shí)時(shí)溫度檢測(cè)功能,我們采用溫度芯片DS18B20。DS18B20是DALLAS公司生產(chǎn)的一線(xiàn)式數(shù)字溫度傳感器,具有3引腳TO-92小體積封裝形式。測(cè)溫分辨率可達(dá)0.0625℃,被測(cè)溫度用符號(hào)擴(kuò)展的16位數(shù)字量方式串行輸出。CPU只需一根端口線(xiàn)就能與諸多DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線(xiàn)和邏輯電路。
系統(tǒng)軟件設(shè)計(jì)
在主程序模塊中,需要完成對(duì)各芯片的初始化,各中斷的初始化(外部中斷 0、外部中斷1、T0的初始化),另外,在主程序模塊中還需要設(shè)置啟動(dòng)/清除標(biāo)志寄存器、里程寄存器和金額寄存器,并對(duì)它們進(jìn)行初始化。然后,主程序?qū)⒏鶕?jù)各標(biāo)志寄存器的內(nèi)容,分別完成車(chē)速檢測(cè)、顯示、累計(jì)等待時(shí)間、計(jì)程和計(jì)價(jià)等不同的操作。主程序流程圖如圖8所示。
單片機(jī)采集并判斷空車(chē)燈信號(hào)及路程檢測(cè)傳感器信號(hào),當(dāng)出租車(chē)啟動(dòng)時(shí) ,單片機(jī)檢測(cè)到光電傳感器的脈沖信號(hào)并進(jìn)行里程計(jì)算。當(dāng)無(wú)乘客時(shí),單片機(jī)調(diào)用實(shí)時(shí)時(shí)間芯片DS1302 程序和串口顯示驅(qū)動(dòng)程序,用4只LED進(jìn)行時(shí)鐘顯示;當(dāng)空車(chē)燈掰下乘客上車(chē)時(shí): ISD2560 語(yǔ)音播報(bào)電路進(jìn)行語(yǔ)音播報(bào)1 (歡迎乘客乘坐本出租車(chē) …),通過(guò)DS1302 獲取時(shí)間信息分辨白天/晚上,然后調(diào)用內(nèi)部程序存儲(chǔ)器信息,獲取白天/晚上的單價(jià)及起始價(jià),便開(kāi)始計(jì)價(jià)并顯示時(shí)間、里程和金額等信息;當(dāng)空車(chē)燈打上,乘客下車(chē)時(shí):進(jìn)行播報(bào) 2 (謝謝再次乘坐本出租車(chē) ,請(qǐng)交金額 …) ,并打印好票據(jù) ,單片機(jī)將營(yíng)運(yùn)數(shù)據(jù)信息存儲(chǔ)到內(nèi)部存儲(chǔ)器中 ;等出租車(chē)再次啟動(dòng)后,本次金額與里程等信息清零復(fù)位 ,就此完成一次計(jì)價(jià)。當(dāng)單片機(jī)檢測(cè)到超速信息時(shí),進(jìn)行播報(bào)3(車(chē)輛超速,請(qǐng)減速


測(cè)試方案與測(cè)試結(jié)果
表1  系統(tǒng)性能測(cè)試項(xiàng)目表            
題目要求
測(cè)試項(xiàng)目與方法
測(cè)試結(jié)果
結(jié)果
描述




1、按單程/往返鍵,利用按鍵模擬設(shè)置里程,觀(guān)察數(shù)碼管顯示信息;
測(cè)試數(shù)據(jù)見(jiàn)表2
本設(shè)計(jì)很好的完成了題目基本要求的各項(xiàng)內(nèi)容
2、按單程/往返鍵,然后用按鍵模擬,連續(xù)調(diào)整里程,觀(guān)察數(shù)碼管顯示信息;
按單程鍵后,用按鍵模擬,行程按0.1公里步距遞進(jìn),動(dòng)態(tài)顯示公里與金額數(shù)
3、按暫停鍵,觀(guān)察計(jì)價(jià)器的信息;
在正常計(jì)價(jià)狀態(tài)下按下暫停鍵,停止計(jì)價(jià)
4、按清除鍵,觀(guān)察數(shù)碼管的顯示狀態(tài);
除實(shí)時(shí)時(shí)間顯示正常外,其他各數(shù)碼管均顯示零
5、反復(fù)按查詢(xún)鍵,觀(guān)察顯示內(nèi)容。

按查詢(xún)鍵,顯示里程數(shù),再按查詢(xún)鍵,顯示金額數(shù)
發(fā)



利用鍵盤(pán)預(yù)置轉(zhuǎn)速,利用數(shù)字鐘計(jì)時(shí),測(cè)試5分鐘,觀(guān)察車(chē)速、里程、金額各項(xiàng)顯示
測(cè)試數(shù)據(jù)見(jiàn)表3所示
本系統(tǒng)能很好的完成題目發(fā)揮部分的各項(xiàng)要求
等待時(shí)間計(jì)價(jià)功能:通過(guò)不斷改變轉(zhuǎn)速設(shè)置值,各測(cè)試5分鐘,觀(guān)察等待時(shí)間、里程和價(jià)格顯示情況
測(cè)試數(shù)據(jù)見(jiàn)表4所示
起步價(jià)、起步價(jià)里程與每公里價(jià)格預(yù)置功能測(cè)試,按價(jià)格預(yù)置鍵一次,輸入4位密碼后,預(yù)置起步價(jià),起步價(jià)里程每公里價(jià)格,設(shè)置轉(zhuǎn)盤(pán)轉(zhuǎn)速,測(cè)試5分鐘,觀(guān)察顯示信息
測(cè)試數(shù)據(jù)見(jiàn)表5所示


創(chuàng)

語(yǔ)音播報(bào)功能測(cè)試:接通和斷開(kāi)模擬空車(chē)燈開(kāi)關(guān),檢測(cè)播報(bào)情況;設(shè)置車(chē)速100公里/小時(shí),檢測(cè)超速提示情況
按設(shè)置內(nèi)容正常播報(bào)

打印功能測(cè)試:按暫停鍵后,啟動(dòng)打印機(jī)打印里程與金額,觀(guān)察打印結(jié)果
打印結(jié)果與顯示相符
白天/晚上計(jì)價(jià)標(biāo)準(zhǔn)測(cè)試:調(diào)整DS1302時(shí)間2100至次日500時(shí)中任意時(shí)間,設(shè)置車(chē)速,測(cè)試5分鐘,觀(guān)察里程和金額等信息
測(cè)試數(shù)據(jù)見(jiàn)表6所示
溫度顯示
能輪流顯示實(shí)時(shí)溫度

表2  按鍵模擬設(shè)置里程,單程/往返計(jì)價(jià)測(cè)試結(jié)果
金額(元)            里程(公里
單程金額
往返金額
誤差
理論值
顯示值
理論值
顯示值
10.0
22.0
22.0
18.5
18.5
0
15.0
32.0
32.0
26.0
26.0
0
25.0
52.0
52.0
41.0
41.0
0
40.0
82.0
82.0
63.5
63.5
0
60.0
122.0
122.0
93.5
93.5
0
表3  預(yù)置轉(zhuǎn)速后計(jì)價(jià)測(cè)試結(jié)果

預(yù)設(shè)轉(zhuǎn)速R/min
實(shí)時(shí)車(chē)速顯示
(公里/時(shí))
里程(公里)
價(jià)格 /
誤差
單程
往返
觀(guān)測(cè)5分鐘
10
10.0
50.0
102.0
78.5
0
15
15.0
75.0
152.0
116.0
0
25
25.0
125.0
252.0
191.0
0
40
40.0
200.0
402.0
303.5
0
55
55.0
275.0
552.0
416.0
0
表4  累計(jì)等待時(shí)間計(jì)價(jià)功能測(cè)試結(jié)果

轉(zhuǎn)速/min
等待時(shí)間
里程
(公里)
金額(元)
誤差
單程
往返
0
各觀(guān)測(cè)5分鐘
3
5
15.0
34.0
27.5
0
5
5
25.0
54.0
42.5
0
10
0
50.0
102.0
78.5
0
20
0
100.0
202.0
153.5
0
40
0
200.0
402.0
303.5
0
總計(jì)

10
390.0
794.0
605.5
0

表5  起步價(jià)、起步價(jià)里程與每公里價(jià)格預(yù)置功能測(cè)試結(jié)果
起步價(jià)(元)
起步里程(公里)
每里價(jià)格(元)
測(cè)試
轉(zhuǎn)速R/min
里程
(公里)
價(jià)格/
單程
往返
單程
往返
6.0
4.0
2.0
1.5
觀(guān)測(cè)
5分鐘
10
50.0
98.0
75.0
8.0
3.0
2.0
1.0
25
125.0
252.0
130.0
5.0
2.0
3.0
2.0
30
150.0
449.0
301.0
10.0
5.0
2.0
1.0
50
250.0
500.0
255.0
時(shí)間段/時(shí)
起步價(jià)
(元)
起步里程(公里)
每公里價(jià)格/
公里
(公里)
價(jià)格/
單程
往返
單程
往返
8---10
8.0
3.0
2.0
1.5
10.0
22.0
18.5
12---16
8.0
3.0
2.0
1.5
20.0
42.0
33.5
22---24
8.0
3.0
2.5
2.0
10.0
25.5
22.0
3---5
8.0
3.0
2.5
2.0
20.0
50.5
42.0
6  白天/晚上計(jì)價(jià)標(biāo)準(zhǔn)測(cè)試結(jié)果



總  結(jié)

在本次設(shè)計(jì)的過(guò)程中,我遇到了各種困難和許多沒(méi)有預(yù)想到情況,但通過(guò)自己的努力老師的協(xié)作以及同學(xué)的幫助,我終于克服了困難,順利完成了本次的設(shè)計(jì)任務(wù),達(dá)到了預(yù)期的目的。腳踏實(shí)地,認(rèn)真嚴(yán)謹(jǐn),實(shí)事求是的學(xué)習(xí)態(tài)度,不怕困難、堅(jiān)持不懈、吃苦耐勞的精神是我在這次設(shè)計(jì)中最大的收益。我想這是一次意志的磨練,是對(duì)我實(shí)際能力的一次提升,也會(huì)對(duì)我未來(lái)的學(xué)習(xí)和工作有很大的幫助在這次畢業(yè)設(shè)計(jì)中也使我們的同學(xué)關(guān)系更進(jìn)一步了,同學(xué)之間互相幫助,有什么不懂的大家在一起商量,聽(tīng)聽(tīng)不同的看法對(duì)我們更好的理解知識(shí),所以在這里非常感謝幫助我的同學(xué)。在此更要感謝我的導(dǎo)師和專(zhuān)業(yè)老師,是你們的細(xì)心指導(dǎo)和關(guān)懷,使我能夠順利的完成畢業(yè)論文。在我的學(xué)業(yè)和論文的研究工作中無(wú)不傾注著老師們辛勤的汗水和心血。老師的嚴(yán)謹(jǐn)治學(xué)態(tài)度、淵博的知識(shí)、無(wú)私的奉獻(xiàn)精神使我深受啟迪。從尊敬的導(dǎo)師身上,我不僅學(xué)到了扎實(shí)、寬廣的專(zhuān)業(yè)知識(shí),也學(xué)到了做人的道理。在此我要向我的導(dǎo)師致以最衷心的感謝和深深的敬意。
所設(shè)計(jì)的多功能出租車(chē)計(jì)價(jià)器不僅功能齊全,而且經(jīng)過(guò)測(cè)試,各項(xiàng)測(cè)試指標(biāo)均達(dá)到了要求。通過(guò)這次設(shè)計(jì)活動(dòng),我在硬件設(shè)計(jì)、軟件編程方面的能力得到了極大的提高。為以后走向工作崗位積累了不可多得的經(jīng)驗(yàn)。這種體驗(yàn)為我們走好今后的人生路增添了極大的信心。



參考文獻(xiàn)

[1 ] 何立民.單片機(jī)應(yīng)用技術(shù)選編[M] .北京:北京航空航天大學(xué)出版社 ,1999.
[2 ] 求實(shí)科技.單片機(jī)典型模塊設(shè)計(jì)實(shí)例導(dǎo)航[M] . 北京:人民郵電出版社 ,2004.
[3 ] 陳小忠.單片機(jī)接口技術(shù)實(shí)用子程序[M] . 北京:人民郵電出版社 ,2005.
[4 ] 趙晶主.電路設(shè)計(jì)與制版 Protel99 高級(jí)應(yīng)用[M] . 北京:人民郵電出版社 ,2000.
[5 ] 全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽組委會(huì).全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽獲獎(jiǎng)作品精選[M] .北京:北京理工大學(xué)出版社 ,2000.
[6 ] 楊恢先 ,黃輝先.單片機(jī)原理及應(yīng)用[M] .長(zhǎng)沙:國(guó)防科技大學(xué)出版社 ,2003.




附錄一
主程序流程
1.010.jpg
圖8  系統(tǒng)的主程序流程框圖


附錄二
計(jì)價(jià)子程序流程:
1.011.jpg
圖9 計(jì)價(jià)子程序流程圖


附錄三
顯示子程序:
  1. //靜態(tài)顯示

  2. #include

  3. #include



  4. //定義定形碼表,共陽(yáng)極

  5. unsigned char code dispTab[]={

  6. //0   1    2    3    4     5    6    7    8   9    0X03,0X9F,0X25,0X0D,0X99,0X49,0X41,0X1F,0X01,0X09,0XFD,0xff              };

  7. #define uint unsigned int

  8. #define uchar unsigned char

  9. sbit ST_CP              =P2^1;                            //74HC595(12)-ST_CP 上升沿--移位寄存器的數(shù)據(jù)進(jìn)入數(shù)據(jù)存儲(chǔ)寄存器 輸出鎖存器的時(shí)鐘信號(hào)端口

  10. sbit MR               =P2^0;                             //74HC595(10)-MR 為0將移位寄存器的數(shù)據(jù)清0

  11. sbit oe     =P2^2;

  12.   }



  13. void sendData(unsigned char sendDat)              //傳送一個(gè)字節(jié)的數(shù)據(jù)數(shù)據(jù)

  14. {              unsigned char i;

  15.               for(i=0;i<8;i++)

  16.               {              if((sendDat&0x01)==0) SDAT=0;

  17.                             else  SDAT=1;

  18.                             _nop_();                            SHCP=0;                            _nop_();

  19.                      SHCP=1

  20.                             sendDat=sendDat>>1;

  21.               }

  22. }

  23. //-----------------------------------------

  24. //靜態(tài)顯示函數(shù),模擬串口+74LS595

  25. //參數(shù):*dispBuf顯示緩沖區(qū)

  26. //      n顯示位數(shù)

  27. void disp(unsigned char data *dispBuf,unsigned char n)

  28. {              unsigned char c, i;

  29.                             for(i=0;i<n;i++)

  30.               {              c=dispBuf[i];                                          //取出待顯示字符

  31.                             sendData(dispTab[c]);              //送出字形碼數(shù)據(jù)

  32.                             delayn(2000);

  33.               }                  STCP=0;

  34.                             STCP=1;                                                                                    //輸出                                                                                   

  35. }

  36. void xs(void)

  37. {



  38.     disp(dispBuf,sizeof(dispBuf));

  39.               oldTime=a*100;

  40.                                           }

  41.             dispBuf[3] = oldTime/1000;

  42.             dispBuf[2] = oldTime%1000/100;

  43.             dispBuf[1] = oldTime%100/10;

  44.             dispBuf[0] = oldTime0%10;

  45.             disp(dispBuf,sizeof(dispBuf));

  46.                       }

  47.     }








  48. 附錄四
  49.    時(shí)鐘子程序:
  50. include

  51. /*****定義DS1302接口*****/

  52. sbit clock_clk = P3 ^ 6;              //ds1302_clk(時(shí)鐘線(xiàn))

  53. sbit clock_dat = P3 ^ 5;              //ds1302_dat(數(shù)據(jù)線(xiàn))

  54. sbit clock_Rst = P3 ^ 4;              //ds1302_Rst(復(fù)位線(xiàn))



  55. /*****定義累加器A中的各位*****/

  56. sbit a0   = ACC ^ 0;

  57. sbit a1   = ACC ^ 1;

  58. sbit a2   = ACC ^ 2;

  59. sbit a3   = ACC ^ 3;

  60. sbit a4   = ACC ^ 4;

  61. sbit a5   = ACC ^ 5;

  62. sbit a6   = ACC ^ 6;

  63. sbit a7   = ACC ^ 7;



  64. /*****DS1302驅(qū)動(dòng)程序(底層協(xié)議)*****/

  65. void clock_out(unsigned char dd)

  66. {

  67.               ACC=dd;

  68.               clock_dat=a0; clock_clk=1; clock_clk=0;

  69.               clock_dat=a1; clock_clk=1; clock_clk=0;

  70.               clock_dat=a2; clock_clk=1; clock_clk=0;

  71.               clock_dat=a3; clock_clk=1; clock_clk=0;

  72.               clock_dat=a4; clock_clk=1; clock_clk=0;

  73.               clock_dat=a5; clock_clk=1; clock_clk=0;

  74.               clock_dat=a6; clock_clk=1; clock_clk=0;

  75.               clock_dat=a7; clock_clk=1; clock_clk=0;

  76. }



  77. /*****DS1302寫(xiě)數(shù)據(jù)(底層協(xié)議)*****/

  78. void write_clock(unsigned char ord, unsigned char dd)

  79. {

  80.               clock_clk=0;

  81.               clock_Rst=0;

  82.               clock_Rst=1;

  83.               clock_out(ord);

  84.               clock_out(dd);

  85.               clock_Rst=0;

  86.               clock_clk=1;

  87. }



  88. /*****DS1302寫(xiě)入字節(jié)(底層協(xié)議)*****/

  89. unsigned char clock_in(void)

  90. {

  91.               clock_dat=1;

  92.               a0=clock_dat;

  93.               clock_clk=1; clock_clk=0; a1=clock_dat;

  94.               clock_clk=1; clock_clk=0; a2=clock_dat;

  95.               clock_clk=1; clock_clk=0; a3=clock_dat;

  96.               clock_clk=1; clock_clk=0; a4=clock_dat;

  97.               clock_clk=1; clock_clk=0; a5=clock_dat;

  98.               clock_clk=1; clock_clk=0; a6=clock_dat;

  99.               clock_clk=1; clock_clk=0; a7=clock_dat;

  100.               return(ACC);

  101. }



  102. /*****DS1302讀數(shù)據(jù)(底層協(xié)議)*****/

  103. unsigned char read_clock(unsigned char ord)

  104. {

  105.               unsigned char dd=0;

  106.               clock_clk=0;

  107.               clock_Rst=0;

  108.               clock_Rst=1;

  109.               clock_out(ord);

  110.               dd=clock_in();

  111.               clock_Rst=0;

  112.               clock_clk=1;

  113.               return(dd);

  114. }

  115. /*****END*****/
復(fù)制代碼

附錄五

     溫度傳感器子程序:

  1. #define  DQ  P3_7                                            //定義DS18B20總線(xiàn)I/O

  2. /*****延時(shí)子程序*****/

  3. void Delay_DS18B20(int num)

  4. {

  5.               while(num--) ;

  6. }



  7. /*****初始化DS18B20*****/

  8. void Init_DS18B20(void)

  9. {

  10.               unsigned char x=0;

  11.               DQ = 1;                                                //DQ復(fù)位

  12.               Delay_DS18B20(8);                 //稍做延時(shí)

  13.               DQ = 0;                                                //單片機(jī)將DQ拉低

  14.               Delay_DS18B20(80);                //精確延時(shí),大于480us

  15.               DQ = 1;                                                //拉高總線(xiàn)

  16.               Delay_DS18B20(14);

  17.               x = DQ;                                                  //稍做延時(shí)后,如果x=0則初始化成功,x=1則初始化失敗

  18.               Delay_DS18B20(20);

  19. }



  20. /*****讀一個(gè)字節(jié)*****/

  21. unsigned char ReadOneChar(void)

  22. {

  23.               unsigned char i=0;

  24.               unsigned char dat = 0;

  25.               for (i=8;i>0;i--)

  26.               {

  27.                               DQ = 0;                                            // 給脈沖信號(hào)

  28.                               dat>>=1;

  29.                               DQ = 1;                                            // 給脈沖信號(hào)

  30.                               if(DQ)

  31.                               dat|=0x80;

  32.                               Delay_DS18B20(4);

  33.               }

  34.               return(dat);

  35. }



  36. /*****寫(xiě)一個(gè)字節(jié)*****/

  37. void WriteOneChar(unsigned char dat)

  38. {

  39.               unsigned char i=0;

  40.               for (i=8; i>0; i--)

  41.               {

  42.                               DQ = 0;

  43.                               DQ = dat&0x01;

  44.                               Delay_DS18B20(5);

  45.                               DQ = 1;

  46.                               dat>>=1;

  47.               }

  48. }

  49. /*****讀取溫度*****/

  50. unsigned int ReadTemperature(void)

  51. {

  52.               unsigned char a=0;

  53.               unsigned char b=0;

  54.               unsigned int t=0;

  55.               float tt=0;

  56.               Init_DS18B20();

  57.               WriteOneChar(0xCC);               //跳過(guò)讀序號(hào)列號(hào)的操作

  58.               WriteOneChar(0x44);               //啟動(dòng)溫度轉(zhuǎn)換

  59.               Init_DS18B20();

  60.               WriteOneChar(0xCC);               //跳過(guò)讀序號(hào)列號(hào)的操作

  61.               WriteOneChar(0xBE);               //讀取溫度寄存器

  62.               a=ReadOneChar();                               //讀低8位

  63.               b=ReadOneChar();                              //讀高8位

  64.               t=b;

  65.               t<<=8;

  66.               t=t|a;

  67.               tt=t*0.0625;

  68.               t= tt*10+0.5;                               //放大10倍輸出并四舍五入

  69.               return(t);

  70. }
復(fù)制代碼


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:204543 發(fā)表于 2017-5-24 23:16 | 顯示全部樓層
這個(gè)有pcb原理圖  和porteus 仿真嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表