基于單片機(jī)出租車計(jì)費(fèi)系統(tǒng)畢業(yè)論文_第1頁(yè)
已閱讀1頁(yè),還剩46頁(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、<p><b>  摘 要</b></p><p>  隨著經(jīng)濟(jì)的發(fā)展,帶動(dòng)汽車行業(yè)快速發(fā)展,出租車日益普遍化,在市場(chǎng)經(jīng)濟(jì)的環(huán)境下,出租車計(jì)費(fèi)的公平性也成了大家在意的話題。了解在出租車上應(yīng)用的計(jì)費(fèi)系統(tǒng),對(duì)我們?nèi)粘3鲂杏兴鶐椭?lt;/p><p>  本設(shè)計(jì)主要分為三章,第一章主要分析并實(shí)現(xiàn)了255的計(jì)數(shù)功能,主要是利用計(jì)數(shù)器對(duì)外部傳感器檢測(cè)的脈沖計(jì)數(shù);第二章主

2、要分析并實(shí)現(xiàn)50000計(jì)數(shù)功能,主要也是利用計(jì)數(shù)器對(duì)外部傳感器檢測(cè)的脈沖計(jì)數(shù),當(dāng)車速很快時(shí)在一秒時(shí)間內(nèi)就會(huì)產(chǎn)生很多脈沖,這樣就可以防止溢出的情況;第三章主要分析和實(shí)現(xiàn)出租車機(jī)會(huì)系統(tǒng)以及它所用實(shí)現(xiàn)的外部硬件電路和軟件。</p><p>  本出租車計(jì)費(fèi)系統(tǒng)由單片機(jī)AT89C51和一些外圍電路組成,具有結(jié)構(gòu)簡(jiǎn)單、操作方便、顯示清晰、功能強(qiáng)大等特點(diǎn)。</p><p>  本方案使用液晶LCD_1

3、602作為顯示器,可以顯示數(shù)字使系統(tǒng)信息一目了然。比較真實(shí)地模擬出租車的空車、載客、到站及對(duì)各狀況的費(fèi)用的計(jì)算、統(tǒng)計(jì)和顯示等功能。</p><p>  本系統(tǒng)涉及到的理論知識(shí)有: AT89C51單片機(jī)工作原理及應(yīng)用,液晶的使用,出租車計(jì)費(fèi)系統(tǒng)的原理和實(shí)現(xiàn)方法。</p><p>  關(guān)鍵詞:?jiǎn)纹瑱C(jī)AT89C51 、 出租車計(jì)費(fèi)系統(tǒng) 、 LCD_1602</p><p&g

4、t;<b>  Abstract</b></p><p>  With the development of economy, the rapid development of automobile industry, the taxi increasingly common, in the environment of market economy, fairness taxi billi

5、ng became people care about the topic. Understand the accounting system in the taxi, on our daily travel help.</p><p>  This design is mainly divided into three chapters, the first chapter mainly analyzes an

6、d realizes 255 count features, mainly is the pulse count detection of external sensor using counter; the second chapter mainly analysis and the realization of the 50000 counting function, mainly is the use of pulse count

7、ing counter the external sensor detection, when the speed very quickly when in a second time in a lot of pulse, so that we can prevent overflow; taxi opportunity system and its external hardwar</p><p>  The

8、taxi billing system is composed of MCU AT89C51 and peripheral circuit, has the advantages of simple structure, convenient operation, clear display, powerful features.</p><p>  This scheme uses LCD_1602 as a

9、liquid crystal display, can display numbers enables the system information stick out a mile. A real simulation of empty taxis, passenger, arrival of the situation and the cost calculation, statistics and display function

10、.</p><p>  Theory of knowledge involved in this system are: AT89C51 single-chip microcomputer principle and application, the use of liquid crystal, principle and realization method of the taxi billing system

11、.</p><p>  Keywords :single chip microcomputer AT89C51, taxi billing system, LCD_1602</p><p><b>  目 錄</b></p><p><b>  摘 要1</b></p><p>  Abstra

12、ct2</p><p><b>  目 錄3</b></p><p>  第一章 總體設(shè)計(jì)方案及要求4</p><p>  1.1 255計(jì)數(shù)器的設(shè)計(jì)方案5</p><p>  1.2 50000計(jì)數(shù)器的設(shè)計(jì)方案5</p><p>  1.3 出租車計(jì)費(fèi)系統(tǒng)的設(shè)計(jì)方案6<

13、/p><p>  1.4 課程設(shè)計(jì)的任務(wù)要求7</p><p>  1.4.1 外部脈沖自動(dòng)計(jì)數(shù),自動(dòng)顯示。7</p><p>  1.4.3 課程設(shè)計(jì)的要求7</p><p>  第二章 硬件電路的設(shè)計(jì)8</p><p>  2.1 單片機(jī)的最小系統(tǒng)硬件電路的設(shè)計(jì)8</p><p>

14、  2. .1.1 單片機(jī)AT89S52的介紹9</p><p>  2.1.2 復(fù)位電路11</p><p>  2.1.3 時(shí)鐘電路12</p><p>  2.2 顯示硬件電路的設(shè)計(jì)12</p><p>  2.2.1 數(shù)碼管顯示電路12</p><p>  2.2.2 液晶顯示電路14</p

15、><p>  2.3 鍵盤硬件電路的設(shè)計(jì)16</p><p>  2.4 串行通信接口電路16</p><p>  2.5 電源電路的設(shè)計(jì)17</p><p>  2.6 255計(jì)數(shù)器的硬件的電路設(shè)計(jì)18</p><p>  2.7 50000計(jì)數(shù)器的硬件電路的設(shè)計(jì)19</p><p&

16、gt;  2.8出租車計(jì)費(fèi)系統(tǒng)的硬件電路設(shè)計(jì)21</p><p>  第三章 軟件設(shè)計(jì)22</p><p>  3.1 255計(jì)數(shù)器的軟件設(shè)計(jì)23</p><p>  3.2 50000計(jì)數(shù)器的軟件設(shè)計(jì)24</p><p>  3.3 出租車計(jì)費(fèi)系統(tǒng)軟件設(shè)計(jì)25</p><p>  第四章 仿真與調(diào)試2

17、6</p><p>  4.1 系統(tǒng)的調(diào)試26</p><p>  4.2 255計(jì)數(shù)器的仿真26</p><p>  4.3 50000計(jì)數(shù)器的仿真27</p><p>  4.3 50000計(jì)數(shù)器的仿真28</p><p><b>  第五章 總結(jié)29</b></p>

18、;<p>  第六章 附錄一 程序源代碼30</p><p>  6.1 255計(jì)數(shù)器源代碼30</p><p>  6.2 50000計(jì)數(shù)器源代碼34</p><p>  6.3 出租車計(jì)費(fèi)器程序源代碼38</p><p>  第七章 附錄二原理圖44</p><p>  7.1 255

