出租車計(jì)價(jià)器課程設(shè)計(jì)報(bào)告_第1頁
出租車計(jì)價(jià)器課程設(shè)計(jì)報(bào)告_第2頁
出租車計(jì)價(jià)器課程設(shè)計(jì)報(bào)告_第3頁
出租車計(jì)價(jià)器課程設(shè)計(jì)報(bào)告_第4頁
出租車計(jì)價(jià)器課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、河南工程學(xué)院題 目: 出 租 車 計(jì) 價(jià) 器 院 系: 電氣信息工程學(xué)院 專 業(yè): 電氣工程及其自動(dòng)化 成 員:張靖瑜、邱緒艷、高倩楠指導(dǎo)老師: 甕 嘉 民 2012 年 11 月 29 日課程設(shè)計(jì)報(bào)告評(píng)語該組在實(shí)訓(xùn)期間,認(rèn)真完成規(guī)定的課程設(shè)計(jì)內(nèi)容,認(rèn)真聽講,積極學(xué)習(xí),實(shí)訓(xùn)報(bào)告條理清晰、內(nèi)容詳實(shí)、字跡整潔、能獨(dú)立完成實(shí)訓(xùn)作品,動(dòng)手能力得到很大提高。該組圓滿完成實(shí)訓(xùn)任務(wù),效果 等 級(jí): 評(píng)閱人: 職稱: 年 月 日目 錄總方案設(shè)計(jì)3一設(shè)計(jì)任務(wù)31.1基本要求31.2發(fā)揮部分4二.軟件算法42.1系統(tǒng)主程序流程圖42.2數(shù)據(jù)處理子程序流程圖52.3等待時(shí)間計(jì)時(shí)子程序52.4鍵盤掃描子程序6三硬件設(shè)

2、計(jì)73.1單片機(jī)最小系統(tǒng)73.2測距單元83.3按鍵單元103.4顯示單元10四Proteus軟件仿真13五程序14六參考文獻(xiàn)28七感受29總方案設(shè)計(jì)本次設(shè)計(jì)是使用單片機(jī)技術(shù)來實(shí)現(xiàn)一個(gè)模擬出租車的計(jì)價(jià)器,利用單片機(jī)豐富的IO端口及其控制的靈活性,實(shí)現(xiàn)基本的里程計(jì)價(jià)功能和等待功能等。具有性能可靠、電路簡單、成本低、擴(kuò)展空間大等特點(diǎn)。一設(shè)計(jì)任務(wù)本次課程設(shè)計(jì)的任務(wù)是設(shè)計(jì)一款基于STC89C52單片機(jī)的出租車計(jì)價(jià)器,通過對(duì)傳感器的檢測,對(duì)數(shù)值進(jìn)行處理和顯示。設(shè)計(jì)總框圖如圖1-1:霍爾傳感器數(shù)據(jù)顯示狀態(tài)指示按鍵單片機(jī)圖1-1 計(jì)價(jià)器系統(tǒng)框圖1.1基本要求設(shè)計(jì)一個(gè)模擬出租車計(jì)價(jià)器,計(jì)費(fèi)包括起步價(jià)、行車?yán)锍?/p>

3、計(jì)費(fèi)兩部分,用兩個(gè)四位一體的數(shù)碼管分別顯示總金額和里程,一個(gè)數(shù)碼管顯示價(jià)格,起步價(jià)為5.0元,最大值為9999元,3Km之內(nèi)起步價(jià)計(jì)費(fèi),超過3km,增加1元(即1 km增加1元);一個(gè)顯示里程,精確到0.1km,最大值為999.9km.、計(jì)費(fèi)功能費(fèi)用的計(jì)算是按行駛里程收費(fèi),設(shè)起步價(jià)為5元。1、當(dāng)里程<3km時(shí),按起價(jià)計(jì)算費(fèi)用2、當(dāng)里程>3km時(shí),每公里多加1元,總費(fèi)用=5+1*(X-3)、顯示功能1、顯示里程:用四位數(shù)字顯示,顯示方式為“XXX.X”,單位為km,計(jì)程范圍0-999.9km,精確到0.1km。2、顯示費(fèi)用:用四位數(shù)字顯示,顯示方式為“XXXX”,單位為元,計(jì)價(jià)范圍0

