家庭溫濕度計_第1頁
家庭溫濕度計_第2頁
家庭溫濕度計_第3頁
家庭溫濕度計_第4頁
家庭溫濕度計_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

家用溫濕計一項目設計的目的?用途?功能近代人的生活方式發(fā)生了很大變化,尤其在對自己的生活環(huán)境的要求上更加嚴格。比如溫度、濕度、光線強度等。然而,大部分人所持的態(tài)度是:感覺第一位。實際上,多數人還是希望能夠將這種信息數字化的,以使自己能更準確掌握自己所處環(huán)境的情況??上В鄶等藳]有那種將其付諸實施的想法,正是因為市場上這類產品確實不多,讓人忽略了它。只要有種產品能夠小到不占用空間或僅占小的空間,而又能擺在顯眼的位置上,我想多數人都不會拒絕它的。這個項目應用了少量的電子元件,而且價格低廉,能夠大致測出環(huán)境溫度,顯示濕度范圍,而且可以在其基礎上添加溫控裝置使其達到控溫目的,也可添加測量光強的裝置,非常簡單方便。二硬件設計思想(電原理圖如后)整個作品分為三部分,即溫濕度傳感器部分,顯示部分以及單片機控制部分。溫濕傳感器傳出溫濕度信號到單片機,單片機分析后傳至顯示部分進行控制。電路設計圖如下i'Eo㈣yPB]i71)>PMPB3應11)I'E4阿PBJi^tDS])PEEi^OSD)PS?(SCK)LG5DJJFH氐卷七民教耳曾VDDAREFA&KDAT1CCIA0C1IPAL|AI>C3|PA3|AI>C5|PA5|-OCfipju5|JJ>C7|PA7RESET寸小n■—?硒Ii'Eo㈣yPB]i71)>PMPB3應11)I'E4阿PBJi^tDS])PEEi^OSD)PS?(SCK)LG5DJJFH氐卷七民教耳曾VDDAREFA&KDAT1CCIA0C1IPAL|AI>C3|PA3|AI>C5|PA5|-OCfipju5|JJ>C7|PA7RESET寸小n■—?硒I匚蹄:DHTllVDD22EWD上血電ItO3C1QC3C4邙l=l-|111■||-|Vi―i2——也—3PI>0IHEP|PPL|T3P)p時inmjppsinm)PD+jCllZLP)PPJIOCLAIPP6|1GP)PPfITO3C2)X】區(qū)呻7ATMECfAlflJ>:電路實物圖如下三硬件各單元的使用溫濕度傳感器我們選用的是濟南聯誠創(chuàng)發(fā)科技有限公司的DHT11,DHT11數字溫濕度傳感器是一款含有已校準數字信號輸出的溫濕度復合傳感器。它應用專用的數字模塊采集技術和溫濕度傳感技術,確保產品具有極高的可靠性與卓越的長期穩(wěn)定性。傳感器包括一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連接。因此該產品具有品質卓越、超快響應、抗干擾能力強、性價比極高等優(yōu)點。每個DHT11傳感器都在極為精確的濕度校驗室中進行校準。校準系數以程序的形式儲存在OTP內存中,傳感器內部在檢測信號的處理過程中要調用這些校準系數。單線制串行接口,使系統(tǒng)集成變得簡易快捷。超小的體積、極低的功耗,信號傳輸距離可達20米以上,使其成為各類應用甚至最為苛刻的應用場合的最佳選則。產品為4針單排引腳封裝。連接方便,特殊封裝形式可根據用戶需求而提供

溫度顯示部分我們選用的是一個共陽極二位七段數碼管來顯示溫度,此產品只用來簡易的溫度測量,測量的范圍也不會太大,故兩位七段數碼管足夠使用。濕度顯示部分我們放棄了數字顯示,因為相對濕度并非一個常見的概念,即使用數字顯示大家也不一定了解它的意義,所以我們選用了三種顏色的發(fā)光二極管,單片機判斷濕度范圍后交由二極管顯示,紅燈亮表示相對濕度低于百分之四十,即干燥,黃燈亮表示相對濕度大于百分之四十,小于百分之六十,屬舒適范圍,綠燈亮表示相對濕度大于百分之六十,屬于潮濕范圍