19、計(jì)數(shù)器電路圖44</p><p>  7.2 50000計(jì)數(shù)器電路圖45</p><p>  7.3 出租車計(jì)費(fèi)系統(tǒng)電路圖46</p><p><b>  參考文獻(xiàn)47</b></p><p><b>  總體設(shè)計(jì)方案及要求</b></p><p>  本設(shè)計(jì)是一

20、個(gè)以單片機(jī)為控制核心的出租車計(jì)費(fèi)系統(tǒng),利用外中斷來(lái)對(duì)外部傳感器檢測(cè)的脈沖進(jìn)行計(jì)數(shù),采用下降沿觸發(fā)方式,當(dāng)外部的脈沖下降沿到來(lái)時(shí),觸發(fā)中斷計(jì)數(shù)加一,同時(shí)還有與外部的晶振電路、復(fù)位電路、LCD_1602顯示電路和按鍵電路結(jié)合,在與軟件配合就能實(shí)現(xiàn)出租車計(jì)費(fèi)。</p><p>  1.1 255計(jì)數(shù)器的設(shè)計(jì)方案</p><p>  以單片機(jī)為控制核心255計(jì)數(shù)器,實(shí)現(xiàn)0~255的加一計(jì)數(shù)。利用

21、外中斷來(lái)對(duì)外部傳感器檢測(cè)的脈沖進(jìn)行計(jì)數(shù),采用下降沿觸發(fā)方式,當(dāng)外部的脈沖下降沿到來(lái)時(shí),觸發(fā)中斷計(jì)數(shù)加一,同時(shí)還有與外部的晶振電路、復(fù)位電路、顯示電路數(shù)碼管驅(qū)動(dòng)電路等與在與軟件配合就能實(shí)現(xiàn)0~255的計(jì)數(shù)。其結(jié)構(gòu)原理框圖如下所示:</p><p>  圖1.1、255計(jì)數(shù)器原理框圖</p><p>  由原理框圖可以看出255計(jì)數(shù)器的設(shè)計(jì)思路,用單片機(jī)控制處理外部的信號(hào)及數(shù)據(jù)信息,同時(shí)也將相

22、應(yīng)的信息送給顯示電路顯示。振蕩電路也就是時(shí)鐘電路,主要給單片機(jī)提供準(zhǔn)確的時(shí)序讓單片機(jī)正常的工作。傳感器檢測(cè)的脈沖用于計(jì)數(shù),啟停電路主要用于停止、和啟動(dòng)計(jì)數(shù)器,復(fù)位電路用于單片機(jī)死機(jī)是復(fù)位從新工作。</p><p>  1.2 50000計(jì)數(shù)器的設(shè)計(jì)方案</p><p>  以單片機(jī)為控制核心50000計(jì)數(shù)器,實(shí)現(xiàn)0~5000的加一計(jì)數(shù)。利用外中斷來(lái)對(duì)外部傳感器檢測(cè)的脈沖進(jìn)行計(jì)數(shù),采用下降

23、沿觸發(fā)方式,當(dāng)外部的脈沖下降沿到來(lái)時(shí),觸發(fā)中斷計(jì)數(shù)加一,同時(shí)還有與外部的晶振電路、復(fù)位電路、顯示電路數(shù)碼管驅(qū)動(dòng)電路等與在與軟件配合就能實(shí)現(xiàn)0~50000的計(jì)數(shù)。其結(jié)構(gòu)原理框圖如下所示:</p><p>  圖1.2、50000計(jì)數(shù)器的原理框圖</p><p>  由原理框圖可以看出50000計(jì)數(shù)器的設(shè)計(jì)思路和255計(jì)數(shù)器的設(shè)計(jì)思路是一樣的,不在復(fù)述。</p><p>

24、;  1.3 出租車計(jì)費(fèi)系統(tǒng)的設(shè)計(jì)方案</p><p>  出租車計(jì)費(fèi)器具有時(shí)鐘,起步價(jià),里程計(jì)費(fèi),等待計(jì)費(fèi)及顯示幾個(gè)功能。本設(shè)計(jì)是一個(gè)以單片機(jī)為控制核心的出租車計(jì)費(fèi)系統(tǒng),利用單片機(jī)豐富的 IO端口,及其控制的靈活性,實(shí)現(xiàn)里程計(jì)費(fèi)功能和價(jià)格調(diào)節(jié)、顯示功能。,在與軟件配合就能實(shí)現(xiàn)出租車計(jì)費(fèi)。其結(jié)構(gòu)原理框圖如下所示:</p><p>  圖1.3 出租車計(jì)費(fèi)系統(tǒng)原理框圖</p>

25、<p>  由原理框圖可以看出出租車計(jì)費(fèi)系統(tǒng)思路,用單片機(jī)控制處理外部的信號(hào)及數(shù)據(jù)信息,同時(shí)也將相應(yīng)的信息送給顯示電路顯示。振蕩電路也就是時(shí)鐘電路,主要給單片機(jī)提供準(zhǔn)確的時(shí)序讓單片機(jī)正常的工作。傳感器檢測(cè)的脈沖用于計(jì)數(shù),送給單片機(jī)處理,運(yùn)算出路程和價(jià)格。啟停電路主要用于停止和啟動(dòng)計(jì)費(fèi),復(fù)位電路用于單片機(jī)死機(jī)是復(fù)位從新作。</p><p>  1.4 課程設(shè)計(jì)的任務(wù)要求</p><

26、p>  1.4.1 外部脈沖自動(dòng)計(jì)數(shù),自動(dòng)顯示。</p><p>  1設(shè)計(jì)一個(gè)255計(jì)數(shù)器:0-255計(jì)數(shù),計(jì)滿后自動(dòng)清0,重新計(jì)數(shù)(在數(shù)碼管中顯示)。</p><p>  2設(shè)計(jì)一個(gè)50000計(jì)數(shù)器:0-50000計(jì)數(shù),計(jì)滿后自動(dòng)清0,重新計(jì)數(shù)(在數(shù)碼管中顯示)。</p><p>  1.4.2 設(shè)計(jì)一個(gè)出租車計(jì)費(fèi)系統(tǒng):

27、 </p><p>  起步價(jià)為5元(2km以內(nèi)),2km后,0.8元/0.5km;要求每500m刷新計(jì)費(fèi)一次,在8位數(shù)碼管中,前3位顯示數(shù)碼管顯示里程數(shù),后3位數(shù)碼管顯示價(jià)錢(角,元,十元,百元)</p><p>  1.4.3 課程設(shè)計(jì)的要求</p><p>  1、根據(jù)任務(wù)要求選擇方案、設(shè)計(jì)電路、確定元器件型號(hào)和參數(shù)<