4、-9999元,精確到1元。1.2發(fā)揮部分增加擴(kuò)展按鍵,可以根據(jù)需求定義新功能。二.軟件算法2.1系統(tǒng)主程序流程圖圖2-1系統(tǒng)主程序流程圖2.2數(shù)據(jù)處理子程序流程圖每當(dāng)霍爾傳感器輸出一個(gè)脈沖,里程和金額都相應(yīng)變化,當(dāng)然等待時(shí)間也換算成里程,計(jì)算程序根據(jù)里程數(shù)分別進(jìn)入不同的計(jì)算公式。如果里程大于3公里,則執(zhí)行公式:金額=(里程-3)*單價(jià)+5;否則,執(zhí)行公式:總金額=起步價(jià)。程序流程圖如圖2-2所示。 圖2-2 數(shù)據(jù)處理子程序流程圖2.3等待時(shí)間計(jì)時(shí)子程序當(dāng)出租車停止時(shí),等待時(shí)間被換算成里程,進(jìn)行計(jì)算,顯示換算過的里程數(shù)和金額。當(dāng)結(jié)算時(shí)停止計(jì)時(shí)和計(jì)費(fèi)并顯示金額,當(dāng)有清零鍵按下時(shí)存儲(chǔ)本次金額。如圖2

5、-3:圖2-3等待時(shí)間計(jì)時(shí)子程序2.4鍵盤掃描子程序鍵盤處理狀態(tài)表如下表2-1.操作狀態(tài)Key1按下(開始鍵)開始打表,打開INT0中斷,開始采集輪子脈沖,記錄距離Key2按下(結(jié)算鍵)關(guān)閉各個(gè)中斷,停止采集輪子脈沖Key3按下(堵車鍵)進(jìn)入堵車狀態(tài)并計(jì)費(fèi)Key4按下(查詢鍵)顯示總路程、總金額Key5按下(清零鍵)清零當(dāng)前值表2-1當(dāng)沒有按鍵按下的時(shí)候,單片機(jī)循環(huán)主程序,一旦有按鍵按下,便轉(zhuǎn)向相應(yīng)的子程序處理,處理結(jié)束再返回。流程圖如圖2-4。圖4-4 鍵盤掃描子程序三硬件設(shè)計(jì)3.1單片機(jī)最小系統(tǒng)復(fù)位電路和晶振電路是STC89C52工作所需的最簡外圍電路。單片機(jī)最小系統(tǒng)電路圖如圖3-1所示。

6、 圖3-1單片機(jī)最小系統(tǒng)STC89C52 的復(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í)鐘電路。3.2測距單元本次設(shè)計(jì)我們選取了霍爾傳感器來進(jìn)行里程測量?;魻柶骷且环N磁傳感器,用它可以檢測磁場及其變化,可在各種與磁場有關(guān)的場合中使用。霍爾器件以霍爾效應(yīng)為其工作基礎(chǔ),它具有許多優(yōu)點(diǎn),它的結(jié)構(gòu)牢固,體積小,重量輕,壽命長,安裝方便,功耗小,頻率高,耐震動(dòng),不怕灰塵、油污、水汽及鹽霧等的污染或腐蝕。里程測量是通

