2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩35頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  本業(yè)科畢設(shè)計(jì)(論文)</p><p>  題目:智能轉(zhuǎn)速測(cè)量系統(tǒng)的軟件設(shè)計(jì)</p><p>  院 (系): 光電工程學(xué)院 </p><p>  專(zhuān) 業(yè): </p><p>  班 級(jí): </p><p>

2、  學(xué) 生: </p><p>  學(xué) 號(hào): </p><p>  指導(dǎo)教師: </p><p>  智能轉(zhuǎn)速測(cè)量系統(tǒng)的軟件設(shè)計(jì)</p><p><b>  摘 要</b></p><

3、;p>  轉(zhuǎn)速是工程中應(yīng)用非常廣泛的一個(gè)參數(shù),其測(cè)量方法較多,隨著單片機(jī)對(duì)脈沖數(shù)字信號(hào)的處理能力越來(lái)越強(qiáng)大,使得全數(shù)字量系統(tǒng)越來(lái)越普及,并且使轉(zhuǎn)速測(cè)量系統(tǒng)也可以用全數(shù)字化處理。</p><p>  本文在對(duì)了解轉(zhuǎn)速測(cè)量理論與掌握單片機(jī)原理的基礎(chǔ)上,根據(jù)硬件設(shè)計(jì),提出系統(tǒng)程序設(shè)計(jì)方案,構(gòu)建軟件系統(tǒng),以實(shí)現(xiàn)智能轉(zhuǎn)速測(cè)量與顯示的功能。</p><p>  本設(shè)計(jì)根據(jù)基于AT89C51單片機(jī)

4、的測(cè)速測(cè)量電路,設(shè)計(jì)出轉(zhuǎn)速測(cè)量軟件系統(tǒng),此系統(tǒng)包含系統(tǒng)初始化程序的設(shè)計(jì)、鍵盤(pán)掃描程序的設(shè)計(jì)、數(shù)據(jù)接收和處理程序的設(shè)計(jì)、顯示程序的設(shè)計(jì)四個(gè)模塊。對(duì)所設(shè)計(jì)的軟件系統(tǒng)通過(guò)μVision3軟件對(duì)其進(jìn)行程序調(diào)試。最后,對(duì)構(gòu)建的系統(tǒng)利用設(shè)計(jì)的電路進(jìn)行調(diào)試,對(duì)測(cè)量指標(biāo)進(jìn)行了分析、比較并提出改進(jìn)方案。在設(shè)計(jì)中測(cè)量方法采用M法進(jìn)行測(cè)量,編譯語(yǔ)言采用C語(yǔ)言進(jìn)行編譯。</p><p>  本課題完成了軟件系統(tǒng)的設(shè)計(jì),實(shí)現(xiàn)了智能轉(zhuǎn)速系統(tǒng)

5、的轉(zhuǎn)速計(jì)算、顯示功能,同時(shí)實(shí)現(xiàn)鍵盤(pán)的開(kāi)始/停止功能,完成了設(shè)計(jì)的要求。</p><p>  關(guān)鍵詞:?jiǎn)纹瑱C(jī) 轉(zhuǎn)速測(cè)量 軟件設(shè)計(jì)</p><p>  Intelligent rotational speed measurement system of software design</p><p><b>  Abstract</b></p

6、><p>  Rotational speed is the engineering of a very wide range of parameters, its measurement more, with the SCM digital signal on the pulse of more and more powerful processing capability, making the volume o

7、f all-digital system is becoming increasingly popular, and so rotational speed measurement system can be used to deal with all-digital.</p><p>  In this paper, the understanding of the theory and master rota

8、tional speed measurement based on the principle of SCM, the system program design, to build software systems, compiler, in order to achieve intelligent Rotational speed measurement and display functions. In this pap

9、er, accroding to the tachometric survey system based on the SCM of AT89C51, I designed the software part of it. This system includes four module: the initializer code design, the keyboard scanning code design, the data&l

10、t;/p><p>  The design of software system of this project is completed. The function of calculating and displaying the speed of rotation and the beginning and stoping of keyboard are finished. Finally I achevi

11、e the requirment of design. </p><p>  Key words: SCM tachometric survey Software Design</p><p><b>  目錄</b></p><p><b>  中文摘要I</b></p><p><b

12、>  英文摘要II</b></p><p><b>  1 緒論1</b></p><p>  1.1課題研究目的和意義1</p><p>  1.2轉(zhuǎn)速測(cè)量在國(guó)內(nèi)外研究情況1</p><p>  1.3主要內(nèi)容和存在的問(wèn)題2</p><p>  1.3.1研究的主要

13、內(nèi)容2</p><p>  1.3.2需解決的問(wèn)題2</p><p>  2 基于單片機(jī)的轉(zhuǎn)速測(cè)量方法及原理3</p><p>  2.1單片機(jī)測(cè)量轉(zhuǎn)速的方法3</p><p>  2.2轉(zhuǎn)速測(cè)量原理4</p><p>  2.2.1測(cè)周期法“T法”4</p><p>  2.2.

14、2測(cè)頻法“M法”4</p><p>  2.2.3測(cè)頻測(cè)周法M/T法5</p><p>  3 智能轉(zhuǎn)速測(cè)量系統(tǒng)的硬件結(jié)構(gòu)7</p><p>  3.1系統(tǒng)的硬件結(jié)構(gòu)7</p><p>  3.2硬件電路中主要部件的介紹9</p><p>  4 智能轉(zhuǎn)速測(cè)量系統(tǒng)的軟件設(shè)計(jì)11</p>&

15、lt;p>  4.1單片機(jī)C51的介紹11</p><p>  4.1.1單片機(jī)C語(yǔ)言與匯編語(yǔ)言11</p><p>  4.1.2 C51對(duì)標(biāo)準(zhǔn)C語(yǔ)言的擴(kuò)展12</p><p>  4.2程序設(shè)計(jì)12</p><p>  4.2.1工作方式及控制字設(shè)置12</p><p>  4.2.2變量分配及程序

16、的初始化14</p><p>  4.2.3顯示功能的實(shí)現(xiàn)15</p><p>  4.2.4鍵盤(pán)的功能的實(shí)現(xiàn)與設(shè)計(jì)17</p><p>  4.3系統(tǒng)流程17</p><p>  5 程序調(diào)試及固化18</p><p>  5.1單片機(jī)開(kāi)發(fā)平臺(tái)簡(jiǎn)介18</p><p>  5.2

17、本系統(tǒng)開(kāi)發(fā)平臺(tái)18</p><p>  5.2.1keil C51軟件集成開(kāi)發(fā)環(huán)境18</p><p>  5.2.2程序調(diào)試18</p><p><b>  6 結(jié)論22</b></p><p>  6.1主要研究結(jié)論22</p><p>  6.2研究展望23</p>

18、<p><b>  參考文獻(xiàn)24</b></p><p><b>  致 謝26</b></p><p>  附錄 1 電路圖29</p><p>  附錄 2 源程序30</p><p><b>  1 緒論</b></p><p

19、>  1.1課題研究目的和意義</p><p>  隨著超大規(guī)模集成電路技術(shù)提高,尤其是單片機(jī)應(yīng)用技術(shù)以其功能強(qiáng)大,價(jià)格低廉的顯著特點(diǎn),使全數(shù)字化測(cè)量轉(zhuǎn)速系統(tǒng)得以廣泛應(yīng)用。由于單片機(jī)在測(cè)量轉(zhuǎn)速方面具有體積小、性能強(qiáng)、成本低的特點(diǎn),越來(lái)越受到企業(yè)用戶(hù)的青睞。轉(zhuǎn)速是工程中應(yīng)用非常廣泛的一個(gè)參數(shù),其測(cè)量方法較多,而模擬量的采集和模擬處理一直是轉(zhuǎn)速測(cè)量的主要方法,這種測(cè)量方技術(shù)已不能適應(yīng)現(xiàn)代科技發(fā)展的要求,在測(cè)量范

20、圍和測(cè)量精度上,已不能滿(mǎn)足大多數(shù)系統(tǒng)的使用。隨著大規(guī)模及超大規(guī)模集成電路技術(shù)的發(fā)展,數(shù)字系統(tǒng)測(cè)量得到普遍應(yīng)用,特別是單片機(jī)對(duì)脈沖數(shù)字信號(hào)的強(qiáng)大處理能力,使得全數(shù)字量系統(tǒng)越來(lái)越普及,其轉(zhuǎn)速測(cè)量系統(tǒng)也可以用全數(shù)字化處理。在測(cè)量范圍和測(cè)量精度方面都有極大的提高。</p><p>  常用的檢測(cè)方法有機(jī)械式,光電式,霍爾式,頻閃法,高壓油管應(yīng)變法等,本課題主要是針對(duì)智能轉(zhuǎn)速測(cè)量系統(tǒng)的軟件系統(tǒng)的設(shè)計(jì)。運(yùn)用51系列單片機(jī)設(shè)計(jì)

