版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
信號檢測綜合訓(xùn)練說明書題目:振動信號檢測系統(tǒng)設(shè)計學(xué)院:電氣工程與信息工程學(xué)院班級:電子信息科學(xué)與技術(shù)(2)班姓名:江峰學(xué)號:11260204指導(dǎo)老師:緱新科2014年12月04日摘要振動從形式上看,有的是來回擺動,有的是往復(fù)直線運動,有的是旋轉(zhuǎn)運動等,種類很多,形式不一,但它們都有一個共同的特點,即物體在運動過程中總是在它自己的平衡位置附近,一次又一次地重復(fù)地運動著。因此,我們把物體在其平衡位置附近所做的往復(fù)性的運動稱為振動。研究振動的目的是為了了解各種機械振動的現(xiàn)象的機理,破譯機械振動所包含的大量信息,進而對設(shè)備的狀態(tài)進行監(jiān)測,分析設(shè)備的潛在可能故障。本課題主要選用位移傳感器結(jié)合微分電路測得最大位移,最大速度,最大加速度,并且利用LCD顯示振動信號。本論文首先介紹了振動檢測的原理;其次介紹了整體系統(tǒng)的設(shè)計和各模塊方案的比較,選擇;接著介紹了各部分電路的設(shè)計及原理;再者介紹了軟件設(shè)計流程并附上了程序代碼;最后論述了系統(tǒng)的調(diào)試過程。關(guān)鍵詞:單片機;振動;加速度;檢測目錄摘要 I1前言 12振動檢測原理 22.1振動分類 22.2振動檢測原理 22.3振動傳感器的分類 23系統(tǒng)設(shè)計 53.1整體系統(tǒng)設(shè)計 53.2方案設(shè)計 53.2.1數(shù)據(jù)采集模塊 53.2.2液晶顯示模塊 54硬件設(shè)計 94.1單片機最小系統(tǒng) 94.2傳感器電路 104.3顯示電路 115軟件設(shè)計 125.1系統(tǒng)工作流程 125.2程序設(shè)計 156系統(tǒng)調(diào)試 246.1系統(tǒng)實物圖 246.2整體系統(tǒng)測試 246.3測試結(jié)果分析 256.4結(jié)論 257總結(jié) 257.1總結(jié) 25附錄1 271前言傳感器技術(shù)是現(xiàn)代測量和自動化系統(tǒng)的重要技術(shù)之一,從宇宙開發(fā)到海底探秘,從生產(chǎn)的過程控制到現(xiàn)代文明生活,幾乎每一項技術(shù)都離不開傳感器,因此,許多國家對傳感器技術(shù)的發(fā)展十分重視,如日本把傳感器技術(shù)列為六大核心技術(shù)(計算機、通信、激光、半導(dǎo)體、超導(dǎo)體和傳感器)之一。角度傳感器和加速度傳感器在當代工業(yè)控制、儀表測量、航空航海等領(lǐng)域中有著十分廣泛的應(yīng)用。傳統(tǒng)的角度傳感器如:增量編碼器、同步機等存在接觸面、觸點易磨損,必須定期進行更換,在實際應(yīng)用中降低了設(shè)備的可靠性,增加了維修成本。本設(shè)計研究設(shè)計的加速度傳感器和角度傳感器能夠?qū)崟r測量物體振動加速度和角度,具有廣泛的應(yīng)用前景。隨著基于單片機的檢測技術(shù)的不斷發(fā)展,近些年來我國對角度測量技術(shù)進行理論上的研究,在生產(chǎn)實踐中投入了具體的應(yīng)用。但我國在此方面的實際應(yīng)用技術(shù)與國外比還有較大差距。國內(nèi)生產(chǎn)的該種儀器性能方面有待提高,國外進口的又價格昂貴,使得該儀器難以推廣和銷售,高性能角度測量設(shè)備的缺失導(dǎo)致了大量經(jīng)濟損失。因此可以說角度測量技術(shù)的研究與開發(fā)有著廣闊的前景,并且能夠帶來可觀的經(jīng)濟效益和社會效益幾乎所有的物理現(xiàn)象都可看作是信號,但這里我們特指動態(tài)振動信號。振動信號采集與一般性模擬信號采集雖有共同之處,但存在的差異更多,因此,在采集振動信號時應(yīng)注意以下幾點:1.振動信號采集模式取決于機組當時的工作狀態(tài),如穩(wěn)態(tài)、瞬態(tài)等;2.變轉(zhuǎn)速運行設(shè)備的振動信號采集在有條件時應(yīng)采取同步整周期采集;3.所有工作狀態(tài)下振動信號采集均應(yīng)符合采樣定理。對信號預(yù)處理具有特定要求是振動信號本身的特性所致。信號預(yù)處理的功能在一定程度上說是影響后續(xù)信號分析的重要因素。預(yù)處理方法的選擇也要注意以下條件:1.在涉及相位計算或顯示時盡量不采用抗混濾波;2.在計算頻譜時采用低通抗混濾波;3.在處理瞬態(tài)過程中1X矢量、2X矢量的快速處理時采用矢量濾波。2振動檢測原理2.1振動分類在日常的生活和生產(chǎn)活動中,我們經(jīng)??梢钥吹轿矬w的振動現(xiàn)象,例如:運動場上秋千的擺動,汽車啟動時發(fā)動機引起的車體顫動,機床的振動等。這些振動從形式上看,有的是來回擺動,有的是往復(fù)直線運動,有的是旋轉(zhuǎn)運動等,種類很多,形式不一,但它們都有一個共同的特點,即物體在運動過程中總是在它自己的平衡位置附近,一次又一次地重復(fù)地運動著。因此,我們把物體在其平衡位置附近所做的往復(fù)性的運動稱為振動。研究振動的目的是為了了解各種機械振動現(xiàn)象的機理,破譯機械振動所包含的大量信息,進而對設(shè)備的狀態(tài)進行監(jiān)測,分析設(shè)備的潛在可能故障。2.2振動檢測原理振動傳感器有振動位移、振動速度和振動加速度傳感器。簡單地說,振動位移傳感器(常用電渦流傳感器)根據(jù)振動位移變化與輸出電壓的變化關(guān)系,振動速度傳感器根據(jù)相對運動切割磁力線產(chǎn)生電壓的變化,振動加速度傳感器根據(jù)形變與電荷的關(guān)系。速度傳感器通過硬件或軟件積分可以得到位移,加速度傳感器通過一次積分可以得到振動速度,二次積分可以得到振動位移。因為需要測量加速度,所以必須有振動加速度傳感器。振動傳感器在測試技術(shù)中是關(guān)鍵部件之一,它的作用并不是直接將原始要測的機械量轉(zhuǎn)變?yōu)殡娏?,而是將原始要測的機械量做為振動傳感器的輸入量,然后由機械接收部分加以接收,形成另一個適合于變換的機械量,最后由機電變換部分再將變換為電量。因此一個傳感器的工作性能是由機械接收部分和機電變換部分的工作性能來決定的。2.3振動傳感器的分類1、相對式電動傳感器電動式傳感器基于電磁感應(yīng)原理,即當運動的導(dǎo)體在固定的磁場里切割磁力線時,導(dǎo)體兩端就感生出電動勢,因此利用這一原理而生產(chǎn)的傳感器稱為電動式傳感器。相對式電動傳感器從機械接收原理來說,是一個位移傳感器,由于在機電變換原理中應(yīng)用的是電磁感應(yīng)電律,其產(chǎn)生的電動勢同被測振動速度成正比,所以它實際上是一個速度傳感器。2、電渦流式傳感器電渦流傳感器是一種相對式非接觸式傳感器,它是通過傳感器端部與被測物體之間的距離變化來測量物體的振動位移或幅值的。電渦流傳感器具有頻率范圍寬(0~10kHZ),線性工作范圍大、靈敏度高以及非接觸式測量等優(yōu)點,主要應(yīng)用于靜位移的測量、振動位移的測量、旋轉(zhuǎn)機械中監(jiān)測轉(zhuǎn)軸的振動測量。3、電感式傳感器依據(jù)傳感器的相對式機械接收原理,電感式傳感器能把被測的機械振動參數(shù)的變化轉(zhuǎn)換成為電參量信號的變化。因此,電感傳感器有二種形式,一是可變間隙,二是可變導(dǎo)磁面積。4、電容式傳感器電容式傳感器一般分為兩種類型。即可變間隙式和可變公共面積式??勺冮g隙式可以測量直線振動的位移??勺兠娣e式可以測量扭轉(zhuǎn)振動的角位移。5、慣性式電動傳感器慣性式電動傳感器由固定部分、可動部分以及支承彈簧部分所組成。為了使傳感器工作在位移傳感器狀態(tài),其可動部分的質(zhì)量應(yīng)該足夠的大,而支承彈簧的剛度應(yīng)該足夠的小,也就是讓傳感器具有足夠低的固有頻率。根據(jù)電磁感應(yīng)定律,感應(yīng)電動勢為:u=Blx&r。式中B為磁通密度,l為線圈在磁場內(nèi)的有效長度,rx&為線圈在磁場中的相對速度。從傳感器的結(jié)構(gòu)上來說,慣性式電動傳感器是一個位移傳感器。然而由于其輸出的電信號是由電磁感應(yīng)產(chǎn)生,根據(jù)電磁感應(yīng)電律,當線圈在磁場中作相對運動時,所感生的電動勢與線圈切割磁力線的速度成正比。因此就傳感器的輸出信號來說,感應(yīng)電動勢是同被測振動速度成正比的,所以它實際上是一個速度傳感器。6、壓電式傳感器壓電式加速度傳感器的機械接收部分是慣性式加速度機械接收原理,機電部分利用的是壓電晶體的正壓電效應(yīng)。其原理是某些晶體在一定方向的外力作用下或承受變形時,它的晶體面或極化面上將有電荷產(chǎn)生,這種從機械能(力,變形)到電能(電荷,電場)的變換稱為正壓電效應(yīng)。而從電能(電場,電壓)到機械能(變形,力)的變換稱為逆壓電效應(yīng)。因此利用晶體的壓電效應(yīng),可以制成測力傳感器,在振動測量中,由于壓電晶體所受的力是慣性質(zhì)量塊的牽連慣性力,所產(chǎn)生的電荷數(shù)與加速度大小成正比,所以壓電式傳感器是加速度傳感器。7、壓電式力傳感器在振動試驗中,除了測量振動,還經(jīng)常需要測量對試件施加的動態(tài)激振力。壓電式力傳感器具有頻率范圍寬、動態(tài)范圍大、體積小和重量輕等優(yōu)點,因而獲得廣泛應(yīng)用。壓電式力傳感器的工作原理是利用壓電晶體的壓電效應(yīng),即壓電式力傳感器的輸出電荷信號與外力成正比。8、阻抗頭阻抗頭是一種綜合性傳感器。它集壓電式力傳感器和壓電式加速度傳感器于一體,其作用是在力傳遞點測量激振力的同時測量該點的運動響應(yīng)。因此阻抗頭由兩部分組成,一部分是力傳感器,另一部分是加速度傳感器,它的優(yōu)點是,保證測量點的響應(yīng)就是激振點的響應(yīng)。使用時將小頭(測力端)連向結(jié)構(gòu),大頭(測量加速度)與激振器的施力桿相連。從“力信號輸出端”測量激振力的信號,從“加速度信號輸出端”測量加速度的響應(yīng)信號。9、電阻應(yīng)變式傳感器電阻式應(yīng)變式傳感器是將被測的機械振動量轉(zhuǎn)換成傳感元件電阻的變化量。實現(xiàn)這種機電轉(zhuǎn)換的傳感元件有多種形式,其中最常見的是電阻應(yīng)變式傳感器。電阻應(yīng)變片的工作原理為:應(yīng)變片粘貼在某試件上時,試件受力變形,應(yīng)變片原長變化,從而應(yīng)變片阻值變化,實驗證明,在試件的彈性變化范圍內(nèi),應(yīng)變片電阻的相對變化和其長度的相對變化成正比。10、激光傳感器激光傳感器利用激光技術(shù)進行測量的傳感器。它由激光器、激光檢測器和測量電路組成。激光傳感器是新型測量儀表,它的優(yōu)點是能實現(xiàn)無接觸遠距離測量,速度快,精度高,量程大,抗光、電干擾能力強等,極適合于工業(yè)和實驗室的非接觸測量應(yīng)用。3系統(tǒng)設(shè)計3.1整體系統(tǒng)設(shè)計本系統(tǒng)由發(fā)射電路和接收電路組成。其中發(fā)射電路由數(shù)據(jù)采集模塊,單片機最小系統(tǒng),狀態(tài)指示及報警模塊,無線發(fā)射模塊,液晶顯示模塊五部分組成。接收電路由無線接收模塊,單片機最小系統(tǒng)和液晶顯示模塊三部分組成。發(fā)射電路系統(tǒng)框圖如圖1所示,其原理圖見附錄一。接收電路系統(tǒng)框圖如圖2所示,其原理圖見附錄二。數(shù)據(jù)采集數(shù)據(jù)采集模塊STC89C52最小系統(tǒng)無線發(fā)射模塊狀態(tài)指示及報警模塊液晶顯示模塊圖1發(fā)射電路框圖無線接收無線接收模塊STC89C52最小系統(tǒng)液晶顯示模塊圖2接收電路框圖3.2方案設(shè)計3.2.1數(shù)據(jù)采集模塊方案(一):由UZZ9000和KMZ41構(gòu)成的角度檢測電路:UZZ9000為線性電壓輸出式角度傳感器調(diào)理器電路,輸出電壓與被測角度信號成正比;測量角度的范圍是0~180°,且在0~100°范圍內(nèi);測量誤差小于±0.45°分辨力達0.1°;測量范圍和輸出零點均可調(diào)節(jié);電源電壓范圍為+4.5~+5.5V;電源電流為10mA;工作溫度范圍是-40~+150℃。由UZZ9000和KMZ41構(gòu)成的電壓輸出式角度檢測電路如圖3所示。改變R2和R3的比值,可以調(diào)節(jié)傳感器1的偏移量;改變R4和R5的阻值,可以調(diào)節(jié)傳感器2的偏移量;改變R6和R7的比值,可以調(diào)節(jié)零點偏移;改變R8和R9的比值;可以調(diào)節(jié)測量角度范圍。電阻R2~R9可以采用電位器代替。電路輸出電壓送至數(shù)字電壓表或者微控制器系統(tǒng),即可顯示出被測角度值。該電路可廣泛用于發(fā)動機凸輪/曲軸速度及位置檢測、節(jié)流閥控制、轉(zhuǎn)向操作控制、汽車中的ABS系統(tǒng)等領(lǐng)域。圖3電壓輸出式角度檢測電路方案(二):采用MMA7455L的IIC模式MMA7455L是一款低重力、串行數(shù)據(jù)輸出(包括IIC和SPI模式)、低功耗、緊湊型電容式微機械加速度傳感器,具有信號調(diào)理、低通濾波器、溫度補償、自測、可配置通過中斷引腳(INT1或INT2)檢測0g、以及脈沖檢測(用于快速運動檢測)等功能。0g偏置和靈敏度是出廠配置,無需外部器件。我們可以運用指定的0g寄存器和g-Select量程選擇對0g偏置進行校準,量程可通過命令選擇3個加速度范圍(2g/4g/8g,1g=9.807m/s2)??梢詫崿F(xiàn)基于運動的功能,如傾斜滾動、游戲控制、按鍵靜音和手持終端的自由落體硬盤驅(qū)動保護、門限檢測和點擊檢測功能等。提供IIC和SPI接口,方便與MCU通訊,因此非常適用于手機或個人設(shè)備中的運動運用。MMA7455L還具備待機模式,使它成為電池供電的手持式電子器件的理想選擇。MMA7455L同時具有如下特性:封裝小,LGA-(3mm*5mm*1mm)封裝,具備Z軸自檢功能;2.4-3.6V低壓操作;可用指定寄存器進行偏移;可編程的閥值中斷輸出;用于動作識別(撞擊、振動、自由落體)的電平檢測功能;用于單擊和雙擊識別的脈沖檢測功能;在8bit模式下,測量的加速度范圍為2g,4g,8g時,其分辨率分別達到64LSB/g,32LSB/g,16LSB/g??赡透邚姸葲_擊達5000g,低功耗特性,使其可用于手持電子設(shè)備等。它是由一個表面微機械電容傳感元件(g-cell)和一個信號調(diào)理ASIC容納在單一封裝中。g-cell是由半導(dǎo)體材料(多晶硅)使用半導(dǎo)體加工(掩膜和蝕刻)工藝成型的機械結(jié)構(gòu),它可以建模成連接到一個可移動中心質(zhì)量塊的極板和兩塊固定極板的組合,質(zhì)量塊得極板可以在兩塊固定的極板間移動。當系統(tǒng)給定一個加速度值時,中心質(zhì)量塊所附屬的可移動極板則偏離它的靜止位置。這樣可移動極板到一邊固定板的距離就會增加,到另一邊的固定板見間的距離就會減少,距離的班花就是對加速度值得測量。g-cell極板組成了兩個背靠背的電容,當在加速度的作用下中從而引起每個電容值的改變(如圖4所示)。同時ASIC利用開關(guān)電容技術(shù)測量g-cell的電容并且從兩個電容的差別中提取加速度數(shù)據(jù)。ASIC再進行型號調(diào)理、型號濾波最后提供一個提供一個與加速度成比例的數(shù)字輸出。MMA7455L的內(nèi)部結(jié)構(gòu)圖如圖5所示,X,Y,Z三軸互相垂直 三軸上的加速度值分別由X軸變換器、Y軸變換器、Z軸變換器感知,再經(jīng)過容壓轉(zhuǎn)化器、放大增益、AD轉(zhuǎn)換和各種補償修正后以數(shù)字方式通過SPI或IIC串行接口輸出。圖4簡明g-cell物理模型圖5MMA7455L內(nèi)部結(jié)構(gòu)圖綜上可知,采用MMA7455L的IIC模式電路相對簡單,且預(yù)計能獲得比較好的效果,因此選用方案(二)。液晶顯示模塊方案(一):采用12864液晶顯示JD12864C圖形點陣型液晶顯示模塊。它主要由行驅(qū)動器與列驅(qū)動器組成,可顯示128(列)×64(行)點陣??赏瓿蓤D形顯示,也可顯示8×4個(16×16點陣)中文漢字。七條控制指令,與CPU接口采用8位數(shù)據(jù)總線并口輸入輸出方式。內(nèi)置RAM為512字節(jié)(4096位),共20位引腳。方案(二):采用1602液晶顯示液晶顯示的原理是利用液晶的物理特性,通過電壓對其顯示區(qū)域進行控制,有電就有顯示,這樣即可以顯示出圖形。液晶顯示器具有厚度薄、適用于大規(guī)模集成電路直接驅(qū)動、易于實現(xiàn)全彩色顯示的特點。1602液晶外設(shè)16個引腳,顯示板上排列著若干個5*7點陣的字符顯示位,內(nèi)部具有字符發(fā)生器ROM(CGROM),可顯示192個5*7點陣字符;模塊內(nèi)有64字節(jié)的自定義字符RAM(CGRAM),可自行定義8個5*7點陣字符;模塊內(nèi)亦含有80字節(jié)的數(shù)據(jù)顯示存儲器(DDRAM)。根據(jù)它的引腳功能及相應(yīng)的命令格式編寫顯示程序。方案選擇:由于12864體積比較大,且價格較1602貴,共20個引腳,占用單片機的端口較1602多,考慮到制作的方便及實惠,此系統(tǒng)采用方案(二)。4硬件設(shè)計4.1單片機最小系統(tǒng)單片機的最小系統(tǒng)電路圖如圖6所示,在此介紹復(fù)位電路和時鐘電路。圖6單片機最小系統(tǒng)復(fù)位電路:單片機STC89C52最小系統(tǒng)的復(fù)位電路由電阻R2,電容C3和復(fù)位開關(guān)S2組成,其復(fù)位端為第9腳。單片機一上電,由電容電壓變化的連續(xù)性,端立即變?yōu)楦唿c平,實現(xiàn)單片機的上電立即復(fù)位功能。單片機上電后,按下復(fù)位上電開關(guān)S2后,第9腳的電壓由原來的低電平變?yōu)楦唠娖?,使單片機實現(xiàn)復(fù)位操作。也就是當該端子上保持兩個機器周期的高水平時,可對STC89C52單片機實現(xiàn)復(fù)位操作。時鐘電路:時鐘電路采用內(nèi)部時鐘方式,由電容C1、C4和11.0592MHz的晶振Y1組成,接在單片機的第18和19腳(即XTAL1和XTAL2端)。STC89C52內(nèi)部有一個用于構(gòu)成振蕩器的高增益反向放大器,它的輸入端為芯片引腳XTAL1,輸出端為XTAL2。這兩個引腳跨接石英晶體和微調(diào)電容,構(gòu)成一個穩(wěn)定的自激振蕩器。電路中的電容C1、C4可在5~30pF之間選擇,該電容的大小通常會影響振蕩器頻率的高低,振蕩器的穩(wěn)定性和起振的快速性。晶體振蕩的頻率范圍通常是在1.2-12MHZ,晶體的頻率越高,單片機的運行速度也就越快。但反過來,運行速度越快對存儲器的速度要求就越高,對印制電路板的要求也就越高,即要求線間的寄生電容要小。晶體和電容應(yīng)盡可能安裝的與單片機芯片靠近,以減少寄生電容,更好的保證振蕩器穩(wěn)定、可靠的工作。為了提高溫度的穩(wěn)定性,應(yīng)采用溫度穩(wěn)定性能好的電容。4.2傳感器電路加速度傳感器電路:MMA7455L的芯片引腳功能說明如表1所示。MMA7455L的IIC模式(如圖7所示)通信協(xié)議是根據(jù)菲利普半導(dǎo)體公司的標準,在這個模塊的接口中,只有串行數(shù)據(jù)線(SDA)和串行時鐘線(SCL)是需要的。8位串行雙向數(shù)據(jù)傳輸在標準模式下可以達到100kbit/s,在最快的模式下可以達到400kbit/s。SDA和SCL都是雙向數(shù)據(jù)線,必須通過上拉電阻連接到正電源。電阻選擇2.2千歐到4.7千歐比較適宜,在此,我選擇4.7千歐。表1MMA7455L引腳功能說明序號名稱描述狀態(tài)1AVDD_IO3.3V電壓輸入端(數(shù)字)輸入2GND地輸入3NC空角、不接或接地輸入4IADDR0IIC地址0位輸入5GND地輸入6AVDD3.3V電壓輸入端(模擬)輸入7CSSPI使能(0),IIC使能(1)輸入8INT1/DRDY中斷1/數(shù)據(jù)就緒輸出9INT2中斷2輸出10NC空角、不接或接地輸入11NC空角、不接或接地輸入12SDOSPI串行數(shù)據(jù)輸出輸出13SDA/SDI/SDOIIC串行數(shù)據(jù)輸出/SPI串行數(shù)據(jù)輸入/3線串行數(shù)據(jù)接口輸出雙向/輸入/輸出14SCL/SPCIIC/SPI時鐘信號輸出輸入圖7MMA7455L的IIC模式IIC模式連接的好處是很多芯片可以連接到這條總線上,但是也受總線容量的限制。簡單的2線串行IIC模式將連線最小化,因此模塊有較少的引腳需要連線,體積小,價格便宜。4.3顯示電路根據(jù)1602的引腳排布及其控制規(guī)律按如圖8所指示連接電路,10K可調(diào)電阻用于調(diào)節(jié)1602的分辨率。圖81602液晶顯示5軟件設(shè)計 5.1系統(tǒng)工作流程發(fā)送電路程序流程圖如圖9所示,接收電路程序流程圖如圖10所示。開始向緩沖區(qū)起始位置寫入起始字符開始向緩沖區(qū)起始位置寫入起始字符向緩沖區(qū)對應(yīng)位置寫入地址、命令、數(shù)據(jù)程度計算校驗和并加入所有數(shù)據(jù)已發(fā)送完返回Y所有數(shù)據(jù)已發(fā)送完返回YN發(fā)送緩沖區(qū)中數(shù)據(jù)發(fā)送程序流程圖N開始初始化N開始初始化反傳感器發(fā)送請求讀數(shù)據(jù)數(shù)據(jù)處理返回Y串口送出串口送出返回接受開始字符標志置位Y返回接受開始字符標志置位Y開始清RI位是開始字符嗎已經(jīng)接受開始字符標志置位NN返回是結(jié)束字符嗎NY返回是結(jié)束字符嗎NYY接收數(shù)據(jù)返回Y接收數(shù)據(jù)返回計算校驗和計算校驗和NN校驗正確確?校驗正確確?YY接受完成標志置位,已經(jīng)接受開始字符標志清零,準備下一次接受清接受緩沖區(qū),接收完成標志置位符開始字符標志和接收接受完成標志置位,已經(jīng)接受開始字符標志清零,準備下一次接受清接受緩沖區(qū),接收完成標志置位符開始字符標志和接收返回返回返回返回接收電路程序流程圖5.2程序設(shè)計//***************************************//GY-45MMA8452IIC測試程序//使用單片機STC89C51//晶振:11.0592M//顯示:電腦串口波特率9600//編譯環(huán)境KeiluVision4//****************************************#include<REG51.H> #include<math.h>//Keillibrary#include<stdio.h>//Keillibrary #include<INTRINS.H>#defineucharunsignedchar#defineuintunsignedint sbit SCL=P2^7;//IIC時鐘引腳定義sbit SDA=P2^6;//IIC數(shù)據(jù)引腳定義#define SlaveAddress0x38 //定義器件在IIC總線中的從地址,根據(jù)SA0地址引腳不同修改typedefunsignedcharBYTE;typedefunsignedshortWORD;BYTEBUF[8];//接收數(shù)據(jù)緩存區(qū) ucharge,shi,bai,qian,wan;//顯示變量intdis_data;//變量intx,y,z;voiddelay(unsignedintk);voidInit_MMA8452(void);//初始化MMA8452voidconversion(uinttemp_data);voidSingle_Write_MMA8452(ucharREG_Address,ucharREG_data);//單個寫入數(shù)據(jù)ucharSingle_Read_MMA8452(ucharREG_Address);//單個讀取內(nèi)部寄存器數(shù)據(jù)voidMultiple_Read_MMA8452();//連續(xù)的讀取內(nèi)部寄存器數(shù)據(jù)//voidDelay5us();voidDelay5ms();voidMMA8452_Start();voidMMA8452_Stop();voidMMA8452_SendACK(bitack);bitMMA8452_RecvACK();voidMMA8452_SendByte(BYTEdat);BYTEMMA8452_RecvByte();voidMMA8452_ReadPage();voidMMA8452_WritePage();ucharRX_DATA;//voidserial_serve(void)interrupt4 { RI=0; RX_DATA=SBUF;}//*********************************************//串口初始化//9600bps@11.059MHzvoidinit_uart(){ TMOD=0x21; TH1=0xfd; TL1=0xfd; SCON=0x50; PS=1;//串口中斷設(shè)為高優(yōu)先級別 TR0=1; //啟動定時器 TR1=1; ET0=1;//打開定時器0中斷 ES=1; EA=1;}//*********串口數(shù)據(jù)發(fā)送******************voidSeriPushSend(ucharsend_data){SBUF=send_data; while(!TI);TI=0; }//*********************************************************voidconversion(uinttemp_data){wan=temp_data/10000+0x30;temp_data=temp_data%10000;//取余運算 qian=temp_data/1000+0x30;temp_data=temp_data%1000;//取余運算bai=temp_data/100+0x30;temp_data=temp_data%100;//取余運算shi=temp_data/10+0x30;temp_data=temp_data%10;//取余運算ge=temp_data+0x30; }/*******************************/voiddelay(unsignedintk) { unsignedinti,j; for(i=0;i<k;i++){ for(j=0;j<121;j++) {;}} }/**************************************延時5微秒(STC90C52RC@12M)不同的工作環(huán)境,需要調(diào)整此函數(shù),注意時鐘過快時需要修改當改用1T的MCU時,請調(diào)整此延時函數(shù)**************************************/voidDelay5us(){_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();}/**************************************延時5毫秒(STC90C52RC@12M)不同的工作環(huán)境,需要調(diào)整此函數(shù)當改用1T的MCU時,請調(diào)整此延時函數(shù)**************************************/voidDelay5ms(){WORDn=560;while(n--);}/**************************************起始信號**************************************/voidMMA8452_Start(){SDA=1;//拉高數(shù)據(jù)線SCL=1;//拉高時鐘線Delay5us();//延時SDA=0;//產(chǎn)生下降沿Delay5us();//延時SCL=0;//拉低時鐘線}/**************************************停止信號**************************************/voidMMA8452_Stop(){SDA=0;//拉低數(shù)據(jù)線SCL=1;//拉高時鐘線Delay5us();//延時SDA=1;//產(chǎn)生上升沿Delay5us();//延時}/**************************************發(fā)送應(yīng)答信號入口參數(shù):ack(0:ACK1:NAK)**************************************/voidMMA8452_SendACK(bitack){SDA=ack;//寫應(yīng)答信號SCL=1;//拉高時鐘線Delay5us();//延時SCL=0;//拉低時鐘線Delay5us();//延時}/**************************************接收應(yīng)答信號**************************************/bitMMA8452_RecvACK(){SCL=1;//拉高時鐘線Delay5us();//延時CY=SDA;//讀應(yīng)答信號SCL=0;//拉低時鐘線Delay5us();//延時returnCY;}/**************************************向IIC總線發(fā)送一個字節(jié)數(shù)據(jù)**************************************/voidMMA8452_SendByte(BYTEdat){BYTEi;for(i=0;i<8;i++)//8位計數(shù)器{dat<<=1;//移出數(shù)據(jù)的最高位SDA=CY;//送數(shù)據(jù)口SCL=1;//拉高時鐘線Delay5us();//延時SCL=0;//拉低時鐘線Delay5us();//延時}MMA8452_RecvACK();}/**************************************從IIC總線接收一個字節(jié)數(shù)據(jù)**************************************/BYTEMMA8452_RecvByte(){BYTEi;BYTEdat=0;SDA=1;//使能內(nèi)部上拉,準備讀取數(shù)據(jù),for(i=0;i<8;i++)//8位計數(shù)器{dat<<=1;SCL=1;//拉高時鐘線Delay5us();//延時dat|=SDA;//讀數(shù)據(jù)SCL=0;//拉低時鐘線Delay5us();//延時}returndat;}//******單字節(jié)寫入*******************************************voidSingle_Write_MMA8452(ucharREG_Address,ucharREG_data){MMA8452_Start();//起始信號MMA8452_SendByte(SlaveAddress);//發(fā)送設(shè)備地址+寫信號MMA8452_SendByte(REG_Address);//內(nèi)部寄存器地址MMA8452_SendByte(REG_data);//內(nèi)部寄存器數(shù)據(jù)MMA8452_Stop();//發(fā)送停止信號}//********單字節(jié)讀取*****************************************/*ucharSingle_Read_MMA8452(ucharREG_Address){ucharREG_data;MMA8452_Start();//起始信號MMA8452_SendByte(SlaveAddress);//發(fā)送設(shè)備地址+寫信號MMA8452_SendByte(REG_Address);//發(fā)送存儲單元地址,從0開始 MMA8452_Start();//起始信號MMA8452_SendByte(SlaveAddress+1);//發(fā)送設(shè)備地址+讀信號REG_data=MMA8452_RecvByte();//讀出寄存器數(shù)據(jù) MMA8452_SendACK(1); MMA8452_Stop();//停止信號returnREG_data;}*///*********************************************************////連續(xù)讀出MMA8452內(nèi)部加速度數(shù)據(jù),地址范圍0x01~0x06////*********************************************************voidMultiple_read_MMA8452(void){uchari;MMA8452_Start();//起始信號MMA8452_SendByte(SlaveAddress);//發(fā)送設(shè)備地址+寫信號MMA8452_SendByte(0x01);//發(fā)送存儲單元地址,從0x01開始 MMA8452_Start();//起始信號MMA8452_SendByte(SlaveAddress+1);//發(fā)送設(shè)備地址+讀信號 for(i=0;i<6;i++)//連續(xù)讀取6個地址數(shù)據(jù),存儲中BUF{BUF[i]=MMA8452_RecvByte();//BUF[0]存儲0x32地址中的數(shù)據(jù)if(i==5){MMA8452_SendACK(1);//最后一個數(shù)據(jù)需要回NOACK}else{MMA8452_SendACK(0);//回應(yīng)ACK}}MMA8452_Stop();//停止信號Delay5ms();}//*****************************************************************//初始化MMA8452,根據(jù)需要請參考pdf進行修改************************voidInit_MMA8452(){Single_Write_MMA8452(0x2A,0x01);//Single_Write_MMA8452(0x2B,0x02);//}//***********************************************************************//顯示x軸voiddisplay_x(){floattemp;//SeriPushSend('X');dis_data=(BUF[0]<<8)|BUF[1];//合成數(shù)據(jù) dis_data>>=4; x=dis_data; if(dis_data<0){ dis_data=-dis_data; SeriPushSend('-'); } elseSeriPushSend('+');temp=(float)dis_data;//計算數(shù)據(jù)和顯示conversion(temp);//轉(zhuǎn)換出顯示需要的數(shù)據(jù)//SeriPushSend(':');SeriPushSend(qian); SeriPushSend('.'); SeriPushSend(bai); SeriPushSend(shi);}//***********************************************************************//顯示y軸voiddisplay_y(){floattemp;SeriPushSend('Y');dis_data=(BUF[2]<<8)|BUF[3];//合成數(shù)據(jù) dis_data>>=4; y=dis_data; if(dis_data<0){ dis_data=-dis_data;SeriPushSend('-'); } elseSeriPushSend('+');temp=(float)dis_data;//計算數(shù)據(jù)和顯示conversion(temp);//轉(zhuǎn)換出顯示需要的數(shù)據(jù) SeriPushSend(':'); SeriPushSend(qian); SeriPushSend('.'); SeriPushSend(bai); SeriPushSend(shi);}//***********************************************************************//顯示z軸voiddisplay_z(){floattemp;SeriPushSend('Z');dis_data=(BUF[4]<<8)|BUF[5];//合成數(shù)據(jù)dis_data>>=4; z=dis_data; if(dis_data<0){ dis_data=-dis_data;SeriPushSend('-'); } elseSeriPushSend('+');temp=(float)dis_data;//計算數(shù)據(jù)和顯示conversion(temp);//轉(zhuǎn)換出顯示需要的數(shù)據(jù) SeriPushSend(':'); SeriPushSend(qian); SeriPushSend('.'); SeriPushSend(bai); SeriPushSend(shi);}//*********************************************************//******主程序********//*********************************************************voidmain(){//uchardevid;delay(2); //上電延時 init_uart();Init_MMA8452();//初始化MMA8452RX_DATA=0;while(1)//循環(huán){//if(RX_DATA==0x31){Init_MMA8452();//初始化MMA8452Multiple_Read_MMA8452();//連續(xù)讀出數(shù)據(jù),存儲在BUF中SeriPushSend(0x0d); SeriPushSend(0x0a);display_x();//顯示X軸//display_y();//顯示Y軸//display_z();//顯示Z軸 RX_DATA=0;delay(50);//延時50ms//}}}6系統(tǒng)調(diào)試6.1系統(tǒng)實物圖系統(tǒng)實物圖如圖15所示。6.2整體系統(tǒng)測試液晶顯示電路測試:在電路焊接過程中,下載液晶程序?qū)σ壕э@示器測試,發(fā)現(xiàn)液晶顯示器不顯示,經(jīng)過仔細排查,發(fā)現(xiàn)液晶1602第15號腳存在虛焊。重新焊接后顯示正常。6.3測試結(jié)果分析角度傳感部分:將該三軸振動檢測儀對x軸的測量結(jié)果與標準角度測試儀對比列表如表3所示:表3測量結(jié)果比較標準測量儀發(fā)射電路顯示接收電路顯示0°0°0°5°5°5°10°11°11°20°25°25°30°41°41°在角度值小于10度時,該三軸振動檢測儀可以獲得準確的測量結(jié)果,當角度大于30度時,會有比較大的誤差。本設(shè)計采用的算法是sina=a,在函數(shù)圖象上可知,只有當a的值比較小時,二者才會近視相等。因為振動絕大多數(shù)是小角度的,所以可以認為該檢測儀可以實現(xiàn)振動檢測。6.4結(jié)論由以上數(shù)據(jù)分析可知,通過數(shù)學(xué)分析并在程序中設(shè)定算法,加速度傳感器MMA7455L不僅可以實現(xiàn)加速度值得測量,而且還可以測量角度,實現(xiàn)定位的功能。通過調(diào)試,當角度在比較
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 采購合同的續(xù)簽與終止條件3篇
- 采購合同框架協(xié)議的簽訂背景3篇
- 采購合同分類的詳細解讀3篇
- 2024年02月江蘇2024屆南京銀行南通分行春季校園招考筆試歷年參考題庫附帶答案詳解
- 采購合同的電子支付系統(tǒng)3篇
- 采購合同格式示例詳解3篇
- 水質(zhì)凈化微生物篩選-洞察分析
- 采購合同的供應(yīng)鏈節(jié)能減排3篇
- 采購合同補充協(xié)議書范例3篇
- 洗車機器人環(huán)境感知與定位-洞察分析
- 售后工程師述職報告
- 2023年北京大學(xué)圖書資料崗位招聘筆試真題
- 2025九年級道德與法治備考復(fù)習(xí)計劃
- 廣東能源集團校園招聘筆試真題
- 【MOOC】高級語言程序設(shè)計-南京郵電大學(xué) 中國大學(xué)慕課MOOC答案
- 2024年企業(yè)核心管理人員勞動協(xié)議樣本版B版
- 微信公眾號信息發(fā)布流程
- 單位和個人簽的銷售合同范本(2篇)
- 商務(wù)報價技巧培訓(xùn)
- 政治學(xué)概論歷年試題(參考答案)
- 商場防恐應(yīng)急管理制度
評論
0/150
提交評論