角度測量儀的設(shè)計(jì)_第1頁
角度測量儀的設(shè)計(jì)_第2頁
角度測量儀的設(shè)計(jì)_第3頁
角度測量儀的設(shè)計(jì)_第4頁
角度測量儀的設(shè)計(jì)_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上基于單片機(jī)的角度測量儀摘要:本文所設(shè)計(jì)的角度測量儀是利用AT89S51單片機(jī),該單片機(jī)是一款低功耗,CMOS8位單片機(jī),片內(nèi)含4KB的可系統(tǒng)編程的Flash只讀程序存儲器的單片機(jī),角度測量儀將被測物體與光電編碼器同軸轉(zhuǎn)動,將光柵的光信號傳輸給光電編碼器內(nèi)部的光敏電阻,經(jīng)過處理后產(chǎn)生脈沖,通過編寫程序?qū)雴纹瑱C(jī),當(dāng)來一個(gè)脈沖下降沿沿時(shí),定時(shí)器中斷,則脈沖數(shù)加一,進(jìn)而將脈沖數(shù)轉(zhuǎn)換成數(shù)字量,通過轉(zhuǎn)換成角度量,最后通過液晶顯示屏直接顯示所測出的角度。本文同時(shí)分析了角度測量儀的硬件組成,設(shè)計(jì)原理,給出了設(shè)計(jì)程序。關(guān)鍵字:光電編碼器 單片機(jī) 顯示屏 角度測量 目錄 8附錄19專心

2、-專注-專業(yè)1 前言 角度測量是計(jì)算科學(xué)的重要組成部分,隨著社會的發(fā)展,角度測量越來越廣泛應(yīng)用于機(jī)械,光學(xué),航空航天等各個(gè)領(lǐng)域,技術(shù)水平和準(zhǔn)確度也在不斷提高。隨著科技的進(jìn)步,測角技術(shù)的精度不斷提高,測量領(lǐng)域也不斷擴(kuò)大;數(shù)字化的發(fā)展使測角技術(shù)實(shí)現(xiàn)自動化,測角的方法也越來越多。 角度是一個(gè)重要的幾何量計(jì)量參數(shù),它不僅應(yīng)用于軍事領(lǐng)域還運(yùn)用于商業(yè)領(lǐng)域和工業(yè)領(lǐng)域,而我國的角度測量技術(shù)也經(jīng)過了幾十年的發(fā)展,隨著21世紀(jì)科學(xué)技術(shù)的不斷發(fā)展,傳統(tǒng)的角度計(jì)量工具框式水平儀和機(jī)械式測量方法將被數(shù)字角度測量儀所取代,數(shù)字角度測量儀具有性能穩(wěn)定,工作可靠,測量精確度高,使用簡單,因此一個(gè)電子檢測數(shù)字顯示的現(xiàn)代化角度測

3、量時(shí)代即將開始。近年來工業(yè)上常用的測角方法有機(jī)械式測角技術(shù)、激光測角技術(shù)和光學(xué)測角技術(shù)。機(jī)械式技術(shù)由于研究較早,技術(shù)已經(jīng)非常成熟。其優(yōu)點(diǎn)是簡單、成本低,但是其設(shè)備體積龐大,測量延時(shí)大、精度低,多數(shù)情況下不能實(shí)時(shí)動態(tài)測量,而且不能實(shí)施非接觸式測量,所以不合適高精度的角度測量。光學(xué)測角技術(shù)是隨著新型光電材料和器件的出現(xiàn)而發(fā)展起來的,光電編碼器方法測角具有體積小,重量輕,品種多,分辨力高,承載能力強(qiáng),性能穩(wěn)定,可靠使用壽命長等諸多優(yōu)點(diǎn)。 基于單片機(jī)的角度測量儀的系統(tǒng)簡介 光電編碼器是集光,機(jī),電于一體的轉(zhuǎn)速位移傳感器,當(dāng)編碼器轉(zhuǎn)軸帶動光柵圓盤旋轉(zhuǎn)時(shí),發(fā)光元件發(fā)出的光被光柵盤的狹縫切割成斷斷續(xù)續(xù)的光線

4、,并被接收元件接收產(chǎn)生初始信號,該信號經(jīng)后繼電路處理后輸出脈沖信號,該脈沖信號傳輸給AT89S51單片機(jī),利用AT89S51單片機(jī)內(nèi)部的計(jì)數(shù)器實(shí)現(xiàn)對光電編碼器輸出脈沖的加減可逆計(jì)數(shù),而輸出的脈沖數(shù)與角度值成正比,通計(jì)算脈沖數(shù)進(jìn)而算出角度值。角度測量儀利用單片機(jī)算出脈沖數(shù),用液晶顯示屏讀取光電編碼器測出的角度值?;趩纹瑱C(jī)的角度測量儀課題的研究意義 角度測量儀是某些控制系統(tǒng)中瞄準(zhǔn)裝置的關(guān)鍵部件。在以往的控制系統(tǒng)中,多數(shù)都是僅憑設(shè)備操作人員眼睛瞄準(zhǔn)指定目標(biāo),然后作出相應(yīng)的控制,這樣就帶來一系列問題,如操作人員的經(jīng)驗(yàn)、瞄準(zhǔn)的精確的都肯能帶來一些較大的誤差。而機(jī)械式測角利用分度盤,而分度盤用不能無限增

