基于單片機(jī)的震動(dòng)信號(hào)檢測(cè)系統(tǒng)設(shè)計(jì)_第1頁(yè)
基于單片機(jī)的震動(dòng)信號(hào)檢測(cè)系統(tǒng)設(shè)計(jì)_第2頁(yè)
基于單片機(jī)的震動(dòng)信號(hào)檢測(cè)系統(tǒng)設(shè)計(jì)_第3頁(yè)
基于單片機(jī)的震動(dòng)信號(hào)檢測(cè)系統(tǒng)設(shè)計(jì)_第4頁(yè)
基于單片機(jī)的震動(dòng)信號(hào)檢測(cè)系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 信號(hào)檢測(cè)綜合訓(xùn)練說(shuō) 明 書題目:振動(dòng)信號(hào)檢測(cè)系統(tǒng)設(shè)計(jì)學(xué)院:電氣工程與信息工程學(xué)院 班級(jí):電子信息科學(xué)與技術(shù)(2)班 姓名:江 峰 學(xué)號(hào):11260204 指導(dǎo)老師:緱新科 2014年12月04日摘 要振動(dòng)從形式上看,有的是來(lái)回?cái)[動(dòng),有的是往復(fù)直線運(yùn)動(dòng),有的是旋轉(zhuǎn)運(yùn)動(dòng)等,種類很多,形式不一,但它們都有一個(gè)共同的特點(diǎn),即物體在運(yùn)動(dòng)過(guò)程中總是在它自己的平衡位置附近,一次又一次地重復(fù)地運(yùn)動(dòng)著。因此,我們把物體在其平衡位置附近所做的往復(fù)性的運(yùn)動(dòng)稱為振動(dòng)。研究振動(dòng)的目的是為了了解各種機(jī)械振動(dòng)的現(xiàn)象的機(jī)理,破譯機(jī)械振動(dòng)所包含的大量信息,進(jìn)而對(duì)設(shè)備的狀態(tài)進(jìn)行監(jiān)測(cè),分析設(shè)備的潛在可能故障。本課題主要選用位移傳

2、感器結(jié)合微分電路測(cè)得最大位移,最大速度,最大加速度,并且利用LCD顯示振動(dòng)信號(hào)。本論文首先介紹了振動(dòng)檢測(cè)的原理;其次介紹了整體系統(tǒng)的設(shè)計(jì)和各模塊方案的比較,選擇;接著介紹了各部分電路的設(shè)計(jì)及原理;再者介紹了軟件設(shè)計(jì)流程并附上了程序代碼;最后論述了系統(tǒng)的調(diào)試過(guò)程。關(guān)鍵詞:?jiǎn)纹瑱C(jī);振動(dòng);加速度;檢測(cè) 目 錄摘 要I1 前 言12 振動(dòng)檢測(cè)原理22.1 振動(dòng)分類22.2 振動(dòng)檢測(cè)原理22.3 振動(dòng)傳感器的分類23 系統(tǒng)設(shè)計(jì)53.1 整體系統(tǒng)設(shè)計(jì)53.2 方案設(shè)計(jì)53.2.1 數(shù)據(jù)采集模塊53.2.2 液晶顯示模塊54 硬件設(shè)計(jì)94.1 單片機(jī)最小系統(tǒng)94.2 傳感器電路104.3 顯示電路115 軟

3、件設(shè)計(jì)125.1 系統(tǒng)工作流程125.2 程序設(shè)計(jì)156 系統(tǒng)調(diào)試246.1 系統(tǒng)實(shí)物圖246.2 整體系統(tǒng)測(cè)試246.3 測(cè)試結(jié)果分析256.4 結(jié)論257 總結(jié)257.1 總結(jié)25附錄1271 前 言傳感器技術(shù)是現(xiàn)代測(cè)量和自動(dòng)化系統(tǒng)的重要技術(shù)之一,從宇宙開發(fā)到海底探秘,從生產(chǎn)的過(guò)程控制到現(xiàn)代文明生活,幾乎每一項(xiàng)技術(shù)都離不開傳感器,因此,許多國(guó)家對(duì)傳感器技術(shù)的發(fā)展十分重視,如日本把傳感器技術(shù)列為六大核心技術(shù)(計(jì)算機(jī)、通信、激光、半導(dǎo)體、超導(dǎo)體和傳感器) 之一。角度傳感器和加速度傳感器在當(dāng)代工業(yè)控制、儀表測(cè)量、航空航海等領(lǐng)域中有著十分廣泛的應(yīng)用。傳統(tǒng)的角度傳感器如:增量編碼器、同步機(jī)等存在接觸

4、面、觸點(diǎn)易磨損,必須定期進(jìn)行更換,在實(shí)際應(yīng)用中降低了設(shè)備的可靠性,增加了維修成本。本設(shè)計(jì)研究設(shè)計(jì)的加速度傳感器和角度傳感器能夠?qū)崟r(shí)測(cè)量物體振動(dòng)加速度和角度,具有廣泛的應(yīng)用前景。隨著基于單片機(jī)的檢測(cè)技術(shù)的不斷發(fā)展,近些年來(lái)我國(guó)對(duì)角度測(cè)量技術(shù)進(jìn)行理論上的研究,在生產(chǎn)實(shí)踐中投入了具體的應(yīng)用。但我國(guó)在此方面的實(shí)際應(yīng)用技術(shù)與國(guó)外比還有較大差距。國(guó)內(nèi)生產(chǎn)的該種儀器性能方面有待提高,國(guó)外進(jìn)口的又價(jià)格昂貴,使得該儀器難以推廣和銷售,高性能角度測(cè)量設(shè)備的缺失導(dǎo)致了大量經(jīng)濟(jì)損失。因此可以說(shuō)角度測(cè)量技術(shù)的研究與開發(fā)有著廣闊的前景,并且能夠帶來(lái)可觀的經(jīng)濟(jì)效益和社會(huì)效益 幾乎所有的物理現(xiàn)象都可看作是信號(hào),但這里我們特指

