基于微型固態(tài)陀螺轉速儀的設計本科畢業(yè)設計_第1頁
基于微型固態(tài)陀螺轉速儀的設計本科畢業(yè)設計_第2頁
基于微型固態(tài)陀螺轉速儀的設計本科畢業(yè)設計_第3頁
基于微型固態(tài)陀螺轉速儀的設計本科畢業(yè)設計_第4頁
基于微型固態(tài)陀螺轉速儀的設計本科畢業(yè)設計_第5頁
已閱讀5頁,還剩46頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

信息工程學院畢業(yè)設計論文50--摘要大規(guī)模集成電路的出現(xiàn)極大地促進了微型計算機的快速發(fā)展,使我們的生活發(fā)生了翻天覆地的變化。正如微型計算機的出現(xiàn)給現(xiàn)代科技的發(fā)展注入了新鮮的血液,單片機技術的發(fā)展也給工業(yè)測控領域帶來了新的技術變革?,F(xiàn)在,在各個技術領域,單片機都得到了廣泛的應用。單片機擁有體積小、重量輕、抗干擾能力強、對環(huán)境要求不高、高性價比、開發(fā)較為容易,等諸多優(yōu)點。它已走入千家萬戶,不論是洗衣機、電冰箱、空調、還是汽車都可以見到它的身影。所以,單片機技術的發(fā)展水平已經成為衡量一個國家工業(yè)發(fā)展水平的重要參考。陀螺轉速測量儀是單片機的簡單應用。它利用陀螺角速度傳感器來采集物體轉速的實時數(shù)據,并利用LED數(shù)碼管作動態(tài)掃描從而顯示實時轉速。該陀螺轉速測量儀具有測量精度高,抗干擾性強,適用范圍廣等多個優(yōu)點,擁有廣闊的市場應用前景。關鍵詞:微型計算機;單片機;陀螺;轉速儀AbstractLSIappearsgreatlypromotedtherapiddevelopmentofthemicrocomputer,sothatourlifehasundergoneenormouschanges.Astheemergenceofthemicrocomputertothedevelopmentofmodernscienceandtechnologyhasinjectedfreshblood,butalsotothedevelopmentofSCMtechnologyinthefieldofindustrialmeasurementandcontroltechnologyhasbroughtnewchanges.Now,invarioustechnicalfields,microcontrollershavebeenwidelyused.SCMhassmallsize,lightweight,anti-interferenceability,lessdemandingontheenvironment,highcost,relativelyeasytodevelop,andmanyotheradvantages.Ithasenteredeveryhousehold,whetherwashingmachines,refrigerators,airconditioners,orcarcanseeitsshadow.Therefore,thelevelofdevelopmentofSCMtechnologyhasbecomethemeasureofacountry'slevelofindustrialdevelopmentanimportantreference.GyroSpeedGaugeissimplemicrocontrollerapplications.Itusesgyroangularvelocitysensortocollectreal-timedataoftheobjectspeed,andmakeuseofdigitalLEDtodisplayreal-timedynamicscanningspeed.Thegyrospeedmeasurementinstrumenthasanumberofadvantagesofhighprecision,stronganti-interference,wideapplication,hasabroadmarket.Keywords:microcomputers;microcontroller;gyroscope;Tachometer目錄1.緒論 -4-1.1課題研究的背景及意義 -4-1.2國內外的研究現(xiàn)狀 -4-2.STC89C52單片機概述 -5-2.1STC89C52的基本知識 -5-2.1.1特性: -5-2.1.2基本參數(shù) -6-2.1.3引腳排列和基本功能 -6-2.2單片機的應用 -8-3.傳感器模塊和顯示模塊 -9-3.1傳感器模塊 -9-3.2液晶顯示模塊 -11-4.整體設計 -13-4.1硬件部分設計 -13-4.1.1電源部分 -13-4.1.2復位電路 -13-4.1.3晶振電路 -14-4.2軟件部分設計 -15-4.2.1定時器的初始化 -15-4.2.2中斷允許控制 -16-4.2.3程序流程圖 -17-5.系統(tǒng)調試 -18-5.1硬件調試 -18-5.2軟件調試 -18-總結 -19-附錄一:元器件清單 -20-附錄二:硬件部分電路圖 -21-附錄三:軟件程序 -22-1.緒論1.1課題研究的背景及意義隨著微型計算機技術的發(fā)展和不斷進步,利用單片機來設計的智能電子式轉速表已經越來越適合市場的需求。要想提高轉速測量的精度,我們必須使用數(shù)字測速的方法。不管在在日常的生活還是工程實踐中我們往往經常遇到需要測量轉速的場合。例如對電機轉速的測量,汽車發(fā)動機轉速的測量等等,這越來越需要我們能有一個更加方便更加準確的轉速測量儀。隨著微型計算機的不斷發(fā)展,單片機被越來越多的用于制作智能式的數(shù)字式轉速測量儀,測量轉速時,轉速測量結果被直接顯示在LED上,這樣更加方便更加直觀,也提高了測量儀的抗干擾性,操作簡單且小巧易攜。市場上的轉速測量儀器可分為以下五類:1.離心式轉速表,2.磁性式轉速表,3.電動式轉速表,4.磁電式轉速表,5.電子式轉速表我選擇的研究課題是基于微型固態(tài)陀螺轉速儀的設計。具體就是利51單片機和陀螺角速度傳感器設計出一種智能化的電子式轉速測量儀。1.2國內外的研究現(xiàn)狀目前國內已經研制出了技術相當成熟的基于單片機的智能轉速測量系統(tǒng)。主要是51系列單片機的應用,目前已經大量投放市場。經過大量實踐證明,智能轉速測量儀相比于傳統(tǒng)的機械式轉速表,它們不僅測量精度高,而且操作簡單,小巧易攜,而且抗干擾性能優(yōu)越,使轉速的測量更加靈活便捷。目前流行于國內的的技術成熟的轉速測量系統(tǒng)主要有光電式轉速測量儀,也有少量的激光轉速儀,但是技術不夠成熟。它們無一不是使用單片機作為智能芯片,來控制測量系統(tǒng)。國外研究相比國內已經有了更大的進步,他們目前已經開發(fā)出了數(shù)字式轉矩轉速測量儀,激光轉速測量儀等多種測量精度更高更加智能化的轉速測量系統(tǒng)。而且技術更加成熟,特別是單片機開發(fā)技術,已經遠遠超越我們。2.STC89C52單片機概述2.1STC89C52的基本知識該芯片是STC公司開發(fā)的一款功能強大,性價比優(yōu)良的CMOS8位微控制器,它具有可編程Flash存儲器,大小為8k。STC公司在設計上繼續(xù)沿用了經典的MCS-51內核,但在此基礎上做了大量的改善,使得 STC89C52擁有比51系列單片機更為強大的功能。在電子設計中,使用STC89C52作為控制芯片相比于51系列單片機來說能獲得更高的性價比,它可以使你的設計更加靈活,更加合理。因此我決定使用STC89C52單片機作為控制芯片。STC89C52單片機不僅擁有3個16位定時器/計數(shù)器、8k字節(jié)可編程Flash、32位I/O口線、內置4KBEEPROM,還有看門狗定時器、512字節(jié)RAM、一個7向量4級中斷結構、MAX810復位電路、4個外部中斷、全雙工串行口等結構。這些使得該芯片具有超強的控制能力和可開發(fā)潛質,可以完成復雜的運算,邏輯和通信功能。另外STC89C52還可以實現(xiàn)0Hz靜態(tài)邏輯操作,它還擁有兩種可選擇的節(jié)電模式。第一種:空閑模式。在這種模式下,CPU不再工作,但是定時器和計數(shù)器、RAM、串口、中斷部分仍可以繼續(xù)工作。第二種:掉電保護模式。在這種模式下2.1.1特性:STC89C52RC單片機具有以下特性:8K字節(jié)程序存儲空間;512字節(jié)數(shù)據存儲空間;內帶2K字節(jié)EEPROM存儲空間;可直接使用串口下載;AT89S52單片機:8K字節(jié)程序存儲空間;256字節(jié)數(shù)據存儲空間;帶有2KB的eeprom空間。2.1.2基本參數(shù)1.STC89C52是一種加強版的8051單片機,它的指令代碼完全兼容傳統(tǒng)的80512.它的工作電壓有兩種:第一種適用于5V單片機為5.5V~3.3V第二種適用于3V單片機為3.8V~2.0V3.它的頻率范圍:0MHz~40MHz4.用戶應用程序空間為8K字節(jié)5.片上集成512字節(jié)RAM6.擁有32個通用型的I/O口7.ISP/IAP,不需要專用編程器,也不需要專用仿真器,可通過串口直接下載用戶程序8.具有EEPROM功能9.具有看門狗功能10.通用異步串行口(UART),還可用定時器軟件實現(xiàn)多個UART11.外部中斷4路,下降沿中斷或低電平觸發(fā)電路,掉電模式下可以通過外部低電平觸發(fā)中斷的方式喚醒12.共3個16位定時器/計數(shù)器。即定時器T0、T1、T213.工作溫度范圍:-40~+85℃(工業(yè)級)/0~75℃(商業(yè)級)14.PDIP封裝2.1.3引腳排列和基本功能STC89C52RC引腳功能

