久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

礦井無線傳感網絡基于LEACH路由協議的改進方案

時間:2019-05-15 01:53:55下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《礦井無線傳感網絡基于LEACH路由協議的改進方案》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《礦井無線傳感網絡基于LEACH路由協議的改進方案》。

第一篇:礦井無線傳感網絡基于LEACH路由協議的改進方案

礦井無線傳感網絡基于LEACH路由協議的改進方案

摘要:

針對我國煤礦井下特殊的環境,基于LEACH路由協議提出新的高效,能量均衡的分簇 路由協議。簇首節點選取將以鄰居節點的平均剩余能量與節點本身的剩余能量的比值,與鄰 居節點的距離作為節點競爭簇頭的參數,簇內節點均加入距離自己最近的簇頭節點;經數據 融合后的簇首節點之間通過多跳方式通信,最終將融合后的信息通過網關節點,由有線網絡 發送到地面的監控系統。利用NS2進行仿真,實驗結果證明,改進后的協議能夠均衡網絡節點能耗,延長網絡生命時間,適應煤礦井下特殊環境。1 前言

目前,我國煤礦采用的檢測系統都以工業總線作為基礎,井下檢測系統與地面信息中心一般通過電纜或者光纖連接,構成有線的檢測系統。但有線系統對線路依賴性強,受布線局 限,且需要專業人員維護,一旦設備出現故障,會使局部區域失去監測能力。因此,有線通 信其擴展性,網絡覆蓋率,靈活性存在不足,成本較高。但無線傳感網絡的出現給煤礦監控帶來前所未有的希望,無線傳感器網絡具有放置靈活、擴展簡便、移動性強、具有自組織性等特點,因此建立基于無線傳感網絡的煤礦無線監測系統可以對有線監控系統起到強大的補充功能,無線與有線的結合,將極大的提高全煤礦的安全監控水平。

但是,通常傳感器節點的通信距離有限,在10~100 m范圍內,節點只能與其射頻覆蓋范圍內的鄰居直接通信,因此限制了無線傳感器網絡在大規模范圍的應用。現有的路由協議具有良好的自組織性,在一定程度上提高了網絡的自組織性能,延長了網絡壽命,但大多數適合小規模網絡,節點的能耗分布不均衡,不適用于工作面有限異質可變空間,并且工作面的不斷向前推進,信息流量不均衡,對網絡的自組織性也提出了更高的要求。2 LEACH路由協議

路由協議按網絡的拓撲結構可分為2類:平面路由協議和分簇路由協議。在平面路由協議中,各節點地位平等,通過局部操作和反饋信息來生成路由。平面路由缺乏對通信資源的優化管理,對網絡動態變化的反應速度較慢。在分簇路由協議中,通常對網絡中的節點進行層次劃分,若干地理位置相鄰的節點構成一個簇,每個簇內選舉一個簇首。簇首節點負責簇內信息的收集、融合及簇間數據的轉發。

分簇路由便于管理,能對系統變化做出快速反應,為網絡提供高質量的通信服務。

典型的分簇路由協議LEACH(low energy adaptive clustering hierarchy)協議是Heinzelman 等人2002年提出的基于分簇的層次性路由協議,它采用分簇的網絡結構,各節點獨立地按照一定概率決定自己是否做簇首,周期性地進行簇首選舉和網絡重組,避免簇首節點能耗過 多,影響網絡壽命。相比一般的平面協議或靜態分簇協議,LEACH可以減少網絡能量損耗,延長網絡生命周期。在此基礎上,很多人基于不同應用提出了改進方案,如Stephanie Lindsey等人提出的PEGASIS(power-efficient gathering in sensor information systems)協議,就是對LEACH協議的改進,其基本思想是使節點僅和它們最近的鄰節點進行通信,增加網絡生命時間。