5、加,從而受到限制,利用角度測量儀能夠可以很方便的顯示前后的角度差距,對工人的專業(yè)要求降低,可以提高生產(chǎn)效率,有助于產(chǎn)品質(zhì)量和安全提高。因此研究一種適用的角度測量方法是必要的。 電子技術(shù)在工程測量中已經(jīng)普遍應(yīng)用,相對于傳統(tǒng)的測量方法,光電編碼器在顯示、精度、成本上占很大的優(yōu)勢。而且隨著傳感器技術(shù)和測量方法的發(fā)展,對于一些物理量的測量變得更方便。在數(shù)據(jù)管理上,也可以將數(shù)據(jù)測量出,通過通信的方式傳送到上位機(jī),有助于產(chǎn)品和加工過程中的數(shù)據(jù)統(tǒng)計(jì)分析。電子技術(shù)的應(yīng)用能夠和企業(yè)的自動化系統(tǒng)配合,作為整個(gè)企業(yè)自動化生產(chǎn)的一個(gè)子系統(tǒng)。本設(shè)計(jì)就是從電子應(yīng)用出發(fā),希望借助于將電子測量技術(shù),將該方法應(yīng)用到工程實(shí)際生產(chǎn)

6、中,提供一種低成本、效率高、精度高的角度測量方法。2系統(tǒng)的基本構(gòu)成 2.1系統(tǒng)的框圖 該系統(tǒng)主要由光電編碼器,AT89S51單片機(jī),D觸發(fā)器,1602液晶顯示屏等組成,系統(tǒng)基本框圖如2-1所示 圖2-1系統(tǒng)的基本框圖2.2光電編碼器的原理光電式碼盤亦稱脈沖式角度數(shù)字編碼器, 光電編碼器的光柵盤和內(nèi)部結(jié)構(gòu)示意圖如圖2-2-1所示。 在一個(gè)圓盤上按碼道開有相等角距的縫隙, 在碼道上分為透明區(qū)和不透明區(qū),分別代表“1”和“0”, 相當(dāng)于接觸式碼盤的導(dǎo)電區(qū)和不導(dǎo)電區(qū)。光電式碼盤的優(yōu)點(diǎn)是無觸點(diǎn)磨損, 因而允許高轉(zhuǎn)速; 每條縫隙寬度可做得很小, 所以精度和分辨高 。 圖2-2-1 光柵盤和光電編碼器內(nèi)部結(jié)

7、構(gòu)示意圖 光電編碼器,是一種通過光電轉(zhuǎn)換將輸出軸上的機(jī)械幾何位移量轉(zhuǎn)換成脈沖或數(shù)字量的傳感器,是目前應(yīng)用最多的傳感器。一般的光電編碼器主要由光柵盤和光電檢測裝置組成。而光柵碼盤圖案主要由零位標(biāo)記碼道和循環(huán)碼道組成,零位標(biāo)記碼道稱作參考點(diǎn)碼道,用來檢測被物體角度的基準(zhǔn)點(diǎn)。有時(shí)需要用光掃描將近360度來尋找絕對基準(zhǔn)點(diǎn)。循環(huán)碼道由一系列相互交錯(cuò)的透明和不透明的光柵線條組成。零位標(biāo)記碼道由幾個(gè)位置相互分立的光柵組成。 當(dāng)光柵盤隨被測工作軸一起轉(zhuǎn)動時(shí),每轉(zhuǎn)過一個(gè)縫隙,光電管就會感受到一次光線的明暗變化,然后將明暗光線發(fā)送給光敏電阻,使光電管的電阻值改變,這樣就把光線的明暗變化轉(zhuǎn)變成電信號的強(qiáng)弱變化,而這