21、一種全數(shù)字化測(cè)速系統(tǒng),從提高測(cè)量精度的角度出發(fā),分析討論其產(chǎn)生誤差的可能原因。同時(shí)從實(shí)際硬件電路出發(fā),分析電路的工作原理,根據(jù)仿真情況提出修改方案和解決辦法。</p><p>  本課題以單片機(jī)為核心,設(shè)計(jì)的全數(shù)字化測(cè)量轉(zhuǎn)速系統(tǒng),在工業(yè)控制和民用電器中都有較高使用價(jià)值。一方面它可以應(yīng)用于工業(yè)控制中的某一部分,如數(shù)控車(chē)床的電機(jī)轉(zhuǎn)速檢測(cè)和控制、水泵流量控制以及需要利用轉(zhuǎn)速檢測(cè)來(lái)進(jìn)行控制的許多場(chǎng)合,如車(chē)輛的里程表、車(chē)速

22、表等。另一方面由于該轉(zhuǎn)速測(cè)量系統(tǒng)采用全數(shù)字結(jié)構(gòu),因而可以很方便的和工業(yè)控制機(jī)進(jìn)行連接,實(shí)行遠(yuǎn)程管理和控制,進(jìn)一步提高現(xiàn)代化水平。并且,幾乎不需做很大改變就能直接作為單獨(dú)的產(chǎn)品使用。總之,轉(zhuǎn)速測(cè)量系統(tǒng)的研究是一件非常有意義的課題[1]。 </p><p>  1.2轉(zhuǎn)速測(cè)量在國(guó)內(nèi)外研究情況</p><p>  轉(zhuǎn)速是能源設(shè)備與動(dòng)力機(jī)械性能測(cè)試中的一個(gè)重要的特性參量,因?yàn)閯?dòng)力機(jī)械的許多特性參數(shù)

23、是根據(jù)它們與轉(zhuǎn)速的函數(shù)關(guān)系來(lái)確定的,例如壓縮機(jī)的排氣量、軸功率、內(nèi)燃機(jī)的輸出功率等等,而且動(dòng)力機(jī)械的振動(dòng)、管道氣流脈動(dòng)、各種工作零件的磨損狀態(tài)等都與轉(zhuǎn)速密切相關(guān)。</p><p>  轉(zhuǎn)速測(cè)量的方法很多,測(cè)量?jī)x表的型式也多種多樣,其使用條件和測(cè)量精度也各不相同。根據(jù)轉(zhuǎn)速測(cè)量的工作方式可分為兩大類(lèi):接觸式轉(zhuǎn)速測(cè)量?jī)x表與非接觸式轉(zhuǎn)速測(cè)量?jī)x表。前者在使用時(shí)必須與被測(cè)轉(zhuǎn)軸直接接觸,如離心式轉(zhuǎn)速表、磁性轉(zhuǎn)速表與測(cè)速發(fā)電機(jī)等

24、;后者在使用時(shí)不需要與被測(cè)轉(zhuǎn)軸接觸,如光電式轉(zhuǎn)速表、電子數(shù)字式轉(zhuǎn)速表、閃光測(cè)速儀等。測(cè)量發(fā)動(dòng)機(jī)轉(zhuǎn)速的傳統(tǒng)方法是使用光</p><p>  電式轉(zhuǎn)速表測(cè)量。用這種方法測(cè)量時(shí),既要在發(fā)動(dòng)機(jī)轉(zhuǎn)動(dòng)軸上粘貼光標(biāo)紙,又要求測(cè)量人員把轉(zhuǎn)速表與光標(biāo)紙的距離控制在很近的范圍,測(cè)量十分不方便。隨著科學(xué)技術(shù)的迅速發(fā)展,轉(zhuǎn)速測(cè)量?jī)x表已步入現(xiàn)代化、電子化的行列。過(guò)去曾經(jīng)使用過(guò)的接觸式測(cè)量?jī)x表, 如離心式轉(zhuǎn)速表、磁性轉(zhuǎn)速表、微型發(fā)電機(jī)轉(zhuǎn)速表

25、及鐘表是定時(shí)轉(zhuǎn)速表,均已先后受到冷落;而利用已知頻率的閃光與被測(cè)軸轉(zhuǎn)速同步的方法來(lái)測(cè)速的閃光測(cè)速儀,雖屬非接觸式儀表,目前仍有應(yīng)用,但也退居次要地位。代之而起的是非接觸式的電子與數(shù)字化的測(cè)速儀表。這類(lèi)轉(zhuǎn)速儀表大多具有體積小、重量輕、讀數(shù)準(zhǔn)確、使用方便等優(yōu)點(diǎn),容易實(shí)現(xiàn)電腦熒屏顯示和打印輸出,能夠連續(xù)的反映轉(zhuǎn)速變化,既能測(cè)定發(fā)動(dòng)機(jī)穩(wěn)定情況下的平均轉(zhuǎn)速,也能夠用來(lái)在足夠小的時(shí)間間隔這一特定條件下測(cè)定發(fā)動(dòng)機(jī)的瞬時(shí)轉(zhuǎn)速。</p>&

26、lt;p>  轉(zhuǎn)速測(cè)量的應(yīng)用系統(tǒng)在工業(yè)生產(chǎn)、科技教育、民用電器等各領(lǐng)域的應(yīng)用極為廣泛,往往成為某一產(chǎn)品或控制系統(tǒng)的核心部分,其各種參數(shù)在不同的應(yīng)用中有其側(cè)重,但轉(zhuǎn)速測(cè)量系統(tǒng)作為普遍的應(yīng)用在國(guó)民經(jīng)濟(jì)發(fā)展中,有重要的意義[2]。</p><p>  1.3主要內(nèi)容和存在的問(wèn)題</p><p>  1.3.1研究的主要內(nèi)容</p><p>  1.詳細(xì)分析轉(zhuǎn)速的測(cè)量

27、理論,對(duì)轉(zhuǎn)速的周期測(cè)量法“T”法、頻率測(cè)量法“M”法以及周期頻率“M/T”測(cè)量法,三種具體測(cè)量方法的轉(zhuǎn)速計(jì)算、各自的測(cè)量精度和誤差進(jìn)行闡述。定性地比較三種方法所針對(duì)的轉(zhuǎn)速特征,分析高、中、低轉(zhuǎn)速情況下各自的適用狀況,從而,在保持一定的測(cè)量精度情況下,應(yīng)用“M”法,說(shuō)明轉(zhuǎn)速測(cè)量原理[3]。</p><p>  2.根據(jù)單片機(jī)硬件系統(tǒng)的設(shè)計(jì),構(gòu)建軟件系統(tǒng),分別對(duì)硬件系統(tǒng)的配置予以估計(jì),使其能夠?qū)D(zhuǎn)速進(jìn)行測(cè)量。同時(shí)分析

28、接口電路,顯示轉(zhuǎn)速。</p><p>  3.對(duì)單片機(jī)定時(shí)/計(jì)數(shù)器進(jìn)行設(shè)置,設(shè)計(jì)和說(shuō)明定時(shí)/計(jì)數(shù)器在“M”法測(cè)量中的作用和使用方法,討論測(cè)量精度的問(wèn)題。</p><p>  4.根據(jù)系統(tǒng)要求設(shè)置各控制字,用A51匯編語(yǔ)言編制程序,包括主程序流程,顯示中斷程序流程。并用軟件的方法對(duì)計(jì)數(shù)和定時(shí)進(jìn)行同步,力求在不增加硬件的條件下,使同步達(dá)到滿(mǎn)意的效果。</p><p> 

29、 5.利用Keil51軟件的μVision3集成環(huán)境對(duì)系統(tǒng)對(duì)工作軟件進(jìn)行編譯、調(diào)試和仿真。</p><p>  1.3.2需解決的問(wèn)題</p><p>  1.單片機(jī)在系統(tǒng)運(yùn)行過(guò)程中,中斷設(shè)置問(wèn)題;</p><p>  2.轉(zhuǎn)速測(cè)量及LED顯示的實(shí)現(xiàn);</p><p>  3.鍵盤(pán)功能的實(shí)現(xiàn);</p><p><

30、b>  4.軟件的調(diào)試。</b></p><p>  2 基于單片機(jī)的轉(zhuǎn)速測(cè)量方法及原理</p><p>  2.1單片機(jī)測(cè)量轉(zhuǎn)速的方法</p><p>  轉(zhuǎn)速是工程中應(yīng)用非常廣泛的一個(gè)參數(shù),早期模擬量的模擬處理一直是作為轉(zhuǎn)速測(cè)量的主要方法,這種測(cè)量方法在測(cè)量范圍和測(cè)量精度上,已不能適應(yīng)現(xiàn)代科技發(fā)展的要求。而隨著大規(guī)模及超大規(guī)模集成電路技術(shù)的發(fā)