5、動(dòng)態(tài)振動(dòng)信號(hào)。振動(dòng)信號(hào)采集與一般性模擬信號(hào)采集雖有共同之處,但存在的差異更多,因此,在采集振動(dòng)信號(hào)時(shí)應(yīng)注意以下幾點(diǎn):1. 振動(dòng)信號(hào)采集模式取決于機(jī)組當(dāng)時(shí)的工作狀態(tài),如穩(wěn)態(tài)、瞬態(tài)等;2. 變轉(zhuǎn)速運(yùn)行設(shè)備的振動(dòng)信號(hào)采集在有條件時(shí)應(yīng)采取同步整周期采集;3. 所有工作狀態(tài)下振動(dòng)信號(hào)采集均應(yīng)符合采樣定理。對(duì)信號(hào)預(yù)處理具有特定要求是振動(dòng)信號(hào)本身的特性所致。信號(hào)預(yù)處理的功能在一定程度上說(shuō)是影響后續(xù)信號(hào)分析的重要因素。預(yù)處理方法的選擇也要注意以下條件:1. 在涉及相位計(jì)算或顯示時(shí)盡量不采用抗混濾波;2. 在計(jì)算頻譜時(shí)采用低通抗混濾波;3. 在處理瞬態(tài)過(guò)程中1X矢量、2X矢量的快速處理時(shí)采用矢量濾波。2 振動(dòng)檢

6、測(cè)原理2.1 振動(dòng)分類在日常的生活和生產(chǎn)活動(dòng)中,我們經(jīng)??梢钥吹轿矬w的振動(dòng)現(xiàn)象,例如:運(yùn)動(dòng)場(chǎng)上秋千的擺動(dòng),汽車啟動(dòng)時(shí)發(fā)動(dòng)機(jī)引起的車體顫動(dòng),機(jī)床的振動(dòng)等。這些振動(dòng)從形式上看,有的是來(lái)回?cái)[動(dòng),有的是往復(fù)直線運(yùn)動(dòng),有的是旋轉(zhuǎn)運(yùn)動(dòng)等,種類很多,形式不一,但它們都有一個(gè)共同的特點(diǎn),即物體在運(yùn)動(dòng)過(guò)程中總是在它自己的平衡位置附近,一次又一次地重復(fù)地運(yùn)動(dòng)著。因此,我們把物體在其平衡位置附近所做的往復(fù)性的運(yùn)動(dòng)稱為振動(dòng)。研究振動(dòng)的目的是為了了解各種機(jī)械振動(dòng)現(xiàn)象的機(jī)理,破譯機(jī)械振動(dòng)所包含的大量信息,進(jìn)而對(duì)設(shè)備的狀態(tài)進(jìn)行監(jiān)測(cè),分析設(shè)備的潛在可能故障。2.2 振動(dòng)檢測(cè)原理振動(dòng)傳感器有振動(dòng)位移、振動(dòng)速度和振動(dòng)加速度傳感器

7、。簡(jiǎn)單地說(shuō),振動(dòng)位移傳感器(常用電渦流傳感器)根據(jù)振動(dòng)位移變化與輸出電壓的變化關(guān)系,振動(dòng)速度傳感器根據(jù)相對(duì)運(yùn)動(dòng)切割磁力線產(chǎn)生電壓的變化,振動(dòng)加速度傳感器根據(jù)形變與電荷的關(guān)系。速度傳感器通過(guò)硬件或軟件積分可以得到位移,加速度傳感器通過(guò)一次積分可以得到振動(dòng)速度,二次積分可以得到振動(dòng)位移。因?yàn)樾枰獪y(cè)量加速度,所以必須有振動(dòng)加速度傳感器。振動(dòng)傳感器在測(cè)試技術(shù)中是關(guān)鍵部件之一,它的作用并不是直接將原始要測(cè)的機(jī)械量轉(zhuǎn)變?yōu)殡娏?,而是將原始要測(cè)的機(jī)械量做為振動(dòng)傳感器的輸入量,然后由機(jī)械接收部分加以接收,形成另一個(gè)適合于變換的機(jī)械量,最后由機(jī)電變換部分再將變換為電量。因此一個(gè)傳感器的工作性能是由機(jī)械接收部分和機(jī)

8、電變換部分的工作性能來(lái)決定的。 2.3 振動(dòng)傳感器的分類1、相對(duì)式電動(dòng)傳感器電動(dòng)式傳感器基于電磁感應(yīng)原理,即當(dāng)運(yùn)動(dòng)的導(dǎo)體在固定的磁場(chǎng)里切割磁力線時(shí),導(dǎo)體兩端就感生出電動(dòng)勢(shì),因此利用這一原理而生產(chǎn)的傳感器稱為電動(dòng)式傳感器。 相對(duì)式電動(dòng)傳感器從機(jī)械接收原理來(lái)說(shuō),是一個(gè)位移傳感器,由于在機(jī)電變換原理中應(yīng)用的是電磁感應(yīng)電律,其產(chǎn)生的電動(dòng)勢(shì)同被測(cè)振動(dòng)速度成正比,所以它實(shí)際上是一個(gè)速度傳感器。 2、電渦流式傳感器電渦流傳感器是一種相對(duì)式非接觸式傳感器,它是通過(guò)傳感器端部與被測(cè)物體之間的距離變化來(lái)測(cè)量物體的振動(dòng)位移或幅值的。電渦流傳感器具有頻率范圍寬(010 kHZ),線性工作范圍大、靈敏度高以及非接觸式測(cè)