8、個(gè)電信號的強(qiáng)弱變化近似于正弦波的信號,經(jīng)過整形和放大等處理,變換成脈沖信號。通過計(jì)數(shù)器計(jì)量脈沖的數(shù)目,即可測定旋轉(zhuǎn)運(yùn)動的角度;其原理如圖2-2-2所示。此外通過有一定相位差的兩組增量式脈沖信號可以檢測出光電編碼器的轉(zhuǎn)動方向。光電編碼器測角體積小,承載能力強(qiáng),數(shù)字化程度高,性能可靠,使用時(shí)間長。圖2-2-2 光電編碼器 增量式光電編碼器由主碼盤、鑒向盤、光敏元件和光電變換器組成。在光電盤周邊上刻有距離相等的輻射狀窄縫,形成均勻分布的透明區(qū)和不透明區(qū)。而光柵碼圖案主要由循環(huán)碼道和零位標(biāo)記碼道組成,循環(huán)碼道由一系列均勻交錯(cuò)的透明區(qū)和不透明區(qū)光柵線條組成,零位標(biāo)記碼道由幾個(gè)距離相等的光柵組成零位標(biāo)記碼

9、道。 由于碼道信號的讀取采用的是光電掃描原理,對測量基準(zhǔn)的掃描是非接觸的,因此沒有磨損。如果一個(gè)光柵的刻線與另一個(gè)光柵的狹縫對齊則光線無法通過,如果一個(gè)光柵的透明區(qū)剛好與另一光柵的透明區(qū)在同一條直線上時(shí)則光線剛好通過,利用光電掃描法可檢測到非常精細(xì)的柵線,掃描產(chǎn)生等同于柵線同期輸出的脈沖信號。工作時(shí),主碼盤與轉(zhuǎn)軸一起轉(zhuǎn)動,鑒向盤靜止不動,當(dāng)光電碼盤隨工作軸一起轉(zhuǎn)動時(shí),光線透過光電碼盤和光欄板狹縫,形成光信號。光敏元件接收光信號信號,經(jīng)過處理后轉(zhuǎn)換成脈沖信號,然后由單片機(jī)來計(jì)脈沖數(shù),最后由液晶顯示屏直接顯示角度量。 光電編碼器的測角精確度與碼盤圓周上的透光槽數(shù) n有關(guān),能分辨的角度 為 360&

10、#176;/n,分辨率為 1/n 。為了判斷碼盤旋轉(zhuǎn)時(shí)是順勢正還是逆時(shí)針,必須在光欄板上設(shè)置兩個(gè)透明區(qū),兩者之間相差4/1截距,并設(shè)置了兩組對應(yīng)的光敏元件,由光敏元件來得出高低電平,進(jìn)而傳給單片機(jī)。當(dāng)檢測對象旋轉(zhuǎn)時(shí),光碼盤會被帶動旋轉(zhuǎn),進(jìn)而光源一會穿過透明區(qū),一會被遮擋,就這樣循環(huán)反復(fù),光電編碼器便會輸出一組脈沖信號.光電編碼器正反轉(zhuǎn)根據(jù) A、B 信號的波形及其時(shí)序關(guān)系得出,A的高電平先于B出現(xiàn),則判斷為正轉(zhuǎn),B的高電平先于A出現(xiàn)時(shí)則判斷為反轉(zhuǎn)。同時(shí)A 和 B 輸出的脈沖個(gè)數(shù)與被測角位移變化量成線性關(guān)系,因此,通過對脈沖個(gè)數(shù)計(jì)數(shù)就能計(jì)算出相應(yīng)的角位移。 當(dāng)測量旋轉(zhuǎn)角度時(shí),還要確定碼盤轉(zhuǎn)動位置的

11、起始點(diǎn),因此必須設(shè)定一個(gè)基準(zhǔn)點(diǎn),這基準(zhǔn)點(diǎn)就是光柵碼盤中的“零位標(biāo)志槽”,當(dāng)光柵碼盤旋轉(zhuǎn)時(shí),零位標(biāo)志槽也跟著旋轉(zhuǎn),當(dāng)零位標(biāo)志槽旋轉(zhuǎn)到與光柵板對齊的時(shí)候,光線恰好穿過,傳輸給光敏電阻,產(chǎn)生一個(gè)高電平,到傳過去之后,光敏電阻一直處于低電平,所以只有旋轉(zhuǎn)一圈才能產(chǎn)生一個(gè)脈沖,且是零位標(biāo)志槽與光柵板對齊的時(shí)候,所以通過檢測這個(gè)脈沖就能確定碼盤轉(zhuǎn)動的起始點(diǎn),再根據(jù) A 和 B 之間的這種關(guān)系正確地解調(diào)出被測機(jī)械的旋轉(zhuǎn)方向和旋轉(zhuǎn)角位移即就是所謂的脈沖辨向和計(jì)數(shù)。通過求出脈沖數(shù)得出光電編碼器轉(zhuǎn)了多少角度,最后通過光電編碼器齒輪與被測物體齒輪關(guān)系求出被測物體旋轉(zhuǎn)的角度。光電編碼器的A,B,Z輸出的波形圖如2-2

