單片機(jī)課程設(shè)計(jì)論文-出租車計(jì)價(jià)器_第1頁
單片機(jī)課程設(shè)計(jì)論文-出租車計(jì)價(jià)器_第2頁
單片機(jī)課程設(shè)計(jì)論文-出租車計(jì)價(jià)器_第3頁
單片機(jī)課程設(shè)計(jì)論文-出租車計(jì)價(jià)器_第4頁
單片機(jī)課程設(shè)計(jì)論文-出租車計(jì)價(jià)器_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

PAGE20-河南理工大學(xué)《單片機(jī)應(yīng)用與仿真訓(xùn)練》設(shè)計(jì)報(bào)告基于單片機(jī)的出租車計(jì)價(jià)器的設(shè)計(jì)摘要本設(shè)計(jì)采用AT89S52單片機(jī)為主控器,并用霍爾傳感器檢測(cè)電機(jī)轉(zhuǎn)盤轉(zhuǎn)動(dòng)模擬車速,實(shí)現(xiàn)對(duì)出租車的多功能的計(jì)價(jià)設(shè)計(jì),輸出采用8段數(shù)碼顯示管。本電路設(shè)計(jì)的計(jì)價(jià)器可以實(shí)現(xiàn)要單程,往返和中途等待來調(diào)節(jié)計(jì)費(fèi),并且能夠記錄等待時(shí)間。出租車計(jì)價(jià)是根據(jù)車所行駛的路程以及乘客乘車的方式綜合決定的。出租車行駛總路程可以通過車輪的周長乘車輪旋轉(zhuǎn)圈數(shù)得到。即可計(jì)算得到車輪旋轉(zhuǎn)幾周出租車能行駛一公里的路程。使用霍爾傳感器方便地計(jì)量車輪旋轉(zhuǎn)的圈數(shù)。輸出的脈沖信號(hào)被接入到AT89S52單片機(jī)系統(tǒng)中,通過計(jì)算接收到的脈沖個(gè)數(shù),計(jì)算出當(dāng)前所行駛的路程,并且可以計(jì)算實(shí)時(shí)的速度,在速度低于5公里每小時(shí)是進(jìn)入等待計(jì)費(fèi)。于此同時(shí),根據(jù)不同的收費(fèi)標(biāo)準(zhǔn),通過選擇相應(yīng)的起步價(jià)、單價(jià)等收費(fèi)標(biāo)準(zhǔn)進(jìn)行計(jì)算。通過鍵盤能夠?qū)崿F(xiàn)往返設(shè)置,啟動(dòng)、暫停、停止計(jì)價(jià)器以及切換顯示當(dāng)前的行駛里程和需支付的車費(fèi)。本設(shè)計(jì)硬件電路總體可以分為五個(gè)單元:單片機(jī)最小系統(tǒng)單元,指示燈電路單元,按鍵電路單元,路程時(shí)間與金額顯示單元,轉(zhuǎn)速信號(hào)接收單元。軟件系統(tǒng)可以大致分為五個(gè)大的模塊為:總初始化模塊,按鍵掃描模塊,中斷與定時(shí)模塊,數(shù)據(jù)計(jì)算模塊,數(shù)碼管顯示模塊。其中,鍵盤掃描和數(shù)碼管顯示采用查詢方式,轉(zhuǎn)速信號(hào)接收與等待記時(shí)采用中斷方式。這些軟硬件系統(tǒng)構(gòu)成了最終的設(shè)計(jì)。關(guān)鍵詞 單片機(jī) 霍爾傳感器 出租車計(jì)價(jià)器 摘要 -1-1概述 -2-1.1設(shè)計(jì)目的、意義 -2-1.2AT89S52單片機(jī)功能簡介 -3-2.系統(tǒng)總體方案設(shè)計(jì)及硬件設(shè)計(jì) -4-2.1設(shè)計(jì)要求 -4-2.2設(shè)計(jì)參數(shù) -5-2.3方案的選取 -5-2.4硬件設(shè)計(jì) -5-2.4.1AT89S52單片機(jī)及最小系統(tǒng) -5-2.4.2測(cè)距單元 -7-2.4.3顯示單元 -10-2.4.4鍵盤與指示單元 -10-3軟件設(shè)計(jì) -11-3.1總體流程 -11-3.2計(jì)算模塊 -12-3.3鍵盤掃描 -12-3.4顯示程序 -12-4Proteus軟件仿真 -13-5課程設(shè)計(jì)體會(huì) -14-參考文獻(xiàn) -15-附1:源程序代碼 -16-附2:系統(tǒng)原理圖 -30-1概述1.1設(shè)計(jì)目的、意義租車計(jì)價(jià)器技術(shù)也在不斷進(jìn)步和提高。國內(nèi)出租車計(jì)價(jià)器已經(jīng)經(jīng)歷了4個(gè)階段的發(fā)展。從傳統(tǒng)的全部由機(jī)械元器件組成的機(jī)械式,到半電子式即用電子線路代替部分機(jī)械元器件的出租車計(jì)價(jià)器;再從集成電路式到目前的單片機(jī)系統(tǒng)設(shè)計(jì)的出租車計(jì)價(jià)器。出租車計(jì)價(jià)器計(jì)費(fèi)是否準(zhǔn)確、出租車司機(jī)是否作弊才是乘客最關(guān)心的問題,而計(jì)價(jià)器營運(yùn)數(shù)據(jù)的管理是否方便才是出租車司機(jī)最關(guān)注的。因此怎樣設(shè)計(jì)出一種既能有效防止司機(jī)作弊又能方便司機(jī)的計(jì)價(jià)器尤為重要。因此,本文以單片機(jī)AT89S52為核心設(shè)計(jì)一款多功能出租車計(jì)價(jià)器,該計(jì)價(jià)器能實(shí)現(xiàn)按時(shí)間和里程綜合計(jì)算車價(jià),能顯示時(shí)間、里程、單價(jià)、總車價(jià)等相關(guān)信息顯示。它比市場(chǎng)上的一些計(jì)價(jià)器使用更方便,功能更全,還具有有效防止司機(jī)作弊和系統(tǒng)穩(wěn)定性好的優(yōu)點(diǎn)。本次設(shè)計(jì)的目的在于現(xiàn)在各大中城市出租車行業(yè)都已普及自動(dòng)計(jì)價(jià)器,所以計(jì)價(jià)器技術(shù)的發(fā)展已成定局。采用模擬電路和數(shù)字電路設(shè)計(jì)的計(jì)價(jià)器整體電路的規(guī)模較大,用到的器件多,造成故障率高,難調(diào)試。而采用單片機(jī)進(jìn)行的設(shè)計(jì),相對(duì)來說功能強(qiáng)大,是深化單片機(jī)應(yīng)用的良好途徑,用較少的硬件和適當(dāng)?shù)能浖嗷ヅ浜峡梢院苋菀椎貙?shí)現(xiàn)設(shè)計(jì)要求,且靈活性強(qiáng),可以通過軟件編程來完成更多的附加功能。1.2AT89S52單片機(jī)功能簡介計(jì)算機(jī)系統(tǒng)已明顯地朝巨型化、單片化、網(wǎng)絡(luò)化三個(gè)方向發(fā)展。巨型化發(fā)展的目的在于不斷提高計(jì)算機(jī)的運(yùn)算速度和處理能力,以解決復(fù)雜系統(tǒng)計(jì)算和高速數(shù)據(jù)處理,比如系統(tǒng)仿真和模擬、實(shí)時(shí)運(yùn)算和處理。單片化是把計(jì)算機(jī)系統(tǒng)盡可能集成在一塊半導(dǎo)體芯片上,其目的在于計(jì)算機(jī)微型化和提高系統(tǒng)的可靠性,這種單片計(jì)算簡稱單片機(jī)。單片機(jī)的內(nèi)部硬件結(jié)構(gòu)和指令系統(tǒng)主要是針對(duì)自動(dòng)控制應(yīng)用而設(shè)計(jì)的,所以單片機(jī)又稱微控制器MCU(MicroControllerUnit)。用它可以很容易地將計(jì)算機(jī)嵌入到各種儀器和現(xiàn)場(chǎng)控制設(shè)備中,因此單片機(jī)又叫做嵌入式微控制器(EmbeddedMCU)。單片機(jī)自20世紀(jì)70年代問世以來,以其鮮明的特點(diǎn)得到迅猛發(fā)展,已廣泛應(yīng)用于家用電器、智能玩具、智能儀器儀表、工業(yè)控制、航空航天等領(lǐng)域,經(jīng)過30多年的發(fā)展,性能不斷提高,品種不斷豐富,已經(jīng)形成自動(dòng)控制的一支中堅(jiān)力量。據(jù)統(tǒng)計(jì),我國的單片機(jī)年容量已達(dá)1~3億片,且每年以大約16%的速度增長,但相對(duì)于國際市場(chǎng)我國的占有率還不到1%。這說明單片機(jī)應(yīng)用在我國有著廣闊的前景。對(duì)于從事自動(dòng)控制的技術(shù)人員來講,掌握單片機(jī)原理及其應(yīng)用已經(jīng)成為必不可少的學(xué)習(xí)任務(wù)。單片機(jī)的應(yīng)用十分廣泛,在工業(yè)控制領(lǐng)域、家電產(chǎn)品、智能化儀器儀表、計(jì)算機(jī)外部設(shè)備,特別是機(jī)電一體化產(chǎn)品中,都有重要的用途。其主要的用途可以分為以下方面:顯示:通過單片機(jī)控制發(fā)光二極管或是液晶,顯示特定的圖形和字符。機(jī)電控制:用單片機(jī)控制機(jī)電產(chǎn)品做定時(shí)或定向的動(dòng)作。檢測(cè):通過單片機(jī)和傳感器的聯(lián)合使用,用來檢測(cè)產(chǎn)品或者工況的意外發(fā)生。通信:通過RS-232串行通信或者是USB通信,傳輸數(shù)據(jù)和信號(hào)。科學(xué)計(jì)算:用來實(shí)現(xiàn)簡單的算法。那么單片機(jī)是不是解決上述應(yīng)用的唯一選擇呢?淡然不是!目前,在自動(dòng)控制中,一般有三種選擇,分別是嵌入式微機(jī)、DSP和單片機(jī)。單片機(jī)最明顯的優(yōu)點(diǎn)是價(jià)格便宜,從幾元人民幣到幾十元人民幣。這是因?yàn)檫@類芯片的生產(chǎn)量很大,技術(shù)也很成熟。其次,單片機(jī)的體積也遠(yuǎn)小于其他兩種方案。單片機(jī)本身一般用40引腳封裝,當(dāng)然功能多一些的單片機(jī)也有引腳比較多的,如68引腳,功能少的只有10多個(gè)或20多個(gè)引腳,有的甚至只有8只引腳。當(dāng)然,單片機(jī)無論在速度還是容量方面都小于其他兩種方案,但是在實(shí)際工作中并不是任何需要計(jì)算機(jī)的場(chǎng)合都要求計(jì)算機(jī)有很高的性能。例如,控制電冰箱的控制器就不需要使用嵌入式系統(tǒng),用一片51就可以輕松實(shí)現(xiàn)。所以應(yīng)用的關(guān)鍵是看能否夠用,是否有很好的性能價(jià)格比。51系列的單片機(jī)已經(jīng)面世十多年,依然沒有被淘汰,還在不斷發(fā)展中,這就說明是他有廣闊的應(yīng)用前景。2.系統(tǒng)總體方案設(shè)計(jì)及硬件設(shè)計(jì)2.1設(shè)計(jì)要求(1)能顯示里程,單位為公里,最后一位為小數(shù)位。(2)能顯示金額數(shù),單位為元,最后一位為小數(shù)位。(3)可設(shè)定單程價(jià)格和往返價(jià)格,單程價(jià)格為2元/公里,往返價(jià)格為1.5元/公里。(4)車速<5公里/小時(shí)的時(shí)間累積為總等待時(shí)間,每5分鐘等待時(shí)間相當(dāng)于里程數(shù)增加1公里。(5)起步公里數(shù)為3公里,價(jià)格為5元,若實(shí)際距離大于3公里,按規(guī)則3計(jì)算價(jià)格。(6)按暫停鍵,計(jì)價(jià)器可暫停計(jì)價(jià),按查詢鍵,可顯示總等待時(shí)間。2.2設(shè)計(jì)參數(shù)由于要求沒有給出車輪的相關(guān)參數(shù),所以這里進(jìn)行一些基本參數(shù)的查詢。據(jù)調(diào)查統(tǒng)計(jì),現(xiàn)行出租車輪胎直徑大致有四種,直徑分別為520mm、540mm、560mm和580mm.本作品針對(duì)560mm的出租車進(jìn)行設(shè)計(jì)。它的周長為:1.7584m,57圈行駛100m.2.3方案的選取本設(shè)計(jì)可以分為五個(gè)單元,單片機(jī)最小系統(tǒng)單元,指示燈電路單元,按鍵電路單元,路程時(shí)間與金額顯示單元,轉(zhuǎn)速信號(hào)接收單元,如下圖:2.4硬件設(shè)計(jì)本設(shè)計(jì)的硬件設(shè)計(jì)包括單片機(jī)AT89S52單元、測(cè)距單元、顯示單元(數(shù)碼管顯示金額、等待時(shí)間和里程)、按鍵與指示單元(指示燈對(duì)單雙程切換指示、暫停、等待指示)。2.4.1AT89S52單片機(jī)及最小系統(tǒng)單片機(jī)最小系統(tǒng),或者稱為最小應(yīng)用系統(tǒng),是指用最少的元件組成的單片機(jī)可以工作的系統(tǒng)。對(duì)51系列單片機(jī)來說,最小系統(tǒng)一般應(yīng)該包括:單片機(jī)、晶振電路、復(fù)位電路。AT89S52具有如下特點(diǎn):40個(gè)引腳,4kBytesFlash片內(nèi)程序存儲(chǔ)器,128bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),32個(gè)外部雙向輸入/輸出(I/O)口,5個(gè)中斷優(yōu)先級(jí)2層中斷嵌套,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時(shí)鐘振蕩器。P0口有二個(gè)功能:1、外部擴(kuò)展存儲(chǔ)器時(shí),當(dāng)做數(shù)據(jù)/地址總線。2、不擴(kuò)展時(shí),可做一般的I/O使用,但內(nèi)部無上拉電阻,作為輸入或輸出時(shí)應(yīng)在外部接上拉電阻。P1口只做I/O口使用:其內(nèi)部有上拉電阻。