28、/p><p>  2、硬件設(shè)計(jì):要求設(shè)計(jì)出完整的電路原理圖,包括電源模塊、單片機(jī)最小系統(tǒng)電路、按鍵電路、報(bào)時(shí)電路、顯示電路。</p><p>  3、軟件設(shè)計(jì):包括編程思路,主程序和各子程序模塊的流程圖及編寫方法,并用匯編語(yǔ)言或C語(yǔ)言編寫出完整的源程序。</p><p>  4、按圖焊接電路,檢查無(wú)誤后通電調(diào)試,調(diào)試電路的功能是否符合要求。 </p>&l

29、t;p>  5、調(diào)試與仿真:對(duì)設(shè)計(jì)的硬件和程序進(jìn)行仿真調(diào)試,并給出仿真結(jié)果。制作實(shí)物進(jìn)行調(diào)試。</p><p><b>  硬件電路的設(shè)計(jì)</b></p><p>  硬件電路分為255計(jì)數(shù)器的硬件電路、50000計(jì)數(shù)器的硬件電路和出租車計(jì)費(fèi)系統(tǒng)的硬件電路三部分組成,而三個(gè)部分的硬件電路有重疊的地方,都是以單片機(jī)為控制核心的,即主控制電路是一樣的,電源電路也是一

30、樣的,255與50000計(jì)數(shù)器的顯示電路也是一樣的等等,現(xiàn)將各部分電路的工作原理分析如下</p><p>  2.1 單片機(jī)的最小系統(tǒng)硬件電路的設(shè)計(jì)</p><p>  單片機(jī)的最小系統(tǒng)由單片機(jī)和時(shí)鐘電路、復(fù)位電路以及電源電路組成,單片機(jī)的I/O接相應(yīng)的處理電路,其原理圖如下所示:</p><p>  圖2.1單片機(jī)的最小系統(tǒng)</p><p&g

31、t;  主機(jī)選用INTEL公司的MCS-51系列單片機(jī)89C51來(lái)實(shí)現(xiàn),利用單片機(jī)軟件編程靈活、自由度大的特點(diǎn),可擦除下載,力求用軟件完善各種控制算法和邏輯控制。本系統(tǒng)選用的89C51芯片時(shí)時(shí)鐘可達(dá)12MHZ,運(yùn)算速度快,控制功能完善,完全能滿足溫度控制系統(tǒng)的要求。其內(nèi)部具有128字節(jié)數(shù)據(jù)存儲(chǔ)器RAM,還可以通過(guò)地址、數(shù)據(jù)線進(jìn)行外圍擴(kuò)展。而且內(nèi)部含有4KB的EPROM不需要外擴(kuò)展存儲(chǔ)器,也有數(shù)據(jù)通信接口,通過(guò)TXD、RXD與PC機(jī)連接,

32、可以進(jìn)行人機(jī)操作,使得操作更加簡(jiǎn)單、方便。具有五個(gè)中斷源,兩個(gè)中斷優(yōu)先級(jí),兩個(gè)外部中斷、兩個(gè)定時(shí)中斷還用一個(gè)通信中斷</p><p>  .1.1 單片機(jī)AT89S52的介紹</p><p>  AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。使用ATMEL 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上

33、Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方AT89S52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,256字節(jié)RAM,32 位I/O 線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操

34、作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。R8 位微控制器8K 字節(jié)在系統(tǒng)可編程,其管腳功能圖如下所示。</p><p>  圖2.2 STC89S52的管腳圖</p><p><b>  1、功能管腳描述</b

35、></p><p><b>  VCC : 電源</b></p><p><b>  GND: 地</b></p><p>  P0 口:P0口是一個(gè)8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)P0端口寫“1”時(shí),引腳用作高阻抗輸入。當(dāng)訪問(wèn)外部程和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作為低8位地址在這

36、種模式下,P0具有內(nèi)部上拉電阻。在flash編程時(shí),P0口也用接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。</p><p>  P1 口:P1 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P1 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,

37、P1.0P1.分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和時(shí)器/計(jì)數(shù)器的觸發(fā)輸入(P1.1/T2EX),具體如下表所示。在flash編程和校驗(yàn)時(shí)P1口接收低8位地址字節(jié)。</p><p>  引腳號(hào) 第二功能P1.0 T2(定時(shí)器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入),時(shí)鐘輸出;P1.1 T2EX(定時(shí)器/計(jì)數(shù)器T2的捕捉/重載觸發(fā)信號(hào)和方向控制)P1.5 MOSI(在系統(tǒng)編程用);P1.6 MISO(在系統(tǒng)

38、編程用);P1.7 SCK(在系統(tǒng)編程用)</p><p>  P2 口:P2 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P2 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問(wèn)外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX @DPTR)時(shí),P2 口送

39、出高八位地址。在這種應(yīng)用中,P2 口很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址(如MOVX @RI)訪問(wèn)外部據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容。在flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號(hào)。</p><p>  P3 口:P3 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p2 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P3 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作

40、為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。在flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號(hào)。</p><p>  2、引腳第二功能P3.0 RXD(串行輸入);P3.1 TXD(串行輸出);P3.2 INT0(外部中斷0);P3.3 INT0(外部中斷0);P3.4 T0(定時(shí)器0外部輸入);P3.5 T1(定時(shí)器1

41、外部輸入);P3.6 WR(外部數(shù)據(jù)存儲(chǔ)器寫選通);P3.7 RD(外部數(shù)據(jù)存儲(chǔ)器寫選通) RST: 復(fù)位輸入。晶振工作時(shí),RST腳持續(xù)2 個(gè)機(jī)器周期高電平將使單片機(jī)復(fù)位??撮T狗計(jì)時(shí)完成后,RST 腳輸出96 個(gè)晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無(wú)效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。ALE/PROG:地址鎖存控制信號(hào)(ALE)是訪問(wèn)外部程序存儲(chǔ)器時(shí),鎖存低8 位地址的輸出脈沖

42、。在flash編程時(shí),此引腳(PROG)也用作編程輸入脈沖。在一般情況下,</p><p>  ALE 以晶振六分之一的固定頻率輸出脈沖,可用作為外部定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),ALE脈沖將會(huì)跳過(guò)。如果需要,通過(guò)將地址為8EH的SFR的第0位置 “1”,ALE操作將無(wú)效。這一位置 “1”,ALE 僅在執(zhí)行MOVX 或MOVC指令時(shí)有效。否則,ALE 將被微弱拉高。這個(gè)ALE 使能

43、標(biāo)志位(地址為8EH的SFR的第0位)的設(shè)置對(duì)微控制器處于外部執(zhí)行模式下無(wú)效。 </p><p>  PSEN:外部程序存儲(chǔ)器選通信號(hào)(PSEN)是外部程序存儲(chǔ)器選通信號(hào)。當(dāng)AT89S52從外部程序存儲(chǔ)器執(zhí)行外部代碼時(shí),PSEN在每個(gè)機(jī)器周期被激活兩次,而在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),PSEN將不被激活。</p><p>  EA/VPP:訪問(wèn)外部程序存儲(chǔ)器控制信號(hào)。為使能從0000H 到FFF

