




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
單片機課程設(shè)計出租車計價器1-/NUMPAGES3河南理工大學《單片機應(yīng)用與仿真訓(xùn)練》設(shè)計報告基于單片機的出租車計價器的設(shè)計單片機課程設(shè)計出租車計價器全文共32頁,當前為第1頁。單片機課程設(shè)計出租車計價器全文共32頁,當前為第1頁。摘要本設(shè)計采用AT89S52單片機為主控器,并用霍爾傳感器檢測電機轉(zhuǎn)盤轉(zhuǎn)動模擬車速,實現(xiàn)對出租車的多功能的計價設(shè)計,輸出采用8段數(shù)碼顯示管。本電路設(shè)計的計價器可以實現(xiàn)要單程,往返和中途等待來調(diào)節(jié)計費,并且能夠記錄等待時間。出租車計價是根據(jù)車所行駛的路程以與乘客乘車的方式綜合決定的。出租車行駛總路程可以通過車輪的周長乘車輪旋轉(zhuǎn)圈數(shù)得到。即可計算得到車輪旋轉(zhuǎn)幾周出租車能行駛一公里的路程。使用霍爾傳感器方便地計量車輪旋轉(zhuǎn)的圈數(shù)。輸出的脈沖信號被接入到AT89S52單片機系統(tǒng)中,通過計算接收到的脈沖個數(shù),計算出當前所行駛的路程,并且可以計算實時的速度,在速度低于5公里每小時是進入等待計費。于此同時,根據(jù)不同的收費標準,通過選擇相應(yīng)的起步價、單價等收費標準進行計算。通過鍵盤能夠?qū)崿F(xiàn)往返設(shè)置,啟動、暫停、停止計價器以與切換顯示當前的行駛里程和需支付的車費。本設(shè)計硬件電路總體可以分為五個單元:單片機最小系統(tǒng)單元,指示燈電路單元,按鍵電路單元,路程時間與金額顯示單元,轉(zhuǎn)速信號接收單元。軟件系統(tǒng)可以大致分為五個大的模塊為:總初始化模塊,按鍵掃描模塊,中斷與定時模塊,數(shù)據(jù)計算模塊,數(shù)碼管顯示模塊。其中,鍵盤掃描和數(shù)碼管顯示采用查詢方式,轉(zhuǎn)速信號接收與等待記時采用中斷方式。這些軟硬件系統(tǒng)構(gòu)成了最終的設(shè)計。關(guān)鍵詞 單片機 霍爾傳感器 出租車計價器 單片機課程設(shè)計出租車計價器全文共32頁,當前為第2頁。單片機課程設(shè)計出租車計價器全文共32頁,當前為第2頁。摘要-1-1概述-2-1.1設(shè)計目的、意義-2-1.2AT89S52單片機功能簡介-3-2.系統(tǒng)總體方案設(shè)計與硬件設(shè)計-4-2.1設(shè)計要求-4-2.2設(shè)計參數(shù)-5-2.3方案的選取-5-2.4硬件設(shè)計-5-2.4.1AT89S52單片機與最小系統(tǒng)-5-2.4.2測距單元-7-2.4.3顯示單元-10-2.4.4鍵盤與指示單元-10-3軟件設(shè)計-11-3.1總體流程-11-3.2計算模塊-12-3.3鍵盤掃描-12-3.4顯示程序-12-4Proteus軟件仿真-13-5課程設(shè)計體會-14-參考文獻-15-附1:源程序代碼-16-附2:系統(tǒng)原理圖-30-單片機課程設(shè)計出租車計價器全文共32頁,當前為第3頁。單片機課程設(shè)計出租車計價器全文共32頁,當前為第3頁。1概述1.1設(shè)計目的、意義租車計價器技術(shù)也在不斷進步和提高。國出租車計價器已經(jīng)經(jīng)歷了4個階段的發(fā)展。從傳統(tǒng)的全部由機械元器件組成的機械式,到半電子式即用電子線路代替部分機械元器件的出租車計價器;再從集成電路式到目前的單片機系統(tǒng)設(shè)計的出租車計價器。出租車計價器計費是否準確、出租車司機是否作弊才是乘客最關(guān)心的問題,而計價器營運數(shù)據(jù)的管理是否方便才是出租車司機最關(guān)注的。因此怎樣設(shè)計出一種既能有效防止司機作弊又能方便司機的計價器尤為重要。因此,本文以單片機AT89S52為核心設(shè)計一款多功能出租車計價器,該計價器能實現(xiàn)按時間和里程綜合計算車價,能顯示時間、里程、單價、總車價等相關(guān)信息顯示。它比市場上的一些計價器使用更方便,功能更全,還具有有效防止司機作弊和系統(tǒng)穩(wěn)定性好的優(yōu)點。本次設(shè)計的目的在于現(xiàn)在各大中城市出租車行業(yè)都已普與自動計價器,所以計價器技術(shù)的發(fā)展已成定局。采用模擬電路和數(shù)字電路設(shè)計的計價器整體電路的規(guī)模較大,用到的器件多,造成故障率高,難調(diào)試。而采用單片機進行的設(shè)計,相對來說功能強大,是深化單片機應(yīng)用的良好途徑,用較少的硬件和適當?shù)能浖嗷ヅ浜峡梢院苋菀椎貙崿F(xiàn)設(shè)計要求,且靈活性強,可以通過軟件編程來完成更多的附加功能。1.2AT89S52單片機功能簡介單片機課程設(shè)計出租車計價器全文共32頁,當前為第4頁。計算機系統(tǒng)已明顯地朝巨型化、單片化、網(wǎng)絡(luò)化三個方向發(fā)展。巨型化發(fā)展的目的在于不斷提高計算機的運算速度和處理能力,以解決復(fù)雜系統(tǒng)計算和高速數(shù)據(jù)處理,比如系統(tǒng)仿真和模擬、實時運算和處理。單片化是把計算機系統(tǒng)盡可能集成在一塊半導(dǎo)體芯片上,其目的在于計算機微型化和提高系統(tǒng)的可靠性,這種單片計算簡稱單片機。單片機的部硬件結(jié)構(gòu)和指令系統(tǒng)主要是針對自動控制應(yīng)用而設(shè)計的,所以單片機又稱微控制器MCU(MicroControllerUnit)。用它可以很容易地將計算機嵌入到各種儀器和現(xiàn)場控制設(shè)備中,因此單片機又叫做嵌入式微控制器(EmbeddedMCU)。單片機自20世紀70年代問世以來,以其鮮明的特點得到迅猛發(fā)展,已廣泛應(yīng)用于家用電器、智能玩具、智能儀器儀表、工業(yè)控制、航空航天等領(lǐng)域,經(jīng)過30多年的發(fā)展,性能不斷提高,品種不斷豐富,已經(jīng)形成自動控制的一支中堅力量。據(jù)統(tǒng)計,我國的單片機年容量已達1~3億片,且每年以大約16%的速度增長,但相對于國際市場我國的占有率還不到1%。這說明單片機應(yīng)用在我國有著廣闊的前景。對于從事自動控制的技術(shù)人員來講,掌握單片機原理與其應(yīng)用已經(jīng)成為必不可少的學習任務(wù)。單片機課程設(shè)計出租車計價器全文共32頁,當前為第4頁。單片機的應(yīng)用十分廣泛,在工業(yè)控制領(lǐng)域、家電產(chǎn)品、智能化儀器儀表、計算機外部設(shè)備,特別是機電一體化產(chǎn)品中,都有重要的用途。其主要的用途可以分為以下方面:顯示:通過單片機控制發(fā)光二極管或是液晶,顯示特定的圖形和字符。機電控制:用單片機控制機電產(chǎn)品做定時或定向的動作。檢測:通過單片機和傳感器的聯(lián)合使用,用來檢測產(chǎn)品或者工況的意外發(fā)生。通信:通過RS-232串行通信或者是USB通信,傳輸數(shù)據(jù)和信號??茖W計算:用來實現(xiàn)簡單的算法。那么單片機是不是解決上述應(yīng)用的唯一選擇呢?淡然不是!目前,在自動控制中,一般有三種選擇,分別是嵌入式微機、DSP和單片機。單片機最明顯的優(yōu)點是價格便宜,從幾元人民幣到幾十元人民幣。這是因為這類芯片的生產(chǎn)量很大,技術(shù)也很成熟。其次,單片機的體積也遠小于其他兩種方案。單片機本身一般用40引腳封裝,當然功能多一些的單片機也有引腳比較多的,如68引腳,功能少的只有10多個或20多個引腳,有的甚至只有8只引腳。當然,單片機無論在速度還是容量方面都小于其他兩種方案,但是在實際工作中并不是任何需要計算機的場合都要求計算機有很高的性能。例如,控制電冰箱的控制器就不需要使用嵌入式系統(tǒng),用一片51就可以輕松實現(xiàn)。所以應(yīng)用的關(guān)鍵是看能否夠用,是否有很好的性能價格比。51系列的單片機已經(jīng)面世十多年,依然沒有被淘汰,還在不斷發(fā)展中,這就說明是他有廣闊的應(yīng)用前景。單片機課程設(shè)計出租車計價器全文共32頁,當前為第5頁。單片機課程設(shè)計出租車計價器全文共32頁,當前為第5頁。2.系統(tǒng)總體方案設(shè)計與硬件設(shè)計2.1設(shè)計要求(1)能顯示里程,單位為公里,最后一位為小數(shù)位。(2)能顯示金額數(shù),單位為元,最后一位為小數(shù)位。(3)可設(shè)定單程價格和往返價格,單程價格為2元/公里,往返價格為1.5元/公里。(4)車速<5公里/小時的時間累積為總等待時間,每5分鐘等待時間相當于里程數(shù)增加1公里。(5)起步公里數(shù)為3公里,價格為5元,若實際距離大于3公里,按規(guī)則3計算價格。(6)按暫停鍵,計價器可暫停計價,按查詢鍵,可顯示總等待時間。2.2設(shè)計參數(shù)由于要求沒有給出車輪的相關(guān)參數(shù),所以這里進行一些基本參數(shù)的查詢。據(jù)調(diào)查統(tǒng)計,現(xiàn)行出租車輪胎直徑大致有四種,直徑分別為520mm、540mm、560mm和580mm.本作品針對560mm的出租車進行設(shè)計。它的周長為:1.7584m,57圈行駛100m.2.3方案的選取本設(shè)計可以分為五個單元,單片機最小系統(tǒng)單元,指示燈電路單元,按鍵電路單元,路程時間與金額顯示單元,轉(zhuǎn)速信號接收單元,如下圖:單片機課程設(shè)計出租車計價器全文共32頁,當前為第6頁。單片機課程設(shè)計出租車計價器全文共32頁,當前為第6頁。2.4硬件設(shè)計本設(shè)計的硬件設(shè)計包括單片機AT89S52單元、測距單元、顯示單元(數(shù)碼管顯示金額、等待時間和里程)、按鍵與指示單元(指示燈對單雙程切換指示、暫停、等待指示)。2.4.1AT89S52單片機與最小系統(tǒng)單片機最小系統(tǒng),或者稱為最小應(yīng)用系統(tǒng),是指用最少的元件組成的單片機可以工作的系統(tǒng)。對51系列單片機來說,最小系統(tǒng)一般應(yīng)該包括:單片機、晶振電路、復(fù)位電路。AT89S52具有如下特點:40個引腳,4kBytesFlash片程序存儲器,128bytes的隨機存取數(shù)據(jù)存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優(yōu)先級2層中斷嵌套,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,看門狗(WDT)電路,片時鐘振蕩器。P0口有二個功能:1、外部擴展存儲器時,當做數(shù)據(jù)/地址總線。2、不擴展時,可做一般的I/O使用,但部無上拉電阻,作為輸入或輸出時應(yīng)在外部接上拉電阻。P1口只做I/O口使用:其部有上拉電阻。
P2口有兩個功能:
1、擴展外部存儲器時,當作地址總線使用。
2、做一般I/O口使用,其部有上拉電阻。
單片機課程設(shè)計出租車計價器全文共32頁,當前為第7頁。P3口有兩個功能:除了作為I/O使用外(其部有上拉電阻),還有一些特殊功能,由特殊寄存器來設(shè)置。單片機課程設(shè)計出租車計價器全文共32頁,當前為第7頁。圖2AT89S52引腳圖圖3AT89S52封裝圖設(shè)計中用到的單片機各管腳(圖2)功能以與與其他模塊連接介紹如下:VCC:接+5V電源。VSS:接地。時鐘引腳:XTAL1和XTAL2兩端接晶振和30PF的電容,構(gòu)成時鐘電路。它可以使單片機穩(wěn)定可靠的運行。RST:復(fù)位信號輸入端,高電平有效。當在此引腳加兩個機器周期的高電平時,就可以完成復(fù)位操作。P1.0:接功能按鍵。P1.1:接切換鍵,表示單雙程切換。P1.2:接查詢(上次金額)鍵。P1.3:接清零鍵。P1.4:接空車指示燈。P1.5:接查詢指示燈。P1.6:接開始計時指示燈。P1.7:接雙程指示燈。P3.0:接查詢/確認鍵。P0口接數(shù)碼管段選端,P2口接數(shù)碼管位選段。P3.2:接霍爾傳感器的輸出口。P3.3:接存儲器的SCL口。P3.4:接儲存器的SDA口。單片機課程設(shè)計出租車計價器全文共32頁,當前為第8頁。P3.5:接時鐘電路DS1302的RST口。單片機課程設(shè)計出租車計價器全文共32頁,當前為第8頁。P3.6:接DS1302的SCLK口。P3.7:接DS1302的I/O口。復(fù)位電路和晶振電路是AT89S52工作所需的最簡外圍電路。單片機最小系統(tǒng)電路圖如圖4所示。
圖4單片機最小系統(tǒng)AT89S52的復(fù)位端是一個史密特觸發(fā)輸入,高電平有效。RST端若由低電平上升到高電平并持續(xù)2個周期,系統(tǒng)將實現(xiàn)一次復(fù)位操作。在復(fù)位電路中,按一下復(fù)位開關(guān)就使在RST端出現(xiàn)一段時間的高電平,外接12M晶振和兩個30pF電容組成系統(tǒng)的部時鐘電路。2.4.2測距單元本次設(shè)計我們選取了霍爾傳感器來進行里程測量?;魻柶骷且环N磁傳感器。用它們可以檢測磁場與其變化,可在各種與磁場有關(guān)的場合中使用。霍爾器件以霍爾效應(yīng)為其工作基礎(chǔ)?;魻柶骷哂性S多優(yōu)點,它們的結(jié)構(gòu)牢固,體積小,重量輕,壽命長,安裝方便,功耗小,頻率高,耐震動,不怕灰塵、油污、水汽與鹽霧等的污染或腐蝕。單片機課程設(shè)計出租車計價器全文共32頁,當前為第9頁?;魻柶骷譃椋夯魻栐突魻柤呻娐穬纱箢?,前者是一個簡單的霍爾片,使用時常常需要將獲得的霍爾電壓進行放大。后者將霍爾片和它的信號處理電路集成在同一個芯片上。本次設(shè)計選取了霍爾集成電路來測量里程。單片機課程設(shè)計出租車計價器全文共32頁,當前為第9頁。里程測量是通過將霍爾傳感器的集成電路安裝在車輪上方的鐵板上,將磁鐵安裝在車輪上,旋轉(zhuǎn)的車輪將磁鐵對準集成電路時,霍爾傳感器會輸出一個脈沖信號,送到單片機,經(jīng)過單片機的計算處理,將行駛的里程送到顯示單元并顯示出來。其原理示意圖如下:圖5傳感器測距示意圖A44E是一種利用霍爾效應(yīng)做成的半導(dǎo)體集成電路器件,它被設(shè)計在交變磁場中運行,特別是能在低電源電壓和長時間運行溫度圍可達到125℃。這種霍爾IC可用作各種類型的傳感器(速度傳感器、位移傳感器、轉(zhuǎn)速傳感器等等),接觸開關(guān)以與相類似的應(yīng)用場合。其工作電壓比較寬(2.5~20V),可運行在較大的溫度圍(-20℃~125℃),其輸出的信號符合TTL電平標準,可以直接接到單片機的IO端口上,而且其最高檢測頻率可達到1MHZ。單片機課程設(shè)計出租車計價器全文共32頁,當前為第10頁。霍爾傳感器的特性如圖6所示,其中BOP為工作點“開”的磁感應(yīng)強度,BRP為釋放點“關(guān)”的磁感應(yīng)強度。當外加的磁感應(yīng)強度超過動作點BOP時,傳感器輸出低電平,當磁感應(yīng)強度降到動作點BOP以下時,傳感器輸出電平不變,一直要降到釋放點BRP時,傳感器才由低電平躍變?yōu)楦唠娖健OP與BRP之間的滯后使開關(guān)動作更為可靠。單片機課程設(shè)計出租車計價器全文共32頁,當前為第10頁。圖6A44E霍爾傳感器和其輸出特性A44E霍爾傳感器有3個外接口,2個是電源的正負極接口,最后一個是脈沖信號輸出口,只要將霍爾傳感器的信號輸出端接到單片機的端口上便可以實現(xiàn)距離檢測。其中,單片機的P3.2(INT0)引腳作為信號的輸入端,采用外部中斷0進行計數(shù)。車輪每轉(zhuǎn)一圈,霍爾傳感器就產(chǎn)生一個脈沖信號,根據(jù)霍爾效應(yīng)原理,當霍爾片處在磁場中時,霍爾傳感器的輸出端輸出低電平。當車輪轉(zhuǎn)動一圈時小磁鐵提供一個磁場,則霍爾傳感器輸出一次低電平完成一次數(shù)據(jù)采集,從而產(chǎn)生信號?;魻杺鞲衅鳈z測并輸出信號到單片機的INT0或INT1計算脈沖輸入端,引起單片機的中斷,對脈沖計數(shù),當計數(shù)達到特定的次數(shù)時,里程就會增加,單片機對里程進行計算后,通過接口電路將計算好的結(jié)果傳送到數(shù)碼管并顯示出來。2.4.3顯示單元本設(shè)計采用兩個四個一組的共陰八位數(shù)碼管來顯示,一組顯示金額,另一組顯示路程與等待時間配合按鍵來切換。單片機課程設(shè)計出租車計價器全文共32頁,當前為第11頁。數(shù)據(jù)端都用單片機P1口,片選端分別接在P2口的高四位和低四位。它們的連線如下:單片機課程設(shè)計出租車計價器全文共32頁,當前為第11頁。2.4.4鍵盤與指示單元本設(shè)計按照功能要求設(shè)置了四個按鍵和四個LED燈。(1)按鍵說明如下:key0系統(tǒng)清零,用來將整個計費系統(tǒng)的顯示清零;key1顯示切換,用來切換路程與等待時間的顯示;key2單程雙程,用來設(shè)置是單程還是往返計費;key3系統(tǒng)暫停,用來將整個計費系統(tǒng)暫停;(2)指示燈說明如下:led1指示單程還是雙程,當選擇雙程計費時亮;led2指示系統(tǒng)暫停與否,當選擇暫停時亮;led3指示是否進入等待計費,計入等待計費時亮;led4指示顯示的是路程還是等待時間,顯示等待時間時亮。單片機課程設(shè)計出租車計價器全文共32頁,當前為第12頁。單片機課程設(shè)計出租車計價器全文共32頁,當前為第12頁。3軟件設(shè)計3.1總體流程本設(shè)計中,軟件系統(tǒng)可以大致分為五個大的模塊為:總初始化模塊,按鍵掃描模塊,中斷與定時模塊,數(shù)據(jù)計算模塊,數(shù)碼管顯示模塊。其中,鍵盤掃描和數(shù)碼管顯示采用查詢方式,轉(zhuǎn)速信號接收與等待記時采用中斷方式。3.2計算模塊計算程序根據(jù)里程數(shù)分別進入不同的計算公式。如果里程大于3公里,則執(zhí)行公式:總金額=起步價+(里程-3)*單價+等待時間*等待單價;否則,執(zhí)行公式:總金額=起步價+等待時間*等待單價。單片機課程設(shè)計出租車計價器全文共32頁,當前為第13頁。對于里程數(shù)采用外部中斷零來記錄,車輪沒轉(zhuǎn)一周,霍爾傳感器發(fā)一個脈沖然后進入中斷子程序,對相應(yīng)的變量進行更新。單片機課程設(shè)計出租車計價器全文共32頁,當前為第13頁。對于速度的判斷與等待時間的記錄采用定時器零中斷,設(shè)定10ms一個中斷,然后判斷車速,小于5公里/小時時,則開始記錄等待時間。3.3鍵盤掃描鍵盤掃描才用查詢方式,當有按鍵按下時就對相應(yīng)的標志進行取反,或調(diào)用其他子函數(shù),在消抖過程中,這里將數(shù)碼管顯示程序潛入以保證顯示的穩(wěn)定。3.4顯示程序顯示程序利用主函數(shù)的循環(huán),實現(xiàn)動態(tài)掃描顯示,同時根據(jù)數(shù)碼管余輝和人眼暫留現(xiàn)象,即可實現(xiàn)顯示。本設(shè)計采用兩個四個一組的八位數(shù)碼管來顯示,一組顯示金額,另一組顯示路程與等待時間配合按鍵來切換。數(shù)據(jù)端都用單片機P1口,片選端分別接在P2口的高四位和低四位。單片機課程設(shè)計出租車計價器全文共32頁,當前為第14頁。單片機課程設(shè)計出租車計價器全文共32頁,當前為第14頁。4Proteus軟件仿真本設(shè)計需要用KeiluVision3對C51程序進行編譯,生成“.hex”文件。在Proteus軟件中畫出仿真電路(如圖19),把KeiluVision3編譯后生成的“.hex”導(dǎo)入到單片機中,按“運行仿真”鍵進行仿真如圖顯示的狀態(tài)設(shè)置為:單程,車速大于5km/h,當路程等于7.2km時的顯示情況。5課程設(shè)計體會在本次單片機課程設(shè)計中,我們選擇的題目是基于51單片機的出租車計價器的設(shè)計。老師統(tǒng)一配發(fā)的主控芯片是AT89S52單片機,要實現(xiàn)的計價器的基本功能是以按鍵為輸入控制方式,實現(xiàn)對出租車運行過程中狀態(tài)信息的測量,主要包括等待時間、金額和里程等,并將其顯示出來。經(jīng)一個星期的努力我們完成了所有的基本功能,在完成整個課程設(shè)計的過程中,我們遇到了許多困難,但在解決困難的同時,也收獲了許多,現(xiàn)在就將在整個課程設(shè)計過程中的幾點收獲與體會總結(jié)如下:單片機課程設(shè)計出租車計價器全文共32頁,當前為第15頁。1、提高了單片機的C語言編程能力。單片機課程設(shè)計出租車計價器全文共32頁,當前為第15頁。雖然單片機原理這門課程是在上學期修的,之后的這段時間也沒有使用單片機實際的做一些設(shè)計,因為當時是用匯編語言學習的單片機,對C語言的編程方法不是很熟悉。因此,選題后我們使用郭天祥的《新概念51單片機設(shè)計》開始練習51單片機的C程序設(shè)計,一開始我們總想一下子把整個程序?qū)懲辏S著更深入的學習后來發(fā)現(xiàn)這種想法是不對的),因而使自己的自信心很受挫。在這里我們得到的經(jīng)驗是使程序模塊化:將一個大的程序分為幾個主要模塊,分別完成,最后再組合在一起調(diào)試成功。2、使我們對硬件電路的分析與設(shè)計能力有了不小的進步。本設(shè)計的硬件設(shè)計包括單片機AT89S52單元、測距單元、顯示單元、按鍵與指示單元。通過上網(wǎng)查找相關(guān)資料,雖然找到了比較合適的電路圖,但因為對其原理理解的不是特別透徹,在實際的焊接過程中遇到了不少的困難,比如沒有共地、缺少濾波電容、電源壓降太大、缺少下拉電阻,焊接中焊點虛焊和短路等。在這里我們得到的經(jīng)驗是:拿到一個電路圖之后要對其進行深入的分析,了解其原理,并修改其錯誤,同時在焊接的過程中一定要細心、耐心,只有不停的分析電路,查找故障,久而久之我們才能成為一個很好的設(shè)計者。3、增強了我們的團隊意識。在整個設(shè)計的過程中,我們之間發(fā)生了不少的爭執(zhí),在設(shè)計硬件電路時,我們對電路圖的選擇持有不同意見,在焊接過程中我們對整體布局布線也有過爭議,在程序編寫過程中對算法的選取,流程的設(shè)計也各持己見。由于我們各自的過分,堅持導(dǎo)致了一些不必要的時間浪費。在這里我們得到的經(jīng)驗是:在合作的過程中要善于聆聽對方的一間,要發(fā)現(xiàn)別人的長處,彌補自己的不足。一個團隊只有能夠相互取長補短,才能夠在愉快的合作中更好得完成任務(wù)。4、不要過于追物的產(chǎn)品化。在做課程設(shè)計的過程中,由于我們一開始考慮了許多復(fù)雜細小的情況,導(dǎo)致我們不知道從哪里開始入手,產(chǎn)生了許多不必要的麻煩。我們得到的經(jīng)驗是:遇到問題要抓主要矛盾,解決主要矛盾(實現(xiàn)基本功能)之后,再去考慮其他的細節(jié)問題。遇到問題不要只想,試著動手做就有思路了。單片機課程設(shè)計出租車計價器全文共32頁,當前為第16頁。單片機課程設(shè)計出租車計價器全文共32頁,當前為第16頁。參考文獻郭天祥.新概念51單片機C語言教程.電子工業(yè),2008余發(fā)山,王福忠.單片機原理與應(yīng)用技術(shù).中國礦業(yè)大學,2008.6侯玉寶,忠平,成群.基于Proteus的51系列單片機設(shè)計與仿真.電子工業(yè),2008泉溪.單片機原理與應(yīng)用實例仿真.航空航天大學,2009譚浩強.C程序設(shè)計.清華大學,1991樓然苗,胡佳文,光飛等.單片機實驗與課程設(shè)計.浙江大學,2010.10王曉敏.傳感器檢測技術(shù)與應(yīng)用.大學,2010吳紅星.電機驅(qū)動與控制專用集成電路與應(yīng)用.中國電力,2006附1:源程序代碼單片機課程設(shè)計出租車計價器全文共32頁,當前為第17頁。//"里程和價格顯示程序"單片機課程設(shè)計出租車計價器全文共32頁,當前為第17頁。#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;//"時鐘線"http:////"語音芯片定義"sbitSS=P1^3;//"片選"sbitMOSI=P1^4;//"數(shù)據(jù)輸入"sbitMISO=P1^5;//"數(shù)據(jù)輸出"sbitSCLK=P1^6;//"ISD4004時鐘"sbitls138A=P2^0;//"138譯碼器的3個位選,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;//"金額的千,百,十,個"ucharqianc,baic,shic,gec;//"路程的千,百,十,個"http://"函數(shù)聲明"單片機課程設(shè)計出租車計價器全文共32頁,當前為第18頁。voiddisplay(floatcheng,floate,bitbiao);單片機課程設(shè)計出租車計價器全文共32頁,當前為第18頁。//"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:////////////////"總線啟動條件"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;單片機課程設(shè)計出租車計價器全文共32頁,當前為第19頁。 }單片機課程設(shè)計出租車計價器全文共32頁,當前為第19頁。 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++)單片機課程設(shè)計出租車計價器全文共32頁,當前為第20頁。 {單片機課程設(shè)計出租車計價器全文共32頁,當前為第20頁。 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();單片機課程設(shè)計出租車計價器全文共32頁,當前為第21頁。IIC_SendByte(0xa0);單片機課程設(shè)計出租車計價器全文共32頁,當前為第21頁。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延時" { while(time!=0) { time--; }}voiddelayms(unsignedinttime)//"ms延時" { TMOD=0x11; for(time;time>0;time--) { TH1=0xfc;單片機課程設(shè)計出租車計價器全文共32頁,當前為第22頁。 TL1=0x18;單片機課程設(shè)計出租車計價器全文共32頁,當前為第22頁。 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指令(停止當前操作)" { delay(10); isd_send(0x30); SS=1; //"ss=1,關(guān)閉spi通信端" delayms(50);}voidisd_powerup()//"發(fā)送上電指令" { delay(10); isd_send(0x20);單片機課程設(shè)計出租車計價器全文共32頁,當前為第23頁。 SS=1; //"ss=1,關(guān)閉spi通信端"單片機課程設(shè)計出租車計價器全文共32頁,當前為第23頁。 delayms(50);} voidisd_stopwrdn()//"發(fā)送掉電指令" { delay(10); isd_send(0x10); SS=1; //"ss=1,關(guān)閉spi通信端" delayms(50);}voidisd_play()//"發(fā)送play指令,從當前地址開始放音,IAB=1"{ isd_send(0xf0); SS=1; //"ss=1,關(guān)閉spi通信端"}voidisd_rec()//"發(fā)送rec指令,從當前地址開始錄音,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ā)送錄音起始地址低位"單片機課程設(shè)計出租車計價器全文共32頁,當前為第24頁。 delay(2);單片機課程設(shè)計出租車計價器全文共32頁,當前為第24頁。 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()單片機課程設(shè)計出租車計價器全文共32頁,當前為第25頁。{ 單片機課程設(shè)計出租車計價器全文共32頁,當前為第25頁。 uintwait,money; uintxun=0; ucharflag=0; display(0,0,0); if(kjy==0) //"按下為查看上次記憶值" { delaynms(10); if(kjy==0) { wait=Read(0x00);//"讀取24C02中上一次的等待時間、金額數(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)//"開始計價后,顯示2秒鐘單價" { for(xun=200;xun>0;xun--) display(1.5,jin,0); } else { for(xun=200;xun>0;xun--) display(2.0,jin,0); }單片機課程設(shè)計出租車計價器全文共32頁,當前為第26頁。 while(1)單片機課程設(shè)計出租車計價器全文共32頁,當前為第26頁。 { 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;//"等待時間=2分鐘乘以其個數(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();單片機課程設(shè)計出租車計價器全文共32頁,當前為第27頁。 isd_setplay(0x00,0x01);單片機課程設(shè)計出租車計價器全文共32頁,當前為第27頁。 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;//"等待時間=2分鐘乘以其個數(shù)+不到120秒的分鐘數(shù)"for(xun=200;xun>0;xun--) display(deng,jin,1); } }} if(flag==1) { flag=0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 5 對韻歌 教學設(shè)計-2024-2025學年語文一年級上冊統(tǒng)編版
- 照明景觀燈飾項目可行性研究報告
- 功能性速溶茶系列產(chǎn)品項目申請備案可行性研究報告
- 2024年教育OMO模式行業(yè)發(fā)展監(jiān)測及投資戰(zhàn)略規(guī)劃研究報告
- 2025年精密軸套類零件項目投資可行性研究分析報告
- 2025年高效節(jié)能燃油汽鍋爐項目投資可行性研究分析報告-20241226-174433
- 2024-2025學年廣西普通高中學業(yè)水平選擇性考試高三上學期第二次調(diào)研考試化學試卷
- 2025年度財產(chǎn)分割自愿離婚協(xié)議書模板在線生成服務(wù)
- 2023-2029年中國金槍魚油行業(yè)市場深度分析及投資策略咨詢報告
- 16 麻雀教學設(shè)計 2024-2025學年統(tǒng)編版語文四年級上冊
- 2024內(nèi)蒙古中考數(shù)學二輪專題復(fù)習 二次函數(shù)與幾何綜合題 類型二 面積問題(課件)
- 太平洋保險計劃書模板
- 2024年廣東省中考生物+地理試卷(含答案)
- 2024年高考時事政治考試題庫(134題)
- 有關(guān)煤礦生產(chǎn)新技術(shù)、新工藝、新設(shè)備和新材料及其安全技術(shù)要求課件
- DZ∕T 0201-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 鎢、錫、汞、銻(正式版)
- 安全生產(chǎn)責任制考試試卷及答案
- 產(chǎn)科臨床診療指南
- 教育學原理-第八章-教學-適用于項賢明主編《教育學原理》(馬工程)
- 學校安全教育教師培訓(xùn)
- 大學生寒假回訪母校社會實踐報告
評論
0/150
提交評論