基于單片機(jī)labview的溫度測(cè)量系統(tǒng)設(shè)計(jì)_第1頁(yè)
基于單片機(jī)labview的溫度測(cè)量系統(tǒng)設(shè)計(jì)_第2頁(yè)
基于單片機(jī)labview的溫度測(cè)量系統(tǒng)設(shè)計(jì)_第3頁(yè)
基于單片機(jī)labview的溫度測(cè)量系統(tǒng)設(shè)計(jì)_第4頁(yè)
基于單片機(jī)labview的溫度測(cè)量系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩17頁(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、 串口收發(fā)電路的溫度測(cè)量單片機(jī)系統(tǒng)設(shè)計(jì)設(shè)計(jì)目錄第一部分 電路設(shè)計(jì)3 1.1 溫度采集電路.3 1.2 串口收發(fā)電路.7 1.3 溫度顯示電路.9第二部分 上位機(jī)軟件.10 2.1 基于Labview的溫度檢測(cè)設(shè)計(jì)第三部分 程序代碼.電路設(shè)計(jì)1.1 溫度采集電路本設(shè)計(jì)采用熱敏電阻,通過(guò)飛利浦公司生產(chǎn)的AD轉(zhuǎn)換芯片PCF9591采集熱敏電阻的溫度信息,總體電路圖如下PCF8591簡(jiǎn)介描述PCF8591是一個(gè)單片集成、單獨(dú)供電、低功耗、8-bit CMOS數(shù)據(jù)獲取器件。PCF8591具有4個(gè)模擬輸入、1個(gè)模擬輸出和1個(gè)串行I2C總線接口。PCF8591的3個(gè)地址引腳A0, A1和A2可用于硬件地址編

2、程,允許在同個(gè)I2C總線上接入8個(gè)PCF8591器件,而無(wú)需額外的硬件。在PCF8591器件上輸入輸出的地址、控制和數(shù)據(jù)信號(hào)都是通過(guò)雙線雙向I2C總線以串行的方式進(jìn)行傳輸。特性【1】單獨(dú)供電 【2】PCF8591的操作電壓范圍2.5V-6V 【3】低待機(jī)電流 【4】通過(guò)I2C總線串行輸入/輸出 【5】PCF8591通過(guò)3個(gè)硬件地址引腳尋址 【6】PCF8591的采樣率由I2C總線速率決定 【7】4個(gè)模擬輸入可編程為單端型或差分輸入 【8】自動(dòng)增量頻道選擇 【9】PCF8591的模擬電壓范圍從VSS到VDD 【10】PCF8591內(nèi)置跟蹤保持電路 【11】8-bit逐次逼近A/D轉(zhuǎn)換器 【12】

3、通過(guò)1路模擬輸出實(shí)現(xiàn)DAC增益引腳信息AIN0AIN3:模擬信號(hào)輸入端。 A0A3:引腳地址端。 VDD、VSS:電源端。 (2.56V) SDA、SCL:I2C 總線的數(shù)據(jù)線、 時(shí)鐘線。 OSC:外部時(shí)鐘輸入端,內(nèi)部時(shí)鐘 輸出端。 EXT:內(nèi)部、外部時(shí)鐘選擇線,使 用內(nèi)部時(shí)鐘時(shí) EXT 接地。 AGND:模擬信號(hào)地。 AOUT:D/A 轉(zhuǎn)換輸出端。 VREF:基準(zhǔn)電源端。PCF8591操作內(nèi)部地址寄存器內(nèi)部控制寄存器AD轉(zhuǎn)換總時(shí)序先送入要讀取的器件的地址,即所要讀取的通道,然后等待應(yīng)答信號(hào),開(kāi)始讀取下位機(jī)芯片送來(lái)的AD數(shù)據(jù)。底層驅(qū)動(dòng)時(shí)序如下單字讀寫(xiě)起始以及停止信號(hào)準(zhǔn)備完畢的應(yīng)答信號(hào),上位機(jī)接

4、收本電路通過(guò)PCF8591的AIN2通道采集熱敏電阻的溫度信息,通過(guò)I2C總線方式讀取下位機(jī)提取的信息,實(shí)現(xiàn)溫度采集。溫度傳感器 PT100 簡(jiǎn)介設(shè)計(jì)原理pt100是鉑熱電阻,它的阻值會(huì)隨著溫度的變化而改變。PT后的100即表示它在0時(shí)阻值為100歐姆,在100時(shí)它的阻值約為138.5歐姆。它的工業(yè)原理:當(dāng)PT100在0攝氏度的時(shí)候他的阻值為100歐姆,它的阻值會(huì)隨著溫度上升而成勻速增長(zhǎng)的。溫度特性曲線由上圖,可以擬合其溫度與電阻的關(guān)系為R=77/200*Temperature+100;串聯(lián)的限流電阻的值為100歐姆,則AD輸入電壓的計(jì)算公式為ADValue/255*5000=100/(R+1

5、00)*5000;由以上兩公式換算可以得到Temperature=200/77*(100*255/ADValue-100)1.2 串口收發(fā)電路通過(guò)串口收發(fā)電路,將采集到的溫度信息提取后傳送到電腦上,通過(guò)上位機(jī)顯示所采集的溫度信息,實(shí)現(xiàn)人機(jī)交互界面,更加人性化電路如下:串口通信芯片采用美信公司的MAX232    引腳介紹第一部分是電荷泵電路。由1、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生+12v和-12v兩個(gè)電源,提供給RS-232串口電平的需要。 第二部分是數(shù)據(jù)轉(zhuǎn)換通道。由7、8、9、10、11、12、13、14腳構(gòu)成兩個(gè)數(shù)據(jù)通道。 其中13腳(R1IN)、12腳(

6、R1OUT)、11腳(T1IN)、14腳(T1OUT)為第一數(shù)據(jù)通道。 8腳(R2IN)、9腳(R2OUT)、10腳(T2IN)、7腳(T2OUT)為第二數(shù)據(jù)通道。 TTL/CMOS數(shù)據(jù)從T1IN、T2IN輸入轉(zhuǎn)換成RS-232數(shù)據(jù)從T1OUT、T2OUT送到電腦DB9插頭;DB9插頭的RS-232數(shù)據(jù)從R1IN、R2IN輸入轉(zhuǎn)換成TTL/CMOS數(shù)據(jù)后從R1OUT、R2OUT輸出。 第三部分是供電。15腳GND、16腳VCC(+5v)。 主要特點(diǎn)1、符合所有的RS-232C技術(shù)標(biāo)準(zhǔn) 2、只需要單一 +5V電源供電 3、片載電荷泵具有升壓、電壓極性反轉(zhuǎn)能力,能夠產(chǎn)生+10V和-10V電壓V+、

7、V- 4、功耗低,典型供電電流5mA 5、內(nèi)部集成2個(gè)RS-232C驅(qū)動(dòng)器 6、內(nèi)部集成兩個(gè)RS-232C接收器 7、高集成度,片外最低只需4個(gè)電容即可工作。1.3 溫度顯示電路溫度顯示電路采用1602液晶,與單片機(jī)的P0口相連,實(shí)現(xiàn)溫度顯示,其電路圖如下液晶電路的讀寫(xiě)時(shí)序以及其內(nèi)部寄存器的操作可以在網(wǎng)上查找,此處不作詳述,用液晶屏幕實(shí)現(xiàn)靜態(tài)顯示溫度的功能。整體電路如下上位機(jī)軟件2.1前面板設(shè)計(jì)溫度超過(guò)限定值或者低于限定值時(shí),指示燈亮起,溫度讀取開(kāi)關(guān),用于串口的打開(kāi)和關(guān)閉。后面板程序框圖設(shè)計(jì)程序代碼溫度采集部分/*此部分為I2C總線驅(qū)動(dòng)程序*/-I2C.c-#include <reg52

8、.h>#include <intrins.h>#define nop _nop_() sbit SCL=P21;sbit SDA=P20;bit ack;/*-start I2c-*/void Start_I2c(void)SDA=1;nop;SCL=1; nop;nop;nopnop;nop;SDA=0;/SDA to low ,send start flagnop;nop;nopnop;nop;SCL=0;nop;nop; /*-stop I2c-*/ void Stop_I2c(void) SDA=0; nop; SCL=1;nop;nop;nopnop;nop;SDA

9、=1;/send stop flagnop;nop;nop;nop;/*-send byte-*/void Send_Byte(unsigned char c) unsigned char BitCnt; for(BitCnt=0;BitCnt<8;BitCnt+) if(c<<BitCnt)&0x80) SDA=1; else SDA=0; nop; SCL=1; nop; nop; nop nop; nop; SCL=0; nop; nop; SDA=1; nop; nop; SCL=1; nop; nop; nop; if(SDA=1) ack=0; else