9、量等優(yōu)點(diǎn),主要應(yīng)用于靜位移的測(cè)量、振動(dòng)位移的測(cè)量、旋轉(zhuǎn)機(jī)械中監(jiān)測(cè)轉(zhuǎn)軸的振動(dòng)測(cè)量。 3、電感式傳感器依據(jù)傳感器的相對(duì)式機(jī)械接收原理,電感式傳感器能把被測(cè)的機(jī)械振動(dòng)參數(shù)的變化轉(zhuǎn)換成為電參量信號(hào)的變化。因此,電感傳感器有二種形式,一是可變間隙,二是可變導(dǎo)磁面積。 4、電容式傳感器電容式傳感器一般分為兩種類型。即可變間隙式和可變公共面積式??勺冮g隙式可以測(cè)量直線振動(dòng)的位移??勺兠娣e式可以測(cè)量扭轉(zhuǎn)振動(dòng)的角位移。 5、慣性式電動(dòng)傳感器慣性式電動(dòng)傳感器由固定部分、可動(dòng)部分以及支承彈簧部分所組成。為了使傳感器工作在位移傳感器狀態(tài),其可動(dòng)部分的質(zhì)量應(yīng)該足夠的大,而支承彈簧的剛度應(yīng)該足夠的小,也就是讓傳感器具有足

10、夠低的固有頻率。 根據(jù)電磁感應(yīng)定律,感應(yīng)電動(dòng)勢(shì)為:u=Blx&r 。式中B為磁通密度,l為線圈在磁場(chǎng)內(nèi)的有效長(zhǎng)度, r x&為線圈在磁場(chǎng)中的相對(duì)速度。 從傳感器的結(jié)構(gòu)上來(lái)說(shuō),慣性式電動(dòng)傳感器是一個(gè)位移傳感器。然而由于其輸出的電信號(hào)是由電磁感應(yīng)產(chǎn)生,根據(jù)電磁感應(yīng)電律,當(dāng)線圈在磁場(chǎng)中作相對(duì)運(yùn)動(dòng)時(shí),所感生的電動(dòng)勢(shì)與線圈切割磁力線的速度成正比。因此就傳感器的輸出信號(hào)來(lái)說(shuō),感應(yīng)電動(dòng)勢(shì)是同被測(cè)振動(dòng)速度成正比的,所以它實(shí)際上是一個(gè)速度傳感器。 6、壓電式傳感器壓電式加速度傳感器的機(jī)械接收部分是慣性式加速度機(jī)械接收原理,機(jī)電部分利用的是壓電晶體的正壓電效應(yīng)。其原理是某些晶體在一定方向的外力作用

11、下或承受變形時(shí),它的晶體面或極化面上將有電荷產(chǎn)生,這種從機(jī)械能(力,變形)到電能(電荷,電場(chǎng))的變換稱為正壓電效應(yīng)。而從電能(電場(chǎng),電壓)到機(jī)械能(變形,力)的變換稱為逆壓電效應(yīng)。 因此利用晶體的壓電效應(yīng),可以制成測(cè)力傳感器,在振動(dòng)測(cè)量中,由于壓電晶體所受的力是慣性質(zhì)量塊的牽連慣性力,所產(chǎn)生的電荷數(shù)與加速度大小成正比,所以壓電式傳感器是加速度傳感器。 7、壓電式力傳感器在振動(dòng)試驗(yàn)中,除了測(cè)量振動(dòng),還經(jīng)常需要測(cè)量對(duì)試件施加的動(dòng)態(tài)激振力。壓電式力傳感器具有頻率范圍寬、動(dòng)態(tài)范圍大、體積小和重量輕等優(yōu)點(diǎn),因而獲得廣泛應(yīng)用。壓電式力傳感器的工作原理是利用壓電晶體的壓電效應(yīng),即壓電式力傳感器的輸出電荷信號(hào)

12、與外力成正比。 8、阻抗頭阻抗頭是一種綜合性傳感器。它集壓電式力傳感器和壓電式加速度傳感器于一體,其作用是在力傳遞點(diǎn)測(cè)量激振力的同時(shí)測(cè)量該點(diǎn)的運(yùn)動(dòng)響應(yīng)。因此阻抗頭由兩部分組成,一部分是力傳感器,另一部分是加速度傳感器,它的優(yōu)點(diǎn)是,保證測(cè)量點(diǎn)的響應(yīng)就是激振點(diǎn)的響應(yīng)。使用時(shí)將小頭(測(cè)力端)連向結(jié)構(gòu),大頭(測(cè)量加速度)與激振器的施力桿相連。從“力信號(hào)輸出端”測(cè)量激振力的信號(hào),從“加速度信號(hào)輸出端”測(cè)量加速度的響應(yīng)信號(hào)。 9、電阻應(yīng)變式傳感器電阻式應(yīng)變式傳感器是將被測(cè)的機(jī)械振動(dòng)量轉(zhuǎn)換成傳感元件電阻的變化量。實(shí)現(xiàn)這種機(jī)電轉(zhuǎn)換的傳感元件有多種形式,其中最常見的是電阻應(yīng)變式傳感器。 電阻應(yīng)變片的工作原理為:

