51單片機出租車計價器課程設(shè)計_第1頁
51單片機出租車計價器課程設(shè)計_第2頁
51單片機出租車計價器課程設(shè)計_第3頁
51單片機出租車計價器課程設(shè)計_第4頁
51單片機出租車計價器課程設(shè)計_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第一章 出租車計價系統(tǒng)的設(shè)計要求與設(shè)計方案1.1 出租車計價器設(shè)計要求設(shè)計一個出租車自動計費器,計費包括起步價、行車里程計費、等待時間計費三部分,用七段數(shù)碼管顯示總金額,單價,運行里程,起步價為6元,超過6元,每一公里增加1元或2元,等待時間單價為每30秒鐘1元,計費功能:費用的計算是按行駛里程收費。設(shè)起步價為6元。1、當總金額<6元時,按起價計算費用2、當總金額>6元時,每公里按1元或2元計費3、等待累計時間>30s時,按1元/30s計費4、S1為啟動按鈕、S2轉(zhuǎn)換單價按鈕、S3復(fù)位按鈕。顯示功能:1、顯示行駛里程:用三位數(shù)字顯示,顯示方式為“XX.X”,單位為km。計程范

2、圍0-99.9km,精確到0.1km。2、顯示單價:用兩位數(shù)字顯示,顯示方式為“X.X”,單位為元。3、顯示總費用:用三位數(shù)字顯示,顯示方式為“XX.X”,單位為元。計價范圍0-99.9元,精確到0.1元。1.2 系統(tǒng)主要功能本出租車自動計費,上電后顯示最初的起步價,里程計費單價。同時具有運行,復(fù)位,轉(zhuǎn)換等狀態(tài),可以切換白天與晚上不同計費單價,可以實現(xiàn)每等待30s收1元功能。出租車顯示行駛的總費用,里程,單價。1.3 方案論證與比較方案一:采用數(shù)字電子技術(shù),利用555定時芯片構(gòu)成多諧振蕩器,或采用外圍的晶振電路作為時鐘脈沖信號,采用計數(shù)芯片對脈沖盡心脈沖的計數(shù)和分頻,最后通過譯碼電路對數(shù)據(jù)進行

3、譯碼,將譯碼所得的數(shù)據(jù)送給數(shù)碼管顯示,一下是該方案的流程框圖,方案一如圖1-1所示:圖1-1方案一方案二:采用EDA技術(shù),根據(jù)層次化設(shè)計理論,該設(shè)計問題自頂向下可分為分頻模塊,控制模塊 計量模塊、譯碼和動態(tài)掃描顯示模塊,其系統(tǒng)框圖如圖1-2所示:圖1-2方案二方案三:采用MCU技術(shù),通過單片機作為主控器,采用外部晶振作為時鐘脈沖,通過按鍵可以方便調(diào)節(jié),以下是方案三的系統(tǒng)流程圖,本方案主要是必須對于數(shù)字電路比較熟悉,成本又不高。方案圖如圖1-3所示:圖1-3方案三方案總結(jié):通過各個方案的比較,本次采用方案三,不但控制簡單,而且成本低廉,設(shè)計電路簡單。第二章 出租車計價系統(tǒng)的硬件設(shè)計2.1 AT8

4、9C51單片機介紹AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器的低電壓,高性能CMOS8位微處理器,俗稱單片機。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的MCS-51指令集合輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89S51是一種高效微控器,為很多嵌入式控制系統(tǒng)提供了一種靈活性且廉價的方案單片機各引腳功能說明:VCC:供電電壓。GND:接地。P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八

5、位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行。校驗時,P0輸出原碼,此時P0外部必須被拉高。P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣

6、故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89S52的一些特殊功能口,P3口同時為閃爍編程和編程校驗接收一些控制信號。RST:復(fù)位輸入。當振蕩

7、器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。/EA/VPP:當/EA保持低電平時,則在此期間選擇外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。2.2 里程計算、計價單元的設(shè)計里程計算是通過安裝在車輪上的霍爾傳感器A44E檢測到的信號