研究發現,這些分簇路由協議具有很好的自組織特性,一定程度上提高了網絡性能,延 長了網絡壽命。但在工作面上無線傳感網絡是由信息采集端向外單向傳輸,組成的網絡節點是一種帶狀分布、信息流量不均衡的網絡,會造成節點的功耗分布不均,接近出口的匯聚節 點數據流量大,負載重,壽命短等現象。另外,隨工作面的不斷向前推進,網絡結構將隨之變化。現有的路由協議無法滿足礦井下這種特殊環境。因此在LEACH路由協議的基礎上,本文提出了一種能量平衡的大規模無線傳感器網絡分簇路由協議,以實現節能和均衡能耗相結合。3 網絡模型

3.1 假設

為增加模擬工作面的真實性,我們將仿真場景大小設置為長帶狀區域,N個節點隨機的布置在該區域。節點需滿足以下條件: 所有的節點具有相同的且與無線電信號在各個方向上能耗相同,各節點的初始能量相等且能量有限,能感知自己的剩余能量,且具有功率控制能力可以改變發射功率,從而控制發送的距離,每個節點都具有足夠的計算能力支持不同的MAC協議和數據處理。2 所有節點的通信距離不超過節點的有效通信距離 sink節點是固定放置在巷道的末端,且有持續的電源供給 4 相鄰節點采集的數據具有較高的相關性,可進行數據融合 5 所有節點時間同步 3.2具體的能量公式

該模型考慮了發射電路的發射能量、接收電路接收能量, 且能量損耗與傳輸距離有關。發射機發射m比特消息消耗的能量為:

2??mEelec?mEfsd,d?d0ETx(m,d)??

(1)4??mEelec?mEmpd,d?d0接收機接收m比特消息消耗的能量為:

ERx(m)?mEelec

(2)ETx(m,d)為發射m比特數據所消耗的能量,ERx(m)為收到m比特數據所消耗的能量,d為傳輸距離,Eelec為每發送或接收1比特數據傳輸所消耗的能量,Efs為自由空間常數,Emp為多路徑衰落傳輸常數,Efs和Emp與所采用的輸信道模型有關。d0為傳輸距離的門限值d0?Efs,當傳輸距離大于d0時數據傳輸的消耗相當大。Emp4分簇路由協議改進方案 4.1 簇形成過程

在LEACH協議中,簇首的產生具有很大的隨機性,不能均衡能耗。礦井工作面的特殊 地形,各個簇都是相鄰的,LEACH協議沒有考慮節點的剩余能量,地理位置等因素。因此,我們根據工作面的特殊環境,設計改進的LEACH協議LEACH—IM 協議。在LEACH的基礎上,簇頭節點的個數為N,我們假設理想的成簇概率為P,最終成簇的數目為K=NP。簇 首節點選取將以鄰居節點的平均剩余能量與節點本身的剩余能量的比值,擔任簇首節點的總個數及鄰居節點個數作為節點競爭簇頭的參數。將能量的比值轉化成時延,比值越小,時延越小,反之時延越大。網絡所有節點在成為簇頭之前,均等待一個時延,時延先到達的節點優先成為簇首節點。

在描述算法之前,先規定每個節點保存各自信息(節點ID,初始能量,節點剩余能量)及鄰居節點信息(節點ID,剩余能量)。每輪分簇開始時,規定獲取鄰居節點信息時段為 TD。每個節點將以通信半徑r,廣播自身信息(節點ID,節點剩余能量Er)然后接收鄰居節點信息,并更新本節點信息中鄰居節點的平均剩余能量Ea和鄰居節點的個數d。任取某節點Vi,鄰居節點Vj,則Vi節點的平均剩余能量為:

1dEa??Er

dj?1當Vi節點的剩余能量Er>Ea時:

(3)t1?Ea1??TD??

Erd?(4)當Vi節點的剩余能量Er?Ea時:

t2?TDET?(1?r)?D??

2E

2(5)在上式中的E是節點的初始能量,ρ是一個均勻分布在[0.9,1]之間的一個隨機實數,其作用是減小兩個節點可能取相同t值的概率。

