<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于CAN總線的大容量漢字火災(zāi)樓層顯示器報(bào)警系統(tǒng)方案設(shè)計(jì)

          基于CAN總線的大容量漢字火災(zāi)樓層顯示器報(bào)警系統(tǒng)方案設(shè)計(jì)

          作者: 時(shí)間:2012-06-19 來源:網(wǎng)絡(luò) 收藏

          4 系統(tǒng)軟件設(shè)計(jì)

          本文引用地址:http://www.ex-cimer.com/article/160410.htm

            軟件功能主要是1.將串口發(fā)送下來的信息文件寫入FLASH存儲(chǔ)。2.和報(bào)警控制器進(jìn)行通信,如果發(fā)現(xiàn)有火警信息,則查找FLASH中的地址信息,予以顯示在漢字液晶上報(bào)警,如有多條火警信息,則滾動(dòng)顯示各條信息。

          漢字樓層顯示器軟件流程圖

          圖6 漢字軟件流程圖

            圖 6是漢字軟件流程圖。用page(值為0-7)表示讀寫的FLASH頁,用count(值為0-65535)表示每頁頁內(nèi)地址。其中 page0-page6用來存儲(chǔ)通過串口下載的漢字信息,page7用來存儲(chǔ)接收到的火警等動(dòng)態(tài)信息。一旦接收到新火警,即查詢FLASH中相應(yīng)的漢字信息,并在液晶上滾動(dòng)顯示。

            為了快速定位所查詢的火警漢字地址信息,我們采用數(shù)組結(jié)構(gòu)存儲(chǔ)。盡管這樣會(huì)因?yàn)閷?shí)際火警地址不等長(zhǎng),而造成存儲(chǔ)中出現(xiàn)一些空地址,存儲(chǔ)效率不高,但是由于我們對(duì)數(shù)組的查找是一種可以直接定位的快速查找,不用采用鏈表之類的復(fù)雜數(shù)據(jù)結(jié)構(gòu),也避免了二分檢索之類復(fù)雜的搜索算法。對(duì)于單片機(jī)而言,實(shí)質(zhì)上是以比較小的空間為代價(jià)換來了比較高的時(shí)間效率,還是十分值得的。

            5 結(jié)語

            本文提出的基于漢字樓層顯示器,較好的解決了現(xiàn)有樓層顯示器的缺陷。對(duì)大于51單片機(jī)ROM 64K尋址空間的數(shù)據(jù)存儲(chǔ)需求,采取分頁存儲(chǔ)的訪問方式可以很好的解決這個(gè)問題。通過在FLASH中存儲(chǔ)數(shù)據(jù)信息,可以避免因?yàn)?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/CAN">CAN上通訊數(shù)據(jù)流量過大而導(dǎo)致火警不能及時(shí)傳達(dá),延誤報(bào)警時(shí)機(jī)。而且FLASH中的漢字信息可以通過串口在線擦寫,便于現(xiàn)場(chǎng)調(diào)試。目前產(chǎn)品已經(jīng)投入實(shí)用,用戶反應(yīng)運(yùn)行良好。


          上一頁 1 2 3 下一頁

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();