13、應(yīng)變片粘貼在某試件上時(shí),試件受力變形,應(yīng)變片原長(zhǎng)變化,從而應(yīng)變片阻值變化,實(shí)驗(yàn)證明,在試件的彈性變化范圍內(nèi),應(yīng)變片電阻的相對(duì)變化和其長(zhǎng)度的相對(duì)變化成正比。 10、激光傳感器激光傳感器利用激光技術(shù)進(jìn)行測(cè)量的傳感器。它由激光器、激光檢測(cè)器和測(cè)量電路組成。激光傳感器是新型測(cè)量?jī)x表,它的優(yōu)點(diǎn)是能實(shí)現(xiàn)無(wú)接觸遠(yuǎn)距離測(cè)量,速度快,精度高,量程大,抗光、電干擾能力強(qiáng)等,極適合于工業(yè)和實(shí)驗(yàn)室的非接觸測(cè)量應(yīng)用。3 系統(tǒng)設(shè)計(jì)3.1 整體系統(tǒng)設(shè)計(jì)本系統(tǒng)由發(fā)射電路和接收電路組成。其中發(fā)射電路由數(shù)據(jù)采集模塊,單片機(jī)最小系統(tǒng),狀態(tài)指示及報(bào)警模塊,無(wú)線發(fā)射模塊,液晶顯示模塊五部分組成。接收電路由無(wú)線接收模塊,單片機(jī)最小系統(tǒng)和

14、液晶顯示模塊三部分組成。發(fā)射電路系統(tǒng)框圖如圖1所示,其原理圖見附錄一。接收電路系統(tǒng)框圖如圖2所示,其原理圖見附錄二。數(shù)據(jù)采集模塊STC89C52 最小系統(tǒng)無(wú)線發(fā)射模塊狀態(tài)指示及報(bào)警模塊液晶顯示模塊圖1 發(fā)射電路框圖無(wú)線接收模塊STC89C52 最小系統(tǒng)液晶顯示模塊 圖2 接收電路框圖3.2 方案設(shè)計(jì)3.2.1 數(shù)據(jù)采集模塊方案(一):由UZZ9000和KMZ41構(gòu)成的角度檢測(cè)電路:UZZ9000為線性電壓輸出式角度傳感器調(diào)理器電路,輸出電壓與被測(cè)角度信號(hào)成正比;測(cè)量角度的范圍是0180°,且在0100°范圍內(nèi);測(cè)量誤差小于±0.45°分辨力達(dá)0.1

15、76;;測(cè)量范圍和輸出零點(diǎn)均可調(diào)節(jié);電源電壓范圍為+4.5+5.5V;電源電流為10mA;工作溫度范圍是-40+150。由UZZ9000和KMZ41構(gòu)成的電壓輸出式角度檢測(cè)電路如圖3所示。改變R2和R3的比值,可以調(diào)節(jié)傳感器1的偏移量;改變R4和R5的阻值,可以調(diào)節(jié)傳感器2的偏移量;改變R6和R7的比值,可以調(diào)節(jié)零點(diǎn)偏移;改變R8和R9的比值;可以調(diào)節(jié)測(cè)量角度范圍。電阻R2R9可以采用電位器代替。電路輸出電壓送至數(shù)字電壓表或者微控制器系統(tǒng),即可顯示出被測(cè)角度值。該電路可廣泛用于發(fā)動(dòng)機(jī)凸輪/曲軸速度及位置檢測(cè)、節(jié)流閥控制、轉(zhuǎn)向操作控制、汽車中的ABS系統(tǒng)等領(lǐng)域。圖3 電壓輸出式角度檢測(cè)電路方案(

16、二):采用MMA7455L的IIC模式MMA7455L是一款低重力、串行數(shù)據(jù)輸出(包括IIC和SPI模式)、低功耗、緊湊型電容式微機(jī)械加速度傳感器,具有信號(hào)調(diào)理、低通濾波器、溫度補(bǔ)償、自測(cè)、可配置通過(guò)中斷引腳(INT1或INT2)檢測(cè)0g、以及脈沖檢測(cè)(用于快速運(yùn)動(dòng)檢測(cè))等功能。0g偏置和靈敏度是出廠配置,無(wú)需外部器件。我們可以運(yùn)用指定的0g寄存器和g-Select量程選擇對(duì)0g偏置進(jìn)行校準(zhǔn),量程可通過(guò)命令選擇3個(gè)加速度范圍(2g/4g/8g,1g=9.807m/s2)??梢詫?shí)現(xiàn)基于運(yùn)動(dòng)的功能,如傾斜滾動(dòng)、游戲控制、按鍵靜音和手持終端的自由落體硬盤驅(qū)動(dòng)保護(hù)、門限檢測(cè)和點(diǎn)擊檢測(cè)功能等。提供IIC