1電源:

VCC-電源接+5V;

VSS-接地線;

2.時鐘:

XTAL1—晶體振蕩電路反相輸入端XTAL2—晶體振蕩電路反相輸出端。

3.四根控制線:ALE/PROG:地址鎖存允許/片內EPROM編程脈沖

ALE功能:用來鎖存P0口送出的低8位地址;

PROG功能:片內有EPROM的芯片,在EPROM編程期間,此引腳輸入編程脈沖。PSEN:外ROM讀選通信號。

RST/VPD:復位/備用電源。

RST(Reset)功能:復位信號輸入端。

VPD功能:在Vcc沒有電的情況下,接通用電源。

EA/Vpp:內外ROM選擇/片內EPROM編程電源。

EA功能:內外ROM選擇端口;

Vpp功能:片內有EPROM的芯片,在EPROM編程期間,施加編程電源Vpp。

4.I/O口線:P0、P1、P2、P3共四個八位口。

其中只有P0口能直接用于對外部存儲器的讀/寫操作,所以P0口又稱為三態(tài)雙向口,又稱數(shù)據總線口。P0口也用以輸出外部存儲器的低8位地址。由于是分時輸出,故應在外部加鎖存器將此地址數(shù)據鎖存,地址鎖存,信號用ALE。

P1口是專門供用戶使用的I/O口,是準雙向口。

P2口是從系統(tǒng)擴展時作高8位地址線用。不擴展外部存儲器時,P2口也可以作為用戶I/O口線使用,P2口也是準雙向口。