31、展,數(shù)字測(cè)量系統(tǒng)得到普遍應(yīng)用,利用單片機(jī)對(duì)脈沖數(shù)字信號(hào)的強(qiáng)大處理能力,應(yīng)用全數(shù)字化的結(jié)構(gòu),使數(shù)字測(cè)量系統(tǒng)的越來(lái)越普及。在測(cè)量范圍和測(cè)量精度方面都有極大的提高。下面對(duì)測(cè)量系統(tǒng)進(jìn)行探討。</p><p>  一般轉(zhuǎn)速測(cè)量系統(tǒng)有以下幾個(gè)部分構(gòu)成,轉(zhuǎn)速測(cè)量框圖如圖2.1所示。</p><p>  圖2.1 轉(zhuǎn)速測(cè)量框圖</p><p><b>  1.轉(zhuǎn)速信號(hào)拾取

32、</b></p><p>  轉(zhuǎn)速信號(hào)拾取是整個(gè)系統(tǒng)的前端通道,目的是將外界的非電參量,通過(guò)一定方式轉(zhuǎn)換成電量,這一環(huán)節(jié)可以通過(guò)敏感元件、傳感器或測(cè)量?jī)x表等來(lái)實(shí)現(xiàn)。</p><p><b>  2.整形和倍頻</b></p><p>  前向通道中,將傳感器輸出的信號(hào)轉(zhuǎn)換成計(jì)算機(jī)輸入要求的信號(hào)。</p><p&g

33、t;<b>  3.單片機(jī)</b></p><p>  單片機(jī)是整個(gè)測(cè)量系統(tǒng)的主要部分,擔(dān)負(fù)對(duì)前端脈沖信號(hào)的處理、計(jì)算、以及信號(hào)的同步,計(jì)時(shí)等任務(wù),其次,將測(cè)量的數(shù)據(jù)經(jīng)計(jì)算后,將得到的轉(zhuǎn)速值傳送到顯示接口中,用數(shù)碼管顯示數(shù)值。在本系統(tǒng)中考慮到計(jì)數(shù)的范圍、使用的定時(shí)/計(jì)數(shù)器的個(gè)數(shù)及I/O口線(xiàn),選用AT89C51單片機(jī)。</p><p><b>  4.驅(qū)動(dòng)和顯

34、示</b></p><p>  由于LED數(shù)碼管具有亮度高、可靠性好等特點(diǎn),工業(yè)測(cè)控系統(tǒng)中常用LED數(shù)碼管作為顯示輸出。本系統(tǒng)也采用數(shù)碼管作顯示。</p><p><b>  2.2轉(zhuǎn)速測(cè)量原理</b></p><p>  2.2.1測(cè)周期法“T法”</p><p>  轉(zhuǎn)速可以用兩脈沖產(chǎn)生的間隔寬度TP來(lái)決

35、定。用以采集數(shù)據(jù)的碼盤(pán),可以是單孔或多孔,對(duì)于單孔碼盤(pán)測(cè)量?jī)纱蚊}沖間的時(shí)間,就可測(cè)出轉(zhuǎn)述數(shù)據(jù),TP也可以用時(shí)鐘脈沖數(shù)來(lái)表示。對(duì)于多孔碼盤(pán),其測(cè)量的時(shí)間只是每轉(zhuǎn)的1/N,N為碼盤(pán)孔數(shù)。如圖2.2“T”法脈寬測(cè)量所示。</p><p>  TP通過(guò)定時(shí)器測(cè)得。定時(shí)器對(duì)時(shí)基脈沖(頻率為fc)進(jìn)行計(jì)數(shù)定時(shí),在TP內(nèi)計(jì)數(shù)值若為m2,則 </p><p>  計(jì)算公式為:

36、 n=60/PTp (2.1)</p><p><b>  即:</b></p><p>  n=60fc/Pm2 (2.2)</p><p>  P-為轉(zhuǎn)軸轉(zhuǎn)一周脈沖發(fā)生器產(chǎn)生的脈沖數(shù);<

37、/p><p>  fc-為硬件產(chǎn)生的基準(zhǔn)時(shí)鐘脈沖頻率:?jiǎn)挝唬℉z);</p><p>  n-轉(zhuǎn)速單位:(轉(zhuǎn)/分);</p><p><b>  m2-時(shí)基脈沖。</b></p><p>  輸入脈沖 </p><p><b

38、>  時(shí)基脈沖</b></p><p>  圖2.2 “T”法脈寬測(cè)量</p><p>  由 “T”法脈寬測(cè)量可知“T”法測(cè)量精度的誤差主要有兩個(gè)方面,一是兩脈沖的上升沿觸發(fā)時(shí)間不一致而產(chǎn)生的;二是計(jì)數(shù)和定時(shí)起始和關(guān)閉不一致而產(chǎn)生的。因此要求脈沖的上升沿(或下降沿)陡峭和計(jì)數(shù)和定時(shí)嚴(yán)格同步。測(cè)周法在低轉(zhuǎn)速時(shí)精度較高,但隨著轉(zhuǎn)速的增加,精度變差,有小于一個(gè)脈沖的誤差存在[

39、5]。</p><p>  2.2.2測(cè)頻法“M法”</p><p>  在一定測(cè)量時(shí)間T內(nèi),測(cè)量脈沖發(fā)生器(替代輸入脈沖)產(chǎn)生的脈沖數(shù)m1來(lái)測(cè)量轉(zhuǎn)速,如圖2.3“M”法測(cè)量轉(zhuǎn)速脈沖所示,設(shè)在時(shí)間T內(nèi),轉(zhuǎn)軸轉(zhuǎn)過(guò)的弧度數(shù)為Xτ,則轉(zhuǎn)速n可由下式表示:</p><p>  n=60Xτ/2πT (2.3)</

40、p><p>  轉(zhuǎn)軸轉(zhuǎn)過(guò)的弧度數(shù)Xτ可用下式所示</p><p>  Xτ=2πm1/p (2.4) </p><p>  圖2.3 “M”法測(cè)量轉(zhuǎn)速脈沖</p><p>  將(2-4)式代入(2-3)式得</p><p>  轉(zhuǎn)速n的表達(dá)式為: </p&g

41、t;<p>  n=60m1/TP (2.5)</p><p>  n-轉(zhuǎn)速單位:(轉(zhuǎn)/分);</p><p>  T-定時(shí)時(shí)間單位:(秒)。</p><p>  在該方法中,測(cè)量精度是由于定時(shí)時(shí)間T和脈沖不能保證嚴(yán)格同步,以及在T內(nèi)能否正好測(cè)量外部脈沖的完整的周期,可能產(chǎn)生的1個(gè)脈沖的量化誤

42、差。因此,為了提高測(cè)量精度,T要有足夠長(zhǎng)的時(shí)間。定時(shí)時(shí)間可根據(jù)測(cè)量對(duì)象情況預(yù)先設(shè)置。設(shè)置的時(shí)間過(guò)長(zhǎng),可以提高精度,但在轉(zhuǎn)速較快的情況下,所計(jì)的脈沖數(shù)增大(碼盤(pán)孔數(shù)已定情況下),限制了轉(zhuǎn)速測(cè)量的量程。而設(shè)置的時(shí)間過(guò)短,測(cè)量精度會(huì)受到一定的影響[6]。</p><p>  2.2.3測(cè)頻測(cè)周法M/T法</p><p>  所謂測(cè)頻測(cè)周法,即是綜合了“T”法和“M”法分別對(duì)高、低轉(zhuǎn)速具有的不同精

43、度,利用各自的優(yōu)點(diǎn)而產(chǎn)生的方法,精度位于兩者之間,如圖2.4“M/T”法定時(shí)/計(jì)數(shù)測(cè)量所示。</p><p>  “M/T”法采用三個(gè)定時(shí)/計(jì)數(shù)器,同時(shí)對(duì)輸入脈沖、高頻脈沖(由振蕩器產(chǎn)生)、及預(yù)設(shè)的定時(shí)時(shí)間進(jìn)行定時(shí)和計(jì)數(shù),m1反映轉(zhuǎn)角,m2反映測(cè)速的準(zhǔn)確時(shí)間,通過(guò)計(jì)算可得轉(zhuǎn)速值n。該法在高速及低速時(shí)都具有相對(duì)較高的精度。測(cè)速時(shí)間Td由脈沖發(fā)生器脈沖來(lái)同步,即Td等于m1個(gè)脈沖周期。由圖可見(jiàn),從a點(diǎn)開(kāi)始,計(jì)數(shù)器對(duì)m