在LEACH協議中簇首的選擇還考慮到該節點在過去的操作中擔當簇首節點的次數,在LEACH—IM協議中,我們將節點擔當簇首節點的總時間作為衡量參數。我們將采用基于加權的分簇算法。

節點i的權值計算公式表示為:

Wi?wt1?w2T(to)

(6)其中,w1、w2是加權因子且滿足w1?w2?1。t表示由上式鄰居節點的平均剩余能量與節點本身的剩余能量的比值轉化成的時延;T(to)表示該節點從網絡運行開始當過簇首的總時間。若節點的剩余能量較多,擔任簇首節點的時間較短,則時延先到達的節點將優先成為簇頭節點。

簇首確定后,其他節點從睡眠中醒來,接收簇首節點廣播的信息,依據距離遠近選擇要加入的簇,并向簇首發送個人信息。簇首在接到節點加入信息后,將根據加入節點的數目,為簇內每個節點分配一個通信時隙,告知節點何時發送數據,至此就形成整個網絡。簇形成之后就不再改變,當簇首節點低于預設的門限值后,將在簇內重新選擇簇首節點,選擇依據依然參照公式(6)。4.2 數據傳輸

形成簇之后,簇首節點將對采集到的數據進行必要處理和融合,隨后進入數據傳輸階段。數據傳輸包括簇內傳輸和簇間傳輸。簇內傳輸采用TDMA模式,可有效的防止信道沖突,節約能量;而簇間傳輸,傳輸數據量大,能耗大,考慮到工作面的特殊環境和采集檢測數據的冗余性,我們采用最小生成樹算法的多跳路由,實現簇頭節點與sink節點的通信。5仿真結果

為了比較LEACH及其改進協議LEACH-IM的性能,將這兩個算法在NS2中仿真。假 設仿真環境為400m * 10m,節點總數N=200個,節點的初始能量為2J,sink節點位于原點(0,0),理想的成簇概率為P=8%,能量模型參數參照文獻[y]:Eelec?50nJ/bit,Efs?10nJ/bit/m2,Emp?0.013nJ/bit/m2,代入公式可以得到有效通信距離

d0?87.7m,但參照文獻[y],依照具體的應用環境,有效通信距離為d0?50m。最優簇首節點個數K?p*N?16。簇內簇間數據融合率設置為0.7。

0.80.70.60.50.40.30.20.10——LEACH+-+-LEACH-IM節點死亡概率050010001500工作周期輪數200025003000

圖1

圖1顯示了網絡中節點死亡率隨工作周期數的變化情況。從圖中結果可以看出,LEACH-IM在延長網絡生存時間方面性能突出。此外,從第一個節點開始死亡的時間點來看, LEACH-IM也具有明顯的優勢。結果還表明,LEACH-IM死亡速率變化相當緩慢。表明CEUC使整個網絡的能耗分布趨于平均,使各節點的能量幾乎同時耗盡,避免了某些節點被過度使用。

——LEACH+-+-LEACH-IM21.5節點平均能耗10.50050010001500工作周期輪數200025003000

圖2 圖2在能耗指標上對LEACH和LEACH-IM進行了比較。可以看到,LEAC-IM方法

使得簇內節點能耗均衡,每輪的能耗都比LEACH協議少很多;而LEACH簇內節點能耗與簇首位置分布及數目相關,當簇首分布均勻時簇內節點能耗均衡,反之不均衡,因此每輪的性能十分不穩定。新的算法比LEACH有了顯著改進。4結束語

本文通過對LEACH協議的分析,并針對礦井下的實際環境對協議進行改進。仿真結果顯示,改進后的協議能更好地平衡網絡負載、節約能量消耗且具有更高的能量使用效率,實現了多方面的優化。參考文獻

