版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> ( 2014—2015 年度第 二 學(xué)期)</p><p> 課 程: 單片機(jī)及嵌入式系統(tǒng)A</p><p> 題 目: 基于51單片機(jī)的出租車計(jì)價(jià)器程序 </p><p> 院 系: 自動(dòng)化系
2、 </p><p> 班 級(jí): 測(cè)控1203 </p><p> 日期:2015年 6 月 11 日</p><p><b> 一、引言</b></p><p> 身為保定的大學(xué)生,保定出租車是我們很熟悉的事物,而出租車作為我們的交通工具也是再平常不過(guò)的了。每次外出,幾乎都離
3、不開出租車。在出租車上還有著一個(gè)關(guān)系到我們花銷的設(shè)備——計(jì)價(jià)器。這是出租車司機(jī)和乘客對(duì)于了解收費(fèi)多少的一個(gè)必不可少的設(shè)備。但我們真的了解這些嗎?</p><p> 隨著科學(xué)技術(shù)的不斷進(jìn)步,單片機(jī)技術(shù)也得到了長(zhǎng)足發(fā)展。單片機(jī)技術(shù)自出現(xiàn)后就一直對(duì)人類的生活發(fā)展和進(jìn)步起到很重要的作用,現(xiàn)在各種各樣的單片機(jī)技術(shù)產(chǎn)品和設(shè)備存在于我們的身邊。這學(xué)期我們就學(xué)習(xí)了單片機(jī)技術(shù),隨著學(xué)習(xí)的加深,也逐漸了解了其實(shí)出租車計(jì)價(jià)器也是單片
4、機(jī)技術(shù)的產(chǎn)品。我們?cè)趯?duì)單片機(jī)技術(shù)有了初步的學(xué)習(xí)后,也可以簡(jiǎn)單地分析和設(shè)計(jì)這些產(chǎn)品的程序、構(gòu)造和工作模式了。這次課程設(shè)計(jì)選到了出租車計(jì)價(jià)器程序,正好給了我們了解出租車計(jì)價(jià)器工作模式的機(jī)會(huì),更給了我們鞏固知識(shí)、加深記憶的機(jī)會(huì)。相信這對(duì)我們以后單片機(jī)技術(shù)的學(xué)習(xí)以及對(duì)其他技術(shù)的了解都將起到十分重要的作用。</p><p><b> 二、設(shè)計(jì)題目:</b></p><p>
5、 基于51單片機(jī)的出租車計(jì)價(jià)器程序。</p><p><b> 三、設(shè)計(jì)思想闡述:</b></p><p><b> 總體設(shè)計(jì)方案:</b></p><p> 我們小組由于該課題比較貼近實(shí)際,故選用保定的出租車計(jì)價(jià)收費(fèi)標(biāo)準(zhǔn)。保定出租車有兩套收費(fèi)方案,第一套是白天的,另一套是晚上的。還有等待計(jì)費(fèi),即每5分鐘,加收一公里
6、的費(fèi)用。以上功能我們都會(huì)加入本次課程設(shè)計(jì)之中。針對(duì)以上的目標(biāo),我們的設(shè)計(jì)方案主要有以下幾點(diǎn):㈠由于缺少傳感器,故我們使用兩個(gè)定時(shí)/中斷計(jì)數(shù)器,T0作為里程模擬,T1作為時(shí)間模擬。㈡我們?cè)O(shè)定了兩組數(shù)列用于顯示,一組為不帶小數(shù)點(diǎn),適用于數(shù)碼管第四位第三位和第一位不帶小數(shù)點(diǎn)顯示;另一組則帶小數(shù)點(diǎn),適用于數(shù)碼管第二位帶小數(shù)點(diǎn)顯示。㈢對(duì)于數(shù)碼管顯示,我們采取動(dòng)態(tài)顯示以節(jié)省I/O口。㈣我們加入了矩陣鍵盤,以便可以切換計(jì)價(jià)模式。</p>
7、<p><b> 系統(tǒng)的主要功能:</b></p><p> 基于保定出租車收費(fèi)的計(jì)價(jià)器。</p><p><b> 作用:</b></p><p> 我們程序主要功能有:白天計(jì)價(jià)模式、夜晚計(jì)價(jià)模式、等待加收費(fèi)用功能。</p><p> 四、系統(tǒng)工作原理介紹:</p>
8、;<p> ?、?9C51單片機(jī)的功能及各管腳解釋說(shuō)明:</p><p> 89C51是一種帶4K字節(jié) FLASH存儲(chǔ)器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除1000
9、次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃速存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡(jiǎn)版本。AT89C51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案</p><p> 1.AT89C51 提供以下標(biāo)準(zhǔn)功能:4k字節(jié) Flash 閃速存存儲(chǔ)器,128字節(jié)
10、內(nèi)部RAM,32 個(gè)I/O 口線,兩個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)5向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電。同時(shí),AT89C51可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個(gè)硬件復(fù)位。</p><p> 2.管腳說(shuō)明:
11、 VCC:供電電壓 GND:接地。 P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。 P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門
12、電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。 P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器
13、或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),</p><p> RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。 ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6
14、。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)效。 /EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/
15、EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。 XTAL2:來(lái)自反向振蕩器的輸出。</p><p> ?、?位8段LED動(dòng)態(tài)顯示的原理電路:</p><p> 逐位地每隔一定時(shí)間輪流點(diǎn)亮各位數(shù)碼管,由于LED數(shù)碼管的余輝和人
16、眼的“視覺(jué)暫留”作用,只要控制好掃描時(shí)間間隔,則可以造成“多位同時(shí)亮”的假象,達(dá)到同時(shí)顯示的效果。</p><p> 動(dòng)態(tài)顯示節(jié)省I/O口,但顯示亮度不如靜態(tài)顯示的高,要調(diào)整好“掃描”速率,如果“掃描”速率較低,會(huì)出現(xiàn)閃爍現(xiàn)象。</p><p> ③電路設(shè)計(jì): 主程序電路</p><p><b> 矩陣鍵盤&
17、lt;/b></p><p> ?、茉O(shè)計(jì)此電路的原因:</p><p> 本次課程設(shè)計(jì)我們選用89C51單片機(jī),因?yàn)槠涔δ芊倍?,?shí)用性好,I/O口足夠,擁有兩個(gè)定時(shí)中斷,并且擁有復(fù)位功能。為了區(qū)分兩種狀態(tài)(白天計(jì)價(jià)與晚上計(jì)價(jià)),我們還需要兩個(gè)LED燈,和一個(gè)蜂鳴器。為了產(chǎn)生機(jī)械周期,需要晶振器。數(shù)碼管則選用4位數(shù)碼管,采用動(dòng)態(tài)顯示。我們需要兩個(gè)開關(guān),一個(gè)控制為選定白天計(jì)價(jià),直接焊在
18、電路板上,一個(gè)放在矩陣鍵盤上,這也是我們要添加矩陣鍵盤的原因。</p><p><b> 五、系統(tǒng)程序設(shè)計(jì):</b></p><p><b> ?、俪绦蛄鞒虉D:</b></p><p><b> ?、谠闯绦蚣白⑨專?lt;/b></p><p> #include<reg5
19、2.h></p><p> #define uint unsigned int</p><p> #define uchar unsigned char</p><p> uint num,m,timeber;//num:T0計(jì)時(shí)器的計(jì)數(shù)值;timeber:T1計(jì)數(shù)器的計(jì)數(shù)值;</p><p> uint time;</p
20、><p><b> float s;</b></p><p> sbit K=P1^3;</p><p> sbit LED1=P1^4;</p><p> sbit LED2=P1^5;</p><p> sbit TRP=P1^6;//定義各個(gè)接口</p><p>
21、; unsigned char code tab[]={0x0C0,0x0F9,</p><p> 0x0A4,0x0B0,0x99,0x92,0x82,0x0F8, 0x80,</p><p> 0x90,0x88,0x83,0x0C6,0x0A1,0x86,0x08E};//不帶小數(shù)點(diǎn)的數(shù)的代碼</p><p> unsigned char code s
22、s[]={0x40,0x79,</p><p> 0x24,0x30,0x19,0x12,0x02,0x78, 0x00,</p><p> 0x10,0x08,0x03,0x46,0x41,0x06,0x0E};//帶小數(shù)點(diǎn)的數(shù)的代碼</p><p> float code KM[]={4,5,6,7,8,9,10,11,12,13,14,15,16,17,
23、18,</p><p> 19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36</p><p> ,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,</p><p> 55,56,57,558,59,60,61,62,63,64,65,66,67,
24、68,69,70,71,72,</p><p> 73,74,75,76,77,78,79,80,81,82,83};//模擬里程數(shù)</p><p> void delay(uint x)//延遲子程序</p><p><b> {</b></p><p><b> uchar i;</b>
25、;</p><p> while(x-->0)</p><p><b> {</b></p><p> for(i=0;i<125;i++);</p><p><b> }</b></p><p><b> }</b></p&
26、gt;<p> void T0_int(void) interrupt 1 //定時(shí)中斷T0的中斷子程序 </p><p><b> { </b></p><p> TH0=0x3C; </p><p> TL0=0xB0;//初始值設(shè)置,每50ms中斷一次</p>
27、;<p><b> num--;</b></p><p> if(num==0)</p><p> {s=s+0.1;num=10;}//每0.5毫秒s增加0.1。</p><p><b> }</b></p><p> void out_t0(void) //T0初始設(shè)置
28、 </p><p><b> { </b></p><p> TMOD=0X11; //T0,T1均工作在模式一 </p><p> TH0=0X3C; </p><p> TL0=0XB0;
29、 </p><p><b> TR0=1;</b></p><p><b> }</b></p><p> void out_t1(void) //T1初始設(shè)置 </p><p> {TH1=0X02; </p><p&
30、gt; TL1=0X17;//每0.65s加1</p><p><b> TR1=1;</b></p><p><b> }</b></p><p> void T1_int(void) interrupt 3 //定時(shí)中斷T1的中斷子程序 </p><p><b>
31、{ </b></p><p> TH1=0x02; </p><p><b> TL1=0x17;</b></p><p> timeber--;</p><p> if(timeber==0)</p><p> {time++;ti
32、meber=10;}//time每0.65秒加1。</p><p><b> }</b></p><p> uchar code keycode_tab[]={0xee,0xed,0xeb,0xe7,0xde,0xdd,0xdb,</p><p> 0xd7,0xbe,0xbd,0xbb,0xb7,0x7e,0x7d,0x7b,0x77}
33、;</p><p> uchar b=200,keycode;</p><p> /*==========鍵盤行列反轉(zhuǎn)掃描子程序=============*/</p><p> void keyscan()</p><p><b> {</b></p><p> uchar keycod
34、e_L,keycode_H,i;</p><p><b> P3=0xf0;</b></p><p> keycode_H=P3&0xf0;</p><p> if(keycode_H!=0xf0)</p><p><b> {</b></p><p> d
35、elay(20);</p><p> if(keycode_H!=0xf0)</p><p> keycode_H=P3&0xf0;</p><p><b> }</b></p><p><b> P3=0x0f;</b></p><p> keycode_
36、L=P3&0x0f;</p><p> if(keycode_L!=0x0f)</p><p><b> {</b></p><p> delay(20);</p><p> if(keycode_L!=0x0f)</p><p> keycode_L=P3&0x0f;&
37、lt;/p><p><b> }</b></p><p> keycode=keycode_H+keycode_L; //keycode:鍵值</p><p> for(i=0;i<16;i++)</p><p><b> {</b></p><p>
38、 if(keycode==keycode_tab[i])</p><p> b=i; //b:按鍵序號(hào)</p><p><b> }</b></p><p><b> }</b></p><p>
39、; void main()//主程序開始</p><p><b> {</b></p><p> uint n,m,t,j,l;//n為數(shù)碼管從左往右數(shù)第二個(gè)位的值;m為小數(shù)點(diǎn)后一位的表示值;j為數(shù)碼管第一位的表示值,l為倍數(shù)值。t為里程數(shù)的代表值。</p><p><b> t=0;</b></p>
40、<p><b> l=1;</b></p><p><b> j=0;</b></p><p><b> m=0;</b></p><p><b> n=8;</b></p><p><b> time=0;</b&g
41、t;</p><p> timeber=1;</p><p><b> num=10;</b></p><p><b> out_t0();</b></p><p> out_t1();//各個(gè)值的賦值及初始化。</p><p><b> s=0;<
42、/b></p><p> LED1=1;LED2=0;//LED2燈亮,LED1滅,代表處于空乘狀態(tài)。</p><p><b> TRP=1;</b></p><p><b> while (1)</b></p><p> {P0=0x0C0;</p><p>
43、<b> P2=0xFE;</b></p><p> delay(10);</p><p><b> P2=0xFD;</b></p><p> delay(10);</p><p><b> P2=0xFB;</b></p><p><
44、b> P0=0x40;</b></p><p> delay(10);</p><p><b> P2=0xF7;</b></p><p><b> P0=0x0C0;</b></p><p> delay(10);//循環(huán)掃描,使數(shù)碼管顯示00.00</p>
45、<p> keyscan();//鍵掃描;</p><p> if(b==0)//如果矩陣鍵盤的0鍵位被按下,則break</p><p><b> {break;}</b></p><p> if(K==0)//如果K被按下,則break</p><p><b> {break;}}&
46、lt;/b></p><p><b> ET0=1;</b></p><p><b> ET1=1;</b></p><p><b> EA=1;</b></p><p><b> LED1=0;</b></p><p&g
47、t;<b> LED2=1;</b></p><p><b> TRP=0;</b></p><p> delay(100);</p><p> TRP=1;//打開中斷,LED1亮,LED2滅,蜂鳴器響1ms</p><p> if(K==0)//判斷K是否按下,按下則進(jìn)入白天計(jì)價(jià)模式&
48、lt;/p><p> {delay(10);</p><p><b> if(K==0)</b></p><p> {while(!K);</p><p><b> {while(1)</b></p><p><b> {P2=0xFE;</b>&
49、lt;/p><p> delay(10);</p><p><b> P2=0xFD;</b></p><p> delay(10);</p><p><b> P2=0xFB;</b></p><p><b> P0=0x00;</b></
50、p><p> delay(10);</p><p><b> P2=0xF7;</b></p><p><b> P0=0x0C0;</b></p><p> delay(10);//顯示08.00</p><p> while(s>=3)//當(dāng)里程大于3KM時(shí)&
51、lt;/p><p> {if(s>=KM[t]&&s<KM[t+1])//當(dāng)里程在KM[t]與KM[t+1]之間時(shí)</p><p><b> {n=n+1;</b></p><p><b> if(n>=10)</b></p><p> {n=n-10;j=j
52、+1;}//n+1,若n大于10,減10,進(jìn)位,j加1。</p><p><b> m=m+5;</b></p><p><b> if(m>=10)</b></p><p> {m=m-10;n=n+1;//若m大于10,減10,進(jìn)位,n加一;</p><p><b> i
53、f(n>=10)</b></p><p> {n=n-10;j=j+1;}若n大于10,n減10,進(jìn)位,j加一</p><p><b> }</b></p><p><b> t=t+1;}</b></p><p> if(time>=(36*l)&&
54、time<(36*(l+1)))//每23.4s加收1KM費(fèi)用</p><p><b> {n=n+1;</b></p><p><b> if(n>=10)</b></p><p> {n=n-10;j=j+1;}</p><p><b> m=m+5;</b
55、></p><p><b> if(m>=10)</b></p><p> {m=m-10;n=n+1;</p><p><b> if(n>=10)</b></p><p> {n=n-10;j=j+1;}</p><p><b> }
56、</b></p><p><b> l++;}</b></p><p><b> P0=0x0C0;</b></p><p><b> P2=0xFE;</b></p><p><b> delay(5);</b></p>
57、<p><b> P2=0xFD;</b></p><p> P0=tab[m];</p><p><b> delay(5);</b></p><p><b> P2=0xFB;</b></p><p><b> P0=ss[n];</b
58、></p><p><b> delay(5);</b></p><p><b> P2=0xF7;</b></p><p> P0=tab[j];</p><p> delay(5);}//顯示改變后的金額。</p><p><b> }</
59、b></p><p><b> }</b></p><p><b> }}</b></p><p> if(b==0)//判斷b是否按下,按下則進(jìn)入夜間模式,以下與白天模式差不多。</p><p><b> {while(1)</b></p><
60、;p> {m=2;P2=0xFE;</p><p> P0=tab[0];</p><p> delay(10);</p><p><b> P2=0xFD;</b></p><p> P0=tab[2];</p><p> delay(10);</p><p
61、><b> P2=0xFB;</b></p><p><b> P0=0x00;</b></p><p> delay(10);</p><p><b> P2=0xF7;</b></p><p><b> P0=0x0C0;</b><
62、;/p><p> delay(10);</p><p> while(s>=3)</p><p> {if(s>=KM[t]&&s<KM[t+1])</p><p><b> {n=n+1;</b></p><p><b> if(n>=1
63、0)</b></p><p> {n=n-10;j=j+1;}</p><p><b> m=m+7;</b></p><p><b> if(m>=10)</b></p><p> {m=m-10;n=n+1;</p><p><b>
64、 if(n>=10)</b></p><p> {n=n-10;j=j+1;}</p><p><b> }</b></p><p><b> t=t+1;}</b></p><p> if(time>=(36*l)&&time<(36*(l+1
65、)))</p><p><b> {n=n+1;</b></p><p><b> if(n>=10)</b></p><p> {n=n-10;j=j+1;}</p><p><b> m=m+7;</b></p><p><b&
66、gt; if(m>=10)</b></p><p> {m=m-10;n=n+1;</p><p><b> if(n>=10)</b></p><p> {n=n-10;j=j+1;}</p><p><b> }</b></p><p>
67、<b> l++;}</b></p><p><b> P0=0x0C0;</b></p><p><b> P2=0xFE;</b></p><p><b> delay(5);</b></p><p><b> P2=0xFD;&l
68、t;/b></p><p> P0=tab[m];</p><p><b> delay(5);</b></p><p><b> P2=0xFB;</b></p><p><b> P0=ss[n];</b></p><p><b&
69、gt; delay(5);</b></p><p><b> P2=0xF7;</b></p><p> P0=tab[j];</p><p> delay(5);}</p><p><b> }</b></p><p><b> }<
70、/b></p><p><b> }</b></p><p><b> 六、系統(tǒng)調(diào)試結(jié)果:</b></p><p><b> 開始顯示00.00</b></p><p> 按下電路板上的K顯示:</p><p><b> 按矩陣
71、電路上0鍵位</b></p><p><b> 夜間3KM后顯示</b></p><p><b> 早上3KM后顯示</b></p><p> 總體來(lái)說(shuō)顯示良好,沒(méi)有大問(wèn)題,小問(wèn)題就是時(shí)間稍有些不準(zhǔn),不過(guò)不影響總程序</p><p><b> 七、課程設(shè)計(jì)總結(jié):<
72、/b></p><p> ?、僭O(shè)計(jì)工作過(guò)程的歸納:</p><p> 本次課程設(shè)計(jì)的主程序我們小組兩人完成,按鍵控制程序則由張老師提供。一開始如何表示里程數(shù)還有停車時(shí)間讓我們困惑不已,表示里程數(shù)我們可以使用定時(shí)中斷,但是停車時(shí)間time的計(jì)數(shù)使用軟件定時(shí)好還是硬件定時(shí)好卻成了問(wèn)題,最后,考慮到程序的長(zhǎng)度以及復(fù)雜度,我們選取了硬件定時(shí),充分使用了實(shí)驗(yàn)用板的功能。在經(jīng)過(guò)課堂大作業(yè)的檢查
73、后,老師提出可以添加夜間行駛計(jì)價(jià)的建議,我們便加入了矩陣鍵盤,引入一個(gè)新的按鍵,來(lái)讓程序進(jìn)入夜間計(jì)價(jià)模式。數(shù)碼管的顯示方式的選取我們并沒(méi)有花太多的功夫,因?yàn)镮/O口有限,所以選取動(dòng)態(tài)掃描的方式。矩陣鍵盤的掃描則借鑒了張老師所給的程序,順利完成。在小數(shù)點(diǎn)顯示方面,我們額外添加了一組數(shù)組,里面的代碼經(jīng)過(guò)處理,dp位全部為0。在里程判斷方面,我們也添加了一組數(shù)組,每次選取該數(shù)組中相鄰的兩個(gè)數(shù),判斷里程是否在此之間,從而判斷費(fèi)用是否加減。在費(fèi)用
74、計(jì)算方面,我們也注意到了進(jìn)位,從而避免的錯(cuò)誤的發(fā)生。</p><p> ?、趯?shí)驗(yàn)中的問(wèn)題與存在的不足:</p><p> 停車加收費(fèi)用出現(xiàn)的很慢,甚至不出現(xiàn)。</p><p> 加入T1中斷時(shí)所有中斷都未響應(yīng)。</p><p><b> 按鍵不靈敏。</b></p><p> 矩陣鍵盤的使
75、用太少。</p><p> 未使用到液晶屏,數(shù)碼管信息量較少。</p><p> ?、劢鉀Q問(wèn)題的方法與建議:</p><p> 針對(duì)第一點(diǎn),我們檢查了程序,發(fā)現(xiàn)兩個(gè)中斷均設(shè)置為每50ms中斷一次,由于T0擁有較高的優(yōu)先級(jí),所以可能T1中斷大多會(huì)被重置,所以停車加收費(fèi)功能很少出現(xiàn),我們修改了T1中斷初始值,定位每65ms中斷一次,順利解決問(wèn)題。</p>
76、<p> 經(jīng)檢查,發(fā)現(xiàn)未給T1的初始值賦值,賦值完后,順利解決問(wèn)題。</p><p> 我們添加了延時(shí)去抖,并增加了延時(shí)時(shí)間,順利解決問(wèn)題。</p><p> 這是一個(gè)遺憾,不過(guò)也是我們努力的方向,我們會(huì)以做出更好的程序?yàn)槟繕?biāo),不斷地增強(qiáng)自身的技術(shù),來(lái)用單片機(jī)應(yīng)對(duì)一個(gè)又一個(gè)的問(wèn)題。</p><p> ④本次課程設(shè)計(jì)的認(rèn)識(shí)與收獲:</p&g
77、t;<p> 本次課程設(shè)計(jì),準(zhǔn)確無(wú)誤的達(dá)到了要求的目標(biāo)。雖然整個(gè)設(shè)計(jì)過(guò)程充滿了各種問(wèn)題和疑問(wèn),但都在不懈的努力下得到了解決,直到最后出租車計(jì)價(jià)器程序的完成。整個(gè)設(shè)計(jì)過(guò)程都離不開對(duì)程序的設(shè)計(jì)和課上知識(shí)的應(yīng)用,所以沒(méi)有足夠的理論知識(shí)幾乎不可能完成,由此可知平時(shí)的知識(shí)積累是多么重要。設(shè)計(jì)過(guò)程中難免枯燥乏味,但沒(méi)有付出哪有回報(bào),細(xì)心與耐心是必不可少的。這次課程設(shè)計(jì)對(duì)我們心理的鍛煉,對(duì)知識(shí)的鞏固,都起到了十分重要的作用。雖說(shuō)最后稍
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計(jì)---基于51單片機(jī)的出租車計(jì)價(jià)器
- 單片機(jī)課程設(shè)計(jì)--出租車計(jì)價(jià)器
- 單片機(jī)課程設(shè)計(jì)--出租車計(jì)價(jià)器
- 單片機(jī)課程設(shè)計(jì)---出租車計(jì)價(jià)器
- 單片機(jī)課程設(shè)計(jì)--出租車計(jì)價(jià)器
- 單片機(jī)課程設(shè)計(jì)出租車計(jì)價(jià)器
- 單片機(jī)課程設(shè)計(jì)----出租車計(jì)價(jià)器
- 單片機(jī)課程設(shè)計(jì)-出租車計(jì)價(jià)器
- 單片機(jī)課程設(shè)計(jì)--出租車計(jì)價(jià)器
- 基于51單片機(jī)的出租車計(jì)價(jià)器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--出租車計(jì)價(jià)器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---出租車計(jì)價(jià)器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)論文---出租車計(jì)價(jià)器
- 基于單片機(jī)的出租車計(jì)價(jià)器
- 基于單片機(jī)的出租車計(jì)價(jià)器設(shè)計(jì)
- 課程設(shè)計(jì)--基于單片機(jī)的出租車計(jì)價(jià)器的設(shè)計(jì)
- 基于單片機(jī)的出租車計(jì)價(jià)器的設(shè)計(jì)(課程設(shè)計(jì))
- 微機(jī)原理單片機(jī)課程設(shè)計(jì)--出租車計(jì)價(jià)
- 基于at89s51單片機(jī)的出租車計(jì)價(jià)器設(shè)計(jì)
- 基于51單片機(jī)的出租車計(jì)價(jià)器畢業(yè)設(shè)計(jì)論文
評(píng)論
0/150
提交評(píng)論