44、1和m2計(jì)數(shù),到達(dá)b點(diǎn),預(yù)定的測(cè)速時(shí)間時(shí),計(jì)算機(jī)發(fā)出停止計(jì)數(shù)的指令,因?yàn)門(mén)C不一定正好等于整數(shù)個(gè)脈沖發(fā)生器脈沖周期,所以,計(jì)數(shù)器仍對(duì)高頻脈沖繼續(xù)計(jì)數(shù),到達(dá)c點(diǎn)時(shí),脈沖發(fā)生器脈沖的上升沿使計(jì)數(shù)器停止,這樣,m2就代表了m1個(gè)脈沖周期的時(shí)間[7]。</p><p>  “M/T”法綜合了“T”和“M”兩種方法,轉(zhuǎn)速計(jì)算如下:</p><p>  設(shè)高頻脈沖的頻率為fC,脈沖發(fā)生器每轉(zhuǎn)發(fā)出P個(gè)脈

45、沖,由式(2.2)和(2.5)可得M/T法轉(zhuǎn)速計(jì)算公式為:</p><p>  n=60fcm1/pm2 (2.6)</p><p>  n-轉(zhuǎn)速值。單位:(轉(zhuǎn)/分);</p><p>  fc-晶體震蕩頻率:?jiǎn)挝唬℉z);</p><p>  m1-輸入脈沖數(shù),反映轉(zhuǎn)角;&l

46、t;/p><p><b>  m2-時(shí)基脈沖數(shù)。</b></p><p>  圖2.4 “M/T”法定時(shí)/計(jì)數(shù)測(cè)量</p><p>  通過(guò)誤差和精度分析可知,M法適合于高速測(cè)量,當(dāng)轉(zhuǎn)速越低,產(chǎn)生的誤差會(huì)越大。T法適合于低速測(cè)量,轉(zhuǎn)速增高,誤差增大。M/T這種轉(zhuǎn)速測(cè)量方法的相對(duì)誤差與轉(zhuǎn)速n無(wú)關(guān),只與晶體振蕩產(chǎn)生的脈沖有關(guān),故可適合各種轉(zhuǎn)速下的測(cè)量。

47、保證其測(cè)量精度的途徑是增大定時(shí)時(shí)間T,或提高時(shí)基脈沖的頻率fc。因此,在實(shí)際操作時(shí)往往采用一種稱(chēng)變M/T的測(cè)量方法,即所謂變M/T法,在M/T法的基礎(chǔ)上,讓測(cè)量時(shí)間Tc始終等于轉(zhuǎn)速輸入脈沖信號(hào)的周期之和。并根據(jù)第一次的所測(cè)轉(zhuǎn)速及時(shí)調(diào)整預(yù)測(cè)時(shí)間Tc,兼顧高低轉(zhuǎn)速時(shí)的測(cè)量精度?;贛法測(cè)量速度,電路和程序均較為簡(jiǎn)單,且可以在一定的條件下滿(mǎn)足精度的要求,所以本設(shè)計(jì)中采用M法進(jìn)行測(cè)量,誤差和精度的具體分析過(guò)程在此不做復(fù)述[8]。</p&g

48、t;<p>  3 智能轉(zhuǎn)速測(cè)量系統(tǒng)的硬件結(jié)構(gòu)</p><p>  3.1系統(tǒng)的硬件結(jié)構(gòu)</p><p>  本轉(zhuǎn)速測(cè)量系統(tǒng)有以下幾個(gè)部分構(gòu)成,如圖3.1轉(zhuǎn)速測(cè)量系統(tǒng)方框圖所示。</p><p>  圖3.1 轉(zhuǎn)速測(cè)量系統(tǒng)方框圖</p><p>  本系統(tǒng)的硬件主要由光電傳感器、信號(hào)處理電路、單片機(jī)AT89C51、鍵盤(pán)、LED

49、顯示等組成。如圖3.1,當(dāng)測(cè)速齒盤(pán)轉(zhuǎn)動(dòng)時(shí),將會(huì)產(chǎn)生正弦脈沖電信號(hào),然后把信號(hào)送入放大電路、整形及三極管整形電路進(jìn)行處理,將正弦波信號(hào)轉(zhuǎn)化為T(mén)TL電平輸出到單片機(jī)進(jìn)行轉(zhuǎn)速計(jì)數(shù),最后通過(guò)數(shù)碼管顯示其數(shù)值。硬件電路圖如圖附件1所示[9]。</p><p>  1.轉(zhuǎn)速信號(hào)拾取的結(jié)構(gòu)</p><p>  本設(shè)計(jì)中采集信號(hào)部分是通過(guò)光電傳感器來(lái)實(shí)現(xiàn),利用測(cè)速圓盤(pán)將光信號(hào)轉(zhuǎn)變成單片機(jī)能夠處理的電信號(hào)。

50、測(cè)速圓盤(pán)位于紅外線(xiàn)發(fā)光二極管(規(guī)格HG11)和紅外線(xiàn)接收三級(jí)管(規(guī)格3DU5C)之間,采用+5V電壓供電,選用合適的電阻值來(lái)配合該其工作。紅外線(xiàn)發(fā)光二極管發(fā)出的光信號(hào)通過(guò)測(cè)速圓盤(pán)的孔,到達(dá)紅外線(xiàn)接收三級(jí)管表面,它將接收到的光信號(hào)轉(zhuǎn)變成電信號(hào)輸出。通過(guò)改變測(cè)速圓盤(pán)的旋轉(zhuǎn)速度來(lái)控制輸出電信號(hào)的頻率值,并將其輸出。如圖3.2轉(zhuǎn)速傳感器電路圖所示。</p><p>  圖3.2 轉(zhuǎn)速傳感器電路圖</p>&

51、lt;p><b>  2.顯示部分的結(jié)構(gòu)</b></p><p>  本系統(tǒng)采用四位LED共陽(yáng)極型數(shù)碼管作為顯示部分, AT89C51單片機(jī)的I/O口輸出特性是有較大的灌入電流能力,但只有很弱的“吐”電流的能力,因此本系統(tǒng)中選用共陽(yáng)極數(shù)碼管。P2口的P2.0~P2.7口作為數(shù)碼管的段驅(qū)動(dòng),中間通過(guò)緩沖器74LS245進(jìn)行數(shù)據(jù)緩沖。74LS245是8路3態(tài)雙向緩沖驅(qū)動(dòng),也叫做總線(xiàn)驅(qū)動(dòng)門(mén)電

52、路或線(xiàn)驅(qū)動(dòng),主要使用在數(shù)據(jù)的雙向緩沖,常見(jiàn)51的數(shù)據(jù)接口電路,使用一片245作為數(shù)據(jù)緩沖電路,增強(qiáng)驅(qū)動(dòng)能力。P0口的P0.0~P0.3口通過(guò)反向驅(qū)動(dòng)器74LS04構(gòu)成位驅(qū)動(dòng)。將所有位的段選線(xiàn)相應(yīng)地并聯(lián)在一起,由一個(gè)8位I/O控制,形成段選線(xiàn)的多路復(fù)用。而各位的共陽(yáng)極分別由相應(yīng)的I/O線(xiàn)控制,實(shí)現(xiàn)各位的分時(shí)選通。由于各位的段選線(xiàn)并聯(lián),段選碼的輸出對(duì)各位都是相同的。因此,同一個(gè)時(shí)刻,某一位的顯示與該位的位選線(xiàn)選通狀態(tài)有關(guān),若要各位LED能夠

53、顯示出與本位相應(yīng)的顯示字符,就必須采用掃描顯示方式[10]。</p><p>  3.單片機(jī)與PC機(jī)數(shù)據(jù)的傳輸</p><p>  基于單片機(jī)的測(cè)控系統(tǒng)在獲取傳感器的數(shù)據(jù)后,還需要將所得數(shù)據(jù)傳送到PC上。因此,本系統(tǒng)在設(shè)計(jì)時(shí),做了一些考慮,在硬件設(shè)計(jì)時(shí)增加了串行通信口,采用MAX232電平轉(zhuǎn)換芯片,將PC機(jī)串行口的RS-232電平與AT89C51單片機(jī)使用的TTL電平進(jìn)行轉(zhuǎn)換,實(shí)現(xiàn)了單片機(jī)

54、和PC機(jī)之間的數(shù)據(jù)傳送。如圖3.3 MAX232引腳圖所示、3.4AT89C51管腳圖所示[11]。</p><p>  圖3.3 MAX232引腳圖 圖3.4 AT89C51管腳圖</p><p><b>  4.鍵盤(pán)功能的實(shí)現(xiàn)</b></p><p>  本設(shè)計(jì)使用的鍵盤(pán)主要為完成一個(gè)功能—

55、轉(zhuǎn)速測(cè)量的啟動(dòng)/停止;我們將開(kāi)關(guān)直接與AT89C51單片機(jī)的P1.0接口相連,通過(guò)讀I/O口,判定各I/O線(xiàn)的電平狀態(tài),即可識(shí)別出按下的按鍵。操作員通過(guò)鍵盤(pán)可以輸入數(shù)據(jù)或指令,實(shí)現(xiàn)簡(jiǎn)單的人機(jī)通信[12]。</p><p><b>  5.復(fù)位功能的實(shí)現(xiàn)</b></p><p>  單片機(jī)除本身需要復(fù)位以外,外部擴(kuò)展的I/O接口電路等也需要復(fù)位。因此,為了控制的方便,本