[1] 孫利民,李建中,陳 渝,等.“無線傳感器網絡”[M].北京:清華大學出版社,2005:3-4.Sun [2] 徐衛克.LEACH協議成簇機制的改進計算機與現代化[A] 2010年第11期:72—79 Xu Weike.[3] 吳 征,朱 軍,韓永遠。一種新的基于LEACH的WSN分簇協議[J],計算機技術與發展.2010.Vol.20 No.5:29—33

[4] 周莉娟,陳光柱,羅成名.采煤工作面無線傳感器網絡的無線通信信道建模,傳感技術學報。2010 Vol 23 No.5: 722—726

[5] Soojung Hur,Jaehyen Kim,Jeonghee Choi,Yongwan Park.“An Ef?cient Addressing Scheme and Its Routing Algorithmfor a Large-ScaleWireless Sensor Network” EURASIP Journal onWireless Communications and Networking.Volume 2008,1—13 [6] Neeraj Kumar, Manoj Kumar, R.B.Patel.“Coverage and Connectivity Aware Neural Network Based Energy Efficient Routing in Wireless Sensor Networks” International jouenal on applications of graph theory in wireless ad hoc networks and sensor networks,Vol.2,No1,2010:45—60 [7] Adeel Akhtar, Abid Ali Minhas, and Sohail Jabbar.“Energy Aware Intra Cluster Routing for Wireless Sensor Networks” International Journal of Hybrid Information Technology Vol.3, No.1, January, 2010 :29—47 [8] 曲文虎,谷雨,屈玉貴 管彬“WSN中一種最優的匯聚節點移動方案”通信技術。Vol.43,No.08,2010 9—11

[9] 王曉喃,高德民,徐 江“高效節能的無線傳感器網絡路由協議設計與實現” 計算機應用研究,2010 Vol.27 No.8 :3107—3109 [10] 劉 昕 王全玉 金旭亮.“基于能量感知的數據匯聚和路由協議”計算機研究與發展:83—89 [11] 郭敏, 賀鵬.“一種基于的無線傳感器網絡路由改進算法” 電腦知識與技術.Vol.6,No.8,March 2010, pp.1977-1979

第二篇:無線傳感網絡學習心得

無線傳感器網絡學習心得

初次接觸這個課程時,我無意地在課本中看到了對于無線傳感器網絡的基本概述:無線傳感器網絡是一種全新的信息獲取平臺,能夠實時監測和采集網絡分布區域內各種檢測對象的信息,并將這些信息發送到網關節點,以實現復雜的指定范圍內目標檢測與跟蹤。這讓我聯想到物聯網體系的感知層與網絡層,乍一想,這不就是物聯網感知層與網絡層的整體解決方案么?美國《商業周刊》與MIT技術評論分別將無線傳感器網絡列為改變世界的10大技術之一。作為一名物聯網工程專業的大學生,了解于此,內心燃起了一團火焰,因為覺得這個將成為我們將以時代推動者的身份參與到人類21世紀的建設中。

學習無線傳感器網絡這個課程,分3個階段,第一個階段是分別講解無線傳感器網絡里面的各個組成部分,包括物理層,信道接入技術,路由協議,拓撲技術,網絡定位與時間同步技術等等。第二個階段是整合零碎的知識,總結出無線傳感器網絡的工作原理。第三階段是利用現有知識理解無線傳感器網絡在物聯網環境下的應用并且能夠根據現實需求設計出符合要求的一個整體的無線傳感器網絡。