12、-3所示。圖2-2-3 光電編碼器輸出的信號波形2.3 AT89S51單片機(jī)的原理AT89S51 為 ATMEL 所生產(chǎn) 8051 相容單芯片,其內(nèi)部程序代碼容量為4KB。(一)、AT89S51主要功能列舉如下:1,8位CPU。2,片內(nèi)帶振蕩器,頻率范圍1.2MHZ12MHZ。3,片內(nèi)帶128B的數(shù)據(jù)存儲器。4,片內(nèi)帶4KB的程序存儲器。5,程序存儲器的尋址空間為64KB。6,128個(gè)用戶為尋址空間。7,21個(gè)字節(jié)特殊功能寄存器。8,4個(gè)8 位并I/O接口:P0,P1,P2,P3。9,兩個(gè)16位定時(shí)/計(jì)數(shù)器。10,兩個(gè)優(yōu)先級別的5個(gè)中斷源。11,1個(gè)全雙工的串行I/O接口,可多機(jī)通信。 12,

13、111條指令,含乘法指令和除法指令。13,片內(nèi)采用總線結(jié)構(gòu)。14,有較強(qiáng)的位處理能力。15,采用+5V電源。(二)、AT89S51各引腳功能介紹: 芯片共有40個(gè)引腳,引腳的排列順序?yàn)閺目啃酒娜笨冢ㄒ娪覉D)左邊那列引腳逆時(shí)針數(shù)起,依次為1、2、3、4.40,其中芯片的1腳頂上有個(gè)凹點(diǎn)(在單片機(jī)的40個(gè)引腳中,電源引腳2根,外接晶體振蕩器引腳2根,控制引腳4根以及4組8位可編程I/O引腳32根。1、主電源引腳(2根)VCC單片機(jī)的第40引腳,電源輸入,接5V電源。GND單片機(jī)的第20引腳,為接地線。2、外接晶振引腳(2根)XTAL1為單片機(jī)的第19引腳,作用是片內(nèi)振蕩電路的輸入端。XTAL2單

14、片機(jī)的第20引腳,為片內(nèi)振蕩電路的輸出端。3、控制引腳(4根)RST單片機(jī)的第9引腳,作用是復(fù)位,引腳上出現(xiàn)2個(gè)機(jī)器周期的高電平將使單片機(jī)復(fù)位。ALE/PROG單片機(jī)的第30引腳,為地址鎖存允許信號。PSEN單片機(jī)的第29引腳,為外部存儲器讀選通信號。EA/VPP單片機(jī)的第30引腳,程序存儲器的內(nèi)外部選通,如果接的是低電平則外部程序存儲器讀指令,如果接高電平則內(nèi)部程序存儲器讀指令。 4、可編程輸入/輸出引腳(32根) AT89S51單片機(jī)有4組8位的可編程I/O口,分別位P0、P1、P2、P3口,每個(gè)口有8根引腳,共32根。每一根引腳都可以編程,比如用來控制電機(jī)、交通燈、霓虹燈等。PO口單片機(jī)

15、的第32引腳到第39引腳,為8位雙向I/O口線,名稱為P0.0P0.7。P1口單片機(jī)的第1到第8引腳,8位準(zhǔn)雙向I/O口線,名稱為P1.0P1.7 。P2口單片機(jī)的第21到第28引腳,8位準(zhǔn)雙向I/O口線,名稱為P2.0P2.7 。P3口單片機(jī)的第10到第17引腳,8位準(zhǔn)雙向I/O口線,名稱為P3.0P3.7。上面就是AT89S51單片機(jī)引腳的簡單介紹,其它51系列家族的單片機(jī)8031、8051、89C51等引腳和89S51兼容,只是個(gè)別引腳功能定義不同。端口0是一個(gè)8位寬的雙向輸出入端口,共有8個(gè)位,P0.0表示位0,P0.1表示位1,依此類推。其他三個(gè)I/O端口(P1、P2、P3)則不具有

16、此電路組態(tài),而是內(nèi)部有一提升電路,P0在當(dāng)做I/O用時(shí)可以推動8個(gè)LS的TTL負(fù)載。端口1也是具有內(nèi)部提升電路的雙向I/O端口,其輸出緩沖器可以推動4個(gè)LS TTL負(fù)載,同樣地若將端口1的輸出設(shè)為高電平,便是由此端口來輸入數(shù)據(jù)。端口2是具有內(nèi)部提升電路的雙向I/O端口,每一個(gè)引腳可以推動4個(gè)LSTTL負(fù)載,若將端口2的輸出設(shè)為高電平時(shí),此端口便能當(dāng)成輸入端口來使用。端口3也具有內(nèi)部提升電路的雙向I/O端口,其輸出緩沖器可以推動4個(gè)TTL負(fù)載,端口3的引腳定義如框圖2-3所示??诰€信號功能P3.0RXD串行口數(shù)據(jù)輸入P3.1TXD串行口數(shù)據(jù)輸出P3.2INTO外部中斷0輸入P3.3INT1外部中

17、斷1輸入P3.4T0定時(shí)計(jì)數(shù)器0的外部輸入P3.5T1定時(shí)計(jì)數(shù)器1的外部輸入P3.6WR外部數(shù)據(jù)存儲器寫選通控制輸出P3.7RD外部數(shù)據(jù)存儲器讀選通控制輸出 表2-3 端口3的引腳定義2.4液晶顯示屏原理在數(shù)字電路中,所有的數(shù)據(jù)都是以0和1保存的,對LCD控制器進(jìn)行不同的數(shù)據(jù)操作,可以得到不同的結(jié)果。對于顯示英文操作,只需要8位(一字節(jié))即可。而對于中文,卻要用到6000以上。因此我們將ASCII表的高128個(gè)很少用到的數(shù)值以兩個(gè)為一組來表示漢字,而剩下的低128位則留給英文字符使用。那么,得到了漢字的內(nèi)碼后,還僅是一組數(shù)字,如果要顯示出來這就涉及到文字的字模,字模雖然也是一組數(shù)字,但它的意義

18、卻與數(shù)字的意義有了根本的變化,它是用數(shù)字的各位信息來記載英文或漢字的形狀,液晶顯示屏如2-4-1所示。 圖2-4-1 1602液晶顯示屏 LCD1602已很普遍了,市面上字符液晶絕大多數(shù)是基于HD44780液晶芯片的,控制原理是完全相同的,因此HD44780寫的控制程序可以很方便地應(yīng)用于市面上大部分的字符型液晶。字符型LCD通常有14條引腳線或16條引腳線的LCD,多出來的2條線是背光電源線VCC(15腳)和地線GND(16腳),控制原理與14腳的LCD完全一樣,LCD1602的引腳定義如框圖2-4-4所示。引腳 符號功能說明1VSS一般接地2VDD接電源(+5V)3VO液

19、晶顯示器對比度調(diào)整端,對比度最弱時(shí)是接正電源,然而接地電源時(shí)它的對比度卻最高4RSRS為寄存器選擇,選擇數(shù)據(jù)寄存器則應(yīng)選用高電平1,低電平0時(shí)則選擇指令寄存器5R/WR/W為讀寫信號線,高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫操作。6EE(或EN)端為使能(enable)端,下降沿使能。7DB0底4位三態(tài)、 雙向數(shù)據(jù)總線 0位(最低位8DB1底4位三態(tài)、 雙向數(shù)據(jù)總線 1位9DB2底4位三態(tài)、 雙向數(shù)據(jù)總線 2位10DB3底4位三態(tài)、 雙向數(shù)據(jù)總線 3位11DB4底4位三態(tài)、 雙向數(shù)據(jù)總線 

20、;4位12DB5底4位三態(tài)、 雙向數(shù)據(jù)總線 5位13DB6底4位三態(tài)、 雙向數(shù)據(jù)總線 6位14DB7高4位三態(tài)、 雙向數(shù)據(jù)總線 7位(最高位)(也是busy flag)15BLA背光電源正極16BLK背光電源負(fù)極表2-4 LCD1602的引腳定義3硬件部分的設(shè)計(jì)3.1 .脈沖數(shù)與角度的關(guān)系ZSP52系列增量式光電編碼器的碼盤是由36000個(gè)狹縫組成,當(dāng)齒輪旋轉(zhuǎn)一周,會經(jīng)過36000個(gè)狹縫,主碼盤邊緣的透光槽數(shù)為36000 個(gè),會產(chǎn)生36000個(gè)脈沖,旋轉(zhuǎn)一周是360度,則能分辨的最小角度=360°/36000=0.

21、01,所以每個(gè)狹縫所占用的角度是0。01°而光電編碼器的主碼盤在旋轉(zhuǎn)時(shí),每個(gè)狹縫會產(chǎn)生一個(gè)脈沖,所以當(dāng)光電編碼器產(chǎn)生一個(gè)脈沖時(shí)則表明物體已經(jīng)旋轉(zhuǎn)0.01度,所以根據(jù)單片機(jī)所得的脈沖數(shù)來計(jì)算光電編碼器旋轉(zhuǎn)的角度。而脈沖數(shù)的計(jì)算是通過編寫程序?qū)階T89S51單片機(jī),利用單片機(jī)的中斷,來一個(gè)中斷,脈沖數(shù)加一個(gè)。設(shè)角度為,脈沖數(shù)利用公式 角度=脈沖數(shù)*0.01 ,最后直接通過1602液晶顯示屏直接顯示出度數(shù)即為被測物體的旋轉(zhuǎn)角度。編碼器和被測物體的齒輪如圖3-1所示。圖3-1 光電編碼器與被測物體齒輪3.2光電編碼器與單片機(jī)的接口技術(shù)在光電編碼器與單片機(jī)連接時(shí),我們將A,B兩個(gè)接線口與D觸

22、發(fā)器相連接,將絕對位置基準(zhǔn)點(diǎn)Z與單片機(jī)的中斷INTO鏈接,將A,B相與起來與中斷INT1連接,當(dāng)光電編碼器的轉(zhuǎn)軸旋轉(zhuǎn)時(shí),A,B兩個(gè)接口會隨著光電編碼器的旋轉(zhuǎn)輸出脈沖,如果A,B正轉(zhuǎn),D觸發(fā)器的輸出端Q=1,則脈沖數(shù)加1,如果A,B反轉(zhuǎn),D觸發(fā)器的輸出端Q=0,則脈沖數(shù)減1,當(dāng)光電編碼器的Z接口產(chǎn)生下降沿觸發(fā)時(shí),則中斷INTO中斷,如果此時(shí)轉(zhuǎn)軸正轉(zhuǎn),Q=1,則脈沖數(shù)清0,則從此點(diǎn)開始作為基準(zhǔn)點(diǎn)測量角度,如果此時(shí)轉(zhuǎn)軸反轉(zhuǎn),Q=0,則脈沖數(shù)達(dá)到滿量程,如果一圈36000個(gè)脈沖,則此時(shí)脈沖數(shù)為36000個(gè)。在中斷過程中INT0的中斷級別比INT1的中斷級別高。光電編碼器與單片機(jī)接口如圖3-2所示。 圖

23、3-2,光電編碼器與單片機(jī)的連接3.3系統(tǒng)仿真框圖角度測量儀啟動工作后,單片機(jī)的工作過程是:系統(tǒng)啟動后,初始化液晶顯示屏1602,然后再進(jìn)行定時(shí)器初始化,讀取光電編碼器獲取的角度值,再將當(dāng)前的角度值轉(zhuǎn)換成密位值顯示在數(shù)碼屏,如果測下一次的角度值,將單片機(jī)進(jìn)行復(fù)位,進(jìn)入下一個(gè)工作循環(huán)。 圖3-3 系統(tǒng)仿真圖4軟件部分的設(shè)計(jì)4.1軟件部分總程序框圖 圖4-1程序總流程圖主程序:void main()uchar tabPL9;L1602_init();Time0_Init(); Outside_Init();while(1) k=i;tabPL8 = k% 10+'0'tabPL7

24、= (k /10)%10+'0'tabPL5 = (k /100)%10+'0'tabPL4 = (k /1000)%10+'0'tabPL3 = (k /10000)%10+'0'tabPL2 = (k /)%10+'0'tabPL1 = (k /)%10+'0'tabPL0 = (k /)%10+'0'tabPL6 = '.' wcmd(0x01); L1602_string(1,1,tabPL); if (key1=0) Delay(2); if(key1=0)

25、4.2中斷程序流程4.2.1外部0 中斷 當(dāng)光電編碼器的基準(zhǔn)點(diǎn)有光通過時(shí),會產(chǎn)生一個(gè)脈沖,這個(gè)脈沖信號接入單片機(jī)的INT0引腳,當(dāng)這個(gè)脈沖來一個(gè)下降沿觸發(fā)時(shí),則進(jìn)行外部中斷,如果光電編碼器正轉(zhuǎn)時(shí)則脈沖數(shù)i=0,如果光電編碼器反轉(zhuǎn)則脈沖數(shù)i=36000,中斷結(jié)束后返回主程序。 圖4-2-1 外部中斷0流程圖外部中斷程序:void Outside_Init(void)EX0 = 1; /開外部中斷0IT0 = 1; /負(fù)邊沿觸發(fā)EA = 1; /開總中斷void Outside_Int1(void) interrupt 0using 1if(Q=1) i=0;Else i=36000;4.2.2定

26、時(shí)器中斷當(dāng)光電編碼器隨著物體旋轉(zhuǎn)時(shí)會產(chǎn)生脈沖,將產(chǎn)生脈沖作為輸入信號傳輸給單片機(jī),當(dāng)來一個(gè)脈沖時(shí),定時(shí)器中斷,如果光電編碼器正轉(zhuǎn),則每來一個(gè)輸入脈沖,脈沖數(shù)i加1,如果反轉(zhuǎn),則每來一個(gè)脈沖,脈沖數(shù)i減1.當(dāng)光電編碼器旋轉(zhuǎn)時(shí),最大脈沖數(shù)量為36000。 圖4-2-2 定時(shí)器中斷流程圖定時(shí)器中斷程序:void Time0_Init()TMOD = 0x06;TH0 = 0xff;TL0 = 0xff;IE = 0x82;TR0 = 1;void Time0_Int() interrupt 1if(Q=1) i+; Else i-;總結(jié) 經(jīng)過兩周的時(shí)間,基于單片機(jī)的角度測量儀的設(shè)計(jì)終于順利完成了,其

27、中包含著快樂,也有辛酸。剛拿到設(shè)計(jì)題目時(shí),硬件電路不知如何下手,因?yàn)槲覀兯鶎W(xué)的大部分是單片機(jī)方面的理論知識,應(yīng)用到實(shí)踐中去還比較少。于是我們積極地查閱和收集資料。去圖書館借參考書,上網(wǎng)去找一些相關(guān)資料,并且請教指導(dǎo)老師。通過不斷努力,終于把思路和模型定了下來,并用proteus軟件繪制器硬件電路圖,然后整理和修改程序,從而實(shí)現(xiàn)想要的功能。本次設(shè)計(jì)采用的單片機(jī)是AT89S51,通過閱讀它的數(shù)據(jù)手冊,進(jìn)一步的了解了該單片機(jī)的功能,它功能強(qiáng)大使用方便,是一款很有前途的單片機(jī)。在設(shè)計(jì)中,我繪制了硬件電路仿真圖,用K e i l軟件編寫了硬件電路所用到的C語言程序。在仿真和編寫的過程中,我接觸到了一些元