56、設(shè)計(jì)中采用人工按鈕復(fù)位的方式。AT89C51單片機(jī)的RST端通過(guò)10kΩ電阻接地,10μ電容直接和一個(gè)接有按鍵的200Ω電阻并聯(lián)接入電源端,上電按鈕復(fù)位電路。當(dāng)開(kāi)關(guān)未按下時(shí),由于電容的濾波作用,干擾信號(hào)不會(huì)進(jìn)入到單片機(jī)中,起到抗干擾的作用;當(dāng)按下開(kāi)關(guān)一定時(shí)間就能使RST引腳端變?yōu)楦唠娖剑瑥亩箚纹瑱C(jī)復(fù)位[13]。</p><p>  3.2 硬件電路中主要部件的介紹</p><p>  a

57、.AT89C51:隨著智能儀表的發(fā)展,用單片機(jī)構(gòu)成的多路數(shù)據(jù)采集系統(tǒng)已經(jīng)普及,該系統(tǒng)它不僅采集數(shù)據(jù)而且還能對(duì)采集到的模擬信號(hào)進(jìn)行數(shù)據(jù)處理。AT89C51是一款低功耗高性能的CMOS 8-bits微處理器,它具有4KB的可編程或擦除的閃存(EPROM)。該器件使用ATMEL公司的高密度非易失性存儲(chǔ)器制造技術(shù),并且與工業(yè)標(biāo)準(zhǔn)MCS-51TM的指令系統(tǒng)和管腳配置兼容。片內(nèi)閃存的存在使程序存儲(chǔ)器能夠在系統(tǒng)中或者使用專(zhuān)門(mén)的程序燒錄器來(lái)重新寫(xiě)入[2

58、0]。</p><p>  這一器件將通用的8bitsCPU和閃存結(jié)合起來(lái),集成在一個(gè)芯片上,使該芯片成為不少控制系統(tǒng)的高度靈活和經(jīng)濟(jì)的解決方案。</p><p>  AT89C51是ATMEL公司生產(chǎn)的一款51單片機(jī),它有如下的特點(diǎn):</p><p>  (1)與MCS-51TM系列產(chǎn)品兼容;</p><p>  (2)4K片內(nèi)可編寫(xiě)程序存

59、儲(chǔ)器(FLASH),可以被重寫(xiě)1000次;</p><p>  (3)存儲(chǔ)數(shù)據(jù)保存時(shí)間為10年;</p><p>  (4)寬工作電壓范圍為:VCC2.7V~6V;</p><p>  (5)工作主時(shí)鐘頻率在0HZ~24MHZ之間;</p><p>  (6)128×8bits內(nèi)部RAM;</p><p> 

60、 (7)程序存儲(chǔ)器具有3級(jí)加密保護(hù);</p><p>  (8)32條可編程的I/O引腳;</p><p>  (9)2個(gè)16bits可編程定時(shí)器/計(jì)數(shù)器;</p><p>  (10)6個(gè)中斷源;</p><p>  (11)可編程全雙工串行通信;</p><p>  (12)低功耗空閑狀態(tài)和低功耗停機(jī)狀態(tài);<

61、/p><p>  b. MAX232:RS-232(ANSI/EIA-232標(biāo)準(zhǔn))是IBM-PC及其兼容機(jī)上的串行連接標(biāo)準(zhǔn)??捎糜谠S多用途,比如連接鼠標(biāo)、打印機(jī)或者M(jìn)odem,同時(shí)也可以接工業(yè)儀器儀表。用于驅(qū)動(dòng)和連線(xiàn)的改進(jìn),實(shí)際應(yīng)用中RS-232的傳輸長(zhǎng)度或者速度常常超過(guò)標(biāo)準(zhǔn)的值。RS-232只限于PC串口和設(shè)備間點(diǎn)對(duì)點(diǎn)的通信。RS-232串口通信最遠(yuǎn)距離是50英尺。</p><p>  計(jì)算

62、機(jī)的串口采用的是RS-232電平,是12V的電壓,而我們單片機(jī)系統(tǒng)則采用的是TTL電平,是0~+5V的電壓。因此需要將TTL電平轉(zhuǎn)換成RS-232電平。在我們的硬件圖里使用互換器MAX232來(lái)進(jìn)行TTL電平和RS-232電平的轉(zhuǎn)換。+5V電平RS-232傳送/發(fā)送模塊,包含TTL/CMOS到RS-232電平的轉(zhuǎn)換以及RS-232到TTL/CMOS電平的轉(zhuǎn)換器各2個(gè)。</p><p>  MAX232的引腳說(shuō)明為:

63、</p><p><b>  VCC:供電電壓;</b></p><p><b>  GND:地;</b></p><p>  C+、C-:外圍電容;</p><p>  T1IN:第一路TTL/CMOS驅(qū)動(dòng)電平輸入;</p><p>  T1OUT:第一路RS-232電平輸

64、出;</p><p>  R1IN:第一路電平輸入;</p><p>  R1OUT:第一路TTL/COMS驅(qū)動(dòng)電平輸出;</p><p>  T2IN:第二路TTL/CMOS驅(qū)動(dòng)電平輸入;</p><p>  T2OUT:第二路RS-232電平的輸出;</p><p>  R2IN:第二路RS-232電平輸入;<

65、;/p><p>  R2OUT:第二路TTL/COMS驅(qū)動(dòng)電平輸出。</p><p>  MAX232的主要性能參數(shù)如下:</p><p> ?、俟ぷ麟妷海?jiǎn)坞娫?5V;</p><p> ?、陔p通道接收和發(fā)送;</p><p> ?、叟c所有EIA/TIA-232E以及V.28協(xié)議兼容;</p><p&

66、gt;  ④三態(tài)門(mén)接收和發(fā)送。</p><p>  4 智能轉(zhuǎn)速測(cè)量系統(tǒng)的軟件設(shè)計(jì)</p><p>  4.1單片機(jī)C51的介紹</p><p>  4.1.1單片機(jī)C語(yǔ)言與匯編語(yǔ)言</p><p>  在單片機(jī)的開(kāi)發(fā)應(yīng)用中,逐漸引入了高級(jí)語(yǔ)言,C語(yǔ)言就是其中的一種。對(duì)用慣了匯編語(yǔ)言的人來(lái)說(shuō),高級(jí)語(yǔ)言的可控行不好,不如匯編語(yǔ)言那樣能夠隨心所

67、欲。但是使用匯編語(yǔ)言會(huì)遇到很多問(wèn)題,首先它的可讀性和可維護(hù)性不強(qiáng),特別是當(dāng)呈現(xiàn)沒(méi)有很好的標(biāo)注時(shí),其次就是代碼的可重用性也比較低。使用C語(yǔ)言就可以很好的解決這些問(wèn)題[18]。</p><p>  C語(yǔ)言具有良好的模塊化,容易閱讀和維護(hù)等優(yōu)點(diǎn)。由于模塊化,用C語(yǔ)言編寫(xiě)的程序有很好的可移植性,功能化代碼能夠很方便地從一個(gè)工程移植到另一個(gè)工程,從而減少開(kāi)發(fā)時(shí)間。</p><p>  用C語(yǔ)言編寫(xiě)程

68、序比用匯編編寫(xiě)程序更符合人們的思考習(xí)慣,開(kāi)發(fā)者可以更專(zhuān)心地考慮算法而不是考慮一些細(xì)節(jié)問(wèn)題,這樣就減少了開(kāi)發(fā)和調(diào)試時(shí)間。使用像C這樣的語(yǔ)言,編寫(xiě)者不必十分熟悉處理器的運(yùn)算過(guò)程。很多處理器支持C編譯器,這意味著對(duì)新的處理器也能很快上手,而不必知道處理器的具體內(nèi)部結(jié)構(gòu),這使得用C語(yǔ)言編寫(xiě)的程序比匯編程序有更好的可移植性。</p><p>  C語(yǔ)言的特點(diǎn)就是可以使編寫(xiě)者盡量少地對(duì)硬件進(jìn)行操作,它是功能性和結(jié)構(gòu)性很強(qiáng)的語(yǔ)

69、言。</p><p>  對(duì)大多數(shù)51系列單片機(jī),使用C語(yǔ)言這樣的高級(jí)語(yǔ)言與使用匯編語(yǔ)言相比具有如下優(yōu)點(diǎn):</p><p>  (1)不需要了解處理器的指令集,也不必了解存儲(chǔ)器結(jié)構(gòu);</p><p>  (2)寄存器分配和尋址方式由編譯器進(jìn)行管理,編程時(shí)不需要考慮存儲(chǔ)器的 尋址和數(shù)據(jù)類(lèi)型等細(xì)節(jié);</p><p>  (3)指定操作的變量選