17、和SPI接口,方便與MCU通訊,因此非常適用于手機(jī)或個(gè)人設(shè)備中的運(yùn)動(dòng)運(yùn)用。MMA7455L還具備待機(jī)模式,使它成為電池供電的手持式電子器件的理想選擇。MMA7455L同時(shí)具有如下特性:封裝小,LGA-(3mm*5mm*1mm)封裝,具備Z軸自檢功能;2.4-3.6V低壓操作;可用指定寄存器進(jìn)行偏移;可編程的閥值中斷輸出;用于動(dòng)作識(shí)別(撞擊、振動(dòng)、自由落體)的電平檢測(cè)功能;用于單擊和雙擊識(shí)別的脈沖檢測(cè)功能;在8bit模式下,測(cè)量的加速度范圍為2g,4g,8g時(shí),其分辨率分別達(dá)到64LSB/g,32LSB/g,16LSB/g??赡透邚?qiáng)度沖擊達(dá)5000g,低功耗特性,使其可用于手持電子設(shè)備等。它是由

18、一個(gè)表面微機(jī)械電容傳感元件(g-cell)和一個(gè)信號(hào)調(diào)理ASIC容納在單一封裝中。g-cell是由半導(dǎo)體材料(多晶硅)使用半導(dǎo)體加工(掩膜和蝕刻)工藝成型的機(jī)械結(jié)構(gòu),它可以建模成連接到一個(gè)可移動(dòng)中心質(zhì)量塊的極板和兩塊固定極板的組合,質(zhì)量塊得極板可以在兩塊固定的極板間移動(dòng)。當(dāng)系統(tǒng)給定一個(gè)加速度值時(shí),中心質(zhì)量塊所附屬的可移動(dòng)極板則偏離它的靜止位置。這樣可移動(dòng)極板到一邊固定板的距離就會(huì)增加,到另一邊的固定板見間的距離就會(huì)減少,距離的班花就是對(duì)加速度值得測(cè)量。g-cell極板組成了兩個(gè)背靠背的電容,當(dāng)在加速度的作用下中從而引起每個(gè)電容值的改變(如圖4所示)。同時(shí)ASIC利用開關(guān)電容技術(shù)測(cè)量g-cell

19、的電容并且從兩個(gè)電容的差別中提取加速度數(shù)據(jù)。ASIC再進(jìn)行型號(hào)調(diào)理、型號(hào)濾波最后提供一個(gè)提供一個(gè)與加速度成比例的數(shù)字輸出。MMA7455L的內(nèi)部結(jié)構(gòu)圖如圖5所示,X,Y,Z三軸互相垂直三軸上的加速度值分別由X軸變換器、Y軸變換器、Z軸變換器感知,再經(jīng)過(guò)容壓轉(zhuǎn)化器、放大增益、AD轉(zhuǎn)換和各種補(bǔ)償修正后以數(shù)字方式通過(guò)SPI或IIC串行接口輸出。圖4 簡(jiǎn)明g-cell物理模型圖5 MMA7455L內(nèi)部結(jié)構(gòu)圖綜上可知,采用MMA7455L的IIC模式電路相對(duì)簡(jiǎn)單,且預(yù)計(jì)能獲得比較好的效果,因此選用方案(二)。3.2.2 液晶顯示模塊方案(一):采用12864液晶顯示JD12864C圖形點(diǎn)陣型液晶顯示模塊

20、。它主要由行驅(qū)動(dòng)器與列驅(qū)動(dòng)器組成,可顯示128(列)× 64(行)點(diǎn)陣??赏瓿蓤D形顯示,也可顯示8×4個(gè)(16×16點(diǎn)陣)中文漢字。七條控制指令,與CPU接口采用8位數(shù)據(jù)總線并口輸入輸出方式。內(nèi)置RAM為512字節(jié)(4096位),共20位引腳。方案(二):采用1602液晶顯示液晶顯示的原理是利用液晶的物理特性,通過(guò)電壓對(duì)其顯示區(qū)域進(jìn)行控制,有電就有顯示,這樣即可以顯示出圖形。液晶顯示器具有厚度薄、適用于大規(guī)模集成電路直接驅(qū)動(dòng)、易于實(shí)現(xiàn)全彩色顯示的特點(diǎn)。1602液晶外設(shè)16個(gè)引腳,顯示板上排列著若干個(gè)5*7點(diǎn)陣的字符顯示位,內(nèi)部具有字符發(fā)生器ROM(CGROM),可

21、顯示192個(gè)5*7點(diǎn)陣字符;模塊內(nèi)有64字節(jié)的自定義字符RAM(CGRAM),可自行定義8個(gè)5*7點(diǎn)陣字符;模塊內(nèi)亦含有80字節(jié)的數(shù)據(jù)顯示存儲(chǔ)器(DDRAM)。根據(jù)它的引腳功能及相應(yīng)的命令格式編寫顯示程序。方案選擇:由于12864體積比較大,且價(jià)格較1602貴,共20個(gè)引腳,占用單片機(jī)的端口較1602多,考慮到制作的方便及實(shí)惠,此系統(tǒng)采用方案(二)。4 硬件設(shè)計(jì)4.1 單片機(jī)最小系統(tǒng)單片機(jī)的最小系統(tǒng)電路圖如圖6所示,在此介紹復(fù)位電路和時(shí)鐘電路。圖6 單片機(jī)最小系統(tǒng)復(fù)位電路:?jiǎn)纹瑱C(jī)STC89C52最小系統(tǒng)的復(fù)位電路由電阻R2,電容C3和復(fù)位開關(guān)S2組成,其復(fù)位端為第9腳。單片機(jī)一上電,由電容電壓