第一階段知識總結,(1)無線傳感器網絡物理層是數據傳輸的最底層,它需要考慮編碼調制技術,通信速率,通信頻段等問題。信道接入技術中有IEEE 802.11MAC協議,S-MAC協議,Sift協議,TDMA技術,DMAC技術,CDMA技術。在物理層和信道接入技術主要有2個標準,一個是IEEE 802.15.4標準,一個是ZigBee標準,它們各有優劣,可根據現實情況采用不同標準。(2)無線傳感器網絡路由協議的作用是尋找一條或或多條滿足一定條件的,從源節點到目的節點的路徑,將數據分組沿著所尋找的路徑進行轉發。路由協議中有Flooding協議,Gossiping協議,SPIN協議,DD協議,Rumor協議,SAR協議,LEACH協議,PEGASIS協議等協議。(3)動態變化的拓撲結構是無線傳感器網絡最大特點之一,拓撲控制策略為路由協議、MAC協議、數據融合、時間同步和目標定位等多方面都奠定了基礎。在無線傳感器網絡中,拓撲控制將影響整個網絡的生存時間,減小節點間通信干擾,提高網絡通信效率,為路由協議與時間同步提供基礎,影響數據融合與彌補節點失效的影響。(4)無線傳感器網絡主要有兩種基本感知模型,而這又跟覆蓋問題直接相關。根據無線傳感器網絡不同的應用,覆蓋需求通常不同。根據覆蓋目標不同,目前覆蓋算法可以分為面覆蓋,點覆蓋及柵欄覆蓋。(5)無線傳感器網絡的定位是指自組織的網絡通過特定方法提供節點位置信息。這種自組織網絡定位分為節點自身定位和目標定位。節點自身定位是確定網絡中節點的坐標位置的過程。目標定位是確定網絡覆蓋范圍內目標的坐標位置。定位過程中把定位算法分為基于測距和無需測距的定位算法。基于測距的定位算法需要測量相鄰節點之間的絕對距離或者訪方位,并利用節點間的實際距離或者方位來計算位置節點的位置,常用的測距技術用RSS(到達信號強度)測量法,TOA(到達時間)測量法,TDOA(到達時間差)測量法,RSSI(到達信號強度)測量法等。(6)無線傳感器網絡上的目標跟蹤與其定位不同,主要目的不是追求定位的精度,而是需要對移動的目標或者時間進行動態的監測。基于無線傳感器網絡的目標跟蹤過程大致包括3個階段:檢測、定位和通告。檢測階段:無線傳感器網絡中的節點周期性地通過傳感器模塊檢測是否有目標出現。定位階段:為了節省能量,只有距離跟蹤目標比較近的節點才會對目標進行定位,如果節點接受到另外兩個或者兩個以上的節點到跟蹤目標的距離,則可選用三邊定位法或者多邊極大似然估計法計算跟蹤目標的位置。通告階段:計算出跟蹤跟蹤目標的運動軌跡后,傳感器網絡要通知跟蹤目標周圍的節點啟動進入跟蹤狀態。(7)無線傳感器網絡中的時間同步技術有兩大時間同步模型,時鐘模型與通信模型。時間同步協議中有經典的LTS協議,RBS協議,TPSN協議,DMTS協議和FTSP協議等協議。(8)在無線傳感器網絡中間件應用中,無線傳感器網絡中間件體系結構是無線傳感器網絡中間件的核心,它決定著無線傳感器網絡的運行及組織方式。(9)傳感器網絡以數據中心的特點使得其設計方法不不同于其他計算機網絡,傳感器網絡應用系統的設計以感知數據管理和處理為中心,把數據庫技術和網絡技術緊密結合,從邏輯概念和軟、硬件技術兩個方面實現一個高性能的以數據為中心的網絡系統。(10)無線傳感器網絡數據不能局限于網絡內部傳輸,這樣不利于無線傳感器網絡的普及應用,必須讓終端用戶能夠通過外部網絡(如Internet)便捷地訪問無線傳感器網絡采集的環境數據。這就需要物聯網環境下的無線傳感器網絡接入技術了。多網融合的無線傳感器網絡是在傳統的無線傳感器網絡的基礎上,利用網關接入技術,實現無線傳感器網絡與以太網、無線局域網、移動通信網等多種網絡的融合。處于特定應用場景中的、高效組織組織的節點,在一定的網絡調度與控制策略驅動下,對其所部屬的區域開展監控與傳感;網關節點設備將實現對其所在的無線傳感器網絡的區域管理、任務調度、數據聚合、狀態監控與維護等一系列功能。經網關節點融合、處理并經過相應的標準化協議處理和數據轉換之后的無線傳感器網絡信息數據,將有網關節點設備聚合,根據其不同的業務需求及所接入的不同網絡環境,經由TD-SCDMA和GSM系統下的地面無線接入網、Internet環境下的網絡通路及無線局域網網絡下的無線鏈路接入點等,分別接入TD-SCDMA與GSM核心網、Internet主干網及無線局域網等多類型異構網絡,并通過各網絡下的基站或主控設備,將傳感信息分發至各終端,以實現針對無線傳感器網絡的多網遠程監控與調度。(11)無線傳感器網絡具有很強的應用相關性,起硬件需要滿足輕量化、擴展性、靈活性、穩定性、安全性與低成本等要求。

