版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 本 科 畢 業(yè) 設(shè) 計(jì)</p><p><b> 出租車(chē)計(jì)價(jià)器設(shè)計(jì)</b></p><p> 所在學(xué)院 </p><p> 專(zhuān)業(yè)班級(jí) 電氣工程與自動(dòng)化 </p><p> 學(xué)生姓名 學(xué)號(hào)
2、 </p><p> 指導(dǎo)教師 職稱(chēng) </p><p> 完成日期 年 月 </p><p><b> 摘 要</b></p><p> 現(xiàn)在各大中城市出租車(chē)行業(yè)都已普及電子計(jì)價(jià)器,所以計(jì)價(jià)器技術(shù)的發(fā)展已成
3、定局。而部分小城市出租車(chē)行業(yè)體系不完善,導(dǎo)致計(jì)價(jià)器的使用尚未普及,但隨著城市建設(shè)日益加快,象征著城市面貌的出租車(chē)行業(yè)也將加速發(fā)展,計(jì)價(jià)器的普及也是毫無(wú)疑問(wèn)的,所以未來(lái)出租車(chē)計(jì)價(jià)器的市場(chǎng)還是十分有潛力的。 出租車(chē)計(jì)價(jià)器是根據(jù)客戶(hù)用車(chē)情況來(lái)自動(dòng)顯示車(chē)費(fèi)的數(shù)字儀表,主要數(shù)據(jù)是根據(jù)出租車(chē)起步價(jià)、行車(chē)?yán)锍糖蟮每蛻?hù)用車(chē)的總費(fèi)用金額,并通過(guò)數(shù)碼管顯示相應(yīng)的里程及金額。</p><p> 在本次設(shè)計(jì)中主要涉及硬件電路的設(shè)計(jì)及軟
4、件的編程。電路以AT89S51單片機(jī)為中心,附加A44E霍爾傳感器測(cè)距,來(lái)實(shí)現(xiàn)對(duì)出租車(chē)的計(jì)價(jià),采用AT24C02 芯片來(lái)實(shí)現(xiàn)單片機(jī)的斷電保存,輸出采用8段數(shù)碼顯示管。設(shè)計(jì)時(shí)用Proteus軟件繪制仿真電路圖及KeilC軟件的編程相互配合來(lái)模擬出租車(chē)計(jì)價(jià)器工作,進(jìn)行里程、金額顯示,可預(yù)設(shè)起步價(jià)和起步公里數(shù),總金額按里程數(shù)進(jìn)行計(jì)算;有復(fù)位功能和啟動(dòng)功能,啟動(dòng)后,開(kāi)始計(jì)價(jià),停止時(shí),顯示最終的金額。</p><p>
5、設(shè)計(jì)時(shí)我們運(yùn)用到了單片機(jī),這樣的設(shè)計(jì)可以使我們用較少的硬件和適當(dāng)?shù)能浖嗷ヅ浜蟻?lái)實(shí)現(xiàn)設(shè)計(jì)的要求,且靈活性強(qiáng),功能強(qiáng)大,應(yīng)用方便,可以通過(guò)軟件編程來(lái)完成更多的附加功能,前景廣闊。</p><p> 關(guān)鍵字:出租車(chē)計(jì)價(jià)器;AT89S51;霍爾傳感器;斷電保護(hù);數(shù)碼顯示管</p><p><b> Abstract</b></p><p> N
6、ow the automatic mileage fare meter is popularized in each big or media-sized cities taxi profession, therefore the development of mileage fare meter technology has been a foregone conclusion. While in part small cities
7、it’s underused, but speeding up day by day along with the urban construction, which will symbolize the urban appearance taxi profession that will accelerate to develop too .And mileage fare meter's popularization wil
8、l also be without a doubt, therefore the future automobile mile</p><p> In this design, mainly relates to hardware design and software programming. This electric circuit takes AT89S51 monolithic integrated
9、circuit as a center and that attaches A44E the Hall sensor range finder, which realizes the rental car valuation. The use of AT24C02 is to preserve the unit price when the present system power is failure. The output uses
10、 8 sections of digital display tubes, demonstrating that goes the total course and the aggregate amount. The design of simulated rental car mileag</p><p> We use the monolithic integrated circuit to carry o
11、n the design and use the little hardware and the suitable software coordination to realize the design mutually and flexibly, furthermore we can complete the more additional functions through the software programs and the
12、 application prospect is promising.</p><p> Keywords: taximeter; AT89S51; hall sensor; power preservation; display tube</p><p><b> 目錄</b></p><p><b> 第1章 緒論1&l
13、t;/b></p><p><b> 1.1課題背景1</b></p><p> 1.2計(jì)價(jià)器國(guó)內(nèi)外研究動(dòng)態(tài)1</p><p> 1.3設(shè)計(jì)目的與內(nèi)容1</p><p> 1.3.1 設(shè)計(jì)目的1</p><p> 1.3.2 主要設(shè)計(jì)內(nèi)容2</p><
14、p> 第2章 系統(tǒng)硬件設(shè)計(jì)3</p><p> 2.1 AT89S51單片機(jī)簡(jiǎn)介3</p><p> 2.2 方案論證和比較4</p><p> 2.2.1 主要控制電路的設(shè)計(jì)4</p><p> 2.2.2 顯示的設(shè)計(jì)5</p><p> 2.2.3 掉電保護(hù)的設(shè)計(jì)5</p>
15、<p> 2.3 硬件電路設(shè)計(jì)5</p><p> 2.4 硬件組成7</p><p> 2.4.1驅(qū)動(dòng)電路7</p><p> 2.4.2顯示電路8</p><p> 2.4.3復(fù)位電路9</p><p> 2.4.4掉電保護(hù)電路9</p><p> 2
16、.4.5 時(shí)鐘電路10</p><p> 2.4.6 按鍵電路10</p><p> 2.5里程計(jì)算的原理11</p><p> 第3章 系統(tǒng)軟件設(shè)計(jì)14</p><p> 3.1軟件總體設(shè)計(jì)14</p><p> 3.2程序介紹15</p><p> 3.2.1主程序
17、15</p><p> 3.2.2 計(jì)費(fèi)子程序17</p><p> 3.2.3 顯示子程序18</p><p> 3.3基于PROTEUS的計(jì)價(jià)器仿真18</p><p><b> 總 結(jié)21</b></p><p><b> 致 謝22</b><
18、/p><p><b> [參考文獻(xiàn)]23</b></p><p> 附錄1程序源代碼24</p><p> 附錄2電路仿真圖31</p><p><b> 第1章 緒論</b></p><p><b> 1.1課題背景 </b></p
19、><p> 隨著我國(guó)經(jīng)濟(jì)的迅速發(fā)展,人民生活水平的顯著提高,城市的交通日趨完善,出租車(chē)計(jì)價(jià)器的應(yīng)用也越來(lái)越廣泛。雖然私家車(chē)的擁有量在大幅度地提高,但是出租車(chē)還是在我國(guó)的交通運(yùn)輸中承擔(dān)著重要的角色,出租車(chē)計(jì)價(jià)器是出租車(chē)上必不可少的重要儀器,它是負(fù)責(zé)出租車(chē)營(yíng)運(yùn)收費(fèi)的專(zhuān)用智能化儀表。用戶(hù)不僅要求計(jì)價(jià)器性能穩(wěn)定、計(jì)價(jià)準(zhǔn)確,而且隨著功能越來(lái)越多對(duì)其他方面要求也越來(lái)越高。</p><p> 近年來(lái),我
20、國(guó)出租汽車(chē)行業(yè)迅猛發(fā)展,出租汽車(chē)已經(jīng)成為我國(guó)城市公共交通的重要組成部分和現(xiàn)代化城市必備的基礎(chǔ)設(shè)施,成為人們工作、生活中不可缺少的交通工具。出租汽車(chē)服務(wù)行業(yè)和出租汽車(chē)計(jì)價(jià)器緊密相關(guān),因?yàn)槌鲎馄?chē)必須安裝出租汽車(chē)計(jì)價(jià)器才能投入營(yíng)運(yùn)。出租汽車(chē)計(jì)價(jià)器是一種能根據(jù)乘客乘坐汽車(chē)行駛距離和等候時(shí)間的多少進(jìn)行計(jì)價(jià),并直接顯示車(chē)費(fèi)值的計(jì)量器具。計(jì)價(jià)器是出租汽車(chē)的經(jīng)營(yíng)者和乘坐出租汽車(chē)的消費(fèi)者之間用于公平貿(mào)易結(jié)算的工具,因而計(jì)價(jià)器計(jì)價(jià)準(zhǔn)確與否,直接關(guān)系到經(jīng)營(yíng)
21、者和消費(fèi)者的經(jīng)濟(jì)利益。依據(jù)國(guó)家有關(guān)法律、法規(guī),出租汽車(chē)計(jì)價(jià)器是列入國(guó)家首批強(qiáng)制檢定的工作計(jì)量器具之一,也是近年來(lái)國(guó)家質(zhì)量技術(shù)監(jiān)督部門(mén)強(qiáng)化管理的六類(lèi)重點(diǎn)計(jì)量器具之一。</p><p> 1.2計(jì)價(jià)器國(guó)內(nèi)外研究動(dòng)態(tài)</p><p> 出租車(chē)行業(yè)在我國(guó)是八十年代初興起的一項(xiàng)行業(yè),伴隨著我國(guó)國(guó)民經(jīng)濟(jì)的高速發(fā)展,出租車(chē)已成為城市公共交通的重要組成部分,多年來(lái)國(guó)內(nèi)普遍使用的計(jì)價(jià)器只具備單一的計(jì)量功
22、能,不能很好的滿足市場(chǎng)的需求。</p><p> 在我國(guó)第一家生產(chǎn)計(jì)價(jià)器的企業(yè)是重慶市起重機(jī)廠。發(fā)展到現(xiàn)在,國(guó)內(nèi)生產(chǎn)計(jì)價(jià)器的企業(yè)已經(jīng)有上百家,主要是集中在北京,上海,沈陽(yáng)和廣州等地。</p><p> 最早的計(jì)價(jià)器全部采用機(jī)械齒輪結(jié)構(gòu),只能完成簡(jiǎn)單的計(jì)程功能,可以說(shuō)早期的計(jì)價(jià)器就是一個(gè)里程表。隨著科學(xué)技術(shù)的發(fā)展,產(chǎn)生了第二代計(jì)價(jià)器。它采用了手搖計(jì)算機(jī)與機(jī)械結(jié)構(gòu)相結(jié)合的方式,實(shí)現(xiàn)了半機(jī)械
23、半電子化,此時(shí)它在計(jì)程的同時(shí)還可以完成計(jì)價(jià)的工作。</p><p> 大規(guī)模集成電路的發(fā)展又產(chǎn)生了第三代計(jì)價(jià)器,也就是全電子化的計(jì)價(jià)器,它的功能也在不斷完善。當(dāng)單片機(jī)出現(xiàn)并應(yīng)用于計(jì)價(jià)器后,現(xiàn)代出租車(chē)計(jì)價(jià)器的構(gòu)造也就基本出現(xiàn)了,它可以完成計(jì)程,計(jì)價(jià),顯示等基本工作。單片機(jī)以及外圍芯片的不斷發(fā)展也促進(jìn)了計(jì)價(jià)器的發(fā)展,現(xiàn)在出租車(chē)計(jì)價(jià)器在使用時(shí)具備的主要功能是根據(jù)行駛里程計(jì)價(jià),并且要求精度高,可靠性好。</p&g
24、t;<p> 1.3設(shè)計(jì)目的與內(nèi)容</p><p> 1.3.1 設(shè)計(jì)目的</p><p> 畢業(yè)設(shè)計(jì)是將理論與實(shí)踐相結(jié)合的學(xué)習(xí)環(huán)節(jié),通過(guò)運(yùn)用多種教材及其他可利用的資源,讓所學(xué)知識(shí)得到進(jìn)一步加深和擴(kuò)展。與此同時(shí)還著重培養(yǎng)工科學(xué)生的設(shè)計(jì)能力和解決實(shí)際問(wèn)題能力,在大學(xué)期間,我們學(xué)習(xí)許多強(qiáng)電、弱電方面的理論知識(shí),并且接觸相關(guān)方面的一些實(shí)驗(yàn),課程設(shè)計(jì)。本課題的畢業(yè)設(shè)計(jì)中,目的是
25、在學(xué)習(xí)51系列單片機(jī)的基礎(chǔ)上,根據(jù)設(shè)計(jì)任務(wù),設(shè)計(jì)出符合要求的電路,完成硬件電路的同時(shí)熟悉C語(yǔ)言的編程,編寫(xiě)符合要求的程序,讓其實(shí)現(xiàn)出租車(chē)計(jì)價(jià)器應(yīng)有的功能,并且通過(guò)Proteus軟件進(jìn)行仿真。</p><p> 1.3.2 主要設(shè)計(jì)內(nèi)容</p><p> 通過(guò)利用AT89S51單片機(jī),設(shè)計(jì)簡(jiǎn)單且實(shí)用的出租車(chē)計(jì)價(jià)器。在本次出租車(chē)計(jì)價(jià)器的總體設(shè)計(jì)中,主要的外圍功能電路有:驅(qū)動(dòng)電路,按鍵控制電
26、路,掉電保護(hù)電路,時(shí)鐘電路,數(shù)碼管顯示電路等。通過(guò)對(duì)以上各功能的設(shè)計(jì),出租車(chē)計(jì)價(jià)器應(yīng)能夠?qū)崿F(xiàn)以下功能:上電時(shí)顯示全為零,通過(guò)按下啟動(dòng)按鍵來(lái)開(kāi)始計(jì)價(jià),數(shù)碼管開(kāi)始顯示起步價(jià)和起步金額;按下模擬開(kāi)關(guān)按鍵來(lái)產(chǎn)生一個(gè)脈沖信號(hào),模擬行駛的里程;數(shù)碼管開(kāi)始顯示所走里程和所應(yīng)付的金額,并逐漸增加;按下停止按鍵,停止計(jì)價(jià),數(shù)碼管顯示所走總里程和用戶(hù)所需付總金額,按下清零按鍵,數(shù)碼管全顯示零,以備下次計(jì)價(jià)。其中在單價(jià),起步里程為了適應(yīng)市場(chǎng)需求要調(diào)整的時(shí)候,
27、可以對(duì)設(shè)計(jì)程序進(jìn)行修改,從而達(dá)到出租車(chē)計(jì)價(jià)器的設(shè)計(jì)要求。</p><p> 第2章 系統(tǒng)硬件設(shè)計(jì)</p><p> 2.1 AT89S51單片機(jī)簡(jiǎn)介</p><p> 單片機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能(可能還包括顯示驅(qū)動(dòng)電路
28、、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的計(jì)算機(jī)系統(tǒng)。</p><p> 本次畢業(yè)設(shè)計(jì)運(yùn)用到的是AT89S51單片機(jī)。AT89S51是美國(guó)ATMEL公司生產(chǎn)的低功耗,高性能CMOS 8位單片機(jī),片內(nèi)含4k Bytes ISP(In-system programmable)的可反復(fù)擦寫(xiě)1000次的Flash只讀程序存儲(chǔ)器,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技
29、術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲(chǔ)單元,功能強(qiáng)大的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性?xún)r(jià)比的解決方案。</p><p> AT89S51具體結(jié)構(gòu):40個(gè)引腳,4k Bytes Flash片內(nèi)程序存儲(chǔ)器, 128 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),32個(gè)外部雙向輸入/輸出(I/O)口,5個(gè)中斷優(yōu)先級(jí)2層中斷嵌套,2個(gè)
30、16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,看門(mén)狗(WDT)電路,片內(nèi)時(shí)鐘振蕩器。</p><p> 圖2.1 51單片機(jī)的引腳圖</p><p> P0口有二個(gè)功能: </p><p> 1、外部擴(kuò)展存儲(chǔ)器時(shí),當(dāng)做數(shù)據(jù)/地址總線。</p><p> 2、不擴(kuò)展時(shí),可做一般的I/O使用,但內(nèi)部無(wú)上拉電阻,作為輸入或輸出時(shí)應(yīng)在
31、外部接上拉電阻。</p><p> P1口只做I/O口使用:其內(nèi)部有上拉電阻。 </p><p> P2口有兩個(gè)功能: </p><p> 1、擴(kuò)展外部存儲(chǔ)器時(shí),當(dāng)作地址總線使用。 </p><p> 2、做一般I/O口使用,其內(nèi)部有上拉電阻。 </p><p> P3口有兩個(gè)功能:除了作為I/O使用
32、外(其內(nèi)部有上拉電阻),還有一些特殊功能,由特殊寄存器來(lái)設(shè)置。設(shè)計(jì)中用到的單片機(jī)各管腳(圖2.1)功能介紹如下:</p><p> VCC:接+5V電源。</p><p><b> VSS:接地。</b></p><p> 時(shí)鐘引腳:XTAL1和XTAL2兩端接晶振和30PF的電容,構(gòu)成時(shí)鐘電路。</p><p>
33、 它可以使單片機(jī)穩(wěn)定可靠的運(yùn)行。</p><p> RST:復(fù)位信號(hào)輸入端,高電平有效。當(dāng)在此引腳加兩個(gè)機(jī)器周期的高電平時(shí),就可以完成復(fù)位操作。</p><p> P0口接數(shù)碼管段選端,P2口接驅(qū)動(dòng)芯片。</p><p> P1.0:接啟動(dòng)/停止按鍵,控制計(jì)價(jià)。</p><p> P1.1:接功能鍵。</p><
34、p> P1.2:接價(jià)格調(diào)整鍵。</p><p> P1.3:接清零鍵。</p><p> P3.1、P3.0口接掉電保護(hù)電路。</p><p> P3.4(T0):接模擬開(kāi)關(guān)按鍵,替代了出租車(chē)計(jì)價(jià)器中的霍爾傳感器。</p><p> 2.2 方案論證和比較</p><p> 2.2.1 主要控制電路的
35、設(shè)計(jì)</p><p> 方案一:使用模擬電路和數(shù)字電路設(shè)計(jì)的計(jì)價(jià)器整體電路規(guī)模比較大,使用到的電路器件很多且復(fù)雜,導(dǎo)致高故障率,且難以調(diào)試到最佳狀態(tài)。數(shù)字電路控制,采用傳感器件,經(jīng)過(guò)放大整形作為移位寄存器的脈沖,實(shí)現(xiàn)計(jì)價(jià)。不過(guò)這種電路設(shè)計(jì)過(guò)于復(fù)雜,對(duì)于模式的切換需要用到機(jī)械開(kāi)關(guān),機(jī)械開(kāi)關(guān)時(shí)間久了會(huì)造成接觸不良,功能不易實(shí)現(xiàn),性能不夠穩(wěn)定,電路也不實(shí)用。</p><p> 圖2.2采用數(shù)
36、字電路控制方法</p><p> 方案二:采用單片機(jī)進(jìn)行的設(shè)計(jì),相對(duì)來(lái)說(shuō)功能強(qiáng)大,用較少的硬件和適當(dāng)?shù)能浖嗷ヅ浜峡梢院苋菀椎貙?shí)現(xiàn)設(shè)計(jì)要求,且靈活性強(qiáng),可以通過(guò)軟件編程來(lái)完成更多的附加功能。設(shè)計(jì)采用AT89S51單片機(jī)為主控器,以A44E霍爾傳感器測(cè)距(按鍵替代),實(shí)現(xiàn)對(duì)出租車(chē)的基本的計(jì)價(jià)設(shè)計(jì),并采用AT24C02實(shí)現(xiàn)在系統(tǒng)掉電的時(shí)候保存單價(jià)等信息,輸出采用8段數(shù)碼顯示管。利用單片機(jī)豐富的I/O端口,及其控制的
37、靈活性,實(shí)現(xiàn)基本的計(jì)價(jià)功能。系統(tǒng)結(jié)構(gòu)圖如下:</p><p> 圖2.3總體電路框圖</p><p> 2.2.2 顯示的設(shè)計(jì)</p><p> 方案一:液晶顯示器(LCD)顯示。強(qiáng)大的液晶屏可以顯示各種字體,數(shù)字,文字,圖像,還可以自定義顯示,顯示更豐富的內(nèi)容,以方便操作者讀取信息和實(shí)施一些擴(kuò)展。 I/O端口占用較少的系統(tǒng),有效地節(jié)省系統(tǒng)資源,使整個(gè)系統(tǒng)更加
38、人性化,但費(fèi)用相對(duì)昂貴。</p><p> 方案二:LED數(shù)碼顯示。數(shù)字顯示簡(jiǎn)單清晰,夜晚具有較好的顯示效果,但只能顯示有限的符號(hào)和數(shù)字。按照我們?cè)O(shè)計(jì)的計(jì)價(jià)器具體功能,它基本可以滿足要求。而且價(jià)格也很便宜。相比較選擇方案二。</p><p> 2.2.3 掉電保護(hù)的設(shè)計(jì)</p><p> 方案一:DS1302 是美國(guó)DALLAS公司推出的一種高性能、低功耗、帶
39、RAM的實(shí)時(shí)時(shí)鐘電路,工作電壓為2.5V~5.5V,其內(nèi)部有一個(gè)31×8的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器。同時(shí)提供了對(duì)后備電源進(jìn)行涓細(xì)電流充電的能力。</p><p> 方案二:使用AT24C02。 ATMEL公司的AT24C02是2KB的字節(jié)的電可擦除存儲(chǔ)器芯片,采用兩線串行總線與單片機(jī)通信,電壓最低可到2.5V時(shí),1mA的額定電流,靜態(tài)電流降至10uA(5.5V)的,芯片上的數(shù)據(jù)可以被儲(chǔ)存在斷電
40、的情況下超過(guò)40年,8引腳DIP封裝,易于使用。因此,選擇方案二更好。</p><p> 2.3 硬件電路設(shè)計(jì) </p><p> 單片機(jī)是單片微型計(jì)算機(jī)的簡(jiǎn)稱(chēng),單片機(jī)以其卓越的性能,得到廣泛的應(yīng)用,已經(jīng)深入到各個(gè)領(lǐng)域。在這次設(shè)計(jì)中,我們用到P0口和P2口,P0口為8位三態(tài)I/O口,此口為地址總線及數(shù)據(jù)總線分時(shí)復(fù)用;P2口為8位準(zhǔn)雙向口,與地址總線高八位復(fù)用;P0口和P2口都有一定的驅(qū)
41、動(dòng)能力,P0口的驅(qū)動(dòng)能力較強(qiáng)。 </p><p> 設(shè)計(jì)時(shí),為了能夠讓數(shù)碼管更好的正常顯示,就采用了驅(qū)動(dòng)電路來(lái)驅(qū)動(dòng)。在本次硬件設(shè)計(jì)中,我們考慮采用芯片74LS245來(lái)驅(qū)動(dòng)數(shù)碼管顯示。</p><p> 設(shè)計(jì)電路時(shí),考慮到用里程(霍爾)傳感器價(jià)格昂貴,且不便于試驗(yàn)檢測(cè),在設(shè)計(jì)中采用一個(gè)模擬開(kāi)關(guān)來(lái)代替。模擬開(kāi)關(guān)一端接在P3.4口,另一端接地,通過(guò)來(lái)回高低電平的變化,每按兩次(程序可以設(shè)置)
42、,對(duì)應(yīng)的里程數(shù)加一。通過(guò)在程序中設(shè)置的里程和金額的信息,再加上驅(qū)動(dòng)電路的設(shè)計(jì),就可以在數(shù)碼管上分別顯示總金額和總里程。</p><p> 在顯示方面,可以用液晶顯示,也可以用數(shù)碼管進(jìn)行顯示。由于在這次設(shè)計(jì)中只需要顯示里程和金額信息,所以采用數(shù)碼管進(jìn)行顯示。這樣既節(jié)約了成本,又可以達(dá)到顯示的目的。同時(shí)為了減少硬件的復(fù)雜度,可以采用了動(dòng)態(tài)顯示方式,選用了共陰極數(shù)碼管??紤]到為了方便,就選用了集成在一起的數(shù)碼管。&l
43、t;/p><p> 本設(shè)計(jì)還設(shè)計(jì)了控制按鍵,能夠很好的對(duì)出租車(chē)計(jì)價(jià)器進(jìn)行控制,如啟動(dòng)/停止按鍵,功能按鍵,清零按鍵等。按下啟動(dòng)計(jì)價(jià)按鍵時(shí),顯示起步價(jià)和起步里程范圍,這些在程序中設(shè)置;當(dāng)?shù)扔诨虺^(guò)兩公里后,按計(jì)算總價(jià)的公式為:總價(jià)=起步價(jià)+單價(jià)*(總里程-起步里程)+1進(jìn)行計(jì)價(jià)。本設(shè)計(jì)中,起步價(jià)為4元,起步里程為2公里,當(dāng)然這些數(shù)據(jù)可以在程序中改寫(xiě),以滿足不同時(shí)期價(jià)格調(diào)整的需要。下圖是通過(guò)在Keil C中編譯通過(guò),并
44、生成Hex文件,在PROTEUS中仿真通過(guò)的整體硬件原理圖:</p><p><b> 圖2.4硬件原理圖</b></p><p><b> 2.4 硬件組成</b></p><p> 硬件組成主要包括:驅(qū)動(dòng)電路、顯示電路、復(fù)位電路、掉電保護(hù)電路、時(shí)鐘電路、按鍵電路。以下介紹各個(gè)電路組成:</p>&l
45、t;p><b> 2.4.1驅(qū)動(dòng)電路</b></p><p> 74LS245是常用的芯片,用來(lái)驅(qū)動(dòng)LED或者其他的設(shè)備??偩€驅(qū)動(dòng)器74LS244和74LS245經(jīng)常用作三態(tài)數(shù)據(jù)緩沖器,74LS244為單向三態(tài)數(shù)據(jù)緩沖器,而74LS245為雙向三態(tài)數(shù)據(jù)緩沖器。本設(shè)計(jì)用74LS245作為驅(qū)動(dòng)芯片,雙向總線發(fā)送器/接收器(3S)。</p><p> 圖2.5驅(qū)
46、動(dòng)芯片管腳圖</p><p> 74LS245主要電器特性的典型值如下: </p><p><b> 引出端符號(hào): </b></p><p> A A總線端 </p><p> B B總線端 </p><p> /E 三態(tài)允許端(低電平有效) </p>
47、;<p> T/R 方向控制端 </p><p> 芯片功能表: </p><p><b> 圖2.6功能表</b></p><p> 利用74LS245來(lái)驅(qū)動(dòng)數(shù)碼管顯示,單片機(jī)的P2.0到P2.5分別接A0到A5管腳,進(jìn)行數(shù)據(jù)的傳送,其中AB/BA接高電平,控制數(shù)據(jù)從A到B進(jìn)行傳送
48、,B0到B5分別接數(shù)碼管的位選端,驅(qū)動(dòng)數(shù)碼管依次顯示。P2.0到P2.5的數(shù)據(jù)通過(guò)A傳送到B中的數(shù)據(jù)送到數(shù)碼管,以達(dá)到顯示數(shù)據(jù)信息的目的。</p><p> 2.4.2顯示電路 </p><p> 多數(shù)的應(yīng)用系統(tǒng),都要配輸入和輸出外設(shè),LED顯示器和LCD顯示器,雖然LCD顯示效果比較好,已經(jīng)成為了一種發(fā)展趨勢(shì),但為了節(jié)約成本,我們選用了LED顯示器(圖2.7)。</p>
49、;<p> 在顯示方面,為了方便就選用了動(dòng)態(tài)顯示。靜態(tài)顯示雖然亮度較高,接口編程容易,但是每位的段碼線分別與一個(gè)8位的鎖存器輸出相連。占用的I/O口線比較多,在顯示位數(shù)較多的情況下,一般都采用動(dòng)態(tài)顯示方式。利用動(dòng)態(tài)顯示的方法,由于LED顯示器的余輝和人眼的視覺(jué)暫留現(xiàn)象,只要每位顯示的時(shí)間間隔足夠短,就仍能感覺(jué)到所有的數(shù)碼管都在顯示。為了簡(jiǎn)化硬件,通常將所有位的段碼線相應(yīng)段并聯(lián)在一起,由一個(gè)8位I/O口控制,在同一時(shí)刻,只
50、讓一位選通,如此循環(huán),就可以使各位顯示出想要顯示的字符。</p><p> 圖2.7 LED數(shù)碼管 圖2.8集成數(shù)碼管</p><p> LED數(shù)碼管有共陽(yáng)和共陰兩種,把這些LED發(fā)光二極管的正極接到一塊(一般是拼成一個(gè)8字加一個(gè)小數(shù)點(diǎn))而作為一個(gè)引腳,就叫共陽(yáng)的,相反的,就叫共陰的,那么應(yīng)用時(shí)這個(gè)腳就分別的接VCC和GND。再把多個(gè)這
51、樣的8字裝在一起就成了多位的數(shù)碼管了。在本設(shè)計(jì)仿真中使用的是6個(gè)一組的共陰8段數(shù)碼管(圖2.8)。</p><p> 鑒別數(shù)碼管共陰和共陽(yáng)的方法:首先我們找個(gè)電源|穩(wěn)壓器(3到5伏)和1個(gè)1K(幾百歐的也行)的電阻,VCC串接個(gè)電阻后和GND接在任意2個(gè)腳上,組合有很多,但總有一個(gè)LED會(huì)發(fā)光的,找到一個(gè)就夠了,然后用GND不動(dòng),VCC(串電阻)逐個(gè)碰剩下的腳,如果有多個(gè)LED(一般是8個(gè)),那它就是共陰的了。
52、共陰極數(shù)碼管,陰極接地,當(dāng)某個(gè)發(fā)光二極管的陽(yáng)極為高電平時(shí),發(fā)光二極管點(diǎn)亮,對(duì)應(yīng)的段就顯示。下圖就是集成數(shù)碼管在本電路中的連接結(jié)構(gòu)。在數(shù)碼管點(diǎn)亮的六位數(shù)字中前三位是顯示計(jì)價(jià),后三位是顯示里程。</p><p> 圖2.9集成數(shù)碼管連接圖</p><p><b> 2.4.3復(fù)位電路</b></p><p> 單片機(jī)的復(fù)位是由外部的復(fù)位電路實(shí)
53、現(xiàn)的, 復(fù)位電路通常采用上電自動(dòng)復(fù)位和按鈕復(fù)位兩種方式。上電自動(dòng)復(fù)位是通過(guò)外部復(fù)位電路的電容充電來(lái)實(shí)現(xiàn)的。除了上電復(fù)位外還需要按鍵手動(dòng)復(fù)位(圖2.10)。按鍵手動(dòng)復(fù)位有電平方式和脈沖方式兩種。其中電平復(fù)位是通過(guò)RST端經(jīng)電阻與電源VCC接通而實(shí)現(xiàn)的。單片機(jī)的復(fù)位速度比外圍I/O接口電路快為能夠保證系統(tǒng)可靠的復(fù)位,在初始化程序中應(yīng)安排一定的復(fù)位延遲時(shí)間。</p><p><b> 圖2.10復(fù)位電路&l
54、t;/b></p><p> 2.4.4掉電保護(hù)電路</p><p> 掉電保護(hù)電路中采用了存儲(chǔ)芯片AT24C02。AT24C02是一個(gè)CMOS標(biāo)準(zhǔn)的EEPROM存儲(chǔ)器,是AT24CXX系列(AT24C01/02/04/08/16)成員之一,這些EEPROM存儲(chǔ)器的特點(diǎn)是功耗小、成本低、電源可選范圍寬,靜態(tài)電源電流約30uA~110uA,具有標(biāo)準(zhǔn)的I2C總線接口,是應(yīng)用廣泛的小容
55、量存儲(chǔ)器之一。</p><p> 圖2.11 AT24C02引腳圖</p><p> 上圖是AT24C02的引腳圖,這個(gè)芯片是一個(gè)8腳芯片,內(nèi)部存儲(chǔ)器有256字節(jié)。</p><p><b> 引腳功能介紹如下:</b></p><p> A0(引腳1):器件地址的A0位,是器件地址的最低位,器件地址排列是A6
56、A5 A4 A3A2 A1 A0 R/W。</p><p> A1(引腳2):器件地址的A1位。</p><p> A2(引腳3):器件地址的A2位。</p><p> VCC(引腳8):電源線引腳。</p><p> GND(引腳4):地線。</p><p> SDA(引腳5):數(shù)據(jù)總線引腳。</p&
57、gt;<p> SCL(引腳6):時(shí)鐘總線引腳。</p><p> TEST(引腳7):測(cè)試引腳。</p><p> 本設(shè)計(jì)在Proteus仿真軟件中掉電存儲(chǔ)芯片用功能和AT24C02相同的FM24C02來(lái)代替實(shí)現(xiàn)其功能電路圖如下:</p><p> 圖2.12掉電保存電路</p><p> 2.4.5 時(shí)鐘電路<
58、;/p><p> MCS-51單片機(jī)的各功能部件都是以時(shí)鐘控制信號(hào)為基準(zhǔn),內(nèi)部電路在時(shí)鐘信號(hào)的控制下,嚴(yán)格地按時(shí)序執(zhí)行指令進(jìn)行工作,單片機(jī)本身如同一個(gè)復(fù)雜的同步時(shí)序電路,為了保證其各個(gè)部分同步工作,電路要在唯一的時(shí)鐘信號(hào)控制下,嚴(yán)格地按照時(shí)序進(jìn)行工作。其實(shí)只需在時(shí)鐘引腳連接上外圍的定時(shí)控制元件,就可以構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。為更好地保證振蕩器穩(wěn)定可靠地工作,諧振器和電容應(yīng)盡可能安裝得與單片機(jī)芯片靠近。</p
59、><p> 本設(shè)計(jì)中使用的振蕩電路,由12MHZ晶體振蕩器和兩個(gè)約30PF的電容組成,在XTAL1和XTAL2兩端跨接晶體,電容的大小不會(huì)影響振蕩頻率的高低。在整個(gè)系統(tǒng)中為系統(tǒng)各個(gè)部分提供基準(zhǔn)頻率,以防因其工作頻率不穩(wěn)定而造成相關(guān)設(shè)備的工作頻率不穩(wěn)定,晶振可以在電路中產(chǎn)生振蕩電流,發(fā)出時(shí)鐘信號(hào)。如圖2.13所示。</p><p><b> 圖2.13時(shí)鐘電路</b>&
60、lt;/p><p> 2.4.6 按鍵電路</p><p> 按鍵控制電路中,單片機(jī)的P1.0管腳接啟動(dòng)/停止按鍵,通過(guò)軟件編程,當(dāng)按閉合按鍵計(jì)數(shù)器開(kāi)始工作,進(jìn)入計(jì)價(jià)狀態(tài);當(dāng)斷開(kāi)按鍵時(shí),計(jì)數(shù)器停止工作,計(jì)價(jià)狀態(tài)取消,啟動(dòng)/停止按鍵帶自鎖功能,方便使用。當(dāng)按下啟動(dòng)按鍵,開(kāi)關(guān)處于導(dǎo)通狀態(tài),這時(shí)給P1.0送低電平信號(hào),這時(shí)TR0=1,計(jì)數(shù)器開(kāi)始工作,調(diào)用計(jì)價(jià)子程序開(kāi)始計(jì)價(jià)。清零按鍵接單片機(jī)的P1
61、.3管腳,按下清零按鍵,P1.3為低電平,調(diào)用清零子程序,用于將顯示數(shù)據(jù)清零,在程序中給各位賦0代碼(0x3f),以達(dá)到清零的目的,方便下次計(jì)價(jià)。另外為功能鍵,控制價(jià)格調(diào)整,這個(gè)按鍵是在沒(méi)有閉合啟動(dòng)/停止按鍵時(shí)有作用,計(jì)價(jià)過(guò)程中無(wú)效,可以防止作弊。</p><p><b> 圖2.14按鍵電路</b></p><p> 2.5里程計(jì)算的原理</p>
62、<p> 里程計(jì)算時(shí),考慮到用霍爾傳感器不便于試驗(yàn)檢測(cè)及模擬,就在仿真設(shè)計(jì)中采用一個(gè)模擬開(kāi)關(guān)來(lái)代替。模擬開(kāi)關(guān)一端接在單片機(jī)P3.4口,另一端接地,通過(guò)高低電平的變化,既每按這個(gè)模擬開(kāi)關(guān)兩次,相應(yīng)的里程數(shù)對(duì)應(yīng)加一。通過(guò)在程序中設(shè)置的里程程序,就可以很直觀的了解本次運(yùn)輸?shù)目偫锍?,?jīng)過(guò)相應(yīng)的計(jì)算就可以根據(jù)該里程得出總金額。在實(shí)際的里程計(jì)算中我們可以運(yùn)用霍爾傳感器進(jìn)行里程計(jì)算。</p><p> 圖2.15
63、傳感器測(cè)距示意圖</p><p> 霍爾傳感器簡(jiǎn)介:霍爾效應(yīng)傳感器是利用霍爾效應(yīng)來(lái)實(shí)現(xiàn)磁電轉(zhuǎn)換的傳感器,它具有靈敏度高,線性好,穩(wěn)定性高,體積小,耐高溫的特點(diǎn),機(jī)車(chē)控制系統(tǒng)中起著非常重要的地位。速度測(cè)量設(shè)備的要求是有較強(qiáng)的分辨能力,精度準(zhǔn)確性高和檢測(cè)時(shí)間盡可能短。 </p><p> 霍爾器件具有許多優(yōu)點(diǎn),其結(jié)構(gòu)堅(jiān)固,體積小,重量輕,壽命長(zhǎng),易安裝,低功耗,高頻率(高達(dá)至1MHz),耐
64、振動(dòng),沒(méi)有灰塵,油污,水分,鹽霧害怕等。污染或腐蝕,抗干擾能力突出。 </p><p> 霍爾器件功能可以按照功能劃分為霍爾開(kāi)關(guān)器件和霍爾線性器件。后者的模擬輸出,前者輸出的數(shù)字內(nèi)容。 </p><p> 霍爾開(kāi)關(guān)設(shè)備無(wú)接觸,無(wú)磨損,輸出波形清晰高(可達(dá)微米級(jí)),無(wú)抖動(dòng),無(wú)反彈,重復(fù)定位精度。獲得了補(bǔ)償和保護(hù)措施的霍爾器件的工作溫度范圍品種,多達(dá)-55℃?150℃ ;霍爾線性器件裝置:
65、精度高,線性度好。 </p><p> 根據(jù)被檢測(cè)對(duì)象的性質(zhì)可分為:直接應(yīng)用和間接應(yīng)用。前者是直接檢測(cè)到的測(cè)試對(duì)象本身或磁場(chǎng),這是測(cè)試一個(gè)對(duì)象的人為設(shè)置磁場(chǎng)科目,使用這個(gè)磁場(chǎng)中的信息載體檢測(cè),利用磁學(xué)性質(zhì),通過(guò)它將許多非磁,非電的的物理量,如力,扭矩,壓力和工作狀態(tài)改變時(shí)間等,通過(guò)轉(zhuǎn)變成電量來(lái)進(jìn)行對(duì)需要對(duì)象的檢查控制。</p><p> 由于A44E 屬于開(kāi)關(guān)型的霍爾器件,其工作電壓范
66、圍比較寬(4.5~18V),其輸出的信號(hào)符合TTL 電平標(biāo)準(zhǔn),可以直接接到單片機(jī)的IO 端口上,而且其最高檢測(cè)頻率可達(dá)到1MHZ。集成開(kāi)關(guān)型霍爾傳感器原理如圖2.16所示。</p><p> 圖2.16集成開(kāi)關(guān)型霍耳傳感器原理圖</p><p> A44E 集成霍耳開(kāi)關(guān)由穩(wěn)壓器A、霍耳電勢(shì)發(fā)生器(即硅霍耳片)B、差分放大器C、施密特觸發(fā)器D 和OC 門(mén)輸出E 五個(gè)基本部分組成。在輸入端
67、輸入電壓CC V ,經(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ā)器整形,使其成為方波輸送到OC 門(mén)輸出。當(dāng)施加的磁場(chǎng)達(dá)到工作點(diǎn).(即OP B )時(shí),觸發(fā)器輸出高電壓(相對(duì)于地電位)使三極管導(dǎo)通,此時(shí)OC 門(mén)輸出端輸出低電壓,通常稱(chēng)這種狀態(tài)為“開(kāi)”。當(dāng)施加的磁場(chǎng)達(dá)到釋放點(diǎn)(即rP
68、B )時(shí),觸發(fā)器輸出低電壓,三極管截止,使OC 門(mén)輸出高電壓,這種狀態(tài)為“關(guān)”。這樣兩次電壓變換,使霍耳開(kāi)關(guān)完成了一次開(kāi)關(guān)動(dòng)作。其集成霍耳開(kāi)關(guān)外形及接線如圖2.17所示。</p><p> 本設(shè)計(jì)選擇了P3.4 口作為信號(hào)的輸入端,內(nèi)部采用外部中斷0(這樣可以減少程序設(shè)計(jì)的麻煩),車(chē)輪每轉(zhuǎn)一圈(我們?cè)O(shè)車(chē)輪的周長(zhǎng)是1 米),霍爾開(kāi)關(guān)就檢測(cè)并輸出信號(hào),引起單片機(jī)的中斷,對(duì)脈沖計(jì)數(shù),當(dāng)計(jì)數(shù)達(dá)到1000 次時(shí),也就是1
69、 公里,單片機(jī)就控制將金額自動(dòng)的加增加,其計(jì)算公式:總價(jià)=起步價(jià)+單價(jià)*(總里程-起步里程)+1。在本次設(shè)計(jì)中仿真軟件所采用的是在P3.4端口連接一個(gè)開(kāi)關(guān)并接地,來(lái)模擬里程的累加,這樣就可以較為簡(jiǎn)單的模擬出這個(gè)計(jì)價(jià)器系統(tǒng)的工作狀態(tài),在仿真出租車(chē)計(jì)價(jià)器時(shí)達(dá)到較為理想的效果。</p><p> 第3章 系統(tǒng)軟件設(shè)計(jì)</p><p> 本設(shè)計(jì)中,軟件設(shè)計(jì)采用模塊化操作,利用各個(gè)模塊之間的相互
70、聯(lián)系,采用主程序調(diào)用各個(gè)子程序的方法,使程序通俗易懂,并且設(shè)計(jì)了整體程序流程圖。</p><p> 在main函數(shù)編寫(xiě)開(kāi)始,要進(jìn)行初始化,包括對(duì)系統(tǒng)初始化和對(duì)存儲(chǔ)器初始化,要對(duì)硬件設(shè)備進(jìn)行初始化,并使硬件處于就緒狀態(tài)。</p><p> 通過(guò)判斷是否計(jì)費(fèi),調(diào)價(jià),清零等狀態(tài),來(lái)分別調(diào)用不同的子程序,使程序在設(shè)計(jì)之前,就有了很強(qiáng)的邏輯關(guān)系。</p><p><
71、b> 3.1軟件總體設(shè)計(jì)</b></p><p> 51單片機(jī)的程序設(shè)計(jì)語(yǔ)言主要有兩種:一是匯編程序設(shè)計(jì);二是C語(yǔ)言編程設(shè)計(jì)。兩種程序設(shè)計(jì)語(yǔ)言都有各自的優(yōu)點(diǎn)。用匯編語(yǔ)言編寫(xiě)和高級(jí)語(yǔ)言(C語(yǔ)言)比較起來(lái)節(jié)省空間,這樣對(duì)于存儲(chǔ)空間僅4Kb的芯片來(lái)說(shuō)是極之有利的,51單片機(jī)能更高速的運(yùn)行。C語(yǔ)言編寫(xiě)的程序,雖然不象匯編那樣速度快、但程序簡(jiǎn)單易行、并且需要較小的存儲(chǔ)空間。C語(yǔ)言作為一種編譯型程序設(shè)計(jì)
72、語(yǔ)言,它兼顧了多種高級(jí)語(yǔ)言的特點(diǎn),并具備匯編語(yǔ)言的功能。此外,C語(yǔ)言程序還具有完善的模塊程序結(jié)構(gòu),從而為軟件開(kāi)發(fā)中采用模塊化程序設(shè)計(jì)方法提供了有力的保障。因此,使用C語(yǔ)言進(jìn)行程序設(shè)計(jì)已成為軟件開(kāi)發(fā)的主流。</p><p> 本設(shè)計(jì)就是采用C語(yǔ)言編寫(xiě)的,由于采用模塊化操作,使得程序在修改,執(zhí)行的時(shí)候顯得方便易行。</p><p> 軟件設(shè)計(jì)要求:在通過(guò)按下各個(gè)控制按鍵開(kāi)關(guān),來(lái)調(diào)用不同的子
73、程序,最后數(shù)碼管根據(jù)輸入的信息,來(lái)顯示不同的數(shù)據(jù)信息,這就達(dá)到了軟件控制硬件,同時(shí)輸入信息控制輸出信息的目的。當(dāng)您按下啟動(dòng)鍵,開(kāi)始計(jì)價(jià),顯示起步價(jià)和起步里程,里程將根據(jù)寄存器的內(nèi)容進(jìn)行運(yùn)算,并判斷是否超過(guò)起步里程。 如果已超過(guò)起步里程,每公里的單位價(jià)格和起步價(jià)相加來(lái)計(jì)算總價(jià)格,寄存器中將會(huì)存儲(chǔ)總價(jià)格價(jià)格,然后發(fā)送里程數(shù)和當(dāng)前的總價(jià)格到顯示驅(qū)動(dòng)電路。當(dāng)你結(jié)束本次乘坐時(shí),霍爾開(kāi)關(guān)脈沖信號(hào)就不發(fā)送信號(hào)為了防止干擾要斷開(kāi)啟動(dòng)按鈕,這就相當(dāng)于是停
74、止計(jì)價(jià),數(shù)碼管應(yīng)該顯示當(dāng)前你所需要支付的總金額及相應(yīng)的總里程,按下清零鍵就會(huì)清除顯示的信息,為下次顯示信息準(zhǔn)備就緒。在用功能鍵進(jìn)行起步價(jià)調(diào)整時(shí),可以先閉合啟動(dòng)鍵,再斷開(kāi),按功能鍵進(jìn)行價(jià)格調(diào)整,完成設(shè)置后再閉合啟動(dòng)鍵,根據(jù)輸入里程脈沖信號(hào)進(jìn)行計(jì)價(jià)。</p><p> 圖3.1系統(tǒng)程序流程圖</p><p><b> 3.2程序介紹</b></p>&l
75、t;p><b> 3.2.1主程序</b></p><p> 該程序就是簡(jiǎn)單的設(shè)置根據(jù)里程的多少然后按單位價(jià)格進(jìn)行計(jì)算顯示,在仿真中用了開(kāi)關(guān)接地來(lái)模擬里程脈沖的輸入,通過(guò)每?jī)纱蔚拿}沖默認(rèn)設(shè)置為行程1公里,進(jìn)行里程的計(jì)算,再根據(jù)單位價(jià)格的計(jì)算給出總金額。下面片段是根據(jù)要求所設(shè)計(jì)的主程序。</p><p> void main()//主程序</p>
76、<p><b> { init();</b></p><p> sec=read_data(2);</p><p> if(sec>100)</p><p><b> sec=0;</b></p><p> TL0=(65536-2)%256 ;//計(jì)數(shù)值設(shè)置,記滿兩次
77、產(chǎn)生中斷</p><p> TH0=(65536-2)/256 ;</p><p> TMOD=0x06;</p><p><b> EA=1;</b></p><p><b> ET0=1;</b></p><p> TR0=0;//關(guān)定時(shí)器</p>
78、<p><b> kilo=0;</b></p><p> qingling();</p><p><b> aa:</b></p><p> if(key1==0)//當(dāng)鍵按下去,開(kāi)始計(jì)費(fèi) </p><p> {TR0=1;//開(kāi)計(jì)數(shù)器0</p>
79、;<p><b> kk=kilo;</b></p><p> jijia();} </p><p> if(key1==1)//當(dāng)鍵松開(kāi),停止計(jì)費(fèi)</p><p><b> {</b></p><p> TR0=0;//停計(jì)數(shù)器1</p><p&g
80、t; if(key2==0)//功能調(diào)整鍵</p><p> { delay1(10);//延時(shí)判斷鍵是否松開(kāi)</p><p> if(key2==1)</p><p> {xscode[2]=codetab[djflag++];}//當(dāng)p1.2口的按鍵按下時(shí)功能標(biāo)志位加一</p><p><b> }</b>
81、</p><p> if(key3==0&&djflag==2)//當(dāng)功能鍵標(biāo)志位等1時(shí),改變每公里的價(jià)錢(qián) </p><p><b> {</b></p><p> delay1(10);</p><p> if(key3==1)</p><p> {dj++;}
82、 </p><p> xscode[1]= codetab[dj/10] ;//把價(jià)錢(qián)十位送顯示區(qū),單價(jià)不能超100</p><p> xscode[0]=codetab[dj%10];</p><p><b> }</b></p><p> if(key4==0)//有鍵按下,清顯示,單價(jià)會(huì)初始值,單價(jià)標(biāo)志
83、位清零</p><p><b> {</b></p><p> qingling();</p><p><b> dj=1;</b></p><p><b> djflag=0;</b></p><p><b> }</b>
84、;</p><p><b> }</b></p><p> xianshi();//調(diào)顯示子程序</p><p><b> goto aa;</b></p><p><b> }</b></p><p> void Timer0_Int() i
85、nterrupt 1 using 2 // 計(jì)數(shù)器0中斷服務(wù)</p><p><b> {</b></p><p> zdflag=zdflag+1;//中斷標(biāo)志位加一</p><p> if(zdflag==2)//當(dāng)中斷產(chǎn)生二次后,路程加一公里并清中斷標(biāo)志位</p><p><b> {</b
86、></p><p><b> zdflag=0;</b></p><p> kilo=kilo+1;</p><p><b> }</b></p><p><b> }</b></p><p> 本程序中包含有各功能按鍵的功能輸出,在功
87、能鍵按下中可以對(duì)起步價(jià)進(jìn)行調(diào)整,以便在日后需要的時(shí)候可以方便司機(jī)使用,適應(yīng)市場(chǎng)需要。</p><p> 3.2.2 計(jì)費(fèi)子程序</p><p> 當(dāng)系統(tǒng)有啟動(dòng)/停止中斷請(qǐng)求產(chǎn)生時(shí),可以設(shè)定當(dāng)按鍵閉合時(shí)發(fā)送“0”為啟動(dòng)中斷,開(kāi)始啟動(dòng)子程序,當(dāng)按鍵斷開(kāi)時(shí)為高電平,這時(shí)為中斷該子程序。下面是關(guān)于調(diào)用計(jì)費(fèi)子程序的編程,在啟動(dòng)鍵閉合時(shí)就調(diào)用該子程序運(yùn)行,來(lái)實(shí)現(xiàn)計(jì)價(jià)功能。當(dāng)按下清零按鍵就會(huì)跳轉(zhuǎn)到顯
88、示碼清零的程序,這時(shí)數(shù)碼管顯示所有都恢復(fù)為零。下面片段是針對(duì)計(jì)價(jià)可調(diào)用的子程序。</p><p> void jijia()//計(jì)費(fèi)子程序</p><p><b> {</b></p><p> if(kk<=2)//計(jì)價(jià)方案</p><p> {jkk=4;//起步價(jià)4元</p><p
89、><b> kk=2;</b></p><p><b> }</b></p><p> else if(kk>2&&kk<=35)</p><p><b> {</b></p><p> jkk=4+dj*(kk-2)+1;</
90、p><p><b> }</b></p><p> else if(kk>35&&kk<900) </p><p><b> {</b></p><p> jkk=4+2*dj*(kk-2)+1;</p><p><b> }&l
91、t;/b></p><p> kflag=kk/100;//路程百位</p><p> jflag=jkk/100;//路費(fèi)百位</p><p> xscode[2]=codetab[kflag];</p><p> xscode[5]=codetab[jflag];</p><p> kflag=kk
92、/10;//路程十位</p><p> jflag=jkk/10;//路費(fèi)十位</p><p> xscode[1]=codetab[kflag];</p><p> xscode[4]=codetab[jflag];</p><p> kflag=kk%10;//路程個(gè)位</p><p> jflag=jk
93、k%10;//路費(fèi)個(gè)位</p><p> if(kflag==0){kflag=2;}//不足兩公里時(shí),顯示兩公里</p><p> xscode[0]=codetab[kflag];</p><p> xscode[3]=codetab[jflag];</p><p><b> }</b></p>
94、<p> void qingling()</p><p><b> {</b></p><p> for(i=0;i<=5;i++)//顯示碼清零</p><p> {xscode[i]=0x3f;} </p><p><b> }</b></p><
95、p> 3.2.3 顯示子程序</p><p> 這里用到的顯示是一個(gè)整體的顯示,只需有一個(gè)顯示子程序,在程序中需要調(diào)用顯示子程序時(shí)就可以跳轉(zhuǎn)到此程序?qū)υ撈芜\(yùn)行,顯示相應(yīng)的數(shù)值,給人以直觀的效果。下面片段就是可以調(diào)用的顯示子程序。</p><p> void xianshi()//顯示程序子程序</p><p><b> {</b>
96、;</p><p> for(flag=0;flag<6;flag++) </p><p><b> {</b></p><p> P0= xscode[flag];//送顯示碼</p><p> P2= zxscode[flag];// 送片選碼</p><p&g
97、t; delay1(2);</p><p><b> P0=0;</b></p><p><b> }</b></p><p> 3.3基于PROTEUS的計(jì)價(jià)器仿真</p><p> Proteus軟件是英國(guó)Labcenter electronics公司出版的EDA工具軟件。它不僅具有其
98、它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。PROTEUS不僅可將許多單片機(jī)實(shí)例功能形象化,可在相當(dāng)程度上得到實(shí)物演示實(shí)驗(yàn)的效果。仿真的步驟:</p><p> 1.打開(kāi)Proteus軟件。</p><p> 2.選擇file菜單下的 open design選項(xiàng),找到所需的元器件,元器件上單擊右鍵選中,再單擊左鍵對(duì)其進(jìn)行命名和賦值,接
99、著在編輯器左邊的一欄中,找出并繪制設(shè)計(jì)所要的各種元器件,按照電路圖連接后并保存。</p><p> 3.將用keilC編譯產(chǎn)生的hex文件下載到單片機(jī)中:雙擊51單片機(jī),在對(duì)話框中把保存過(guò)的hex文件打開(kāi),再單擊確定。 </p><p> 4.單擊左下角運(yùn)行按鈕,進(jìn)行軟件仿真調(diào)試,直到出現(xiàn)正確的結(jié)果。</p><p> 下圖為軟件的仿真窗口圖:</p&g
100、t;<p> 圖3.2軟件仿真窗口圖</p><p> 在程序中預(yù)設(shè)的起步價(jià)是4元,起步里程是2公里,根據(jù)該程序設(shè)置的功能進(jìn)行調(diào)試,下面是對(duì)各個(gè)按鍵進(jìn)行操作實(shí)現(xiàn)其功能所顯示出來(lái)的結(jié)果圖。</p><p> 圖3.3 在按下啟動(dòng)按鈕顯示的起步價(jià)</p><p> 圖3.4 在起步里程(2KM)范圍內(nèi)顯示的價(jià)格和里程</p><
101、p> 圖3.5 超出起步里程的數(shù)據(jù)顯示</p><p> 圖3.6功能鍵進(jìn)行起步價(jià)的設(shè)置</p><p> 圖3.7起步里程范圍內(nèi)設(shè)置后的起步價(jià)為6元</p><p> 圖3.8 在起步價(jià)為6元,里程超出起步里程范圍的顯示</p><p><b> 總 結(jié)</b></p><p>
102、 在本次設(shè)計(jì)中,采用AT89S51芯片為核心器件,設(shè)計(jì)出了簡(jiǎn)單的出租車(chē)計(jì)價(jià)器,能夠?qū)崿F(xiàn)顯示起步價(jià)及總金額和總里程,按鍵控制清零,調(diào)價(jià)功能。</p><p> 選題后,我便開(kāi)始復(fù)習(xí)單片機(jī)方面的知識(shí),也查閱、搜索了很多相關(guān)資料,進(jìn)行總體設(shè)計(jì)與具體設(shè)計(jì),同時(shí)也學(xué)習(xí)仿真軟件Proteus和編程軟件Keil C。由于以前都采用匯編語(yǔ)言實(shí)現(xiàn)編程,對(duì)用C語(yǔ)言來(lái)實(shí)現(xiàn)單片機(jī)的編程不太習(xí)慣,花費(fèi)了一些時(shí)間來(lái)熟悉C語(yǔ)言的編程。在設(shè)
103、計(jì)開(kāi)始,要形成流程圖,它可以使設(shè)計(jì)有一定的邏輯性與嚴(yán)密性,使得設(shè)計(jì)思路明確。采用模塊化的設(shè)計(jì)思想很重要,它方便編寫(xiě)、修改與調(diào)試,另外加上必要的注釋?zhuān)阌诮涣髋c理解。</p><p> 這次畢業(yè)設(shè)計(jì)完成后,體會(huì)頗多,在學(xué)與做的過(guò)程中,取長(zhǎng)補(bǔ)短,不斷學(xué)習(xí)新的知識(shí),吸取經(jīng)驗(yàn),達(dá)到進(jìn)步的目的。通過(guò)自身的努力以及相關(guān)圖書(shū)資料的幫助,逐漸熟悉了KEIL、PROTEUS等軟件的使用以及掌握C語(yǔ)言的編程。本次設(shè)計(jì)還讓我學(xué)習(xí)到不
104、少單片機(jī)的知識(shí),但由于自己的理論知識(shí)水平有限,實(shí)踐知識(shí)和設(shè)計(jì)經(jīng)驗(yàn)不足,在設(shè)計(jì)過(guò)程中難免存在一些問(wèn)題。個(gè)別預(yù)期功能還不能很好的實(shí)現(xiàn),主要原因是考慮問(wèn)題不周全,電路設(shè)計(jì)經(jīng)驗(yàn)少,實(shí)際設(shè)計(jì)能力不足。懇請(qǐng)各位老師批評(píng)指正,以使我在以后的學(xué)習(xí)和實(shí)踐中加以改進(jìn)和提高。</p><p><b> [參考文獻(xiàn)]</b></p><p> [1] 譚浩強(qiáng). C程序設(shè)計(jì)(第二版)[M]
105、.清華大學(xué)出版社,2003.</p><p> [2] 高禹,馮相忠.C語(yǔ)言程序設(shè)計(jì)(第二版)[M].中國(guó)農(nóng)業(yè)大學(xué)出版社,2007.</p><p> [3] 戴 佳.51單片機(jī)C語(yǔ)言應(yīng)用程序設(shè)計(jì)實(shí)例精講[M].電子工業(yè)出版社,2007.</p><p> [4] 張毅剛.單片機(jī)原理及應(yīng)用[M].高等教育出版社,2004.</p><p&
106、gt; [5] 馬忠梅.單片機(jī)的C語(yǔ)言應(yīng)用程序設(shè)計(jì)(第三版)[M].北京航空航天大學(xué)出版社,2004.</p><p> [6] 胡漢才.單片機(jī)原理及其接口技術(shù)[M].北京:清華大學(xué)出版社,1995.</p><p> [7] 潘永雄.新編單片機(jī)原理與應(yīng)用[M].西安電子科技大學(xué)出版社,2003.</p><p> [8] 李廣弟,朱越秀,冷祖祁.單片機(jī)基礎(chǔ)
107、(第三版)[M].北京航空航天大學(xué)出版社,2007.</p><p> [9] 戴梅萼,史嘉權(quán).微型計(jì)算機(jī)技術(shù)與應(yīng)用[M].清華大學(xué)出版社,2003.</p><p> [10] 何立民.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,1990.</p><p> [11] 陳明熒.8051單片機(jī)課程設(shè)計(jì)實(shí)訓(xùn)教材[M].北京:清華大學(xué)出版社,2004.
108、</p><p> [12] Villar J.Otero. Taximeter verification with soft computing techniques[J]. Soft computing,2010(2):32-35.</p><p> [13] Gleike Inc. (USA).Taximeters - solutions to combat fraud[J].
109、Technology Development,2000(15):78-83.</p><p> [14] 張靖武.單片機(jī)原理 應(yīng)用與PROTEUS仿真[M]. 電子工業(yè)出版社,2009.</p><p> [15] 楊世品,成林.基于Proteus的單片機(jī)出租車(chē)計(jì)價(jià)器的設(shè)計(jì).微計(jì)算機(jī)信息[J].2007,23(4):12-14.</p><p> [16] 單
110、片機(jī)學(xué)習(xí)網(wǎng),http://www.mcustudy.com/.</p><p> [17] 電子電路網(wǎng),http://down.cndzz.com/.</p><p><b> 附錄1程序源代碼</b></p><p> #include <AT89x51.h></p><p> //#include
111、 <stdio.h></p><p> #include <intrins.h></p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> int xscode[6]={0x3f,0x06,0x5b,0x4f
112、,0x66,0x6d};//顯示存儲(chǔ)區(qū)</p><p> int zxscode[6]={0x1f,0x2f,0x37,0x3b,0x3d,0x3e};//共陰顯示片選碼</p><p> int codetab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共陰極數(shù)碼</p><p> int
113、 i,j,flag;</p><p> uchar sec;</p><p> int kk=0;//路程標(biāo)志位</p><p> int jkk=0;//費(fèi)用</p><p> int jflag=0;//費(fèi)用標(biāo)志位</p><p> int kflag=0;//路程標(biāo)志位</p><p
114、> int zdflag=0;//中斷標(biāo)志位</p><p> int kilo=0;//路程</p><p> int dj=1;//路程單價(jià) </p><p> int djflag=0;//路程單價(jià)biaozhiwei</p><p> sbit key1=P1^0;</p><p> sb
115、it key2=P1^1;</p><p> sbit key3=P1^2;</p><p> sbit key4=P1^3;</p><p> sbit key5=P3^4;</p><p> sbit SDA=P3^0; //IIC引腳</p><p> sbit SCL
116、=P3^1;</p><p> void delay()</p><p><b> {;;}</b></p><p> void delay1 (xms)//延時(shí)程序子程序</p><p><b> {</b></p><p><b> uint i,j;
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電氣工程與自動(dòng)化畢業(yè)論文基于fpga的出租車(chē)計(jì)價(jià)器系統(tǒng)的設(shè)計(jì)
- 出租車(chē)計(jì)價(jià)器設(shè)計(jì)畢業(yè)論文
- 出租車(chē)計(jì)價(jià)器畢業(yè)論文設(shè)計(jì)
- 出租車(chē)計(jì)價(jià)器畢業(yè)論文
- 智能出租車(chē)計(jì)價(jià)器設(shè)計(jì)【畢業(yè)論文】
- 畢業(yè)論文-出租車(chē)計(jì)價(jià)器系統(tǒng)設(shè)計(jì).doc
- 畢業(yè)設(shè)計(jì)----出租車(chē)計(jì)價(jià)器
- 出租車(chē)計(jì)價(jià)器畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--出租車(chē)計(jì)價(jià)器設(shè)計(jì)
- 畢業(yè)論文--基于fpga的出租車(chē)計(jì)價(jià)器的設(shè)計(jì)
- 畢業(yè)論文--基于fpga的出租車(chē)計(jì)價(jià)器的設(shè)計(jì)
- 出租車(chē)計(jì)價(jià)器課程設(shè)計(jì)論文
- 出租車(chē)計(jì)價(jià)器(20170824174838)
- 多功能出租車(chē)計(jì)價(jià)器畢業(yè)設(shè)計(jì)論文
- 帶語(yǔ)音提示的出租車(chē)計(jì)價(jià)器【畢業(yè)論文】
- 出租車(chē)計(jì)價(jià)器的設(shè)計(jì) 畢業(yè)設(shè)計(jì)
- 畢業(yè)論文--基于單片機(jī)的出租車(chē)計(jì)價(jià)器設(shè)計(jì)
- 基于單片機(jī)的出租車(chē)計(jì)價(jià)器設(shè)計(jì)畢業(yè)論文
- 基于單片機(jī)的出租車(chē)計(jì)價(jià)器設(shè)計(jì)【畢業(yè)論文】
- 出租車(chē)計(jì)價(jià)器課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論