8、,送到單片機,經(jīng)處理計算,送給顯示單元的。其原理如圖2-1所示 圖2-1由于A44E 屬于開關(guān)型的霍爾器件,其工作電壓范圍比較寬(4.518V),其輸出的信號符合TTL 電平標準,可以直接接到單片機的I/O 端口上,而且其最高檢測頻率可達到1MHZ。如圖2-2,A44E 集成霍耳開關(guān)由穩(wěn)壓器A、霍耳電勢發(fā)生器(即硅霍耳片)B、差分放大器C、施密特觸發(fā)器D 和OC 門輸出E 五個基本部分組成。 圖2-2 路程測量電路在輸入端輸入電壓CC V ,經(jīng)穩(wěn)壓器穩(wěn)壓后加在霍耳電勢發(fā)生器的兩端,根據(jù)霍耳效應(yīng)原理,當霍耳片處在磁場中時,在垂直于磁場的方向通以電流,則與這二者相垂直的方向上將會產(chǎn)生霍耳電勢差H

9、V 輸出,該H V 信號經(jīng)放大器放大后送至施密特觸發(fā)器整形,使其成為方波輸送到OC 門輸出。當施加的磁場達到工作點(即OP B )時,觸發(fā)器輸出高電壓(相對于地電位),使三極管導(dǎo)通,此時OC 門輸出端輸出低電壓,通常稱這種狀態(tài)為開。當施加的磁場達到釋放點(即rP B )時,觸發(fā)器輸出低電壓,三極管截止,使OC 門輸出高電壓,這種狀態(tài)為關(guān)。這樣兩次電壓變換,使霍耳開關(guān)完成了一次開關(guān)動作。我們選擇了P3.5 口作為信號的輸入端,內(nèi)部采用計數(shù)的方式,車輪每轉(zhuǎn)一圈(我們設(shè)車輪的周長是10米),霍爾開關(guān)就檢測并輸出信號,引起單片機對脈沖計數(shù),當計數(shù)達到10次時,也就是0.1 公里,單片機就控制將金額自動

10、的加增加,其計算公式:當前單價× 公里數(shù)=金額。2.3 數(shù)據(jù)顯示單元的設(shè)計由于設(shè)計要求有單價(2 位)、路程(3位)、總金額(3位)顯示輸出,我們采用8個7段數(shù)碼管動態(tài)顯示。如圖2-3:圖2-3 數(shù)據(jù)顯示硬件電路圖2.4 按鍵單元的設(shè)計電路共采用了四個按鍵,S1、S2、S3、S4,其功能分別是:S1 啟動計價開關(guān)、S2 白天/晚上轉(zhuǎn)換開關(guān)、S3 數(shù)據(jù)復(fù)位清零開關(guān)、 S4閉合表示出租車正常運行,計價器也正常計價;若打開S4則表示出租車在暫停,轉(zhuǎn)入判斷是否收費程序,閉合超過30秒,開始計價。如圖2-4: 圖2-4 按鍵單元電路圖2.5 振蕩電路單片機內(nèi)部有一個高增益、反相放大器,其輸入端

11、為芯片引腳XTAL1,其輸出端為引腳XTAL2。通過這兩個引腳在芯片外并接石英晶體振蕩器和兩只電容(電容和一般取33pF)。這樣就構(gòu)成一個穩(wěn)定的自激振蕩器。 振蕩電路脈沖經(jīng)過二分頻后作為系統(tǒng)的時鐘信號,再在二分頻的基礎(chǔ)上三分頻產(chǎn)生ALE信號,此時得到的信號時機器周期信號。振蕩電路如圖2-5所示: 圖2-5 振蕩電路2.6 復(fù)位電路復(fù)位操作有兩種基本形式:一種是上電復(fù)位,另一種是按鍵復(fù)位。按鍵復(fù)位具有上電復(fù)位功能外,若要復(fù)位,只要按圖中的RESET鍵,電源VCC經(jīng)電阻R1、R2分壓,在RESET端產(chǎn)生一個復(fù)位高電平。上電復(fù)位電路要求接通電源后,通過外部電容充電來實現(xiàn)單片機自動復(fù)位操作。上電瞬間R