10、ack=1; SCL=0; nop; nop; /*-rescive byte-*/unsigned char Receive_Byte(void) unsigned char receive; unsigned char BitCnt; receive=0; SDA=1; for(BitCnt=0;BitCnt<8;BitCnt+) nop; SCL=0; nop; nop; nop nop; nop; SCL=1; nop; nop; receive<<=1; if(SDA=1) receive+=1; nop; nop; SCL=0; nop; nop; return

11、receive; /*-Acknowledgement-*/void Ack_I2c(bit a)if(a=0) SDA=0;else SDA=1;nop;nop;nop;SCL=1;nop;nop;nop;nop;nop;SCL=0;nop;nop;/*此部分為溫度的讀取部分*/-AD.c-#include<reg52.h>#include <I2C.H>unsigned char ADValue;unsigned int Temperature;#define PCF8591 0x90 /器件地址bit ADC_Send_Byte(unsigned char sla

12、,unsigned char c) Start_I2c(); Send_Byte(sla); if(asc=0) return 0; Send_Byte(c); if(asc=0) return 0; Stop_I2c(); return 1; /ADC Receive Byteunsigned char AD_Receive_Byte(unsigned char sla)unsigned char c;Start_I2c();Send_Byte(sla+1);if(ack=0) return 0;c=Receive_Byte;Ack_I2c(1);Stop_I2c();return c;Vo

