市內(nèi)出租車計(jì)程計(jì)價(jià)顯示系統(tǒng)_第1頁(yè)
市內(nèi)出租車計(jì)程計(jì)價(jià)顯示系統(tǒng)_第2頁(yè)
市內(nèi)出租車計(jì)程計(jì)價(jià)顯示系統(tǒng)_第3頁(yè)
市內(nèi)出租車計(jì)程計(jì)價(jià)顯示系統(tǒng)_第4頁(yè)
市內(nèi)出租車計(jì)程計(jì)價(jià)顯示系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、南 京 理 工 大 學(xué)單片機(jī)課程設(shè)計(jì)報(bào)告作 者:姚春桂學(xué) 號(hào):0608190146學(xué)院(系):動(dòng)力工程學(xué)院專 業(yè):電氣工程及其自動(dòng)化題 目:市內(nèi)出租車計(jì)程計(jì)價(jià)顯示系統(tǒng)申請(qǐng)面試指導(dǎo)教師: 葛 龍 2008 年 12 月 24 日1 需求分析隨著國(guó)內(nèi)城市化的加快,人民生活水平的不斷提高,作為市內(nèi)最快捷方便的交通工具出租汽車,正越來(lái)越受到廣大普通百姓的青睞,越來(lái)越多的人會(huì)選擇搭乘出租車作為自己出行的方式,隨之而來(lái)的是出租行業(yè)的蓬勃發(fā)展,因此出租車計(jì)程計(jì)價(jià)顯示系統(tǒng)的使用數(shù)量也在不斷的增多,因此設(shè)計(jì)一款廉價(jià)且可以方便顯示行使路程及費(fèi)用的系統(tǒng)具有廣闊的市場(chǎng)前景。2 基本原理本出租車計(jì)程計(jì)價(jià)顯示系統(tǒng)采用AT

2、89C51單片機(jī)作為核心處理器,通過(guò)編寫匯編程序輸入到單片機(jī)設(shè)置起步價(jià)、每公里計(jì)費(fèi)等固定參數(shù)及完成計(jì)程計(jì)費(fèi)的計(jì)算過(guò)程,在汽車底盤主軸上(或變速箱內(nèi)、轉(zhuǎn)軸齒輪上)裝一個(gè)反射型紅外發(fā)射接受對(duì)管JY043W,測(cè)出轉(zhuǎn)的圈數(shù)N后乘以車輪的周長(zhǎng)即為行程S。再根據(jù)起步價(jià)及每公里計(jì)費(fèi)價(jià)格即可計(jì)算出行程計(jì)價(jià)值。此外,通過(guò)手動(dòng)按鈕送給單片機(jī)一個(gè)外部中斷完成計(jì)費(fèi)的開始,通過(guò)發(fā)光二極管顯示有無(wú)乘客乘坐。計(jì)程及計(jì)價(jià)值通過(guò)數(shù)碼管實(shí)時(shí)顯示出來(lái)。出租車計(jì)程計(jì)價(jià)顯示系統(tǒng)結(jié)構(gòu)框圖如圖1所示圖1出租車計(jì)程計(jì)價(jià)顯示系統(tǒng)結(jié)構(gòu)框圖3 硬件電路設(shè)計(jì)以AT89C51單片機(jī)位核心,配合路程計(jì)數(shù)裝置、外部中斷裝置、輸出顯示裝置等外圍電路組成整個(gè)

3、硬件電路。單片機(jī)內(nèi)存儲(chǔ)并執(zhí)行程序,響應(yīng)外部中斷,輸出計(jì)程計(jì)價(jià)數(shù)碼。計(jì)數(shù)裝置通過(guò)裝載汽車主軸上的反射型紅外發(fā)射接受對(duì)管采集行駛路程信息。外部中斷裝置是一個(gè)手動(dòng)開關(guān),閉合開關(guān)啟動(dòng)計(jì)程計(jì)價(jià),顯示裝置為6個(gè)7段數(shù)碼管,顯示信息從單片機(jī)的P1口及部分P2口輸出。其中計(jì)價(jià)值用4個(gè)數(shù)碼管依次顯示百元、十元、元及角,考慮到出租車主要在市區(qū)行駛,一般不會(huì)超過(guò)100千米,故計(jì)程值用2個(gè)數(shù)碼管依次顯示十千米和千米位。市內(nèi)出租車計(jì)程計(jì)價(jià)顯示系統(tǒng)硬件電路通過(guò)Proteus7.1繪制如圖2所示圖2 市內(nèi)出租車計(jì)程計(jì)價(jià)顯示系統(tǒng)電路原理圖市內(nèi)出租車計(jì)程計(jì)價(jià)顯示系統(tǒng)硬件電路通過(guò)Protel99SE繪制如圖3所示圖3市內(nèi)出租車計(jì)