學習的第二個階段,對零碎的知識點進行整合,總結出對無線傳感的工作原理的自我理解。

上圖就是一個典型的無線傳感器網絡應用系統的簡易示意圖,它擁有著無線傳感器網絡所應該擁有的最基本的三種類型的節點,即傳感器節點(sensor node),匯聚節點(sink),用戶的管理節點(User)以及互聯網或通信衛星。傳感器節點(sensor node)分布于監測區域的各個部分(sensor field),用于收集數據,并且將數據路由至信息收集節點(sink),信息收集節點(sink)與信息處理中心(User)通過廣域網絡進行通信,從而對收集到的數據進行處理。

學習的第三階段:利用現有的知識體系,理解無線傳感器網絡在現實中的應用,并且可以根據現實的需求設計出合理的應用體系。結合無線傳感器網絡在農業中的應用進行探究:(1)在體系結構選擇方面,其體系結構選擇通性化的網絡體系結構,跟上圖體系相符。(2)節點選擇方面,由于農業監測的復雜性及監測環境對于外來設備的敏感性,要求傳感器節點體積盡可能小,為了獲取到確切的監測信息,要求傳感器節點裝備多種高精度傳感器。為了延長傳感網的使用壽命,需要傳感器節點具有盡可能長的生命周期。(3)能量管理:實際情況下的傳感器網絡應用可能需要長達多個月的環境監控,而單個節點的能量非常有限。為了節省能量,在發生傳感任務時,只有相鄰區域的節點處于傳感通信狀態,其余節點不需要傳感和轉發數據包,應當關閉無線通信系統,使其休眠節省能量。(4)數據采集方面,在無線傳感器網絡中,靠近基站的節點要為其他節點轉發數據,能量消耗較大,邊緣節點只要進行數據收集,能耗較少,所以邊緣節點應當采取一定的算法對數據進行融合,降低通信量,校正采樣數據之后再進行發送。(5)通信機制方面,包括路由協議、MAC協議及通信部件的控制訪問機制等,路由協議負責將數據分組從源節點通過網絡發送到目的節點,尋找源節點和優化節點間的路徑,將數據分組沿優化的路徑正確轉發。MAC協議決定無線信道的使用方式,在節點間分配有限的通信資源,無線通信模塊在發送狀態消耗能量最多,睡眠狀態消耗最少,接受和偵聽狀態下消耗稍小于發送狀態(6)遠程任務控制主要是在對環境監控一段時間后,調整網絡的任務,這需要向基站發出命令,基站通過發送廣播消息發出指令,還要對節點的能量、通信等狀態進行監控,不斷進行任務調整,延長傳感器網絡的使用壽命。

根據現實的需求設計出合理的應用體系分這幾步:(1)根據客戶的要求,分析現實的需求,書寫需求文檔。(2)設計出無線傳感器網絡的整體框架體系,選擇與設計各項通信協議與通信機制。(3)分別對框架中的軟硬件進行分析與設計(4)進入開發狀態(5)測試,交付,維護