13、id Get_ADValue(void)ADC_Send_Byte(PCF8591,0x43);ADValue=AD_ Receive_Byte(PCF8591);/以下為溫度換算部分/Void Get_TPValue()Temperature=200/77*(100*255/ADValue-100);/*此部分為L(zhǎng)CD液晶顯示模塊*/-LCD.c-#include <reg51.h>#include <intrins.h>#include “AD.h”sbit rs= P26;/sbit rw = P25;sbit ep = P27;unsigned char cod

14、e Tital = "The temperature is"unsigned char Temperatureshow3;delay(unsigned char ms)/ unsigned char i;while(ms-)for(i = 0; i< 250; i+)_nop_();_nop_();_nop_();_nop_();bit Lcd_Busy()/ bit result;rs = 0;rw = 1;ep = 1;_nop_();_nop_();_nop_();_nop_();result = (bit)(P0 & 0x80);ep = 0;retu

15、rn result;Lcd_Write_CMD(unsigned char cmd)/while(Lcd_Busy();rs = 0;rw = 0;ep = 0;_nop_();_nop_();P0 = cmd;_nop_();_nop_();_nop_();_nop_();ep = 1;_nop_();_nop_();_nop_();_nop_();ep = 0;Lcd_Place (unsigned char pos)Lcd_Write_CMD(pos | 0x80);Lcd_Send_Byte(unsigned char dat)while(Lcd_Busy();rs = 1;rw =

16、0;ep = 0;P0 = dat;_nop_();_nop_();_nop_();_nop_();ep = 1;_nop_();_nop_();_nop_();_nop_();ep = 0;lcd_init()Lcd_Write_CMD (0x38);delay(1);Lcd_Write_CMD (0x0c);delay(1);Lcd_Write_CMD (0x06);delay(1);Lcd_Write_CMD (0x01);delay(1);Void Lcd_Show()Unsigned char i;Lcd_Place(0);i = 0;while(Titali != '0&#

17、39;)Lcd_Send_Byte(Titali);i+;Temperatureshow0=Temperature/100+0;Temperatureshow1=Temperature%100/10+0;Temperatureshow0=Temperature%10+0;Lcd_Place0x45;i = 0;while(Temperaturei != '0')Lcd_Send_Byte(Temperatureshowi);i+;/*此處為串行口的通信部分*/-SCI.c-#include <reg52.h>#include “AD.h”Void SCI_Init()SCON = 0x50;TMOD|= 0x20;PCON|= 0x80; /波特率倍增TH1 = 0xF3; /串口波特率9600TL1 = 0xF3;TR1 = 1;ES = 0; /禁止串口中斷EA = 0;Void Send_Temperature()SBUF=Temper

溫馨提示

  • 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)論