P2口有兩個(gè)功能:

1、擴(kuò)展外部存儲(chǔ)器時(shí),當(dāng)作地址總線使用。

2、做一般I/O口使用,其內(nèi)部有上拉電阻。

P3口有兩個(gè)功能:除了作為I/O使用外(其內(nèi)部有上拉電阻),還有一些特殊功能,由特殊寄存器來設(shè)置。圖2AT89S52引腳圖圖3AT89S52封裝圖設(shè)計(jì)中用到的單片機(jī)各管腳(圖2)功能以及與其他模塊連接介紹如下:VCC:接+5V電源。VSS:接地。時(shí)鐘引腳:XTAL1和XTAL2兩端接晶振和30PF的電容,構(gòu)成時(shí)鐘電路。它可以使單片機(jī)穩(wěn)定可靠的運(yùn)行。RST:復(fù)位信號(hào)輸入端,高電平有效。當(dāng)在此引腳加兩個(gè)機(jī)器周期的高電平時(shí),就可以完成復(fù)位操作。P1.0:接功能按鍵。P1.1:接切換鍵,表示單雙程切換。P1.2:接查詢(上次金額)鍵。P1.3:接清零鍵。P1.4:接空車指示燈。P1.5:接查詢指示燈。P1.6:接開始計(jì)時(shí)指示燈。P1.7:接雙程指示燈。P3.0:接查詢/確認(rèn)鍵。P0口接數(shù)碼管段選端,P2口接數(shù)碼管位選段。P3.2:接霍爾傳感器的輸出口。P3.3:接存儲(chǔ)器的SCL口。P3.4:接儲(chǔ)存器的SDA口。P3.5:接時(shí)鐘電路DS1302的RST口。P3.6:接DS1302的SCLK口。P3.7:接DS1302的I/O口。復(fù)位電路和晶振電路是AT89S52工作所需的最簡外圍電路。單片機(jī)最小系統(tǒng)電路圖如圖4所示。

