當前位置:編程學習大全網 - 編程語言 - 編程趙靜的個人資料

編程趙靜的個人資料

基於51單片機的溫度測量系統

摘要:單片機廣泛應用於檢測和控制系統中,溫度是系統經常需要測量、控制和維護的量。從硬件和軟件兩方面介紹了AT89C2051單片機溫度控制系統的設計,並給出了硬件原理圖和程序框圖。

關鍵詞:單片機at89c 2051;溫度傳感器ds 18b 20;溫度;措施

介紹

單片機在電子產品中得到了廣泛的應用,在很多電子產品中也用於溫度檢測和溫度控制。因此,本文設計了壹種基於atmel公司的AT89C2051的溫度測量系統。這是壹種利用單片機冗余I/O口實現的低成本溫度檢測電路。該電路非常簡單,易於實現,適用於幾乎所有類型的單片機。

壹、系統硬件設計

系統的硬件結構如圖1所示。

1.1數據采集

數據采集電路如圖2所示。溫度傳感器DS18B20采集被控對象的實時溫度,並作為數據輸入提供給AT89C2051的P3.2端口。在這個設計中,我們控制的對象是室溫。當然,作為壹種改進,我們可以將傳感器與電路板分離,通過數據線與之通信,方便測量各種物體。

DS18B20是DALLAS公司生產的單線數字溫度傳感器,具有3引腳TO-92小體積封裝。測溫範圍為-55℃ ~+125℃,可編程9位~ 12位A/D轉換精度,測溫分辨率可達0.0625℃。測量的溫度以擴展符號的16位數字量串行輸出,支持3v ~ 5.5v的電壓範圍,使系統設計更加靈活方便。其工作電源可在遠端引入或以寄生電源方式產生;多個DS18B20可以並聯成三根或兩根線,CPU只用壹根端口線就可以和多個DS18B20通信,占用微處理器的端口少,節省了大量的引線和邏輯電路。以上特點使得DS18B20非常適合長距離多點溫度檢測系統。分辨率設置和用戶設置的報警溫度存儲在EEPROM中,斷電後仍會保存。DS18B20使電壓和特性有了更多的選擇,因此我們可以構建壹個經濟的溫度測量系統。如圖2所示,DS18B20的DQ引腳是數字信號輸入/輸出端;1引腳GND為電源地;三腳VDD是外部電源的輸入端。

AT89C2051(以下簡稱2051)是壹款8051兼容的微控制器,與Intel的MCS-51完全兼容。它有壹個2K的可編程閃存和128B字節的數據存儲空間,可以直接驅動LED,和805655壹樣。

1.2接口電路

圖2單片機2051與溫度傳感器DS18B20的連接圖。

接口電路由ATMEL的2051單片機、ULN2003達林頓芯片、4511BCD解碼器、串行EEPROM24C16(保存系統參數)、MAX232、數碼管及外圍電路組成。單片機從P1.0 ~並行通信。經4511BCD解碼器解碼,用兩個* * *陰極發光二極管靜態顯示10位和10位的溫度。

串行EEPROM24C16是壹種標準的I2C規格,只需兩個引腳即可讀寫。因為MCU 2051的P1是壹個雙向I/O端口,所以我們在設計中使用P1作為輸出端口。從圖2可以看出,P1.7作為串行時鐘輸出信號連接到24C16的引腳6,P1.6作為串行數據輸出連接到24C16的引腳5。P1。4和P1.5用作兩個數碼管的位選擇信號。當P1.4=1時,選擇第壹個數碼管(單位);當P1.5=1時,選擇第二個數碼管(十位數)。p1.0 ~ p1.3的輸出信號接至解碼器4511作為數碼管的顯示。另外,由於MCU 2051的P3口有特殊功能,P3.0(RXD)串行輸入口,P3.1(TXD)串行輸出口,P3.2(入)外部中斷0,P3.3(INT1)外部中斷1P3.4 .從圖2中可以看出,P3.0和P3.1作為與MAX232串行通信的接口;P3.2和P3.3作為中斷信號接口;P3.4和P3.5用作外部定時/計數輸入點。P3.7作為脈沖輸出,控制發光二極管的開關。

由於電路中使用了* *陰極的LED數碼管,所以增加了壹個達林頓電路ULN2003來放大信號,產生足夠的電流來驅動數碼管顯示。因為4511只能解碼十進制的BCD,而且只能翻譯成0到9,這裏我們用4511解碼輸出我們需要的溫度。

1.3報警電路簡介

圖3七段數碼管溫度顯示接線圖

本文設計的報警電路比較簡單,由壹個自振蕩蜂鳴器(只要在蜂鳴器兩端施加3V以上的電壓,蜂鳴器就會壹直叫)和壹個發光二極管組成(如圖3)。在本設計中,蜂鳴器由ULN2003電流放大器IC控制。當所需溫度達到某壹上限或下限時(本文中上限溫度為45℃,下限溫度為5℃),報警電路開始工作,主要程序設計如下:

Main()//主函數

{無符號字符I = 0;& ltbr/>;無符號int m,n;& ltbr/>;while(1)& lt;br/>;{ I = read temperature();//讀數溫度}

如果(i & gt0 & amp& amp我& lt=10) //如果溫度在0到10度之間,直接給七段數碼管賦值。

{ p 1 = design p 1[I];}

否則//如果溫度大於10度,

{ m = I % 10;//先給第壹個七段數碼管賦值

  • 上一篇:如何在Excel VBA 中讀寫word文檔 步驟
  • 下一篇:觀課議課與課程建設
  • copyright 2024編程學習大全網