12、ESET引腳獲得高電平,隨著電容的充電,RERST引腳的高電平將逐漸下降。RERST引腳的高電平只要能保持足夠的時間(2個機器周期),單片機就可以進行復(fù)位操作。按鍵復(fù)位電路圖如圖2-6所示。 圖2-6 復(fù)位電路總電路圖第三章 出租車計價系統(tǒng)的軟件設(shè)計3.1主程序流程圖記描述 由于用到了外部中斷0,所以,按中斷系統(tǒng)的編程結(jié)構(gòu)在0000H處放置一條長跳轉(zhuǎn)指令LJMP START跳轉(zhuǎn)到主程序入口,在外部中斷0的中斷入口地址0003H處放置一條長跳轉(zhuǎn)指令LJMP EXT0跳轉(zhuǎn)到外部中斷0服務(wù)程序處。主程序進行程序中用到的一些存儲單元的初始化,T0,T1的初始化。首先,進行存儲器單元初始化,將71H-7

13、9H單元賦值。然后進行定時器的設(shè)置。設(shè)置T1的工作方式為模式2,計數(shù)狀態(tài),自啟動。T0的工作方式,模式1,定時狀態(tài),自啟動,對輸入的脈沖進行計數(shù),給T0、T1賦初值。之后調(diào)用計數(shù)脈沖子程序,及等待子程序,數(shù)碼管動態(tài)顯示子程序,最后進入鍵盤掃描子程序進行掃描。主程序不斷進行調(diào)用數(shù)碼管顯示子程序及鍵盤掃描子程序循環(huán)操作,等待中斷。如圖3-1: 圖3-1 主程序流程圖3.2計費子程序流程圖72H存儲總金額小數(shù)位,73H存儲器總金額個位,78H存儲器總金額十位,77H存儲單價元。將72H中值放入A中,再將A與77H相加,即小數(shù)位與單價相加,結(jié)果存入A,再進行十進制調(diào)整,將結(jié)果存于R6,將高四位與低四位

14、交換并屏蔽高四位,保留低四位與個位相加得到總金額個位。若總金額超過10則清零,并且總金額十位加1。將R6中數(shù)值取出,屏蔽高四位,輸出總金額小數(shù)位。如圖3-2: 圖3-2 計費子程序流程圖3.3 等待是否收費子程序在出租車的計價系統(tǒng)中,出租車在等待的時候也要計價,本設(shè)計體現(xiàn)了這點。程序判斷了出租車是否停止,若停止30秒以上是,開始計價。55H中賦初值20,56H中賦初值10,總共30秒延時。超過30秒時,調(diào)用計費子程序。如圖3-3 圖3-3 等待是否收費子程序流程圖3.4 按鍵子程序流程圖 圖3-4 等待收費子程序流程圖3.5 外部中斷0流程圖 圖3-5 外部中斷0子程序流程圖程序ORG 000

15、0H LJMP MAIN ORG 0003H ;外部中斷入口地址 LJMP REST ORG 030H MAIN: MOV 71H,#00H ;脈沖計數(shù)每10個脈沖里程數(shù)加0.1顯示緩沖單元 MOV 72H,#00H ;存儲總金額小數(shù)位 MOV 73H,#00H ;存儲總金額個位 MOV 74H,#00H ;存儲里程數(shù)小數(shù)位 MOV 75H,#00H ;存儲里程數(shù)個位 MOV 76H,#00H ;存儲單價角位 MOV 77H,#01H ;存儲單價元位 MOV 78H,#00H ;存儲總金額十位 MOV 79H,#00H ;存儲里程數(shù)十位 MOV 55H,#20 ;給定等待初值20*50ms M

16、OV 56H,#10 ;10秒等待時間初值 SETB EA ;開總中斷 SETB EX0 ;開外部中斷0 MOV TCON,#04H ;外部中斷0低電平 MOV TMOD,#61H ;設(shè)置使用定時器1,模式2,計數(shù)狀態(tài),自啟動,定時器0,模式1,定時狀態(tài),自啟動 MOV TL0,#0B0H ;50ms初值設(shè)定C350H MOV TH0,#03CH MOV TL1,#0FFH ;設(shè)置定時器低八位初值為FFH,即有一脈沖輸入就溢出 MOV TH1,#0FFH ;設(shè)置定時器高八位初值為FFH,用于重裝低八位START: LCALL PULSE ;調(diào)用計數(shù)脈沖子程序 LCALL WAIT ;調(diào)用等待子