7、過將霍爾傳感器安裝在車輪旁邊的鐵板上,將磁鐵安裝在車輪上,旋轉(zhuǎn)的車輪將磁鐵對(duì)傳感器時(shí),霍爾傳感器會(huì)輸出一個(gè)脈沖信號(hào),經(jīng)過處理送到單片機(jī),經(jīng)過單片機(jī)的計(jì)算處理,將行駛的里程送到顯示單元并顯示出來。其原理示意圖如3-2:圖3-2 傳感器測距示意圖霍爾傳感器有3個(gè)外接口,2個(gè)是電源的正負(fù)極接口,最后一個(gè)是脈沖信號(hào)輸出口,只要將霍爾傳感器的信號(hào)輸出端接到單片機(jī)的端口上便可以實(shí)現(xiàn)距離檢測。工作原理如圖3-3.其中,單片機(jī)的P3.2(INT0)引腳作為信號(hào)的輸入端,采用外部中斷0進(jìn)行計(jì)數(shù)。車輪每轉(zhuǎn)一圈,霍爾傳感器就產(chǎn)生一個(gè)脈沖信號(hào),根據(jù)霍爾效應(yīng)原理,當(dāng)霍爾片處在磁場中時(shí),霍爾傳感器的輸出端輸出低電平。當(dāng)車

8、輪轉(zhuǎn)動(dòng)一圈時(shí)小磁鐵提供一個(gè)磁場,則霍爾傳感器輸出一次低電平完成一次數(shù)據(jù)采集,從而產(chǎn)生信號(hào)?;魻杺鞲衅鳈z測并輸出信號(hào)到單片機(jī)的INT0口,引起單片機(jī)的中斷,對(duì)脈沖計(jì)數(shù),當(dāng)計(jì)數(shù)達(dá)到特定的次數(shù)時(shí),里程就會(huì)增加,單片機(jī)對(duì)里程進(jìn)行計(jì)算后,通過接口電路將計(jì)算好的結(jié)果傳送到數(shù)碼管并顯示出來。圖3-3 霍爾元件工作原理3.3按鍵單元本設(shè)計(jì)的按鍵單元電路有6個(gè)按鍵,功能分別是:S1是開始鍵,按下時(shí)開始計(jì)時(shí)和計(jì)費(fèi);S2是結(jié)算鍵;S3是查詢鍵,按下時(shí)可以查詢歷史記錄;S4是清零鍵,用于清楚上次記錄;S5是擴(kuò)展鍵,用于在需要時(shí)實(shí)現(xiàn)新功能;S6是復(fù)位鍵。如圖3-4所示。圖3-4 按鍵單元電路3.4顯示單元本設(shè)計(jì)顯示單元

9、包括兩部分:數(shù)碼管顯示(圖3-5)和二極管指示顯示(圖3-6)。數(shù)碼管顯示部分使用兩個(gè)四位一體的LED數(shù)碼管, LED是發(fā)光二極管的簡稱,是一種將電能轉(zhuǎn)換成光能的設(shè)備。LED顯示器是由發(fā)光二極管排列組成的顯示器件。它采用低電壓掃描驅(qū)動(dòng),具有:耗電少、使用壽命長、成本低、故障少、視角大、可視距離遠(yuǎn)等特點(diǎn)。此外,它的響應(yīng)時(shí)間短(一般不超過0.1us),亮度也比較高。它的缺點(diǎn)是工作電流比較大,每一段的工作電流在10mA左右。其中每位數(shù)碼管是由8個(gè)發(fā)光二極管演變而來,其中7個(gè)發(fā)光二極管構(gòu)成7筆字形,另一個(gè)構(gòu)成小數(shù)點(diǎn),稱為8段LED。8段LED數(shù)碼管是利用7個(gè)LED(發(fā)光二極管)外加一個(gè)小數(shù)點(diǎn)的LED組