P3口是雙功能口,該口的每一位均可獨立地定義為第一I/O功能或第二I/O功能。作為第一功能使用時操作同P1口。STC89C52的引腳排布如圖1所示:圖12.2單片機的應用TC"單片機的應用"\l1從目前來看,單片機之所以被廣泛應用于日常生活和工業(yè)生產中的各個領域,不僅是因為微電子技術和大規(guī)模集成電路的飛速發(fā)展,也是因為單片機本身擁有性價比高、質量小、控制能力強、運算速度快等諸多優(yōu)點。無論是從經濟成本的方面,還是實用性方面考慮,單片機都是作為控制芯片的不二之選。按照單片機的特點,其應用可分為單機應用和多機應用兩個方面。在一個系統(tǒng)中,只用1片單片機的叫做單機應用,這是目前應用最多的一種方式。單機應用的主要應用領域有:1.測控系統(tǒng)。使用單片機可以自由的搭建各種簡單的工業(yè)控制系統(tǒng)。例如自動控制,數(shù)據采集系統(tǒng)等,從而達到控制和檢測的目的,實現(xiàn)工業(yè)的智能化生產。如一般溫度控制、濕度控制、轉速控制等。2.智能儀表。使用單片機來研制更加智能,更加方便的,更加準確的新型測量和控制儀表。如:溫度、濕度、流量、轉速等的測量、顯示、控制儀表,通過采用單片機軟件編程技術,不僅可以完全測量,而且還具有運算、誤差修正、線性化、零漂移處理、監(jiān)控等多種功能。3.機電一體化產品。單片機與傳統(tǒng)的機械產品相連接,可以使傳統(tǒng)的機械產品結構更加簡單,控制更加智能化。這種新一代的機電一體化產品種類繁多,如智能窗戶、醫(yī)療器械、智能康復診療儀等。4.智能接口。在計算機控制系統(tǒng)中,我們利用單片機來管理和控制各個接口并讓它們與主機并行工作,這樣不僅可以大大降低成本,還可以極大地提升我們系統(tǒng)的運行速度。例如:在大型數(shù)據采集系統(tǒng)中,用單片機對摸/數(shù)轉換接口進行控制不僅可提高采集速度,而且還能對數(shù)據進行預處理,如數(shù)字濾波、線性處理、誤差休整等。5.智能民用產品。在全自動洗衣機、兒童玩具、汽車導航儀、收銀機、空調等各種民用電器的設計中引入單片機作為系統(tǒng)的控制芯片,不僅大大降低了產品的生產成本,而且極大的提高了產品的性能,也使產品更加智能化。單片機的多機應用系統(tǒng)可分為多能集散系統(tǒng)、局部網絡系統(tǒng)兩個方面。1.多能集散系統(tǒng)。多功能集散系統(tǒng)是為了滿足工程系統(tǒng)多種外圍功能的要求而設置的多機系統(tǒng)。2.局部網絡系統(tǒng)。單片機網絡系統(tǒng)的出現(xiàn),使單片機的發(fā)展一進入了一個全新的時代。目前單片機構成的網絡系統(tǒng)的主要是分布式測控系統(tǒng)、單片機主要被用于系統(tǒng)中的通信控制,以及構成各測控系統(tǒng)的子系統(tǒng)。由此可見,在這個單片機被廣泛應用的時代,單片機已經成為我們生活中不可或缺的一部分,在我們的生活中隨處可見它的身影,無論是工業(yè)生產還是我們的日常生活都越來越離不開單片機。未來隨著單片機技術的不斷進步,它的應用將會變得更加廣泛。3.傳感器模塊和顯示模塊3.1傳感器模塊轉速測量的方法大體上可以分為兩類,一類是比較傳統(tǒng)簡單的直接法,即直接觀測機械的旋轉運動,測量一定時間內機械旋轉的圈數(shù),從而算出機械運動的轉速,這種方法不僅比較麻煩而且容易產生較大的誤差,我們一般不采用,為了提高測量精度我們決定采用另一種方法間接測量法,即測量由機械轉動導致其他物理量的變化,從這些物理量的變化與轉速的關系來得到轉速,這里我們一般需要傳感器來把物體的轉速轉化成電壓電流之類的物理量,便于我們后期處理。同時從測速儀是否與轉軸接觸又可以分為接觸式,非接觸式。目前最流行的轉速測量方法有以下幾種:霍爾元件測速法、離心式轉速表測速法、測速發(fā)電機測速法、漏磁測速法、閃電測速法和震動測速法。本設計我準備采用L3G4200三軸陀螺儀(如圖2)角速度傳感器模塊,用來采集被測量的物體的轉速信號。大名鼎鼎的IPhone4手機上用的就是這款傳感器,L3G4200D是一個低功率的三軸陀螺儀,它提供了三種不同的用戶可選擇全量表(±250/±500/±2000dps)。它包括一個傳感元件和一個集成電路接口,能夠實時的輸出代表了被測物體轉速的數(shù)字脈沖信號,我們在單片機當中進行編程對該信號進行解讀并驅動1602LCD顯示屏對結果進行顯示。該數(shù)字陀螺儀可以讓用戶設定全部量程,量程范圍從±250dps~±2000dps,超廣泛的測量范圍使得該器件適合測量多種不同的運動,我們可以根據所需測量的物體來自主選擇合適的量程。這款器件不僅包含一個16位數(shù)據的輸出端口,還具有可配置的高低通濾波器等嵌入式數(shù)字功能,這些都是的我們的測量更加簡單。就算時間推移或溫度變化,這款器件仍然保持連續(xù)穩(wěn)定的輸出,原理圖如圖3所示。圖2圖33.2液晶顯示模塊本設計使用LCD1602顯示器作為轉速儀的顯示模塊。LCD1602的內部控制芯片為HD44780,它可以同時顯示32個字符,功能強大,結構簡單,不僅如此,它還具有低功耗,可顯示內容豐富,輕巧等諸多優(yōu)點。它采用單+5V電源供電,外圍電路配置簡單,價格便宜,具有很高的性價比。LCD1602外觀如圖4(a)所示。1602字符型LCD模塊的管腳分布如圖4(b)所示,其管腳各功能如表1所示。