70、擇組合提高了程序的可讀性;</p><p>  (4)可使用與人的思維更相近的關(guān)鍵字和操作函數(shù);</p><p>  (5)與使用匯編語(yǔ)言編程相比,程序的開(kāi)發(fā)和調(diào)試時(shí)間大大縮短;</p><p>  (6)C語(yǔ)言中的庫(kù)文件提供許多標(biāo)準(zhǔn)的方程,例如:格式化輸出、數(shù)據(jù)轉(zhuǎn)換和浮點(diǎn)運(yùn)算等;</p><p>  (7)通過(guò)C語(yǔ)言可實(shí)現(xiàn)模塊編程技術(shù),從而

71、可將已編制好的程序加入到新程序中;</p><p>  (8)C語(yǔ)言可移植性好且非常普及,C語(yǔ)言編譯器幾乎適用于所有的目標(biāo)系統(tǒng),已完成的軟件項(xiàng)目可以很容易地轉(zhuǎn)換到其它的處理器或環(huán)境中。</p><p>  所以在本畢業(yè)設(shè)計(jì)數(shù)據(jù)采集系統(tǒng)的軟件設(shè)計(jì)中我選用單片機(jī)C語(yǔ)言來(lái)進(jìn)行程序代碼的編寫(xiě)。</p><p>  4.1.2 C51對(duì)標(biāo)準(zhǔn)C語(yǔ)言的擴(kuò)展</p>

72、<p>  1.在51系列單片機(jī)中使用的C語(yǔ)言與標(biāo)準(zhǔn)C語(yǔ)言還有一些不同,或者說(shuō)C51對(duì)標(biāo)準(zhǔn)C語(yǔ)言有一些擴(kuò)展。</p><p>  C51語(yǔ)言的特色主要體現(xiàn)在以下幾個(gè)方面:</p><p>  (1)C51雖然繼承了標(biāo)準(zhǔn)C語(yǔ)言的絕大部分的特性,而且基本語(yǔ)法相同,但是本身又在特定的硬件結(jié)構(gòu)上有所擴(kuò)展,如關(guān)鍵字sbit、data、idata、pdata、xdata、code等。<

73、/p><p>  (2)應(yīng)用C51更要注重對(duì)系統(tǒng)資源的理解,因?yàn)閱纹瑱C(jī)的系統(tǒng)資源相對(duì)PC機(jī)來(lái)說(shuō)很貧乏,對(duì)于RAM、ROM中的每一字節(jié)都要充分利用??梢酝ㄟ^(guò)看編譯生成的.m51文件來(lái)了解自己程序中資源的利用情況。</p><p>  (3)程序上應(yīng)用的各種算法要精簡(jiǎn),不要對(duì)系統(tǒng)構(gòu)成過(guò)重的負(fù)擔(dān)。盡量少用浮點(diǎn)運(yùn)算,可以用unsigned無(wú)符號(hào)型數(shù)據(jù)的就不要用有符號(hào)型數(shù)據(jù),盡量避免多字節(jié)的乘除運(yùn)算,多

74、使用移位運(yùn)算等。</p><p>  2.C51相對(duì)于標(biāo)準(zhǔn)C語(yǔ)言的擴(kuò)展直接針對(duì)51系列CPU硬件,大致有以下幾個(gè)方面:</p><p><b>  (1)數(shù)據(jù)類(lèi)型</b></p><p>  C51具有標(biāo)準(zhǔn)C語(yǔ)言所具有的標(biāo)準(zhǔn)數(shù)據(jù)類(lèi)型,除此之外,為了更加有效地利用8051的結(jié)構(gòu),還加入了以下特殊的數(shù)據(jù)類(lèi)型。</p><p>

75、;<b>  (2)存儲(chǔ)區(qū)</b></p><p>  C51編譯器支持8051及其擴(kuò)展系列,并提供對(duì)8051所有存儲(chǔ)區(qū)的訪(fǎng)問(wèn)。存儲(chǔ)區(qū)可分為內(nèi)部數(shù)據(jù)存儲(chǔ)區(qū)、外部數(shù)據(jù)存儲(chǔ)區(qū)以及程序存儲(chǔ)區(qū)。8051CPU內(nèi)部的數(shù)據(jù)存儲(chǔ)區(qū)是可讀寫(xiě)的,8051派生系列最多可有256字節(jié)的內(nèi)部數(shù)據(jù)存儲(chǔ)區(qū),其中低128字節(jié)可直接尋址,高128字節(jié)(從0x80到0xFF)只能間接尋址,從20H開(kāi)始的16字節(jié)可位尋址。內(nèi)部

76、數(shù)據(jù)區(qū)又可分為3個(gè)不同的存儲(chǔ)類(lèi)型:data、idata、bdata。外部數(shù)據(jù)區(qū)也是可讀寫(xiě)的。但是訪(fǎng)問(wèn)起來(lái)比較慢,因?yàn)橥獠繑?shù)據(jù)區(qū)是通過(guò)數(shù)據(jù)指針加載地址來(lái)間接訪(fǎng)問(wèn)的。 </p><p>  (3)特殊功能寄存器(SFR)</p><p>  51單片機(jī)提供128字節(jié)的SFR尋址區(qū),地址為80H~FFH。51單片機(jī)中除了程序計(jì)數(shù)器PC和4組通用寄存器組之外,其它所有的寄存器均為SFR,并位于片內(nèi)

77、特殊寄存器區(qū)。</p><p><b>  4.2程序設(shè)計(jì)</b></p><p>  根據(jù)硬件電路設(shè)計(jì),進(jìn)行程序設(shè)計(jì),在程序設(shè)計(jì)之前,首先要確定定時(shí)器的工作方式,方式控制字,確定串行口的工作模式等,下面分別討論。</p><p>  4.2.1工作方式及控制字設(shè)置</p><p>  1.定時(shí)/計(jì)數(shù)器T0</p&

78、gt;<p>  本系統(tǒng)設(shè)計(jì)中,T0被用于計(jì)數(shù),我們當(dāng)然希望計(jì)數(shù)量越大越好,這樣,可以獲得較大的測(cè)量范圍,因此,T0選定為工作方式1(16位的計(jì)數(shù)方式),設(shè)計(jì)中,沒(méi)有使用外部控制端,僅用指令置位/清零TR0來(lái)進(jìn)行計(jì)數(shù)的啟動(dòng)/停止,這樣,電路較為簡(jiǎn)單,但精度會(huì)受到一定的影響,但在本設(shè)計(jì)中,認(rèn)為采用這種方式,精度可達(dá)到要求,因此,T0采用自由計(jì)數(shù)的方式,不用預(yù)置初值。</p><p>  2.定時(shí)/計(jì)數(shù)

79、器T1</p><p>  定時(shí)器T1每10ms中斷一次,用以進(jìn)行數(shù)碼管顯示和每一秒讀取一次計(jì)數(shù)器T0中的數(shù)值。這里選用T1的工作狀態(tài)為1。要使T1設(shè)定正確的定時(shí)時(shí)間,首先要計(jì)算其初值,定時(shí)時(shí)間為:</p><p>  t=(216-T1的初值)×晶振周期×12 (4.1) </p><p><b> 

80、 定時(shí)時(shí)間10ms:</b></p><p>  10ms=(216-T1的初值)×1/12*10-6×12</p><p>  則: T1的初值=216-104</p><p>  因此,TH1=D8, TH1=F0;</p><p>  確定了定時(shí)/計(jì)數(shù)器T1的定時(shí)時(shí)間以后,就要計(jì)算定

81、時(shí)初值,本系統(tǒng)用了12M的晶振,恰好是一個(gè)機(jī)器周期為1μs,因此,1ms定時(shí)時(shí)間意味著只要計(jì)數(shù)1000次即可,由于定時(shí)/計(jì)數(shù)器T1是向上計(jì)數(shù),因此,要化為16進(jìn)制,并分別送入T1的高8位和低8位。這里,采用的keil匯編軟件有較強(qiáng)的預(yù)處理功能,能夠處理較復(fù)雜的運(yùn)算,因此,計(jì)數(shù)程序中可寫(xiě)為:PlusCounter = TH0*256 + TL0。</p><p>  這里用PlusCounter作為轉(zhuǎn)化為10進(jìn)制數(shù)

82、值的數(shù)值存儲(chǔ)器,TH0和TL0分別是二進(jìn)制計(jì)數(shù)值的高8位和低8位。</p><p>  由于AT89C51單片機(jī)在中斷時(shí),會(huì)附加延時(shí)3-8個(gè)周期,在滿(mǎn)足一定條件的情形下,驗(yàn)證這個(gè)數(shù)值是否正確,可以在進(jìn)入仿真調(diào)試時(shí)通過(guò)觀察Keil提供的有關(guān)變量看到,如果不正確,可以根據(jù)實(shí)際情況略作調(diào)整,保證定時(shí)時(shí)間盡量準(zhǔn)確。</p><p>  3.定時(shí)/計(jì)數(shù)器的方式控制字</p><p