10、合而成的顯示設(shè)備,可以顯示09等10個(gè)數(shù)字和小數(shù)點(diǎn),使用非常廣泛,它的外觀如圖3-7所示:圖3-7 8段數(shù)碼管這類數(shù)碼管可以分為共陽極(8個(gè)發(fā)光二極管的陽極接在起)與共陰極(8個(gè)發(fā)光二極管陰極連在一起)兩種,共陽極就是把所有LED的陽極連接到共同接點(diǎn),而每個(gè)LED的陰極分別為a、b、c、d、e、f、g及dp(小數(shù)點(diǎn));共陰極則是把所有LED的陰極連接到共同接點(diǎn),而每個(gè)LED的陽極分別為a、b、c、d、e、f、g及dp(小數(shù)點(diǎn)),如圖3-8所示。 圖3-8 共陽和共陰數(shù)碼管結(jié)構(gòu)通過控制這個(gè)公共端,可使該位亮或暗。如共陰極端接地或共陽極接高電平,則該位顯示器有效,反之無效。本設(shè)計(jì)采用共陽LED數(shù)碼

11、管。數(shù)碼管有靜態(tài)顯示和動(dòng)態(tài)顯示兩種,這里采用動(dòng)態(tài)顯示。它具有低功耗、接口少等特點(diǎn)。如圖3-5兩個(gè)四位一體數(shù)碼管接P0口作為段選,接P2口作為位選。開始計(jì)價(jià)時(shí)前四位顯示路程,后四位顯示價(jià)錢。圖3-5數(shù)碼管顯示部分 二極管指示部分包括開始打表指示燈、顯示統(tǒng)計(jì)數(shù)據(jù)指示燈、堵車等待指示燈等如圖3-6。這些指示燈能對(duì)出租車的每一種狀態(tài)進(jìn)行指示,開始打表時(shí)D1亮,結(jié)算當(dāng)前費(fèi)用時(shí)D2亮,堵車等待時(shí)D3亮,清零當(dāng)前值時(shí)D4亮。圖3-6 二極管指示部分實(shí)物圖如3.7.圖3-7 實(shí)物圖四Proteus軟件仿真本設(shè)計(jì)需要用Keil uVision4對(duì)C52程序進(jìn)行編譯,生成“.hex”文件,如圖4-1.圖4-1 K

12、eil uVision4編譯在Proteus軟件中畫出仿真電路(如圖4-2),把Keil uVision4編譯后生成的“.hex”導(dǎo)入到單片機(jī)中,按“運(yùn)行仿真”鍵進(jìn)行仿真。圖4-2 Proteus仿真五程序源程序如下:#include<reg52.h> #define uchar unsigned char #define uint unsigned int/*description: */* 本區(qū)定義了程序各部分涉及的單價(jià) */#define QBJ 5 /*起步價(jià);修改“5”,即可改變程序中打表起步價(jià).*/#define DJ 10/*每公里價(jià)錢;修改十位上“1”,即可改變每公

13、里單價(jià).例“ 10代表1公里1元,20代表1公里2元 ”*/#define DC_SD 2;/*堵車時(shí)默認(rèn)速度;修改“2”,即可改變默認(rèn)速度*/*表示每10秒增加 “2” 百米/*(默認(rèn)速度公式:DC_SD= V/3600 V單位為km/h)*/* 注:暫不支持小數(shù),僅支持整數(shù)。 */volatile unsigned int qianwei,baiwei,shiwei,gewei; /顯示數(shù)據(jù)各個(gè)位置數(shù)字的臨時(shí)變量 unsigned int code led_seg_code10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/段碼表示0

14、-9 volatile unsigned int dis,distance,A_distance,time,A_time,cost,A_cost;/定義路程、價(jià)錢、總路程,總時(shí)間,全局變量; volatile unsigned int temp_cost,temp_distance,temp_cost_1,temp_distance_1; /需要用來傳遞的臨時(shí) 全局變量sbit key1=P14; /開始打表sbit key2=P15; /停車,停止打表sbit key3=P33; /以按鍵模擬堵車sbit key4=P16; /查看 合計(jì) 打表 里程 及 費(fèi)用sbit key5=P17;/清

