国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于單片機的數(shù)據(jù)采集系統(tǒng)

這篇具有很好參考價值的文章主要介紹了基于單片機的數(shù)據(jù)采集系統(tǒng)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

摘 要:本文以AT89C51單片機為核心,設計一個基于單片機的數(shù)據(jù)采集系統(tǒng)。系統(tǒng)可以采集16路模擬量,精度為12位,16路開關(guān)量和2路脈沖量,并將采集到的數(shù)據(jù)每隔一分鐘通過串口發(fā)送到PC機。

關(guān)鍵字:AT89C51;數(shù)據(jù)采集;串口通訊

1 概述

在工業(yè)控制系統(tǒng)中,除了控制單元和執(zhí)行單元外,還必須有反饋環(huán)節(jié)。在反饋環(huán)節(jié)中,最重要的就是對數(shù)據(jù)的采集。一般的工業(yè)控制中,數(shù)據(jù)有很多種形式,最常見的有電流電壓的模擬量、以二進制形式輸入的開關(guān)量以及以脈沖形式輸入的脈沖信號。

本文設計一數(shù)據(jù)采集系統(tǒng)系統(tǒng),系統(tǒng)以AT89C51單片機為核心,AT89C51是一個低電壓,高性能CMOS 8位單片機,片內(nèi)含4k bytes的可反復擦寫的Flash只讀程序存儲器和128 bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標準MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元。AT89C51是一個低功耗高性能單片機,40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內(nèi)含2個外中斷口,2個16位可編程定時計數(shù)器,1個全雙工串行通信口[1],AT89C51可以按照常規(guī)方法進行編程,也可以在線編程,這給開發(fā)帶來方便。

如圖1所示為設計的系統(tǒng)原理框圖。系統(tǒng)選擇一個串行的A/D轉(zhuǎn)換芯片,用模擬開關(guān)作擴展,兩個模擬開關(guān)即可擴展成16路的模擬量輸入。開關(guān)量的采集可以直接用單片機的I/O,用兩個并口即可完成16路的開關(guān)量采集。如圖所示,AT89C51單片機還有兩個外部中斷接口,即可用來測量脈沖量的輸入,采集其輸入頻率。單片機可以通過串口與上位PC機進行通訊,把采集到的數(shù)據(jù)發(fā)送到上位機上。

圖1 系統(tǒng)原理圖

2 硬件電路設計

系統(tǒng)硬件可以分成四個部分,分別為模擬量采集電路、開關(guān)量采集電路、脈沖量采集電路以及單片機與PC的串口通訊電路。下面分別作簡單的介紹。

2.1 模擬量采集電路

模擬量的采集要用到A/D轉(zhuǎn)換芯片,而且精度為12位,這里選擇MAX1241 A/D轉(zhuǎn)換器。MAX1241是一種低功耗、低電壓的12位逐次逼近型ADC,最大非線性誤差小于1LSB,轉(zhuǎn)換時間9ms,內(nèi)置快速采樣/保持電路。MAX1241采用三線式串行接口,與單片機的接線簡單,如圖2所示[3]。圖中兩個電容是去藕電容,用以對電源進行濾波。Vi是采集電壓的輸入端,Vref是A/D轉(zhuǎn)換器的參考電壓。一般情況下可以接單片機的電源。

圖2 MAX1241與單片機的接線圖

系統(tǒng)要求對16路的模擬量進行采集,因此,只有一個A/D轉(zhuǎn)換器就不夠的,但如果用多個A/D轉(zhuǎn)換器一方面會造成資源浪費,成本加大,另一方面單片機的I/O也不夠,因此這里用兩個8路模擬開關(guān)進行擴展,擴展成16路。如圖1的原理圖所示,系統(tǒng)選用兩個CD4051模擬開關(guān)[3],并用單片機的四個I/O口控制兩個模擬開關(guān)的通道選擇端,在采集過程中,選擇不同的通道進行數(shù)據(jù)采集。

2.2 開關(guān)量采集電路

