基于msp430單片機(jī)和DS18B20使用數(shù)碼管顯示的溫度測(cè)量_第1頁(yè)
基于msp430單片機(jī)和DS18B20使用數(shù)碼管顯示的溫度測(cè)量_第2頁(yè)
基于msp430單片機(jī)和DS18B20使用數(shù)碼管顯示的溫度測(cè)量_第3頁(yè)
基于msp430單片機(jī)和DS18B20使用數(shù)碼管顯示的溫度測(cè)量_第4頁(yè)
基于msp430單片機(jī)和DS18B20使用數(shù)碼管顯示的溫度測(cè)量_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 基于msp430單片機(jī)和DS18B20使數(shù)碼管顯示的溫度測(cè)量 漢口學(xué)院電子信息工程摘要:為了在現(xiàn)實(shí)生活和工業(yè)生產(chǎn)及過(guò)程控制中準(zhǔn)確測(cè)量溫度,設(shè)計(jì)了一種基于低功耗MSP430單片機(jī)的數(shù)字溫度計(jì),整個(gè)系統(tǒng)通過(guò)單片機(jī)MSP430F149控制DS18B20讀取溫度,采用數(shù)碼管顯示,溫度傳感器DS18B20與單片機(jī)之間通過(guò)串口進(jìn)行數(shù)據(jù)傳輸,MSP430系列單片機(jī)具有超低功耗,且外圍的整合性高,DS18B20只需一個(gè)端口即可實(shí)現(xiàn)數(shù)據(jù)通信,連接方便,通過(guò)多次實(shí)驗(yàn)證明,該系統(tǒng)的測(cè)試結(jié)果與實(shí)際環(huán)境溫度一致,除了具有接口電路簡(jiǎn)單,測(cè)量精度高,誤差小,可靠性高等特點(diǎn)外,其成本低,功耗低的特點(diǎn)使其擁有更廣闊的應(yīng)用前景

2、。關(guān)鍵字:溫度測(cè)量 MSP430單片機(jī) 溫度傳感器DS18B20 超低功耗Abstract: in order to accurately measure the temperature in real life and industrial production and process control, a digital thermometer was designed with low power consumption based on MSP430 single chip microcomputer, the control system of DS18B20 read the te

3、mperature through the single-chip MSP430F149, the use of digital tube display, temperature sensor DS18B20 and single chip microcomputer for data transmission through the serial port, MSP430 Series MCU with low power consumption the periphery, and high integration, DS18B20 only needs one port to real

4、ize the data communication, the connection is convenient, through many experiments, the test results of the system and the actual environment temperature is the same, except with the interface circuit is simple, high precision, small error, high reliability, low cost, low power consumption it has a

5、wider application prospect.圖表 1關(guān)鍵字:溫度測(cè)量 MSP430單片機(jī) 溫度傳感器DS18B20 超低功耗Keywords: temperature measurement MSP430 temperature sensor DS18B20 ultra low2 power consumption 目錄一溫度測(cè)量器的總體設(shè)計(jì)2二溫度測(cè)量器的硬件選擇31 主控器件:MSP430F14932 溫度信息采集單元:DS18B2042.1 DS18B2042.2 DS18B20管腳排列43.顯示單元:數(shù)碼管及其驅(qū)動(dòng)53.1 數(shù)碼管53.2 驅(qū)動(dòng)芯片:74HC5736三. 系統(tǒng)

6、軟件程序71、系統(tǒng)的程序流圖72.處理DS18B20的子程序82、1 初始化時(shí)序92、2 寫時(shí)序102、3 讀時(shí)序113、溫度計(jì)算子程序134、處理數(shù)碼管顯示的子程序15四、系統(tǒng)調(diào)試151、硬件檢測(cè)和調(diào)試152、軟件程序調(diào)試173、整體調(diào)試17五、結(jié)論分析17參考文獻(xiàn):17附錄一:18附錄二:18附錄三:18清空內(nèi)容一溫度測(cè)量器的總體設(shè)計(jì) 生活中最常見(jiàn)的應(yīng)該是利用物體的熱脹冷縮測(cè)溫度,比如家里用的溫度計(jì)、體溫計(jì)等等,這種很好做但是精密程度不夠,反正生活中用的也不需要那么精密。這里提出使用電子器件測(cè)溫度,利用溫度傳感器,就是利用某些材料電阻隨溫度的變化,通過(guò)電學(xué)上面測(cè)電阻用公式換算到溫度等于多少