圖4(a)LCD1602外觀圖(b)LCD1602管腳分布圖4.整體設計4.1硬件部分設計4.1.1電源部分如圖5所示是一個帶有橋式整流電路的電容濾波的7808穩(wěn)壓的穩(wěn)壓電路,通過變壓器將220V的交流電通過這些環(huán)節(jié)得到5V左右的交流電壓,以便提供單片機的工作電壓。圖54.1.2復位電路MCS-51

單片機的復位電路是用來執(zhí)行單片機的初始化操作。單片機開始運行時,都需要先復位,其作用是使CPU和系統(tǒng)中的其他部件處于一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。因而,復位是一個很重要的操作方式。但單片機本身是不能自動進行復位的,必須配合相應的外部電路才能實現(xiàn)。下圖所示是本系統(tǒng)的復位電路。圖6復位電路復位電路的工作機制:如圖6所示電容CJ3可以起到按鍵去除抖動的作用,這里的電容還有一個更重要的作用就是上電復位,因為考慮到芯片剛剛上電時由于供電不穩(wěn)定而做出錯誤的計算,所以增加一個上電復位以達到延時啟動CPU的目的,使芯片能夠正常工作。雖然現(xiàn)在很多芯片自帶了上電延時功能,但是我們一般還是會增加額外的上電復位電路,提高可靠性。