4、程計(jì)價(jià)顯示系統(tǒng)電路原理圖市內(nèi)出租車計(jì)程計(jì)價(jià)顯示系統(tǒng)硬件電路PCB印制電路板如圖4所示圖4 市內(nèi)出租車計(jì)程計(jì)價(jià)顯示系統(tǒng)PCB印制電路板PCB印制電路板模擬三維實(shí)物顯示如圖5及圖6所示圖5 PCB印制電路板模擬三維實(shí)物(正面)圖6 PCB印制電路板模擬三維實(shí)物(反面)4 軟件程序設(shè)計(jì)一開始,P2.7輸出高電平使燈D1(發(fā)光二極管)亮,并不斷檢測(cè)撥動(dòng)開關(guān)的狀態(tài)。當(dāng)有乘客上車時(shí),接通開關(guān),單片機(jī)檢測(cè)到P3.3為電平時(shí)使發(fā)光二極管熄滅,并開始計(jì)程計(jì)價(jià)。車輪每轉(zhuǎn)一圈,即向T0口輸入一個(gè)方脈沖。經(jīng)施米特觸發(fā)反相器74LS14整形反相后,其下降沿使單片機(jī)的定時(shí)器T0加1計(jì)數(shù),由于出租車的車輪直徑為0.6366

5、m,因此車輪每轉(zhuǎn)一圈的行程為2.0m。T0每計(jì)125個(gè)數(shù),相當(dāng)于汽車行駛了250m。 把T0設(shè)置為計(jì)數(shù),模式2,用T0中斷,計(jì)數(shù)初值為(100H-125)=83H。汽車每行駛250m,T0計(jì)滿數(shù)溢出一次,使T0中斷,在T0中斷子程序中,使寄存器R1加1計(jì)數(shù)。R1每計(jì)4個(gè)數(shù),相當(dāng)于汽車行駛了1千米,使30H單元中的行程S加1(用BCD碼加法)。因此行程S為R1/4千米。程序中 ,用片內(nèi)RAM30H存儲(chǔ)行程S的千米數(shù)(壓縮BCD碼,最大不超過(guò)99),另一方面用31H、32H單元存儲(chǔ)計(jì)價(jià)值的壓縮BCD碼,高字節(jié)放在32H單元存百元位與十元位;低字節(jié)放在31H單元,存元與角位。在T0中斷子程序中,判斷

6、若行程超過(guò)3千米,在T0每次中斷使R1加1時(shí),即汽車每行駛250米,調(diào)用壓縮BCD碼加6角。然后調(diào)用壓縮BCD碼轉(zhuǎn)換為非壓縮BCD碼的子程序BCDZH(BCD轉(zhuǎn)換),將30H32H單元中的BCD碼轉(zhuǎn)換為非壓縮BCD碼,分別位于40H45H單元中。之后調(diào)用顯示字程序DISP將這些數(shù)據(jù)輸出顯示。主程序流程圖如圖7所示圖7 主程序流程圖源程序如下所示QDJ EQU 125 ;起步價(jià)12.5元(3千米內(nèi))GLJ EQU 24 ;每公里價(jià)2.4元/千米(3千米以上)S EQU 30H ;行程存在30H單元中(壓縮BCD碼)JJDZJ EQU 31H ;計(jì)價(jià)值低字節(jié),高位為元位,低位為角位JJGZJ EQ

7、U 32H ;計(jì)價(jià)值高字節(jié),高位為百元位,低位為十元位SGW EQU 40H ;行程的個(gè)位(非壓縮BCD碼)SSW EQU 41H ;行程的十位(非壓縮BCD碼)JJJ EQU 42H ;計(jì)價(jià)值角位(非壓縮BCD碼)JJY EQU 43H ;計(jì)價(jià)值元位(非壓縮BCD碼)JJSY EQU 44H ;計(jì)價(jià)值十元位(非壓縮BCD碼)JJBY EQU 45H ;計(jì)價(jià)值百元位(非壓縮BCD碼) ORG 0000H LJMP MAIN ORG 000BH LJMP T0INT ORG 001BH LJMP T1INTMAIN: MOV SP,#60H MOV DPTR,#TAB ;共陽(yáng)極段碼表 MOV T

