基于單片機labview溫度測量系統(tǒng)設計_第1頁
基于單片機labview溫度測量系統(tǒng)設計_第2頁
基于單片機labview溫度測量系統(tǒng)設計_第3頁
基于單片機labview溫度測量系統(tǒng)設計_第4頁
基于單片機labview溫度測量系統(tǒng)設計_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、-. z串口收發(fā)電路的溫度測量單片機系統(tǒng)設計設計目錄第一局部 電路設計3 1.1 溫度采集電路.31.2 串口收發(fā)電路.7 1.3 溫度顯示電路.9第二局部 上位機軟件.102.1 基于Labview的溫度檢測設計第三局部 程序代碼.電路設計溫度采集電路本設計采用熱敏電阻,通過飛利浦公司生產的AD轉換芯片PCF9591采集熱敏電阻的溫度信息,總體電路圖如下PCF8591簡介描述PCF8591是一個單片集成、單獨供電、低功耗、8-bit CMOS數據獲取器件。PCF8591具有4個模擬輸入、1個模擬輸出和1個串行I2C總線接口。PCF8591的3個地址引腳A0, A1和A2可用于硬件地址編程,允

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

3、輸出實現DAC增益引腳信息AIN0AIN3:模擬信號輸入端。 A0A3:引腳地址端。 VDD、VSS:電源端。 2.56V SDA、SCL:I2C 總線的數據線、 時鐘線。 OSC:外部時鐘輸入端,部時鐘 輸出端。 E*T:部、外部時鐘選擇線,使 用部時鐘時 E*T 接地。 AGND:模擬信號地。 AOUT:D/A 轉換輸出端。 VREF:基準電源端。PCF8591操作部地址存放器部控制存放器AD轉換總時序先送入要讀取的器件的地址,即所要讀取的通道,然后等待應答信號,開場讀取下位機芯片送來的AD數據。底層驅動時序如下單字讀寫起始以及停頓信號準備完畢的應答信號,上位機接收本電路通過PCF8591

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

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

6、2IN、9腳R2OUT、10腳T2IN、7腳T2OUT為第二數據通道。 TTL/CMOS數據從T1IN、T2IN輸入轉換成RS-232數據從T1OUT、T2OUT送到電腦DB9插頭;DB9插頭的RS-232數據從R1IN、R2IN輸入轉換成TTL/CMOS數據后從R1OUT、R2OUT輸出。 第三局部是供電。15腳GND、16腳VCC+5v。 主要特點1、符合所有的RS-232C技術標準 2、只需要單一 +5V電源供電 3、片載電荷泵具有升壓、電壓極性反轉能力,能夠產生+10V和-10V電壓V+、V- 4、功耗低,典型供電電流5mA 5、部集成2個RS-232C驅動器 6、部集成兩個RS-23

7、2C接收器 7、高集成度,片外最低只需4個電容即可工作。1.3 溫度顯示電路溫度顯示電路采用1602液晶,與單片機的P0口相連,實現溫度顯示,其電路圖如下液晶電路的讀寫時序以及其部存放器的操作可以在網上查找,此處不作詳述,用液晶屏幕實現靜態(tài)顯示溫度的功能。整體電路如下上位機軟件2.1前面板設計溫度超過限定值或者低于限定值時,指示燈亮起,溫度讀取開關,用于串口的翻開和關閉。后面板程序框圖設計程序代碼溫度采集局部/*此局部為I2C總線驅動程序*/-I2C.c-#include #include #define nop _nop_() sbit SCL=P21;sbit SDA=P20;bit ac

8、k;/*-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=1;/send stop flagnop;nop;nop;nop;/*-send byte-*/void Send_Byte(unsigned char c) uns

9、igned char Bitt; for(Bitt=0;Bitt8;Bitt+) if(cBitt)&0*80) 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 ack=1; SCL=0; nop; nop; /*-rescive byte-*/unsigned char Receive_Byte(void) unsigned char receive; unsigned cha

10、r Bitt; receive=0; SDA=1; for(Bitt=0;Bitt8;Bitt+) 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 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;/*此局

11、部為溫度的讀取局部*/-AD.c-#include#include unsigned char ADValue;unsigned int Temperature;#define PCF8591 0*90 /器件地址bit ADC_Send_Byte(unsigned char sla,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_R

12、eceive_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;Void Get_ADValue(void)ADC_Send_Byte(PCF8591,0*43);ADValue=AD_ Receive_Byte(PCF8591);/以下為溫度換算局部/Void Get_TPValue()Temperature=200/77*(100*255/ADValue-100);/*此局部為

13、LCD液晶顯示模塊*/-LCD.c-#include #include #include AD.hsbit rs= P26;/sbit rw = P25;sbit ep = P27;unsigned char code 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;r

14、s = 0;rw = 1;ep = 1;_nop_();_nop_();_nop_();_nop_();result = (bit)(P0 & 0*80);ep = 0;return 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 po

15、s)Lcd_Write_CMD(pos | 0*80);Lcd_Send_Byte(unsigned char dat)while(Lcd_Busy();rs = 1;rw = 0;ep = 0;P0 = dat;_nop_();_nop_();_nop_();_nop_();ep = 1;_nop_();_nop_();_nop_();_nop_();ep = 0;lcd_init()Lcd_Write_CMD (0*38);delay(1);Lcd_Write_CMD (0*0c);delay(1);Lcd_Write_CMD (0*06);delay(1);Lcd_Write_CMD (

16、0*01);delay(1);Void Lcd_Show()Unsigned char i;Lcd_Place(0);i = 0;while(Titali != 0)Lcd_Send_Byte(Titali);i+;Temperatureshow0=Temperature/100+0;Temperatureshow1=Temperature%100/10+0;Temperatureshow0=Temperature%10+0;Lcd_Place0*45;i = 0;while(Temperaturei != 0)Lcd_Send_Byte(Temperatureshowi);i+;/*此處為串行口的通信局部*/-SCI.c-#include #include AD.hVoid SCI_Init()SCON = 0*50;TMOD|= 0*20;PCON|= 0*80;/波特率倍增TH1 = 0*F3;/串口波特率9600TL1 = 0*F3;TR1 = 1;ES = 0;/制止串口中斷EA = 0;Void Send_Temperatu

溫馨提示

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

評論

0/150

提交評論