新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于89C51單片機的遠程數據采集系統設計

        基于89C51單片機的遠程數據采集系統設計

        作者: 時間:2012-02-04 來源:網絡 收藏

          工業生產過程中常常需要對溫度、濕度、壓力、流量等各種工藝參數隨時進行檢測和監控,同時還要將檢測到的數據及時傳遞給上位機,以實現對參數的隨機查詢,對信息的存儲與處理,及時調整控制方案,提高生產效率和產品質量。為此,筆者以89C51作為主控制器設計了一種簡單易行的遠程系統。

        1 系統硬件電路的設計

          遠程系統框圖,由兩部分組成:一是基于89C51實現的現場電路,二是PC機與89C51之間的電路。

        1.1 89C51數據采集系統

          數據采集系統的硬件原理如圖1所示。

          該系統選用89C51作為主控制器,此芯片與8051完全兼容,且內部帶有4 KB閃速可編程、可擦除PEROM,工作時鐘可高達24 MHz。

          MAX691主要用來實現掉電保護,同時起到“看門狗”的作用。系統電源突然斷電時,MAX691PF0端及時向89C51INT0申請中斷,保護采集的數據不丟失。若軟件執行中出現故障,89C51P3.2經一定時間間隔沒有脈沖輸出時,MAX691將起“看門狗”的作用,使RST復位有效,重新啟動系統。

          數據存儲器6116主要作為數據傳輸的緩沖,顯示電路由8155完成,PA口作鍵盤輸入,PB口作字形顯示,PC口作控制線用。8155內部256 BRAM用于存放8通道采集到的原始數據。
          

         

          數據采集與轉換由12位A/D轉換器ICL7109來完成。7109是高精度、低噪聲、低漂移的雙積分模數轉換器,其內部帶14位鎖存器和14位三態輸出寄存器,具有較強的接口處理能力。設定7109為直接接口方式。這種工作方式下,7109可連續進行數據的轉換,轉換結束時由STATUS發出轉換結束信號送至INT0請求中斷。89C51將轉換后的數據分兩次先低8位后高4位讀取。為了實現對8個通道的參數測量,同時盡量降低成本,簡化系統配置,設計了利用模擬多路開關CD4051進行通道的切換,共用一片7109由89C51控制,分時完成所有通道的采樣與轉換。

        1.2 電路

          由于是遠程數據采集系統,對數據傳輸的距離提出了較高的要求。PC機與單片機232C串行口直接相連,傳輸距離只有十幾米,無法滿足系統要求。為此采用了一個RS232C到RS422A的轉換裝置,PC機與89C51間接相連,以RS422A方式進行通訊,大大增加了傳輸距離。

          PC機與89C51串行通訊電路框圖如圖2所示。

          RS422A是一種以平衡方式傳輸的標準,可雙端發送、雙端接收。發送端和接收端分別采用平衡發送及差動接收。通過前者把邏輯電平變成電位差,完成始端信息傳送;通過后者把電位差變成邏輯電平,完成終端信息接收。并且RS422A采用雙線傳輸,大大提高了抗干擾能力。最大傳輸速率可達10 Mb/s(傳輸距離15 m時),傳輸速率降至90 kb/s時,最大傳輸距離可達1200 m,這能充分滿足系統的“遠程”要求。

        2 軟件設計

          軟件設計采用模塊化程序設計方法,按功能分為4個模塊,其中數據通信模塊又分為單片機串行通信程序和PC機通信程序,除與PC機通信程序使用VC++編程,其余均采用匯編語言編制。

        2.1 主程序模塊

          主程序主要完成對系統硬件電路的初始化,設置堆棧指針、串行口、T0、T1工作方式、8155顯示指示符,掃描鍵盤獲取鍵值并進行散轉處理。主程序模塊負責管理和調用各子模塊。  


          
        2.2 數據采集模塊

          該模塊完成對數據的采集及處理,中間調用了數字濾波子程序、數據轉換子程序、字形轉換及顯示子程序等。

          系統數據采樣模塊框圖如圖3所示。
          


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 亚东县| 绥化市| 鄯善县| 常山县| 南昌市| 云南省| 柳林县| 新蔡县| 石林| 福安市| 汶上县| 句容市| 襄樊市| 鄢陵县| 新兴县| 新干县| 长丰县| 买车| 乐东| 北票市| 阿拉尔市| 东方市| 温州市| 滦平县| 绥阳县| 同江市| 潞城市| 金沙县| 如皋市| 延川县| 沁源县| 万盛区| 环江| 明溪县| 慈利县| 中宁县| 玛纳斯县| 河曲县| 安溪县| 弋阳县| 永安市|