




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、皖 西 學(xué) 院本科畢業(yè)論文(設(shè)計)論 文 題 目 基于單片機(jī)的角度測量儀姓名(學(xué)號) 系 別 機(jī)械與電子工程學(xué)院 專 業(yè) 電子信息科學(xué)與技術(shù) 導(dǎo) 師 姓 名 二 一三 年 五 月基于單片機(jī)的角度測量儀作 者指導(dǎo)教師摘要:本文所設(shè)計的角度測量儀是at89s51單片機(jī),它是一款低功耗,cmos8位單片機(jī),片內(nèi)含4kbytes的可系統(tǒng)編程的flash只讀程序存儲器的單片機(jī),角度測量儀利用被測物體轉(zhuǎn)動進(jìn)而帶動光電編碼器的轉(zhuǎn)軸轉(zhuǎn)動,將強(qiáng)弱變化的光信號傳輸給光電編碼器內(nèi)部的光敏電阻,經(jīng)過處理后產(chǎn)生脈沖,通過編寫程序?qū)雴纹瑱C(jī),當(dāng)來一個脈沖下降沿沿時,定時器中斷,來一個中斷則脈沖數(shù)加一,進(jìn)而將脈沖量轉(zhuǎn)換成數(shù)
2、字量,最后通過液晶顯示屏直接顯示所測出的角度。本文同時分析了角度測量儀的硬件組成,設(shè)計原理,給出了設(shè)計程序。關(guān)鍵字:角度 光電編碼器 脈沖 單片機(jī) 顯示屏abstract: in this paper, the design of the angle measuring instrument is at89s51, it is a low power consumption, cmos8 single-chip computer, tablet containing 4 kbytes of single-chip microcomputer system programming flash r
3、ead-only program memory storage, use photoelectric encoder shaft rotation angle measuring instrument, in according to the relation of the angular velocity and linear velocity, through the photoelectric conversion to convert geometry on the output shaft displacement to pulse, by writing program to im
4、port single chip to convert pulse quantity to digital quantity, at last, through measure the angle of the lcd screen display directly. angle measuring instrument at the same time, this paper analyses the hardware composition, design principles, design procedure is given.key words : angle photoelectr
5、ic encoder pulse single-chip computer screens目錄 1 緒論41.1 基于單片機(jī)的角度測量儀的系統(tǒng)簡介41.2基于單片機(jī)的角度測量儀課題的研究意義52系統(tǒng)的基本構(gòu)成62.1系統(tǒng)的框圖62.2光電編碼器的原理62.3 at89s51單片機(jī)的原理92.4液晶顯示屏原理113硬件部分的設(shè)計143.1 .脈沖數(shù)與角度的關(guān)系143.2光電編碼器與單片機(jī)的接口技術(shù)143.3系統(tǒng)仿真框圖154軟件部分的設(shè)計164.1軟件部分總程序框圖164.2中斷程序流程164.2.1外部0 中斷164.2.2定時器中斷174.3系統(tǒng)電路源程序18總結(jié)24致謝25參考文獻(xiàn)261
6、緒論 角度測量是計算科學(xué)的重要組成部分隨著發(fā)產(chǎn)和科學(xué)的不斷發(fā)展,角度測量越來越廣泛應(yīng)用于機(jī)械,光學(xué),航空航天,航海等各個領(lǐng)域,技術(shù)水平和準(zhǔn)確度也在不斷提高。國內(nèi)外許多科學(xué)研究所已經(jīng)先后研制出多種測角儀器,來滿足當(dāng)前工業(yè),商業(yè),軍事等各方面的需求。隨著科學(xué)技術(shù)的不斷發(fā)展,測角技術(shù)的精度不斷提高,測量領(lǐng)域也不斷擴(kuò)大,隨著數(shù)字化的發(fā)展,使測角技術(shù)實(shí)現(xiàn)自動化,測角的方法也越來越多。角度是一個重要的幾何量計量參數(shù),它不僅應(yīng)用于軍事領(lǐng)域還運(yùn)用于商業(yè)領(lǐng)域和工業(yè)領(lǐng)域,而我國的角度測量技術(shù)也經(jīng)過了幾十年的發(fā)展,隨著21實(shí)際科學(xué)技術(shù)的不斷發(fā)展,傳統(tǒng)的角度計量工具框式水平儀和機(jī)械式測量方法將被數(shù)字角度測量儀所取代,
7、數(shù)字角度測量儀具有性能穩(wěn)定,工作可靠,測量精確度高,使用簡單,因此一個電子檢測,數(shù)字顯示的現(xiàn)代化角度測量時代即將開始。 近年來工業(yè)上常用的測角方法有機(jī)械式測角技術(shù)、激光測角技術(shù)和光學(xué)測角技術(shù)。機(jī)械式技術(shù)由于研究較早,技術(shù)已經(jīng)非常成熟。其優(yōu)點(diǎn)是簡單、成本低,但是其設(shè)備體積龐大,測量延時大、精度低,多數(shù)情況下不能實(shí)時動態(tài)測量,而且不能實(shí)施非接觸式測量,所以不合適高精度的角度測量。光學(xué)測角技術(shù)是隨著新型光電材料和器件的出現(xiàn)而發(fā)展起來的,光電編碼器方法測角具有體積小,重量輕,品種多,分辨力高,承載能力強(qiáng),性能穩(wěn)定,可靠使用壽命長等諸多優(yōu)點(diǎn)。1.1 基于單片機(jī)的角度測量儀的系統(tǒng)簡介 光電編碼器是集光,機(jī)
8、,電于一體的轉(zhuǎn)速位移傳感器,當(dāng)編碼器轉(zhuǎn)軸帶動光柵圓盤旋轉(zhuǎn)時,發(fā)光元件發(fā)出的光被光柵盤的狹縫切割成斷斷續(xù)續(xù)的光線,并被接收元件接收產(chǎn)生初始信號,該信號經(jīng)后繼電路處理后輸出脈沖信號,該脈沖信號傳輸給at89s51單片機(jī),利用at89s51單片機(jī)內(nèi)部的計數(shù)器實(shí)現(xiàn)對光電編碼器輸出脈沖的加減可逆計數(shù),而輸出的脈沖數(shù)與角度值成正比,通計算脈沖數(shù)進(jìn)而算出角度值。角度測量儀利用單片機(jī)算出脈沖數(shù),用液晶顯示屏讀取光電編碼器測出的角度值。1.2基于單片機(jī)的角度測量儀課題的研究意義 角度測量儀是某控制系統(tǒng)中瞄準(zhǔn)裝置的關(guān)鍵部件。在以往的控制系統(tǒng)中,多數(shù)都是僅憑設(shè)備操作人員眼睛瞄準(zhǔn)指定目標(biāo),然后作出相應(yīng)的控制,這樣就帶
9、來一系列問題,如操作人員的經(jīng)驗(yàn)、瞄準(zhǔn)的精確的都肯能帶來一些較大的誤差。而機(jī)械式測角利用分度盤,而分度盤用不能無限增加,從而受到限制,利用角度測量儀能夠可以很方便的顯示前后的角度差距,對工人的專業(yè)要求降低,可以提高生產(chǎn)效率,有助于產(chǎn)品質(zhì)量和安全提高。因此研究一種適用的角度測量方法是必要的。 電子技術(shù)在工程測量中已經(jīng)很普遍,相對于傳統(tǒng)的測量方法,光電編碼器在顯示、精度、成本上占很大的優(yōu)勢。而且隨著傳感器技術(shù)和測量方法的發(fā)展,對于一些物理量的測量變得更方便。在數(shù)據(jù)管理上,也可以將數(shù)據(jù)測量出,通過通信的方式傳送到上位機(jī),有助于產(chǎn)品和加工過程中的數(shù)據(jù)統(tǒng)計分析。電子技術(shù)的應(yīng)用能夠和企業(yè)的自動化系統(tǒng)配合,作
10、為整個企業(yè)自動化生產(chǎn)的一個子系統(tǒng)。本項目設(shè)計就是從電子應(yīng)用出發(fā),希望借助于將電子測量技術(shù),將該方法應(yīng)用到工程實(shí)際生產(chǎn)中,提供一種低成本、效率高、精度高的角度測量方法。2系統(tǒng)的基本構(gòu)成 2.1系統(tǒng)的框圖 lcd1602x1 p0,p2x2p1.3p1.4int1int0 該系統(tǒng)主要由光電編碼器,at89s51單片機(jī),led指示燈和1602液晶顯示屏等組成,系統(tǒng)基本框圖如2-1所示d qcp -q光電編碼器 a b z 圖2-1 系統(tǒng)組成基本框圖2.2光電編碼器的原理光電式碼盤亦稱脈沖式角度數(shù)字編碼器, 結(jié)構(gòu)示意圖如圖2-2所示。 在一個圓盤上按碼道開有相等角距的縫隙, 在碼道上分為透明區(qū)和不透明
11、區(qū),分別代表“1”和“0”, 相當(dāng)于接觸式碼盤的導(dǎo)電區(qū)和不導(dǎo)電區(qū)。光電式碼盤的優(yōu)點(diǎn)是無觸點(diǎn)磨損, 因而允許高轉(zhuǎn)速; 每條縫隙寬度可做得很小, 所以精度和分辨高 。圖2-2-1 光碼盤 光電編碼器,是一種通過光電轉(zhuǎn)換將輸出軸上的機(jī)械幾何位移量轉(zhuǎn)換成脈沖或數(shù)字量的傳感器,是目前應(yīng)用最多的傳感器。一般的光電編碼器主要由光柵盤和光電檢測裝置組成。而光柵碼盤圖案主要由零位標(biāo)記碼道和循環(huán)碼道組成,零位標(biāo)記碼道稱作參考點(diǎn)碼道,用來檢測被物體角度的基準(zhǔn)點(diǎn)。有時需要用光掃描將近360度來尋找絕對基準(zhǔn)點(diǎn)。循環(huán)碼道由一系列相互交錯的透明和不透明的光柵線條組成。零位標(biāo)記碼道由幾個位置相互分立的光柵組成。 當(dāng)光柵盤隨被
12、測工作軸一起轉(zhuǎn)動時,每轉(zhuǎn)過一個縫隙,光電管就會感受到一次光線的明暗變化,然后將明暗光線發(fā)送給光敏電阻,使光電管的電阻值改變,這樣就把光線的明暗變化轉(zhuǎn)變成電信號的強(qiáng)弱變化,而這個電信號的強(qiáng)弱變化近似于正弦波的信號,經(jīng)過整形和放大等處理,變換成脈沖信號。通過計數(shù)器計量脈沖的數(shù)目,即可測定旋轉(zhuǎn)運(yùn)動的角度;其原理如圖2-2-2所示。此外通過有一定相位差的兩組增量式脈沖信號可以檢測出光電編碼器的轉(zhuǎn)動方向。光電編碼器測角體積小,承載能力強(qiáng),數(shù)字化程度高,性能可靠,使用時間長。圖2-2-2 光電編碼器增量式光電編碼器由主碼盤、鑒向盤、光敏元件和光電變換器組成。在主碼盤(光電盤)周邊上刻有距離相等的輻射狀窄縫
13、,形成均勻分布的透明區(qū)和不透明區(qū)。而光柵碼圖案主要由循環(huán)碼道和零位標(biāo)記碼道組成,循環(huán)碼道由一系列均勻交錯的透明區(qū)和不透明區(qū)光柵線條組成,零位標(biāo)記碼道由幾個距離相等的光柵組成零位標(biāo)記碼道。由于碼道信號的讀取采用的是光電掃描原理,對測量基準(zhǔn)的掃描是非接觸的,因此沒有磨損。如果一個光柵的刻線與另一個光柵的狹縫對齊則光線無法通過,如果一個光柵的透明區(qū)剛好與另一光柵的透明區(qū)在同一條直線上時則光線剛好通過,利用光電掃描法可檢測到非常精細(xì)的柵線,掃描產(chǎn)生等同于柵線同期輸出的脈沖信號。工作時,主碼盤與轉(zhuǎn)軸一起轉(zhuǎn)動,鑒向盤靜止不動,當(dāng)光電碼盤隨工作軸一起轉(zhuǎn)動時,光線透過光電碼盤和光欄板狹縫,形成光信號。光敏元件
14、接收光信號信號,經(jīng)過處理后轉(zhuǎn)換成脈沖信號,然后由單片機(jī)來計脈沖數(shù),最后由液晶顯示屏直接顯示角度量。光電編碼器的測角精確度與碼盤圓周上的透光槽數(shù) n有關(guān),能分辨的角度 為 360/n,分辨率為 1/n 。例如:型號為zsp52系列的增量式光電式編碼器,碼盤邊緣的狹縫條紋數(shù)為 36000 個,則能分辨的最小角度=360/36000=0.01。為了判斷碼盤旋轉(zhuǎn)時是順勢正還是逆時針,必須在光欄板上設(shè)置兩個透明區(qū),兩者之間相差4/1截距,并設(shè)置了兩組對應(yīng)的光敏元件,由光敏元件來得出高低電平,進(jìn)而傳給單片機(jī)。當(dāng)檢測對象旋轉(zhuǎn)時,光碼盤會被帶動旋轉(zhuǎn),進(jìn)而光源一會穿過透明區(qū),一會被遮擋,就這樣循環(huán)反復(fù),光電編碼
15、器便會輸出一組脈沖信號.光電編碼器正反轉(zhuǎn)根據(jù) a、b 信號的波形及其時序關(guān)系得出,a的高電平先于b出現(xiàn),則判斷為正轉(zhuǎn),b的高電平先于a出現(xiàn)時則判斷為反轉(zhuǎn)。同時a 和 b 輸出的脈沖個數(shù)與被測角位移變化量成線性關(guān)系,因此,通過對脈沖個數(shù)計數(shù)就能計算出相應(yīng)的角位移。當(dāng)我們在測量被測物體的旋轉(zhuǎn)角度時,我們還要確定碼盤轉(zhuǎn)動位置的起始點(diǎn)即絕對位置,因此我們必須要設(shè)定一個基準(zhǔn)點(diǎn),這基準(zhǔn)點(diǎn)就是光柵碼盤中的“零位標(biāo)志槽”,當(dāng)光柵碼盤旋轉(zhuǎn)時,零位標(biāo)志槽也跟著旋轉(zhuǎn),當(dāng)零位標(biāo)志槽旋轉(zhuǎn)到與光柵板對齊的時候,光線恰好穿過,傳輸給光敏電阻,產(chǎn)生一個高電平,到傳過去之后,光敏電阻一直處于低電平,所以只有旋轉(zhuǎn)一圈才能產(chǎn)生一個
16、脈沖,且是零位標(biāo)志槽與光柵板對齊的時候,所以通過檢測這個脈沖就能確定碼盤轉(zhuǎn)動的起始點(diǎn),再根據(jù) a 和 b 之間的這種關(guān)系正確地解調(diào)出被測機(jī)械的旋轉(zhuǎn)方向和旋轉(zhuǎn)角位移即就是所謂的脈沖辨向和計數(shù)。通過求出脈沖數(shù)得出光電編碼器轉(zhuǎn)了多少角度,最后通過光電編碼器齒輪與被測物體齒輪關(guān)系求出被測物體旋轉(zhuǎn)的角度。2.3 at89s51單片機(jī)的原理at89s51 為 atmel 所生產(chǎn)的可電氣燒錄清洗的 8051 相容單芯片,其內(nèi)部程序代碼容量為4kb(一)、at89s51主要功能列舉如下:8位cpu片內(nèi)帶振蕩器,頻率范圍1.2mhz12mhz片內(nèi)帶128b的數(shù)據(jù)存儲器。片內(nèi)帶4kb的程序存儲器程序存儲器的尋址空
17、間為64kb128個用戶為尋址空間21個字節(jié)特殊功能寄存器4個8 位并i/o接口:p0,p1,p2,p3兩個16位定時/計數(shù)器兩個優(yōu)先級別的5個中斷源1個全雙工的串行i/o接口,可多機(jī)通信111條 指令,含乘法指令和除法指令片內(nèi)采用總線結(jié)構(gòu)有較強(qiáng)的位處理能力采用+5v電源(一)、at89s51各引腳功能介紹:芯片共有40個引腳,引腳的排列順序?yàn)閺目啃酒娜笨冢ㄒ娪覉D)左邊那列引腳逆時針數(shù)起,依次為1、2、3、4。40,其中芯片的1腳頂上有個凹點(diǎn)(在單片機(jī)的40個引腳中,電源引腳2根,外接晶體振蕩器引腳2根,控制引腳4根以及4組8位可編程i/o引腳32根。1、主電源引腳(2根)vcc單片機(jī)的第4
18、0引腳,電源輸入,接5v電源gnd單片機(jī)的第20引腳,為接地線2、外接晶振引腳(2根)xtal1為單片機(jī)的第19引腳,作用是片內(nèi)振蕩電路的輸入端xtal2單片機(jī)的第20引腳,為片內(nèi)振蕩電路的輸出端3、控制引腳(4根)rst/vpp單片機(jī)的第9引腳,作用是復(fù)位引腳,引腳上出現(xiàn)2個機(jī)器周期的高電平將使單片機(jī)復(fù)位。ale/prog單片機(jī)的第30引腳,為地址鎖存允許信號psen單片機(jī)的第29引腳,為外部存儲器讀選通信號ea/vpp單片機(jī)的第30引腳,程序存儲器的內(nèi)外部選通,如果接的是低電平則外部程序存儲器讀指令,如果接高電平則內(nèi)部程序存儲器讀指令。 芯片實(shí)物圖片 芯片引腳功能4、可編程輸入/輸出引腳(
19、32根) at89s51單片機(jī)有4組8位的可編程i/o口,分別位p0、p1、p2、p3口,每個口有8根引腳,共32根。每一根引腳都可以編程,比如用來控制電機(jī)、交通燈、霓虹燈等。po口單片機(jī)的第32引腳到第39引腳,為8位雙向i/o口線,名稱為p0.0p0.7p1口單片機(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等引腳和
20、89s51兼容,只是個別引腳功能定義不同。port0(p0.0p0.7):端口0是一個8位寬的開路汲極(open drain)雙向輸出入端口,共有8個位,p0.0表示位0,p0.1表示位1,依此類推。其他三個i/o端口(p1、p2、p3)則不具有此電路組態(tài),而是內(nèi)部有一提升電路,p0在當(dāng)做i/o用時可以推動8個ls的ttl負(fù)載。 端口2是具有內(nèi)部提升電路的雙向i/o端口,每一個引腳可以推動4個ls的ttl負(fù)載,若將端口2的輸出設(shè)為高電平時,此端口便能當(dāng)成輸入端口來使用。p2除了當(dāng)做一般i/o端口使用外。端口1也是具有內(nèi)部提升電路的雙向i/o端口,其輸出緩沖器可以推動4個ls ttl負(fù)載,同樣地
21、若將端口1的輸出設(shè)為高電平,便是由此端口來輸入數(shù)據(jù)。port3(p3.0p3.7):端口3也具有內(nèi)部提升電路的雙向i/o端口,其輸出緩沖器可以推動4個ttl負(fù)載。其引腳分配如下:口線信號功能p3.0rxd串行口數(shù)據(jù)輸入p3.1txd串行口數(shù)據(jù)輸出p3.2into外部中斷0輸入p3.3int1外部中斷1輸入p3.4t0定時計數(shù)器0的外部輸入p3.5t1定時計數(shù)器1的外部輸入p3.6wr外部數(shù)據(jù)存儲器寫選通控制輸出p3.7rd外部數(shù)據(jù)存儲器讀選通控制輸出2.4液晶顯示屏原理在數(shù)字電路中,所有的數(shù)據(jù)都是以0和1保存的,對lcd控制器進(jìn)行不同的數(shù)據(jù)操作,可以得到不同的結(jié)果。對于顯示英文操作,只需要8位
22、(一字節(jié))即可。而對于中文,卻要用到6000以上。因此我們將ascii表的高128個很少用到的數(shù)值以兩個為一組來表示漢字,而剩下的低128位則留給英文字符使用。那么,得到了漢字的內(nèi)碼后,還僅是一組數(shù)字,如果要顯示出來這就涉及到文字的字模,字模雖然也是一組數(shù)字,但它的意義卻與數(shù)字的意義有了根本的變化,它是用數(shù)字的各位信息來記載英文或漢字的形狀,如英文的a在字模的記載方式如圖2-4-1所示,而中文的“你”在字模中的記載卻如圖2-4-2所示。液晶顯示屏如2-4-3所示。圖2-4-1“a”字模圖圖2-4-2“你”字模圖lcd1602已很普遍了,具體介紹我就不多說了,市面上字符液晶絕大多數(shù)是基于hd44
23、780液晶芯片的,控制原理是完全相同的,因此hd44780寫的控制程序可以很方便地應(yīng)用于市面上大部分的字符型液晶。字符型lcd通常有14條引腳線或16條引腳線的lcd,多出來的2條線是背光電源線vcc(15腳)和地線gnd(16腳),控制原理與14腳的lcd完全一樣,定義如下表所示引腳符號功能說明1vss一般接地2vdd接電源(+5v)3vo液晶顯示器對比度調(diào)整端,對比度最弱時是接正電源,然而接地電源時它的對比度卻最高4rsrs為寄存器選擇,選擇數(shù)據(jù)寄存器則應(yīng)選用高電平1,低電平0時則選擇指令寄存器5r/wr/w為讀寫信號線,高電平(1)時進(jìn)行讀操作,低電平(0)時進(jìn)行寫操作。6ee(或en)
24、端為使能(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ù)總線4位12db5底4位三態(tài)、雙向數(shù)據(jù)總線5位13db6底4位三態(tài)、雙向數(shù)據(jù)總線6位14db7高4位三態(tài)、雙向數(shù)據(jù)總線7位(最高位)(也是busyflag)15bla背光電源正極16blk背光電源負(fù)極字符型lcd的引腳定義圖2-4-3 1602液晶顯示屏3硬件部分的設(shè)計3.1 .脈沖數(shù)與角度的關(guān)系zsp52系列增量式光電編碼器的碼盤是由36000個狹縫組成,當(dāng)齒輪旋轉(zhuǎn)一周,
25、會經(jīng)過36000個狹縫,主碼盤邊緣的透光槽數(shù)為36000 個,會產(chǎn)生36000個脈沖,旋轉(zhuǎn)一周是360度,則能分辨的最小角度=360/36000=0.01,所以每個狹縫所占用的角度是0。01而光電編碼器的主碼盤在旋轉(zhuǎn)時,每個狹縫會產(chǎn)生一個脈沖,所以當(dāng)光電編碼器產(chǎn)生一個脈沖時則表明物體已經(jīng)旋轉(zhuǎn)0.01度,所以根據(jù)單片機(jī)所得的脈沖數(shù)來計算光電編碼器旋轉(zhuǎn)的角度。而脈沖數(shù)的計算是通過編寫程序?qū)隺t89s51單片機(jī),利用單片機(jī)的中斷,來一個中斷,脈沖數(shù)加一個。設(shè)角度為,脈沖數(shù)利用公式 角度=脈沖數(shù)*0.01 ,最后直接通過1602液晶顯示屏直接顯示出度數(shù)即為被測物體的旋轉(zhuǎn)角度。編碼器和被測物體的齒輪如
26、圖3.1.2所示。圖3-1-2 光電編碼器與被測物體齒輪3.2光電編碼器與單片機(jī)的接口技術(shù) 在光電編碼器與單片機(jī)連接時,我們將a,b兩個接線口與d觸發(fā)器相連接,將絕對位置基準(zhǔn)點(diǎn)z與單片機(jī)的中斷into鏈接,將a,b相與起來與中斷int1連接,當(dāng)光電編碼器的轉(zhuǎn)軸旋轉(zhuǎn)時,a,b兩個接口會隨著光電編碼器的旋轉(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ā)時,則中斷into中斷,如果此時轉(zhuǎn)軸正轉(zhuǎn),q=1,則脈沖數(shù)清0,則從此點(diǎn)開始作為基準(zhǔn)點(diǎn)測量角度,如果此時轉(zhuǎn)軸反轉(zhuǎn),q=0,則脈沖數(shù)達(dá)到滿量程,如
27、果一圈36000個脈沖,則此時脈沖數(shù)為36000個。在中斷過程中int0的中斷級別比int1的中斷級別高。光電編碼器與單片機(jī)接口如圖3-2-1所示。 圖3-2-1,光電編碼器與單片機(jī)的連接3.3系統(tǒng)仿真框圖角度測量儀啟動工作后,單片機(jī)的工作過程是:系統(tǒng)啟動后,初始化液晶顯示屏1602,然后再進(jìn)行定時器初始化,讀取光電編碼器獲取的角度值,再將當(dāng)前的角度值轉(zhuǎn)換成密位值顯示在數(shù)碼屏,如果測下一次的角度值,將單片機(jī)進(jìn)行復(fù)位,進(jìn)入下一個工作循環(huán)。圖3-3 系統(tǒng)仿真圖4軟件部分的設(shè)計4.1軟件部分總程序框圖開始初始化1602液晶顯示屏定時器初始化中斷初始化脈沖數(shù)i值加一顯示角度值 結(jié)束 4.2中斷程序流程
28、4.2.1外部0 中斷當(dāng)光電編碼器的基準(zhǔn)點(diǎn)有光通過時,會產(chǎn)生一個脈沖,這個脈沖信號接入單片機(jī)的int0引腳,當(dāng)這個脈沖來一個下降沿觸發(fā)時,則進(jìn)行外部中斷,脈沖數(shù)i被清0 ,重新計數(shù)。開始外部中斷0初始化外部中斷0脈沖數(shù)i清0 中斷返回 圖4-2-1 外部中斷0流程圖4.2.2定時器中斷 當(dāng)光電編碼器隨著物體旋轉(zhuǎn)時會產(chǎn)生脈沖,將產(chǎn)生脈沖作為輸入信號傳輸給單片機(jī),當(dāng)定時器用于計數(shù)時,加法計數(shù)器對單片機(jī)芯片引腳t0上的輸入脈沖進(jìn)行計數(shù),每來一個輸入脈沖,加法計數(shù)器加一,當(dāng)光電編碼器旋轉(zhuǎn)時,最大計數(shù)量為36000,然后進(jìn)行外部中斷0 ,對計數(shù)值清0,重新計數(shù)。 開始定時器0初始化,置初值 定時器中斷
29、脈沖數(shù)i值加一 結(jié)束 圖4-2-2 定時器中斷流程圖4.3系統(tǒng)電路源程序#include#include #include #include #include #include #define uchar unsigned char#define uint unsigned int unsigned long i = 0; unsigned long k = 0; sbit e=p27;/1602使能引腳sbit rw=p26;/1602讀寫引腳sbit rs=p25;/1602數(shù)據(jù)/命令選擇引腳sbit key1=p20;* 名稱 : outside_init()* 功能 : 外部中斷0,1
30、 的初始化* 輸入 : 無* 輸出 : 無void outside_init(void)ex0 = 1; /開外部中斷0it0 = 1; /負(fù)邊沿觸發(fā)ea = 1; /開總中斷*名稱 : outside_int1()* 功能 : 外部中斷0 的中斷處理* 輸入 : 無* 輸出 : 無void outside_int1(void) interrupt 0using 1i=0;* 名稱 : wcmd(uchar del)* 功能 : 1602命令函數(shù)* 輸入 : 輸入的命令值* 輸出 : 無void delays()_nop_();_nop_();_nop_();_nop_();_nop_();b
31、it 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 = 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)w
32、hile(busy();rs = 1;rw = 0;e = 0;delays();p0 = del; delays();e = 1;delays();e = 0;* 名稱 : l1602_init()* 功能 : 1602初始化,請參考1602的資料* 輸入 : 無* 輸出 : 無void l1602_init(void)wcmd(0x38);wcmd(0x0c);wcmd(0x06);wcmd(0x01);* 名稱 : l1602_string(uchar hang,uchar lie,uchar *p)* 功能 : 改變液晶中某位的值,如果要讓第一行,第五個字符開始顯示ab cd ef ,
33、調(diào)用該函數(shù)如下 l1602_string(1,5,ab cd ef;)* 輸入 : 行,列,需要輸入1602的數(shù)據(jù)* 輸出 : 無void l1602_string(uchar hang,uchar lie,uchar *p)uchar a,b=0;if(hang = 1) a = 0x80;if(hang = 2) a = 0xc0;a = a + lie - 1;while(1)wcmd(a+);if(*p = 0)|(b=16) break;b+;wdata(*p);p+;* 名稱 : delay_1ms()* 功能 : 延時子程序,延時時間為 1ms * x* 輸入 : x (延時一毫
34、秒的個數(shù))* 輸出 : 無void delay(uint i)uint x,j;for(j=0;ji;j+)for(x=0;x=148;x+);* 名稱 : time0_init()* 功能 : 定時器的初始化,11.0592mz晶振,8ms* 輸入 : 無* 輸出 : 無void time0_init()tmod = 0x06;th0 = 0xff;tl0 = 0xff;ie = 0x82;tr0 = 1; * 名稱 : time0_int()* 功能 : 定時器中斷,中斷中實(shí)現(xiàn) count 加一* 輸入 : 無* 輸出 : 無void time0_int() interrupt 1i+;*
35、 名稱 : main()* 功能 : 主函數(shù)* 輸入 : 無* 輸出 : 無void main()uchar tabpl9;l1602_init();time0_init(); outside_init();while(1) k=i;tabpl8 = k% 10+0;tabpl7 = (k /10)%10+0;tabpl5 = (k /100)%10+0;tabpl4 = (k /1000)%10+0;tabpl3 = (k /10000)%10+0;tabpl2 = (k /100000)%10+0;tabpl1 = (k /1000000)%10+0;tabpl0 = (k /10000000)%10+0;tabpl6 = .; wcmd(0x01); l1602_string(1,1,tabpl); if (key1=0) delay(2); if(key1=0) i=0; 總結(jié)經(jīng)過幾個月的時間,基于單片機(jī)的角度測量儀的設(shè)計終于順利完成了,其中包含著快樂,也有辛酸。我選的設(shè)計題目是“基于單片機(jī)的角度測量儀設(shè)計”,大家都覺得這個題目比較簡單,其實(shí)不然,做了之后,發(fā)現(xiàn)設(shè)計電路雖然簡單,但我認(rèn)為它真正的困難的部分是程序的設(shè)計,不過最終經(jīng)過我的努力還是將它順利完成了,我剛拿到論文題目時,硬件電路不知如何下
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度股東借款轉(zhuǎn)增注冊資本及利潤分配調(diào)整合同
- 2025年度電力線路運(yùn)維風(fēng)險管理與合同
- 2025年度電子產(chǎn)品退貨換貨服務(wù)合同范本
- 二零二五年度航空航天項目三方合同違約責(zé)任說明
- 公共安全應(yīng)急救援預(yù)案制定指南
- 數(shù)據(jù)中心運(yùn)維服務(wù)合同及設(shè)備維護(hù)管理條款
- 中學(xué)生數(shù)學(xué)史故事征文
- 產(chǎn)品采購及供應(yīng)保障協(xié)議合同
- 企業(yè)信息化建設(shè)實(shí)施細(xì)則
- 企業(yè)資源共享合作協(xié)議書
- 泰州職業(yè)技術(shù)學(xué)院單招《英語》考試參考題庫(含答案)
- 《食品衛(wèi)生與安全》課程標(biāo)準(zhǔn)
- 第7課《誰是最可愛的人》公開課一等獎創(chuàng)新教學(xué)設(shè)計-2
- 骨盆骨折小講課護(hù)理課件
- 2016-2023年江蘇衛(wèi)生健康職業(yè)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年考點(diǎn)試題甄選合集含答案解析
- 渣土車司機(jī)安全培訓(xùn)
- 燃?xì)夤鞠琅嘤?xùn)課件
- 成事的時間管理
- 江西省2023年高等職業(yè)院校單獨(dú)招生考試-江西電力職業(yè)技術(shù)學(xué)院-樣卷
- 汽油安全技術(shù)說明書(MSDS)
- 眼球摘除患者的護(hù)理病例討論
評論
0/150
提交評論