上電復位是如此工作的,此時不用考慮按鍵和圖中1K電阻的作用。上電瞬間,電壓VCC短時間內從0V上升到5V,這一瞬間相當于交流電,電容相當于導線,5V的電壓全部加在10K電阻上,也就是說,這時RST的電平狀態(tài)為高電平。但是從上電開始,電容自己就慢慢充電,其兩端電壓呈曲線上升,最終達到5V,也就是說其正端電位為5V,負端電位為0V,其負端也就正好是RST,此時RST為低電平,單片機開始正常工作。添加按鍵是為了手動復位,一般那個1K電阻可以不加。當按鍵按下時,電容兩端構成回路并放電,使單片機的RST端重新變?yōu)楦唠娖?,按鍵抬起時電容又充電使RST變回低電平。4.1.3晶振電路每一個單片機系統(tǒng)都必須要有晶振電路存在,它的作用是為系統(tǒng)提供基本的時鐘信號。晶振就是單片機的心臟,用它的上下變化產生的時鐘來觸發(fā)單片機操作。單片機的運行速度和晶振的頻率是成正比的,晶振的頻率越高,系統(tǒng)的時鐘頻率也會越高,單片機的運行速度也會越快。STC89C52單片機內部有一個用于構成振蕩器的高增益反相放大器。我們可以利用這個高增益的反相放大器和晶振來構成一個自激振蕩器,來作為系統(tǒng)的時鐘電路,具體如圖7所示,芯片引腳XTAL1是該高增益反相放大器的輸入端,輸出端為引腳XTAL2。這兩個引腳連接晶振和電容,就構成一個穩(wěn)定的時鐘電路。電路中的電容C1、C2典型值通常選擇22pF,此系統(tǒng)電路的晶體振蕩器的值為11.0592MHz。雖然對外接電容雖然沒有嚴格要求,但電容的大小會影響振蕩頻率的高低、振蕩器的穩(wěn)定性和起振的速度。陶瓷電容我們的首選,電容值應該選擇為22pF。另外,為了更好地保證晶體振蕩器穩(wěn)定而又可靠的工作,在焊接電路時,晶振和電容的位置應該盡量的靠近單片機芯片,以免產生不必要的寄生電容,從而影響晶振電路的正常工作。晶體振蕩電路如圖7示:圖74.2軟件部分設計設計完硬件部分之后,就要來設計軟件部分了,一個完整的電子產品是離不開軟件的,軟件是硬件的靈魂,沒有軟件的支撐,硬件就是一堆廢鐵,根本不能發(fā)揮出它應有的作用。軟件的設計也離不開硬件的支持,我們只有在硬件的基礎上設計出合適的硬件才能組成完美的產品。我們首先要明白系統(tǒng)對軟件的需求,然后分析問題的實質,找到解決問題的辦法。然后提出程序的整體設計方案和各個模塊的設計方案。通過整理發(fā)現(xiàn),單片機需要識別傳感器傳送來的信號,再經過計算后驅動數(shù)碼管顯示結果。我們需要畫出系統(tǒng)的流程圖,一步一步進行設計。在此使用C語言來編寫程序。4.2.1定時器的初始化ST89C52有兩個定時器/計數(shù)器T0和T1,每個定時器/計數(shù)器均可設置成為16位,也可以設置成為13位進行定時或計數(shù)。計數(shù)器的功能是對T0或T1外來脈沖的進行計數(shù),外部輸入脈沖負跳變時,計數(shù)器進行加1。工作方式寄存器TMOD的設定:GATEC/TM1M0GATEC/TM1M0TMOD各位的含義如下:GATE:門控位,用于控制定時/計數(shù)器的啟動是否受外部中斷請求信號的影響。C/T:定時或計數(shù)方式選擇位,當C/T=1時工作于計數(shù)方式;當C/T=0時工作于定時方式。M1、M0為工作方式選擇位,用于對T0的四種工作方式,T1的三種工作方式進行選擇,選擇情況如下表1:M1M0=00為方式0;M1M0=01為方式1;表1:M1、M0為工作方式選擇位M0M1工作方式方式說明00110101012313位定時/計數(shù)器16位定時/計數(shù)器8位自動重置定時/計數(shù)器兩個8位定時/計數(shù)器(只有T0有)4.2.2中斷允許控制MCS-51單片機中沒有專門的開中斷指令和關中斷指令,對各個中斷源的允許和屏蔽是由內部的中斷允許寄存器IE的各位來控制的。中斷允許寄存器IE的字節(jié)地址為A8H,可以進行位尋址表2:中斷位尋址表IED7D6D5D4D3D2D1D0(A8H)EAET2ESET1EX1ET0EX0EA:中斷允許總控位。EA=0,屏蔽所有的中斷請求;EA=1,開放中斷。ET2:定時器/計數(shù)器T2的溢出中斷允許位ES:串行口中斷允許位。ET1:定時器/計數(shù)器T1的溢出中斷允許位。EX1:外部中斷INT1的中斷允許位。ET0:定時器/計數(shù)器T0的溢出中斷允許位。EX0:外部中斷INT0的中斷允許位。4.2.3程序流程圖1、主程序流程圖8顯示開始初始化定時器計時器刷新數(shù)碼管延時2ms顯示開始初始化定時器計時器刷新數(shù)碼管延時2ms圖8流程圖2、顯示子程序流程圖9開始開始顯示緩存初始化LED顯示初始化數(shù)碼顯示圖9示子程序流程圖3、定時計數(shù)子程序流程圖10開定時器開定時器開計數(shù)器定時0.5s計數(shù)0.5s讀出計數(shù)器值并清零計數(shù)器定時重新裝初始值并啟動定時器開始圖10時計數(shù)子程序5.系統(tǒng)調試5.1硬件調試在焊接好整個儀器后,首先進行脫機調試,仔細檢查各個引腳焊接是否正確,是否有虛焊的,各個元器件型號是否正確,焊接位置和焊接方法是否正確。并用萬用表按照原理圖對所焊電路進行一步一步仔細地檢查,確保焊接無誤。最后再聯(lián)機調試,接通電源,對各個輸出端的輸出信號波形進行分析。5.2軟件調試首先根據程序框圖編寫好程序,用軟件進行調試。調試時先用軟件進行編譯仿真,檢查是否有語法錯誤。然后開始執(zhí)行,看程序的運行結果是否符合預期的設計,如果不符合,就不斷進行修改,直到符合要求。其次是對每個模塊中的子程序進行調試,可利用軟件進行單步運行和斷點運行調試。通過檢查各個I/O口狀態(tài),檢測執(zhí)行結果是否符合設計要求??偨Y經過三個多月的緊張學習和工作,我終于完成了最后的畢業(yè)設計。國內外有多種新型的轉速測量儀,可以說我所設計的是最簡單的一種。但是這已經涵蓋了我大學四年所學習的所有內容。一方面是單片機的應用,另一方面是程序的編寫,要想順利的完成一項電子設計,我們不僅需要了解和學習書本上的專業(yè)知識,而且還要熟練使用AltiumDesigner、Matlab等各種軟件。通過這次畢業(yè)設計,我認識到了自己的不足,剛開始的時候就產生了畏難的情緒,總感覺做不出來。都說萬事開頭難,當設計進行到一定程度之后,我發(fā)現(xiàn)并不是像想象中的那么難,只是自己的專業(yè)知識還是遠遠不夠的,后悔大一開始的時候沒有好好學習。這也讓我認識到了學習的重要性,在這次畢業(yè)設計的過程中,我是一邊學習,一邊實踐,才艱難的完成了我的畢設。在以后的工作生活中我會樹立起終身學習的目標,不斷地完善自己的專業(yè)技能并且跟上時代的腳步,成為對社會有用的人才。其實做什么事情都是一樣只要有恒心,就一定能完成。雖說萬事開頭難,但是世上無難事,只怕有心人,不管是什么樣的困難,只要我們肯努力肯吃苦,就沒有戰(zhàn)勝不了的困難。在這次畢業(yè)設計的幾個月中,使我深深地體會到團隊合作精神的重要性。一個人是很難做到的,只有大家在一起研究討論才能完成。在對課題研究中,我們往往會遇到各種各樣的問題,很多問題都不是我們單槍匹馬可以解決的,這就需要們得到老師和同學的幫助,遇到不懂的地方我們一定要學會咨詢老師,學會和同學要探討,交流不同意見,千萬不可閉門造車。我在老師的鼓勵和幫助下不斷進步,最終還是在一定程度上完成了這次畢業(yè)設計。在這里,我要感謝我的導師閆老師,是她的認真負責和不斷督促才讓我找到了前進的方向和動力,可以說我能夠完成這項畢業(yè)設計離不開閆老師的辛勤付出。附錄一:元器件清單元器件清單序號名稱規(guī)格型號數(shù)量封裝單片機STC89C511DIP40橋式整流器1穩(wěn)壓管78051電源插座1電解電容100UF/50V1RB.2/.410UF/50V2瓷片電容30PF2RAD0.1獨石電容0.11按鍵3LED發(fā)光二極管1RAD0.1晶振6MHz1XTAL111.電阻2K4RAD0.4100810K12001510112.LED數(shù)碼管LCD16021附錄二:硬件部分電路圖附錄三:軟件程序#include<REG51.H> #include<math.h>//Keillibrary#include<stdio.h>//Keillibrary #include<INTRINS.H>#defineucharunsignedchar#defineuintunsignedint #defineDataPortP0//LCD1602數(shù)據端口sbit SCL=P1^0;//IIC時鐘引腳定義sbit SDA=P1^1;//IIC數(shù)據引腳定義sbitLCM_RS=P2^0;//LCD1602命令端口 sbitLCM_RW=P2^1;//LCD1602命令端口 sbitLCM_EN=P2^2;//LCD1602命令端口//**********L3G4200D內部寄存器地址*********#defineWHO_AM_I0x0F#defineCTRL_REG10x20#defineCTRL_REG20x21#defineCTRL_REG30x22#defineCTRL_REG40x23#defineCTRL_REG50x24#defineREFERENCE0x25#defineOUT_TEMP0x26#defineSTATUS_REG0x27#defineOUT_X_L0x28#defineOUT_X_H0x29#defineOUT_Y_L0x2A#defineOUT_Y_H0x2B#defineOUT_Z_L0x2C#defineOUT_Z_H0x2D#defineFIFO_CTRL_REG0x2E#defineFIFO_SRC_REG0x2F#defineINT1_CFG0x30#defineINT1_SRC0x31#defineINT1_TSH_XH0x32#defineINT1_TSH_XL0x33#defineINT1_TSH_YH0x34#defineINT1_TSH_YL0x35#defineINT1_TSH_ZH0x36#defineINT1_TSH_ZL0x37#defineINT1_DURATION0x38#define SlaveAddress0xD2 //定義器件在IIC總線中的從地址,根據ALTADDRESS地址引腳不同修改typedefunsignedcharBYTE;typedefunsignedshortWORD;uchardis[4];//顯示數(shù)組BYTEBUF[8];//接收數(shù)據緩存區(qū) ucharge,shi,bai,qian,wan;//顯示變量intdis_data;//變量floattemp;voiddelay(unsignedintk);voidInitLcd();//初始化lcd1602voidInitL3G4200D();//初始化L3G4200DvoidWriteDataLCM(uchardataW);voidWriteCommandLCM(ucharCMD,ucharAttribc);voidDisplayOneChar(ucharX,ucharY,ucharDData);voidDisplayListChar(ucharX,ucharY,uchar*DData,L);voidSingle_WriteL3G4200D(ucharREG_Address,ucharREG_data);//單個寫入數(shù)據ucharSingle_ReadL3G4200D(ucharREG_Address);//單個讀取內部寄存器數(shù)據//voidDelay5us();voidL3G4200D_Start();voidL3G4200D_Stop();voidL3G4200D_SendACK(bitack);bitL3G4200D_RecvACK();voidL3G4200D_SendByte(BYTEdat);BYTEL3G4200D_RecvByte();voidL3G4200D_ReadPage();voidL3G4200D_WritePage();voiddisplay_x();voiddisplay_y();voiddisplay_z();/*******************************/voidlcd_printf(uchar*s,inttemp_data){ if(temp_data<0){ temp_data=-temp_data;*s='-'; } else*s='';*++s=temp_data/100+0x30;temp_data=temp_data%100;//取余運算*++s=temp_data/10+0x30;temp_data=temp_data%10;//取余運算*++s=temp_data+0x30; }/*******************************/voiddelay(unsignedintk) { unsignedinti,j; for(i=0;i<k;i++){ for(j=0;j<121;j++) {;}} }/*******************************/voidWaitForEnable(void) { DataPort=0xff; LCM_RS=0;LCM_RW=1;_nop_();LCM_EN=1;_nop_();_nop_();while(DataPort&0x80); LCM_EN=0; } /*******************************/voidWriteCommandLCM(ucharCMD,ucharAttribc){ if(Attribc)WaitForEnable(); LCM_RS=0;LCM_RW=0;_nop_();DataPort=CMD;_nop_(); LCM_EN=1;_nop_();_nop_();LCM_EN=0;} /*******************************/voidWriteDataLCM(uchardataW){ WaitForEnable(); LCM_RS=1;LCM_RW=0;_nop_();DataPort=dataW;_nop_(); LCM_EN=1;_nop_();_nop_();LCM_EN=0;} /***********************************/voidInitLcd() { WriteCommandLCM(0x38,1); WriteCommandLCM(0x08,1); WriteCommandLCM(0x01,1); WriteCommandLCM(0x06,1); WriteCommandLCM(0x0c,1);DisplayOneChar(0,0,'x');DisplayOneChar(1,0,':');DisplayOneChar(0,1,'y');DisplayOneChar(1,1,':');DisplayOneChar(9,0,'z');DisplayOneChar(10,0,':');} /***********************************/voidDisplayOneChar(ucharX,ucharY,ucharDData){ Y&=1; X&=15; if(Y)X|=0x40; X|=0x80; WriteCommandLCM(X,0); WriteDataLCM(DData); } //*******************************************voidDisplayListChar(ucharX,ucharY,uchar*DData,L){ucharListLength=0;Y&=0x1;X&=0xF;while(L--){DisplayOneChar(X,Y,DData[ListLength]);ListLength++;X++;}}/**************************************延時5微秒(STC90C52RC@12M)不同的工作環(huán)境,需要調整此函數(shù),注意時鐘過快時需要修改當改用1T的MCU時,請調整此延時函數(shù)**************************************/voidDelay5us(){_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();}/**************************************起始信號**************************************/voidL3G4200D_Start(){SDA=1;//拉高數(shù)據線SCL=1;//拉高時鐘線Delay5us();//延時SDA=0;//產生下降沿Delay5us();//延時SCL=0;//拉低時鐘線}/**************************************停止信號**************************************/voidL3G4200D_Stop(){SDA=0;//拉低數(shù)據線SCL=1;//拉高時鐘線Delay5us();//延時SDA=1;//產生上升沿Delay5us();//延時}/**************************************發(fā)送應答信號入口參數(shù):ack(0:ACK1:NAK)**************************************/voidL3G4200D_SendACK(bitack){SDA=ack;//寫應答信號SCL=1;//拉高時鐘線Delay5us();//延時SCL=0;//拉低時鐘線Delay5us();//延時}/**************************************接收應答信號**************************************/bitL3G4200D_RecvACK(){SCL=1;//拉高時鐘線Delay5us();//延時CY=SDA;//讀應答信號SCL=0;//拉低時鐘線Delay5us();//延時returnCY;}/**************************************向IIC總線發(fā)送一個字節(jié)數(shù)據**************************************/voidL3G4200D_SendByte(BYTEdat){BYTEi;for(i=0;i<8;i++)//8位計數(shù)器{dat<<=1;//移出數(shù)據的最高位SDA=CY;//送數(shù)據口SCL=1;//拉高時鐘線Delay5us();//延時SCL=0;//拉低時鐘線Delay5us();//延時}L3G4200D_RecvACK();}/**************************************從IIC總線接收一個字節(jié)數(shù)據**************************************/BYTEL3G4200D_RecvByte(){BYTEi;BYTEdat=0;SDA=1;//使能內部上拉,準備讀取數(shù)據,for(i=0;i<8;i++)//8位計數(shù)器{dat<<=1;SCL=1;//拉高時鐘線Delay5us();//延時dat|=SDA;//讀數(shù)據SCL=0;//拉低時鐘線Delay5us();//延時}returndat;}//單字節(jié)寫入*******************************************voidSingle_WriteL3G4200D(ucharREG_Address,ucharREG_data){L3G4200D_Start();//起始信號L3G4200D_SendByte(SlaveAddress);//發(fā)送設備地址+寫信號L3G4200D_SendByte(REG_Address);//內部寄存器地址,請參考中文pdf22頁L3G4200D_SendByte(REG_data);//內部寄存器數(shù)據,請參考中文pdf22頁L3G4200D_Stop();//發(fā)送停止信號}//單字節(jié)讀取*****************************************ucharSingle_ReadL3G4200D(ucharREG_Address){ucharREG_data;L3G4200D_Start();//起始信號L3G4200D_SendByte(SlaveAddress);//發(fā)送設備地址+寫信號L3G4200D_SendByte(REG_Address);//發(fā)送存儲單元地址,從0開始 L3G4200D_Start();//起始信號L3G4200D_SendByte(SlaveAddress+1);//發(fā)送設備地址+讀信號REG_data=L3G4200D_RecvByte();//讀出寄存器數(shù)據 L3G4200D_SendACK(1); L3G4200D_Stop();//停止信號returnREG_data;}//*****************************************************************//初始化L3G4200D,根據需要請參考pdf進行修改************************voidInitL3G4200D(){Single_WriteL3G4200D(CTRL_REG1,0x0f);//Single_WriteL3G4200D(CTRL_REG2,0x00);//Single_WriteL3G4200D(CTRL_REG3,0x08);//Single_WriteL3G4200D(CTRL_REG4,0x30);//+-2000dpsSingle_WriteL3G4200D(CTRL_REG5,0x00);}//***********************************************************************//顯示x軸voiddisplay_x(){BUF[0]=Single_ReadL3G4200D(OUT_X_L);BUF[1]=Single_ReadL3G4200D(OUT_X_H);//讀取X軸數(shù)據dis_data=(BUF[1]<<8)+BUF[0];//合成數(shù)據temp=(float)dis_data*0.07;//2000度/秒量程dis_data=(int)temp;lcd_printf(dis,dis_data);//轉換數(shù)據顯示DisplayListChar(2,0,dis,4);//啟始列,行,顯示數(shù)組,顯示長度}//***********************************************************************//顯示y軸voiddisplay_y(){BUF[2]=Single_ReadL3G4200D(OUT_Y_L);BUF[3]=Single_ReadL3G4200D(OUT_Y_H);//讀取Y軸數(shù)據dis_data=(BUF[3]<<8)+BUF[2];//合成數(shù)據 temp=(float)dis_data*0.07;//2000度/秒量程dis_data=(int)temp;lcd_printf(dis,dis_data);//轉換數(shù)據顯示DisplayListChar(2,1,dis,4);//啟始列,行,顯示數(shù)組,顯示長度}//***********************************************************************//顯示z軸voiddisplay_z(){BUF[4]=Single_ReadL3G4200D(OUT_Z_L);BUF[5]=Single_ReadL3G4200D(OUT_Z_H);//讀取Z軸數(shù)據dis_data=(BUF[5]<<8)+BUF[4];//合成數(shù)據 temp=(float)dis_data*0.07;//2000度/秒量程 dis_data=(int)temp;lcd_printf(dis,dis_data);//轉換數(shù)據顯示DisplayListChar(11,0,dis,4);//啟始列,行,顯示數(shù)組,顯示長度}//*********************************************************//******主程序********//*********************************************************voidmain(){ucharTemperature;delay(500); //上電延時 InitLcd();//液晶初始化InitL3G4200D();//初始化L3G4200DTemperature=Single_ReadL3G4200D(OUT_TEMP);//讀取溫度while(1)//循環(huán){display_x();//顯示X軸display_y();//顯示Y軸display_z();//顯示Z軸delay(100);//延時}}參考文獻[1].\o"文摘"李朝春.

