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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 一種高性能便攜式PIC單片機濕度檢測儀的研制

          一種高性能便攜式PIC單片機濕度檢測儀的研制

          作者: 時間:2011-03-08 來源:網(wǎng)絡 收藏
          摘要:介紹了一種高性能便攜式PIC濕度檢測儀的研制,詳細闡明了有關的工作原理和關鍵技術。本測試儀充分應用PIC自身的軟硬件資源,具有智能化,小型便攜、可編程等優(yōu)點,在農(nóng)業(yè)、水文系統(tǒng)、環(huán)境監(jiān)測、氣象等許多領域具有廣泛的應用。
          關鍵詞: PIC 濕度測試儀 土壤含水量
          適時準確地測量周圍環(huán)境的濕度和土壤含水量在國民經(jīng)濟發(fā)展的許多領域中具有廣泛的應用,如在農(nóng)業(yè)上為了科學地對土壤進行管理,需要經(jīng)常測試土壤含水量;在水利工程中,如水文站、堤壩上也需經(jīng)常測試土壤含水量,此外,土壤濕度測量在環(huán)保、氣象、國防施工中更是不可缺少的測量項目。如何使這種繁瑣的測量以及相關數(shù)據(jù)處理實現(xiàn)自動化,成為人們急需解決的重要課題。
          本文介紹一種高性能、便攜式、可編程的由PIC16C74單片機為主構成的濕度測試儀,詳細闡明了該儀器的工作原理、基本功能框圖、關鍵技術以及相應的工作軟件流程。
          1儀器基本原理及功能框圖
          本儀器的系統(tǒng)硬件結(jié)構框圖如圖1所示,芯片選用價格低廉,性能優(yōu)良的PIC16C74單片機,充分利用其提供的軟硬件資源,配以相應的外圍電路完成土壤含水量檢測。主要組成部分包括:濕度傳感器,,外存儲器(E2PROM),觸摸式鍵盤,液晶顯示屏(LCD),電池電源通斷控制電路,以及向計算機傳送數(shù)據(jù)的通訊接口電路等部分。傳感器選用的是一種專利產(chǎn)品,其作用是直接將探測頭插入待測土壤中,將土壤濕度轉(zhuǎn)化成相應模擬電壓,電壓范圍在0~1.2V,該模擬電壓經(jīng)運算放大器放大到0~5V范圍內(nèi)的電壓后,送到PIC16C74的I/O口,單片機內(nèi)有8個通道的A/D變換器,選一個口作為模擬電壓輸入通道,然后轉(zhuǎn)換成數(shù)字電壓值,按電壓-含水量公式,經(jīng)過單片機運算,得出實際的土壤含水量值,送入外部擴展存儲器儲存,以備傳輸和處理之用,同時送入液晶顯示屏實時顯示。
          本儀器設定每批數(shù)據(jù)由16字節(jié)組成,外存儲器容量為64K字節(jié),所以外加存儲器最大存儲容量可達512批。為了對測量數(shù)據(jù)進行進一步處理,需要把各測試點的大量數(shù)據(jù)送往計算機,為完成數(shù)據(jù)傳輸,我們選用RS232標準接口方式,器件選用MAX202作為接口器件,數(shù)據(jù)通過I/O接口送入計算機,再由它進行進一步處理,繪出測試曲線、圖表,然后進行分析、打印和存檔。
          由于儀器體積小,按鍵選用觸摸開關,能夠完成電源控制(ON),測量(MEASURE),前翻頁(UP),后翻頁(DN),清除(CLEAR),認可(ACK)等功能,可使用戶靈活操作。電源采用9V標準電池供電,并由專門的電源控制電路控制電源通斷,由PIC64C74單片機監(jiān)測電池供電情況,電壓在正常工作范圍時,液晶屏顯示"H",低于所定標準電壓時,顯示"L",表明需要換電池。
          由于我們研制的測試儀采用了高性能單片機芯片,可利用的軟硬件資源豐富,需要的外圍器件較少,具有很強的功能,并且功耗低,應用領域非常廣泛。
          2關鍵器件和關鍵技術
          2.1 PIC16C74單片機
          本儀器芯片選用美國Microchip公司生產(chǎn)的PIC16C74單片機,這種芯片是一種低功耗、高性能,價格適中的CMOS全靜態(tài)8位E2PROM單片微型處理器,為40DIP,其中I/O口就有33腳,適于加裝較多外圍器件和設備。
          PIC16C74芯片包含192字節(jié)數(shù)據(jù)存儲器(RAM)和4K字節(jié)程序存儲器(ROM)容量,33個輸出/輸入口,三個定時/計數(shù)器,三個捕捉/比較/PWM模數(shù)和兩個串行口,同步串行口可配置成三線SPI或二線I2O工作方式,串行口可設置成同步或異步,以及八通道高速A/D變換器部分。軟件結(jié)構上,采用RISC指令結(jié)構,具有8級堆棧,多個內(nèi)部和外部中斷位,指令35條,易于編程。
          與其它單片機(如8031芯片)相比,PIC16C74具有如下幾個其它芯片無法比擬的特點:
          ·內(nèi)部帶有8個A/D變換通道,僅此一點,在需要進行A/D變換時,就省去了附加的A/D轉(zhuǎn)換外圍芯片;
          ·軟件指令僅35條,利用編程實現(xiàn);
          ·低功耗,高速CMOS EPROM技術,在5V 4MHz時僅耗電2mA,在3V32kHz時,僅耗電15mA;
          ·更為重要的是,該芯片具有休眠功能,即執(zhí)行Sleep工作方式,此方式下,芯片耗電極?。ㄐ∮冢保恚粒?,當需芯片重新工作時,可通過內(nèi)部或外圍中斷方式喚醒芯片轉(zhuǎn)入正常工作方式;
          ·具有保密功能。
          2.2A/D變換
          PIC16C74單片機有8路模擬輸入口,共用一個采樣/保持器,采樣/保持逐次比較,最后把模擬量變成數(shù)字量,對于本測試儀來說,輸入是傳感器送來的模擬電壓,其值在0~1.2V范圍內(nèi)變化,經(jīng)放大后的電壓進入單片機內(nèi)進行A/D變換和運算處理,A/D變換電路如圖2所示。
          此外A/D變換器的模擬參考電壓選用RA3/ref,引腳電壓為+5V,在設計這種電路時,需要進行如下工作:
          ·A/D變換的精度計算及誤差
          把模擬電壓0~1.25V轉(zhuǎn)換成8位二進數(shù)碼,其1LSB=1.25/256=4.9mV≈5mV,在VDD=5V±10%時,且Vref=5V情況下,A/D轉(zhuǎn)換的全范圍精度小于1LSB,其中包括偏置誤差、滿量程誤差和整數(shù)誤差,并且A/D轉(zhuǎn)換是單調(diào)的。
          由于VDD小于5V或Vref小于VDD時,分辨率和精度會降低,所以我們設計時采用如下兩條措施,一是選用VDD=5V,且Vref=5V;二是通過運算放大器放大,使輸入模擬電壓在0~5V范圍內(nèi)變化。
          ·對輸入模擬信號量的要求
          模擬輸入要進行ESD保護,所以在VDD和VCS之間加有反向偏置二極管以保護器件不會被損壞,同時要求接到模擬輸入腳的外部器件應具有極低的漏電流。
          ·A/D采樣要求
          對于要達到特定精度的A/D轉(zhuǎn)換,輸入通道電壓需充滿充電保持電容,其公式為:采樣時間=放大器穩(wěn)定時間+保持電容充電時間+溫度系數(shù),即可得出。
          ·A/D轉(zhuǎn)換時鐘選擇
          時鐘選用4MHz。
          2.3鍵盤控制
          PIC16C74有五個I/O口PORTA~PORTE,其中PORTB是個雙向口,B口的四個引腳RB(4~7),在引腳被設置成輸入方式時,這四個引腳的狀態(tài)變化會引起中斷。利用B口的特性,很容易和外部控制鍵盤接口。本儀器中設計了一個2×4的鍵盤,一共有8個控制鍵,鍵盤控制電路如圖3所示。為了對鍵盤采樣,首先禁止數(shù)字吸入電流,然后用軟件設置口B,使RB4~RB7為輸入端,RB2~RB3為輸出端至高電平。允許RB4~RB7的上拉,依次使RB2~RB3為低電平,同時檢測RB4至RB7,看是否有擊鍵(低電平),每次掃描會發(fā)現(xiàn)有多次擊鍵,一旦檢測到擊鍵,在重新開始鍵盤采樣之前,經(jīng)過40ms的去抖動時間,直至當前鍵被釋放之前,不再檢測別的擊鍵。
          2.4液晶顯示
          測試儀顯示選用液晶顯示片EDM-1601A,它可同時顯示16個ASCII碼字符,每個字符由5×7點陣組成,這種器件內(nèi)部控制電路主要由指令寄存器,數(shù)據(jù)寄存器,地址寄存器,顯示數(shù)據(jù)寄存器,字符發(fā)生和時序發(fā)生器等組成。本儀器顯示畫面顯示如圖4所示。0號位顯示電池電壓狀態(tài),當電池電壓>7.5V時,顯示"H"表示電池電壓正常,當電池電壓<=7.5V時,顯示"L",表示電壓過低,需更換電池。1~3號位數(shù)碼,顯示測試批數(shù),本測試儀最多可測試512批數(shù)據(jù)。4號位為空格。5~10位顯示所測點電壓數(shù)值,以毫伏(mV)為單位。11~15號位數(shù)碼顯示此測試點的含水量百分數(shù)。
          每按一次測量鍵,則顯示出測試點的相關電壓數(shù)值和換算出的含水量值,這些值同時送入外存儲器存儲起來。
          2.5串口通訊
          為了對采集到的數(shù)據(jù)進行深入地分析,需要將數(shù)據(jù)從測試儀的外存儲器傳送至計算機,PIC16C74具有串行通訊接口(SCI),SCI是為能與CRT終端及計算機等外設通訊的全雙工異步系統(tǒng),本儀器采用RS-232-C接口方式,傳送波特率為9600比特。數(shù)據(jù)傳輸格式如圖5所示,在這種方式下,SCI采用標準的不歸零(NRZ)格式,開始是一位起始位,以邏輯"0"表示,接著是8位數(shù)據(jù)位,最后是一位停止位,以邏輯"1"表示,本儀器不設奇偶校驗位,故一次傳送數(shù)據(jù)長度為10比特。接口芯片選用MAX232,接收端(計算機)采用C語言編輯的接收軟件,顯示接收到的數(shù)據(jù),并進行進一步的處理,如匯總成數(shù)據(jù)表格,畫出分析曲線以及打印結(jié)果等等,以供工作人員參考。
          2.6電源控制
          本儀器采用標準9V干電池供電,為了能保證正常供電,需要對電源進行下面三個方面的控制。
          ·電源的通斷控制,按鍵盤ON鍵,則9V電壓通過MAX667(MAX公司)輸出,提供儀器所需的5V電壓;
          ·電池電壓測試電路,假定標準9V干電池在加載情況下低于規(guī)定的某一電壓時,則儀器不能正常工作,需要更換電池,為達到此目的,需要對電池電壓進行連續(xù)監(jiān)測;
          ·自動關機功能:當測試完成后,如果不對儀器操作,一分鐘后電源電路自動斷開,實現(xiàn)自動關機功能。
          上述三種控制都由MAX667器件完成,具體電路如圖6所示。
          3檢測儀的控制軟件設計
          本檢測儀采用PIC16CXX單片機匯編語言編程,控制軟件由主控程序、按鍵功能檢測、測量及含水量計算、顯示、清除、前后翻頁顯示、通訊等子程序組成。圖7為控制軟件框圖。
          4特點及發(fā)展遠景
          本測試儀器的基本特點為:
          ·體積小,150×80×60mm3,可以放在口袋中隨身攜帶到各個測試點進行數(shù)據(jù)采樣;
          ·采集的數(shù)據(jù)量大:由于加了外部E2PROM存儲器,可以采樣512批或1024批數(shù)據(jù),進行計算并存儲起來;
          ·通過通訊接口,可以把采集數(shù)據(jù)送到計算機上,進行進一步的處理,如畫出測試曲線、進行分析、打印結(jié)果并存儲數(shù)據(jù);
          ·由9V干電池供電,為了減小功耗,延長使用時間,該儀器開關機由專門控制電路控制,到一定時間,自動關機。在測量間隙,進入休眠狀態(tài),節(jié)省能量,其他器件盡量采用CMOS的低功耗小電流器件;
          ·儀器智能化,可編程,由于采用先進的單片機,可以在單片機內(nèi)部進行A/D變換以及各種數(shù)學計算,通過軟件編程可以對數(shù)據(jù)查閱(前后翻頁)、清除外存儲器中的數(shù)據(jù)以及向計算機發(fā)送數(shù)據(jù),這些功能都可以通過儀表盤面的相應按鍵選擇。
          綜上所述,本測試儀充分應用PIC16C74單片機自身的軟硬件資源,具有智能化,小型便攜,可編程等優(yōu)點,另外本測試儀只需更換傳感器和修改控制軟件,就可擴展到其他環(huán)境參數(shù)的測試應用中,使得本測試儀在農(nóng)業(yè)、水文系統(tǒng)、環(huán)保、氣象等許多領域具有廣泛的應用。
          參考文獻
          1 PIC16C6X/7X/8X單片機應用手冊.武漢力源電子股 份有限公司1996
          2 "PICC16CXX系列單片機原理".武漢力源電子股份有 限公司1997
          3 王士元,吳芝芳編著.IBM PC/XT(長城0520)接口技術及應用.天津:南開大學出版社,1991


          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();