



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、本業(yè)科畢設(shè)計 ( 論文 )題目:智能轉(zhuǎn)速測量系統(tǒng)的軟件設(shè)計院 (系):光電工程學院專業(yè):測控技術(shù)與儀器班級: 050105學生:牟紅宇學號: 050105112指導教師:杜玉軍2009 年 06 月智能轉(zhuǎn)速測量系統(tǒng)的軟件設(shè)計摘 要轉(zhuǎn)速是工程中應(yīng)用非常廣泛的一個參數(shù),其測量方法較多,隨著單片機對脈沖數(shù)字信號的處理能力越來越強大,使得全數(shù)字量系統(tǒng)越來越普及,并且使轉(zhuǎn)速測量系統(tǒng)也可以用全數(shù)字化處理。本文在對了解轉(zhuǎn)速測量理論與掌握單片機原理的基礎(chǔ)上,根據(jù)硬件設(shè)計,提出系統(tǒng)程序設(shè)計方案,構(gòu)建軟件系統(tǒng),以實現(xiàn)智能轉(zhuǎn)速測量與顯示的功能。本設(shè)計根據(jù)基于 AT89C51單片機的測速測量電路,設(shè)計出轉(zhuǎn)速測量軟件系
2、統(tǒng),此系統(tǒng)包含系統(tǒng)初始化程序的設(shè)計、鍵盤掃描程序的設(shè)計、數(shù)據(jù)接收和處理程序的設(shè)計、顯示程序的設(shè)計四個模塊。對所設(shè)計的軟件系統(tǒng)通過Vision3軟件對其進行程序調(diào)試。最后,對構(gòu)建的系統(tǒng)利用設(shè)計的電路進行調(diào)試,對測量指標進行了分析、比較并提出改進方案。在設(shè)計中測量方法采用M 法進行測量,編譯語言采用C 語言進行編譯。本課題完成了軟件系統(tǒng)的設(shè)計,實現(xiàn)了智能轉(zhuǎn)速系統(tǒng)的轉(zhuǎn)速計算、顯示功能,同時實現(xiàn)鍵盤的開始 / 停止功能,完成了設(shè)計的要求。關(guān)鍵詞:單片機轉(zhuǎn)速測量軟件設(shè)計Intelligentrotational speed measurement system of softwaredesignAbst
3、ractRotational 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 of all-digital system is becoming increasingly popular, and so rotational speed measurement sy
4、stem can be used to deal with all-digital.In this paper,the understanding of the theory and master rotational 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 func
5、tions.In this paper,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 receiving and processing code design and the displaying code design.I
6、set up them using the software of Vision3.At last,the builded system is setted up through circuit.The measured index were analysed and compared and the improved programmes were proposed.M method was adopt in the measuring and the language of C was adopt to comple.The design of software system of thi
7、s project is completed. The function of calculating and displaying the speed of rotation and the beginning and stoping of keyboard are finished.Finally I achevie the requirment of design.Key words: SCMtachometric survey Software Design目錄中文摘要 I英文摘要 II1緒論 111 課題研究目的和意義112 轉(zhuǎn)速測量在國內(nèi)外研究情況113 主要內(nèi)容和存在的問題213
8、1 研究的主要內(nèi)容2132 需解決的問題 22基于單片機的轉(zhuǎn)速測量方法及原理32.1 單片機測量轉(zhuǎn)速的方法32.2 轉(zhuǎn)速測量原理 42.2.1測周期法“ T 法” 42.2.2測頻法“ M法” 42.2.3測頻測周法 M/T 法 53 智能轉(zhuǎn)速測量系統(tǒng)的硬件結(jié)構(gòu)73.1系統(tǒng)的硬件結(jié)構(gòu) 73.2硬件電路中主要部件的介紹 94 智能轉(zhuǎn)速測量系統(tǒng)的軟件設(shè)計114.1單片機 C51 的介紹 114.1.1單片機 C 語言與匯編語言 114.1.2 C51 對標準 C 語言的擴展 124.2程序設(shè)計 124.2.1工作方式及控制字設(shè)置 124.2.2變量分配及程序的初始化 144.2.3顯示功能的實現(xiàn)
9、154.2.4鍵盤的功能的實現(xiàn)與設(shè)計 174.3 系統(tǒng)流程 175 程序調(diào)試及固化 1851 單片機開發(fā)平臺簡介1852 本系統(tǒng)開發(fā)平臺 18軟件集成開發(fā)環(huán)境18程序調(diào)試 186結(jié)論 226.1 主要研究結(jié)論 226.2 研究展望 23參考文獻 24致謝 24附錄 1 電路圖 29附錄 2 源程序 301 緒論11 課題研究目的和意義隨著超大規(guī)模集成電路技術(shù)提高,尤其是單片機應(yīng)用技術(shù)以其功能強大,價格低廉的顯著特點,使全數(shù)字化測量轉(zhuǎn)速系統(tǒng)得以廣泛應(yīng)用。由于單片機在測量轉(zhuǎn)速方面具有體積小、性能強、成本低的特點,越來越受到企業(yè)用戶的青睞。轉(zhuǎn)速是工程中應(yīng)用非常廣泛的一個參數(shù),其測量方法較多,而模擬量
10、的采集和模擬處理一直是轉(zhuǎn)速測量的主要方法,這種測量方技術(shù)已不能適應(yīng)現(xiàn)代科技發(fā)展的要求,在測量范圍和測量精度上,已不能滿足大多數(shù)系統(tǒng)的使用。隨著大規(guī)模及超大規(guī)模集成電路技術(shù)的發(fā)展,數(shù)字系統(tǒng)測量得到普遍應(yīng)用,特別是單片機對脈沖數(shù)字信號的強大處理能力,使得全數(shù)字量系統(tǒng)越來越普及,其轉(zhuǎn)速測量系統(tǒng)也可以用全數(shù)字化處理。在測量范圍和測量精度方面都有極大的提高。常用的檢測方法有機械式,光電式,霍爾式,頻閃法,高壓油管應(yīng)變法等,本課題主要是針對智能轉(zhuǎn)速測量系統(tǒng)的軟件系統(tǒng)的設(shè)計。運用 51 系列單片機設(shè)計一種全數(shù)字化測速系統(tǒng),從提高測量精度的角度出發(fā),分析討論其產(chǎn)生誤差的可能原因。同時從實際硬件電路出發(fā),分析電
11、路的工作原理,根據(jù)仿真情況提出修改方案和解決辦法。本課題以單片機為核心,設(shè)計的全數(shù)字化測量轉(zhuǎn)速系統(tǒng),在工業(yè)控制和民用電器中都有較高使用價值。一方面它可以應(yīng)用于工業(yè)控制中的某一部分,如數(shù)控車床的電機轉(zhuǎn)速檢測和控制、水泵流量控制以及需要利用轉(zhuǎn)速檢測來進行控制的許多場合,如車輛的里程表、車速表等。另一方面由于該轉(zhuǎn)速測量系統(tǒng)采用全數(shù)字結(jié)構(gòu),因而可以很方便的和工業(yè)控制機進行連接,實行遠程管理和控制,進一步提高現(xiàn)代化水平。并且,幾乎不需做很大改變就能直接作為單獨的產(chǎn)品使用??傊?,轉(zhuǎn)速測量系統(tǒng)的研究是一件非常有意義的課題1 。12 轉(zhuǎn)速測量在國內(nèi)外研究情況轉(zhuǎn)速是能源設(shè)備與動力機械性能測試中的一個重要的特性參
12、量,因為動力機械的許多特性參數(shù)是根據(jù)它們與轉(zhuǎn)速的函數(shù)關(guān)系來確定的,例如壓縮機的排氣量、軸功率、內(nèi)燃機的輸出功率等等,而且動力機械的振動、管道氣流脈動、各種工作零件的磨損狀態(tài)等都與轉(zhuǎn)速密切相關(guān)。轉(zhuǎn)速測量的方法很多,測量儀表的型式也多種多樣,其使用條件和測量精度也各不相同。根據(jù)轉(zhuǎn)速測量的工作方式可分為兩大類:接觸式轉(zhuǎn)速測量儀表與非接觸式轉(zhuǎn)速測量儀表。前者在使用時必須與被測轉(zhuǎn)軸直接接觸,如離心式轉(zhuǎn)速表、磁性轉(zhuǎn)速表與測速發(fā)電機等;后者在使用時不需要與被測轉(zhuǎn)軸接觸, 如光電式轉(zhuǎn)速表、電子數(shù)字式轉(zhuǎn)速表、閃光測速儀等。測量發(fā)動機轉(zhuǎn)速的傳統(tǒng)方法是使用光電式轉(zhuǎn)速表測量。用這種方法測量時 , 既要在發(fā)動機轉(zhuǎn)動軸上
13、粘貼光標紙,又要求測量人員把轉(zhuǎn)速表與光標紙的距離控制在很近的范圍 , 測量十分不方便。隨著科學技術(shù)的迅速發(fā)展 , 轉(zhuǎn)速測量儀表已步入現(xiàn)代化、電子化的行列。過去曾經(jīng)使用過的接觸式測量儀表 , 如離心式轉(zhuǎn)速表、磁性轉(zhuǎn)速表、微型發(fā)電機轉(zhuǎn)速表及鐘表是定時轉(zhuǎn)速表,均已先后受到冷落;而利用已知頻率的閃光與被測軸轉(zhuǎn)速同步的方法來測速的閃光測速儀,雖屬非接觸式儀表,目前仍有應(yīng)用 , 但也退居次要地位。代之而起的是非接觸式的電子與數(shù)字化的測速儀表。這類轉(zhuǎn)速儀表大多具有體積小、重量輕、讀數(shù)準確、使用方便等優(yōu)點,容易實現(xiàn)電腦熒屏顯示和打印輸出,能夠連續(xù)的反映轉(zhuǎn)速變化,既能測定發(fā)動機穩(wěn)定情況下的平均轉(zhuǎn)速 , 也能夠用
14、來在足夠小的時間間隔這一特定條件下測定發(fā)動機的瞬時轉(zhuǎn)速。轉(zhuǎn)速測量的應(yīng)用系統(tǒng)在工業(yè)生產(chǎn)、科技教育、民用電器等各領(lǐng)域的應(yīng)用極為廣泛,往往成為某一產(chǎn)品或控制系統(tǒng)的核心部分,其各種參數(shù)在不同的應(yīng)用中有其側(cè)重,但轉(zhuǎn)速測量系統(tǒng)作為普遍的應(yīng)用在國民經(jīng)濟發(fā)展中,有重要的意義2 。13 主要內(nèi)容和存在的問題131 研究的主要內(nèi)容1. 詳細分析轉(zhuǎn)速的測量理論,對轉(zhuǎn)速的周期測量法“T”法、頻率測量法“ M”法以及周期頻率“ M/T”測量法,三種具體測量方法的轉(zhuǎn)速計算、各自的測量精度和誤差進行闡述。定性地比較三種方法所針對的轉(zhuǎn)速特征,分析高、中、低轉(zhuǎn)速情況下各自的適用狀況,從而,在保持一定的測量精度情況下,應(yīng)用“ M
15、”法,說明轉(zhuǎn)速測量原理 3 。2. 根據(jù)單片機硬件系統(tǒng)的設(shè)計,構(gòu)建軟件系統(tǒng),分別對硬件系統(tǒng)的配置予以估計,使其能夠?qū)D(zhuǎn)速進行測量。同時分析接口電路,顯示轉(zhuǎn)速。3. 對單片機定時 / 計數(shù)器進行設(shè)置,設(shè)計和說明定時 / 計數(shù)器在“ M”法測量中的作用和使用方法,討論測量精度的問題。4. 根據(jù)系統(tǒng)要求設(shè)置各控制字,用 A51 匯編語言編制程序,包括主程序流程,顯示中斷程序流程。并用軟件的方法對計數(shù)和定時進行同步,力求在不增加硬件的條件下,使同步達到滿意的效果。5. 利用 Keil51 軟件的 Vision3 集成環(huán)境對系統(tǒng)對工作軟件進行編譯、調(diào)試和仿真。132 需解決的問題1單片機在系統(tǒng)運行過程中
16、,中斷設(shè)置問題;2轉(zhuǎn)速測量及 LED顯示的實現(xiàn);3鍵盤功能的實現(xiàn);4軟件的調(diào)試。2 基于單片機的轉(zhuǎn)速測量方法及原理2.1 單片機測量轉(zhuǎn)速的方法轉(zhuǎn)速是工程中應(yīng)用非常廣泛的一個參數(shù),早期模擬量的模擬處理一直是作為轉(zhuǎn)速測量的主要方法,這種測量方法在測量范圍和測量精度上,已不能適應(yīng)現(xiàn)代科技發(fā)展的要求。而隨著大規(guī)模及超大規(guī)模集成電路技術(shù)的發(fā)展,數(shù)字測量系統(tǒng)得到普遍應(yīng)用,利用單片機對脈沖數(shù)字信號的強大處理能力,應(yīng)用全數(shù)字化的結(jié)構(gòu),使數(shù)字測量系統(tǒng)的越來越普及。在測量范圍和測量精度方面都有極大的提高。下面對測量系統(tǒng)進行探討4 。一般轉(zhuǎn)速測量系統(tǒng)有以下幾個部分構(gòu)成,轉(zhuǎn)速測量框圖如圖2.1 所示。轉(zhuǎn)顯速整示驅(qū)信形
17、單動顯示接號倍片電口拾頻機路芯取片鍵盤圖 2.1轉(zhuǎn)速測量框圖1轉(zhuǎn)速信號拾取轉(zhuǎn)速信號拾取是整個系統(tǒng)的前端通道,目的是將外界的非電參量,通過一定方式轉(zhuǎn)換成電量,這一環(huán)節(jié)可以通過敏感元件、傳感器或測量儀表等來實現(xiàn)。2整形和倍頻前向通道中,將傳感器輸出的信號轉(zhuǎn)換成計算機輸入要求的信號。3單片機單片機是整個測量系統(tǒng)的主要部分,擔負對前端脈沖信號的處理、計算、以及信號的同步,計時等任務(wù),其次,將測量的數(shù)據(jù)經(jīng)計算后,將得到的轉(zhuǎn)速值傳送到顯示接口中,用數(shù)碼管顯示數(shù)值。在本系統(tǒng)中考慮到計數(shù)的范圍、使用的定時 / 計數(shù)器的個數(shù)及 I/O 口線,選用 AT89C51單片機。4驅(qū)動和顯示由于 LED數(shù)碼管具有亮度高、
18、可靠性好等特點,工業(yè)測控系統(tǒng)中常用碼管作為顯示輸出。本系統(tǒng)也采用數(shù)碼管作顯示。LED數(shù)2.2 轉(zhuǎn)速測量原理測周期法“T 法”轉(zhuǎn)速可以用兩脈沖產(chǎn)生的間隔寬度TP 來決定。用以采集數(shù)據(jù)的碼盤,可以是單孔或多孔,對于單孔碼盤測量兩次脈沖間的時間,就可測出轉(zhuǎn)述數(shù)據(jù),TP也可以用時鐘脈沖數(shù)來表示。對于多孔碼盤,其測量的時間只是每轉(zhuǎn)的1/N,N為碼盤孔數(shù)。如圖2.2 “T”法脈寬測量所示。TP 通過定時器測得。定時器對時基脈沖( 頻率為 f c) 進行計數(shù)定時,在TP 內(nèi)計數(shù)值若為 m2,則計算公式為:n=60/PTp(2.1 )即:n=60f c/Pm2(2.2 )P- 為轉(zhuǎn)軸轉(zhuǎn)一周脈沖發(fā)生器產(chǎn)生的脈沖
19、數(shù);f c- 為硬件產(chǎn)生的基準時鐘脈沖頻率:單位(Hz);n- 轉(zhuǎn)速單位:(轉(zhuǎn) / 分);m2- 時基脈沖。輸入脈沖時基脈沖圖 2.2“ T”法脈寬測量由“ T”法脈寬測量可知“ T”法測量精度的誤差主要有兩個方面,一是兩脈沖的上升沿觸發(fā)時間不一致而產(chǎn)生的;二是計數(shù)和定時起始和關(guān)閉不一致而產(chǎn)生的。因此要求脈沖的上升沿(或下降沿)陡峭和計數(shù)和定時嚴格同步。測周法在低轉(zhuǎn)速時精度較高,但隨著轉(zhuǎn)速的增加,精度變差,有小于一個脈沖的誤差存在 5 。測頻法“ M法”在一定測量時間T 內(nèi),測量脈沖發(fā)生器(替代輸入脈沖)產(chǎn)生的脈沖數(shù)m1來測量轉(zhuǎn)速,如圖 2.3 “ M”法測量轉(zhuǎn)速脈沖所示,設(shè)在時間T 內(nèi),轉(zhuǎn)軸
20、轉(zhuǎn)過的弧度數(shù)為 X,則轉(zhuǎn)速 n 可由下式表示:n=60X /2 T(2.3)轉(zhuǎn)軸轉(zhuǎn)過的弧度數(shù) X可用下式所示1/p(2.4)X m=2圖 2.3“ M”法測量轉(zhuǎn)速脈沖將( 2-4 )式代入( 2-3 )式得轉(zhuǎn)速 n 的表達式為:n=60m1/TP(2.5)n- 轉(zhuǎn)速單位:(轉(zhuǎn) / 分);T- 定時時間單位:(秒)。在該方法中,測量精度是由于定時時間T 和脈沖不能保證嚴格同步,以及在 T 內(nèi)能否正好測量外部脈沖的完整的周期,可能產(chǎn)生的1 個脈沖的量化誤差。因此,為了提高測量精度,T 要有足夠長的時間。定時時間可根據(jù)測量對象情況預(yù)先設(shè)置。設(shè)置的時間過長,可以提高精度,但在轉(zhuǎn)速較快的情況下,所計的脈
21、沖數(shù)增大(碼盤孔數(shù)已定情況下),限制了轉(zhuǎn)速測量的量程。而設(shè)置的時間過短,測量精度會受到一定的影響6 。測頻測周法 M/T 法所謂測頻測周法,即是綜合了“T”法和“ M”法分別對高、低轉(zhuǎn)速具有的不同精度,利用各自的優(yōu)點而產(chǎn)生的方法,精度位于兩者之間,如圖2.4“M/T”法定時 / 計數(shù)測量所示?!癕/T”法采用三個定時/ 計數(shù)器,同時對輸入脈沖、高頻脈沖(由振蕩器產(chǎn)生)、及預(yù)設(shè)的定時時間進行定時和計數(shù), m1 反映轉(zhuǎn)角, m2 反映測速的準確時間,通過計算可得轉(zhuǎn)速值 n。該法在高速及低速時都具有相對較高的精度。測速時間 Td 由脈沖發(fā)生器脈沖來同步,即 Td 等于 m1 個脈沖周期。由圖可見,從
22、 a 點開始,計數(shù)器對 m1 和 m2 計數(shù),到達 b 點,預(yù)定的測速時間時,計算機發(fā)出停止計數(shù)的指令,因為 TC 不一定正好等于整數(shù)個脈沖發(fā)生器脈沖周期,所以,計數(shù)器仍對高頻脈沖繼續(xù)計數(shù),到達 c 點時,脈沖發(fā)生器脈沖的上升沿使計數(shù)器停止,這樣, m2 就代表了 m1 個脈沖周期的時間 7 ?!癕/T”法綜合了“ T”和“ M”兩種方法,轉(zhuǎn)速計算如下:設(shè)高頻脈沖的頻率為 f C,脈沖發(fā)生器每轉(zhuǎn)發(fā)出 P 個脈沖,由式( 2.2 )和( 2.5 )可得 M/T 法轉(zhuǎn)速計算公式為:n=60f cm1/pm2(2.6)n- 轉(zhuǎn)速值。單位:(轉(zhuǎn) / 分);f c- 晶體震蕩頻率:單位( Hz);m1-
23、 輸入脈沖數(shù),反映轉(zhuǎn)角;m2- 時基脈沖數(shù)。圖2.4“ M/T”法定時/ 計數(shù)測量通過誤差和精度分析可知,M 法適合于高速測量,當轉(zhuǎn)速越低,產(chǎn)生的誤差會越大。 T 法適合于低速測量,轉(zhuǎn)速增高,誤差增大。M/T 這種轉(zhuǎn)速測量方法的相對誤差與轉(zhuǎn)速n 無關(guān),只與晶體振蕩產(chǎn)生的脈沖有關(guān),故可適合各種轉(zhuǎn)速下的測量。保證其測量精度的途徑是增大定時時間T,或提高時基脈沖的頻率f c。因此,在實際操作時往往采用一種稱變M/T 的測量方法,即所謂變M/T法,在M/T 法的基礎(chǔ)上,讓測量時間Tc 始終等于轉(zhuǎn)速輸入脈沖信號的周期之和。并根據(jù)第一次的所測轉(zhuǎn)速及時調(diào)整預(yù)測時間Tc,兼顧高低轉(zhuǎn)速時的測量精度?;贛 法測
24、量速度,電路和程序均較為簡單,且可以在一定的條件下滿足精度的要求,所以本設(shè)計中采用M 法進行測量,誤差和精度的具體分析過程在此不做復(fù)述8 。3 智能轉(zhuǎn)速測量系統(tǒng)的硬件結(jié)構(gòu)3.1 系統(tǒng)的硬件結(jié)構(gòu)本轉(zhuǎn)速測量系統(tǒng)有以下幾個部分構(gòu)成,如圖3.1轉(zhuǎn)速測量系統(tǒng)方框圖所示。顯測速齒盤光電傳感器信號調(diào)理電路單片機示鍵盤圖 3.1轉(zhuǎn)速測量系統(tǒng)方框圖本系統(tǒng)的硬件主要由光電傳感器、信號處理電路、單片機AT89C51、鍵盤、 LED 顯示等組成。如圖 3.1 ,當測速齒盤轉(zhuǎn)動時,將會產(chǎn)生正弦脈沖電信號,然后把信號送入放大電路、整形及三極管整形電路進行處理,將正弦波信號轉(zhuǎn)化為 TTL 電平輸出到單片機進行轉(zhuǎn)速計數(shù),最后
25、通過數(shù)碼管顯示其數(shù)值。硬件電路圖如圖附件 1 所示 9 。1轉(zhuǎn)速信號拾取的結(jié)構(gòu)本設(shè)計中采集信號部分是通過光電傳感器來實現(xiàn),利用測速圓盤將光信號轉(zhuǎn)變成單片機能夠處理的電信號。測速圓盤位于紅外線發(fā)光二極管(規(guī)格HG11)和紅外線接收三級管(規(guī)格3DU5C)之間,采用 +5V 電壓供電,選用合適的電阻值來配合該其工作。紅外線發(fā)光二極管發(fā)出的光信號通過測速圓盤的孔,到達紅外線接收三級管表面,它將接收到的光信號轉(zhuǎn)變成電信號輸出。通過改變測速圓盤的旋轉(zhuǎn)速度來控制輸出電信號的頻率值,并將其輸出。如圖 3.2 轉(zhuǎn)速傳感器電路圖所示。+5VR 2R 12.4K0.2KHG1 13DU5C圖 3.2轉(zhuǎn)速傳感器電路
26、圖2. 顯示部分的結(jié)構(gòu)本系統(tǒng)采用四位LED 共陽極型數(shù)碼管作為顯示部分,AT89C51 單片機的I/O口輸出特性是有較大的灌入電流能力,但只有很弱的“吐”電流的能力,因此本系統(tǒng)中選用共陽極數(shù)碼管。P2 口的 P2.0 P2.7 口作為數(shù)碼管的段驅(qū)動,中間通過緩沖器74LS245 進行數(shù)據(jù)緩沖。 74LS245 是 8 路 3 態(tài)雙向緩沖驅(qū)動 , 也叫做總線驅(qū)動門電路或線驅(qū)動,主要使用在數(shù)據(jù)的雙向緩沖,常見51 的數(shù)據(jù)接口電路,使用一片245 作為數(shù)據(jù)緩沖電路,增強驅(qū)動能力。P0 口的P0.0 P0.3 口通過反向驅(qū)動器74LS04 構(gòu)成位驅(qū)動。將所有位的段選線相應(yīng)地并聯(lián)在一起,由一個8 位 I
27、/O 控制,形成段選線的多路復(fù)用。而各位的共陽極分別由相應(yīng)的I/O 線控制,實現(xiàn)各位的分時選通。由于各位的段選線并聯(lián),段選碼的輸出對各位都是相同的。因此,同一個時刻,某一位的顯示與該位的位選線選通狀態(tài)有關(guān),若要各位 LED 能夠顯示出與本位相應(yīng)的顯示字符,就必須采用掃描顯示方式 10 。3. 單片機與 PC機數(shù)據(jù)的傳輸基于單片機的測控系統(tǒng)在獲取傳感器的數(shù)據(jù)后,還需要將所得數(shù)據(jù)傳送到 PC 上。因此,本系統(tǒng)在設(shè)計時,做了一些考慮,在硬件設(shè)計時增加了串行通信口,采用 MAX232電平轉(zhuǎn)換芯片,將 PC機串行口的 RS-232 電平與 AT89C51單片機使用的 TTL 電平進行轉(zhuǎn)換,實現(xiàn)了單片機和
28、 PC機之間的數(shù)據(jù)傳送。 如圖 3.3 MAX232引腳圖所示、 3.4AT89C51 管腳圖所示 11 。圖 3.3 MAX232 引腳圖圖 3.4 AT89C51 管腳圖4. 鍵盤功能的實現(xiàn)本設(shè)計使用的鍵盤主要為完成一個功能轉(zhuǎn)速測量的啟動/ 停止;我們將開關(guān)直接與 AT89C51單片機的 P1.0 接口相連,通過讀 I/O 口,判定各 I/O 線的電平狀態(tài),即可識別出按下的按鍵。操作員通過鍵盤可以輸入數(shù)據(jù)或指令,實現(xiàn)簡單的人機通信 12 。5. 復(fù)位功能的實現(xiàn)單片機除本身需要復(fù)位以外,外部擴展的I/O接口電路等也需要復(fù)位。因此,為了控制的方便,本設(shè)計中采用人工按鈕復(fù)位的方式。 AT89C5
29、1單片機的RST端通過 10k 電阻接地, 10電容直接和一個接有按鍵的 200電阻并聯(lián)接入電源端,上電按鈕復(fù)位電路。當開關(guān)未按下時,由于電容的濾波作用,干擾信號不會進入到單片機中,起到抗干擾的作用;當按下開關(guān)一定時間就能使RST引腳端變?yōu)楦唠娖?,從而使單片機復(fù)位 13 。3.2 硬件電路中主要部件的介紹a.AT89C51:隨著智能儀表的發(fā)展,用單片機構(gòu)成的多路數(shù)據(jù)采集系統(tǒng)已經(jīng)普及,該系統(tǒng)它不僅采集數(shù)據(jù)而且還能對采集到的模擬信號進行數(shù)據(jù)處理。AT89C51是一款低功耗高性能的 CMOS 8-bits 微處理器,它具有 4KB 的可編程或擦除的閃存( EPROM)。該器件使用 ATMEL公司的高
30、密度非易失性存儲器制造TM技術(shù),并且與工業(yè)標準MCS-51 的指令系統(tǒng)和管腳配置兼容。片內(nèi)閃存的存在使程序存儲器能夠在系統(tǒng)中或者使用專門的程序燒錄器來重新寫入20 。這一器件將通用的 8bitsCPU 和閃存結(jié)合起來,集成在一個芯片上,使該芯片成為不少控制系統(tǒng)的高度靈活和經(jīng)濟的解決方案。AT89C51是 ATMEL公司生產(chǎn)的一款51 單片機,它有如下的特點:TM(1) 與 MCS-51 系列產(chǎn)品兼容;(2)4K 片內(nèi)可編寫程序存儲器(FLASH),可以被重寫1000 次;(3) 存儲數(shù)據(jù)保存時間為 10 年;(4) 寬工作電壓范圍為 :V CC2.7V 6V;(5) 工作主時鐘頻率在 0HZ2
31、4MHZ之間;(6)128 ×8bits內(nèi)部 RAM;(7) 程序存儲器具有 3 級加密保護;(8)32 條可編程的 I/O 引腳;(9)2 個 16bits可編程定時器 / 計數(shù)器;(10)6 個中斷源;(11) 可編程全雙工串行通信;(12) 低功耗空閑狀態(tài)和低功耗停機狀態(tài);b. MAX232: RS-232(ANSI/EIA-232 標準)是 IBM-PC 及其兼容機上的串行連接標準??捎糜谠S多用途,比如連接鼠標、打印機或者Modem,同時也可以接工業(yè)儀器儀表。用于驅(qū)動和連線的改進,實際應(yīng)用中 RS-232 的傳輸長度或者速度常常超過標準的值。 RS-232 只限于 PC 串口
32、和設(shè)備間點對點的通信。 RS-232 串口通信最遠距離是 50 英尺。計算機的串口采用的是 RS-232 電平,是 12V 的電壓,而我們單片機系統(tǒng)則采用的是 TTL 電平,是 0+5V 的電壓。因此需要將 TTL 電平轉(zhuǎn)換成 RS-232 電平。在我們的硬件圖里使用互換器 MAX232來進行 TTL 電平和 RS-232 電平的轉(zhuǎn)換。 +5V 電平 RS-232 傳送 / 發(fā)送模塊,包含 TTL/CMOS到 RS-232 電平的轉(zhuǎn)換以及 RS-232 到 TTL/CMOS電平的轉(zhuǎn)換器各 2 個。MAX232的引腳說明為:VCC:供電電壓;GND:地;C+、 C-:外圍電容;T1IN:第一路
33、TTL/CMOS驅(qū)動電平輸入;T1OUT:第一路 RS-232 電平輸出;R1IN:第一路電平輸入;R1OUT:第一路 TTL/COMS驅(qū)動電平輸出;T2IN:第二路 TTL/CMOS驅(qū)動電平輸入;T2OUT:第二路 RS-232 電平的輸出;R2IN:第二路 RS-232 電平輸入;R2OUT:第二路 TTL/COMS驅(qū)動電平輸出。MAX232的主要性能參數(shù)如下:工作電壓:單電源 +5V;雙通道接收和發(fā)送;與所有 EIA/TIA-232E 以及 V.28 協(xié)議兼容;三態(tài)門接收和發(fā)送。4 智能轉(zhuǎn)速測量系統(tǒng)的軟件設(shè)計4.1 單片機 C51的介紹單片機 C 語言與匯編語言在單片機的開發(fā)應(yīng)用中,逐漸
34、引入了高級語言, C 語言就是其中的一種。對用慣了匯編語言的人來說,高級語言的可控行不好,不如匯編語言那樣能夠隨心所欲。但是使用匯編語言會遇到很多問題,首先它的可讀性和可維護性不強,特別是當呈現(xiàn)沒有很好的標注時,其次就是代碼的可重用性也比較低。使用 C語言就可以很好的解決這些問題18 。C 語言具有良好的模塊化,容易閱讀和維護等優(yōu)點。由于模塊化,用C 語言編寫的程序有很好的可移植性,功能化代碼能夠很方便地從一個工程移植到另一個工程,從而減少開發(fā)時間。用 C 語言編寫程序比用匯編編寫程序更符合人們的思考習慣,開發(fā)者可以更專心地考慮算法而不是考慮一些細節(jié)問題,這樣就減少了開發(fā)和調(diào)試時間。使用像 C
35、 這樣的語言,編寫者不必十分熟悉處理器的運算過程。很多處理器支持 C 編譯器,這意味著對新的處理器也能很快上手,而不必知道處理器的具體內(nèi)部結(jié)構(gòu),這使得用 C語言編寫的程序比匯編程序有更好的可移植性。C 語言的特點就是可以使編寫者盡量少地對硬件進行操作,它是功能性和結(jié)構(gòu)性很強的語言。對大多數(shù) 51 系列單片機,使用 C 語言這樣的高級語言與使用匯編語言相比具有如下優(yōu)點:(1) 不需要了解處理器的指令集,也不必了解存儲器結(jié)構(gòu);(2) 寄存器分配和尋址方式由編譯器進行管理,編程時不需要考慮存儲器的尋址和數(shù)據(jù)類型等細節(jié);(3) 指定操作的變量選擇組合提高了程序的可讀性;(4) 可使用與人的思維更相近的
36、關(guān)鍵字和操作函數(shù);(5) 與使用匯編語言編程相比,程序的開發(fā)和調(diào)試時間大大縮短;(6)C 語言中的庫文件提供許多標準的方程,例如:格式化輸出、數(shù)據(jù)轉(zhuǎn)換和浮點運算等;(7) 通過 C 語言可實現(xiàn)模塊編程技術(shù),從而可將已編制好的程序加入到新程序中;(8)C 語言可移植性好且非常普及, C 語言編譯器幾乎適用于所有的目標系統(tǒng),已完成的軟件工程可以很容易地轉(zhuǎn)換到其它的處理器或環(huán)境中。所以在本畢業(yè)設(shè)計數(shù)據(jù)采集系統(tǒng)的軟件設(shè)計中我選用單片機 C 語言來進行程序代碼的編寫。對標準 C 語言的擴展1. 在 51 系列單片機中使用的 C 語言與標準 C 語言還有一些不同,或者說C51 對標準 C 語言有一些擴展。
37、C51語言的特色主要體現(xiàn)在以下幾個方面:(1)C51 雖然繼承了標準C 語言的絕大部分的特性,而且基本語法相同,但是本身又在特定的硬件結(jié)構(gòu)上有所擴展,如關(guān)鍵字sbit 、 data 、 idata 、pdata 、xdata 、code 等。(2) 應(yīng)用 C51 更要注重對系統(tǒng)資源的理解,因為單片機的系統(tǒng)資源相對機來說很貧乏,對于RAM、 ROM中的每一字節(jié)都要充分利用??梢酝ㄟ^看編譯生成的 .m51 文件來了解自己程序中資源的利用情況。PC(3) 程序上應(yīng)用的各種算法要精簡,不要對系統(tǒng)構(gòu)成過重的負擔。盡量少用浮點運算,可以用 unsigned 無符號型數(shù)據(jù)的就不要用有符號型數(shù)據(jù),盡量避免多字
38、節(jié)的乘除運算,多使用移位運算等。2.C51 相對于標準 C 語言的擴展直接針對 51 系列 CPU硬件,大致有以下幾個方面:(1) 數(shù)據(jù)類型C51 具有標準 C 語言所具有的標準數(shù)據(jù)類型,除此之外,為了更加有效地利用 8051 的結(jié)構(gòu),還加入了以下特殊的數(shù)據(jù)類型。(2) 存儲區(qū)C51 編譯器支持8051 及其擴展系列,并提供對8051 所有存儲區(qū)的訪問。存儲區(qū)可分為內(nèi)部數(shù)據(jù)存儲區(qū)、外部數(shù)據(jù)存儲區(qū)以及程序存儲區(qū)。 8051CPU內(nèi)部的數(shù)據(jù)存儲區(qū)是可讀寫的, 8051 派生系列最多可有 256 字節(jié)的內(nèi)部數(shù)據(jù)存儲區(qū),其中低 128 字節(jié)可直接尋址,高 128 字節(jié)(從 0x80 到 0xFF)只能
39、間接尋址,從 20H 開始的 16 字節(jié)可位尋址。內(nèi)部數(shù)據(jù)區(qū)又可分為 3 個不同的存儲類型: data 、 idata 、 bdata 。外部數(shù)據(jù)區(qū)也是可讀寫的。但是訪問起來比較慢,因為外部數(shù)據(jù)區(qū)是通過數(shù)據(jù)指針加載地址來間接訪問的。(3) 特殊功能寄存器( SFR)51 單片機提供 128 字節(jié)的 SFR尋址區(qū),地址為 80HFFH。51 單片機中除了程序計數(shù)器 PC和 4 組通用寄存器組之外,其它所有的寄存器均為 SFR,并位于片內(nèi)特殊寄存器區(qū)。4.2 程序設(shè)計根據(jù)硬件電路設(shè)計,進行程序設(shè)計,在程序設(shè)計之前,首先要確定定時器的工作方式,方式控制字,確定串行口的工作模式等,下面分別討論。工作方
40、式及控制字設(shè)置1定時 / 計數(shù)器 T0本系統(tǒng)設(shè)計中, T0 被用于計數(shù),我們當然希望計數(shù)量越大越好,這樣,可以獲得較大的測量范圍,因此,T0 選定為工作方式1(16 位的計數(shù)方式),設(shè)計中,沒有使用外部控制端,僅用指令置位/ 清零TR0 來進行計數(shù)的啟動/ 停止,這樣,電路較為簡單,但精度會受到一定的影響,但在本設(shè)計中,認為采用這種方式,精度可達到要求,因此,T0 采用自由計數(shù)的方式,不用預(yù)置初值。2定時 / 計數(shù)器 T1定時器 T1 每 10ms 中斷一次,用以進行數(shù)碼管顯示和每一秒讀取一次計數(shù)器 T0 中的數(shù)值。這里選用T1 的工作狀態(tài)為1。要使 T1 設(shè)定正確的定時時間,首先要計算其初值
41、,定時時間為:t=(216-T1的初值)×晶振周期×12( 4.1 )定時時間 10ms:10ms=(216-T1 的初值 ) × 1/12*10 -6 ×12則:T1的初值 =216-10 4因此, TH1=D8, TH1=F0;確定了定時 / 計數(shù)器 T1 的定時時間以后,就要計算定時初值,本系統(tǒng)用了12M的晶振,恰好是一個機器周期為1s,因此, 1ms定時時間意味著只要計數(shù) 1000 次即可,由于定時 / 計數(shù)器 T1 是向上計數(shù),因此,要化為16 進制,并分別送入 T1 的高 8 位和低 8 位。這里,采用的keil匯編軟件有較強的預(yù)處理功能,能
42、夠處理較復(fù)雜的運算,因此,計數(shù)程序中可寫為: PlusCounter = TH0*256 + TL0 。這里用 PlusCounter 作為轉(zhuǎn)化為 10 進制數(shù)值的數(shù)值存儲器, TH0和 TL0 分別是二進制計數(shù)值的高 8 位和低 8 位。由于 AT89C51單片機在中斷時,會附加延時3-8 個周期,在滿足一定條件的情形下,驗證這個數(shù)值是否正確,可以在進入仿真調(diào)試時通過觀察 Keil 提供的有關(guān)變量看到,如果不正確,可以根據(jù)實際情況略作調(diào)整,保證定時時間盡量準確。3定時 / 計數(shù)器的方式控制字定時 / 計數(shù)器的方式控制字 TMOD,其地址為 89H,復(fù)位值 00H,不可位尋址。其 8 位控制。
43、如圖 4.1 工作模式寄存器 TMOD的位定義所示。GATEC/ TM1M0GATEC/ TM1M0T1T0圖4.1工作模式寄存器TMOD的位定義圖說明:GATE:門控位。由GATE、軟件控制位TR0/1 和 INT0/1器 0/1 的打開或關(guān)閉。當GATE=0,只要用指令置TR0/1=1器 0/1 工作。 GATE=1,只有 INT0/1 引腳為高電平且用指令置共同決定定時 / 計數(shù)即可啟動定時 / 計數(shù) TR0/1=1 時,才能啟動定時 / 計數(shù)器 0/1 的工作。C/T:定時器 / 計數(shù)器選擇位。 C/T=1,工作于計數(shù)器方式;C/T=0 工作于定時器方式。M1M0:定時 / 計數(shù)工作模
44、式選擇位。 M1M0=00,13 位計數(shù); M1M0=01,16 位計數(shù); M1M0=10,自動再裝入 8 位計數(shù); M1M0=11,工作于模式 3 狀態(tài)。根據(jù)前面的描述,可以確定TMOD的控制字應(yīng)為 00010101B。程序如下:void init_timer0()/ T0、T1 分別定義TMOD=0xF1。void init_timer1()TMOD = 0x50。將控制字分別送入TMOD。4定時 / 計數(shù)控制寄存器TCONTCON地址 88H,可進行位尋址,復(fù)位值00H。如圖4.2控制寄存器TCON的位定義圖所示。TF1TR1TF0TR0IE1IT1IE0IT0圖4.2控制寄存器TCON
45、的位定義圖TF0、TF1 分別為定時器T0 和計數(shù)器T1 的溢出標志位,TR0 和TR1 在正常情況下,都沒有溢出標志,只有當計數(shù)值或定時值超過65536 時,才能有溢出中斷請求,這兩位是由硬件置位和硬件清零,不需另行設(shè)置??稍赥0和 T1的溢出中斷服務(wù)程序中,以供使用。TR1、TR0 分別用于開啟 T1 和 T0 的開關(guān)位,其中TR1 由系統(tǒng)開啟時,直接置位,打開 T1,開始定時,經(jīng)運行判斷后,打開TR0。變量分配及程序的初始化在程序開始之前,首先進行變量的分配,程序的初始化,根據(jù)硬件電路的要求,將各硬件電路置于其規(guī)定的狀態(tài);根據(jù)需要,對定時器、計數(shù)器、串行口等設(shè)置工作狀態(tài),預(yù)置初值等。以下
46、是程序定義變量及進行初始化的程序行。uint Tcounter = 0。 /時間計數(shù)器bit Flag_Fresh = 0。 /刷新標志bit Flag_clac = 0。 /計算轉(zhuǎn)速標志bit Flag_Err = 0。 /超量程標志Disbuf0 = 0 。/開機時,初始化為 0000Disbuf1 = 0。Disbuf2 = 0。Disbuf3 = 0。init_timer0()。/T0、 T1 分別初始化init_timer1()。顯示功能的實現(xiàn)定時計數(shù)器T1 每 10ms中斷一次,用以進行數(shù)碼管顯示和每1 秒讀取一次計數(shù)器 T0 中的數(shù)值。1秒信號的產(chǎn)生中斷產(chǎn)生后:#define T
47、IME_CYLC 100Tcounter+ 。if(Tcounter>TIME_CYLC) Flag_clac = 1。判斷 Tcounetr 是否到達 100 了,如果到達 100,則說明 1 秒時間已到,程序?qū)㈥P(guān)閉 T0 計數(shù)器,然后對 T0 中已計得的數(shù)據(jù)進行處理,然后再去進行顯示,否則直接轉(zhuǎn)去顯示。這部份的程序流程圖如圖 4.3 秒信號子程序流程圖所示。開始秒計數(shù)器加1到 100 了嗎停止T0工讀T0計數(shù)清 T0值置位計算請求標志進入顯示部分清秒計數(shù)器圖 4.3 秒信號子程序流程圖2數(shù)碼管的顯示數(shù)碼管顯示采用動態(tài)方式,即通過延遲程序使數(shù)碼管分時點亮,依次循環(huán)。由于數(shù)碼管共有 4 位,延遲 5ms,因此,每 20ms 即可輪流點亮每個數(shù)碼管一次,利用人的視覺暫留現(xiàn)象,可以穩(wěn)定地顯示各位數(shù)碼管的值。如圖 4.4 數(shù)碼管顯示流程圖所示,從圖中可以看出,程序中利用了一個延時函數(shù),在函數(shù)中由計數(shù)器自加來實現(xiàn)延時的(自加速度由晶振頻率決定),當計數(shù)值到 5000 時
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年轉(zhuǎn)換工程師勞動合同協(xié)議書
- 售車協(xié)議和購買合同
- 2025租房裝修合同樣本
- 2025商業(yè)綜合體物業(yè)管理服務(wù)合同書
- 2025餐飲外賣配送服務(wù)合同示例
- 2025年國家生源地助學貸款合同范本
- 商品吊牌生產(chǎn)合同協(xié)議
- 2025標準個人借款合同范本
- 商業(yè)除塵車租賃合同協(xié)議
- 商品贈品協(xié)議書范本
- 2024-2030年中國地鐵通信行業(yè)發(fā)展分析及發(fā)展前景與趨勢預(yù)測研究報告
- 無工作單位個人承諾書模板
- 2024年江蘇南通蘇北七市高三三模高考化學試卷試題(含答案詳解)
- DL∕T 5554-2019 電力系統(tǒng)無功補償及調(diào)壓設(shè)計技術(shù)導則
- 古建供貨合同范本
- 道德與法治賽課一等獎:《勿忘國恥》教學課件(五下)
- 數(shù)學建模與系統(tǒng)仿真智慧樹知到期末考試答案章節(jié)答案2024年南京理工大學
- 電力建設(shè)安全工作規(guī)程 第2部分:電力線路
- 醫(yī)療機構(gòu)執(zhí)業(yè)校驗匯報
- 瞼緣解剖和瞼緣炎病理機理課件
- 中國調(diào)味品協(xié)會:2024中國調(diào)味品行業(yè)可持續(xù)發(fā)展白皮書
評論
0/150
提交評論