




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
信號檢測綜合訓練說明書題目:振動信號檢測系統設計學院:電氣工程與信息工程學院班級:電子信息科學與技術〔2〕班:江峰學號:11260204指導老師:緱新科2014年12月04日學習文檔僅供參考
摘要振動從形式上看,有的是來回擺動,有的是往復直線運動,有的是旋轉運動等,種類很多,形式不一,但它們都有一個共同的特點,即物體在運動過程中總是在它自己的平衡位置附近,一次又一次地重復地運動著。因此,我們把物體在其平衡位置附近所做的往復性的運動稱為振動。研究振動的目的是為了了解各種機械振動的現象的機理,破譯機械振動所包含的大量信息,進而對設備的狀態進行監測,分析設備的潛在可能故障。本課題主要選用位移傳感器結合微分電路測得最大位移,最大速度,最大加速度,并且利用LCD顯示振動信號。本論文首先介紹了振動檢測的原理;其次介紹了整體系統的設計和各模塊方案的比較,選擇;接著介紹了各部分電路的設計及原理;再者介紹了軟件設計流程并附上了程序代碼;最后論述了系統的調試過程。關鍵詞:單片機;振動;加速度;檢測學習文檔僅供參考目錄摘要·········································································································21前言·········································································································42振動檢測原理·····························································································5振動分類··································································································52.2振動檢測原理·····················································································52.3振動傳感器的分類··············································································53系統設計···································································································83.1整體系統設計·····················································································83.2方案設計····························································································83.2.1數據采集模塊················································································8液晶顯示模塊························································································54硬件設計4.1單片機最小系統···································································································9···················································································9························································································134.2傳感器電路4.3顯示電路···························································································145軟件設計5.1系統工作流程5.2程序設計··································································································12····················································································12···························································································156系統調試··································································································246.1系統實物圖························································································276.2整體系統測試6.3測試結果分析····················································································27····················································································286.4結論···································································································287總結7.1總結·········································································································25···································································································25附錄1··········································································································27學習文檔僅供參考
1前言傳感器技術是現代測量和自動化系統的重要技術之一,從宇宙開發到海底探秘,從生產的過程控制到現代文明生活,幾乎每一項技術都離不開傳感器,因此,,如日本把傳感器技術列為六大核心技術許多國家對傳感器技術的發展十分重視(電腦、通信、激光、半導體、超導體和傳感器)之一。儀表測量、航空航海等領域中角度傳感器和加速度傳感器在當代工業控制、有著十分廣泛的應用。傳統的角度傳感器如:增量編碼器、同步機等存在接觸面、觸點易磨損,必須定期進行更換,在實際應用中降低了設備的可靠性,增加了維修成本。本設計研究設計的加速度傳感器和角度傳感器能夠實時測量物體振動加速度和角度,具有廣泛的應用前景。隨著基于單片機的檢測技術的不斷發展,近些年來我國對角度測量技術進行理論上的研究,在生產實踐中投入了具體的應用。但我國在此方面的實際應用技術與國外比還有較大差距。國內生產的該種儀器性能方面有待提高,國外進口的又價格昂貴,使得該儀器難以推廣和銷售,高性能角度測量設備的缺失導致了大量經濟損失。因此可以說角度測量技術的研究與開發有著廣闊的前景,可觀的經濟效益和社會效益并且能夠帶來幾乎所有的物理現象都可看作是信號,但這里我們特指動態振動信號。振動信號采集與一般性模擬信號采集雖有共同之處,此,在采集振動信號時應注意以下幾點:但存在的差異更多,因1.振動信號采集模式取決于機組當時的工作狀態,如穩態、瞬態等;2.變轉速運行設備的振動信號采集在有條件時應采取同步整周期采集;3.所有工作狀態下振動信號采集均應符合采樣定理。對信號預處理具有特定要求是振動信號本身的特性所致。信號預處理的功能在一定程度上說是影響后續信號分析的重要因素。下條件:預處理方法的選擇也要注意以1.在涉及相位計算或顯示時盡量不采用抗混濾波;2.在計算頻譜時采用低通抗混濾波;3.在處理瞬態過程中1X矢量、2X矢量的快速處理時采用矢量濾波。學習文檔僅供參考
2振動檢測原理2.1振動分類在日常的生活和生產活動中,我們經常可以看到物體的振動現象,例如:運動場上秋千的擺動,汽車啟動時發動機引起的車體顫抖,機床的振動等。這些振動從形式上看,有的是來回擺動,有的是往復直線運動,有的是旋轉運動等,種類很多,形式不一,但它們都有一個共同的特點,即物體在運動過程中總是在它自己的平衡位置附近,一次又一次地重復地運動著。因此,我們把物體在其平衡位置附近所做的往復性的運動稱為振動。研究振動的目的是為了了解各種機械振動現象的機理,破譯機械振動所包含的大量信息,進而對設備的狀態進行監測,分析設備的潛在可能故障。振動檢測原理振動傳感器有振動位移、振動速度和振動加速度傳感器。簡單地說,振動位移傳感器〔常用電渦流傳感器〕根據振動位移變化與輸出電壓的變化關系,振動速度傳感器根據相對運動切割磁力線產生電壓的變化,振動加速度傳感器根據形變與電荷的關系。速度傳感器通過硬件或軟件積分可以得到位移,加速度傳感器通過一次積分可以得到振動速度,二次積分可以得到振動位移。因為需要測量加速度,所以必須有振動加速度傳感器。振動傳感器在測試技術中是關鍵部件之一,它的作用并不是直接將原始要測的機械量轉變為電量,而是將原始要測的機械量做為振動傳感器的輸入量,由機械接收部分加以接收,形成另一個適合于變換的機械量,最后由機電變換部分再將變換為電量。因此一個傳感器的工作性能是由機械接收部分和機電變換部分的工作性能來決定的。然后2.3振動傳感器的分類1、相對式電動傳感器電動式傳感器基于電磁感應原理,即當運動的導體在固定的磁場里切割磁力線時,導體兩端就感生出電動勢,因此利用這一原理而生產的傳感器稱為電動式傳感器。相對式電動傳感器從機械接收原理來說,是一個位移傳感器,由于在機電變換原理中應用的是電磁感應電律,其產生的電動勢同被測振動速度成正比,所以學習文檔僅供參考
它實際上是一個速度傳感器。2、電渦流式傳感器電渦流傳感器是一種相對式非接觸式傳感器,它是通過傳感器端部與被測物電渦流傳感器具有頻率范圍體之間的距離變化來測量物體的振動位移或幅值的。寬〔0~10kHZ〕,線性工作范圍大、靈敏度高以及非接觸式測量等優點,主要應用于靜位移的測量、振動位移的測量、旋轉機械中監測轉軸的振動測量。3、電感式傳感器依據傳感器的相對式機械接收原理,電感式傳感器能把被測的機械振動參數的變化轉換成為電參量信號的變化。因此,電感傳感器有二種形式,一是可變間隙,二是可變導磁面積。4、電容式傳感器電容式傳感器一般分為兩種類型。即可變間隙式和可變公共面積式。可變間隙式可以測量直線振動的位移。可變面積式可以測量扭轉振動的角位移。5、慣性式電動傳感器慣性式電動傳感器由固定部分、可動部分以及支承彈簧部分所組成。為了使傳感器工作在位移傳感器狀態,其可動部分的質量應該足夠的大,而支承彈簧的剛度應該足夠的小,也就是讓傳感器具有足夠低的固有頻率。根據電磁感應定律,感應電動勢為:u=Blx&r。式中B為磁通密度,l為線圈在磁場內的有效長度,rx&為線圈在磁場中的相對速度。從傳感器的結構上來說,慣性式電動傳感器是一個位移傳感器。然而由于其輸出的電信號是由電磁感應產生,根據電磁感應電律,當線圈在磁場中作相對運動時,所感生的電動勢與線圈切割磁力線的速度成正比。因此就傳感器的輸出信號來說,感應電動勢是同被測振動速度成正比的,所以它實際上是一個速度傳感器。6、壓電式傳感器壓電式加速度傳感器的機械接收部分是慣性式加速度機械接收原理,分利用的是壓電晶體的正壓電效應。其原理是某些晶體在一定方向的外力作用下或承受變形時,它的晶體面或極化面上將有電荷產生,這種從機械能〔力,變形〕到電能〔電荷,電場〕的變換稱為正壓電效應。而從電能〔電場,電壓〕到機械能〔變形,力〕的變換稱為逆壓電效應。機電部因此利用晶體的壓電效應,可以制成測力傳感器,在振動測量中,由于壓電學習文檔僅供參考
晶體所受的力是慣性質量塊的牽連慣性力,所產生的電荷數與加速度大小成正比,所以壓電式傳感器是加速度傳感器。7、壓電式力傳感器在振動試驗中,除了測量振動,還經常需要測量對試件施加的動態激振力。壓電式力傳感器具有頻率范圍寬、動態范圍大、體積小和重量輕等優點,因而獲得廣泛應用。壓電式力傳感器的工作原理是利用壓電晶體的壓電效應,力傳感器的輸出電荷信號與外力成正比。8、阻抗頭即壓電式阻抗頭是一種綜合性傳感器。它集壓電式力傳感器和壓電式加速度傳感器于一體,其作用是在力傳遞點測量激振力的同時測量該點的運動響應。因此阻抗頭由兩部分組成,一部分是力傳感器,另一部分是加速度傳感器,它的優點是,保證測量點的響應就是激振點的響應。使用時將小頭〔測力端〕連向結構,大頭〔測量加速度〕與激振器的施力桿相連。從“力信號輸出端”測量激振力的信號,從“加速度信號輸出端”測量加速度的響應信號。9、電阻應變式傳感器電阻式應變式傳感器是將被測的機械振動量轉換成傳感元件電阻的變化量。實現這種機電轉換的傳感元件有多種形式,其中最常見的是電阻應變式傳感器。電阻應變片的工作原理為:應變片粘貼在某試件上時,試件受力變形,應變片原長變化,從而應變片阻值變化,實驗證明,在試件的彈性變化范圍內,應變片電阻的相對變化和其長度的相對變化成正比。10、激光傳感器激光傳感器利用激光技術進行測量的傳感器。它由激光器、激光檢測器和測量電路組成。激光傳感器是新型測量儀表,它的優點是能實現無接觸遠距離測量,速度快,精度高,量程大,抗光、電干擾能力強等,極適合于工業和實驗室的非接觸測量應用。學習文檔僅供參考
3系統設計3.1整體系統設計本系統由發射電路和接收電路組成。其中發射電路由數據采集模塊,單片機最小系統,狀態指示及報警模塊,無線發射模塊,液晶顯示模塊五部分組成。接收電路由無線接收模塊,單片機最小系統和液晶顯示模塊三部分組成。系統框圖如圖1所示,其原理圖見附錄一。接收電路系統框圖如圖2所示,其原理圖見附錄二。發射電路液晶顯示模塊數據采集模塊STC89C52無線發射模塊最小系統狀態指示及報警模塊圖1發射電路框圖無線接收模塊STC89C52液晶顯示模塊最小系統圖2接收電路框圖方案設計數據采集模塊方案〔一〕:由UZZ9000和KMZ41構成的角度檢測電路:UZZ9000為線性電壓輸出式角度傳感器調理器電路,輸出電壓與被測角度信號成正比;測量角度的范圍是0~180°,且在0~100°范圍內;測量誤差小于±0.45°分辨力達0.1°;測量范圍和輸出零點均可調節;電源電壓范圍為學習文檔僅供參考+4.5~+5.5V;電源電流為10mA;工作溫度范圍是-40~+150℃。由UZZ9000和KMZ41構成的電壓輸出式角度檢測電路如圖3所示。改變R2和R3的比值,可以調節傳感器1的偏移量;改變R4和R5的阻值,可以調節傳感器2的偏移量;改變R6和R7的比值,可以調節零點偏移;改變R8和R9的比值;可以調節測量角度范圍。電阻R2~R9可以采用電位器代替。電路輸出電壓送至數字電壓表或者微控制器系統,即可顯示出被測角度值。該電路可廣泛用于發動機凸輪/曲軸速度及位置檢測、節流閥控制、轉向操作控制、汽車中的ABS系統等領域。圖3電壓輸出式角度檢測電路方案〔二〕:采用MMA7455L的IIC模式MMA7455L是一款低重力、串行數據輸出〔包括IIC和SPI模式〕、低功耗、緊湊型電容式微機械加速度傳感器,具有信號調理、低通濾波器、溫度補償、自測、可配置通過中斷引腳〔INT1或INT2〕檢測0g、以及脈沖檢測〔用于快速運動檢測〕等功能。0g偏置和靈敏度是出廠配置,無需外部器件。我們可以運用指定的0g寄存器和g-Select量程選擇對0g偏置進行校準,量程可通過命令選擇3個加速度范圍〔2g/4g/8g,1g=/s2〕。可以實現基于運動的功能,如傾斜滾動、游戲控制、按鍵靜音和手持終端的自由落體硬盤驅動保護、門限檢測和點擊檢測或個人設功能等。提供IIC和SPI接口,方便與MCU通訊,因此非常適用于備中的運動運用。MMA7455L還具備待機模式,使它成為電池供電的手持式電子器件的理想選擇。學習文檔僅供參考MMA7455L同時具有如下特性:封裝小,LGA-〔3mm*5mm*1mm〕封裝,具備Z軸自檢功能;低壓操作;可用指定寄存器進行偏移;可編程的閥值中斷輸出;用于動作識別〔撞擊、振動、自由落體〕的電平檢測功能;用于單擊和雙擊識別的脈沖檢測功能;在8bit模式下,測量的加速度范圍為2g,4g,8g時,其分辨率分別到達64LSB/g,32LSB/g,16LSB/g。可耐高強度沖擊達5000g,低功耗特性,使其可用于手持電子設備等。它是由一個外表微機械電容傳感元件〔g-cell〕和一個信號調理ASIC容納在單一封裝中。g-cell是由半導體材料〔多晶硅〕使用半導體加工〔掩膜和蝕刻〕工藝成型的機械結構,它可以建模成連接到一個可移動中心質量塊的極板和兩塊固定極板的組合,質量塊得極板可以在兩塊固定的極板間移動。當系統給定這樣可一個加速度值時,中心質量塊所附屬的可移動極板則偏離它的靜止位置。移動極板到一邊固定板的距離就會增加,到另一邊的固定板見間的距離就會減少,距離的班花就是對加速度值得測量。g-cell極板組成了兩個背靠背的電容,當在加速度的作用下中從而引起每個電容值的改變(如圖4所示)。同時ASIC利用開關電容技術測量g-cell的電容并且從兩個電容的差異中提取加速度數據。ASIC再進行型號調理、型號濾波最后提供一個提供一個與加速度成比例的數字輸出。MMA7455L的內部結構圖如圖5所示,X,Y,Z三軸互相垂直三軸上的加速度值分別由X軸變換器、Y軸變換器、Z軸變換器感知,再經過容壓轉化器、放大增益、AD轉換和各種補償修正后以數字方式通過SPI或IIC串行接口輸出。圖4簡明g-cell物理模型學習文檔僅供參考圖5MMA7455L內部結構圖綜上可知,采用MMA7455L的IIC模式電路相對簡單,且預計能獲得比較好的效果,因此選用方案〔二〕。3.2.2液晶顯示模塊方案〔一〕:采用12864液晶顯示JD12864C圖形點陣型液晶顯示模塊。它主要由行驅動器與列驅動器組成,可顯示128〔列〕64〔行〕點陣。可完成圖形顯示,也可顯示8個〔16×16點陣〕中文漢字。七條控制指令,與CPU接口采用8位數據總線并口輸入輸出方式。內置RAM為512字節(4096位),共20位引腳。方案〔二〕:采用1602液晶顯示液晶顯示的原理是利用液晶的物理特性,通過電壓對其顯示區域進行控制,有電就有顯示,這樣即可以顯示出圖形。液晶顯示器具有厚度薄、適用于大規模集成電路直接驅動、易于實現全彩色顯示的特點。1602液晶外設16個引腳,顯示板上排列著假設干個5*7點陣的字符顯示位,內部具有字符發生器ROM〔CGROM〕,可顯示192個5*7點陣字符;模塊內有64字節的自定義字符RAM〔CGRAM〕,可自行定義8個5*7點陣字符;模塊內亦含有80字節的數據顯示存儲器〔DDRAM〕。根據它的引腳功能及相應的命令格式編寫顯示程序。方案選擇:由于12864體積比較大,且價格較1602貴,共20個引腳,占用單片機的端口較1602多,考慮到制作的方便及實惠,此系統采用方案〔二〕。學習文檔僅供參考4硬件設計4.1單片機最小系統單片機的最小系統電路圖如圖6所示,在此介紹復位電路和時鐘電路。圖6單片機最小系統復位電路:單片機STC89C52最小系統的復位電路由電阻R2,電容C3和復位開關S2組成,其復位端為第9腳。單片機一上電,由電容電壓變化的連續性,端立即變為高點平,實現單片機的上電立即復位功能。單片機上電后,按下復位上電開關S2后,第9腳的電壓由原來的低電平變為高電平,使單片機實現復位操作。也就是當該端子上保持兩個機器周期的高水平時,可對實現復位操作。STC89C52單片機時鐘電路:時鐘電路采用內部時鐘方式,由電容C1、C4和11.0592MHz的晶振Y1組成,接在單片機的第18和19腳(即XTAL1和XTAL2端)。STC89C52內部有一個用于構成振蕩器的高增益反向放大器,它的輸入端為芯片引腳XTAL1,輸出端為XTAL2。這兩個引腳跨接石英晶體和微調電容,構成一個穩定的自激振蕩器。學習文檔僅供參考電路中的電容C1、C4可在5~30pF之間選擇,該電容的大小通常會影響振蕩器頻率的高低,振蕩器的穩定性和起振的快速性。晶體振蕩的頻率范圍通常是在1.2-12MHZ,晶體的頻率越高,單片機的運行速度也就越快。但反過來,運行速度越快對存儲器的速度要求就越高,對印制電路板的要求也就越高,即要求線間的寄生電容要小。晶體和電容應盡可能安裝的與單片機芯片靠近,以減少寄生電容,更好的保證振蕩器穩定、可靠的工作。為了提高溫度的穩定性,應采用溫度穩定性能好的電容。傳感器電路加速度傳感器電路:MMA7455L的芯片引腳功能說明如表1所示。MMA7455L的IIC模式(如圖7所示)通信協議是根據菲利普半導體公司的標準,在這個模塊的接口中,只有串行數據線〔SDA〕和串行時鐘線〔SCL〕是需要的。8位串行雙向數據傳輸在標準模式下可以到達100kbit/s,在最快的模式下可以到達400kbit/s。SDA和SCL都是雙向數據線,必須通過上拉電阻連接到正電源。電阻選擇2.2千歐到4.7千歐比較適宜,在此,我選擇4.7千歐。表1MMA7455L引腳功能說明序號1名稱AVDD_IOGND描述〔數字〕狀態輸入輸入輸入輸入輸入輸入輸入輸出輸出輸入輸入輸出2地3NC空角、不接或接地IIC地址0位地4IADDR0GND56AVDDCS〔模擬〕7SPI使能〔0〕,IIC使能〔1〕中斷1/數據就緒中斷28INT1/DRDYINT29101112NC空角、不接或接地空角、不接或接地SPI串行數據輸出NCSDO13SDA/SDI/SDOIIC串行數據輸出/SPI串行數據輸入/3雙向/輸線串行數據接口輸出入/輸出14SCL/SPCIIC/SPI時鐘信號輸出輸入學習文檔僅供參考圖7MMA7455L的IIC模式IIC模式連接的好處是很多芯片可以連接到這條總線上,但是也受總線容量的限制。簡單的2線串行IIC模式將連線最小化,因此模塊有較少的引腳需要連線,體積小,價格廉價。顯示電路根據1602的引腳排布及其控制規律按如圖阻用于調節1602的分辨率。8所指示連接電路,10K可調電圖81602液晶顯示學習文檔僅供參考5軟件設計系統工作流程發送電路程序流程圖如圖9所示,接收電路程序流程圖如圖10所示。開始向緩沖區起始位置寫入起始字符向緩沖區對應位置寫入地址、命令、數據程度計算校驗和并加入發送緩沖區中數據N所有數據已發送完Y返回發送程序流程圖學習文檔僅供參考開始初始化N反傳感器發送請求Y讀數據返回數據處理串口送出學習文檔僅供參考開始清RI位Y是開始字符嗎已經接受開始字符標志置位NN接受開始字符標返回返回YN是結束字符接收數據返回Y計算校驗和N校驗正確Y清接受緩沖區,接收完成標志置位符開始字符標志和接收接受完成標志置位,已經接受開始字符標志清零,準備下一次接受返回返回接收電路程序流程圖學習文檔僅供參考程序設計//***************************************//GY-45MMA8452IIC測試程序//使用單片機//晶振:STC89C51//顯示:電腦串口波特率9600//編譯環境KeiluVision4//****************************************#include<REG51.H>#include<math.h>#include<stdio.h>#include<INTRINS.H>//Keillibrary//Keillibrary#define#defineucharunsignedcharuintunsignedintsbitsbitSCL=P2^7;SDA=P2^6;//IIC時鐘引腳定義//IIC數據引腳定義#defineSlaveAddress0x38//定義器件在IIC總線中的從地址,根據SA0地址引腳不同修改typedefunsignedcharBYTE;typedefunsignedshortWORD;BYTEBUF[8];//接收數據緩存區//顯示變量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);//單個寫入數據ucharSingle_Read_MMA8452(ucharREG_Address);//單個讀取內部寄存器數據voidMultiple_Read_MMA8452();//連續的讀取內部寄存器數據//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;TR0=1;TR1=1;ET0=1;ES=1;EA=1;//串口中斷設為高優先級別//啟動定時器//打開定時器0中斷}//*********串口數據發送******************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+0x30temp_data=temp_data%100;shi=temp_data/10+0x30temp_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)不同的工作環境,需要調整此函數,注意時鐘過快時需要修改當改用1T的MCU時,請調整此延時函數**************************************/voidDelay5us(){_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}/**************************************延時5毫秒(STC90C52RC@12M)不同的工作環境,需要調整此函數當改用1T的MCU時,請調整此延時函數**************************************/voidDelay5ms(){WORDn=560;while(n--);}/**************************************起始信號學習文檔僅供參考
**************************************/voidMMA8452_Start(){SDA=1;SCL=1;Delay5us();SDA=0;Delay5us();SCL=0;}//拉高數據線//拉高時鐘線//延時//產生下降沿//延時//拉低時鐘線/**************************************停止信號**************************************/voidMMA8452_Stop(){SDA=0;SCL=1;Delay5us();SDA=1;Delay5us();}//拉低數據線//拉高時鐘線//延時//產生上升沿//延時/**************************************發送應答信號入口參數:ack(0:ACK1:NAK)**************************************/voidMMA8452_SendACK(bitack){SDA=ack;SCL=1;Delay5us();SCL=0;Delay5us();}//寫應答信號//拉高時鐘線//延時//拉低時鐘線//延時/**************************************接收應答信號**************************************/bitMMA8452_RecvACK(){SCL=1;Delay5us();CY=SDA;//拉高時鐘線//延時//讀應答信號學習文檔僅供參考
SCL=0;//拉低時鐘線//延時Delay5us();returnCY;}/**************************************向IIC總線發送一個字節數據**************************************/voidMMA8452_SendByte(BYTEdat){BYTEi;for(i=0;i<8;i++){//8位計數器dat<<=1;SDA=CY;SCL=1;//移出數據的最高位//送數據口//拉高時鐘線//延時Delay5us();SCL=0;//拉低時鐘線//延時Delay5us();}MMA8452_RecvACK();}/**************************************從IIC總線接收一個字節數據**************************************/BYTEMMA8452_RecvByte(){BYTEi;BYTEdat=0;SDA=1;for(i=0;i<8;i++){//使能內部上拉,準備讀取數據,//8位計數器dat<<=1;SCL=1;Delay5us();dat|=SDA;SCL=0;Delay5us();}//拉高時鐘線//延時//讀數據//拉低時鐘線//延時returndat;學習文檔僅供參考
}//******單字節寫入*******************************************voidSingle_Write_MMA8452(ucharREG_Address,ucharREG_data){MMA8452_Start();//起始信號MMA8452_SendByte(SlaveAddress);MMA8452_SendByte(REG_Address);MMA8452_SendByte(REG_data);MMA8452_Stop();//發送設備地址+寫信號//內部寄存器地址//內部寄存器數據//發送停止信號}//********/*單字節讀取*****************************************ucharSingle_Read_MMA8452(ucharREG_Address){ucharREG_data;MMA8452_Start();//起始信號MMA8452_SendByte(SlaveAddress);//發送設備地址+寫信號MMA8452_SendByte(REG_Address);//發送存儲單元地址,從0開始MMA8452_Start();//起始信號MMA8452_SendByte(SlaveAddress+1);//發送設備地址+讀信號//讀出寄存器數據REG_data=MMA8452_RecvByte();MMA8452_SendACK(1);MMA8452_Stop();//停止信號returnREG_data;}*///*********************************************************////連續讀出MMA8452內部加速度數據,地址范圍//0x01~0x06//*********************************************************voidMultiple_read_MMA8452(void){uchari;MMA8452_Start();//起始信號MMA8452_SendByte(SlaveAddress);MMA8452_SendByte(0x01);//發送設備地址+寫信號//發送存儲單元地址,從0x01開始MMA8452_Start();//起始信號MMA8452_SendByte(SlaveAddress+1);//發送設備地址+讀信號//連續讀取6個地址數據,存儲中for(i=0;i<6;i++){BUF學習文檔僅供參考
BUF[i]=MMA8452_RecvByte();//BUF[0]存儲0x32地址中的數據if(i==5){MMA8452_SendACK(1);//最后一個數據需要回NOACK}else{MMA8452_SendACK(0);//回應ACK}}MMA8452_Stop();Delay5ms();//停止信號}//*****************************************************************//初始化MMA8452,根據需要請參考voidInit_MMA8452()pdf進行修改************************{Single_Write_MMA8452(0x2A,0x01);Single_Write_MMA8452(0x2B,0x02);////}//***********************************************************************//顯示x軸voiddisplay_x(){floattemp;//SeriPushSend('X');dis_data=(BUF[0]<<8)|BUF[1];dis_data>>=4;//合成數據x=dis_data;if(dis_data<0){dis_data=-dis_data;SeriPushSend('-');}elseSeriPushSend('+');temp=(float)dis_data;conversion(temp);//計算數據和顯示//轉換出顯示需要的數據//SeriPushSend(':');SeriPushSend(qian);SeriPushSend('.');學習文檔僅供參考
SeriPushSend(bai);SeriPushSend(shi);}//***********************************************************************//顯示y軸voiddisplay_y(){floattemp;SeriPushSend('Y');dis_data=(BUF[2]<<8)|BUF[3];dis_data>>=4;//合成數據y=dis_data;if(dis_data<0){dis_data=-dis_data;SeriPushSend('-');}elseSeriPushSend('+');temp=(float)dis_data;conversion(temp);//計算數據和顯示//轉換出顯示需要的數據SeriPushSend(':');SeriPushSend(qian);SeriPushSend('.');SeriPushSend(bai);SeriPushSend(shi);}//***********************************************************************//顯示z軸voiddisplay_z(){floattemp;SeriPushSend('Z');dis_data=(BUF[4]<<8)|BUF[5];dis_data>>=4;//合成數據z=dis_data;if(dis_data<0){dis_data=-dis_data;SeriPushSend('-');}elseSeriPushSend('+');temp=(float)dis_data;//計算數據和顯示學習文檔僅供參考
conversion(temp);//轉換出顯示需要的數據SeriPushSend(':');SeriPushSend(qian);SeriPushSend('.');SeriPushSend(bai);SeriPushSend(shi);}//******************************************
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商家進駐商場合同協議
- 商場外租賃合同協議
- 模具產品轉讓合同協議
- 品牌茶代理專柜合同協議
- 品牌代銷協議書范本
- 員工合同制協議
- 品牌訂制合同協議
- 總裁助理勞務合同協議
- 2025航次租船合同范本
- 品牌管理委托合同協議
- 2025年中國脊柱骨水泥行業市場前景預測及投資價值評估分析報告
- 電機節能協議書模板
- 2024年四川西南石油大學招聘事業編制輔導員考試真題
- 2025年寧夏吳忠紅寺堡區公開招聘社區工作者46人筆試備考題庫及答案解析
- 表型組學技術助力作物育種效率提升
- 中學教育基礎(上)知到課后答案智慧樹章節測試答案2025年春陜西師范大學
- 金融數學考試及答案
- 食品運輸過程安全管理措施
- 2024屆高考專題復習北京高考模擬考《論語》試題
- 樓梯 欄桿 欄板(一)22J403-1
- 醫院基建工作流程
評論
0/150
提交評論