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

          新聞中心

          EEPW首頁 > 測試測量 > 設計應用 > 基于AVR單片機的溫度測量系統(tǒng)

          基于AVR單片機的溫度測量系統(tǒng)

          作者:李龍飄,王嵐,萬傳松,郭濤 時間:2009-01-20 來源:國外電子元器件 收藏

          1 引言

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

            傳統(tǒng)系統(tǒng)中,一般選用模擬式溫度傳感器。常用的模擬式溫度傳感器,其中一個共同特點是輸出為模擬量,因此在測量電路中必須經(jīng)過A/D轉換才能成為計算機所能處理的數(shù)字量。數(shù)字式溫度傳感器將非電模擬量轉換到數(shù)字信號這一處理過程的多個環(huán)節(jié)集成在單芯片上,實現(xiàn)了在測量點將溫度值數(shù)字化,有效解決了傳統(tǒng)溫度傳感器外圍電路復雜,抗干擾能力差的弊病,降低了對系統(tǒng)的要求。

            該系統(tǒng)以Atmel公司的ATmega8L單片機為控制中心,使用DS18B20單總線數(shù)字溫度傳感器,采用1602字符型液晶顯示器作為溫度值的顯示輸出。編程使用CodeVision C Compiler編譯器,該編譯軟件自帶了使用器件庫函數(shù)文件,省去了編寫器件驅動程序的步驟,為程序的編寫帶來了極大的方便。

          2硬件設計

            圖1給出系統(tǒng)電路圖。ATmega8L單片機的PB0口線連接DS18B20;PD口連接1602 LCD。DS18B20采用源端連接方式,LCD采用4位總線模式。其中,液晶顯示模塊的連接方式取決于編程軟件Code Vision C Compiler的code wizard avr自動程序生成器的設置。采用這種方法,可直接調(diào)用庫函數(shù)實現(xiàn)對液晶顯示器的操作。


           
          2.1 ATmega 8L單片機

            Atmel公司的EEPROM電可擦除技術、閃速存儲器技術是最引人矚目的高質(zhì)量和高可靠性生產(chǎn)技術。在CMOS器件生產(chǎn)領域,Atmel的設計水平、生產(chǎn)工藝及封裝技術一直處于世界領先地位。這些技術使單片機也具有優(yōu)秀的品質(zhì),在結構、性能等方面具有明顯優(yōu)勢。

            ATmega8L單片機的特點是:8 KB的系統(tǒng)內(nèi)可編程Flash,512字節(jié)EEPROM,1 KB SRAM,32個通用I/O口線,32個通用工作寄存器,3個具有比較模式的靈活的定時器/計數(shù)器,片內(nèi)/外中斷,可編程串行USART,面向字節(jié)的兩線串行接口,10位6路A/D轉換器,具有片內(nèi)振蕩器的可編程看門狗定時器,一個SPI串行端口,以及5種可以通過軟件進行選擇的省電模式。

          2.2 DS18B20數(shù)字溫度傳感器

            1-Wire是Dallas公司的一項專有技術,與目前多數(shù)標準串行數(shù)據(jù)通信方式,如SPI/I2C/MICROWIRE不同,它采用單根信號線,既傳輸時鐘,又傳輸數(shù)據(jù),而且數(shù)據(jù)傳輸是雙向的,因此具有節(jié)省I/O口線資源、結構簡單、成本低廉、便于總線擴展和維護等諸多優(yōu)點。

            DS18B20的測量溫度范圍是-55~+125℃。該溫度傳感器的輸出溫度數(shù)據(jù)可與攝氏度校準,使用查找表或轉換規(guī)則就可計算溫度值。在溫度寄存器中溫度數(shù)據(jù)存儲格式為一個16位符號擴展的兩個單元,溫度寄存器格式如圖2所示。符號位S表示溫度的正負。S=0時為正;S=1時為負。當DS18B20的配置為12位分辨率時(測量精度是0.062 5℃),溫度寄存器的所有位數(shù)據(jù)都是有效的;當DS181320的配置為11位分辨率時(測量精度是0.125℃),bit0未定義;當DS181320的配置為10位分辨率時(測量精度是0.25℃),bit0和bit1未定義的;當DS181320的配置為9位分辨率時(測量精度是..5℃),bit0~bit2未定義。

           

           

          2.3 1602液晶顯示器

            1602液晶顯示器采用金鵬電子有限公司生產(chǎn)的OCM2×16A。字符點陣系列模塊是一類專門用于顯示字母、數(shù)字、符號等的點陣型液晶顯示模塊,分4位和8位數(shù)據(jù)傳輸方式,提供5×7點陣+光標的顯示模式,設置有顯示數(shù)據(jù)緩沖區(qū)DDRAM、字符發(fā)生器CGROM和字符發(fā)生器CGRAM。可以使用CGRAM來存儲自定義的最多8個5×8點陣的圖形字符的字模數(shù)據(jù),并提供設置、清顯示、光標回原點、顯示開/關、光標開/關、顯示字符閃爍、光標移位、顯示移位等豐富的指令。此外,還提供了內(nèi)部上電自動復位電路。當外加電源電壓超過+4.5 V時,可自動對模塊初始化操作,將模塊設置為默認的顯示工作狀態(tài)。

          3軟件設計

          3.1 Code Vision C Compiler

            Code Vision AVR是C交叉編譯器,具有為Atmel公司的AVR系列單片機所設計的集成開發(fā)環(huán)境和程序自動生成器。編譯后的coff目標文件可以用于C源代碼級調(diào)試,也可以使用AVR Studio調(diào)試器進行調(diào)試。


            除了標準的C庫函數(shù),Code Vision AVR C Compiler還具有其他器件的庫函數(shù),如字母數(shù)字液晶顯示模塊、飛利浦I2C總線、NS公司的LM75溫度傳感器、飛利浦的PCF8563和PCF8583、Dallas公司的DS1302和DS1307實時時鐘器件、以及DS1820/DS1822溫度傳感器等。CodeVision AVR還包含了code wizard avr程序自動生成器,使用時只要添加相關器件的頭文件就可以在短短幾分鐘內(nèi)生成初始化程序,并可以根據(jù)需要調(diào)用頭文件中包含的功能函數(shù),以實現(xiàn)對外圍設備的操作。

          3.2程序設計

            圖3所示給出程序流程。編寫程序時,先要聲明哪些口線與外圍器件通訊,例如DS18B20單線總線與單片機PB0口線的連接聲明如下:
           

           
            然后,把功能函數(shù)的頭文件包含到程序中才能調(diào)用頭文件中的功能函數(shù),頭文件存放于"..INC"目錄下。該系統(tǒng)用到的功能函數(shù)在"ds18b20.h"、"1WIRE.h"、"LCD.h"這3個頭文件中。

            在調(diào)用功能函數(shù)對DS18B20進行操作時,由于每片DS18B20都有唯一的代碼(64位產(chǎn)品序列號),在多點溫度測控系統(tǒng)中,代碼是識別和操作DS18B20的基礎,無論讀取還是選擇對某一個傳感器進行操作,主機必須發(fā)送64位代碼。如果只有1個DS18B20,就不需要ROM碼,指針addr要設為NULL(0)。如果有多個器件,首先要讀ROM碼對每一個器件進行識別,然后才能在調(diào)用時對需要的器件通過ROM碼進行地址匹配。程序先對I/O口初始化操作,然后利用頭文件ds18b20.h中的函數(shù)floatds18b20_temperature(unsigned char*addr)讀取溫度值。由函數(shù)定義可知,該函數(shù)的返回值是浮點型數(shù)據(jù),提取各個位的值時需要進行整除和取余操作。由于浮點型數(shù)據(jù)無法進行整除和取余操作,需要先轉化為長整型數(shù)據(jù)。浮點型數(shù)據(jù)轉化為長整型數(shù)據(jù)時,小數(shù)點后的值會丟失,為了保持小數(shù)點后的數(shù)值不會因為轉化為長整型后丟失,同時對浮點型數(shù)據(jù)乘以1 000,這樣就可以分離出百位、十位、個位、十分位、百分位、千分位的值。將分離出來的各個位的值分別轉化成LCD的字符碼,即可顯示將LCD的字符碼傳送到LCD,并顯示出來。


           
          4實驗結果

            為了檢測測量系統(tǒng)的準確性,進行了溫度測量實驗。由于鉑電阻溫度傳感器的精度高,穩(wěn)定性好,應用溫度范圍廣,因此,作為一種常用的溫度檢測器,不僅廣泛用于工業(yè)測溫,而且被制成各種標準溫度計。這里,采用PT1000作為標準溫度計。將DS18B20和PT1000捆綁在一起放入高低溫箱中進行測試,通過改變高低溫箱的溫度,待箱中溫度穩(wěn)定后,記錄在液晶顯示器上顯示溫度值;同時用高精度萬用表測PT1000鉑電阻的具體阻值,然后根據(jù)PT1000的分度表算出溫度值,將兩者數(shù)值對比即可算出系統(tǒng)的誤差。表1給出測試結果??梢姡珼S18B20與PT1000鉑電阻所測的溫度吻合得很好。這說明該溫度測量系統(tǒng)的測量準確可靠。

          5結語

            該溫度測量系統(tǒng)硬件設計簡單,充分利用編譯器CodeVisionAVR C Compiler的庫函數(shù),省去編寫驅動程序的麻煩,大大縮短了開發(fā)周期,并且具有抗干擾能力強,擴展方便,廉價和適用的特點,可以擴展進行多點測量,而且同樣只占用一個I/O口,在溫度測量系統(tǒng)中具有廣泛的應用價值。



          關鍵詞: 溫度測量 AVR

          評論


          相關推薦

          技術專區(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); })();