版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、摘 要單片機(jī)自從20世紀(jì)70年代問(wèn)世以來(lái),得到了快速發(fā)展。從早期的8位機(jī)到現(xiàn)在的32位機(jī),其硬件資源和軟件資源不斷豐富與完善,它在工業(yè)控制、儀器儀表、信息通信等領(lǐng)域有著廣泛的應(yīng)用。本文討論了以AT89C51單片機(jī)為核心的電機(jī)轉(zhuǎn)速測(cè)量的硬件組成和軟件設(shè)計(jì),本文首先敘述了單片機(jī)測(cè)量轉(zhuǎn)速的系統(tǒng)構(gòu)成及轉(zhuǎn)速測(cè)量的幾種常用方法,分析了相應(yīng)方法在測(cè)量上的特點(diǎn)、誤差和計(jì)算。其次,針對(duì)特定的應(yīng)用環(huán)境,設(shè)計(jì)出一種基于89C51單片機(jī)的全數(shù)字式測(cè)速系統(tǒng),指出產(chǎn)生誤差的可能原因,并給出了具體解決的方法;根據(jù)系統(tǒng)要求編制了源程序,分析其工作流程。最后,對(duì)構(gòu)建的系統(tǒng)利用仿真機(jī)進(jìn)行調(diào)試,對(duì)測(cè)量指標(biāo)進(jìn)行了分析、比較并提出改進(jìn)
2、方案。關(guān)鍵詞:?jiǎn)纹瑱C(jī); 轉(zhuǎn)速; 程序設(shè)計(jì); 程序調(diào)試ABSTRACTSingle-chip since the advent of the 20th century, since the 70s has been rapid development. From the early 8-bit machine to the current 32-bit machine, the hardware resources and software resources to constantly enrich and improve it in the industrial control, instr
3、umentation, information and communication in areas such as share a wide range of applications. This article discusses the AT89C51 single-chip microcomputer as the core of the motor speed measurement hardware and software design, this paper describes the first single-chip measurement of speed and spe
4、ed of the system constitutes of several commonly used methods of measurement, analysis method in the corresponding measurements characteristics, and calculation error. Secondly, application-specific environment, to design a single-chip microcomputer 89C51-based all-digital type gun system, pointing
5、out the possible reasons for errors, and gives a specific solution; in accordance with the preparation of the source system requirements, analysis its workflow. Finally, the system uses to build a simulator for debugging, indicators of measuring the analysis, comparison and improvement.Key words: Si
6、ngle-chip speed Programming Debugging目 錄緒論11 目前國(guó)內(nèi)外發(fā)展現(xiàn)狀及課題研究目的、意義和應(yīng)用21.1 目前國(guó)內(nèi)外發(fā)展現(xiàn)狀21.2 課題研究目的、意義和應(yīng)用2轉(zhuǎn)速測(cè)量系統(tǒng)研究目的、意義2轉(zhuǎn)速測(cè)量在國(guó)民經(jīng)濟(jì)中的應(yīng)用32 課題涉及到的相關(guān)技術(shù)及原理52.1 單片機(jī)測(cè)控系統(tǒng)技術(shù)52.2 轉(zhuǎn)速測(cè)量方法概述62.3 單片機(jī)測(cè)量轉(zhuǎn)速的基本方法6測(cè)量系統(tǒng)的構(gòu)成62.4 轉(zhuǎn)速測(cè)量原理82.5 誤差和精度分析10碼盤(pán)刻度誤差分析103 課題硬件電路設(shè)計(jì)113.1 硬件電路設(shè)計(jì)113.2 電路工作原理分析114 系統(tǒng)程序設(shè)計(jì)與實(shí)現(xiàn)134.1 程序設(shè)計(jì)過(guò)程方案分析13系統(tǒng)定時(shí)
7、/計(jì)數(shù)器T0分析13系統(tǒng)定時(shí)/計(jì)數(shù)器T1分析13系統(tǒng)定時(shí)/計(jì)數(shù)器的方式控制字分析及過(guò)程13系統(tǒng)定時(shí)/計(jì)數(shù)控制寄存器TCON14系統(tǒng)程序的初始化144.2 主流程圖154.3 總程序?qū)崿F(xiàn)164.4 子程序功能實(shí)現(xiàn)20秒信號(hào)子程序20數(shù)碼管的顯示子程序214.5 系統(tǒng)調(diào)試24調(diào)試平臺(tái)簡(jiǎn)介24程序調(diào)試245 設(shè)計(jì)中的問(wèn)題及不足26結(jié)論27致 謝28參考文獻(xiàn)29附錄 30緒論在工程實(shí)踐中,我們經(jīng)常會(huì)遇到各種需要測(cè)量轉(zhuǎn)速的場(chǎng)合,例如在發(fā)動(dòng)機(jī)、電動(dòng)機(jī)、卷?yè)P(yáng)機(jī)、機(jī)床主軸等旋轉(zhuǎn)設(shè)備的試驗(yàn)、運(yùn)轉(zhuǎn)和控制中,常需要分時(shí)或連續(xù)測(cè)量和顯示其轉(zhuǎn)速及瞬時(shí)轉(zhuǎn)速,為了能精確地測(cè)量轉(zhuǎn)速外,還要保證測(cè)量的實(shí)時(shí)性;要求能測(cè)得瞬時(shí)轉(zhuǎn)速
8、, 轉(zhuǎn)速測(cè)量方法分為模擬式和數(shù)字式兩種, 模擬式采用測(cè)速發(fā)電機(jī)為檢測(cè)元件,得到的信號(hào)是電壓量,而數(shù)字式通常采用光電編碼器、圓光柵、霍爾元件等為檢測(cè)元件,得到的信號(hào)是脈沖信號(hào),隨著微型計(jì)算機(jī)的廣泛應(yīng)用,特別是高性能價(jià)格比的單片機(jī)的涌現(xiàn),轉(zhuǎn)速測(cè)量普遍采用了以單片機(jī)為核心的數(shù)字法,智能化微電腦式代替了一般機(jī)械式或模擬量結(jié)構(gòu)1。采用89C51 單片機(jī)作為測(cè)量轉(zhuǎn)速的芯片,系統(tǒng)硬件設(shè)備結(jié)構(gòu)簡(jiǎn)單合理,測(cè)量精度高(小于0. 5% ) 實(shí)時(shí)性好、顯示直觀等優(yōu)點(diǎn),尤其適合在測(cè)量環(huán)境比較惡劣的條件下,其抗干擾能力強(qiáng),使用維護(hù)安裝均方便,節(jié)省投資,具有比較好的測(cè)速效果,測(cè)速齒輪在齒數(shù)設(shè)計(jì)時(shí)可根據(jù)實(shí)際情況盡量定為60
9、齒,正好轉(zhuǎn)速的數(shù)值與脈沖信號(hào)的頻率值一致,單片機(jī)計(jì)算起來(lái)很方便;如果不便此設(shè)計(jì),即可參照本文中所設(shè)計(jì)的約掉系數(shù)方法,采用單片機(jī)進(jìn)行除法運(yùn)算的處理手段, 這種測(cè)速方法可以推廣到需要測(cè)量帶有主軸等旋轉(zhuǎn)設(shè)備野外作業(yè)轉(zhuǎn)速的系統(tǒng)中去。.本文由于只考慮轉(zhuǎn)速的測(cè)量與顯示,在考慮系統(tǒng)配置和擴(kuò)展時(shí),盡可能利用單片機(jī)本身的資源,以提高性?xún)r(jià)比,選擇89C51系列的單片機(jī)作為系統(tǒng)的控制芯片。而本轉(zhuǎn)速測(cè)量系統(tǒng)采用“M”法的測(cè)量方法,需一個(gè)用于對(duì)外部脈沖計(jì)數(shù)的計(jì)數(shù)器,一個(gè)用于對(duì)內(nèi)部高頻脈沖計(jì)數(shù)的定時(shí)器,用于調(diào)整、預(yù)定定時(shí)時(shí)間。從分析可以看出89C51能滿足系統(tǒng)要求,不須另外擴(kuò)展計(jì)數(shù)器,外部中斷分別用于定時(shí)/計(jì)數(shù)同步中斷和
10、響應(yīng),定時(shí)器利用其溢出中斷來(lái)預(yù)定測(cè)量的時(shí)間,該時(shí)間要求準(zhǔn)確,可根據(jù)測(cè)量高、中、低轉(zhuǎn)速來(lái)進(jìn)行調(diào)整。1 目前國(guó)內(nèi)外發(fā)展現(xiàn)狀及課題研究目的、意義和應(yīng)用1.1 目前國(guó)內(nèi)外發(fā)展現(xiàn)狀轉(zhuǎn)速測(cè)量是旋轉(zhuǎn)物體的轉(zhuǎn)數(shù)與時(shí)間之比的物理量的測(cè)量,是描述各種旋轉(zhuǎn)機(jī)械技術(shù)性能的一個(gè)重要參量。在計(jì)量學(xué)里轉(zhuǎn)速屬于導(dǎo)出單位,其物理量含義為旋轉(zhuǎn)物體在單位時(shí)間內(nèi)轉(zhuǎn)過(guò)的轉(zhuǎn)數(shù)。工程中用來(lái)描述動(dòng)力機(jī)械的運(yùn)動(dòng)的特性,轉(zhuǎn)數(shù)和頻率有共同的量綱,都是單位時(shí)間內(nèi)某一量值(脈沖個(gè)數(shù)、轉(zhuǎn)數(shù))的出現(xiàn)次數(shù)。從理論上講;轉(zhuǎn)數(shù)值可以直接和頻率值進(jìn)行比對(duì),測(cè)時(shí)計(jì)數(shù)是轉(zhuǎn)速計(jì)量的基本方法。在我國(guó)轉(zhuǎn)數(shù)測(cè)量表(含轉(zhuǎn)速測(cè)量?jī)x等)屬依法管理的計(jì)量器具,通常用轉(zhuǎn)速標(biāo)準(zhǔn)裝置可以
11、完成對(duì)各類(lèi)轉(zhuǎn)速表的檢測(cè)/標(biāo)準(zhǔn)工作。轉(zhuǎn)速測(cè)量技術(shù)隨著科學(xué)技術(shù)的飛速發(fā)展。在旋轉(zhuǎn)物體速度測(cè)量方法上應(yīng)用了各種新的技術(shù)實(shí)現(xiàn)了測(cè)量的準(zhǔn)確高效,安全便捷,轉(zhuǎn)速表依據(jù)工作原理和采樣方式,可分為機(jī)械式、光電式、激光式、頻閃式、磁電式等。目前在國(guó)外使用飩機(jī)械式轉(zhuǎn)速表的用戶(hù)越來(lái)越少,并呈現(xiàn)將被電子計(jì)數(shù)式轉(zhuǎn)速表逐漸取代的趨勢(shì),轉(zhuǎn)速測(cè)量范圍一般為幾十轉(zhuǎn)到幾萬(wàn)轉(zhuǎn),測(cè)量準(zhǔn)確度大多為0.1%以下,極少數(shù)產(chǎn)品能達(dá)0.05%。因此轉(zhuǎn)速測(cè)量系統(tǒng)作為普遍的應(yīng)用在國(guó)民經(jīng)濟(jì)發(fā)展中,有重要的意義。隨著大規(guī)模及超大規(guī)模集成電路技術(shù)的發(fā)展,數(shù)字系統(tǒng)測(cè)量得到普遍應(yīng)用,特別是單片機(jī)對(duì)脈沖數(shù)字信號(hào)的強(qiáng)大處理能力,使得全數(shù)字測(cè)量系統(tǒng)越來(lái)越普及,其
12、轉(zhuǎn)速測(cè)量系統(tǒng)也可以用全數(shù)字化處理2。在測(cè)量范圍和測(cè)量精度方面都有極大的提高。1.2 課題研究目的、意義和應(yīng)用 轉(zhuǎn)速測(cè)量系統(tǒng)研究目的、意義轉(zhuǎn)速是工程中應(yīng)用非常廣泛的一個(gè)參數(shù),其測(cè)量方法較多,而模擬量的采集和模擬處理一直是轉(zhuǎn)速測(cè)量的主要方法,這種測(cè)量方法已不能適應(yīng)現(xiàn)代科技發(fā)展的要求,在測(cè)量范圍和測(cè)量精度上,已不能滿足大多數(shù)系統(tǒng)的使用。隨著大規(guī)模及超大規(guī)模集成電路技術(shù)的發(fā)展,數(shù)字系統(tǒng)測(cè)量得到普遍應(yīng)用,特別是單片機(jī)對(duì)脈沖數(shù)字信號(hào)的強(qiáng)大處理能力,使得全數(shù)字測(cè)量系統(tǒng)越來(lái)越普及,其轉(zhuǎn)速測(cè)量系統(tǒng)也可以用全數(shù)字化處理。在測(cè)量范圍和測(cè)量精度方面都有極大的提高。因此,本課題的目的是:對(duì)各種測(cè)量轉(zhuǎn)速的基本方法予以分析
13、,針對(duì)不同的應(yīng)用環(huán)境,利用89C51系列單片機(jī)設(shè)計(jì)一種全數(shù)字化測(cè)速系統(tǒng),從提高測(cè)量精度的角度出發(fā)。分析討論其產(chǎn)生誤差的可能原因,為今后的實(shí)際使用提供借鑒。并從實(shí)際硬件電路出發(fā),分析電路工作原理和軟件流程,根據(jù)調(diào)試情況提出修改方案和解決辦法。課題以單片機(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ē)速表等。其次該轉(zhuǎn)速測(cè)量系統(tǒng)由于采用全數(shù)字化結(jié)構(gòu),因而可以很方便的和工業(yè)控制計(jì)算機(jī)進(jìn)行連接,實(shí)行遠(yuǎn)程管理和控制,進(jìn)一步提高現(xiàn)代化水平。并
14、且,幾乎不需做很大改變直接就能作為單獨(dú)的使用產(chǎn)品3??傊?,轉(zhuǎn)速測(cè)量系統(tǒng)的研究是一件非常有意義的課題。 轉(zhuǎn)速測(cè)量在國(guó)民經(jīng)濟(jì)中的應(yīng)用轉(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ā)展中,有重要的意義4。下面列舉二例加以說(shuō)明1.轉(zhuǎn)速測(cè)量在調(diào)速系統(tǒng)中的應(yīng)用直流電動(dòng)機(jī)具有良好的起動(dòng)、制動(dòng)性能,適宜在大范圍內(nèi)平滑調(diào)速,因此在許多需要調(diào)速或快速正反向的電力拖動(dòng)系統(tǒng)中得到了廣泛的應(yīng)用。而且,從控制的角度來(lái)看,直流調(diào)速還是交流拖動(dòng)系統(tǒng)的基礎(chǔ)。早期直流電動(dòng)機(jī)的控制均以模擬電路為基
15、礎(chǔ),由運(yùn)算放大器、非線性集成電路以及少量的數(shù)字電路組成,控制系統(tǒng)的硬件部分非常復(fù)雜,功能單一,而且系統(tǒng)非常不靈活、調(diào)試?yán)щy,阻礙了直流電動(dòng)機(jī)控制技術(shù)的發(fā)展和應(yīng)用范圍的推廣。隨著單片機(jī)技術(shù)的日新月異,使許多控制功能及算法可以采用軟件技術(shù)來(lái)完成,不但為直流電動(dòng)機(jī)的控制提供了更大的靈活性,而且使系統(tǒng)能達(dá)到了更高的性能,從而大大節(jié)約了人力資源,降低了系統(tǒng)成本,有效地提高了工作效率。轉(zhuǎn)速測(cè)量部分:本測(cè)量系統(tǒng)采用89C51單片機(jī)控制,利用霍爾元件由轉(zhuǎn)速產(chǎn)生的脈沖,對(duì)轉(zhuǎn)速進(jìn)行測(cè)量,原理框圖如圖1-1所示。轉(zhuǎn)速由單片機(jī)的P0口輸出,同時(shí)當(dāng)電機(jī)轉(zhuǎn)速超過(guò)設(shè)定值時(shí),通過(guò)單片機(jī)的1口輸出信號(hào),驅(qū)動(dòng)響鈴報(bào)警。性能特點(diǎn):
16、(1)89C51配合晶體管的雙極式可逆PWM變換器構(gòu)成直流電機(jī)驅(qū)動(dòng)系統(tǒng),可獲得高性能的調(diào)速性能指標(biāo);(2)直流電機(jī)驅(qū)動(dòng)系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,省去了復(fù)雜的換流裝置,因此體積小,成本低,加之采用硬軟件結(jié)合的微機(jī)控制方式,提高了系統(tǒng)的可靠性和抗干擾性.(3)轉(zhuǎn)速測(cè)量系統(tǒng)采用軟件實(shí)現(xiàn),動(dòng)態(tài)顯示容易,超限報(bào)警方便,提高了系統(tǒng)的靈活性。(4)由變換器構(gòu)成直流電機(jī)驅(qū)動(dòng)系統(tǒng),可有效克服以往的直流調(diào)速中的諧波大、功率因數(shù)低的問(wèn)題,是一種節(jié)能的調(diào)速方案。 脈沖計(jì)數(shù)器 鍵盤(pán) 單 片 機(jī) 顯示 存儲(chǔ)器 報(bào)警圖1-1轉(zhuǎn)速測(cè)量框圖2. EP1C6Q在水輪機(jī)組轉(zhuǎn)速測(cè)量中的應(yīng)用水輪機(jī)組狀態(tài)監(jiān)測(cè)系統(tǒng)采用Lonworks現(xiàn)場(chǎng)總線技術(shù),神
17、經(jīng)元芯片是構(gòu)成系統(tǒng)采集節(jié)點(diǎn)核心,它內(nèi)部包括三個(gè)微處理器,即MAC處理器、網(wǎng)絡(luò)處理器、應(yīng)用處理器,而11個(gè)輸入輸出引腳則可根據(jù)不同外部設(shè)備來(lái)靈活配置5。收發(fā)器是節(jié)點(diǎn)之間通信橋梁。由于水輪機(jī)組轉(zhuǎn)速比較慢,傳感器發(fā)出脈沖信號(hào)時(shí)間間隔較長(zhǎng)因此對(duì)緩變信號(hào)周期測(cè)量應(yīng)采用測(cè)周辦法。首先是將輸入脈沖信號(hào)經(jīng)去抖、限幅后變成符合EP1C6Q輸入信號(hào)特性要求信號(hào),然后當(dāng)EP1C6Q接到神經(jīng)元信號(hào)測(cè)量命令后,再捕捉輸入信號(hào)上升沿。為了保證所有通道在神經(jīng)元芯片讀取數(shù)據(jù)之前已經(jīng)鎖存,讀取數(shù)據(jù)時(shí)間間隔應(yīng)保證不小于兩個(gè)信號(hào)周期。神經(jīng)元芯片將每個(gè)通道計(jì)數(shù)值存儲(chǔ)到片內(nèi)RAM區(qū),并將計(jì)算得到轉(zhuǎn)速值送到信號(hào)處理模塊,以計(jì)算水輪機(jī)組工
18、作效率。由于流速測(cè)量傳感器分布特點(diǎn)是邊緣傳感器信號(hào)周期比內(nèi)部傳感器信號(hào)周期長(zhǎng),因此,筆者選擇一個(gè)最靠邊傳感器作為標(biāo)志傳感器,并由標(biāo)志傳感器產(chǎn)生讀取數(shù)據(jù)標(biāo)志位信號(hào)。2 課題涉及到的相關(guān)技術(shù)及原理2.1 單片機(jī)測(cè)控系統(tǒng)技術(shù)測(cè)控系統(tǒng)大概由三部分組成:檢測(cè)部分、控制部分和輸出部分。檢測(cè)部分一般需要用到傳感器技術(shù),將非電量信號(hào)轉(zhuǎn)化為電量信號(hào)。單片機(jī)實(shí)時(shí)掃描傳感器的工作狀態(tài),根據(jù)傳感器發(fā)來(lái)的信號(hào)自動(dòng)調(diào)用相應(yīng)的子程序,給出相應(yīng)的控制信號(hào),控制被控部件做出相應(yīng)的反應(yīng)。同時(shí)還控制顯示部件輸出有用的信息,以便于人機(jī)信號(hào)的交換.基本部分是外圍芯片的擴(kuò)展及功能鍵盤(pán)、顯示器配置,通過(guò)總線連接而成,測(cè)控增強(qiáng)部分主要是傳感
19、器接口與伺服驅(qū)動(dòng)控制接口。它們直接與工業(yè)現(xiàn)場(chǎng)相連,是干擾進(jìn)入的主要通道,一般要采取隔離措施。數(shù)字電路設(shè)計(jì)即單片機(jī)系統(tǒng)的擴(kuò)展,它包括與單片機(jī)直接接口的數(shù)字電路,如存儲(chǔ)器和接口的擴(kuò)展。存儲(chǔ)器的擴(kuò)展指EPROM、EEPROM和RAM的擴(kuò)展。接口擴(kuò)展是指串、并行接口(如8255、8155和279等)及其他功能器件的擴(kuò)展。這部分設(shè)計(jì)一般都能找到相關(guān)的參考資料,因此相對(duì)來(lái)講比較容易一些。與模擬電路相關(guān)的電路設(shè)計(jì)包括信號(hào)放大、整形、變換、隔離、驅(qū)動(dòng)和傳感器的選擇。這部分電路的設(shè)計(jì)相對(duì)較難把握,一旦設(shè)計(jì)有誤,對(duì)整個(gè)系統(tǒng)將會(huì)產(chǎn)生嚴(yán)重響。系統(tǒng)圖如圖2-1所示。圖2-1 傳感器 光電轉(zhuǎn)換 與信號(hào)調(diào)節(jié) 鍵盤(pán) ROM
20、RS232 數(shù)碼顯示譯碼器 LED數(shù)碼管 89C512.2 轉(zhuǎn)速測(cè)量方法概述轉(zhuǎn)速測(cè)量的方法有很多,根據(jù)工作原理可分為計(jì)數(shù)式、模擬式、同步式。計(jì)數(shù)式方法是用某種方式讀出一定時(shí)間內(nèi)的總轉(zhuǎn)數(shù);模擬式方法是測(cè)出由瞬時(shí)轉(zhuǎn)速引起的某種物理量的變化;同步式是用利用已知的頻率與旋轉(zhuǎn)體的旋轉(zhuǎn)同步來(lái)測(cè)量轉(zhuǎn)速,根據(jù)不同的轉(zhuǎn)換方式,測(cè)試方法一般的轉(zhuǎn)速測(cè)試可用機(jī)械式轉(zhuǎn)速表、發(fā)電機(jī)式轉(zhuǎn)速表以及頻閃式測(cè)速表,但在有些情況下,其測(cè)量精度,瞬時(shí)穩(wěn)定度不能滿足更高的要求,因此,在測(cè)量方法和傳感器的選擇上顯得尤為重要。常用的傳感器種類(lèi)有光電傳感器、電磁式傳感器、電容式傳感器等,而測(cè)量方法上有測(cè)量轉(zhuǎn)速周期、轉(zhuǎn)速頻率等。就轉(zhuǎn)速測(cè)量原理
21、而言,大體可分為三大類(lèi),一是用單位時(shí)間內(nèi)測(cè)得物體的旋轉(zhuǎn)角度來(lái)計(jì)算速度,例如在單位時(shí)間內(nèi),累計(jì)轉(zhuǎn)速傳感器發(fā)出的N個(gè)脈沖,即為該單位時(shí)間的速度。這種以測(cè)量頻率來(lái)實(shí)現(xiàn)測(cè)量轉(zhuǎn)速的方法,稱(chēng)測(cè)頻法。即“M”法;另一類(lèi)是在給定的角位移距離內(nèi),通過(guò)測(cè)量這一角位移的時(shí)間來(lái)進(jìn)行測(cè)速的方法,稱(chēng)測(cè)周法,即“T”法,如給定的角位移,傳感器便發(fā)出一個(gè)電脈沖周期,以晶體震蕩頻率而產(chǎn)生的標(biāo)準(zhǔn)脈沖來(lái)度量這一周期時(shí)間,再經(jīng)換算可得轉(zhuǎn)速。這兩種測(cè)速方法各有優(yōu)缺點(diǎn),“M”法一般用于高速測(cè)量,在轉(zhuǎn)速較低時(shí),測(cè)量誤差較大,而且,檢測(cè)裝置對(duì)轉(zhuǎn)速分辨能力也變差;而“T”法一般用于低速測(cè)量,速度越低測(cè)量精度越高,但在測(cè)量高轉(zhuǎn)速時(shí),誤差較大;結(jié)
22、合這兩種測(cè)量方法就可以地出第三種測(cè)量方法,即M/T法結(jié)合這兩種方法的優(yōu)點(diǎn),一方面象“M”法那樣在對(duì)傳感器發(fā)出的脈沖計(jì)數(shù)的同時(shí),也象“T”法那樣計(jì)取脈沖的時(shí)間,通過(guò)計(jì)算即可得出轉(zhuǎn)速值。在實(shí)際測(cè)量中,還須設(shè)定定時(shí)時(shí)間,兼顧高、低轉(zhuǎn)速時(shí)的精度影響,適時(shí)調(diào)節(jié)采樣時(shí)間6 。2.3 單片機(jī)測(cè)量轉(zhuǎn)速的基本方法轉(zhuǎn)速是工程中應(yīng)用非常廣泛的一個(gè)參數(shù),早期模擬量的模擬處理一直是作為轉(zhuǎn)速測(cè)量的主要方法,這種測(cè)量方法在測(cè)量范圍和測(cè)量精度上,已不能適應(yīng)現(xiàn)代科技發(fā)展的要求。而隨著大規(guī)模及超大規(guī)模集成電路技術(shù)的發(fā)展,數(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)越普
23、及。在測(cè)量范圍和測(cè)量精度方面都有極大的提高。下面將測(cè)量系統(tǒng)作一探討。2.3.1 測(cè)量系統(tǒng)的構(gòu)成一般轉(zhuǎn)速測(cè)量系統(tǒng)有以下幾個(gè)部分構(gòu)成,如圖(2-3)所示轉(zhuǎn) 速 信 號(hào) 拾 取整 形倍頻 單片機(jī)顯示接口芯片驅(qū)動(dòng)電路 顯示 鍵 盤(pán)圖(2-3)1.轉(zhuǎn)速信號(hào)拾取轉(zhuǎn)速信號(hào)拾取是整個(gè)系統(tǒng)的前端通道,目的是將外界的非電參量,通過(guò)一定方式轉(zhuǎn)換成電量,這一環(huán)節(jié)可以通過(guò)敏感元件、傳感器或測(cè)量?jī)x表等來(lái)實(shí)現(xiàn)。方法如下:(1)通過(guò)敏感元件拾取被測(cè)信號(hào)敏感元件體積小,可以根據(jù)用戶(hù)及環(huán)境要求做成各種形狀的探頭,它能將被測(cè)的物理量變換成電流、電壓,只要選擇合適的元件參數(shù)。如R、L、C設(shè)計(jì)相應(yīng)的電路,便能完成這種對(duì)應(yīng)關(guān)系。這種方法
24、設(shè)計(jì)難度大,信號(hào)穩(wěn)定度差,在模擬處理系統(tǒng)中不宜采用。(2)通過(guò)傳感器拾取信號(hào)由專(zhuān)業(yè)人員將敏感元件和相應(yīng)的測(cè)量電路、傳遞機(jī)構(gòu)以適當(dāng)?shù)男问街瞥刹煌?lèi)型、不同用處的傳感器,根據(jù)原理輸出電量。該電量可以是模擬量或數(shù)字量,現(xiàn)代傳感器還可以輸出開(kāi)關(guān)量,用于數(shù)字邏輯電路。(3)通過(guò)測(cè)量?jī)x表拾取被測(cè)信號(hào)目前有許多測(cè)量?jī)x表用于各種測(cè)量中,有大信號(hào)輸出、有BCD碼輸出等,但價(jià)格昂貴,專(zhuān)業(yè)性強(qiáng),一般不適合通用系統(tǒng)。通用的轉(zhuǎn)速測(cè)量系統(tǒng)大都采用一種俗稱(chēng)“碼盤(pán)”的傳感裝置,將圓形的碼盤(pán)固定在轉(zhuǎn)軸上,碼盤(pán)上有若干規(guī)則排列的小孔,用光電偶來(lái)輸出電信號(hào),以反映轉(zhuǎn)速對(duì)應(yīng)關(guān)系,即是將轉(zhuǎn)軸的速度以脈沖形式反映出來(lái),通常有兩種形式:7
25、81)模擬量量化后經(jīng)A/D轉(zhuǎn)換,數(shù)字量反映角度,供單片機(jī)計(jì)算處理,得出機(jī)械裝置轉(zhuǎn)速。2)直接由脈沖來(lái)反應(yīng)轉(zhuǎn)軸的角度,用每轉(zhuǎn)產(chǎn)生的脈沖經(jīng)單片機(jī)處理得出轉(zhuǎn)速。2.整形和倍頻前向通道中,從傳感器輸出的信號(hào)必須轉(zhuǎn)換成計(jì)算機(jī)輸入要求的信號(hào),由于信號(hào)調(diào)節(jié)電路與傳感器的選擇,現(xiàn)場(chǎng)干擾程度等,都會(huì)影響信號(hào)的質(zhì)量。而脈沖信號(hào)的上升沿和下降沿對(duì)數(shù)字電路的觸發(fā)尤為重要,若要將轉(zhuǎn)速脈沖信號(hào)直接加到計(jì)數(shù)器或外部中斷的輸入端,并利用其上升沿來(lái)觸發(fā)進(jìn)行計(jì)數(shù),則必須要求輸入的信號(hào)有陡峭的上升沿或下降沿。處理方法上可以用觸發(fā)器電路來(lái)整形。而倍頻電路主要用于解決低轉(zhuǎn)速時(shí)測(cè)量精度問(wèn)題。及碼盤(pán)的刻度誤差而造成的精度下降問(wèn)題。方法是在
26、每轉(zhuǎn)中增加脈沖的個(gè)數(shù)(碼盤(pán)的線程數(shù))來(lái)提高精度。但在高轉(zhuǎn)速時(shí),由于脈沖個(gè)數(shù)的增加,限制了最高轉(zhuǎn)速測(cè)量量程,這個(gè)問(wèn)題可用單片機(jī)控制來(lái)動(dòng)態(tài)處理解決,兼顧高低轉(zhuǎn)速的測(cè)量精度。3.單片機(jī)9單片機(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口線,預(yù)選用89C51單片機(jī)。具體工作情況在后討論。4.驅(qū)動(dòng)和顯示由于LED數(shù)碼管具有亮度高、可靠性好等特點(diǎn),工業(yè)測(cè)控系統(tǒng)中常用LED數(shù)碼管作為顯示輸出。本系統(tǒng)也采用數(shù)碼管作顯示。LED顯示
27、器是用發(fā)光二極管顯示字段的,通常使用七段構(gòu)成“日”字型和一只發(fā)光二極管作為小數(shù)點(diǎn),稱(chēng)八段數(shù)碼顯示器。其有兩種驅(qū)動(dòng)方式,共陰驅(qū)動(dòng)和共陽(yáng)驅(qū)動(dòng),共陰驅(qū)動(dòng)是各段發(fā)光二極管的陰極連在一起,并將公共端接地,在共陽(yáng)結(jié)構(gòu)中,將各段發(fā)光二極管陽(yáng)極連在一起,并將公共端接上+5V電源,顯示字符對(duì)應(yīng)字型代碼發(fā)光。2.4 轉(zhuǎn)速測(cè)量原理1.T法( 測(cè)周期法)它是測(cè)量光電脈沖發(fā)生器所產(chǎn)生的相鄰兩個(gè)轉(zhuǎn)速脈沖信號(hào)的時(shí)間來(lái)確定轉(zhuǎn)速。相鄰兩個(gè)轉(zhuǎn)速脈沖信號(hào)時(shí)間的測(cè)量是采用對(duì)已知高頻脈沖信號(hào)進(jìn)行計(jì)數(shù)來(lái)實(shí)現(xiàn)的。在極端情況下, 時(shí)間的測(cè)量會(huì)產(chǎn)生士 1 個(gè)高頻脈沖周期, 因此 T法在被測(cè)轉(zhuǎn)速較低( 相鄰兩個(gè)轉(zhuǎn)速脈沖信號(hào)時(shí)間較大) 時(shí), 才有
28、較高的測(cè)量精度, 所以T法 適合于低速測(cè)量。所以轉(zhuǎn)速可以用兩脈沖產(chǎn)生的間隔寬度Tp來(lái)決定。用以采集數(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ù)。T p通過(guò)定時(shí)器測(cè)得。定時(shí)器對(duì)時(shí)基脈沖(頻率為fc)進(jìn)行計(jì)數(shù)定時(shí),在Tp內(nèi)計(jì)數(shù)值若為m2,則計(jì)算公式為: n=60/pTp (2-2)即: n=60fc/Pm2 (2-3)P-為轉(zhuǎn)軸轉(zhuǎn)一周脈沖發(fā)生器產(chǎn)生的脈沖數(shù)。fc -為硬件產(chǎn)生的基準(zhǔn)時(shí)鐘脈沖頻率單位HZ。n-轉(zhuǎn)速單位:(轉(zhuǎn)/分)m2 -時(shí)基脈沖由理論可知“T”法測(cè)量精度的誤差主
29、要有兩個(gè)方面上,一是兩脈沖的上升沿觸發(fā)時(shí)間不一致而產(chǎn)生的;二是計(jì)數(shù)和定時(shí)起始和關(guān)閉不一致而產(chǎn)生的。因此要求脈沖的上升沿(或下降沿)陡峭和計(jì)數(shù)和定時(shí)嚴(yán)格同步。測(cè)周法在低轉(zhuǎn)速時(shí)精度較高,但隨著轉(zhuǎn)速的增加,精度變差,有小于一個(gè)脈沖的誤差存在。2. M法( 測(cè)頻法 )在規(guī)定的檢測(cè)時(shí)間內(nèi), 檢測(cè)光電脈沖發(fā)生器所產(chǎn)生的脈沖信號(hào)的個(gè)數(shù)來(lái)確定轉(zhuǎn)速。雖然檢測(cè)時(shí)間一定,但檢測(cè)的起止時(shí)間具有隨機(jī)性, 因此 M法測(cè)量轉(zhuǎn)速在極端情況下會(huì)產(chǎn)生士 1 個(gè)轉(zhuǎn)速脈沖的誤差。當(dāng)被測(cè)轉(zhuǎn)速較高或電機(jī)轉(zhuǎn)動(dòng)一圈發(fā)出的轉(zhuǎn)速脈沖信號(hào)的個(gè)數(shù)較大時(shí), 才有較高的測(cè)量精度, 因此 M法適合于高速測(cè)量。在一設(shè)在時(shí)間T內(nèi),轉(zhuǎn)軸轉(zhuǎn)過(guò)的弧度數(shù)為X1,則的
30、轉(zhuǎn)速n可由下式表示:定測(cè)量時(shí)間T內(nèi),測(cè)量脈沖發(fā)生器(替代輸入脈沖)產(chǎn)生的脈沖數(shù)m1來(lái)測(cè)量轉(zhuǎn)速10。即: n=60X1/2T (2-4) 轉(zhuǎn)軸轉(zhuǎn)過(guò)的弧度數(shù)X1可用下式所示 X1=2m1/p (2-5)將(2-5)式代入(2-4)式,得轉(zhuǎn)速n的表達(dá)式為: n=60m1 /Tp (2-6)n-轉(zhuǎn)速單位:(轉(zhuǎn)/分)T-定時(shí)時(shí)間單位:(秒)3. M T法( 頻率,周期法)它是同時(shí)測(cè)量檢測(cè)時(shí)間和在此檢測(cè)時(shí)間內(nèi)光電脈沖發(fā)生器所產(chǎn)生的轉(zhuǎn)速脈沖信號(hào)的個(gè)數(shù)來(lái)確定轉(zhuǎn)速。由于同時(shí)對(duì)兩種脈沖信號(hào)進(jìn)行計(jì)數(shù), 因此只要“ 同時(shí)性” 處理得當(dāng), M/ T法在高速和低速時(shí)都具有較高的測(cè)速精度?!癕/T”法采用三個(gè)定時(shí)/計(jì)數(shù)器,
31、同時(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ì)m1和m2計(jì)數(shù),到達(dá)b點(diǎn),預(yù)定的測(cè)速時(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í)間。“M/T”法綜合了“T”和“M”兩種方法,轉(zhuǎn)速計(jì)算如下:設(shè)高頻脈沖的頻率為fC,脈沖發(fā)生器每
32、轉(zhuǎn)發(fā)出P個(gè)脈沖,由式(2-3)和(2-6)可得M/T法轉(zhuǎn)速計(jì)算公式為: n=60m1/Tp (2-7)n-轉(zhuǎn)速值。單位:(轉(zhuǎn)/分)fc-晶體震蕩頻率。單位HZ, m2-輸入脈沖數(shù),反映轉(zhuǎn)角。m2-時(shí)基脈沖數(shù)。2.5 誤差和精度分析 碼盤(pán)刻度誤差分析原理上測(cè)量誤差的來(lái)源主要有碼盤(pán)刻線誤差、計(jì)數(shù)過(guò)程中的1誤差、時(shí)間基準(zhǔn)誤差、干擾造成的誤觸發(fā)引起的誤差。由于數(shù)字電路具有很強(qiáng)的抗干擾能力,干擾引起的測(cè)量誤差可忽略;時(shí)間基準(zhǔn)采用晶體振蕩器,誤差小可以不計(jì);用碼盤(pán)脈沖作捕獲信號(hào),碼盤(pán)脈沖計(jì)數(shù)值中不含1誤差。因此碼盤(pán)刻線誤差和標(biāo)準(zhǔn)時(shí)間計(jì)數(shù)值中的1誤差是影響測(cè)量準(zhǔn)確度的主要因素11。誤差分析:誤差可看為兩部分
33、產(chǎn)生 /wt+Tc/t (2-7) /wt-刻度誤差 Tc/t- 1誤差由(2-7)式可知:增大測(cè)量時(shí)間t有利于提高測(cè)量準(zhǔn)確度。在動(dòng)態(tài)性能許可的情況下,應(yīng)盡可能采用大的測(cè)量時(shí)間。通常碼盤(pán)脈沖倍頻數(shù)可以是P的整數(shù)倍。在測(cè)量時(shí)間和碼盤(pán)脈沖倍頻數(shù)確定后,確定標(biāo)準(zhǔn)時(shí)間Tc。以確保測(cè)量準(zhǔn)確度為準(zhǔn)。在其他條件不變的情況下,轉(zhuǎn)速越高,碼盤(pán)刻線誤差越??;反之,刻線誤差越大。實(shí)際測(cè)量時(shí)間t隨Tc的增大而增大。3 課題硬件電路設(shè)計(jì)3.1 硬件電路設(shè)計(jì)硬件設(shè)計(jì)的任務(wù)是:根據(jù)總體設(shè)計(jì)要求,確定系統(tǒng)擴(kuò)展所需的存儲(chǔ)器I/O電路,A/D,D/A電路以及有關(guān)外圍電路等,然后設(shè)計(jì)出系統(tǒng)的電路原理圖。一個(gè)單片機(jī)應(yīng)用系統(tǒng)的硬件電路
34、設(shè)計(jì)應(yīng)包含有兩個(gè)部分內(nèi)容:內(nèi)部系統(tǒng)擴(kuò)展,即當(dāng)單片機(jī)內(nèi)部的功能單元,如片內(nèi)ROM、RAM的容量、I/O接口、定時(shí)/計(jì)數(shù)器、中斷系統(tǒng)等容量不能滿足應(yīng)用系統(tǒng)要求時(shí),在許多實(shí)際應(yīng)用系統(tǒng)中,還需要擴(kuò)展片EPROM、RAM、I/O接口以及定時(shí)器/計(jì)數(shù)器等,設(shè)計(jì)相應(yīng)的電路12。外部系統(tǒng)配置,即按照系統(tǒng)功能要求配置外圍設(shè)備,如鍵盤(pán)、顯示器、打印機(jī)、D/A、A/D轉(zhuǎn)換器等,并設(shè)計(jì)相應(yīng)的接口電路。因此,系統(tǒng)的擴(kuò)展和配置應(yīng)遵循下列原則: 盡可能選擇典型電路,并符合單片機(jī)的常規(guī)用法。系統(tǒng)的擴(kuò)展與外圍設(shè)備配置應(yīng)滿足系統(tǒng)功能的要求,并留有適當(dāng)?shù)挠嗔浚员氵M(jìn)行二次開(kāi)發(fā)。硬件結(jié)構(gòu)應(yīng)與應(yīng)用軟件方案統(tǒng)一考慮,軟件能實(shí)現(xiàn)的硬件功能
35、盡可能用軟件來(lái)實(shí)現(xiàn),但需注意的是軟件實(shí)現(xiàn)占用CPU的時(shí)間,而且,響應(yīng)時(shí)間比硬件長(zhǎng)。單片機(jī)外接電路較多時(shí),應(yīng)考慮其驅(qū)動(dòng)能力,減少芯片功耗,降低總線負(fù)載。根據(jù)上述原則,設(shè)計(jì)系統(tǒng)如圖3-1所示13PLG脈沖整形驅(qū)動(dòng)圖3-1 測(cè)量轉(zhuǎn)速原理框圖89C513.2 電路工作原理分析本系統(tǒng)單片機(jī)采用Atmel公司生產(chǎn)的89C51作為主控制器,用5位LED數(shù)碼管作為顯示。89C51單片機(jī)的I/O口輸出特性是有較大的灌入電流能力,其中P0口的灌電流能力可達(dá)20mA,完全可以用于數(shù)碼管的驅(qū)動(dòng),但只有很弱的“吐”電流的能力,因此本系統(tǒng)中選用共陽(yáng)型數(shù)碼管,將P0口作為數(shù)碼管的段驅(qū)動(dòng),P2口的5位接5只PNP型三極管構(gòu)成
36、位驅(qū)動(dòng)。這樣,省去了顯示驅(qū)動(dòng)芯片,提高了性?xún)r(jià)比。設(shè)計(jì)采用了紅外光電傳感器,進(jìn)行非接觸式檢測(cè)當(dāng)有物體擋在紅外發(fā)光二極管和高靈敏度的光電晶體管之間時(shí),傳感器將會(huì)輸出一個(gè)低電平,而當(dāng)沒(méi)有物體擋在中間時(shí)則輸出為高電平,從而形成一個(gè)脈沖在電動(dòng)機(jī)的轉(zhuǎn)軸上安裝一個(gè)轉(zhuǎn)盤(pán),在這個(gè)轉(zhuǎn)盤(pán)的邊沿處挖出若干個(gè)圓形過(guò)孔,把傳感器的檢測(cè)部分放在圓孔的圓心位置每當(dāng)轉(zhuǎn)盤(pán)隨著后輪旋轉(zhuǎn)的時(shí)候,傳感器將向外輸出脈沖把這些脈沖通過(guò)一系列的波形整形成單片機(jī)可以識(shí)別的高低電平,即可算出輪子即時(shí)的轉(zhuǎn)速。轉(zhuǎn)盤(pán)的圓孔的個(gè)數(shù)決定了測(cè)量的精度,個(gè)數(shù)越多,精度越高這樣就可以在單位時(shí)間內(nèi)盡可能多地得到脈沖數(shù),從而避免了因?yàn)閮蓚€(gè)過(guò)孔之間的距離過(guò)大,而正好
37、在過(guò)孔之間或者是在下個(gè)過(guò)孔之前停止了,造成較大的誤差設(shè)計(jì)中轉(zhuǎn)盤(pán)的圓孔的實(shí)際個(gè)數(shù)受到技術(shù)的限制為了達(dá)到預(yù)定的效果設(shè)計(jì)在轉(zhuǎn)盤(pán)過(guò)孔的設(shè)計(jì)上采用11個(gè)過(guò)孔,從而留下了1O個(gè)同等的間距這樣在以后的軟件設(shè)計(jì)中能夠較為方便的計(jì)算出脈沖頻率其中單片機(jī)單片機(jī)的18、19腳接晶體和兩個(gè)27PF的電容,這里選用振蕩頻率為12MHZ的晶體。為了說(shuō)明轉(zhuǎn)速測(cè)量原理,減少硬件的復(fù)雜程度和投入,在不影響分析的基礎(chǔ)上,這里使用了脈沖發(fā)生器產(chǎn)生方波來(lái)替代,并通過(guò)程序中設(shè)置,模擬碼盤(pán)每轉(zhuǎn)的線數(shù)及通過(guò)調(diào)節(jié)NE555構(gòu)成的脈沖發(fā)生器的頻率來(lái)模擬轉(zhuǎn)速的快慢。沒(méi)有考慮波形畸變和干擾,在實(shí)際應(yīng)用中也可以用整形和抗干擾電路來(lái)調(diào)整。該脈沖直接加
38、到單片機(jī)的P3.4,即計(jì)數(shù)器T0的輸入端,下降沿觸發(fā)計(jì)數(shù)。4 系統(tǒng)程序設(shè)計(jì)與實(shí)現(xiàn)4.1 程序設(shè)計(jì)過(guò)程方案分析硬件電路設(shè)計(jì)完畢,即進(jìn)行程序設(shè)計(jì),在程序設(shè)計(jì)之前,首先要確定定時(shí)器的工作方式,方式控制字,確定串行口的工作模式等,下面分別討論。 系統(tǒng)定時(shí)/計(jì)數(shù)器T0分析本系統(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ù)置初
39、值。系統(tǒng)定時(shí)/計(jì)數(shù)器T1分析本系統(tǒng)設(shè)計(jì)中,T1被用于數(shù)碼管顯示及形成閘門(mén)信號(hào),由于系統(tǒng)中用到5位數(shù)碼管,動(dòng)態(tài)顯示時(shí),一組數(shù)碼管顯示的總時(shí)間以不超過(guò)20ms為宜,因此這里選擇T1的定時(shí)時(shí)間為4ms,5位數(shù)碼管顯示完畢,正好用于20ms,這里選用T1的工作狀態(tài)1。確定了定時(shí)/計(jì)數(shù)器T1的定時(shí)時(shí)間以后,就要計(jì)算定時(shí)初值,本系統(tǒng)用了12M的晶振,恰好是一個(gè)機(jī)器周期為1us,因此,4ms定時(shí)時(shí)間意味著只要計(jì)數(shù)4000次即可,由于定時(shí)/計(jì)數(shù)器T1是向上計(jì)數(shù),因此,要化為16進(jìn)制,并分別送入T1的高8位和低8位。這里,采用的keil匯編軟件有較強(qiáng)的預(yù)處理功能,能夠處理較復(fù)雜的運(yùn)算,因此,程序中可寫(xiě)為:MOV
40、 TH1,#HIGH(65536-4000)MOV TL1,#LOW(65536-4000)這里使用了兩條指令#High和#Low,它們的用途分別是取其后括號(hào)中數(shù)值的高8位和低8位,因此,這兩行語(yǔ)句的含義就是取655364000的高8位和低8位,寫(xiě)成655364000而不是寫(xiě)出其結(jié)果61536可以提高程序的維護(hù)性,直觀地看到定時(shí)初值。由于80C51單片機(jī)在中斷時(shí),會(huì)附加延時(shí)3-8個(gè)周期,在滿足一定條件的情形下,驗(yàn)證這個(gè)數(shù)值是否正確,可以在進(jìn)入仿真調(diào)試時(shí)通過(guò)觀察Keil提供的有關(guān)變量看到,如果不正確,可以根據(jù)實(shí)際情況略作調(diào)整,保證定時(shí)時(shí)間為4ms。系統(tǒng)定時(shí)/計(jì)數(shù)器的方式控制字分析及過(guò)程系統(tǒng)定時(shí)/
41、計(jì)數(shù)器的方式控制字TMOD,其地址為89H,復(fù)位值00H,不可位尋址。其8位控制內(nèi)容如下表:GATEC/M1M0GATEC/M1M0 定時(shí)器T1定時(shí)器T0表4-1說(shuō)明: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的工作。C/:定時(shí)器/計(jì)數(shù)器選擇位。C/=1,工作于計(jì)數(shù)器方式;C/=0工作于定時(shí)器方式。M1M0:定時(shí)/計(jì)數(shù)工作模式選擇位。M1M0=00,13位計(jì)數(shù);M1
42、M0=01,16位計(jì)數(shù);M1M0=10,自動(dòng)再裝入8位計(jì)數(shù);M1M0=11,工作于模式3狀態(tài)。根據(jù)前面的描述,可以確定TMOD的控制字應(yīng)為00010101B。程序中用:MOV TMOD,#00010101B將控制字送入TMOD。 系統(tǒng)定時(shí)/計(jì)數(shù)控制寄存器TCONTCON地址88H,可進(jìn)行位尋址,復(fù)位值00HTF1TR1TF0TR0IE1IT1IE0IT0表4-2TF0、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è)置。可在T0和T1的溢出中斷服務(wù)程序中
43、,以供使用。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。 系統(tǒng)程序的初始化在程序開(kāi)始之前,首先進(jìn)行變量的分配,使用EQU偽指令定義了一些符號(hào)變量,使得程序閱讀時(shí)較為直觀。程序的初始化,根據(jù)硬件電路的要求,將各硬件電路置于其規(guī)定的狀態(tài);根據(jù)需要,設(shè)置堆棧;對(duì)定時(shí)器、計(jì)數(shù)器、串行口等設(shè)置工作狀態(tài),預(yù)置初值等。14以下是程序定義變量及進(jìn)行初始化的程序行DISPBUF EQU 5AH ; 顯示緩沖區(qū)從5AH開(kāi)始,共5個(gè)單元。SecCoun EQU 59H ; 秒計(jì)數(shù)器單元,用于累計(jì)T1的中斷次數(shù),每250個(gè)為一秒。SpC
44、oun EQU 57H ; 速度計(jì)時(shí)器單元57H和58H,高位在前(57H單元中)。Count EQU 56H ; 顯示時(shí)的計(jì)數(shù)器。SpCalc bit 00h; 要求計(jì)算速度的標(biāo)志,該位為1時(shí)主程序計(jì)算速度,然后清該位Hidden EQU 10; 消隱碼;以上分配變量MOV SP,#5FH ; 設(shè)置堆棧。MOV P1,#0FFH ;將P1置位高電平。MOV P0,#0FFH ; 將P0置位高電平。MOV P2,#0FFH ;將P2置位高電平,以上三行熄滅所有LED及數(shù)碼管。MOV TMOD,#00010101B ;定時(shí)器T1工作于方式1,定時(shí)器T0工作方式1。MOV TH1,#HIGH(65
45、536-4000)MOV TL1,#LOW(65536-4000)SETB TR1SETB ET1 ; 開(kāi)定時(shí)器1中斷SETB EA4.2 主流程圖本系統(tǒng)的主程序參考圖4-3,在完成初始化工作以后,即循環(huán)等待,每1s時(shí)間到之后,T1中斷程序?qū)?huì)讀取T0中的計(jì)數(shù)值,并將其放入約定的存儲(chǔ)單元中,并且置位“要求計(jì)算”的標(biāo)志,當(dāng)該標(biāo)志位為1時(shí),主程序即轉(zhuǎn)入計(jì)算,第一步將16進(jìn)制數(shù)的結(jié)果轉(zhuǎn)化為BCD碼,第二步,將BCD碼轉(zhuǎn)化并送入顯示緩沖區(qū)1516。 開(kāi)始計(jì)數(shù)器斷口中斷初始化是否計(jì)算等待 計(jì)算速度送顯示緩沖區(qū) 結(jié)束圖4-3主程序流程圖4.3 總程序?qū)崿F(xiàn)DISPBUF EQU 5AH ;顯示緩沖區(qū)從5AH
46、開(kāi)始SecCoun EQU 59HSpCoun EQU 57H ;速度計(jì)時(shí)器單元57H和58H,高位在前(57H單元中)Count EQU 56H; ;顯示時(shí)的計(jì)數(shù)器SpCalc bit 00h ; 要求計(jì)算速度的標(biāo)志,該位為1則主程序進(jìn)行速度計(jì)算,然后清該位Hidden EQU 10 ;消隱碼ORG 0000HAJMP STARTORG 1BHJMP TIMER1 ;定時(shí)中斷1入口ORG 30HSTART:MOV SP,#5FH ;設(shè)置堆棧MOV P1,#0FFHMOV P0,#0FFHMOV P2,#0FFH ;初始化,所有顯示器、LED滅MOV TMOD,#00010101B;MOV T
47、H1,#HIGH(65536-4000)MOV TL1,#LOW(65536-4000)SETB TR1SETB ET1 ;開(kāi)定時(shí)器1中斷SETB EA;如果未要求計(jì)算,轉(zhuǎn)本身循環(huán)。LOOP:JNB SpCalc,LOOP ;標(biāo)號(hào):功能:雙字節(jié)二進(jìn)制無(wú)符號(hào)數(shù)乘法;入口條件:被乘數(shù)在R2、R3中,乘數(shù)在R6、R7中;出口信息:乘積在R2、R3、R4、R5中;影響資源:PSW、A、B、R2R7堆棧需求:字節(jié)MOV R2,SpCounMOV R3,SpCoun+1MOV R6,#0MOV R7,#5 ;測(cè)得的數(shù)值是每秒計(jì)數(shù)值,轉(zhuǎn)為分(每一轉(zhuǎn)測(cè)12次,故乘5而非60)CALL MULD SETB TR
48、2;標(biāo)號(hào):功能:雙字節(jié)十六進(jìn)制整數(shù)轉(zhuǎn)換成雙字節(jié)碼整數(shù);入口條件:待轉(zhuǎn)換的雙字節(jié)十六進(jìn)制整數(shù)在R6、R7中;出口信息:轉(zhuǎn)換后的三字節(jié)碼整數(shù)在R3、R4、R5中;影響資源:PSW、A、R2R7堆棧需求:字節(jié)MOV A,R4MOV R6,AMOV A,R5MOV R7,A ;將乘得的結(jié)果送R6R7準(zhǔn)備轉(zhuǎn)換CALL HB2MOV DISPBUF,R3 ;最高位MOV A,R4;ANL A,#0F0H ;去掉低4位SWAP A ;將高4位切換到低4位MOV DISPBUF+1,AMOV A,R4ANL A,#0FHMOV DISPBUF+2,AMOV A,R5ANL A,#0F0HSWAP AMOV D
49、ISPBUF+3,AMOV A,R5ANL A,#0FHMOV DISPBUF+4,ACLR SpCalc ;清計(jì)算標(biāo)志。JMP LOOP ;主程序到此結(jié)束TIMER1:PUSH ACC ;ACC入棧PUSH PSW ;PSW入棧SETB RS0 ;工作區(qū)1JNB TR0,SETTR0 ;如果T0未運(yùn)行,則開(kāi)啟T0JMP GO1SETTR0:SETB TR0GO1: INCSecCoun ;秒計(jì)數(shù)器加1MOV A,SecCounCJNE A,#251,Go2 ;如果未到1s則轉(zhuǎn)(每到1S停1次,故數(shù)值為251)CLR TR0 ;1到了,則停止T0的運(yùn)行MOV SpCoun,TH0MOV SpC
50、oun+1,TL0 ;讀取計(jì)數(shù)值CLR AMOV TH0,AMOV TL0,A ;清計(jì)數(shù)器SETB SpCalc ;要求主程序計(jì)算速度MOV SecCoun,#0 ;清秒計(jì)數(shù)器Go2: INCCOUNT ;用于顯示的計(jì)數(shù)器MOV A,COUNTCLR CSUBB A,#5JZ N1JMP N2N1: MOV COUNT,#0N2: MOV A,#DISPBUFADD A,COUNTMOV R0,A ;指向當(dāng)前要顯示的顯示緩沖區(qū)MOV A,R0 ;取第一個(gè)待顯示數(shù)MOV DPTR,#DISPTAB ;字形表首地址MOVC A,A+DPTR ;取字形碼MOV P0,A ;將字形碼送P0位(段口)M
51、OV A,COUNTMOV DPTR,#BitTab ;字位表首地址MOVC A,A+DPTRORL P2,#00011111BANL P2,AMOV TH1,#HIGH(65536-4000)MOV TL1,#LOW(65536-4000)POP PSWPOP ACCRETIBitTab: DB 0FDH,0FEH,0FBH,0F7H,0EFH ;字模表0 1 2 3 4 5 6 7 8 9消隱DISPTAB: DB 28H,7EH,0a4H,64H,72H,61H,21H,7CH,20H,60H,0ffh 4.4 子程序功能實(shí)現(xiàn)4.4.1 秒信號(hào)子程序定時(shí)計(jì)數(shù)器T1每4ms中斷一次,用以進(jìn)
52、行數(shù)碼管顯示和每1秒讀取一次計(jì)數(shù)器T0中的數(shù)值17。1秒信號(hào)的產(chǎn)生中斷產(chǎn)生后:INC SecCounMOV A,SecCounCJNE A,#250,Go2CLR TR0 ; 1到了,則停止T0的運(yùn)行MOV SpCoun,TH0MOV SpCoun+1,TL0 ;讀取計(jì)數(shù)值CLR AMOV TH0,AMOV TL0,A ;清計(jì)數(shù)器SETB SpCalc ;要求主程序計(jì)算速度MOV SecCoun,#0 ;清秒計(jì)數(shù)器判斷SecCoun是否到達(dá)250了,如果到達(dá)250,則說(shuō)明1秒時(shí)間已到,程序?qū)㈥P(guān)閉T0計(jì)數(shù)器,然后對(duì)T0中已計(jì)得的數(shù)據(jù)進(jìn)行處理,然后再去進(jìn)行顯示,否則直接轉(zhuǎn)去顯示。這部份的程序流程圖如圖4-3所示。圖4-3秒信號(hào)子程序流程圖 秒計(jì)數(shù)器加1停止T0工作讀T0計(jì)數(shù)值 清T0值置位計(jì)算請(qǐng)求標(biāo)志清秒計(jì)數(shù)器進(jìn)入顯示部分到250了嗎YN 數(shù)碼管的顯示子程序數(shù)碼管顯示采用動(dòng)態(tài)方
溫馨提示
- 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030衢州民營(yíng)經(jīng)濟(jì)數(shù)字化轉(zhuǎn)型痛點(diǎn)解決調(diào)研啟事
- 2025-2030融合新聞采編技術(shù)應(yīng)用現(xiàn)狀與標(biāo)準(zhǔn)化建設(shè)研究
- 2025-2030蒸汽機(jī)行業(yè)國(guó)內(nèi)外供需結(jié)構(gòu)研究與投資評(píng)估電力規(guī)劃分析研究課題
- 2025-2030葡萄牙餐飲行業(yè)部署供給分析競(jìng)爭(zhēng)合作關(guān)系投入隊(duì)伍建設(shè)提升文件
- 2025-2030葡萄牙葡萄酒產(chǎn)業(yè)市場(chǎng)供需發(fā)展評(píng)估規(guī)劃分析研究報(bào)告
- 山東山東航空學(xué)院面向海內(nèi)外公開(kāi)招聘4名二級(jí)學(xué)院院長(zhǎng)筆試歷年參考題庫(kù)附帶答案詳解
- 山東2025年山東藝術(shù)學(xué)院公開(kāi)招聘人員筆試歷年參考題庫(kù)附帶答案詳解
- 宿遷2025年江蘇宿遷市廣播電視總臺(tái)招聘4人筆試歷年參考題庫(kù)附帶答案詳解
- 寶雞2025年寶雞高新區(qū)管委會(huì)校園招聘10名高層次人才筆試歷年參考題庫(kù)附帶答案詳解
- 安徽2025年安徽潛山市市直事業(yè)單位選調(diào)30人筆試歷年參考題庫(kù)附帶答案詳解
- 消化內(nèi)鏡ERCP技術(shù)改良
- 云南師大附中2026屆高三1月高考適應(yīng)性月考卷英語(yǔ)(六)含答案
- 2026湖北隨州農(nóng)商銀行科技研發(fā)中心第二批人員招聘9人筆試備考試題及答案解析
- 紀(jì)念館新館項(xiàng)目可行性研究報(bào)告
- 騎行美食活動(dòng)方案策劃(3篇)
- 石化企業(yè)環(huán)保培訓(xùn)課件
- 2026年呂梁職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能考試備考試題帶答案解析
- 2025年新疆師范大學(xué)輔導(dǎo)員招聘考試真題及答案
- 電梯更新改造方案
- 買(mǎi)車(chē)背戶(hù)協(xié)議書(shū)
- GB/T 3098.5-2025緊固件機(jī)械性能第5部分:自攻螺釘
評(píng)論
0/150
提交評(píng)論