44、FH的外部程序存儲(chǔ)器讀取指令,EA必須接GND。為了執(zhí)行內(nèi)部程序指令,EA應(yīng)該接VCC。在flash編程期間,EA也接收12伏VPP電壓。</p><p>  XTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端</p><p>  XTAL2:振蕩器反相放大器的輸出端</p><p>  2.1.2 復(fù)位電路</p><p>  復(fù)位使單

45、片機(jī)處于起始狀態(tài),并從該起始狀態(tài)開始運(yùn)行。AT89C51的RST引腳為復(fù)位端,該引腳連續(xù)保持2個(gè)機(jī)器周期(24個(gè)時(shí)鐘振動(dòng)周期)以上高電平,則可使單片機(jī)復(fù)位。內(nèi)部復(fù)位電路在每一個(gè)機(jī)器周期的S5P2期間采樣斯密特觸發(fā)器的輸出端,該觸發(fā)器可抑制RST引腳的噪聲干擾,并在復(fù)位期間不產(chǎn)生ALE信號(hào),</p><p><b>  圖2.3 復(fù)位電路</b></p><p>  內(nèi)

46、部RAM處于不斷電狀態(tài)。其中的數(shù)據(jù)信息不會(huì)丟失,也即復(fù)位后,只影響SFR中的內(nèi)容,內(nèi)部RAM中的數(shù)據(jù)不受影響。外部復(fù)位有上電復(fù)位和按鍵電平復(fù)位。由于單片機(jī)運(yùn)行過(guò)程中,其本身的干擾或外界干擾會(huì)導(dǎo)致出錯(cuò),此時(shí)我們可按復(fù)位鍵重新開始運(yùn)行。為了便于本設(shè)計(jì)運(yùn)行調(diào)試,復(fù)位電路采用按鍵復(fù)位方式。</p><p>  2.1.3 時(shí)鐘電路 </p><p>  時(shí)鐘電路是單片機(jī)的心臟,它控制著單片機(jī)的工作

47、節(jié)奏。MCS-51單片機(jī)允許的時(shí)鐘頻率是因型號(hào)而異的,其典型值為12MHZ。AT89C51內(nèi)部有一個(gè)反相振蕩放大器,XTAL1 和 XTAL2分別是該反向振蕩放大器的輸入端和輸出端。該反向放大器可配置為片內(nèi)振蕩器,石晶振蕩和陶瓷振蕩均可采用。本設(shè)計(jì)采用的晶振頻率為12MHZ。51系列單片機(jī)還可使用外部時(shí)鐘。在使用外部時(shí)鐘時(shí),外部時(shí)鐘必須從XTAL1輸入,而XTAL2懸空。時(shí)鐘電路如下圖所示:</p><p&

48、gt;<b>  圖2.4 時(shí)鐘電路</b></p><p>  2.2 顯示硬件電路的設(shè)計(jì)</p><p>  顯示電路有數(shù)碼管顯示電路和液晶顯示電路,計(jì)數(shù)器采用的是數(shù)碼管顯示電路,出租車計(jì)費(fèi)系統(tǒng)采用的是液晶顯示電路。</p><p>  2.2.1 數(shù)碼管顯示電路</p><p><b>  1、數(shù)碼管介紹

49、</b></p><p>  單片機(jī)應(yīng)用系統(tǒng)中使用的顯示器主要有發(fā)光二極管顯示器,簡(jiǎn)稱LED;液晶顯示器,簡(jiǎn)稱LCD。前者價(jià)廉,配置靈活,與單片機(jī)接口方便;后者可進(jìn)行圖形顯示,但接口復(fù)雜,成本較高。結(jié)合本設(shè)計(jì)的特點(diǎn),在這里系統(tǒng)的顯示采用發(fā)光二極管作為顯示器件。</p><p>  單片機(jī)中使用7段LED構(gòu)成字形“8”,另外,還與一個(gè)小數(shù)點(diǎn)發(fā)光二極管用以顯示數(shù)字、符號(hào)及小數(shù)點(diǎn)。這

50、種顯示器有共陰極和共陽(yáng)極兩種,如圖2.15所示。發(fā)光二極管的陽(yáng)極連在一起稱為共陽(yáng)極顯示器,陰極連在一起的稱為共陰極顯示器。一位顯示器由八個(gè)發(fā)光二極管組成,其中,7個(gè)發(fā)光二極管構(gòu)成字形“8”的各個(gè)筆劃(段)a-g,另一個(gè)小數(shù)點(diǎn)為dp發(fā)光二極管。當(dāng)在某段發(fā)光二極管施加一定的正向電壓是,該段筆劃即點(diǎn)亮;不加電壓則該段二極管不亮。為了保護(hù)各段LED不被損壞,需要外加限流電阻.</p><p>  圖2.5 數(shù)碼管管腳&

51、lt;/p><p>  單片機(jī)中使用7段LED構(gòu)成字形“8”,另外,還與一個(gè)小數(shù)點(diǎn)發(fā)光二極管用以顯示數(shù)字、符號(hào)及小數(shù)點(diǎn)。這種顯示器有共陰極和共陽(yáng)極兩種,如圖2.15所示。發(fā)光二極管的陽(yáng)極連在一起稱為共陽(yáng)極顯示器,陰極連在一起的稱為共陰極顯示器。一位顯示器由八個(gè)發(fā)光二極管組成,其中,7個(gè)發(fā)光二極管構(gòu)成字形“8”的各個(gè)筆劃(段)a-g,另一個(gè)小數(shù)點(diǎn)為dp發(fā)光二極管。當(dāng)在某段發(fā)光二極管施加一定的正向電壓是,該段筆劃即點(diǎn)亮;

52、不加電壓則該段二極管不亮。為了保護(hù)各段LED不被損壞,需要外加限流電阻.</p><p>  如果要顯示某個(gè)字形,則應(yīng)使此字形的相應(yīng)段點(diǎn)亮,也即送一個(gè)不同的電平組合代表的數(shù)據(jù)來(lái)控制LED的顯示字形,此數(shù)據(jù)稱為字符的段碼。數(shù)據(jù)字位數(shù)與LED段碼的關(guān)系如表所示。</p><p><b>  2、數(shù)碼電路的設(shè)計(jì)</b></p><p>  外部脈沖通

53、過(guò)計(jì)數(shù),單片機(jī)處理,顯示到數(shù)碼管上,數(shù)碼管顯示一般用動(dòng)態(tài)顯示和靜態(tài)顯示,本設(shè)計(jì)采用的都是動(dòng)態(tài)顯示,能節(jié)省I/O端口資源,是8段的共陰極數(shù)碼管。數(shù)碼管用的是八位共陽(yáng)的發(fā)光二極管組成,只要賦予低電平對(duì)應(yīng)的發(fā)光二極管就點(diǎn)亮,八段發(fā)光二極管的亮暗組合就能組成0~F十六數(shù)字,利用數(shù)碼管的動(dòng)態(tài)掃描就能清晰穩(wěn)定的顯示當(dāng)前的計(jì)數(shù)值,其電路圖如下所示:</p><p>  圖2.6 數(shù)碼管顯示電路</p><p