22、變化的連續(xù)性,端立即變?yōu)楦唿c(diǎn)平,實(shí)現(xiàn)單片機(jī)的上電立即復(fù)位功能。單片機(jī)上電后,按下復(fù)位上電開關(guān)S2后,第9腳的電壓由原來(lái)的低電平變?yōu)楦唠娖剑箚纹瑱C(jī)實(shí)現(xiàn)復(fù)位操作。也就是當(dāng)該端子上保持兩個(gè)機(jī)器周期的高水平時(shí),可對(duì)STC89C52單片機(jī)實(shí)現(xiàn)復(fù)位操作。時(shí)鐘電路:時(shí)鐘電路采用內(nèi)部時(shí)鐘方式,由電容C1、C4和11.0592MHz的晶振Y1組成,接在單片機(jī)的第18和19腳(即XTAL1和XTAL2端)。STC89C52內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反向放大器,它的輸入端為芯片引腳XTAL1,輸出端為XTAL2。這兩個(gè)引腳跨接石英晶體和微調(diào)電容,構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。電路中的電容C1、 C4可在530

23、pF之間選擇,該電容的大小通常會(huì)影響振蕩器頻率的高低,振蕩器的穩(wěn)定性和起振的快速性。晶體振蕩的頻率范圍通常是在1.2-12MHZ,晶體的頻率越高,單片機(jī)的運(yùn)行速度也就越快。但反過(guò)來(lái),運(yùn)行速度越快對(duì)存儲(chǔ)器的速度要求就越高,對(duì)印制電路板的要求也就越高,即要求線間的寄生電容要小。晶體和電容應(yīng)盡可能安裝的與單片機(jī)芯片靠近,以減少寄生電容,更好的保證振蕩器穩(wěn)定、可靠的工作。為了提高溫度的穩(wěn)定性,應(yīng)采用溫度穩(wěn)定性能好的電容。4.2 傳感器電路 加速度傳感器電路:MMA7455L的芯片引腳功能說(shuō)明如表1所示。MMA7455L的IIC模式(如圖7所示)通信協(xié)議是根據(jù)菲利普半導(dǎo)體公司的標(biāo)準(zhǔn),在這個(gè)模塊的接口中,

24、只有串行數(shù)據(jù)線(SDA)和串行時(shí)鐘線(SCL)是需要的。8位串行雙向數(shù)據(jù)傳輸在標(biāo)準(zhǔn)模式下可以達(dá)到100kbit/s,在最快的模式下可以達(dá)到400kbit/s。SDA和SCL都是雙向數(shù)據(jù)線,必須通過(guò)上拉電阻連接到正電源。電阻選擇2.2千歐到4.7千歐比較適宜,在此,我選擇4.7千歐。表1 MMA7455L引腳功能說(shuō)明序號(hào)名稱描述狀態(tài)1AVDD_IO3.3V電壓輸入端(數(shù)字)輸入2GND地輸入3NC空角、不接或接地輸入4IADDR0IIC地址0位輸入5GND地輸入6AVDD3.3V電壓輸入端(模擬)輸入7CSSPI使能(0),IIC使能(1)輸入8INT1/DRDY中斷1/數(shù)據(jù)就緒輸出9INT2中

25、斷2輸出10NC空角、不接或接地輸入11NC空角、不接或接地輸入12SDOSPI串行數(shù)據(jù)輸出輸出13SDA/SDI/SDOIIC串行數(shù)據(jù)輸出/SPI串行數(shù)據(jù)輸入/3線串行數(shù)據(jù)接口輸出雙向/輸入/輸出14SCL/SPCIIC/SPI時(shí)鐘信號(hào)輸出輸入圖7 MMA7455L的IIC模式IIC模式連接的好處是很多芯片可以連接到這條總線上,但是也受總線容量的限制。簡(jiǎn)單的2線串行IIC模式將連線最小化,因此模塊有較少的引腳需要連線,體積小,價(jià)格便宜。4.3 顯示電路根據(jù)1602的引腳排布及其控制規(guī)律按如圖8所指示連接電路,10K可調(diào)電阻用于調(diào)節(jié)1602的分辨率。圖8 1602液晶顯示5 軟件設(shè)計(jì)5.1 系