8、MOD,#16H ;T1定時(shí),模式1,T0計(jì)數(shù),模式2,用T0、T1中斷 MOV TH0,#83H ;T0計(jì)數(shù)初值,每計(jì)125個(gè)數(shù)(相當(dāng)于250m)申請(qǐng)一次中斷 MOV TL0,#83H MOV TH1,#3CH ;T1定時(shí)0.1秒 MOV TL1,#0B0H MOV IE,#8AH ;開CPU及T0、T1中斷 SETB PT0 SETB P2.7 ;無(wú)乘客亮燈 MOV SGW,#00H ;將各顯示位清零,顯示熄滅碼 MOV SSW,#00H MOV JJJ,#00H MOV JJY,#00H MOV JJSY,#00H MOV JJBY,#00H ACALL DISP ;調(diào)用顯示子程序 JB

9、 P3.3,$ ;無(wú)乘客等待 SETB TR0 ;有乘客開始行駛時(shí)啟動(dòng)T0與T1開始計(jì)程計(jì)價(jià) SETB TR1 CLR P2.7 ;有乘客熄滅燈 MOV S,#00H ;行程初始值0千米 MOV JJGZJ,#01H ;計(jì)價(jià)初始值12.5元,高字節(jié) MOV JJDZJ,#25H ;計(jì)價(jià)初始值12.5元,低字節(jié) ACALL BCDZH ;調(diào)用BCD碼轉(zhuǎn)換子程序L: ACALL DISP JNB P3.3,L ;乘客未到站,循環(huán)顯示 CLR TR0 ;乘客到站停止計(jì)數(shù) CLR TR1 SJMP MAIN ;乘客下車后返回程序開始;BCD碼轉(zhuǎn)換子程序,把32H30H中的壓縮BCD碼轉(zhuǎn)換為非壓縮BCD

10、碼存于45H40HBCDZH: PUSH ACC SETB RS0 ;選工作寄存器組1 MOV R0,#S MOV R1,#SGWLPB: MOV A,R0 MOV R2,A ANL A,#0FH MOV R1,A INC R1 MOV A,R2 ANL A,#0F0H SWAP A MOV R1,A INC R0 INC R1 CJNE R0,#33H,LPB CLR RS0 ;返回工作寄存器組0 POP ACC RET;顯示子程序,顯示40H45H單元中的計(jì)程與計(jì)價(jià)值DISP: MOV R0,#SGW MOV A,R0 MOVC A,A+DPTR SETB P2.1 MOV P1,A AC

11、ALL DELAY CLR P2.1 INC R0 MOV A,R0 MOVC A,A+DPTR SETB P2.0 MOV P1,A ACALL DELAY CLR P2.0 INC R0 MOV A,R0 MOVC A,A+DPTR SETB P2.5 MOV P1,A ACALL DELAY CLR P2.5 INC R0 MOV A,R0 MOVC A,A+DPTR SETB P2.4 MOV P1,A SETB P1.7 ACALL DELAY CLR P2.4 INC R0 MOV A,R0 MOVC A,A+DPTR SETB P2.3 MOV P1,A ACALL DELAY

12、CLR P2.3 INC R0 MOV A,R0 MOVC A,A+DPTR SETB P2.2 MOV P1,A ACALL DELAY CLR P2.2 RETTAB: DB 0C0H,0CFH,0A4H,0B0H DB 99H,92H,82H,0F8H DB 80H,90H;T0中斷子程序,每250米中斷一次T0INT: PUSH ACC INC R1 ;R1中存250米數(shù),每行駛250米R(shí)1加1 CJNE R1,#4,LPT0 ;行駛不滿1千米,行程不增加,跳轉(zhuǎn) MOV A,S ;行駛滿1千米,行程加1 ADD A,#1 DA A MOV S,A MOV R1,#0 ;R1復(fù)位LPT0