54、>  顯示電路是由數(shù)碼管和75HC573組成,數(shù)碼管用來(lái)顯示當(dāng)前的計(jì)數(shù)值,573是用來(lái)做數(shù)碼管的驅(qū)動(dòng)的。</p><p>  2.2.2 液晶顯示電路</p><p>  液晶顯示電路主要用于出租的經(jīng)費(fèi)系統(tǒng)的顯示,將出租車的路程以及價(jià)格顯示出來(lái)。</p><p><b>  液晶的介紹</b></p><p>&l

55、t;b> ?、?、基本操作時(shí)序 </b></p><p>  讀狀態(tài) 輸入:RS=L, R/W=H,E=H 輸出:D0~D7=狀態(tài)字</p><p>  讀數(shù)據(jù) 輸入:RS=H, R/W=H,E=H 輸出:無(wú)</p><p>  寫指令 輸入:RS=L, R/W=L,D0~D7=指令碼,E=高脈沖 輸出:D0

56、~D7=數(shù)</p><p>  寫數(shù)據(jù) 輸入:RS=H, R/W=L, ,D0~D7=數(shù)據(jù),E=高脈沖 輸出:無(wú)。</p><p> ?、凇?液晶1602接口信號(hào)寫操作時(shí)序 </p><p>  通過(guò) RS 確定是寫數(shù)據(jù)還是寫命令。讀/寫控制端設(shè)置為寫模式,即低電平。 </p><p>  將數(shù)據(jù)或命令送達(dá)數(shù)據(jù)線上,給

57、E 一個(gè)高脈沖將數(shù)據(jù)送入液晶控制器,完成寫操作。寫操作時(shí)序如下圖所示:</p><p>  圖2.7 液晶些操作時(shí)序</p><p> ?、邸?液晶1602接口信號(hào)</p><p>  2、液晶顯示電路的設(shè)計(jì)</p><p>  如圖所示:液晶的數(shù)據(jù)線接P0口,用來(lái)傳輸顯示數(shù)據(jù)的信息。而RS、RW、E分別接單片機(jī)的P2.5、P2.6、P2.7

58、口,控制液晶的讀寫操作。通過(guò)單片機(jī)的控制顯示出租車計(jì)費(fèi)系統(tǒng)的路程和價(jià)格。其原理圖如下所示:</p><p>  圖2.8 液晶顯示硬件電路</p><p>  2.3 鍵盤硬件電路的設(shè)計(jì)</p><p>  如圖所示按鍵KEY10、KEY11分別與P3.2(INTO)、P3.3(INT1)相連,采用外部中斷方式。當(dāng)外部中斷1響應(yīng),就可以進(jìn)行計(jì)數(shù)器的停止和啟動(dòng)控制,在

59、出租車計(jì)費(fèi)系統(tǒng)中就用來(lái)控制計(jì)費(fèi)的開始于結(jié)束,其原理圖如下所示。</p><p><b>  圖2.9 鍵盤電路</b></p><p>  2.4 串行通信接口電路</p><p>  目前,廣泛使用的串行數(shù)據(jù)接口標(biāo)準(zhǔn)有一,一與一三種。其中一是美國(guó)電子工業(yè)協(xié)會(huì)正式公布的串口總線標(biāo)準(zhǔn),也是目前最為常用的串行接口標(biāo)準(zhǔn),用來(lái)實(shí)現(xiàn)計(jì)算機(jī)與計(jì)算機(jī)之間,

60、計(jì)算機(jī)與外設(shè)之間的數(shù)據(jù)通訊。串行通信接口的基本任務(wù)是實(shí)現(xiàn)數(shù)據(jù)格式化。來(lái)自的是普通的并行數(shù)據(jù),接口電路應(yīng)具有實(shí)現(xiàn)不同串行通信方式下的數(shù)據(jù)格式化的任務(wù)。具體任務(wù)是:</p><p><b>  進(jìn)行串-并轉(zhuǎn)換;</b></p><p><b>  控制數(shù)據(jù)傳輸速率;</b></p><p><b>  進(jìn)行錯(cuò)誤檢測(cè);

61、</b></p><p>  進(jìn)行TTL與EIA電平轉(zhuǎn)換;</p><p>  提供一一接口標(biāo)準(zhǔn)所要求的信號(hào)線。</p><p>  由于電平和TTL電平不匹配,因此要實(shí)現(xiàn)單片機(jī)和機(jī)之間的通信,必須在它們之間加接電平轉(zhuǎn)換器。電平轉(zhuǎn)換器有232電平轉(zhuǎn)換和485電平轉(zhuǎn)換,本設(shè)計(jì)采用232電平轉(zhuǎn)換,系統(tǒng)設(shè)計(jì)采用公司的一接口芯,這是一種標(biāo)準(zhǔn)的一接口芯片。只需巧電

62、源供電,其內(nèi)部的電源變化成士電源用于通信。該芯片集成有兩路收發(fā)器,可將單片機(jī)輸入的電平轉(zhuǎn)換為電平發(fā)送給從機(jī),或?qū)臋C(jī)接收的電平轉(zhuǎn)換為電平發(fā)送給單片機(jī)。通過(guò)這樣的電平轉(zhuǎn)換實(shí)現(xiàn)主機(jī)和從機(jī)的通信,本設(shè)計(jì)的MAX232為雙列直插16腳封裝。系統(tǒng)串口通信電路如下圖所示。</p><p>  圖2.10 串行通信接口電路</p><p>  2.5 電源電路的設(shè)計(jì)</p><p&

63、gt;  系統(tǒng)所用直流電源由三端集成穩(wěn)壓器組成的串聯(lián)型直流穩(wěn)壓電源提供。設(shè)計(jì)中選用了雙12V的電源電壓變壓器和四個(gè)三端集成穩(wěn)壓器,分別提供+5V、+8V和一5V、-8V直流電壓,輸出電流均為1A。LM7805、LM7808和LM7905、LM7908的連接方法都一樣。變壓器將的市電降壓后再通過(guò)整流橋整流之后采用了大容量的電解電容進(jìn)行濾波,以減小輸出電壓紋波。由于電解電容器在高頻下工作存在電感特性,對(duì)于來(lái)自電源側(cè)的高頻干擾不能抑制,導(dǎo)致電