83、>  定時(shí)/計(jì)數(shù)器的方式控制字TMOD,其地址為89H,復(fù)位值00H,不可位尋址。其8位控制。如圖4.1工作模式寄存器TMOD的位定義所示。</p><p>  T1 T0</p><p>  圖4.1 工作模式寄存器TMOD的位定義圖</p><p><b>  說(shuō)明:</b&

84、gt;</p><p>  GATE:門(mén)控位。由GATE、軟件控制位TR0/1和INT0/1共同決定定時(shí)/計(jì)數(shù)器0/1的打開(kāi)或關(guān)閉。當(dāng)GATE=0,只要用指令置TR0/1=1即可啟動(dòng)定時(shí)/計(jì)數(shù)器0/1工作。GATE=1,只有INT0/1引腳為高電平且用指令置TR0/1=1時(shí),才能啟動(dòng)定時(shí)/計(jì)數(shù)器0/1的工作。</p><p>  C/T:定時(shí)器/計(jì)數(shù)器選擇位。C/T=1,工作于計(jì)數(shù)器方式;

85、C/T=0工作于定時(shí)器方式。</p><p>  M1M0:定時(shí)/計(jì)數(shù)工作模式選擇位。M1M0=00,13位計(jì)數(shù);M1M0=01,16位計(jì)數(shù);M1M0=10,自動(dòng)再裝入8位計(jì)數(shù);M1M0=11,工作于模式3狀態(tài)。</p><p>  根據(jù)前面的描述,可以確定TMOD的控制字應(yīng)為00010101B。</p><p><b>  程序如下:</b>

86、</p><p>  void init_timer0() // T0、T1分別定義</p><p><b>  {</b></p><p>  TMOD= 0xF1;</p><p><b>  }</b></p><p>  void init_timer1

87、()</p><p><b>  {</b></p><p>  TMOD = 0x50;</p><p><b>  }</b></p><p>  將控制字分別送入TMOD。</p><p>  4.定時(shí)/計(jì)數(shù)控制寄存器TCON</p><p> 

88、 TCON地址88H,可進(jìn)行位尋址,復(fù)位值00H。如圖4.2控制寄存器TCON的位定義圖所示。</p><p>  圖4.2 控制寄存器TCON的位定義圖</p><p>  TF0、TF1分別為定時(shí)器T0和計(jì)數(shù)器T1的溢出標(biāo)志位,TR0和TR1在正常情況下,都沒(méi)有溢出標(biāo)志,只有當(dāng)計(jì)數(shù)值或定時(shí)值超過(guò)65536時(shí),才能有溢出中斷請(qǐng)求,這兩位是由硬件置位和硬件清零,不需另行設(shè)置??稍赥0和T1

89、的溢出中斷服務(wù)程序中,以供使用。</p><p>  TR1、TR0分別用于開(kāi)啟T1和T0的開(kāi)關(guān)位,其中TR1由系統(tǒng)開(kāi)啟時(shí),直接置位,打開(kāi)T1,開(kāi)始定時(shí),經(jīng)運(yùn)行判斷后,打開(kāi)TR0。</p><p>  4.2.2變量分配及程序的初始化</p><p>  在程序開(kāi)始之前,首先進(jìn)行變量的分配,程序的初始化,根據(jù)硬件電路的要求,將各硬件電路置于其規(guī)定的狀態(tài);根據(jù)需要,對(duì)

90、定時(shí)器、計(jì)數(shù)器、串行口等設(shè)置工作狀態(tài),預(yù)置初值等。以下是程序定義變量及進(jìn)行初始化的程序行。</p><p>  uint Tcounter = 0; //時(shí)間計(jì)數(shù)器</p><p>  bit Flag_Fresh = 0; //刷新標(biāo)志</p><p>  bit Flag_clac = 0; //計(jì)算轉(zhuǎn)速標(biāo)志</p><p> 

91、 bit Flag_Err = 0; //超量程標(biāo)志</p><p>  Disbuf[0] = 0; //開(kāi)機(jī)時(shí),初始化為0000</p><p>  Disbuf[1] = 0;</p><p>  Disbuf[2] = 0;</p><p>  Disbuf[3] = 0;</p><p> 

92、 init_timer0(); //T0、T1分別初始化</p><p>  init_timer1();</p><p>  4.2.3顯示功能的實(shí)現(xiàn)</p><p>  定時(shí)計(jì)數(shù)器T1每10ms中斷一次,用以進(jìn)行數(shù)碼管顯示和每1秒讀取一次計(jì)數(shù)器T0中的數(shù)值。</p><p><b>  秒信號(hào)的產(chǎn)生</b>

93、;</p><p><b>  中斷產(chǎn)生后:</b></p><p>  #define TIME_CYLC 100</p><p>  Tcounter++; </p><p>  if(Tcounter>TIME_CYLC)</p><p>  { Flag_clac = 1; <

94、/p><p><b>  }</b></p><p>  判斷Tcounetr是否到達(dá)100了,如果到達(dá)100,則說(shuō)明1秒時(shí)間已到,程序?qū)㈥P(guān)閉T0計(jì)數(shù)器,然后對(duì)T0中已計(jì)得的數(shù)據(jù)進(jìn)行處理,然后再去進(jìn)行顯示,否則直接轉(zhuǎn)去顯示。這部份的程序流程圖如圖4.3秒信號(hào)子程序流程圖所示。</p><p>  圖4.3 秒信號(hào)子程序流程圖</p>

95、<p><b>  2.?dāng)?shù)碼管的顯示</b></p><p>  數(shù)碼管顯示采用動(dòng)態(tài)方式,即通過(guò)延遲程序使數(shù)碼管分時(shí)點(diǎn)亮,依次循環(huán)。由于數(shù)碼管共有4位,延遲5ms,因此,每20ms即可輪流點(diǎn)亮每個(gè)數(shù)碼管一次,利用人的視覺(jué)暫留現(xiàn)象,可以穩(wěn)定地顯示各位數(shù)碼管的值。</p><p>  如圖4.4數(shù)碼管顯示流程圖所示,從圖中可以看出,程序中利用了一個(gè)延時(shí)函數(shù),在函

96、數(shù)中由計(jì)數(shù)器自加來(lái)實(shí)現(xiàn)延時(shí)的(自加速度由晶振頻率決定),當(dāng)計(jì)數(shù)值到5000時(shí),計(jì)數(shù)值清零,點(diǎn)亮下一個(gè)數(shù)碼管,從而使第一至第四位數(shù)碼管按設(shè)定逐個(gè)點(diǎn)亮。下面以顯示182為例,即速度為182R/min加以說(shuō)明。當(dāng)數(shù)碼管顯示182時(shí),意味著第4位數(shù)碼管顯示2,第三位顯示8,第二位顯示1,第四位顯示0。</p><p>  圖4.4 數(shù)碼管顯示流程圖</p><p>  程序如下: 當(dāng)轉(zhuǎn)速為182時(shí)

97、,即</p><p>  Disbuf[0] = 0;</p><p>  Disbuf[1] = 1;</p><p>  Disbuf[2] = 8;</p><p>  Disbuf[3] = 2;</p><p><b>  送入顯示緩沖區(qū)</b></p><p>

98、  P2 |= 0xF0; //初始化,關(guān)閉所有位選開(kāi)關(guān)</p><p>  LED_SEG0 = 0; //選通第一位數(shù)碼管</p><p>  LED_DAT = table[Disbuf[0]];//查位碼表,將其由P0輸出</p><p>  Delay(5) //延時(shí)5m

99、s,等待下一位顯示</p><p><b>  ……</b></p><p>  以此規(guī)律進(jìn)行顯示,直至四位全部顯示完畢,等待下一次循環(huán)。</p><p>  4.2.4鍵盤(pán)的功能的實(shí)現(xiàn)與設(shè)計(jì)</p><p>  本課題的硬件設(shè)計(jì)中使用了2個(gè)按鍵,功能分別是實(shí)現(xiàn)轉(zhuǎn)速測(cè)量的啟動(dòng)/停止和復(fù)位。啟動(dòng)停止可通過(guò)P1.0接口進(jìn)行控