7、度。傳感器用處應(yīng)該很多,不光是測(cè)溫度,側(cè)壓力、光照強(qiáng)度等都可以用類似的方法,就是把想要測(cè)的量全轉(zhuǎn)化成測(cè)電學(xué)量,然后公式換算出溫度。我們提出用單片機(jī)MSP430為溫度測(cè)量的主控制器,溫度傳感器DS18B20通過(guò)單總線與單片機(jī)連接,數(shù)碼管顯示及其驅(qū)動(dòng)原件位顯示單元,系統(tǒng)的基本組成如圖1所示。 溫度信號(hào)溫度傳感器DS18B20數(shù)據(jù)交換單片機(jī)電源數(shù)碼管供電供電數(shù)據(jù)顯示 圖 1 系統(tǒng)的基本組成二溫度測(cè)量器的硬件選擇1 主控器件:MSP430F149 MSP430F149是一種新型的混合信號(hào)處理器,采用了美國(guó)德州儀器(Texas Instruments)公司最新低功耗技術(shù)(工作電流為0.1一400 p A

8、 ),它將大量的外圍模塊整合到片內(nèi),特別適合于開(kāi)發(fā)和設(shè)計(jì)單片系統(tǒng)。MSP430149單片機(jī)主要具有如下特點(diǎn): 低 電 壓、超低功耗。工作電壓3.3V ,等待方式下工作電流為1.3 w A,在RAM保持關(guān)閉工作方式下工作電流僅為0 A 。 具 有 12位的模數(shù)轉(zhuǎn)換器(ADC12) ,可以得到很高的精度,并且省去了使用專門的模數(shù)轉(zhuǎn)換器給設(shè)計(jì)電路板帶來(lái)的麻煩。 擁 有 大容量的存儲(chǔ)空間。存儲(chǔ)器方面包括多達(dá)60 k Flash ROM和2 k RAM,如此數(shù)量的存儲(chǔ)空間完全可以滿足程序及數(shù)據(jù)的需要。 兩 通 道串行通信接口??捎糜谂c計(jì)算機(jī)進(jìn)行異步或同步串行通信。 硬 件 乘法器。該乘法器獨(dú)立于CPU進(jìn)

9、行乘法運(yùn)算的操作,在提高乘法運(yùn)算速度的同時(shí)也提升了CPU的利用效率。 串 行 在系統(tǒng)編程。通過(guò)仿真器對(duì)程序進(jìn)行下載,并通過(guò)專用軟件對(duì)程序及單片機(jī)的工作狀態(tài)進(jìn)行監(jiān)控,極大地方便了程序的調(diào)試。2 溫度信息采集單元:DS18B202.1 DS18B20 單線數(shù)字溫度傳感器,即“一線器件”,其具有獨(dú)特的優(yōu)點(diǎn): 采用單總線的接口方式 與微處理器連接時(shí) 僅需要一條口線即可實(shí)現(xiàn)微處理器與 DS18B20 的雙向通訊。 單總線具有經(jīng)濟(jì)性好,抗干擾能力強(qiáng),適合于惡劣環(huán)境的現(xiàn)場(chǎng)溫度測(cè)量,使用方便等優(yōu)點(diǎn),使用戶可輕松地組建傳感器網(wǎng)絡(luò),為測(cè)量系統(tǒng)的構(gòu)建引入全新概念。 測(cè)量溫度范圍寬,測(cè)量精度高 DS18B20 的測(cè)量