64、流紋波很大,因此在整流電路后加入高頻電容改善紋波效果。給各器件提供電源,使其更好的工作。同時(shí)還采用了保護(hù)電路,在正、負(fù)電源兩端分別串聯(lián)了保險(xiǎn)管起雙重保險(xiǎn),當(dāng)負(fù)載功率過(guò)大保險(xiǎn)絲就會(huì)熔斷,三端集成穩(wěn)壓管的輸入、輸出反接了二極管保護(hù),避免反向電流過(guò)大擊穿穩(wěn)壓管,起到了很好的保護(hù)作用,電源電路如圖2-17和2-18所示。</p><p><b>  圖2.11電源電路</b></p>

65、<p>  2.6 255計(jì)數(shù)器的硬件的電路設(shè)計(jì)</p><p>  255計(jì)數(shù)器電路主要有電源電路,顯示電路、控制電路和顯示驅(qū)動(dòng)電路以及傳感器檢測(cè)電路等組成,主要實(shí)現(xiàn)0~255的計(jì)數(shù)功能。</p><p>  圖2.12 255計(jì)數(shù)器原理圖</p><p>  顯示電路主要用于顯示,控制電路組要用于控制計(jì)數(shù)功能,顯示電路用于顯示當(dāng)前的計(jì)數(shù)值,驅(qū)動(dòng)電路主

66、要用于驅(qū)動(dòng)數(shù)碼管的顯示,傳感器主要用于檢測(cè)外部的信號(hào)。</p><p>  2.7 50000計(jì)數(shù)器的硬件電路的設(shè)計(jì)</p><p>  50000計(jì)數(shù)器電路主要有電源電路,顯示電路、控制電路和顯示驅(qū)動(dòng)電路等組成,主要實(shí)現(xiàn)0~50000的計(jì)數(shù)功能。</p><p>  圖2.13 5000計(jì)數(shù)器原理圖</p><p>  2.8出租車計(jì)費(fèi)系

67、統(tǒng)的硬件電路設(shè)計(jì)</p><p>  出租車計(jì)費(fèi)系統(tǒng)電路主要有電源電路,顯示電路、控制電路和顯示驅(qū)動(dòng)電路等組成,主要實(shí)現(xiàn)路程和價(jià)格的統(tǒng)計(jì)并顯示。</p><p>  圖2.14 出租車計(jì)費(fèi)系統(tǒng)電路</p><p><b>  軟件設(shè)計(jì)</b></p><p>  在微機(jī)測(cè)控系統(tǒng)中,軟件與硬件同樣重要。硬件是系統(tǒng)的軀體,軟

68、件則是靈魂,當(dāng)系統(tǒng)的硬件電路設(shè)計(jì)好之后,系統(tǒng)的主要功能還是要靠軟件來(lái)實(shí)現(xiàn),而且軟件的設(shè)計(jì)在很大程度上決定了測(cè)控系統(tǒng)的性能。為了滿足系統(tǒng)的要求,編制軟件時(shí)一般要符合以下基本要求:</p><p> ?。?)易理解性、易維護(hù)性 </p><p>  在軟件的設(shè)計(jì)方法中,結(jié)構(gòu)化設(shè)計(jì)是最好的一種設(shè)計(jì)方法,這種設(shè)計(jì)方法是由整體到局部,然后再由局部到細(xì)節(jié),先考慮整個(gè)系統(tǒng)所要實(shí)現(xiàn)的功能,確定整體目標(biāo),

69、然后把這個(gè)目標(biāo)分成一個(gè)個(gè)的任務(wù),任務(wù)中可以分成若干個(gè)子任務(wù),這樣逐層細(xì)分,逐個(gè)實(shí)現(xiàn);</p><p> ?。?)實(shí)時(shí)性 實(shí)時(shí)性是電子測(cè)量系統(tǒng)的普遍要求</p><p>  即要求系統(tǒng)及時(shí)響應(yīng)外部事件的發(fā)生,并及時(shí)給出處理結(jié)果。近年來(lái),由于硬件的集成度與運(yùn)算速度的提高,配合相應(yīng)的軟件,實(shí)時(shí)性比較容易滿足設(shè)計(jì)要求;</p><p><b> ?。?)準(zhǔn)確性

70、 </b></p><p>  準(zhǔn)確性 準(zhǔn)確性對(duì)整個(gè)系統(tǒng)具有重要意義,尤其是測(cè)量系統(tǒng),系統(tǒng)要進(jìn)行一定量的運(yùn)算,算法的正確性和準(zhǔn)確性對(duì)結(jié)果有著直接的影響,因此在算法的選擇、計(jì)算的精度等方面都要符合設(shè)計(jì)的要求。</p><p><b> ?。?)可靠性</b></p><p>  可靠性是系統(tǒng)軟件最重要的指標(biāo)之一,作為能夠穩(wěn)定運(yùn)行的系

71、統(tǒng),抗干擾技術(shù)的應(yīng)用是必不可少的,最起碼的要求是在軟件受到干擾出現(xiàn)異常時(shí),系統(tǒng)還能恢復(fù)正常工作。</p><p>  結(jié)合上述編制系統(tǒng)軟件的基本要求,首先討論軟件的設(shè)計(jì)思想。</p><p>  系統(tǒng)的軟件由三大模塊組成:主程序模塊、功能實(shí)現(xiàn)模塊和運(yùn)算控制模塊。</p><p>  3.1 255計(jì)數(shù)器的軟件設(shè)計(jì)</p><p>  255

72、計(jì)數(shù)器的軟件設(shè)計(jì)包括顯示子程序,控制子程序,外部中斷子程序,計(jì)數(shù)子程序和主程序其程序的流程圖如下:</p><p>  圖3.1 255計(jì)數(shù)器軟件流程圖</p><p>  程序首先初始化,然后查詢是否有脈沖輸入,沒(méi)有脈沖就繼續(xù)查詢。當(dāng)有脈沖輸入時(shí),下降沿觸發(fā)中,使計(jì)數(shù)加1,來(lái)一個(gè)脈沖進(jìn)行一次加1.當(dāng)計(jì)數(shù)計(jì)到255時(shí),使清零。從新開始計(jì)數(shù)</p><p>  3.2

73、 50000計(jì)數(shù)器的軟件設(shè)計(jì)</p><p>  50000計(jì)數(shù)器的軟件設(shè)計(jì)包括顯示子程序,控制子程序,外部中斷子程序,計(jì)數(shù)子程序和主程序其程序的流程圖如下:</p><p>  圖3.2 50000計(jì)數(shù)器軟件流程圖</p><p>  程序首先初始化,然后查詢是否有脈沖輸入,沒(méi)有脈沖就繼續(xù)查詢。當(dāng)有脈沖輸入時(shí),下降沿觸發(fā)中,使計(jì)數(shù)加1,來(lái)一個(gè)脈沖進(jìn)行一次加1.當(dāng)