對開關(guān)量的采集電路相對比較簡單,因為開關(guān)量的狀態(tài)只有0和1兩種,所以只要用兩個單片機的并口就可以了,這里用的是P0口和P2口。但是有一點需要說明的是: 由于AT89C51單片機的P0口內(nèi)部沒有上拉電阻,所以在電路中必須加入外部上拉電阻,阻值可以是4.7K~10K。而P2口內(nèi)部自帶上拉電阻,所以不需外加上拉電阻。采集輸入電路如圖1系統(tǒng)原理圖所示。

2.3 脈沖量采集電路

脈沖量信號是周期變化的信號,AT89C51單片機有兩個外部中斷INT0和INT1接口,利用這兩個外部中斷輸入接口,可以對脈沖量信號進行測量,脈沖信號可以直接送到單片機的外部中斷接口,也可以進行適當?shù)恼魏笤偎偷絾纹瑱C的外部中斷接口,如加入帶施密特功能的反向器74LS14。也可以用比較器進行整形,這樣使單片機的采集測量更加可靠,更加精確。

2.4 通訊電路

該系統(tǒng)沒有設計數(shù)據(jù)的顯示系統(tǒng),所以把采集到的數(shù)據(jù)發(fā)送到上位PC機上,與PC進行通訊。因為單片機與PC機的電平是不一樣的,因此兩者要進行數(shù)據(jù)交換,必須采用相應的電平轉(zhuǎn)換電路。用得最多的就是RS232通訊方式,采用MAX232芯片即可完成。簡單的電路如圖3所示。

圖3 通訊電路

3 軟件設計

根據(jù)設計要求,按照實現(xiàn)功能的分類,軟件部分主要完成四項任務:系統(tǒng)初始化、數(shù)據(jù)采集、數(shù)據(jù)處理、向PC機發(fā)送數(shù)據(jù)。在數(shù)據(jù)處理中,需要進行大量浮點數(shù)的乘除法和正弦、余弦運算,因此數(shù)據(jù)處理部分采用C語言編寫,在Keil環(huán)境中模塊化編程,充分利用C語言強大的計算能力。在數(shù)據(jù)采集部分中,MAX1241對時序要求比較嚴格,采用匯編語言實現(xiàn),所有功能模塊均為獨立的C文件或ASM文件。而實現(xiàn)C語言和匯編語言的混合編程[2]是軟件設計中的難點和關(guān)鍵之一。在設計中,匯編語言采用單獨的文件,通過寄存器傳遞函數(shù)參數(shù)。程序流程圖如圖4所示。

這里給出MAX1214的控制程序,是用匯編語言編寫,控制子程序完成一次A/D轉(zhuǎn)換和輸入,輸入數(shù)據(jù)存放于R0,R1寄存器。

;寄存器及端口定義:

CS: BIT P1.0 ;片選信號位

DOUT: BIT P1.2    ;串行數(shù)據(jù)輸入位

SCLK: BIT P1.1 ;驅(qū)動時鐘位

DATA_BH: EQU R0 ;高字節(jié)數(shù)據(jù)存儲單元

DATA_BL: EQU R1 ;低字節(jié)數(shù)據(jù)存儲單元

CONT_H: EQU R0 ;高位取數(shù)計數(shù)器

CONT_L: EQU R1 ;低8位取數(shù)計數(shù)器

SADC_R: XRL A,A ;清A

MOV CONT_H,#04H ;高8位計數(shù)

MOV CONT_L,#08H ;低8位計數(shù)

CLR SCLK ;SCLK置“0”

CLR CS ;選中1241,啟動轉(zhuǎn)換

SADC END:JNB DOUT,SADC_ END ;檢測A/D轉(zhuǎn)換結(jié)束

READ_H: SETB SCLK ;

CLR SCLK ;產(chǎn)生一個驅(qū)動時鐘

MOV C,DOUT ;輸入一位數(shù)據(jù)

RLC A ;數(shù)據(jù)移位至ACC.0

DJNZ CONT_H,READ_H ;高 4位輸入結(jié)束判別

MOV DATA_BH,A ;高 4位數(shù)據(jù)送寄存器

READ_L: SETB SCLK

CLR SCLK ;產(chǎn)生一個驅(qū)動時鐘