26、統(tǒng)工作流程發(fā)送電路程序流程圖如圖9所示,接收電路程序流程圖如圖10所示。開始向緩沖區(qū)起始位置寫入起始字符向緩沖區(qū)對(duì)應(yīng)位置寫入地址、命令、數(shù)據(jù)程度計(jì)算校驗(yàn)和并加入所有數(shù)據(jù)已發(fā)送完返回YN發(fā)送緩沖區(qū)中數(shù)據(jù)發(fā)送程序流程圖N開始初始化反傳感器發(fā)送請(qǐng)求讀數(shù)據(jù)數(shù)據(jù)處理返回Y串口送出返回接受開始字符標(biāo)志置位Y開始清RI位是開始字符嗎已經(jīng)接受開始字符標(biāo)志置位NN返回是結(jié)束字符嗎NYY接收數(shù)據(jù)返回計(jì)算校驗(yàn)和N校驗(yàn)正確確?Y接受完成標(biāo)志置位,已經(jīng)接受開始字符標(biāo)志清零,準(zhǔn)備下一次接受清接受緩沖區(qū),接收完成標(biāo)志置位符開始字符標(biāo)志和接收返回返回接收電路程序流程圖5.2 程序設(shè)計(jì)/*/ GY-45 MMA8452 IIC

27、測(cè)試程序/ 使用單片機(jī)STC89C51 / 晶振:11.0592M/ 顯示:電腦串口 波特率 9600/ 編譯環(huán)境 Keil uVision4/*#include <REG51.H>#include <math.h> /Keil library #include <stdio.h> /Keil library#include <INTRINS.H>#define uchar unsigned char#define uint unsigned intsbit SCL=P27; /IIC時(shí)鐘引腳定義sbit SDA=P26; /IIC數(shù)據(jù)引腳定義#

28、defineSlaveAddress 0x38/定義器件在IIC總線中的從地址,根據(jù)SA0地址引腳不同修改typedef unsigned char BYTE;typedef unsigned short WORD;BYTE BUF8; /接收數(shù)據(jù)緩存區(qū) uchar ge,shi,bai,qian,wan; /顯示變量int dis_data; /變量int x,y,z;void delay(unsigned int k);void Init_MMA8452(void); /初始化MMA8452void conversion(uint temp_data);void Single_Write_

29、MMA8452(uchar REG_Address,uchar REG_data); /單個(gè)寫入數(shù)據(jù)uchar Single_Read_MMA8452(uchar REG_Address); /單個(gè)讀取內(nèi)部寄存器數(shù)據(jù)void Multiple_Read_MMA8452(); /連續(xù)的讀取內(nèi)部寄存器數(shù)據(jù)/-void Delay5us();void Delay5ms();void MMA8452_Start();void MMA8452_Stop();void MMA8452_SendACK(bit ack);bit MMA8452_RecvACK();void MMA8452_SendByte(

30、BYTE dat);BYTE MMA8452_RecvByte();void MMA8452_ReadPage();void MMA8452_WritePage();uchar RX_DATA;/-void serial_serve(void) interrupt 4 RI=0;RX_DATA=SBUF;/*/串口初始化/9600 bps 11.059 MHz void init_uart()TMOD=0x21;TH1=0xfd;TL1=0xfd;SCON=0x50;PS=1; /串口中斷設(shè)為高優(yōu)先級(jí)別TR0=1; /啟動(dòng)定時(shí)器TR1=1;ET0=1; /打開定時(shí)器0中斷ES=1;EA=1;/

31、*串口數(shù)據(jù)發(fā)送*void SeriPushSend(uchar send_data) SBUF=send_data; while(!TI);TI=0; /*void conversion(uint temp_data) wan=temp_data/10000+0x30 ; temp_data=temp_data%10000; /取余運(yùn)算qian=temp_data/1000+0x30 ; temp_data=temp_data%1000; /取余運(yùn)算 bai=temp_data/100+0x30 ; temp_data=temp_data%100; /取余運(yùn)算 shi=temp_data/10

32、+0x30 ; temp_data=temp_data%10; /取余運(yùn)算 ge=temp_data+0x30; /*/void delay(unsigned int k)unsigned int i,j;for(i=0;i<k;i+)for(j=0;j<121;j+);/*延時(shí)5微秒(STC90C52RC12M)不同的工作環(huán)境,需要調(diào)整此函數(shù),注意時(shí)鐘過(guò)快時(shí)需要修改當(dāng)改用1T的MCU時(shí),請(qǐng)調(diào)整此延時(shí)函數(shù)*/void Delay5us() _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_()

33、;_nop_();_nop_();_nop_();/*延時(shí)5毫秒(STC90C52RC12M)不同的工作環(huán)境,需要調(diào)整此函數(shù)當(dāng)改用1T的MCU時(shí),請(qǐng)調(diào)整此延時(shí)函數(shù)*/void Delay5ms() WORD n = 560; while (n-);/*起始信號(hào)*/void MMA8452_Start() SDA = 1; /拉高數(shù)據(jù)線 SCL = 1; /拉高時(shí)鐘線 Delay5us(); /延時(shí) SDA = 0; /產(chǎn)生下降沿 Delay5us(); /延時(shí) SCL = 0; /拉低時(shí)鐘線/*停止信號(hào)*/void MMA8452_Stop() SDA = 0; /拉低數(shù)據(jù)線 SCL = 1;

34、 /拉高時(shí)鐘線 Delay5us(); /延時(shí) SDA = 1; /產(chǎn)生上升沿 Delay5us(); /延時(shí)/*發(fā)送應(yīng)答信號(hào)入口參數(shù):ack (0:ACK 1:NAK)*/void MMA8452_SendACK(bit ack) SDA = ack; /寫應(yīng)答信號(hào) SCL = 1; /拉高時(shí)鐘線 Delay5us(); /延時(shí) SCL = 0; /拉低時(shí)鐘線 Delay5us(); /延時(shí)/*接收應(yīng)答信號(hào)*/bit MMA8452_RecvACK() SCL = 1; /拉高時(shí)鐘線 Delay5us(); /延時(shí) CY = SDA; /讀應(yīng)答信號(hào) SCL = 0; /拉低時(shí)鐘線 Delay

35、5us(); /延時(shí) return CY;/*向IIC總線發(fā)送一個(gè)字節(jié)數(shù)據(jù)*/void MMA8452_SendByte(BYTE dat) BYTE i; for (i=0; i<8; i+) /8位計(jì)數(shù)器 dat <<= 1; /移出數(shù)據(jù)的最高位 SDA = CY; /送數(shù)據(jù)口 SCL = 1; /拉高時(shí)鐘線 Delay5us(); /延時(shí) SCL = 0; /拉低時(shí)鐘線 Delay5us(); /延時(shí) MMA8452_RecvACK();/*從IIC總線接收一個(gè)字節(jié)數(shù)據(jù)*/BYTE MMA8452_RecvByte() BYTE i; BYTE dat = 0; SDA