28、器件,深入的了解并學(xué)習(xí)了這些器件的結(jié)構(gòu)和功能,提高了一定的知識水平。通過這次課程設(shè)計(jì),不僅提高了我單片機(jī)方面的知識,而且增強(qiáng)了實(shí)踐動手能力。在以后的日子里不斷地學(xué)習(xí)和積累這方面的知識,并且尋找機(jī)會盡可能地去動手實(shí)踐,提高自身的綜合素質(zhì)。 我覺得課程設(shè)計(jì)反映的是一個(gè)從理論到實(shí)際應(yīng)用的過程,但是更遠(yuǎn)一點(diǎn)可以聯(lián)系到畢業(yè)之后從學(xué)校踏上社會的一個(gè)過程,這些都是以后工作中必需的。所以我認(rèn)為這次的課程設(shè)計(jì)意義很深,和同學(xué)的共同學(xué)習(xí)配合努力的過程也很愉快,另外還要感謝老師的耐心輔導(dǎo)。盡管我們的課程設(shè)計(jì)還有很多的不足之處,但還是很感謝張老師給我們的細(xì)心指導(dǎo),同時(shí)也很感謝學(xué)校給我們安排了這次課程設(shè)計(jì),讓我真正感受

29、到設(shè)計(jì)的重要性也加強(qiáng)了我對單片機(jī)這門學(xué)科的更好的理解和學(xué)習(xí)。 楊凱在本次角度測量儀的設(shè)計(jì)實(shí)驗(yàn)中我們用AT89C51單片機(jī)、角度傳感器、控制按鍵、晶振器等構(gòu)成的,設(shè)有計(jì)時(shí)顯示,開始、復(fù)位按鍵以此實(shí)現(xiàn)精確度為0.01°。系統(tǒng)線路簡單、功能先進(jìn),性能穩(wěn)定,程序精簡。給出了詳細(xì)的電路設(shè)計(jì)方法。本系統(tǒng)是以單片機(jī)為核心,僅單片機(jī)方面知識是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu),以及針對具體應(yīng)用對象特點(diǎn)的軟件結(jié)合。因此用C語言來進(jìn)行軟件設(shè)計(jì)。通過本次設(shè)計(jì),復(fù)習(xí)鞏固我們以前所學(xué)習(xí)的數(shù)字、模擬電子技術(shù)、單片機(jī)原理及應(yīng)用等課程知識,加深對各門課程及相互關(guān)系的理解,并成功使用了Proteus電子軟件,使理論知識系統(tǒng)