10、范圍為 -55 + 125 ; 在 -10+ 85C 范圍內(nèi),精度為 0.5C 。 在使用中不需要任何外圍元件且有負(fù)壓特性 電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作。持多點(diǎn)組網(wǎng)功能 多個(gè) DS18B20 可以并聯(lián)在惟一的單線上,實(shí)現(xiàn)多點(diǎn)測(cè)溫。供電方式靈活 DS18B20 可以通過(guò)內(nèi)部寄生電路從數(shù)據(jù)線上獲取電源。因此,當(dāng)數(shù)據(jù)線上的時(shí)序滿足一定的要求時(shí),可以不接外部電源,從而 使系統(tǒng)結(jié)構(gòu)更趨簡(jiǎn)單,可靠性更高。 測(cè)量參數(shù)可配置 DS18B20 的測(cè)量分辨率可通過(guò)程序設(shè)定 912 位。 DS18B20 具有體積更小、適用電壓更寬、更經(jīng)濟(jì)、可選更小的封裝方式,更寬的電壓適用范圍,適合于構(gòu)建

11、自己的經(jīng)濟(jì)的測(cè)溫系統(tǒng),因此也就被設(shè)計(jì)者們所青睞。2.2 DS18B20管腳排列1. GND為電源 地;2. DQ為數(shù)字信號(hào)輸入輸出端;3. VDD為外接供電電源輸入端(在寄生電源接線方式時(shí)接地)。 圖 2 芯片BS18B20管腳圖3.顯示單元:數(shù)碼管及其驅(qū)動(dòng) 3.1 數(shù)碼管 本次設(shè)計(jì)因?yàn)槭且@示溫度-55 + 125 ,則選擇了四位十二段共陰極的數(shù)碼管顯示,其引腳圖如下: seg1 a f seg2 seg3 b e d dp c g seg4 圖 3 四位陰極數(shù)碼管引腳圖3.2 驅(qū)動(dòng)芯片:74HC573 74HC573的八個(gè)鎖存器都是透明的D型鎖存器,當(dāng)使能(G)為高時(shí),Q輸出將隨數(shù)據(jù)(D)

12、輸入而變。當(dāng)使能為低時(shí),輸出將鎖存在已建立的數(shù)據(jù)電平上。輸出控制不是影響鎖存器的內(nèi)部工作,即老數(shù)據(jù)可以保持,甚至當(dāng)輸出被關(guān)閉時(shí),新的數(shù)據(jù)也可以置入。這種電路可以驅(qū)動(dòng)大電容或低阻抗負(fù)載,可與直接與系統(tǒng)總線接口并驅(qū)動(dòng)總線,而不需要外接口。VccQ0Q1Q2Q3Q4Q5Q6Q7LPOED0D1D2D3D4D5D6D7GND74HC573 三. 系統(tǒng)軟件程序1、系統(tǒng)的程序流圖系統(tǒng)的程序主要包括主程序、讀出溫度子程序、寫出溫度子程序、溫度轉(zhuǎn)換命令字程序、計(jì)算溫度子程序和數(shù)碼管顯示數(shù)據(jù)子程序。程序的功能是實(shí)時(shí)顯示溫度、讀出并處理DS18B20的測(cè)量溫度值,溫度測(cè)量沒(méi)1s進(jìn)行一次,其程序流程如圖: 初始化到

13、達(dá)1s?調(diào)用顯示子程序初次上電?讀出溫度值,溫度計(jì)算處理顯示數(shù)據(jù)刷新溫度轉(zhuǎn)換開(kāi)始命令是否否是 2.處理DS18B20的子程序 DS18B20的一線工作協(xié)議流程是:初始化ROM操作指令存儲(chǔ)器操作指令數(shù)據(jù)傳輸。其工作時(shí)序包括:l 初始化時(shí)序l 寫時(shí)序l 讀時(shí)序2、1 初始化時(shí)序主機(jī)首先發(fā)出一個(gè)480960微秒的低電平脈沖,然后釋放總線變?yōu)楦唠娖?,并在隨后的480微秒時(shí)間內(nèi)對(duì)總線進(jìn)行檢測(cè),如果有低電平出現(xiàn)說(shuō)明總線上有器件已做出應(yīng)答。若無(wú)低電平出現(xiàn)一直都是高電平說(shuō)明總線上無(wú)器件應(yīng)答。做為從器件的DS18B20在一上電后就一直在檢測(cè)總線上是否有480960微秒的低電平出現(xiàn),如果有,在總線轉(zhuǎn)為高電平后等待