36、 = 1; /使能內(nèi)部上拉,準(zhǔn)備讀取數(shù)據(jù), for (i=0; i<8; i+) /8位計(jì)數(shù)器 dat <<= 1; SCL = 1; /拉高時(shí)鐘線 Delay5us(); /延時(shí) dat |= SDA; /讀數(shù)據(jù) SCL = 0; /拉低時(shí)鐘線 Delay5us(); /延時(shí) return dat;/*單字節(jié)寫入*void Single_Write_MMA8452(uchar REG_Address,uchar REG_data) MMA8452_Start(); /起始信號(hào) MMA8452_SendByte(SlaveAddress); /發(fā)送設(shè)備地址+寫信號(hào) MMA84

37、52_SendByte(REG_Address); /內(nèi)部寄存器地址 MMA8452_SendByte(REG_data); /內(nèi)部寄存器數(shù)據(jù) MMA8452_Stop(); /發(fā)送停止信號(hào)/*單字節(jié)讀取*/*uchar Single_Read_MMA8452(uchar REG_Address) uchar REG_data; MMA8452_Start(); /起始信號(hào) MMA8452_SendByte(SlaveAddress); /發(fā)送設(shè)備地址+寫信號(hào) MMA8452_SendByte(REG_Address); /發(fā)送存儲(chǔ)單元地址,從0開始 MMA8452_Start(); /起始信

38、號(hào) MMA8452_SendByte(SlaveAddress+1); /發(fā)送設(shè)備地址+讀信號(hào) REG_data=MMA8452_RecvByte(); /讀出寄存器數(shù)據(jù)MMA8452_SendACK(1); MMA8452_Stop(); /停止信號(hào) return REG_data; */*/連續(xù)讀出MMA8452內(nèi)部加速度數(shù)據(jù),地址范圍0x010x06/*void Multiple_read_MMA8452(void) uchar i; MMA8452_Start(); /起始信號(hào) MMA8452_SendByte(SlaveAddress); /發(fā)送設(shè)備地址+寫信號(hào) MMA8452_Se

39、ndByte(0x01); /發(fā)送存儲(chǔ)單元地址,從0x01開始 MMA8452_Start(); /起始信號(hào) MMA8452_SendByte(SlaveAddress+1); /發(fā)送設(shè)備地址+讀信號(hào) for (i=0; i<6; i+) /連續(xù)讀取6個(gè)地址數(shù)據(jù),存儲(chǔ)中BUF BUFi = MMA8452_RecvByte(); /BUF0存儲(chǔ)0x32地址中的數(shù)據(jù) if (i = 5) MMA8452_SendACK(1); /最后一個(gè)數(shù)據(jù)需要回NOACK else MMA8452_SendACK(0); /回應(yīng)ACK MMA8452_Stop(); /停止信號(hào) Delay5ms();/

40、*/初始化MMA8452,根據(jù)需要請(qǐng)參考pdf進(jìn)行修改*void Init_MMA8452() Single_Write_MMA8452(0x2A,0x01); / Single_Write_MMA8452(0x2B,0x02); /*/顯示x軸void display_x() float temp; / SeriPushSend('X'); dis_data=(BUF0<<8)|BUF1; /合成數(shù)據(jù) dis_data>>=4;x=dis_data;if(dis_data<0) dis_data=-dis_data; SeriPushSend(&

41、#39;-');else SeriPushSend('+'); temp=(float)dis_data; /計(jì)算數(shù)據(jù)和顯示 conversion(temp); /轉(zhuǎn)換出顯示需要的數(shù)據(jù) / SeriPushSend(':'); SeriPushSend(qian);SeriPushSend('.');SeriPushSend(bai);SeriPushSend(shi);/*/顯示y軸void display_y() float temp; SeriPushSend('Y'); dis_data=(BUF2<<

42、8)|BUF3; /合成數(shù)據(jù) dis_data>>=4;y=dis_data;if(dis_data<0)dis_data=-dis_data; SeriPushSend('-');else SeriPushSend('+'); temp=(float)dis_data; /計(jì)算數(shù)據(jù)和顯示 conversion(temp); /轉(zhuǎn)換出顯示需要的數(shù)據(jù)SeriPushSend(':');SeriPushSend(qian);SeriPushSend('.');SeriPushSend(bai);SeriPushSen

43、d(shi);/*/顯示z軸void display_z() float temp; SeriPushSend('Z'); dis_data=(BUF4<<8)|BUF5; /合成數(shù)據(jù) dis_data>>=4;z=dis_data;if(dis_data<0)dis_data=-dis_data; SeriPushSend('-');else SeriPushSend('+'); temp=(float)dis_data; /計(jì)算數(shù)據(jù)和顯示 conversion(temp); /轉(zhuǎn)換出顯示需要的數(shù)據(jù) SeriPushSend(':');SeriPushSend(qian);SeriPushSend('.');SeriPushSend(bai);SeriPushSend(shi);/*/*主程序*/*void main() / uchar devid; delay(2); /上電延時(shí) init_uart(); Init_MMA8452(); /初始化MMA8452 RX_DATA=0; while(1) /循環(huán) / if( RX_DATA=0x31) Init_MMA8452(); /初

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論