30、化、實(shí)用化,系統(tǒng)地掌握微機(jī)應(yīng)用系統(tǒng)的一般設(shè)計(jì)方法,培養(yǎng)了我們的編程能力。同時(shí)在本次實(shí)驗(yàn)中我們也學(xué)到了很多在課堂中很難學(xué)到的東西, 通過這次課程設(shè)計(jì),我拓寬了知識面,鍛煉了動手能力。在本次設(shè)計(jì)中增強(qiáng)了我們對單片機(jī)理論知識的理解,學(xué)會了應(yīng)用單片機(jī)來設(shè)計(jì)、計(jì)算,提高了分析解決實(shí)際問題的能力。也為我們以后走上社會有很大的幫助。通過這兩周的課程設(shè)計(jì)我學(xué)到了很多,在這階段我查了很多資料,查閱到很多關(guān)于單片機(jī)的知識。以前對課程設(shè)計(jì)只停留在理論的基礎(chǔ)上,通過此次課設(shè)感受理論與實(shí)際的差別,看著很簡單,但在實(shí)際操作的過程中會遇到很多的問題。以前也接觸過匯編等仿真軟件,不過沒有深刻領(lǐng)會,但經(jīng)過這次課程設(shè)計(jì)使我又一次

31、學(xué)習(xí)了這種軟件的使用,并對它有了逐步了解。這次的設(shè)計(jì)學(xué)習(xí)讓我受益匪淺。時(shí)間雖然不算長,但過程是最重要的。首先,我需要考慮如何去設(shè)計(jì)一個(gè)合理的方案,通過我們查詢資料,請教老師,我學(xué)會了如何去獨(dú)立思考一個(gè)問題。后來調(diào)試及設(shè)計(jì)的過程我加深了對所學(xué)的這部分內(nèi)容的理解,理解了各部分的具體作用,最終調(diào)試出了符合設(shè)計(jì)要求的電路。很多子程序是可以借鑒書本上的,但怎樣銜接各個(gè)子程序才是關(guān)鍵的問題所在,這需要對單片機(jī)的結(jié)構(gòu)很熟悉。在課程設(shè)計(jì)的過程中也看到了我自身的不足,如原理知識掌握不實(shí),曾經(jīng)學(xué)過的知識如今卻不會應(yīng)用,希望日后學(xué)校能夠?yàn)槲覀儎?chuàng)造更多這樣自己動手實(shí)踐的課程,提供給我們更多的鍛煉機(jī)會來培養(yǎng)實(shí)踐能力,對