100、制,當(dāng)按鍵按下時(shí),按鍵端口接地,I/O接口P1.0輸入低電平,程序可表示為P1^0=0,通過(guò)此條件便可實(shí)現(xiàn)開(kāi)關(guān)功能;復(fù)位鍵則不需要軟件支持。在按鍵過(guò)程中會(huì)有按鍵抖動(dòng),因此我們一般通過(guò)軟件延遲程序?qū)存I命令延遲5-10ms再執(zhí)行,便可減少抖動(dòng)造成的誤差。程序如下:</p><p><b>  if(!P1^0)</b></p><p>  { Delay(10);

101、 //防按鍵抖動(dòng)</p><p><b>  if(!P1^0)</b></p><p><b>  { ……}</b></p><p><b>  }</b></p><p><b>  4.3系統(tǒng)流程</b></p><p> 

102、 本系統(tǒng)的主程序參考圖如圖4.5主程序流程圖所示,在完成初始化工作以后,即循環(huán)等待,每1s時(shí)間到之后,T1中斷程序?qū)?huì)讀取T0中的計(jì)數(shù)值,并將其放入約定的存儲(chǔ)單元中,并且判斷是否有鍵按下,當(dāng)P1.0被按下時(shí),主程序即轉(zhuǎn)入計(jì)算,第一步判斷是否有鍵按下,第二步將16進(jìn)制數(shù)的結(jié)果轉(zhuǎn)化為BCD碼,第三步,將BCD碼轉(zhuǎn)化并送入顯示緩沖區(qū)。</p><p><b>  N</b></p>

103、<p><b>  Y</b></p><p>  圖4.5 主程序流程圖</p><p>  5 程序調(diào)試及固化</p><p>  單片機(jī)應(yīng)用系統(tǒng)的程序必須有調(diào)試好的應(yīng)用程序,系統(tǒng)才能運(yùn)行。通常,單片機(jī)的開(kāi)發(fā)工具至少需要仿真機(jī)和編程器兩種,前者用以調(diào)試程序,后者用于將調(diào)試完成后的程序代碼寫(xiě)入單片機(jī)芯片中。</p>

104、<p>  5.1單片機(jī)開(kāi)發(fā)平臺(tái)簡(jiǎn)介</p><p>  單片機(jī)開(kāi)發(fā)工具的作用有這樣一些:</p><p>  (1)有較齊全的開(kāi)發(fā)軟件工具,如配置有匯編語(yǔ)言,用戶(hù)可用匯編語(yǔ)言編制應(yīng)用軟件。開(kāi)發(fā)工具能自動(dòng)生成目標(biāo)文件;配有反匯編軟件,能將目標(biāo)程序轉(zhuǎn)換為匯編語(yǔ)言程序文本;有豐富的子程序庫(kù)可供用戶(hù)調(diào)用。</p><p>  (2)有全速跟蹤調(diào)試、運(yùn)行的能力開(kāi)發(fā)

105、裝置占用單片機(jī)硬件資源少。并具有單步運(yùn)行、設(shè)斷點(diǎn)運(yùn)行、狀態(tài)查詢(xún)等功能。</p><p>  (3)能進(jìn)行系統(tǒng)硬件電路的診斷與檢查;為了方便模快化軟件調(diào)試,還應(yīng)配置軟件轉(zhuǎn)儲(chǔ)、程序文本打印、能將程序固化到單片機(jī)芯片或系統(tǒng)FLASH ROM芯片中。</p><p>  5.2本系統(tǒng)開(kāi)發(fā)平臺(tái)</p><p>  5.2.1keil C51軟件集成開(kāi)發(fā)環(huán)境</p>

106、<p>  隨著單片機(jī)開(kāi)發(fā)技術(shù)的不斷發(fā)展,單片機(jī)的開(kāi)發(fā)軟件也在不斷發(fā)展,Keil軟件是目前流行的用于開(kāi)發(fā)51系列單片機(jī)的軟件。該軟件提供了包括C編譯器、宏匯編、鏈接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開(kāi)發(fā)方案,通過(guò)一個(gè)集成開(kāi)發(fā)環(huán)境(μVision)將這些部分組合在一起。運(yùn)行Keil軟件需要Pentium或以上的CPU,16MB或更多RAM、20MB以上空閑的硬盤(pán)空間、Win98、NT、Win2000、WinXP

107、等操作系統(tǒng)。</p><p><b>  5.2.2程序調(diào)試</b></p><p><b>  1.源文件建立</b></p><p>  使用菜單file/new在項(xiàng)目窗口右側(cè)打開(kāi)一個(gè)文本編輯界面,可在其中寫(xiě)入指令或?qū)⒁丫庉嬐瓿傻某绦蛘{(diào)入,保存。本程序保存為*. C。如圖5.1程序的保存界面所示。</p>

108、<p>  圖5.1 程序的保存界面</p><p><b>  2.建立工程文件</b></p><p>  點(diǎn)菜單Project/New Project出現(xiàn)對(duì)話(huà)框,給工程命名為test保存,在彈出的對(duì)話(huà)框選擇CPU的型號(hào),選擇Atmel公司的89C51,確定回到主界面,在工程窗口文件頁(yè)中右擊Target1/Source Group1,如圖5.2程序的加

109、載界面所示,左擊Add Files to Group ‘source Group 1’后會(huì)出現(xiàn)選擇文件的對(duì)話(huà)框,選擇文件,點(diǎn)擊Add。</p><p>  圖5.2 程序的加載界面</p><p><b>  3.編譯連接</b></p><p>  選擇菜單Project/Build target進(jìn)行連接,此時(shí)編譯過(guò)程的信息將出現(xiàn)在編譯窗口中

110、,出現(xiàn)的語(yǔ)法錯(cuò)誤會(huì)有提示,根據(jù)提示,修改源程序,直到編譯通過(guò)。</p><p>  圖5.3 系統(tǒng)程序編譯界面</p><p><b>  4.進(jìn)入調(diào)試</b></p><p>  編譯通過(guò)后的源程序,只表示沒(méi)有語(yǔ)法錯(cuò)誤,但是否能夠存在邏輯或其他錯(cuò)誤,還需要進(jìn)行仿真才行。在調(diào)試之前應(yīng)先修改晶振的頻率,打開(kāi)菜單Project/options fo

111、r Target‘Target 1’會(huì)現(xiàn)一個(gè)對(duì)話(huà)框,在Target修改晶振頻率。修改完成后,打開(kāi)菜單Debeg/Start/Stop Session對(duì)軟件模擬調(diào)試。如圖5.4調(diào)試界面所示。在調(diào)試中,可以采用單步運(yùn)行對(duì)程序進(jìn)行檢查,修改錯(cuò)誤,并通過(guò)各參數(shù)窗口,觀察數(shù)值是否與設(shè)定值相同。</p><p>  在調(diào)試中,可以采用單步運(yùn)行對(duì)程序進(jìn)行檢查,修改錯(cuò)誤,并通過(guò)各參數(shù)</p><p> 

112、 窗口,觀察數(shù)值是否與設(shè)定值相同。</p><p><b>  圖5.4 調(diào)試界面</b></p><p>  調(diào)試還可以使用設(shè)置斷點(diǎn)的方式,在定時(shí)器T1的中斷服務(wù)程序的起點(diǎn)處設(shè)了一個(gè)斷點(diǎn),記錄下運(yùn)行時(shí)間為16.78123900(s),如圖5.5斷點(diǎn)設(shè)置界面(1)所示,再次運(yùn)行并停止后,可看到,時(shí)間為16.7712100(s),如圖5.6斷點(diǎn)設(shè)置界面(2)所示,計(jì)算可

113、知,中斷時(shí)間為10.029(ms),可以根據(jù)這一結(jié)果,對(duì)定時(shí)常數(shù)略作修改,使得定時(shí)時(shí)間最接近于10(ms)。</p><p>  圖5.5 斷點(diǎn)設(shè)置界面(1)</p><p>  反復(fù)修改,直到所有功能完全正確,即可產(chǎn)生.hex文件,該文件可用編程器燒錄到單片機(jī)芯片中。注:如果要生成.hex文件,需將Project/options for Target‘Target 1’/Output中

114、Create HEX Fi對(duì)話(huà)框選中。如圖5.7生成.hex</p><p><b>  文件所示。</b></p><p>  圖5.6斷點(diǎn)設(shè)置界面(2)</p><p>  圖5.7 生成.hex文件選擇界面</p><p><b>  6 結(jié)論</b></p><p>

115、;<b>  6.1主要研究結(jié)論</b></p><p>  本文根據(jù)智能轉(zhuǎn)速測(cè)量系統(tǒng)的硬件設(shè)計(jì)和要求,設(shè)計(jì)出相應(yīng)軟件系統(tǒng)。文中首先對(duì)單片機(jī)用于轉(zhuǎn)速測(cè)量的理論、原理進(jìn)行了簡(jiǎn)單的分析、比較,并對(duì)基于AT89C51單片機(jī)的轉(zhuǎn)速測(cè)量電路做了簡(jiǎn)單的介紹,詳細(xì)闡述了軟件的設(shè)計(jì),編譯程序,最終實(shí)現(xiàn)轉(zhuǎn)速測(cè)量、顯示的功能,再通過(guò)調(diào)試使程序通過(guò)編程器寫(xiě)入芯片。本設(shè)計(jì)的具體研究成果如下:</p>

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論