【《單片機(jī)溫濕度測(cè)量系統(tǒng)的硬件和軟件設(shè)計(jì)案例》7800字】_第1頁
【《單片機(jī)溫濕度測(cè)量系統(tǒng)的硬件和軟件設(shè)計(jì)案例》7800字】_第2頁
【《單片機(jī)溫濕度測(cè)量系統(tǒng)的硬件和軟件設(shè)計(jì)案例》7800字】_第3頁
【《單片機(jī)溫濕度測(cè)量系統(tǒng)的硬件和軟件設(shè)計(jì)案例》7800字】_第4頁
【《單片機(jī)溫濕度測(cè)量系統(tǒng)的硬件和軟件設(shè)計(jì)案例》7800字】_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

單片機(jī)溫濕度測(cè)量系統(tǒng)的硬件和軟件設(shè)計(jì)案例目錄TOC\o"1-3"\h\u19975第1章硬件設(shè)計(jì) 2304431.1主控模塊 2326001.1.1STC89C52單片機(jī)的引腳功能 2262911.1.2STC89C52單片機(jī)的控制接口 4207141.1.3單片機(jī)復(fù)位電路 427821.1.4單片機(jī)時(shí)鐘電路 599591.1.5單片機(jī)的上拉電阻 666711.2顯示模塊 7153601.2.11602顯示屏的引腳功能 8123871.2.21602顯示屏與單片機(jī)的接口 880061.2.31602顯示屏指令說明 97787其控制器中一共存在11條指令,詳細(xì)情況可見下表1.3。 9280971.3溫濕度采集模塊 10186541.1.1DHT11電氣特性 1035421.1.2引腳與接口 10263581.1.3DHT11的傳輸時(shí)序 1188831.4鍵盤模塊 1273131.5報(bào)警模塊 13246771.5.1蜂鳴器電路連接 1357791.6繼電器模塊 14279631.6.1繼電器主要作用 14171781.6.2繼電器的基本結(jié)構(gòu)和工作原理 1491251.7存儲(chǔ)器模塊 15195831.7.124C02工作原理 15244991.7.224C02A引腳配置及功能 16300131.7.324C02A電路連接 1776441.8本章小結(jié) 199268第2章軟件設(shè)計(jì) 2073562.1主程序模塊程序設(shè)計(jì) 20112362.21602顯示模塊程序設(shè)計(jì) 224782.3DHT11模塊程序設(shè)計(jì) 24277902.4鍵盤控制模塊程序設(shè)計(jì) 26第1章硬件設(shè)計(jì)本文所設(shè)計(jì)的硬件系統(tǒng)大致包括了主控、顯示、溫濕度采集、鍵盤、報(bào)警以及繼電器模塊與存儲(chǔ)器模塊等。1.1主控模塊以STC89C52單片機(jī)作為主控模塊,利用DHT11將收集獲取的數(shù)字信號(hào)利用單片機(jī)傳遞至顯示器中,從而實(shí)現(xiàn)對(duì)此時(shí)此刻溫濕度具體數(shù)值的顯示。本設(shè)計(jì)方案能夠基于手動(dòng)操控的方式來調(diào)整預(yù)設(shè)溫濕度的最高和最低值,若是當(dāng)溫濕度數(shù)據(jù)超出此預(yù)設(shè)的區(qū)間范圍,那么系統(tǒng)就會(huì)報(bào)警,蜂鳴器發(fā)出聲響,并伴隨著繼電器工作。使所測(cè)環(huán)境的溫濕度處于預(yù)定范圍內(nèi)。1.1.1STC89C52單片機(jī)的引腳功能STC89C52單片機(jī)的引腳圖如圖1.1所示。圖1.1STC89C52單片機(jī)引腳圖⑴主電源引腳Vcc(40腳):接+5V電源Vss(20腳):接地通常情況下,此兩者中間需要連接電容以此進(jìn)行去耦與濾波。⑵外接晶體引腳XTAL1(19腳):連接外部晶振的其中某個(gè)引腳。其在單片機(jī)之中,屬于一個(gè)反向放大器的輸入寬口,組成片內(nèi)振蕩器。在運(yùn)用外部振蕩器的時(shí)候,這一引腳需要做接地處理。XTAL2(18腳):接通外部晶振的另外一處引腳。與片內(nèi)接反向放大器輸出端口以及內(nèi)側(cè)時(shí)鐘電路的輸入端口。在運(yùn)用外部振蕩器之時(shí),該引腳需要與其輸出端口進(jìn)行連接。⑶控制信號(hào)線RST/VPD(9腳):復(fù)位信號(hào)輸入端。在單片機(jī)處于斷連或是復(fù)位階段時(shí),會(huì)接通內(nèi)部隨機(jī)存取存儲(chǔ)器的預(yù)備電源的輸入端口。ALE/PROG(30腳):地址鎖存允許/編程脈沖輸入。使用ALE鎖存自P0口輸出的低8位地址;在實(shí)行片內(nèi)EPROM程序編制的時(shí)候,脈沖從此處通入。PSEN(29腳):外儲(chǔ)存器讀選通信號(hào),當(dāng)處于低電平狀態(tài)下之時(shí)可發(fā)揮作用。EA/VPP(31腳):訪問外儲(chǔ)存器允許/編程電壓輸入。當(dāng)EA處于高電平狀態(tài)下之時(shí),會(huì)向內(nèi)儲(chǔ)存器發(fā)出訪問;當(dāng)處于低電平狀態(tài)下之時(shí),便會(huì)向外儲(chǔ)存器發(fā)出申請(qǐng)。在實(shí)行EPROM程序編制的時(shí)候,這一引腳需要連接21V的電壓。⑷多功能I/O口引腳8052單片機(jī)中有設(shè)置四個(gè)I/O接口(P0~3),且每個(gè)I/O口線均能夠相對(duì)獨(dú)立的作為輸入/出接口來進(jìn)行使用:P0口(32~39腳)——雙向口(三態(tài)),能夠充當(dāng)輸入或者是輸出端口,能夠操控8個(gè)LSTTL。在具體運(yùn)用過程中,一般會(huì)將其用作分時(shí)地址或者是數(shù)據(jù)總線口,在實(shí)行外部程序或者是外儲(chǔ)存器地址檢索的時(shí)候,低8位地址和數(shù)據(jù)總線分時(shí)便會(huì)運(yùn)用此接口,具體流程為:先把低8位地址信息傳遞至P0口,基于地址鎖存信號(hào)的下降側(cè)把目標(biāo)信息鎖定在鎖存器之后,然后再充當(dāng)數(shù)據(jù)總線口線來實(shí)行對(duì)數(shù)據(jù)信息的輸入或者是輸出操作。P1口(1~8腳)——準(zhǔn)雙向口(三態(tài)),其所能夠操控的LSTTL數(shù)量?jī)H為P0的1/2。將其用作輸入線路使用的時(shí)候,口鎖存器一定要讓單片機(jī)最先輸入“1”,每位均能夠編程作為輸入/出線。P2口(21~28)——準(zhǔn)雙向口(三態(tài)),能夠操控的LSTTL數(shù)量與P1一致,能夠充當(dāng)輸入/出口進(jìn)行使用,在具體運(yùn)用過程中,大多是用作地址總線高8為,和P0扣一同構(gòu)成16位地址總線,主要的功能作用是對(duì)外儲(chǔ)存器接口電路實(shí)行尋址操作。P3口(10~17腳)——準(zhǔn)雙向口(三態(tài)),能夠操控的LSTTL數(shù)量與P2一致,具有兩種功能,當(dāng)其運(yùn)用第一功能時(shí),則和P1相同[11];而在運(yùn)用第二功能的時(shí)候,每一位都有特定用處,其特殊用處如表1.1所示:引腳號(hào)復(fù)用功能P1.0RXD(串行輸入口)P1.1TXD(串行輸出口)P1.2(外部中斷0)P1.3(外部中斷1)P1.4T0(定時(shí)器0的外部輸入)P1.5T1(定時(shí)器1的外部輸入)P1.6(外部數(shù)據(jù)存儲(chǔ)器寫選通)P1.7(外部數(shù)據(jù)存儲(chǔ)器讀選通)表1.1P3口引腳復(fù)用功能1.1.2STC89C52單片機(jī)的控制接口其中的P0口與顯示器進(jìn)行連接,P1.2、P1.3依次接通液晶的RS、EN腳,以此實(shí)現(xiàn)對(duì)顯示器的有效操控。鍵盤模塊的操控接口為P2,且P2.2與設(shè)置進(jìn)行連接,對(duì)其按壓一次便表示進(jìn)入到溫濕度警告范圍的設(shè)置功能,此時(shí)可以實(shí)行對(duì)溫度最高值的設(shè)置,再按壓一次,便可預(yù)設(shè)溫度最低值,然后再進(jìn)行一次按壓,可實(shí)行濕度的最高值設(shè)定,再按壓一次,可進(jìn)行最低濕度值的設(shè)定,四個(gè)模式依次往復(fù)。P2.0、P2.1分別是對(duì)溫濕度的閾值進(jìn)行減加控制的。P2.3是設(shè)置好后進(jìn)行確認(rèn)的。P1.7與DHT11的數(shù)據(jù)接口相連。詳細(xì)接線情況可參照?qǐng)D1.19。1.1.3單片機(jī)復(fù)位電路主要包括了上電自動(dòng)、按鍵手動(dòng)以及看門狗強(qiáng)制復(fù)位幾種類型,前兩種比較常見,其各自的電路圖可見下圖1.2。(a)上電復(fù)位(b)按鍵脈沖復(fù)位(c)按鍵電平復(fù)位圖1.2單片機(jī)復(fù)位電路在本設(shè)計(jì)的系統(tǒng)復(fù)位模塊之中,所使用的是上電復(fù)位類型。其中,電容設(shè)于上方連接高電平,電阻設(shè)于下方進(jìn)行接地,中部則是RST。此種類型的復(fù)位電路即為高電平復(fù)位,具體的運(yùn)作原理為:在接通電源之后,電容兩側(cè)便等同于是處于短路狀態(tài),因此RST引腳處屬于高電平,其后電源能夠經(jīng)過電阻來實(shí)現(xiàn)對(duì)電容的電能供應(yīng),這時(shí)RST端的電壓值會(huì)逐漸降低,當(dāng)降低到一定水平之時(shí),就轉(zhuǎn)變成為低電平,此時(shí)單片機(jī)會(huì)啟動(dòng)運(yùn)作。具體的電路圖可見下圖1.3。圖1.3復(fù)位電路RST保持兩個(gè)機(jī)器周期以上的高電平時(shí)自動(dòng)復(fù)位。1.1.4單片機(jī)時(shí)鐘電路時(shí)鐘往往是通過兩類方式形成,一類為內(nèi)部方式,還有一類為外部方式,對(duì)應(yīng)的電路圖可見下圖1.4。(a)內(nèi)部方式(b)外部方式圖1.4單片機(jī)時(shí)鐘電路本文的設(shè)計(jì)中選取的是內(nèi)部時(shí)鐘,主要借助12兆赫晶振與30皮法電容來構(gòu)成相應(yīng)的電路,可見下圖1.5。圖1.5時(shí)鐘電路1.1.5單片機(jī)的上拉電阻從本質(zhì)上來看,排阻便是通過8個(gè)電阻來構(gòu)成的,某一段全都連接成一個(gè)整體,其在電路之中主要發(fā)揮著“上拉”的效果,因此也被稱作上拉電阻。所謂的上拉,即是指把尚且無法確定的信號(hào)利用一個(gè)電阻固定在高電平,此時(shí)電阻還會(huì)發(fā)揮著一定的限流作用,而下拉的原理與之相反。上拉的目的是向設(shè)備中輸入電流,而下拉則是將電流輸出,且電流的強(qiáng)弱程度主要取決于電阻值的高低,并未存在任何嚴(yán)格區(qū)別,在用于漏極開路輸出型電路之中時(shí),在提升電流或者是電壓方面的效果有一定的局限性。通常在剛開始接通電源之時(shí),端口處的電壓尚且處于不穩(wěn)定的狀態(tài),為使其變?yōu)楦唠妷夯蚴堑碗妷旱姆€(wěn)定狀態(tài),那么就需要使用上拉或者是下拉電阻。某些芯片內(nèi)有安裝上拉電阻,因此外部便不需要再設(shè)置此電阻。不過也存在一些開漏的,那么外部就一定要裝設(shè)此電阻。圖1.6單片機(jī)的上拉電阻1.2顯示模塊本設(shè)計(jì)中所使用的為1602液晶屏,各個(gè)參數(shù)細(xì)節(jié)可見上文的2.2.2部分。實(shí)物圖可見下圖1.7。圖1.71602顯示屏1.2.11602顯示屏的引腳功能使用的為14腳(無背光)或16腳(帶背光)接口[12],各個(gè)引腳說明可見下表1.2所示。編號(hào)符號(hào)引腳說明編號(hào)符號(hào)引腳說明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號(hào)14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極表1.21602顯示屏引腳功能表1.2.21602顯示屏與單片機(jī)的接口其第一、二個(gè)腳分別接通電路板的地面與電源。第三腳則設(shè)置為顯示器對(duì)比度調(diào)節(jié)端口,接在兩個(gè)電阻之間,通過兩個(gè)電阻之間的電壓確定顯示屏的對(duì)比度,兩個(gè)電阻一個(gè)接電源,一個(gè)接地。第四腳是寄存器選擇端,接單片機(jī)的I/O口P1.2,當(dāng)處于高電平的時(shí)候便選取數(shù)據(jù)寄存器,在處于低電平狀態(tài)下的時(shí)候則選取指令寄存器。第5個(gè)腳設(shè)置為RW讀寫信號(hào)端,其做接地處理,實(shí)現(xiàn)低電平狀態(tài)下的寫操作。第6個(gè)腳為E/EN端,與P1.3進(jìn)行連接,當(dāng)處于高電平狀態(tài)下則會(huì)實(shí)行信息的讀取,在處于低電平狀態(tài)下時(shí)則會(huì)按照相應(yīng)的指令實(shí)行操作。第7至14腳為D0~D7,是8位雙向數(shù)據(jù)端,接單片機(jī)I/O口P0,進(jìn)行數(shù)據(jù)傳輸最終顯示在顯示器上。第15與16腳為空腳或背燈電源,前者背光正極和電源進(jìn)行連接,后者背光負(fù)極則是和地面接通。如下圖1.8所示,為對(duì)應(yīng)的接口電路。圖1.81602顯示屏與單片機(jī)接口電路原理圖1.2.31602顯示屏指令說明其控制器中一共存在11條指令,詳細(xì)情況可見下表1.3。序號(hào)指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標(biāo)返回000000001*3置輸入模式00000001I/DS4顯示開/關(guān)控制0000001DCB5光標(biāo)或字符移位000001S/CR/L**6置功能00001DLNF**7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址9讀忙標(biāo)志或地址01BF計(jì)數(shù)器地址10寫數(shù)到CGRAM或DDRAM10要寫的數(shù)據(jù)內(nèi)容11從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)內(nèi)容表1.31602顯示屏內(nèi)部控制1.3溫濕度采集模塊本設(shè)計(jì)采用DHT11溫濕度傳感器,產(chǎn)品詳情簡(jiǎn)介在2.2.3章節(jié)。1.1.1DHT11電氣特性可見下表1.4。其中,VDD為5V,T為25攝氏度。采取樣本的時(shí)間間隔不可超過一秒。參數(shù)條件mintypmax單位供電DC355.5V供電電流測(cè)量0.52.5mA平均0.21mA待機(jī)100150uA采樣周期秒1次 表1.4DHT11電氣特性1.1.2引腳與接口(1)引腳介紹:Pin1(VDD):接3~5.5V電壓Pin2(DATA):串行口,單總線Pin3(NC):空腳Pin4(GND):接地(2)接口說明:當(dāng)連接線不超過20m長(zhǎng)的時(shí)候,可使用5K上拉電阻,而若是超過20m之時(shí),則需要按照具體狀況選取適宜的電阻。接口圖可見下圖1.9。單片機(jī)中的P1.7能夠用作收發(fā)串行數(shù)據(jù),也就是充當(dāng)數(shù)據(jù)口,與傳感器中的Pin2加以接通。圖1.9DHT11接口圖1.1.3DHT11的傳輸時(shí)序當(dāng)主機(jī)將開始信號(hào)發(fā)出之后,在延時(shí)等待約為30微秒左右以后,便會(huì)讀取到DH11T發(fā)出的反饋信號(hào),若是讀取總線處于低電平狀態(tài),則表示有作出反饋,而在信號(hào)發(fā)出之后,就會(huì)把總線拉高,做好發(fā)送信息的輸出準(zhǔn)備,每一字節(jié)的數(shù)據(jù)都會(huì)從低電平開始,詳細(xì)流程可見下圖1.10。若是讀取到的信號(hào)屬于高電平,則表明DH11T并未作出反饋,此時(shí)需要對(duì)線路加以檢查,查看其有否存在連接異常的情況[13]。圖1.10DHT11通訊過程主機(jī)復(fù)位信號(hào)和DHT11響應(yīng)信號(hào)如圖1.11所示。圖1.11主機(jī)復(fù)位與DHT11響應(yīng)信號(hào)圖數(shù)字“0”信號(hào)電平信號(hào)如圖1.12所示。圖1.12數(shù)字0信號(hào)電平變化圖數(shù)字“1”信號(hào)電平變化圖如圖1.13所示。圖1.13數(shù)字1信號(hào)電平變化圖1.4鍵盤模塊本設(shè)計(jì)由于按鍵使用數(shù)量不多,所以使用獨(dú)立按鍵,比較方便簡(jiǎn)單。(1)總開關(guān):主要控制硬件系統(tǒng)的開/關(guān)機(jī),此次設(shè)計(jì)選取的為自鎖開關(guān)(詳細(xì)可見下圖1.14),其具有機(jī)械鎖定的功能,在將其按下之后,然后松開手,此時(shí)按鈕并不會(huì)充分彈起,而是進(jìn)入到了鎖定狀態(tài),若是再按壓一次,此時(shí)解鎖方會(huì)完全跳開。經(jīng)常會(huì)斷開的一腳連接DC電源接口,另外的端則與VCC相連。(2)數(shù)字設(shè)置鍵:S1是模式選擇鍵,按1次進(jìn)入溫濕度設(shè)置模式,并設(shè)置溫度最大值,按2次是設(shè)置溫度最小值,按3下是設(shè)置濕度最大值,按4下是設(shè)置濕度最小值。S2和S3只有在溫濕度的設(shè)置模式下即按下S1才有效,分別為閾值增加和閾值減小。S4是OK鍵,即是設(shè)置完所需的閾值后按下S4,系統(tǒng)進(jìn)行工作。鍵盤模塊的電路圖如圖1.15所示。圖1.14自鎖開關(guān)電路圖1.15按模塊電路1.5報(bào)警模塊此次設(shè)計(jì)采取的為壓電式蜂鳴器,利用STC89C52的一根I/O口線來控制驅(qū)動(dòng)器發(fā)出警示聲音。其驅(qū)動(dòng)電流為10mA,且單片機(jī)的I/O口輸出電流相對(duì)較低,因此使用9012三極管來把電流做放大處理,從而確保蜂鳴器可以正常工作。1.5.1蜂鳴器電路連接報(bào)警模塊主要包括了電阻、三極管以及蜂鳴器三大部分,其中三極管的作用是將電流放大,從而操控蜂鳴器發(fā)出聲音。電阻的作用則是將三極管基極電壓加以降低,其中一側(cè)接通單片機(jī)的P1.5,另外一側(cè)和三極管基極相連,在單片機(jī)采集到的溫濕度信息超過了預(yù)先設(shè)定的數(shù)值范圍之時(shí),便會(huì)將P1.5接口設(shè)置成低電平,此時(shí)三極管與之連通,催動(dòng)蜂鳴器運(yùn)作,若是溫濕度信息尚且處于合理范圍以內(nèi),那么就會(huì)將P1.5接口設(shè)置成高電平,三極管斷開,蜂鳴器此時(shí)就不會(huì)運(yùn)作。對(duì)應(yīng)的電路圖可見下圖1.16所示。圖1.16蜂鳴器與單片機(jī)連接圖1.6繼電器模塊繼電器屬于一類電控制元件,在輸入量的變動(dòng)情況符合某一標(biāo)準(zhǔn)時(shí),就會(huì)在電氣輸出電路之中讓被控量發(fā)生預(yù)先設(shè)定好的階躍性變動(dòng)。其存在輸入與輸出回路間的某種聯(lián)系,能夠借助小電流來操控大電流,因此其在電路之中主要發(fā)揮著自動(dòng)調(diào)整、安全防護(hù)、轉(zhuǎn)接電路等功能。1.6.1繼電器主要作用主要作用(1)放大:例如靈敏式和中間繼電器等,能夠利用相對(duì)更小的控制量來實(shí)現(xiàn)對(duì)于更大功率電路的調(diào)控。(2)綜合信號(hào):若是存在數(shù)個(gè)控制信號(hào)依照標(biāo)準(zhǔn)模式傳遞進(jìn)多繞組繼電器之中的時(shí)候,能夠通過比較分析處理,來取得預(yù)先設(shè)定好的控制效果。(3)自動(dòng)調(diào)控與監(jiān)測(cè):譬如,自動(dòng)設(shè)備中安裝的繼電器可以和其它電器元件一同構(gòu)成程序控制線路,以此來做到自動(dòng)化運(yùn)作。(4)擴(kuò)寬控制范圍:例如當(dāng)多觸點(diǎn)繼電器操控信號(hào)到達(dá)某一限度值時(shí),能夠根據(jù)觸點(diǎn)組的各種模式,同時(shí)實(shí)現(xiàn)對(duì)于多條線路的換連、開閉與連接。1.6.2繼電器的基本結(jié)構(gòu)和工作原理其運(yùn)作原理為,基于電磁效應(yīng),于線圈兩端施加電壓,線圈之中存在電流通過,就此發(fā)生了電磁效應(yīng),此時(shí)銜鐵會(huì)受到電磁作用力以此抵消掉彈簧的彈性作用力轉(zhuǎn)而被吸往鐵芯,進(jìn)而構(gòu)成了回路。在斷開電源之后,電磁力就會(huì)消散,銜鐵又會(huì)回到原位,形成另外一個(gè)回路。這樣銜鐵貼到不同的地方,形成不同回路,從而達(dá)到了在電路中的導(dǎo)通、隔斷的目的。繼電器通常設(shè)有兩條電路,分別是低壓控制與高壓工作電路[14]。在繼電器之中,其線圈與接線端子之間是處于彼此獨(dú)立、互補(bǔ)作用的關(guān)心,而其觸點(diǎn)只會(huì)起到等同于開關(guān)的作用。如圖1.17所示。圖1.17繼電器原理圖1.7存儲(chǔ)器模塊本設(shè)計(jì)采用24C02EEPROM存儲(chǔ)器。1.7.124C02工作原理1、24C02的容量為2Kb,即代表其最大能夠容納255個(gè)字節(jié)的數(shù)據(jù)信息;2、ATMEl24C02有32頁,在每一頁之中均能夠存儲(chǔ)8個(gè)字節(jié)的信息;3、24C02存在兩類運(yùn)作形式:(1)字節(jié)寫入:既能夠在隨意的一處地址之中寫入一個(gè)字節(jié)的數(shù)據(jù),也能夠做到在某一處地址之中不間斷的寫入多個(gè)字節(jié),并且不用進(jìn)行翻頁;(2)頁寫入:在這一運(yùn)作形式下,每一頁能夠存入8個(gè)字節(jié)的信息量,而當(dāng)超過8的時(shí)候,就會(huì)將之前存儲(chǔ)的信息覆蓋掉,而這一情況也常被人們稱為“翻轉(zhuǎn)”。若是在將一頁全部寫滿之后,想把剩下的信息存放于下一頁,頁指針需要自己來設(shè)定[15]。1.7.224C02A引腳配置及功能24C02A引腳圖如圖1.18所示。圖1.1824C02引腳圖引腳功能如表1.5所示。引腳名稱功能A0、A1、A2器件地址選擇SDA串行數(shù)據(jù)/地址SCL串行時(shí)鐘WP寫保護(hù)Vcc+1.8V-6.0V工作電壓Vss地表1.524C02A引腳功能表SCL:其主要作用在于把正邊緣時(shí)鐘信息傳遞到每個(gè)端口EEPROM設(shè)備之中。SDA:主要功能作用為,實(shí)現(xiàn)對(duì)串行數(shù)據(jù)傳遞的雙向引腳。此引腳只通過開路漏極操控,能夠和任意數(shù)目的其他開路集電極/漏極進(jìn)行設(shè)備的連通。A2、A1、A0:為AT24C01A硬接線的地址輸入。這三個(gè)輸入引腳在運(yùn)用到多元件級(jí)聯(lián)的時(shí)候進(jìn)行對(duì)應(yīng)地址的設(shè)置,且在其處于懸空狀態(tài)下默認(rèn)設(shè)為0。由于本文設(shè)計(jì)僅僅存在一處24C02A被總線尋址,因此上述三個(gè)引腳均處于懸空或者是接地的狀態(tài)。WP:AT24C02A設(shè)有寫保護(hù)引腳來實(shí)現(xiàn)對(duì)硬件中數(shù)據(jù)信息的保護(hù)。當(dāng)其處于接地狀態(tài)下時(shí),可進(jìn)行正常讀或?qū)懖僮?。在與Vcc接通之后,全部信息數(shù)據(jù)均會(huì)受到寫保護(hù),此時(shí)便只能實(shí)行讀操作。1.7.324C02A電路連接24C02A的SCL和SDA引腳接在單片機(jī)P1.0和P1.1串口上。如圖1.19所示。圖1.1924C02與單片機(jī)連接圖整體電路原理圖、PCB圖與實(shí)物圖可見下方3圖。圖1.20整體電路圖原理圖圖1.21PCB圖圖1.22實(shí)物圖1.8本章小結(jié)本文設(shè)計(jì)中涉及到的硬件系統(tǒng)包括了主控、顯示、溫濕度采集、鍵盤、警報(bào)、繼電器以及存儲(chǔ)器幾個(gè)模塊。此次設(shè)計(jì)的關(guān)鍵目的為,將采集獲取到的溫濕度數(shù)據(jù)信息傳遞到單片機(jī)之中,在通過一系列的分析處理以后,再輸送至顯示器上,并且單片機(jī)還會(huì)把收集到的信息與預(yù)先設(shè)好的標(biāo)準(zhǔn)范圍值加以比對(duì),若是超出了所設(shè)范圍,那么就會(huì)催動(dòng)蜂鳴器產(chǎn)生警報(bào)提示音,并使繼電器開始工作。如果沒有超出閾值,單片機(jī)就會(huì)繼續(xù)采集溫濕度數(shù)據(jù)。第2章軟件設(shè)計(jì)在完成了硬件設(shè)計(jì)后,再設(shè)計(jì)系統(tǒng)軟件,首先要構(gòu)建程序的框架流程,對(duì)整個(gè)的設(shè)計(jì)劃分成各個(gè)小模塊,先讓各個(gè)小模塊實(shí)現(xiàn)其功能,再把各個(gè)小模塊整理結(jié)合形成總程序。本次設(shè)計(jì)中主要使用C語言來實(shí)行程序編輯,其具有下述優(yōu)勢(shì):(1)C語言不僅結(jié)構(gòu)簡(jiǎn)潔、邏輯緊密,而且靈活性強(qiáng)、使用起來十分方便。雖然僅有32個(gè)關(guān)鍵字與9類控制語句,但是能夠?qū)崿F(xiàn)全面化的程序匯編工作,可以把高階與低階語言相互融合起來一同運(yùn)用。(2)具有種類豐富的運(yùn)算符。其運(yùn)算符的種類高達(dá)34中,不論是括號(hào)、賦值,又或是強(qiáng)制類型轉(zhuǎn)換,均能夠?qū)⑵渫ㄟ^運(yùn)算符的處理方式來達(dá)成目的。(3)數(shù)據(jù)種類多樣化。主要涵蓋了整型、實(shí)型、字符型等多種類型的數(shù)據(jù)。(4)在語法方面不存在嚴(yán)格的限制,所以在進(jìn)行程序匯編的時(shí)候自由性更強(qiáng)。(5)屬于一種結(jié)構(gòu)式的語言。其有將代碼和數(shù)據(jù)分割開來,這樣一來就會(huì)讓程度層次變得更加的清楚明了,在進(jìn)行運(yùn)行、調(diào)試以及修改時(shí)都會(huì)更加的方便。(6)能夠直接訪問物理地址,也能夠?qū)崿F(xiàn)對(duì)硬件的調(diào)用。(7)程序代碼質(zhì)量水平較高,而且在實(shí)際運(yùn)行時(shí)具有較高的效率。2.1主程序模塊程序設(shè)計(jì)此次設(shè)計(jì)中程序大致的運(yùn)作順序?yàn)椋合群碗娫催B接好,系統(tǒng)之中的各個(gè)模塊實(shí)行初始化。當(dāng)初始化結(jié)束之后,便會(huì)對(duì)鍵盤加以掃描分析,其后會(huì)稍微延時(shí)一定的時(shí)間,在此時(shí)間段內(nèi)傳感器會(huì)監(jiān)測(cè)收集對(duì)應(yīng)的信息數(shù)據(jù),在獲得數(shù)據(jù)之后便會(huì)將數(shù)據(jù)傳遞到單片機(jī)之中加以處理,其后再傳遞至顯示器中進(jìn)行對(duì)應(yīng)數(shù)值的輸出顯示。同時(shí),還會(huì)分析溫濕度數(shù)值有否超出預(yù)設(shè)的標(biāo)準(zhǔn)值,若是尚未超過,那么就會(huì)持續(xù)重復(fù)數(shù)據(jù)采集工作,若是存在某一數(shù)值超出標(biāo)準(zhǔn)范圍,那么就會(huì)運(yùn)行警報(bào)程序,讓蜂鳴器產(chǎn)生警示聲音,繼電器開始工作,溫濕度檢測(cè)結(jié)束。主程序流程圖如圖2.1所示。溫濕度檢測(cè)并傳送數(shù)據(jù)回單片機(jī)溫濕度檢測(cè)并傳送數(shù)據(jù)回單片機(jī)延時(shí)開始初始化報(bào)警系統(tǒng)啟動(dòng)(即蜂鳴器發(fā)聲)繼電器開始工作1602顯示數(shù)值據(jù)判斷溫度和濕度是否超出閾值結(jié)束鍵盤掃描NONOYESYES2.1主程序流程圖部分核心代碼:while(1) { if(FlagStartRH==1) { TR0=0;testnum=RH(); FlagStartRH=0; TR0=1; humidity=U8RH_data_H; temperature=U8T_data_H; if(Mode==0) { if(temperature>TH) { Led_jiangwen=0; hot=1; Led_shengwen=1; cold=0; // BJ=1; } elseif(temperature<TL) { Led_shengwen=0; cold=1; Led_jiangwen=1; hot=0; buzz=0; // BJ=1; }2.21602顯示模塊程序設(shè)計(jì)LCD1602進(jìn)行數(shù)據(jù)顯示的步驟主要是,現(xiàn)將液晶初始化,然后便是運(yùn)行延時(shí)程序,待到取得相應(yīng)數(shù)據(jù)之后,LCD就會(huì)率先輸入部分指令與顯示目標(biāo)地址,其后選取顯示首地址,接著單片機(jī)會(huì)對(duì)LCD進(jìn)行數(shù)據(jù)寫入操作,當(dāng)數(shù)據(jù)輸送完畢以后,LCD便會(huì)讀出寫入信息的地質(zhì)再將對(duì)應(yīng)內(nèi)容予以顯示,最后返回。運(yùn)作流程可見下圖2.2所示。延時(shí)延時(shí)寫LCD指令開始液晶1602初始化寫顯示行列地址寫數(shù)據(jù)取顯示首地址讀數(shù)據(jù)并顯示返回圖2.21602顯示屏程序流程圖部分核心代碼: if(hot==1&&cold==0&&humid==0&&dry==0) {L1602_string(2,1,"It'sveryhot!");BJ=1;} elseif(hot==1&&cold==0&&humid==1&&dry==0) {L1602_string(2,1,"Hotandhumid!");BJ=1;} elseif(hot==1&&cold==0&&humid==0&&dry==1) {L1602_string(2,1,"Hotanddry!");BJ=1;} elseif(hot==0&&cold==1&&humid==0&&dry==0) {L1602_string(2,1,"It'sverycold!");BJ=1;} elseif(hot==0&&cold==1&&humid==1&&dry==0) {L1602_string(2,1,"Coldandhumid!");BJ=1;} elseif(hot==0&&cold==1&&humid==0&&dry==1) {L1602_string(2,1,"Coldanddry!");BJ=1;} elseif(hot==0&&cold==0&&humid==1&&dry==0) {L1602_string(2,1,"It'sveryhumid!");BJ=1;} elseif(hot==0&&cold==0&&humid==0&&dry==1) {L1602_string(2,1,"It'sverydry!");BJ=1;} elseif(hot==0&&cold==0&&humid==0&&dry==0) {L1602_string(2,1,"Goodenvironment");BJ=0;}2.3DHT11模塊程序設(shè)計(jì)按照傳輸器的通信協(xié)議,先是利用單片機(jī)I/O口自動(dòng)形成對(duì)應(yīng)的激發(fā)信號(hào),其后把數(shù)據(jù)線操控權(quán)移交至傳感器,其后,單片機(jī)利用循環(huán)語句持續(xù)反復(fù)的檢驗(yàn)I/O接口的電平狀況,以此實(shí)現(xiàn)對(duì)時(shí)序的精準(zhǔn)掌握,進(jìn)而準(zhǔn)確分辨出傳輸信息。其運(yùn)行流程可見下圖2.3。結(jié)束并保持高電平結(jié)束并保持高電平開始P1.7輸出低電平延時(shí)18msP1.7輸出高電平讀P1.7引腳判斷是否為低電平從機(jī)80us低電平是否結(jié)束從機(jī)80us高電平是否結(jié)束單片機(jī)進(jìn)行數(shù)據(jù)接收將數(shù)據(jù)按十進(jìn)制數(shù)位存入數(shù)組延時(shí)40msNOYESYESNONOYES圖2.3DHT11程序流程圖部分核心代碼:if(!DATA) {U8FLAG=2;while((!DATA)&&U8FLAG++);U8FLAG=2; while((DATA)&&U8FLAG++);COM();U8RH_data_H_temp=U8comdata;COM();U8RH_data_L_temp=U8comdata;COM();U8T_data_H_temp=U8comdata;COM();U8T_data_L_temp=U8comdata;COM();U8checkdata_temp=U8comdata;DATA=1; U8temp=(U8T_data_H

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論