32、我們今后的發(fā)展,將產(chǎn)生很大的影響。 許揚(yáng)揚(yáng) 參考文獻(xiàn)1 葉盛祥. 光電位移精密測量技術(shù)M. 成都: 四川科學(xué)技術(shù)出版社, 2003.2 謝維成,楊加國等 單片機(jī)原理與應(yīng)用及C51程序設(shè)計(jì)。清華大學(xué)出版社20093 閻石 數(shù)字電子技術(shù)基礎(chǔ)。高等教育出版社20044 陸德基,范天泉.中國角度計(jì)量 50 年的進(jìn)展J.計(jì)測技術(shù),1999(6):5 6,21 5 陶衛(wèi),浦昭邦,孫運(yùn)斌.角度測量技術(shù)的發(fā)展J.激光雜志,2002(2):5 76 羅長洲, 陳良益, 孫巖, 等. 一種新型光學(xué)編碼器J . 光學(xué) 精密工程, 2003 , 11 (1) :104-108.7 劉長順, 王顯軍,等. 八矩陣超小型

33、絕對式光電編碼器J. 光學(xué) 精密工程, 2010, 18(2): 326-333.附錄:源程序#include<reg52.h>#include <intrins.h> #include <stdio.h> #include <string.h> #include <absacc.h> #include <math.h> #define uchar unsigned char#define uint unsigned int unsigned long i = 0; unsigned long k = 0; sbit E=