15、除當(dāng)前顯示sbit led1=P10;/ 指示key1 sbit led2=P11;/ 指示key2sbit led3=P12;/ 指示key3sbit led4=P13; / 指示key4bit STAR_flag;/ 標(biāo)志位對(duì)應(yīng) key1bit STOP_FLAG;/ 標(biāo)志位對(duì)應(yīng) key2bit DC_flag;/ 標(biāo)志位對(duì)應(yīng) key3bit DATA_flag;/ 標(biāo)志位對(duì)應(yīng) key4bit CLR_FLAG;/ 標(biāo)志位對(duì)應(yīng) key5 void initial_data(void)STAR_flag=0; DATA_flag=0; DC_flag=0; STOP_FLAG=0;CLR_F

16、LAG=0; led1=0;led2=0;led3=0;led4=0; void juli()dis=dis+1; /每轉(zhuǎn)一周1M(暫定)if(dis=5)/100M 在數(shù)碼管上顯示(暫定) distance=distance+1;dis=0; void jisuan()if(distance>=20)cost=(distance-20)/DJ+QBJ; /*起步價(jià);修改此處“5”,即可改變程序中打表起步價(jià).每公里價(jià)錢;修改“10”,即可改變每公里單價(jià).*/else /* 注: “1”為每公里1¥ */cost=QBJ; /*這里5,同上。*/ void fenli(uint temp)

17、 if(temp>9999) temp=9999;qianwei=temp/1000;baiwei=(temp/100)%10;shiwei=(temp%100)/10;gewei=temp%10; void diplay_delay() uchar i; for(i=0;i<200;i+); void led_show_1() if(qianwei=0) /判斷高位是為0,若為0,則不顯示。if(baiwei=0)/判斷高位是為0,若為0,則不顯示。 if(shiwei=0)/判斷高位是為0,若為0,則不顯示。P2=0xfe;/位選通P0=led_seg_codegewei; /

18、段選通 diplay_delay();elseP2=0xfe;P0=led_seg_codegewei; diplay_delay();P2=0xfd;P0=led_seg_codeshiwei; diplay_delay();else P2=0xfe;P0=led_seg_codegewei; diplay_delay();P2=0xfd;P0=led_seg_codeshiwei; diplay_delay();P2=0xfb;P0=led_seg_codebaiwei; diplay_delay(); else P2=0xfe;P0=led_seg_codegewei; diplay_d

19、elay();P2=0xfd;P0=led_seg_codeshiwei; diplay_delay();P2=0xfb;P0=led_seg_codebaiwei; diplay_delay();P2=0xf7;P0=led_seg_codeqianwei; diplay_delay(); void led_show_2()if(qianwei=0)/判斷高位是為0,若為0,則不顯示。if(baiwei=0) /判斷高位是為0,若為0,則不顯示。 P2=0xef; /位選通P0=led_seg_codegewei; /段選通 diplay_delay();P2=0xdf;P0=led_seg

20、_codeshiwei&0x7f; / |0x08顯示小數(shù)點(diǎn)。 diplay_delay();else P2=0xef;P0=led_seg_codegewei; diplay_delay();P2=0xdf;P0=led_seg_codeshiwei&0x7f; diplay_delay();P2=0xbf;P0=led_seg_codebaiwei; diplay_delay(); else P2=0xef;P0=led_seg_codegewei; diplay_delay();P2=0xdf;P0=led_seg_codeshiwei&0x7f; diplay_

21、delay();P2=0xbf;P0=led_seg_codebaiwei; diplay_delay();P2=0x7f;P0=led_seg_codeqianwei; diplay_delay(); void delay(uint x) int i,j; for(i=x;i>0;i-) for(j=340;j>0;j-);void keyscan() if(key1=0) delay(5); /按鍵消抖 if(key1=0) /按鍵消抖 EA=1; /KEY1按下,打開總中斷根據(jù)main()可知,打開INT0中斷,即開始采集輪子脈沖,記錄距離 STAR_flag=1; /翻轉(zhuǎn)K