13、: MOV A,S ;判斷行程是否,滿3千米 CLR C SUBB A,#3 JC FH0 ;行程不到3千米,計(jì)價(jià)不加6,返回 ACALL BCDJ6 ;行程滿3千米,調(diào)用BCDJ6子程序FH0: ACALL BCDZH ACALL DISP POP ACC RETI;壓縮BCD碼加6子程序,將31H32H中的計(jì)價(jià)值加6BCDJ6: MOV A,JJDZJ ADD A,#6 DA A MOV JJDZJ,A MOV A,JJGZJ ADDC A,#0 ;考慮可能的進(jìn)位 DA A MOV JJGZJ,A RET;T1中斷子程序,每0.1秒中斷一次T1INT: PUSH ACC MOV TH1,#

14、3CH MOV TL1,#0B0H MOV A,R2 JNZ LPT MOV R4,TL0LPT: INC R2 CJNE R2,#50,FH1 MOV R2,#0 MOV A,R4 CJNE A,TL0,FH1 INC R3 CJNE R3,#9,FH1 MOV R3,#0 ACALL BCDJ6 ACALL BCDZH ACALL DISPFH1: POP ACC RETIDELAY: MOV R6,#5LOOP1: MOV R7,#200LOOP2: NOP NOP NOP DJNZ R7,LOOP2 DJNZ R6,LOOP1 RETEND5 調(diào)試及改進(jìn)完成電路的硬件設(shè)計(jì)及軟件編程后,

15、打開仿真開關(guān)效果基本符合最初的設(shè)計(jì)目標(biāo),可以完成無(wú)乘客時(shí)處于等待狀態(tài),發(fā)光二極管亮;當(dāng)有乘客時(shí)撥動(dòng)開關(guān)即開始計(jì)程計(jì)費(fèi),當(dāng)遇到交通阻塞汽車停止前進(jìn)超過(guò)45秒鐘,計(jì)程不增加,但計(jì)費(fèi)會(huì)增加;正常行駛時(shí)每250米費(fèi)用增加6角。仿真截圖如圖8所示圖8 仿真截圖從仿真中可以看出,結(jié)果較好的滿足了設(shè)計(jì)需求,但也存在一些小的問(wèn)題,如仿真時(shí),數(shù)碼管顯示有時(shí)會(huì)跳動(dòng),計(jì)程計(jì)費(fèi)結(jié)束后撥動(dòng)開關(guān)數(shù)碼管及熄滅,不能有效地保存數(shù)據(jù),針對(duì)這些問(wèn)題可以在電路中加入一個(gè)74LS373鎖存器用以保存數(shù)據(jù)。6 課程學(xué)習(xí)體會(huì)通過(guò)對(duì)單片機(jī)這門課程的學(xué)習(xí),我對(duì)C51系列單片機(jī)有了較為深刻的認(rèn)識(shí),它是計(jì)算機(jī)家族的一個(gè)重要分支,具有體積小、價(jià)格

16、低、面向控制的特點(diǎn),在人類生產(chǎn)和生活的各個(gè)領(lǐng)域都有極為廣泛的應(yīng)用,它是數(shù)字電路的延伸,但功能又遠(yuǎn)遠(yuǎn)超過(guò)它,只需要單片機(jī)配以簡(jiǎn)單的電路就可以完成比較復(fù)雜的功能,同時(shí)只要加上適當(dāng)?shù)臄?shù)/模和模數(shù)轉(zhuǎn)換裝置就可以處理模擬電路的問(wèn)題。此外,通過(guò)單片機(jī)這門課程的學(xué)習(xí),還加深了我對(duì)匯編語(yǔ)言及C語(yǔ)言的理解,對(duì)于其他課程也起了促進(jìn)的作用。單片機(jī)是一門面向?qū)嶋H應(yīng)用的課程,要多查找資料,及時(shí)廣泛的了解現(xiàn)實(shí)的應(yīng)用信息才能夠跟得上單片機(jī)的發(fā)展,不能死記書本,也不必去刻意去記那些指令語(yǔ)句,在實(shí)際應(yīng)用中可以通過(guò)查指令表來(lái)閱讀或編寫匯編程序。參 考 文 獻(xiàn)1 葛龍. 單片機(jī)講義. 南京: 南京理工大學(xué), 2006.2 閆玉德, 俞虹. MCS-51單片機(jī)原理與應(yīng)用. 北京: 機(jī)械工業(yè)出版社, 2004.3 張鵬, 王雪梅. 單片機(jī)原理與應(yīng)用實(shí)例教程.北

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論