14、1560微秒后將總線電平拉低60240微秒做出響應(yīng)存在脈沖,告訴主機(jī)本器件已做好準(zhǔn)備。若沒(méi)有檢測(cè)到就一直在檢測(cè)等待。 圖4 初始化時(shí)序時(shí)間圖程序C代碼如下:/初始化DS18B20void DS18B20Init(void)DQ_OUT;/設(shè)置為輸出方向DQ_LOW;/拉低總線Delayus(50);DQ_HIGH;/釋放總線Delayus(6);DQ_IN;/設(shè)置為輸入方向while(DQ_DATA);/等待應(yīng)答信號(hào)while(DQ_DATA);/等待釋放總線2、2 寫時(shí)序 接下來(lái)就是主機(jī)發(fā)出各種操作命令,但各種操作命令都是向DS18B20寫0和寫1組成的命令字節(jié),接收數(shù)據(jù)時(shí)也是從DS18B2

15、0讀取0或1的過(guò)程。因此首先要搞清主機(jī)是如何進(jìn)行寫0、寫1、讀0和讀1的。寫周期最少為60微秒,最長(zhǎng)不超過(guò)120微秒。寫周期一開(kāi)始做為主機(jī)先把總線拉低1微秒表示寫周期開(kāi)始。隨后若主機(jī)想寫0,則繼續(xù)拉低電平最少60微秒直至寫周期結(jié)束,然后釋放總線為高電平。若主機(jī)想寫1,在一開(kāi)始拉低總線電平1微秒后就釋放總線為高電平,一直到寫周期結(jié)束。而做為從機(jī)的DS18B20則在檢測(cè)到總線被拉底后等待15微秒然后從15us到45us開(kāi)始對(duì)總線采樣,在采樣期內(nèi)總線為高電平則為1,若采樣期內(nèi)總線為低電平則為0。 圖 5 寫時(shí)序圖程序C代碼如下:/寫一個(gè)字節(jié)void WriteByte(uchar WriteData

16、)uchar i;uchar tmpData;for(i=0;i=1;DQ_OUT;DQ_LOW;if(tmpData)DQ_HIGH;elseDQ_LOW;Delayus(5);DQ_HIGH;2、3 讀時(shí)序 對(duì)于讀數(shù)據(jù)操作時(shí)序也分為讀0時(shí)序和讀1時(shí)序兩個(gè)過(guò)程。讀時(shí)隙是從主機(jī)把單總線拉低之后,在1微秒之后就得釋放單總線為高電平,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20在檢測(cè)到總線被拉低1微秒后,便開(kāi)始送出數(shù)據(jù),若是要送出0就把總線拉為低電平直到讀周期結(jié)束。若要送出1則釋放總線為高電平。主機(jī)在一開(kāi)始拉低總線1微秒后釋放總線,然后在包括前面的拉低總線電平1微秒在內(nèi)的15微秒時(shí)間內(nèi)完

17、成對(duì)總線進(jìn)行采樣檢測(cè),采樣期內(nèi)總線為低電平則確認(rèn)為0。采樣期內(nèi)總線為高電平則確認(rèn)為1。完成一個(gè)讀時(shí)序過(guò)程,至少需要60us才能完成。 圖 6 讀時(shí)序圖 程序C代碼如下: /讀一個(gè)字節(jié)uchar ReadByte(void)uchar i;uchar ReadData=0;for(i=0;i=1;DQ_HIGH;Delayus(1);DQ_IN;if(DQ_DATA) ReadData|=0x80;Delayus(6);return ReadData; 3、溫度計(jì)算子程序 DS18B20中的溫度傳感器完成對(duì)溫度的測(cè)量,用16位二進(jìn)制形式提供,形式表達(dá),其中S為符號(hào)位。 SLS ByteMS By

18、teSSSSbit7 bit6 bit15 bit4 bit3 bit2 bit1 bit0bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 圖7 DS18B20的16位二進(jìn)制形式例 如125的數(shù)字輸出為07D0H (正溫度 直接吧16進(jìn)制數(shù)轉(zhuǎn)成10進(jìn)制即得到溫度值 )-55的數(shù)字輸出為 FC90H。 (負(fù)溫度 把得到的16進(jìn)制數(shù) 取反后 加1 再轉(zhuǎn)成10進(jìn)制數(shù))程序C代碼如下:/溫度計(jì)算程序void GetT()if(MSB&0xF0)0) /判斷是否為負(fù)溫度f(wàn)lag=1;elseflag=0;if(flag) /如果為負(fù)溫度取反加1MSB=MSB;

19、LSB=LSB+1;t1=MSB4);/計(jì)算各位數(shù)碼管要顯示的數(shù)值if(flag)Bit1=16; /如果為負(fù)溫度則顯示-elseBit1=t1/100;Bit2=t1%100/10;Bit3=t1%10; 圖 8 溫度轉(zhuǎn)換的例圖4、處理數(shù)碼管顯示的子程序 本設(shè)計(jì)使用的是四位十二段共陰極數(shù)碼管,其中有四個(gè)位選引腳,控制數(shù)碼管的各個(gè)位,八個(gè)段選引腳,控制每一個(gè)數(shù)碼管的八個(gè)段位a、b、c、d、e、f、g、dp,詳細(xì)如上圖3的引腳圖,共陰極數(shù)碼管各引腳對(duì)高電平有效,實(shí)現(xiàn)其對(duì)溫度的顯示的C程序如下:/數(shù)碼管掃描顯示程序void Display(void)for(uchar i=0;i4;i+)P3OU

