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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于PIC16F87X系列單片機(jī)開發(fā)的高精度數(shù)據(jù)采集器

          基于PIC16F87X系列單片機(jī)開發(fā)的高精度數(shù)據(jù)采集器

          作者: 時(shí)間:2011-12-03 來源:網(wǎng)絡(luò) 收藏
            SPI(Serial Peripheral Interface)是一種單片機(jī)外設(shè)芯片同步串行擴(kuò)展接口,由于ADS1210自帶一個(gè)靈活的同步串行接口與SPI通信模式兼容,故本設(shè)計(jì)中PIC單片機(jī)與ADS1210進(jìn)行的所有數(shù)據(jù)交換都采用SPI的通信模式。PIC單片機(jī)的SPI模塊電路包含3個(gè)主要部分:發(fā)送緩沖器、接收緩沖器和移位寄存器。
            USART在異步模式下采用的數(shù)據(jù)格式為1位起始位、8位或9位數(shù)據(jù)位和1位停止位,無奇偶位校驗(yàn)碼,常用的數(shù)據(jù)為8位。片內(nèi)提供的8位波特率發(fā)生器BRG,可以利用系統(tǒng)時(shí)鐘信號(hào)產(chǎn)生標(biāo)準(zhǔn)的波特率頻率為串行傳送所用。USART具有分別獨(dú)立的發(fā)送器和接收器,但它們所采用的數(shù)據(jù)格式和波特率是相同的。本設(shè)計(jì)運(yùn)用單片機(jī)的USART異步發(fā)送功能通過MAX232芯片進(jìn)行必要的電平轉(zhuǎn)換后向上位機(jī)傳送所采集的數(shù)據(jù)。
            ADS1210與外部器件接口形式有雙線制、三線制、四線制和多線制,此處采用的是四線制實(shí)現(xiàn)與單片機(jī)的接口,接口信號(hào)是數(shù)據(jù)準(zhǔn)備就緒信號(hào)(),數(shù)據(jù)輸入/輸出線(SDIO)、數(shù)據(jù)輸出線(SDOUT)、時(shí)鐘信號(hào)線(SCLK)。具體見圖1。

            
            PIC單片機(jī)程序的流程圖如圖2。
            圖3是用來從串口接收數(shù)據(jù)的軟件運(yùn)行界面,作為本設(shè)計(jì)的測(cè)試軟件。接收區(qū)內(nèi)顯示的 數(shù)據(jù)是使用本所采集的幾組數(shù)據(jù),而界面下端的狀態(tài)欄RX顯示的是接收數(shù)據(jù)的組 數(shù),實(shí)驗(yàn)表明,本設(shè)計(jì)完全可以達(dá)到20位以上的精度。

            本設(shè)計(jì)可用于工業(yè)過程控制、儀器儀表、血液分析、智能發(fā)射機(jī)、電位計(jì)、質(zhì)量標(biāo)準(zhǔn)、 壓力轉(zhuǎn)換等高分辨率測(cè)量場(chǎng)合,例如可用于精度要求較高的電容式測(cè)壓微傳感器的性能測(cè)試 ,具有一定的通用性。


          上一頁 1 2 下一頁

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