MOV C,DOUT ;輸入一位數(shù)據(jù)

RLC A ;數(shù)據(jù)移位置ACC.0

DJNZ CONT_L,READ_L ;低8位輸入結(jié)束判別

MOV DATA_BL,A ;低8位數(shù)據(jù)送寄存器

SETB SCLK

CLR SCLK ;清 DOUT輸出

SETB CS ;撤消片選

RET

圖4 軟件程序流程圖

4 結(jié)束語

該系統(tǒng)以AT89C51單片機為核心,可以對16路模擬量、16路數(shù)字開關(guān)量和兩路脈沖量進行采集,模擬量采集精度達到12位,在實際應用中,可以對電壓信號進行直接采集,如果要對傳感器的標準電流量進行采集時,還需加入采樣電阻,把電流轉(zhuǎn)換成電壓后進行采集。對采集的脈沖量的頻率取決于單片機的時鐘頻率,一般不能高于單片機的運行時鐘,如單片機用12MHz的晶振,則采集的脈沖頻率只能低于12MHz。本系統(tǒng)在實際應用中已調(diào)試通過,采集的數(shù)據(jù)精度高,速度快。

參考文獻

[1]孫涵芳.單片機原理及應用(修訂版)北.京航空航天大學出版社,1996年.

[2]馬忠梅.單片的C語言應用程序設計(第三版).北京航空航天大學出版社,2003年.

[3]于海生.微型計算機控制技術(shù).北京:清華大學出版社,1999年.文章來源地址http://www.zghlxwxcb.cn/news/detail-495705.html