22、EY1標(biāo)志位STOP_FLAG=0; DATA_flag=0; CLR_FLAG=0;/翻轉(zhuǎn)其他按鍵標(biāo)志位,達(dá)到互鎖功能 while(key1=0); /松鍵等待 if(key2=0)delay(5); /按鍵消抖if(key2=0) /按鍵消抖EA=0; /KEY2按下,打開總中斷根據(jù)main()可知,關(guān)閉各個(gè)中斷,即停止采集輪子脈沖,記錄距離(包括堵車檢測)STOP_FLAG=1; /翻轉(zhuǎn)KEY2標(biāo)志位STAR_flag=0; DATA_flag=0; CLR_FLAG=0; /翻轉(zhuǎn)其他按鍵標(biāo)志位,達(dá)到互鎖功能while(key2=0); /松鍵等待if(key5=0)delay(5);/

23、按鍵消抖if(key5=0)/按鍵消抖CLR_FLAG=1;/翻轉(zhuǎn)KEY5標(biāo)志位STOP_FLAG=0; STAR_flag=0; DATA_flag=0;/翻轉(zhuǎn)其他按鍵標(biāo)志位,達(dá)到互鎖功能while(key5=0); /松鍵等待 if(key4=0) delay(5); /按鍵消抖 if(key4=0) /按鍵消抖 DATA_flag=1; /翻轉(zhuǎn)KEY4標(biāo)志位STOP_FLAG=0; STAR_flag=0; CLR_FLAG=0;/翻轉(zhuǎn)其他按鍵標(biāo)志位,達(dá)到互鎖功能 while(key4=0);/松鍵等待 /指示等掃描 led1=STAR_flag; / 指示,是否有乘客乘車; led2=

24、DATA_flag; / 切換指示,顯示 總路程.時(shí)間 led3=DC_flag; / 指示是否堵車; diplay_delay(); void initial_time() TMOD=0X01;TH0=(65536-7800)/256; /10msTL0=(65536-7800)%256;IT0=1;EX0=1;ET0=1;EA=0;void zd() interrupt 0 /外部中斷0juli();if(distance=9999)distance=9999; void time0() interrupt 1 /定時(shí)0 uint temp_t;TH0=(65536-7800)/256;

25、/10ms 此處延遲10MS,由于代碼長度和全局不穩(wěn)定變量未優(yōu)化導(dǎo)致,一定誤差。TL0=(65536-7800)%256;/故,經(jīng)計(jì)算,10MS的初值未7800左右。temp_t+;if(temp_t=1000) /1秒改變一次distance( 0.X km)temp_t=0;distance=distance+DC_SD;if(distance=9999)distance=9999; void main(void) uchar kkk=1; /局部標(biāo)志位變量,判斷key1和key2的開關(guān)關(guān)系,使顯示穩(wěn)定狀態(tài)。 bit mmm=0; /局部標(biāo)志位變量,標(biāo)志堵車按鍵狀態(tài),改變 定時(shí)器 與 外部

26、中斷開關(guān)順序。 initial_data(); /初始化數(shù)據(jù) initial_time(); /初始化定時(shí)器 while(1) keyscan(); if(STAR_flag=1)/判斷key1標(biāo)志位 if(key3=0) / 模擬堵車 delay(5); if(key3=0) /消除抖動(dòng) TR0=1;EX0=0; DC_flag=1; /* mmm=!mmm;if(mmm=1) /第一次按下key3(進(jìn)入堵車狀態(tài)) TR0=1;EX0=0; /開 TO 關(guān) INT0DC_flag=!DC_flag;/翻轉(zhuǎn)堵車標(biāo)志位if(mmm=0) /第二次按下key3(退出堵車狀態(tài),進(jìn)入打表計(jì)時(shí)狀態(tài))TR

27、0=0; EX0=1; /開 INT0 關(guān)T0DC_flag=!DC_flag; /翻轉(zhuǎn)堵車標(biāo)志位 */ elseTR0=0; EX0=1;DC_flag=0;kkk=1; /將打表開始局部標(biāo)志位 置1,EA=1; /開總中斷(打開int0)jisuan(); /計(jì)算費(fèi)用fenli(cost); /分離費(fèi)用各個(gè)位,(分為 “個(gè)”“十”“百”“千”)led_show_1(); /將費(fèi)用顯示在四位數(shù)碼管組1上fenli(distance); /分離里程各個(gè)位,(分為 “個(gè)”“十”“百”“千”)led_show_2(); /將里程顯示在四位數(shù)碼管組2上temp_cost=cost; /將本次費(fèi)用暫存