以上就是我對無線傳感器網絡課程的學習心得了,在此課程中,雖然我對其中的知識體系有所了解,但是缺少實際的操作與開發,只是停留在了淺顯的認識層面,只有通過實際的操作,才能更深入地去了解它其中的核心,而這一點卻恰恰是我們這個課程的學生所缺少的,基于此,我非常地希望在這個專業、這個課程中,有專業的實驗室讓我們這群學生能夠進行實打實的器械操作,這樣才能真正地達到“格物致知”,“學為實用”啊。

第三篇:無線傳感網絡課程設計

無線傳感網絡 課程設計報告

姓名:胡韶輝 胡衎

2017

學號:139074377 139074376 班級:物131班 指導教師:衛琳娜

年1月1日

無線傳感網絡課程設計

實驗

一、無線傳感網絡點對點通信實驗

1.實驗內容

此實驗為驗證實驗,根據實驗步驟進行實驗,觀察結果是否與預期相符

2.實驗步驟

用IAR8.1打開路徑:C:UsersxsDesktop無線傳感器網絡課程設計無線傳感網實驗資料201604感知RF2-2530WSNV1.2代碼和例子程序Light_SwitchIDELight_Switchsrf05_cc2530IarLight_Switch.eww分別編譯并下載至兩個節點上,打開節點,左右鍵選擇/,選擇完成后按中間鍵確認,觀察LED燈顯示情況。3.實驗代碼及分析

/* 功 能:查找字符在索引中的哪一個位置 */ /**************************************************************************************************/ static u16 lookforChar(u8 ch){ uint16 i;for(i = 0;i < FONTLISTCOUNT;i ++){

if(fontList[i] == ch)

return i;} return i;}

//查中文

static u16 lookforChar16(u16 ch){ uint16 i,j;u16 temp16;for(i = 0;i < fontChar16ListCount;i ++){

j = i*2;

temp16 = fontChar16List[j + 1];

temp16 <<= 8;

temp16 |= fontChar16List[j];

if(temp16 == ch)

return i;} return i;}

/**************************************************************************************************/ /* 功 能:在指定位置輸出8*8 */ /**************************************************************************************************/ static void LcdPutChar8(u8 x,u8 y,u8 ch){ LcdBuf[y][x] = ch;} /**************************************************************************************************/ /* 功 能:在指定位置輸出16*16 */ /**************************************************************************************************/

/*static void LcdPutChar16(u8 x,u8 y,u16 ch){ LcdBuf[y][x] =(u8)ch;

//低前高后

LcdBuf[y+1][x] =(u8)(ch>>8);}

void LcdPutString8(u8 x,u8 y,u8 *ptr u8 len,u8 op){

u8 i,*tptr = ptr,xx = x,yy = y;u16 m;if(x > 95)

return;if(y > 1)

return;for(i = 0;i < len;i ++){

m = lookforChar(*tptr ++);

if(m!= FONTLISTCOUNT)

{

m = m * 8;

}

else

return;

xx += 8;

if(xx > 88)

return;} } */

void LcdClearRam(void){ u8 i;for(i = 0;i < 96;i ++){

LcdBuf[0][i] = 0;} for(i = 0;i < 96;i ++){

LcdBuf[1][i] = 0;} } void LcdClearScrean(void){ LcdClearRam();PutPic((void *)LcdBuf);}

void LcdPutString16_8(u8 x,u8 y,u8 *ptr,u8 len,u8 op){ u8 i,j,*tptr = ptr,xx = x,yy = y;u16 m;if(xx > 95)

return;if(yy)

return;

for(i = 0;i < len;i ++){

m = lookforChar(*tptr ++);

if(m!= FONTLISTCOUNT)

{

m = m * 16;

for(j = 0;j < 8;j ++)

{

if(op)

{

LcdPutChar8((xx + j),yy,font[m+j]);

LcdPutChar8((xx + j),yy+1,font[m+j+8]);

}

else

{

LcdPutChar8((xx + j),yy,~font[m+j]);

LcdPutChar8((xx + j),yy+1,~font[m+j+8]);

}

}

}

else

break;

xx += 8;

if(xx > 96)

return;} PutPic((void *)LcdBuf);} //顯示16*16字符