到了這里,關(guān)于基于單片機的數(shù)據(jù)采集系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • 基于51單片機和proteus的電流采集系統(tǒng)

    基于51單片機和proteus的電流采集系統(tǒng)

    此系統(tǒng)是基于51單片機和proteus的仿真設計,功能如下: 1. LCD1602實時顯示獲取到電流值及設定值。 2. 按鍵可調(diào)整電流設定值。 3. 電流值過高則蜂鳴器報警。 4. 指示燈指示電流及系統(tǒng)狀態(tài)。 5. 系統(tǒng)信息可通過串口實時更新。 功能框圖如下: Proteus仿真界面如下: 下面就各個模

    2024年02月16日
    瀏覽(26)
  • 74-基于stm32單片機農(nóng)業(yè)蔬菜大棚溫濕度光照采集控制系統(tǒng)(程序+原理圖+元件清單全套資料)...

    74-基于stm32單片機農(nóng)業(yè)蔬菜大棚溫濕度光照采集控制系統(tǒng)(程序+原理圖+元件清單全套資料)...

    資料編號:074 功能介紹:采用stm32單片機作為主控CPU,采用DHT11傳感器采集溫濕度,采用光敏傳感器采集光照強度,通過按鍵設置溫濕度、光照的閾值,當溫度高于設置值,繼電器開啟散熱,當濕度低于設置值,繼電器開啟加濕,當光敏值大于設置值,蜂鳴器進行報警提醒,

    2024年02月12日
    瀏覽(56)
  • 基于51單片機的電壓采集(ADC0809)

    基于51單片機的電壓采集(ADC0809)

    1.ADC0809簡介 IN0~IN7 : 8路模擬量輸入端; D0~D7:8位數(shù)字量輸出端; ADDA、ADDC、ADDC:3位地址輸入線,用于選擇8路模擬通道中的一路; ALE:地址鎖存允許信號,輸入,高電平有效; START:A/D轉(zhuǎn)換啟動信號,輸入,高電平有效; EOC:A/D轉(zhuǎn)換結(jié)束信號,輸出。當啟動轉(zhuǎn)換時,高引腳為低電

    2023年04月18日
    瀏覽(17)
  • 基于51單片機的電壓采集(ADC0804)

    基于51單片機的電壓采集(ADC0804)

    1.ADC0804簡介 工作電壓:+5V,即VCC=+5V。 模擬轉(zhuǎn)換電壓范圍:0~+5V,即0≤Vin≤+5V。 分辨率:8位,即分辨率為1/(2^8)=1/256,轉(zhuǎn)換值介于0~255之間。 轉(zhuǎn)換時間:100us(fCK=640KHz時)。 轉(zhuǎn)換誤差:±1LSB。 參考電壓:2.5V,即Vref/2=2.5V。 Vin(+)、Vin(-):兩個模擬信號輸入端,可以接

    2023年04月08日
    瀏覽(14)
  • [免費開源]基于freescale單片機的心電信號采集與處理

    [免費開源]基于freescale單片機的心電信號采集與處理

    ?本文的工程可訪問:https://gitee.com/pidanQwQ/dsp? ? (包含兩套不同的方案,可自行下載對比) ?或者在CSDN中(僅一套):【免費】基于Freescal單片機的心電信號采集與處理資源-CSDN文庫 功能要求: ⑴實現(xiàn)ADS1292獲取心電信號原始數(shù)據(jù),并能通過串口或其他接口傳輸?shù)絇C電腦; ⑵實現(xiàn)

    2024年01月21日
    瀏覽(47)
  • 基于單片機的溫室環(huán)境數(shù)據(jù)監(jiān)測系統(tǒng)的設計

    基于單片機的溫室環(huán)境數(shù)據(jù)監(jiān)測系統(tǒng)的設計

    收藏和點贊,您的關(guān)注是我創(chuàng)作的動力 ??與農(nóng)業(yè)發(fā)達國家相比,我國的農(nóng)業(yè)科技方面還處于剛剛起步的狀態(tài),多數(shù)自動化農(nóng)業(yè)設備仍然使用在科研方。目前在溫室環(huán)境數(shù)據(jù)監(jiān)測方面,自動化設備比較落后。本文介紹了以STM32F103RCT6微控制器為核心,結(jié)合多種外設進行設計的溫

    2024年03月21日
    瀏覽(22)
  • 基于GD32單片機的12位ADC壓力采集(50kg壓力),附源碼和原理圖

    基于GD32單片機的12位ADC壓力采集(50kg壓力),附源碼和原理圖

    上位機監(jiān)測到的ADC采集到的數(shù)據(jù),該處采集的電壓值是3.287mv,電壓及壓力值如下圖: ?示波器采集的電壓值:3.26V,與上述單片機采集的數(shù)值基本一致 上位機監(jiān)測到的ADC采集到的數(shù)據(jù),該處采集的電壓值是2.454mv,電壓及壓力值如下圖: ?示波器采集的電壓值:2.50V,與上述單

    2024年04月22日
    瀏覽(34)
  • STM32單片機三線制PT100溫度采集控制系統(tǒng)LCD12864顯示器
  • 基于FPGA的數(shù)據(jù)采集系統(tǒng) ADDA采集 采集卡

    基于FPGA的數(shù)據(jù)采集系統(tǒng) ADDA采集 采集卡

    基于FPGA的數(shù)據(jù)采集系統(tǒng) ADDA采集 采集卡 采用FPGA與ADC設計一個可以在200K Hz采樣率情況下以16bits精度同時對8通道的模擬信號進行采集的采集系統(tǒng)。 基于FPGA的數(shù)據(jù)采集系統(tǒng)ADD采集卡是一種高效的數(shù)據(jù)采集設備。采用FPGA與ADC設計的這種設備可以在200 KHz采樣率情況下以16位精度同

    2024年02月03日
    瀏覽(25)
  • 單片機開發(fā)|基于單片機的嬰兒睡眠監(jiān)測系統(tǒng)設計

    單片機開發(fā)|基于單片機的嬰兒睡眠監(jiān)測系統(tǒng)設計

    作者簡介:全棧開發(fā)工程,從事Java、Python、前端、小程序方面的開發(fā)和研究,對大數(shù)據(jù)應用與開發(fā)比較感興趣, 主要內(nèi)容:Java項目、前端項目、Python項目、小程序開發(fā)、大數(shù)據(jù)項目、單片機 收藏點贊不迷路? 關(guān)注作者有好處 文末獲取源碼 ? 感謝您的關(guān)注,請收藏以免忘記

    2024年02月10日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包