20、T=BitCode; /輸出位碼if(i=3) /輸出段碼,如果第三位顯示小數(shù)點(diǎn)P2OUT=CodeBiti&0x7F;elseP2OUT=CodeBiti;BitCode0;i-);while(IFG1&OFIFG);/判斷XT2 是否起振BCSCTL2=SELM1+SELS;/MCLK SMCLK 時(shí)鐘源為TX2CLK 不分頻/端口初始化函數(shù)void InitPort(void)P2SEL=0x00;/P2 口所有引腳設(shè)置為一般的IO 口P3SEL=0x00;/P3 口所有引腳設(shè)置為一般的IO 口P2DIR=0xFF;/P2 口所有引腳設(shè)置為輸出方向P3DIR=0xFF;/P3 口所有引腳

21、設(shè)置為輸出方向P2OUT=0x00;/P2 口先輸出低電平P3OUT=0x80;/P3 口先輸出低電平/P5SEL&=BIT7;/P5. 設(shè)7置為一般的IO 口/P5DIR|=BIT7;/P5.7 設(shè)置為輸出方向/P5OUT&=BIT7;/P5.7 輸出低電平來(lái)使能74HC573 來(lái)驅(qū)動(dòng)數(shù)碼管/ms 級(jí)延時(shí)子程序void DelayMs(uint ms)while(ms-)for(uint i=0;i700;i+);/數(shù)碼管掃描顯示程序void Display(void)for(uchar i=0;i4;i+)P3OUT=BitCode; /輸出位碼if(i=3) /輸出段碼,如果第三位顯示小

22、數(shù)點(diǎn)P2OUT=CodeBiti&0x7F;elseP2OUT=CodeBiti;BitCode=1;/位碼右移一位if(BitCode=0x10) BitCode=0x01;DelayMs(2); /延時(shí)1msP2OUT=0XFF;/10us 級(jí)延時(shí)子程序void Delayus(uint us)while(us-)_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();

23、_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP()

24、;_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();_NOP();/初始化DS18B20void DS18B20Init(void)DQ_OUT;/設(shè)置為輸出方向DQ_LOW;/拉低總線Delayus(50);DQ_HIGH;/釋放總線Delayus(6);DQ_IN;/設(shè)置為輸入方向while(DQ_DATA);/等待應(yīng)答信號(hào)while(DQ_DATA);/等待釋放總線/讀一個(gè)字節(jié)uchar ReadByte(void)uchar i;uchar ReadData=0;for(i=0;i=1;DQ_HIGH;De

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論