17、程序 LCALL DISPLAY;調(diào)用顯示程序進行顯示 LCALL KEY ;調(diào)用鍵盤掃描程序 SJMP START ;返回START處繼續(xù)循環(huán)執(zhí)行REST: PUSH ACC MOV 71H,#00H ;脈沖計數(shù)每10個脈沖里程數(shù)加1顯示緩存單元 MOV 72H,#00H ;存儲總金額個位 MOV 73H,#00H ;存儲總金額十位 MOV 74H,#00H ;存儲里程數(shù)個位 MOV 75H,#00H ;存儲里程數(shù)十位 MOV 78H,#00H ;存儲總金額百位 MOV 79H,#00H ;存儲里程數(shù)百位 MOV 55H,#20 MOV 56H,#10 POP ACC RETIPULSE:

18、JBC TF1,PTO1 ;TF1為1則轉(zhuǎn)PT01 LJMP PSOUTPTO1: MOV 55H,#20 MOV 56H,#10 INC 71H MOV R1,71H CJNE R1,#0AH,PSOUT ;脈沖調(diào)整,改變立即數(shù)即可;里程數(shù)個位74H,R1不等于0AH則轉(zhuǎn)PSOUT MOV 71H,#00H INC 74H LCALL MONEY MOV R1,74H CJNE R1,#0AH,PSOUT ;里程數(shù)十位75H MOV 74H,#00H INC 75H MOV R1,75H CJNE R1,#0AH,PSOUT MOV 75H,#00H INC 79H MOV R1,79H C

19、JNE R1,#0AH,PSOUT MOV 79H,#00HPSOUT:RETWAIT: JBC TF0,PTO2 LJMP CHU0PTO2:MOV TL0,#0B0H MOV TH0,#03CH DJNZ 55H,CHU0 ;不為0則轉(zhuǎn) MOV 55H,#20 DJNZ 56H,CHU0 MOV 56H,#10 ;30秒等待計時 INC 72H MOV A,72H LCALL MONEY1CHU0:RETMONEY: MOV A,72H ADD A,77HMONEY1:DA A MOV R6,A SWAP A ANL A,#0FH ADD A,73H MOV 73H,A CJNE A,#0

20、AH,MONEY2 MOV 73H,#00H INC 78H MOV A,78H CJNE A,#0AH,MONEY2 MOV 78H,#00HMONEY2:MOV A,R6 ANL A,#0FH MOV 72H,A RETDISPLAY:MOV A,78H CJNE A,#00H,L2 MOV A,73H CJNE A,#06H,L1 L1:JNC L2 MOV A,#82H ADD A,#80H MOV P0,A MOV P2,#02H LCALL DELAY MOV P2,#00H MOV A,#0C0H MOV P0,A MOV P2,#01H LCALL DELAY MOV P2,#

21、00H MOV A,#0C0H MOV P0,A MOV P2,#40H LCALL DELAY MOV P2,#00H LJMP L3 L2:MOV A,73H MOV DPTR,#TAB MOVC A,A+DPTR ADD A,#80H MOV P0,A MOV P2,#02H LCALL DELAY MOV P2,#00H MOV A,72H MOVC A,A+DPTR MOV P0,A MOV P2,#01H LCALL DELAY MOV P2,#00H MOV A,78H MOVC A,A+DPTR MOV P0,A MOV P2,#40H LCALL DELAY MOV P2,#00H L3:MOV A,75H MOV DPTR,#TAB MOVC A,A+DPTR ADD A,#80H MOV P0,A MOV P2,#08H LCALL DELAY MOV P2,#00H MOV A,74H MOVC A,A+DPTR MOV P0,A MOV P2,#04H LCALL DELAY MOV P2,#00H MOV A,77H M

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論