28、于傳遞變量 temp_cost中。temp_distance=distance;/將本次里程暫存于傳遞變量 temp_distance中。 if(STOP_FLAG=1)/判斷key2標(biāo)志位 EA=0;/關(guān)閉中斷(關(guān)int0,ET0)TR0=0;cost=0;distance=0;/清除上次費(fèi)用,里程fenli(temp_cost);/分離 傳遞變量 temp_cost ,即上次費(fèi)用。led_show_1();/將上次費(fèi)用顯示在四位數(shù)碼管組1上fenli(temp_distance);/分離 傳遞變量 temp_distance ,即上次里程。led_show_2();/將上次里程顯示四位數(shù)碼

29、管組2上if(kkk=1)/判斷是否是(key1按下后,按的key2)temp_cost_1=temp_cost; /將 傳遞變量 temp_cost ,即上次費(fèi)用 傳遞到 temp_cost_1 上。temp_distance_1=temp_distance;/將 傳遞變量 temp_cost ,即上次費(fèi)用 傳遞到 temp_distance_1 上。kkk=0; /清除KKK標(biāo)志位A_cost=A_cost+temp_cost_1; /統(tǒng)計(jì)總費(fèi)用temp_cost_1=0;A_distance=A_distance+temp_distance_1;/統(tǒng)計(jì)總里程temp_distance_1

30、=0; if(DATA_flag=1) /判斷key4標(biāo)志位 顯示總里程 fenli(A_cost); / 分離總費(fèi)用led_show_1(); /將總費(fèi)用顯示四位數(shù)碼管組2上fenli(A_distance);/分離總里程led_show_2(); /將總里程顯示四位數(shù)碼管組2上 if(CLR_FLAG=1)/清零 fenli(0);led_show_1();fenli(0);led_show_2(); 六參考文獻(xiàn)1 戴佳, 陳斌, 苗龍. 51單片機(jī)應(yīng)用系統(tǒng)開發(fā)典型實(shí)例. 中國電力出版社,20052 余發(fā)山,王福忠. 單片機(jī)原理及應(yīng)用技術(shù). 中國礦業(yè)大學(xué)出版社,2008.63 侯玉寶, 陳

31、忠平, 李成群. 基于Proteus的51系列單片機(jī)設(shè)計(jì)與仿真.電子工業(yè)出版社,20084 李玉梅. 基于MCS-51系列單片機(jī)原理的應(yīng)用設(shè)計(jì). 國防工業(yè)出版社,20065 邊春元, 李文濤, 江杰. C51單片機(jī)典型模塊設(shè)計(jì)與應(yīng)用. 機(jī)械工業(yè)出版社,20086 樓然苗,胡佳文,李光飛等.單片機(jī)實(shí)驗(yàn)與課程設(shè)計(jì). 浙江大學(xué)出版社,2010.10七感受感想1(張靖瑜)完成本次的單片機(jī)課程設(shè)計(jì)花費(fèi)了兩周時(shí)間,我覺得花費(fèi)這些時(shí)間是十分有意義而且十分必要的。單片機(jī)課程設(shè)計(jì)中遇到最多的問題是在程序編寫和線路設(shè)計(jì)上,為此,我們翻閱了好幾本書,系統(tǒng)地學(xué)習(xí)了C語言,認(rèn)真回顧和復(fù)習(xí)了電路知識(shí),查閱了大量的網(wǎng)絡(luò)資源

