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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 基于AT89S52的串口通信的測溫系統(tǒng)設(shè)計

          基于AT89S52的串口通信的測溫系統(tǒng)設(shè)計

          作者: 時間:2011-09-22 來源:網(wǎng)絡(luò) 收藏
          3 軟件

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

            3.1 下位機軟件

            下位機程序包含三部分:微控制器的初始化、對DS18B20 的訪問和對LCD1620 的讀寫。 是該的核心部分,控制著溫度的轉(zhuǎn)換以及讀取溫度數(shù)值并轉(zhuǎn)化成十進制數(shù)以及相應的ASCII 值在1602 上進行顯示,通過RS232供PC 機讀取溫度值。其主要工作流程為:初始化內(nèi)部部件以達到環(huán)境運行要求、初始化DS18B20 以及LCD1602;讀取溫度值并將采集到的數(shù)據(jù)進行相應的轉(zhuǎn)化傳送到1602 上進行顯示;當遇到中斷時,進入中斷服務函數(shù),檢查上位機是否向其請求發(fā)送數(shù)據(jù)。一旦檢測到正確的請求即將讀取的溫度數(shù)值按照一定的格式放到緩沖器中,直到數(shù)據(jù)發(fā)送結(jié)束,返回中斷點繼續(xù)執(zhí)行原函數(shù)。流程圖如圖3(a)所示。

            3.2 上位機軟件設(shè)計

            為方便進行遠程控制可將采集到的溫度數(shù)據(jù)通過RS_232 口傳輸?shù)娇刂浦行牡碾娔X上,以便實時監(jiān)測。采用VB6.0[4]作為開發(fā)平臺,可高效快速地完成軟件的開發(fā)設(shè)計。

            采用Viusal Basic 開發(fā)程序主要有兩種方法:①使用MSComm 控件;②調(diào)用Window API 函數(shù)。

          使用MSComm 控件實現(xiàn)的方法比調(diào)用API 動態(tài)鏈接庫函數(shù)的方法方便、快捷、而且用編寫代碼量少的有點,可以大大地提高編程效率和設(shè)計的穩(wěn)定性。該部分軟件完成窗體的設(shè)計,設(shè)置Timer 的間隔為300ms,完成MSComm控件的添加,設(shè)置其相應的屬性,對所得的數(shù)據(jù)進行分析計算并在窗口中顯示。流程圖如圖3(b)所示。

          圖3 系統(tǒng)程序流程

            4 結(jié)語

            這里項目根據(jù)實際需要完成了系統(tǒng)的設(shè)計和實現(xiàn)。

            包括:整體架構(gòu)設(shè)計、下位機底層硬件和軟件的具體實現(xiàn)、PC 串口上位機軟件設(shè)計,較好地達到了預期目的。系統(tǒng)實物圖如圖4 所示,前后臺溫度顯示如圖5(a)、圖5(b)所示。

            系統(tǒng)充分利用了DS18B20 微型化、低功耗、高性能、抗干擾能力強等優(yōu)點,將溫度數(shù)據(jù)通過串口傳輸?shù)缴衔粰C進行統(tǒng)一管理,有利于溫度數(shù)據(jù)的保存和查詢,節(jié)省了人力成本。

            該系統(tǒng)可應用于較多的場合。更高級的嵌入式系統(tǒng)和無線傳感網(wǎng)絡(luò)的測溫系統(tǒng)目前也是人們研究的熱點。下一步的工作將展開反饋控制的溫控系統(tǒng)設(shè)計。

          圖4 系統(tǒng)實物

          圖5 測溫結(jié)果顯示


          上一頁 1 2 下一頁

          評論


          相關(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); })();