74、計(jì)數(shù)計(jì)到255時(shí),使清零。從新開始計(jì)數(shù)</p><p>  3.3 出租車計(jì)費(fèi)系統(tǒng)軟件設(shè)計(jì)</p><p>  出租車計(jì)費(fèi)系統(tǒng)的軟件設(shè)計(jì)包括液晶顯示子程序,控制子程序,外部中斷子程序,計(jì)數(shù)子程序和主程序其程序的流程圖如下:</p><p>  圖3.3 出租車計(jì)費(fèi)系統(tǒng)的軟件流程圖</p><p><b>  仿真與調(diào)試</b&

75、gt;</p><p><b>  4.1 系統(tǒng)的調(diào)試</b></p><p>  硬件電路調(diào)試,先用proteus仿真之后,在去買好元器件清單,焊接電路。焊接要特別小心,要仔細(xì)的對(duì)照電路圖,既不能使電路短路也不能是電路開路,保持電路的暢通,并在相應(yīng)的位置裝上發(fā)光二級(jí)管提示電路通電,可以減輕硬件電路的調(diào)試?yán)щy,還有芯片的焊接要根據(jù)芯片資料了解管腳的功能去焊接,不然很容

76、易燒壞芯片,如過(guò)芯片的工作不正常先觀察芯片管腳有無(wú)接觸,或者芯片的使能是不是根據(jù)相應(yīng)的要求接的,在用萬(wàn)用表去測(cè)試電源管腳是否通電,通電后在去測(cè)相應(yīng)的管腳是否輸出相應(yīng)的電平,如果沒(méi)有就是芯片有問(wèn)題,如果相應(yīng)位置的二極管沒(méi)有點(diǎn)亮,先觀察二級(jí)管有沒(méi)接反,如果沒(méi)接反就用萬(wàn)用表去測(cè)看是否有電壓,如果沒(méi)有電壓說(shuō)明沒(méi)通電,如果有電壓說(shuō)明二極管壞了,當(dāng)然也要根據(jù)軟件結(jié)合,測(cè)試數(shù)碼管給以程序,8段數(shù)碼管一段一段的觀察,看是否管腳接錯(cuò),如果斷碼接錯(cuò)了等顯示

77、數(shù)據(jù)就會(huì)錯(cuò)亂。</p><p>  系統(tǒng)軟件程序調(diào)試,程序調(diào)試先在KEIL軟件里寫好各模塊程序,在一個(gè)個(gè)子程序調(diào)試,結(jié)合proteus仿真成功后,再將所有的程序拼在一起調(diào)試,軟件調(diào)試注意的主要是定時(shí)中的的初始化,算好中斷時(shí)間,還有按鍵程序,看是否讀取得到相應(yīng)的電平,其他的就沒(méi)沒(méi)什么了吧。</p><p>  4.2 255計(jì)數(shù)器的仿真</p><p>  1、啟動(dòng)

78、計(jì)數(shù)開始,其仿真圖如下:</p><p>  圖4.1 255 計(jì)數(shù)器仿真圖</p><p>  4.3 50000計(jì)數(shù)器的仿真</p><p>  啟動(dòng)計(jì)數(shù)開始,其仿真圖如下:</p><p>  圖4.2 50000計(jì)數(shù)器仿真圖</p><p>  圖4.3 50000計(jì)數(shù)器仿真圖</p><

79、p>  4.3 50000計(jì)數(shù)器的仿真</p><p>  啟動(dòng)計(jì)費(fèi)器開始計(jì)費(fèi),其仿真圖如下:</p><p>  圖4.4 出租車計(jì)費(fèi)器仿真圖</p><p>  圖4.4 出租車計(jì)費(fèi)器仿真圖</p><p><b>  總結(jié)</b></p><p>  社會(huì)是不斷變化的、發(fā)展的,眼下社

80、會(huì)發(fā)展迅速,對(duì)人才的要求越來(lái)越高,要用發(fā)展的眼光看社會(huì),要學(xué)會(huì)習(xí),學(xué)會(huì)創(chuàng)新,學(xué)會(huì)適應(yīng)社會(huì)的發(fā)展需要。在走出校園,邁向社會(huì)之即,把握今天,才學(xué)能創(chuàng)造未來(lái)。畢業(yè)設(shè)計(jì)工作中,在老師的熏陶和教誨下,使我懂得了更多的設(shè)計(jì)思想,有了一定的創(chuàng)新精神和專研精神。</p><p>  在完成畢業(yè)設(shè)計(jì)的這段時(shí)間里,我收獲頗多。本文設(shè)計(jì)的出租車計(jì)費(fèi)系統(tǒng)具有硬件簡(jiǎn)單,容易實(shí)現(xiàn),性能穩(wěn)定可靠,成本低,壽命長(zhǎng)等特點(diǎn)。</p>

81、<p>  主要做了下面幾點(diǎn)較突出的工作:</p><p>  一、通過(guò)查閱相關(guān)資料,詳細(xì)了解了AT89C51單片機(jī)的原理,明確了設(shè)計(jì)采用的元件,明確了研究目標(biāo)。</p><p>  二、本文給出了系統(tǒng)具體的硬件設(shè)計(jì)方案,硬件結(jié)構(gòu)電路圖,設(shè)計(jì)中采用的編程軟件的介紹,電路圖模塊分析等方面。</p><p>  三、在這次課程設(shè)計(jì)的過(guò)程中,進(jìn)一步學(xué)習(xí)了單片機(jī)的

82、基本使用,感到了單片機(jī)對(duì)復(fù)雜電路設(shè)計(jì)的重要性。</p><p>  通過(guò)本次設(shè)計(jì)我對(duì)單片機(jī)有了一定的認(rèn)識(shí),這是我對(duì)專業(yè)知識(shí)一次實(shí)際性檢驗(yàn)和鞏固。課程設(shè)計(jì)收獲很多,比如學(xué)會(huì)了查找相關(guān)資料,分析數(shù)據(jù),提高了自己的繪圖能力,讓自己的設(shè)計(jì)思想也不斷得到修正和提高。</p><p>  理論與實(shí)際相結(jié)合,不僅包括課堂上學(xué)習(xí)的有關(guān)知識(shí)要與技能訓(xùn)練相結(jié)合,還要包括了解可接觸社會(huì)實(shí)際的能容。進(jìn)行課程設(shè)計(jì),

83、是在專業(yè)知識(shí)的指導(dǎo)下,通過(guò)各種方式,解決一些實(shí)際性的問(wèn)題。在設(shè)計(jì)過(guò)程中,可以將所學(xué)習(xí)得理論知識(shí)運(yùn)用到實(shí)踐中,不僅能加深自己對(duì)專業(yè)知識(shí)的理解,而且能豐富和發(fā)展書本上的理論知識(shí),使之轉(zhuǎn)化成更高層次的經(jīng)驗(yàn)、技能和技巧。</p><p>  擴(kuò)展出租車計(jì)費(fèi)器的功能:能夠顯示汽車行駛速度;能夠自動(dòng)打印收據(jù)發(fā)票。</p><p><b>  附錄一 程序源代碼</b></p