單片機選用M16,DHT11傳出的數字信號經單片機分析處理后交由顯示部分來顯示。至于溫濕度的控制,大家可以根據它所顯示的信息進行升溫,降溫,除濕等操作,我們的操作著重于溫濕度的現實,所以并沒在添加溫濕度控制部分軟件設計思想DHT11的驅動程序驅動溫濕度傳感器的工作,傳感器傳出的數字信號到單片機中,溫度部分,單片機對溫度值進行除10的取商,取余,然后由七段數碼管顯示兩位數溫度。濕度部

分,單片機對相對濕度進行判斷,小于百分之四十為干燥,紅燈亮,大于百分之四十,小于百分之六十位舒適,黃燈亮,大于百分之六十為潮濕,綠燈亮。軟件流程及功能ThisprogramwasproducedbytheCodeWizardAVRV2.03.4StandardAutomaticProgramGenerator?Copyright1998-2008PavelHaiduc,HPInfoTechs.r.l.Project:Version:Date:2009-6-12Author:Company:Comments:Chiptype:ATmega16Programtype:ApplicationClockfrequencyMemorymodelClockfrequencyMemorymodel:1.000000MHz:SmallExternalRAMsize:0DataStacksize:256/#include<mega16.h>#include<delay.h>#defineDHT11_DATAPORTD.3#defineDHT11_DATA_SETDHT11_DATA=1#defineDHT11_DATA_CLIDHT11_DATA=0#defineDHT11_DATA_OUTDDRD.3=1#defineDHT11_DATA_INDDRD.3=0#defineDHT11_DATA_READPIND.3flashunsignedcharled_7[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//定義顯示字碼flashunsignedcharposition[6]={0x01,0x02};unsignedchardis_buff[2];unsignedintdht11_data[2];unsignedintdht11_readdata;bitdht11_flag=0;unsignedcharhumidity;//濕度8位數據值unsignedcharhumidity1;unsignedchartemp;//溫度8位數據值unsignedchardht11_start(void)//dht11開始標志{unsignedcharcount=0;DHT11_DATA_OUT;DHT11_DATA_CLI;/將數據線拉低18ms以上delay_ms(25);〃延遲18ms以上即可DHT11_DATA_IN;DHT11_DATA_SET;/釋放數據線while(DHT11_DATA_READ){delay_us(5);count++;if(count>10)return0;//延遲等待50us,超過則失敗}while(!DHT11_DATA_READ);/等待低電平結束return1;//返回1,表示dht11響應}voiddht11_getdata(void)//讀數據函數{unsignedchari=0,j=0,count=0;while(DHT11_DATA_READ);/等待數據線高電平結束for(j=0;j<2;j++)//舍去校驗位{for(i=0;iv=15;i++)〃讀16位數據{while(!DHT11_DATA_READ);//1bit開始低電平信號結束delay_us(30);if(DHT11_DATA_READ){dht11_readdata<<=1;dht11_readdata|=0x0001;}elsedht11_readdatavv=1;〃判斷位值while(DHT11_DATA_READ);/等待高電平結束}dht11_data[count++]=dht11_readdata;//將讀出的16位數據一位位的放入數組保存dht11_readdata=0;}dht11_flag=1;//40位數完成標識}voiddht11_switchcode(void){humidity1=dht11_data[0]>>8;if((humidity1>0)&&(humidity1<100))//判斷,如果濕度值大于100直接否定不取humidity=humidity1;temp=dht11_data[1]>>8;//shis=humidity/10;//shig=humidity%10;}voiddisplay(void)//掃描顯示函數,執(zhí)行時間12ms{unsignedchari;for(i=0;i<=1;i++){PORTB=led_7[dis_buff[i]];PORTC=position[i];delay_ms(15);//(2)PORTC=0xff;//(3)}}voidmain(void){intn;DDRA=0xff;DDRB=0xff;DDRC=0xff;PORTD=0x00;DDRD=0x08;DHT11_DATA_OUT;DHT11_DATA_SET;while(1){while(!dhtll_start());//等待溫濕度傳感器響應dht11_getdata();//讀數值delay_ms(30);if(dhtll_flag==l)//如果數讀完{dhtll_flag=0;dhtll_switchcode();//轉換值dis_buff[O]=temp%10;〃兩位數溫度值處理dis_buff[l]=temp/l0;}for(n=0;n<300;n++){display();//驅動溫度顯示if(humidityv40)〃濕度分段顯示PORTA=0x01;Elseif(humidity<60)PORTA=0x02;Elseif(humidity>60

溫馨提示

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

評論

0/150

提交評論