圖4單片機(jī)最小系統(tǒng)AT89S52的復(fù)位端是一個(gè)史密特觸發(fā)輸入,高電平有效。RST端若由低電平上升到高電平并持續(xù)2個(gè)周期,系統(tǒng)將實(shí)現(xiàn)一次復(fù)位操作。在復(fù)位電路中,按一下復(fù)位開關(guān)就使在RST端出現(xiàn)一段時(shí)間的高電平,外接12M晶振和兩個(gè)30pF電容組成系統(tǒng)的內(nèi)部時(shí)鐘電路。2.4.2測(cè)距單元本次設(shè)計(jì)我們選取了霍爾傳感器來進(jìn)行里程測(cè)量?;魻柶骷且环N磁傳感器。用它們可以檢測(cè)磁場(chǎng)及其變化,可在各種與磁場(chǎng)有關(guān)的場(chǎng)合中使用?;魻柶骷曰魻栃?yīng)為其工作基礎(chǔ)?;魻柶骷哂性S多優(yōu)點(diǎn),它們的結(jié)構(gòu)牢固,體積小,重量輕,壽命長,安裝方便,功耗小,頻率高,耐震動(dòng),不怕灰塵、油污、水汽及鹽霧等的污染或腐蝕。霍爾器件分為:霍爾元件和霍爾集成電路兩大類,前者是一個(gè)簡單的霍爾片,使用時(shí)常常需要將獲得的霍爾電壓進(jìn)行放大。后者將霍爾片和它的信號(hào)處理電路集成在同一個(gè)芯片上。本次設(shè)計(jì)選取了霍爾集成電路來測(cè)量里程。里程測(cè)量是通過將霍爾傳感器的集成電路安裝在車輪上方的鐵板上,將磁鐵安裝在車輪上,旋轉(zhuǎn)的車輪將磁鐵對(duì)準(zhǔn)集成電路時(shí),霍爾傳感器會(huì)輸出一個(gè)脈沖信號(hào),送到單片機(jī),經(jīng)過單片機(jī)的計(jì)算處理,將行駛的里程送到顯示單元并顯示出來。其原理示意圖如下:圖5傳感器測(cè)距示意圖A44E是一種利用霍爾效應(yīng)做成的半導(dǎo)體集成電路器件,它被設(shè)計(jì)在交變磁場(chǎng)中運(yùn)行,特別是能在低電源電壓和長時(shí)間運(yùn)行溫度范圍可達(dá)到125℃。這種霍爾IC可用作各種類型的傳感器(速度傳感器、位移傳感器、轉(zhuǎn)速傳感器等等),接觸開關(guān)以及相類似的應(yīng)用場(chǎng)合。其工作電壓比較寬(2.5~20V),可運(yùn)行在較大的溫度范圍內(nèi)(-20℃~125℃),其輸出的信號(hào)符合TTL電平標(biāo)準(zhǔn),可以直接接到單片機(jī)的IO端口上,而且其最高檢測(cè)頻率可達(dá)到1MHZ。霍爾傳感器的特性如圖6所示,其中BOP為工作點(diǎn)“開”的磁感應(yīng)強(qiáng)度,BRP為釋放點(diǎn)“關(guān)”的磁感應(yīng)強(qiáng)度。當(dāng)外加的磁感應(yīng)強(qiáng)度超過動(dòng)作點(diǎn)BOP時(shí),傳感器輸出低電平,當(dāng)磁感應(yīng)強(qiáng)度降到動(dòng)作點(diǎn)BOP以下時(shí),傳感器輸出電平不變,一直要降到釋放點(diǎn)BRP時(shí),傳感器才由低電平躍變?yōu)楦唠娖健OP與BRP之間的滯后使開關(guān)動(dòng)作更為可靠。圖6A44E霍爾傳感器和其輸出特性A44E霍爾傳感器有3個(gè)外接口,2個(gè)是電源的正負(fù)極接口,最后一個(gè)是脈沖信號(hào)輸出口,只要將霍爾傳感器的信號(hào)輸出端接到單片機(jī)的端口上便可以實(shí)現(xiàn)距離檢測(cè)。其中,單片機(jī)的P3.2(INT0)引腳作為信號(hào)的輸入端,采用外部中斷0進(jìn)行計(jì)數(shù)。車輪每轉(zhuǎn)一圈,霍爾傳感器就產(chǎn)生一個(gè)脈沖信號(hào),根據(jù)霍爾效應(yīng)原理,當(dāng)霍爾片處在磁場(chǎng)中時(shí),霍爾傳感器的輸出端輸出低電平。當(dāng)車輪轉(zhuǎn)動(dòng)一圈時(shí)小磁鐵提供一個(gè)磁場(chǎng),則霍爾傳感器輸出一次低電平完成一次數(shù)據(jù)采集,從而產(chǎn)生信號(hào)?;魻杺鞲衅鳈z測(cè)并輸出信號(hào)到單片機(jī)的INT0或INT1計(jì)算脈沖輸入端,引起單片機(jī)的中斷,對(duì)脈沖計(jì)數(shù),當(dāng)計(jì)數(shù)達(dá)到特定的次數(shù)時(shí),里程就會(huì)增加,單片機(jī)對(duì)里程進(jìn)行計(jì)算后,通過接口電路將計(jì)算好的結(jié)果傳送到數(shù)碼管并顯示出來。2.4.3顯示單元本設(shè)計(jì)采用兩個(gè)四個(gè)一組的共陰八位數(shù)碼管來顯示,一組顯示金額,另一組顯示路程與等待時(shí)間配合按鍵來切換。數(shù)據(jù)端都用單片機(jī)P1口,片選端分別接在P2口的高四位和低四位。它們的連線如下:2.4.4鍵盤與指示單元本設(shè)計(jì)按照功能要求設(shè)置了四個(gè)按鍵和四個(gè)LED燈。(1)按鍵說明如下:key0系統(tǒng)清零,用來將整個(gè)計(jì)費(fèi)系統(tǒng)的顯示清零;key1顯示切換,用來切換路程與等待時(shí)間的顯示;key2單程雙程,用來設(shè)置是單程還是往返計(jì)費(fèi);key3系統(tǒng)暫停,用來將整個(gè)計(jì)費(fèi)系統(tǒng)暫停;(2)指示燈說明如下:led1指示單程還是雙程,當(dāng)選擇雙程計(jì)費(fèi)時(shí)亮;led2指示系統(tǒng)暫停與否,當(dāng)選擇暫停時(shí)亮;led3指示是否進(jìn)入等待計(jì)費(fèi),計(jì)入等待計(jì)費(fèi)時(shí)亮;led4指示顯示的是路程還是等待時(shí)間,顯示等待時(shí)間時(shí)亮。3軟件設(shè)計(jì)3.1總體流程本設(shè)計(jì)中,軟件系統(tǒng)可以大致分為五個(gè)大的模塊為:總初始化模塊,按鍵掃描模塊,中斷與定時(shí)模塊,數(shù)據(jù)計(jì)算模塊,數(shù)碼管顯示模塊。其中,鍵盤掃描和數(shù)碼管顯示采用查詢方式,轉(zhuǎn)速信號(hào)接收與等待記時(shí)采用中斷方式。3.2計(jì)算模塊計(jì)算程序根據(jù)里程數(shù)分別進(jìn)入不同的計(jì)算公式。如果里程大于3公里,則執(zhí)行公式:總金額=起步價(jià)+(里程-3)*單價(jià)+等待時(shí)間*等待單價(jià);否則,執(zhí)行公式:總金額=起步價(jià)+等待時(shí)間*等待單價(jià)。對(duì)于里程數(shù)采用外部中斷零來記錄,車輪沒轉(zhuǎn)一周,霍爾傳感器發(fā)一個(gè)脈沖然后進(jìn)入中斷子程序,對(duì)相應(yīng)的變量進(jìn)行更新。對(duì)于速度的判斷及等待時(shí)間的記錄采用定時(shí)器零中斷,設(shè)定10ms一個(gè)中斷,然后判斷車速,小于5公里/小時(shí)時(shí),則開始記錄等待時(shí)間。3.3鍵盤掃描鍵盤掃描才用查詢方式,當(dāng)有按鍵按下時(shí)就對(duì)相應(yīng)的標(biāo)志進(jìn)行取反,或調(diào)用其他子函數(shù),在消抖過程中,這里將數(shù)碼管顯示程序潛入以保證顯示的穩(wěn)定。3.4顯示程序顯示程序利用主函數(shù)內(nèi)的循環(huán),實(shí)現(xiàn)動(dòng)態(tài)掃描顯示,同時(shí)根據(jù)數(shù)碼管余輝和人眼暫留現(xiàn)象,即可實(shí)現(xiàn)顯示。本設(shè)計(jì)采用兩個(gè)四個(gè)一組的八位數(shù)碼管來顯示,一組顯示金額,另一組顯示路程與等待時(shí)間配合按鍵來切換。數(shù)據(jù)端都用單片機(jī)P1口,片選端分別接在P2口的高四位和低四位。4Proteus軟件仿真本設(shè)計(jì)需要用KeiluVision3對(duì)C51程序進(jìn)行編譯,生成“.hex”文件。在Proteus軟件中畫出仿真電路(如圖19),把KeiluVision3編譯后生成的“.hex”導(dǎo)入到單片機(jī)中,按“運(yùn)行仿真”鍵進(jìn)行仿真如圖顯示的狀態(tài)設(shè)置為:單程,車速大于5km/h,當(dāng)路程等于7.2km時(shí)的顯示情況。5課程設(shè)計(jì)體會(huì)在本次單片機(jī)課程設(shè)計(jì)中,我們選擇的題目是基于51單片機(jī)的出租車計(jì)價(jià)器的設(shè)計(jì)。老師統(tǒng)一配發(fā)的主控芯片是AT89S52單片機(jī),要實(shí)現(xiàn)的計(jì)價(jià)器的基本功能是以按鍵為輸入控制方式,實(shí)現(xiàn)對(duì)出租車運(yùn)行過程中狀態(tài)信息的測(cè)量,主要包括等待時(shí)間、金額和里程等,并將其顯示出來。經(jīng)一個(gè)星期的努力我們完成了所有的基本功能,在完成整個(gè)課程設(shè)計(jì)的過程中,我們遇到了許多困難,但在解決困難的同時(shí),也收獲了許多,現(xiàn)在就將在整個(gè)課程設(shè)計(jì)過程中的幾點(diǎn)收獲與體會(huì)總結(jié)如下:1、提高了單片機(jī)的C語言編程能力。雖然單片機(jī)原理這門課程是在上學(xué)期修的,之后的這段時(shí)間也沒有使用單片機(jī)實(shí)際的做一些設(shè)計(jì),因?yàn)楫?dāng)時(shí)是用匯編語言學(xué)習(xí)的單片機(jī),對(duì)C語言的編程方法不是很熟悉。因此,選題后我們使用郭天祥的《新概念51單片機(jī)設(shè)計(jì)》開始練習(xí)51單片機(jī)的C程序設(shè)計(jì),一開始我們總想一下子把整個(gè)程序?qū)懲辏S著更深入的學(xué)習(xí)后來發(fā)現(xiàn)這種想法是不對(duì)的),因而使自己的自信心很受挫。在這里我們得到的經(jīng)驗(yàn)是使程序模塊化:將一個(gè)大的程序分為幾個(gè)主要模塊,分別完成,最后再組合在一起調(diào)試成功。2、使我們對(duì)硬件電路的分析及設(shè)計(jì)能力有了不小的進(jìn)步。本設(shè)計(jì)的硬件設(shè)計(jì)包括單片機(jī)AT89S52單元、測(cè)距單元、顯示單元、按鍵與指示單元。通過上網(wǎng)查找相關(guān)資料,雖然找到了比較合適的電路圖,但因?yàn)閷?duì)其原理理解的不是特別透徹,在實(shí)際的焊接過程中遇到了不少的困難,比如沒有共地、缺少濾波電容、電源壓降太大、缺少下拉電阻,焊接中焊點(diǎn)虛焊和短路等。在這里我們得到的經(jīng)驗(yàn)是:拿到一個(gè)電路圖之后要對(duì)其進(jìn)行深入的分析,了解其原理,并修改其錯(cuò)誤,同時(shí)在焊接的過程中一定要細(xì)心、耐心,只有不停的分析電路,查找故障,久而久之我們才能成為一個(gè)很好的設(shè)計(jì)者。3、增強(qiáng)了我們的團(tuán)隊(duì)意識(shí)。在整個(gè)設(shè)計(jì)的過程中,我們之間發(fā)生了不少的爭執(zhí),在設(shè)計(jì)硬件電路時(shí),我們對(duì)電路圖的選擇持有不同意見,在焊接過程中我們對(duì)整體布局布線也有過爭議,在程序編寫過程中對(duì)算法的選取,流程的設(shè)計(jì)也各持己見。由于我們各自的過分,堅(jiān)持導(dǎo)致了一些不必要的時(shí)間浪費(fèi)。在這里我們得到的經(jīng)驗(yàn)是:在合作的過程中要善于聆聽對(duì)方的一間,要發(fā)現(xiàn)別人的長處,彌補(bǔ)自己的不足。一個(gè)團(tuán)隊(duì)只有能夠相互取長補(bǔ)短,才能夠在愉快的合作中更好得完成任務(wù)。4、不要過于追求實(shí)物的產(chǎn)品化。在做課程設(shè)計(jì)的過程中,由于我們一開始考慮了許多復(fù)雜細(xì)小的情況,導(dǎo)致我們不知道從哪里開始入手,產(chǎn)生了許多不必要的麻煩。我們得到的經(jīng)驗(yàn)是:遇到問題要抓主要矛盾,解決主要矛盾(實(shí)現(xiàn)基本功能)之后,再去考慮其他的細(xì)節(jié)問題。遇到問題不要只想,試著動(dòng)手做就有思路了。參考文獻(xiàn)郭天祥.新概念51單片機(jī)C語言教程.電子工業(yè)出版社,2021余發(fā)山,王福忠.單片機(jī)原理及應(yīng)用技術(shù).中國礦業(yè)大學(xué)出版社,2021.6侯玉寶,陳忠平,李成群.基于Proteus的51系列單片機(jī)設(shè)計(jì)與仿真.電子工業(yè)出版社,2021李泉溪.單片機(jī)原理與應(yīng)用實(shí)例仿真.北京航空航天大學(xué)出版社,2021譚浩強(qiáng).C程序設(shè)計(jì).清華大學(xué)出版社,1991樓然苗,胡佳文,李光飛等.單片機(jī)實(shí)驗(yàn)與課程設(shè)計(jì).浙江大學(xué)出版社,2021.10王曉敏.傳感器檢測(cè)技術(shù)及應(yīng)用.北京大學(xué)出版社,2021吳紅星.電機(jī)驅(qū)動(dòng)與控制專用集成電路及應(yīng)用.中國電力出版社,2021附1:源程序代碼//"里程和價(jià)格顯示程序"#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedint#definesomenop{_nop_();_nop_();_nop_();_nop_();_nop_();}#defineSlaveAddrW0xA0 //"寫命令"#defineSlaveAddrR0xA1 //"讀命令"http://"IIC總線引腳定義"sbitSDA=P1^0;//"數(shù)據(jù)線"http://sbitSCL=P1^1;//"時(shí)鐘線"http:////"語音芯片定義"sbitSS=P1^3;//"片選"sbitMOSI=P1^4;//"數(shù)據(jù)輸入"sbitMISO=P1^5;//"數(shù)據(jù)輸出"sbitSCLK=P1^6;//"ISD4004時(shí)鐘"sbitls138A=P2^0;//"138譯碼器的3個(gè)位選,A為低位"sbitls138B=P2^1;sbitls138C=P2^2;sbitkds=P2^3;//"單雙程控制開關(guān)"sbitkks=P2^4;//"開始控制開關(guān)"sbitkcx=P2^5;//"查詢控制開關(guān)"sbitkzt=P2^6;//"暫??刂崎_關(guān)"sbitkql=P2^7; //"清零控制開關(guān)"sbitkjy=P1^2;//"上次記憶值查詢"http://"變量定義"ucharcodeduanma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//"數(shù)碼管段碼"uintcount,num0,k,zhuan,z,su,n;floatgong,quan,jin,deng;ucharqiane,baie,shie,gee;//"金額的千,百,十,個(gè)"ucharqianc,baic,shic,gec;//"路程的千,百,十,個(gè)"http://"函數(shù)聲明"voiddisplay(floatcheng,floate,bitbiao);//"24C02函數(shù)聲明"voidIIC_Start(void);voidIIC_Stop(void);voidIIC_Ack(bitackbit);voidIIC_SendByte(unsignedcharbyt);bitIIC_WaitAck(void);unsignedcharIIC_RecByte(void);voidWrite(ucharadd,uchardat);uintRead(ucharadd);/////////////"24c02操作函數(shù)"http:////////////////"總線啟動(dòng)條件"voidIIC_Start(void){ SDA=1; SCL=1; somenop; SDA=0; somenop; SCL=0; }//"總線停止條件"voidIIC_Stop(void){ SDA=0; SCL=1; somenop; SDA=1;}//"應(yīng)答位控制"voidIIC_Ack(bitackbit){ if(ackbit) { SDA=0; } else { SDA=1; } somenop; SCL=1; somenop; SCL=0; SDA=1; somenop;}//"等待應(yīng)答"bitIIC_WaitAck(void){ SDA=1; somenop; SCL=1; somenop; if(SDA) { SCL=0; IIC_Stop(); return0; } else { SCL=0; return1; }}//"通過I2C總線發(fā)送數(shù)據(jù)"voidIIC_SendByte(unsignedcharbyt){ unsignedchari; for(i=0;i<8;i++) { if(byt&0x80) { SDA=1; } else { SDA=0; } somenop; SCL=1; byt<<=1; somenop; SCL=0; }}//"從I2C總線上接收數(shù)據(jù)"unsignedcharIIC_RecByte(void){ unsignedcharda; unsignedchari; for(i=0;i<8;i++) { SCL=1; somenop; da<<=1; if(SDA) da|=0x01; SCL=0; somenop; } returnda;}voidWrite(ucharadd,uchardat){ IIC_Start();IIC_SendByte(0xa0);IIC_WaitAck();IIC_SendByte(add);//"數(shù)據(jù)地址"IIC_WaitAck();IIC_SendByte(dat);//"寫入數(shù)據(jù)"IIC_WaitAck();IIC_Stop();}uintRead(ucharadd){uchardat;IIC_Start();IIC_SendByte(0xa0);IIC_WaitAck();IIC_SendByte(add);//"數(shù)據(jù)地址"IIC_WaitAck();IIC_Start();IIC_SendByte(0xa1);IIC_WaitAck();dat=IIC_RecByte();IIC_Ack(0);//"無應(yīng)答"IIC_Stop();returndat;}///////////////////"語音操作函數(shù)"http://////////////////////////////voiddelay(unsignedinttime)//"us延時(shí)" { while(time!=0) { time--; }}voiddelayms(unsignedinttime)//"ms延時(shí)" { TMOD=0x11; for(time;time>0;time--) { TH1=0xfc; TL1=0x18; TR1=1; while(TF1!=1) {;} TF1=0; TR1=0; }}voidisd_send(unsignedcharisdx)//"spi串行發(fā)送子程序,8位數(shù)據(jù)" { unsignedcharisx_counter; SS=0;//"ss=0,打開spi通信端" SCLK=0; for(isx_counter=0;isx_counter<8;isx_counter++)//"先發(fā)低位再發(fā)高位,依次發(fā)送。" { if((isdx&0x01)==1) MOSI=1; else MOSI=0; isdx=isdx>>1; SCLK=1;//"上升沿鎖存數(shù)據(jù)" delay(2); SCLK=0;//"下降沿將數(shù)據(jù)讀走" delay(2); }}voidisd_stop()//"stop指令(停止當(dāng)前操作)" { delay(10); isd_send(0x30); SS=1; //"ss=1,關(guān)閉spi通信端" delayms(50);}voidisd_powerup()//"發(fā)送上電指令" { delay(10); isd_send(0x20); SS=1; //"ss=1,關(guān)閉spi通信端" delayms(50);} voidisd_stopwrdn()//"發(fā)送掉電指令" { delay(10); isd_send(0x10); SS=1; //"ss=1,關(guān)閉spi通信端" delayms(50);}voidisd_play()//"發(fā)送play指令,從當(dāng)前地址開始放音,IAB=1"{ isd_send(0xf0); SS=1; //"ss=1,關(guān)閉spi通信端"}voidisd_rec()//"發(fā)送rec指令,從當(dāng)前地址開始錄音,IAB=1"{ isd_send(0xb0); SS=1; //"ss=1,關(guān)閉spi通信端"}voidisd_setplay(unsignedcharadl,unsignedcharadh)//"發(fā)送放音指令,從指定地址開始放音"{ delayms(1); isd_send(adl);//"發(fā)送放音起始地址低位" delay(2); isd_send(adh);//"發(fā)送放音起始地址高位" delay(2); isd_send(0xe0);//"發(fā)送放音指令字節(jié),IAB=0" SS=1; //"ss=1,關(guān)閉spi通信端"}/*voidisd_setrec(unsignedcharadl,unsignedcharadh)//"發(fā)送錄音指令,從指定地址開始錄音"{ delayms(1); isd_send(adl);//"發(fā)送錄音起始地址低位" delay(2); isd_send(adh);//"發(fā)送錄音起始地址高位" delay(2); isd_send(0xa0);//"發(fā)送錄音指令字節(jié),IAB=0" SS=1; //"ss=1,關(guān)閉spi通信端"}*///////////"其它操作函數(shù)"http:///////////////////voiddelaynms(uintnms){uinti,j;for(i=0;i<nms;i++) for(j=110;j>0;j--);}voidinit(){quan=0;jin=0; deng=0; n=0;z=0; su=0;gong=0; num0=0; count=0; zhuan=0; k=0; kds=1; IT0=1; TMOD=0x11; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; EX0=1;}voidmain(){ uintwait,money; uintxun=0; ucharflag=0; display(0,0,0); if(kjy==0) //"按下為查看上次記憶值" { delaynms(10); if(kjy==0) { wait=Read(0x00);//"讀取24C02中上一次的等待時(shí)間、金額數(shù)據(jù)" delaynms(10); money=Read(0x02); delaynms(10); for(xun=200;xun>0;xun--) display(wait,money,1); } }if(kks==0) { delaynms(10); if(kks==0) { init(); isd_powerup(); isd_setplay(0x00,0x00); isd_play();//"發(fā)送放音指令" if(kds==0)//"開始計(jì)價(jià)后,顯示2秒鐘單價(jià)" { for(xun=200;xun>0;xun--) display(1.5,jin,0); } else { for(xun=200;xun>0;xun--) display(2.0,jin,0); } while(1) { gong=k+quan/500; //"公里=公里數(shù)+圈數(shù)除以500,500轉(zhuǎn)為一公里" if(kds==0)//"按下為雙程"下是雙程 { if(gong<=3) jin=5; else jin=gong*1.5; display(gong,jin,0);//"顯示公里,金額" } if(kds==1) { if(gong<=3) jin=5; else jin=gong*2; display(gong,jin,0);//"顯示公里,金額" } if(kcx==0) //"按下為查詢" { delaynms(10); if(kcx==0) { deng=n*2+su/60;//"等待時(shí)間=2分鐘乘以其個(gè)數(shù)+不到120秒的分鐘數(shù)" for(xun=200;xun>0;xun--) display(deng,jin,1); } } if(kzt==0) //"按下為暫停" { delaynms(10); if(kzt==0) { EX0=0; ET0=0; isd_powerup(); isd_setplay(0x00,0x01); isd_play();//"發(fā)送放音指令" while(1) { display(gong,jin,0);//"顯示公里,金額" if(kql==0) delaynms(10); if(kql==0) { deng=n*2+su/60; Write(0x00,deng); delaynms(10); Write(0x02,jin); delaynms(10); init(); flag=1; break; } if(kcx==0) //"按下為查詢" { delaynms(10); if(kcx==0) { deng=n*2+su/60;//"等待時(shí)間=2分鐘乘以其個(gè)數(shù)+不到120秒的分鐘數(shù)" for(xun=200;xun>0;xun--) display(deng,jin,1); } }} if(flag==1) { flag=0; break; } } } } }}}voidzhongduan0()interrupt0{count++;//"總的圈數(shù),可能會(huì)溢出"quan++;//"輪子兩米一圈"if(quan==500) {quan=0; k++;//"k是路程的千米整數(shù)位" }}voidtime0()interrupt1{EX0=0;TH0=(65536-50000)/256;TL0=(65536-50000)%256; num0++; if(num0==20)//"一秒時(shí)間到" { num0=0; //"一秒后與一秒前的計(jì)數(shù)值之差給轉(zhuǎn)速zhuan" if(count<z) zhuan=count+65535-z; //"count溢出情況下" else zhuan=count-z; z=count; if(zhuan<=2) //"差值小于二為等待時(shí)間" {su++; if(su>=120)//"su為秒的累加,累加到2分鐘,清零,表示一公里的k自加一,同時(shí)表示2分鐘的n加一" {su=0; k++; n++; } } } EX0=1;}voiddisplay(floatcheng,floate,bitbiao)//"若biao=1,則前四位數(shù)碼管的第三位不加小數(shù)點(diǎn)"{if(biao==0) cheng=cheng*10;e=e*10; qianc=(int)cheng/1000;shic=(int)cheng%100/10; baic=(int)cheng%1000/100; gec=(int)cheng%10; qiane=(int)e/1000; shie=(int)e%100/10; baie=(int)e%1000/100; gee=(int)e%10; ls138A=0; ls138B=0; ls138C=0; P0=duanma[qianc]; delaynms(2); ls138A=1; ls138B=0; ls138C=0; P0=duanma[baic]; delaynms(2); ls138A=0; ls138B=1; ls138C=0; if(biao==1) P0=duanma[shic]; else P0=duanma[shic]|0x80; delaynms(2); ls138A=1; ls138B=1; ls138C=0; P0=duanma[gec]; delaynms(2); ls138A=0; ls138B=0; ls138C=1; P0=duanma[qiane]; delaynms(2); ls138A=1; ls138B=0; ls138C=1; P0=duanma[baie]; delaynms(2); ls138A=0; ls138B=1; ls138C=1; P0=duanma[shie]|0x80; delaynms(2); ls138A=1; ls138B=1; ls138C=1; P0=duanma[gee]; delaynms(2); }附2:系統(tǒng)原理圖

本科生學(xué)位論文論多媒體技術(shù)在教學(xué)中的應(yīng)用姓名:指導(dǎo)教師:專業(yè):教育管理專業(yè)年級(jí):完成時(shí)間:

論多媒體技術(shù)在教學(xué)中的應(yīng)用[摘要]多媒體不再是傳統(tǒng)的輔助教學(xué)工具,而是為構(gòu)造一種新的網(wǎng)絡(luò)教學(xué)環(huán)境創(chuàng)造了條件,特別是對(duì)于教育社會(huì)化來說,多媒體網(wǎng)絡(luò)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論