32、。這期間,我們?cè)驗(yàn)槌绦蝈e(cuò)誤而苦惱,因?yàn)殡娐窂?fù)雜而焦急,但是我們還是靠著團(tuán)結(jié)努力的精神逐一克服克服。最終,我和我的隊(duì)友制定出了完整的設(shè)計(jì)方案,設(shè)計(jì)出了簡潔明了的電路圖,并且在我們的共同努力下做出了出租車計(jì)價(jià)器的實(shí)物圖。這次課程設(shè)計(jì)從理論到實(shí)踐,我學(xué)到了很多的東西,還鞏固了以前所學(xué)過的知識(shí),比之前有了一個(gè)更加清晰的理解,明顯地感覺到動(dòng)手實(shí)踐掌握的東西遠(yuǎn)比單純課堂上聽來的要深刻清晰,掌握得也更扎實(shí),在下次遇到類似問題的時(shí)候就會(huì)有清晰的解決問題的思路和辦法。同時(shí)我發(fā)現(xiàn)自己對(duì)單片機(jī)的興趣也在逐漸增加,在這一設(shè)計(jì)過程中,我學(xué)會(huì)了堅(jiān)持不懈,不輕言放棄。回顧起此次單片機(jī)課程設(shè)計(jì),我最大的感觸是,做事要有條理

33、有計(jì)劃,學(xué)習(xí)知識(shí)要嚴(yán)謹(jǐn)仔細(xì),遇到問題時(shí)要馬上思考檢查問題出在哪邊,而不是抱怨,只有這樣我才能真正學(xué)會(huì)單片機(jī),而且自己處理問題的能力才會(huì)得到提高??傊?,單片機(jī)課程設(shè)計(jì)讓我受益匪淺,感謝給我?guī)椭睦蠋熀团笥?!感?(邱緒艷)在本次設(shè)計(jì)中,我們采用STC89C52芯片為核心器件,設(shè)計(jì)出了簡單的出租車計(jì)價(jià)器,能夠?qū)崿F(xiàn)顯示時(shí)間、等待時(shí)間、金額和里程,按鍵控制,堵車指示。選題后,我們便開始復(fù)習(xí)單片機(jī)方面的知識(shí),因?yàn)槲覀兊膯纹瑱C(jī)理論知識(shí)學(xué)得不好,也查閱、搜索了很多相關(guān)資料,進(jìn)行總體設(shè)計(jì)與具體設(shè)計(jì),同時(shí)也學(xué)習(xí)仿真軟件Proteus和編程軟件Keil uVision4的使用。由于以前都采用匯編語言實(shí)現(xiàn)編程,對(duì)用

34、C語言來實(shí)現(xiàn)單片機(jī)的編程不太習(xí)慣,很多程序看不懂,需要查英語字典翻譯,花費(fèi)了一些時(shí)間來熟悉C語言的編程。在設(shè)計(jì)開始,要形成流程圖,它可以使設(shè)計(jì)有一定的邏輯性與嚴(yán)密性,使得設(shè)計(jì)思路明確。采用模塊化的設(shè)計(jì)思想很重要,它方便編寫、修改與調(diào)試,另外加上必要的注釋,便于交流與理解。這次課程設(shè)計(jì)設(shè)計(jì)完成后,體會(huì)頗多,在學(xué)與做的過程中,取長補(bǔ)短,不斷學(xué)習(xí)新的知識(shí),吸取經(jīng)驗(yàn),達(dá)到進(jìn)步的目的。在設(shè)計(jì)起初,程序的調(diào)試時(shí)我們遇到的最大困難,仿真時(shí)很多功能不能實(shí)現(xiàn),焊接時(shí)有很多困難,具體如下:(1)仿真時(shí)出現(xiàn)同樣的8位數(shù)字,無法正常計(jì)數(shù)。原因:在程序中按鍵的程序繁雜,調(diào)用指令無序,定義中缺少指令。解決方法:按鍵程序采用分區(qū)掃描法,根據(jù)流程圖,整改要調(diào)用的指令,重新定義所需子程序(2)清零后,重

溫馨提示

  • 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)論