84、><p>  6.1 255計(jì)數(shù)器源代碼</p><p>  #include<reg52.h> //51的頭文件</p><p>  #define CONUT 255 //計(jì)數(shù)的最大值255用宏定義</p><p>  unsigned char stop_startflag=0;//起、停計(jì)數(shù)標(biāo)志</p><

85、;p>  unsigned char display_number[3];</p><p>  unsigned long int something_count = 0;//計(jì)數(shù)變量</p><p>  unsigned char shumaguan_number[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

86、//數(shù)碼管的動(dòng)態(tài)顯示數(shù)據(jù)</p><p>  unsigned char shumaguan_bit[8] = {0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; //位選信號(hào)</p><p>  /**************************************************************</p>&

87、lt;p>  [延時(shí)子程序delayms()]</p><p>  ***************************************************************/</p><p>  void delayms(unsigned int ms_count)</p><p><b>  {</b></p

88、><p>  unsigned char i;</p><p>  while(ms_count--)</p><p><b>  {</b></p><p>  for(i=0;i<145;i++);</p><p><b>  }</b></p><

89、p><b>  }</b></p><p>  /****************************************************************</p><p>  外部中斷初始化子程序</p><p>  *************************************************

90、****************/</p><p>  void waibuzhongduan_init()</p><p><b>  {</b></p><p>  EA = 1;//開總中斷</p><p>  EX1=1;//允許外部中斷0中斷</p><p>  //EX0=1

91、; //允許外部中斷0中斷</p><p>  IT0=1;//下降沿觸發(fā)中斷</p><p><b>  IT1=1;</b></p><p>  PX1=1;//外部中斷1中斷優(yōu)先級(jí)高</p><p><b>  }</b></p><p>  /***

92、*************************************************************</p><p>  外部中斷INT0中斷服務(wù)子程序,主要用于計(jì)數(shù)</p><p>  *****************************************************************/</p><p>  vo

93、id waibuzhongduan_INT0() interrupt 0</p><p><b>  {</b></p><p>  something_count++;//加1計(jì)數(shù)</p><p>  if(something_count > CONUT) //計(jì)數(shù)計(jì)滿255,使之清零</p><p>&l

94、t;b>  {</b></p><p>  something_count=0;</p><p><b>  }</b></p><p><b>  }</b></p><p>  /*************************************************

95、***************</p><p>  外部中斷INT1中斷服務(wù)子程序,主要用于計(jì)數(shù)器的暫停與啟動(dòng)</p><p>  *****************************************************************/</p><p>  void waibuzhongduan_INT1() interrupt 2 &l

96、t;/p><p><b>  {</b></p><p>  unsigned char stop1_startflag;</p><p>  stop_startflag++;</p><p>  stop1_startflag = stop_startflag%2;//標(biāo)志為1或0</p><p&g

97、t;  if(stop_startflag >1)</p><p><b>  {</b></p><p>  stop_startflag=0;</p><p><b>  }</b></p><p>  if(stop1_startflag == 1)//如果標(biāo)志為1,允許外部中斷0

98、中斷計(jì)數(shù)開始</p><p><b>  {</b></p><p>  EX0=1; //允許外部中斷1中斷</p><p><b>  }</b></p><p>  else//如果標(biāo)志不為1,允許外部中斷0中斷計(jì)數(shù)開始</p><p&

99、gt;<b>  {</b></p><p>  EX0=0;//禁止外部中斷0中斷,暫停計(jì)數(shù)</p><p><b>  }</b></p><p><b>  }</b></p><p>  /*********************************

100、**************************************</p><p>  顯示子程序display()</p><p>  主要用于顯示計(jì)數(shù)的結(jié)果</p><p>  ************************************************************************/</p><

101、;p>  void display()</p><p><b>  {</b></p><p>  P0 = shumaguan_number[display_number[0]];//個(gè)位顯示</p><p>  P2 = shumaguan_bit[0]; //動(dòng)態(tài)顯示的片選</p><p>  de

102、layms(10); //延時(shí),給硬件反映時(shí)間</p><p>  P2 = 0xff; //消隱</p><p>  P0 = shumaguan_number[display_number[1]];//十位顯示</p><p>  P2 = shumaguan_bit[1]; //動(dòng)態(tài)顯示的片選</p>&l

103、t;p>  delayms(10);</p><p>  P2 = 0xff; //消隱</p><p>  P0 = shumaguan_number[display_number[2]];//百位顯示</p><p>  P2 = shumaguan_bit[2]; //動(dòng)態(tài)顯示的片選</p><p>

104、;  delayms(10);</p><p>  P2 = 0xff; //消隱</p><p><b>  }</b></p><p>  /************************************************************************</p><p>

105、;<b>  主函數(shù)mian()</b></p><p>  程序從主函數(shù)開始執(zhí)行</p><p>  ************************************************************************/</p><p>  void main()</p><p><b

106、>  {</b></p><p>  waibuzhongduan_init(); //程序初始化</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  display_nu

107、mber[0] = something_count%10; //個(gè)位顯示數(shù)據(jù)</p><p>  display_number[1] = something_count%100/10;//十位顯示數(shù)據(jù)</p><p>  display_number[2] = something_count/100; //百位顯示數(shù)據(jù)</p><p>  display(

108、);</p><p><b>  }</b></p><p><b>  }</b></p><p>  6.2 50000計(jì)數(shù)器源代碼</p><p>  #include<reg52.h> //51的頭文件</p><p>  #define LCONUT

109、999 //低位計(jì)數(shù)的最大值1000用宏定義</p><p>  #define HCONUT 49//高位位計(jì)數(shù)的最大值50用宏定義</p><p>  unsigned char stop_startflag=0;//起、停計(jì)數(shù)標(biāo)志</p><p>  unsigned char display_number[3];</p><p> 

110、 unsigned long int something_lcount = 0;//計(jì)數(shù)變量</p><p>  unsigned long int something_hcount = 0;</p><p>  unsigned char shumaguan_number[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}

111、;//數(shù)碼管的動(dòng)態(tài)顯示數(shù)據(jù)</p><p>  unsigned char shumaguan_bit[8] = {0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; //位選信號(hào)</p><p>  /**************************************************************</p>

112、<p>  [延時(shí)子程序delayms()]</p><p>  ***************************************************************/</p><p>  void delayms(unsigned int ms_count)</p><p><b>  {</b></

113、p><p>  unsigned char i;</p><p>  while(ms_count--)</p><p><b>  {</b></p><p>  for(i=0;i<145;i++);</p><p><b>  }</b></p><

114、;p><b>  }</b></p><p>  /****************************************************************</p><p>  外部中斷初始化子程序</p><p>  ************************************************

115、*****************/</p><p>  void waibuzhongduan_init()</p><p><b>  {</b></p><p>  EA = 1;//開總中斷</p><p>  EX1=1;//允許外部中斷0中斷</p><p>  //EX0=

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論