34、P27;/1602使能引腳sbit RW=P26;/1602讀寫引腳sbit RS=P25;/1602數(shù)據(jù)/命令選擇引腳sbit key1=P20;Sbit Q=P1.3;* 名稱 : Outside_Init()* 功能 : 外部中斷0的初始化* 輸入 : 無* 輸出 : 無void Outside_Init(void)EX0 = 1; /開外部中斷0IT0 = 1; /負(fù)邊沿觸發(fā)EA = 1; /開總中斷*名稱 : Outside_Int1()* 功能 : 外部中斷0 的中斷處理* 輸入 : 無* 輸出 : 無void Outside_Int1(void) interrupt 0using

35、 1if(Q=1) i=0;Else i=36000;* 名稱 : wcmd(uchar del)* 功能 : 1602命令函數(shù)* 輸入 : 輸入的命令值* 輸出 : 無void delays()_nop_();_nop_();_nop_();_nop_();_nop_();bit Busy(void)bit busy_flag = 0;RS = 0;RW = 1;E = 1;delays();busy_flag = (bit)(P0 & 0x80);E = 0;return busy_flag;void wcmd(uchar del)while(Busy();RS = 0;RW =

36、0;E = 0;delays();P0 = del;delays();E = 1;delays();E = 0;* 名稱 : wdata(uchar del)* 功能 : 1602寫數(shù)據(jù)函數(shù)* 輸入 : 需要寫入1602的數(shù)據(jù)* 輸出 : 無void wdata(uchar del)while(Busy();RS = 1;RW = 0;E = 0;delays();P0 = del; delays();E = 1;delays();E = 0;* 名稱 : L1602_init()* 功能 : 1602初始化* 輸入 : 無* 輸出 : 無void L1602_init(void)wcmd(0x38);wcmd(0x0c);wcmd(0x06);wcmd(0x01);

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論