void LcdPutString16_16(u8 x,u8 y,u8 *ptr,u8 len,u8 op){ u8 i,j,*tptr = ptr,xx = x,yy = y;u16 m;if(xx > 95)

return;if(yy)

return;

for(i = 0;i < len;i ++){

m = lookforChar(*tptr ++);

if(m!= FONTLISTCOUNT)

{

m = m * 32;

for(j = 0;j < 16;j ++)

{

if(op)

{

LcdPutChar8((xx + j),yy,font[m+j]);

LcdPutChar8((xx + j),yy+1,font[m+j+16]);

}

else

{

LcdPutChar8((xx + j),yy,~font[m+j]);

LcdPutChar8((xx + j),yy+1,~font[m+j+16]);

}

}

}

else

break;

xx += 16;

if(xx > 80)

return;} PutPic((void *)LcdBuf);}

static void LcdPrint8(u8 x,u8 y,u8 vl,u8 op){ u8 j;u16 m;m = lookforChar(vl);if(m!= FONTLISTCOUNT){

m = m * 16;

for(j = 0;j < 8;j ++)

{

if(op)

{

LcdPutChar8((x + j),y,font[m+j]);

LcdPutChar8((x + j),y+1,font[m+j+8]);

}

else

{

LcdPutChar8((x + j),y,~font[m+j]);

LcdPutChar8((x + j),y+1,~font[m+j+8]);

}

} } } static void LcdPrint16(u8 x, u8 y, u16 val, u8 op){ u8 j;u16 m;m = lookforChar16(val);if(m!= fontChar16ListCount)

{

m = m * 32;

for(j = 0;j < 16;j ++)

{

if(op)

{

LcdPutChar8((x + j),y,fontChar16[m+j]);

LcdPutChar8((x + j),y+1,fontChar16[m+j+16]);

}

else

{

LcdPutChar8((x + j),y,~fontChar16[m+j]);

LcdPutChar8((x + j),y+1,~fontChar16[m+j+16]);

}

}

} }

void LcdPutDispBuf(u8 x,u8 y,OledCodeDataType *ptr,u8 op){ u8 tcount = x;OledCodeDataType *tptr = ptr;u16 temp16;if(x > 88)

return;if(y > 1)

return;while((*tptr!= '

主站蜘蛛池模板: 少妇被躁爽到高潮无码文| 亚洲精品无码国模| 久久999精品国产只有精品| 免费国产在线精品一区不卡| 欧美巨大黑人精品一.二.三| 精品熟人妻一区二区三区四区不卡| 狠狠色婷婷久久综合频道日韩| 国产精品久久久久久久久久久久人四虎| 高潮喷水的毛片| 亚洲人成人无码www影院| 亚洲精品乱码久久久久蜜桃| 制服丝袜中文字幕在线| 日日噜噜噜夜夜爽爽狠狠| 琪琪777午夜理论片在线观看播放| 丰满人妻一区二区三区视频53| 成人性做爰aaa片免费看曹查理| 日本亲与子乱人妻hd| 无码h黄肉3d动漫在线观看| 7777欧美大白屁股ass| 国产精品白丝喷水在线观看| 欧美激情在线播放| 精品国产福利拍拍拍| 日本熟熟妇xxxxx精品熟妇| 日本亲与子乱人妻hd| 久久成人影院精品777| 久久www免费人成_看片| 无码午夜福利片在线观看| 国模杨依粉嫩蝴蝶150p| 国产av无码专区国产乱码| 99国产精品自在自在久久| 色多多性虎精品无码av| av免费不卡国产观看| 色88久久久久高潮综合影院| 成人亚洲欧美一区二区三区| julia无码中文字幕一区| 国产午夜成人精品视频app| 成人午夜福利视频后入| 精品无人区卡卡二卡三乱码| 深夜福利小视频在线观看| 亚洲中文字幕永久在线全国| 大地资源在线观看官网第三页|