《單片機原理及接口技術》[M].北京:北京航空航天大學出版社,1994.[2]《檢測與轉換技術》[M].北京:機械工業(yè)出版社,1990.[\o"文摘"3].賈伯年,俞樸,宋愛國.

《傳感器技術》[M].南京:東南大學出版社,2007.[4].李廣弟《單片機基礎》北京航空航天大學出版社[5].王煜東《傳感器及運用》機械工業(yè)出版社[6].徐崢穎《Protel99SEEDA技術及應用》機械工業(yè)出版社[7].劉修文《圖像電子元器件的檢測與選用要決》中國電力出版社[8].童詩白《模擬電子技術基礎》高等教育出版社[9].周紹英等《電機與拖動》中央廣播電視大學出版社[\o"文摘"10].Corry,Mayfield,Cadman.

《COM/DCOMprogrammingguide》[M].北京:清華大學出版社,2000.[11].符意德《嵌入式系統(tǒng)原理及接口技術》北京:清華大學出版社[12].錢曉捷《微機原理與接口技術》機械工業(yè)出版社[13]何立民.MCS-51系列單片機應用系統(tǒng)設計.北京:北京航空航天大學出版社,1990[14]穆蘭.單片微型計算機原理及接口技術.北京:機械工業(yè)出版社,1995[15]張毅剛.MCS-51單片機應用設計.哈爾濱:哈爾濱工業(yè)大學出版社,1990[16]蔣智勇.單片微型計算機原理及接口技術.沈陽:遼寧科學技術出版設,1992基于C8051F單片機直流電動機反饋控制系統(tǒng)的設計與研究基于單片機的嵌入式Web服務器的研究MOTOROLA單片機MC68HC(8)05PV8/A內嵌EEPROM的工藝和制程方法及對良率的影響研究基于模糊控制的電阻釬焊單片機溫度控制系統(tǒng)的研制基于MCS-51系列單片機的通用控制模塊的研究基于單片機實現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調節(jié)器單片機控制的二級倒立擺系統(tǒng)的研究基于增強型51系列單片機的TCP/IP協(xié)議棧的實現(xiàn)基于單片機的蓄電池自動監(jiān)測系統(tǒng)基于32位嵌入式單片機系統(tǒng)的圖像采集與處理技術的研究基于單片機的作物營養(yǎng)診斷專家系統(tǒng)的研究基于單片機的交流伺服電機運動控制系統(tǒng)研究與開發(fā)基于單片機的泵管內壁硬度測試儀的研制基于單片機的自動找平控制系統(tǒng)研究基于C8051F040單片機的嵌入式系統(tǒng)開發(fā)基于單片機的液壓動力系統(tǒng)狀態(tài)監(jiān)測儀開發(fā)模糊Smith智能控制方法的研究及其單片機實現(xiàn)一種基于單片機的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機的在線間歇式濁度儀的研制基于單片機的噴油泵試驗臺控制器的研制基于單片機的軟起動器的研究和設計基于單片機控制的高速快走絲電火花線切割機床短循環(huán)走絲方式研究基于單片機的機電產品控制系統(tǒng)開發(fā)基于PIC單片機的智能手機充電器基于單片機的實時內核設計及其應用研究基于單片機的遠程抄表系統(tǒng)的設計與研究基于單片機的煙氣二氧化硫濃度檢測儀的研制基于微型光譜儀的單片機系統(tǒng)單片機系統(tǒng)軟件構件開發(fā)的技術研究基于單片機的液體點滴速度自動檢測儀的研制基于單片機系統(tǒng)的多功能溫度測量儀的研制基于PIC單片機的電能采集終端的設計和應用基于單片機的光纖光柵解調儀的研制氣壓式線性摩擦焊機單片機控制系統(tǒng)的研制基于單片機的數(shù)字磁通門傳感器基于單片機的旋轉變壓器-數(shù)字轉換器的研究基于單片機的光纖Bragg光柵解調系統(tǒng)的研究單片機控制的便攜式多功能乳腺治療儀的研制基于C8051F020單片機的多生理信號檢測儀基于單片機的電機運動控制系統(tǒng)設計Pico專用單片機核的可測性設計研究基于MCS-51單片機的熱量計基于雙單片機的智能遙測微型氣象站MCS-51單片機構建機器人的實踐研究基于單片機的輪軌力檢測基于單片機的GPS定位儀的研究與實現(xiàn)基于單片機的電液伺服控制系統(tǒng)用于單片機系統(tǒng)的MMC卡文件系統(tǒng)研制基于單片機的時控和計數(shù)系統(tǒng)性能優(yōu)化的研究基于單片機和CPLD的粗光柵位移測量系統(tǒng)研究單片機控制的后備式方波UPS提升高職學生單片機應用能力的探究基于單片機控制的自動低頻減載裝置研究基于單片機控制的水下焊接電源的研究基于單片機的多通道數(shù)據采集系統(tǒng)基于uPSD3234單片機的氚表面污染測量儀的研制基于單片機的紅外測油儀的研究96系列單片機仿真器研究與設計基于單片機的單晶金剛石刀具刃磨設備的數(shù)控改造基于單片機的溫度智能控制系統(tǒng)的設計與實現(xiàn)基于MSP430單片機的電梯門機控制器的研制基于單片機的氣體測漏儀的研究基于三菱M16C/6N系列單片機的CAN/USB協(xié)議轉換器基于單片機和DSP的變壓器油色譜在線監(jiān)測技術研究基于單片機的膛壁溫度報警系統(tǒng)設計基于AVR單片機的低壓無功補償控制器的設計\t"_

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論