智能花盆自動(dòng)澆水系統(tǒng)的設(shè)計(jì)_第1頁
智能花盆自動(dòng)澆水系統(tǒng)的設(shè)計(jì)_第2頁
智能花盆自動(dòng)澆水系統(tǒng)的設(shè)計(jì)_第3頁
智能花盆自動(dòng)澆水系統(tǒng)的設(shè)計(jì)_第4頁
智能花盆自動(dòng)澆水系統(tǒng)的設(shè)計(jì)_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

盆花自動(dòng)澆水系統(tǒng)的設(shè)計(jì)測(cè)控07級(jí)2班指導(dǎo)老師:摘要:本次設(shè)計(jì)的盆花自動(dòng)澆水系統(tǒng)包括土壤溫濕度的檢測(cè)與控制和蓄水箱自動(dòng)上水及水位報(bào)警兩大局部。土壤溫濕度的檢測(cè)與控制局部又包括了土壤溫濕度的檢測(cè)和顯示、自動(dòng)澆水系統(tǒng)。土壤溫濕度的檢測(cè)和顯示以溫濕度傳感器SHT-11為感應(yīng)部件,將檢測(cè)到的土壤溫濕度值送入AT89C51單片機(jī),再由其輸出到LCD屏進(jìn)行顯示。自動(dòng)澆水系統(tǒng)設(shè)計(jì)為智能和手動(dòng)兩個(gè)局部:智能澆水局部是通過單片機(jī)程序設(shè)定澆水的上下限值與SHT-11送入單片機(jī)的土壤濕度值相比擬,當(dāng)?shù)陀谙孪拗禃r(shí),單片機(jī)輸出一個(gè)信號(hào)控制電磁閥翻開,開始澆水,高于上限值時(shí)再由單片機(jī)輸出一個(gè)信號(hào)控制電磁閥關(guān)閉,停止?jié)菜?;手?dòng)局部是由單片機(jī)從時(shí)鐘芯片DS1302讀入月份與每天的實(shí)時(shí)時(shí)刻,通過軟件程序設(shè)定定時(shí)澆水的時(shí)間與澆水的量。蓄水箱自動(dòng)上水及水位報(bào)警采用純硬件電路控制,實(shí)現(xiàn)水箱水位實(shí)時(shí)監(jiān)測(cè)、自動(dòng)上水以及水位上下限報(bào)警的功能。關(guān)鍵詞:AT89C51單片機(jī)SHT-11溫濕度傳感器LCDDS1302時(shí)鐘芯片C51程序數(shù)字電路DesignofpottedflowersautomaticwateringsystemAbstract:Thedesignoftheautomaticwateringsystemincludessoilpothumiditydetectionanddisplay,automaticwateringandstorageboxautomaticwaterandwaterlevelalarmthreeparts.S-oiltestinganddisplayoftemperatureandhumiditysystemtakesTemperatureandhumiditysen-sorSHT-11asinductivecomponents,itwilldetectthesoiltemperatureandhumidityvalueandinputthevaluetotheAT89C51microcontroller,thenthetemperatureandhumidityvaluewillbeoutputtoLCDscreendisplayed.Automaticwateringsystemdesignforintelligenceandmanualtwoparts.Intelligentwateringpartthroughthemicrocontrollerprogramsettingtheupperandlo-werwaterattained,thencomparingthisupperandlowerwaterattainedwiththevalethatthroug-hingSHT-11inputtingtothemicrocontroller.WhenbelowthelimitSCMoutputsasignaltoo-peningtheElectromagneticvalve,andStartwatering.ifAbovetheupperlimitvalue,theSCMwilloutputanothersignaltoTurnningofftheElectromagneticvalve,andStopwatering.ManualpartreadthetimefromtheclockchipDS1302bymicrocomputer.Throughsoftwareprogramtosettingtheregularwatering'timeandWateringamount.StorageboxWaterlevelcontrolsystemu-sesPurehardwarecontrol.Realizingreal-timemonitoringwatertank,AutomaticwatersupplyandLevelalarmingfunction.Keywords:AT89C51microcontroller;SHT-11temperatureandhumiditysensor;LCD;clockchipDS1302;C51program;Digitalcircuit目錄TOC\o"1-4"\h\z\u1、緒論11.1選題的目的和意義11.2自動(dòng)澆花器的誕生背景及國內(nèi)外開展現(xiàn)狀11.3畢業(yè)設(shè)計(jì)所采用的研究方法和手段22、AT89C51單片機(jī)42.1AT89C51單片機(jī)的根本組成42.2AT89C51主要特性52.3管腳說明52.4AT89C51單片機(jī)的存儲(chǔ)器72.4.1程序存儲(chǔ)器72.4.2數(shù)據(jù)存儲(chǔ)器82.5振蕩電路和時(shí)鐘92.6AT89C51的中斷系統(tǒng)102.6.1中斷系統(tǒng)結(jié)構(gòu)和中斷控制102.6.2中斷響應(yīng)過程122.7定時(shí)器/計(jì)數(shù)器12定時(shí)器/計(jì)數(shù)器0和1簡介122.7.2與定時(shí)器/計(jì)數(shù)器0和1相關(guān)的特殊功能存放器133、溫濕度傳感器143.1數(shù)字溫濕度傳感器SHT-11 153.2SHT-11的傳感器輸出163.2.1濕度值輸出173.2.2溫度值輸出173.2.3露點(diǎn)計(jì)算183.2.4非線性校正及溫度補(bǔ)償183.3SHT-11的特性193.3.1SHT-11的特點(diǎn)193.3.2SHT的詳細(xì)規(guī)格193.4SHT-11的引腳203.5SHT-11的的內(nèi)部命令與接口時(shí)序213.5.1SHT-11的內(nèi)部命令213.5.2SHT-11的命令順序及命令時(shí)序213.5.3SHT-11的狀態(tài)存放器223.6硬件接口233.7恢復(fù)處理233.8SHT-11的相關(guān)程序244、DS1302時(shí)鐘芯片304.1DS1302時(shí)鐘芯片的簡介304.2引腳304.3命令字節(jié)314.4DS1302的相關(guān)程序345、液晶顯示器LCD 385.1液晶顯示器的分類385.2AMPIRE128×64 385.2.1LCD128×64引腳功能395.2.2KS0108控制器指令功能405.2.3應(yīng)用說明425.2.4LCD相關(guān)程序426、盆花自動(dòng)澆水系統(tǒng)的設(shè)計(jì)496.1土壤溫濕度檢測(cè)與控制496.1.1硬件電路設(shè)計(jì)496.1.2系統(tǒng)軟件設(shè)計(jì)536.2蓄水箱自動(dòng)供水系統(tǒng)65根本的導(dǎo)電理論66系統(tǒng)工作原理676.2.3系統(tǒng)硬件組成666.2.4系統(tǒng)電路連接706.2.5參數(shù)計(jì)算716.2.6水箱水位控制系統(tǒng)檢測(cè)717、總結(jié)738、致謝74參考文獻(xiàn)751、緒論1.1選題的目的和意義隨著社會(huì)生活的進(jìn)步,人們的生活質(zhì)量越來越高。在家里養(yǎng)盆花可以陶冶情操、豐富生活。同時(shí),盆花通過光合作用可吸收二氧化碳,凈化室內(nèi)空氣,在有花木的地方空氣中陰離子聚積較多,所以空氣也特別清新,而且有許多花木還可吸收空氣中的有害氣體,因此,養(yǎng)盆花如今被許多的人所喜愛。盆花澆水量是否能做到適時(shí)適量,是養(yǎng)花成敗的關(guān)鍵。但是,在生活中人們總是會(huì)有無暇顧及的時(shí)候,比方工作太忙或者出差、旅游等。花草生長問題80%以上是由花兒澆灌問題引起;好不容易種植幾個(gè)月的花草,因?yàn)闈菜患皶r(shí),長勢(shì)不好,用來美化家園的花草幾乎成了“雞肋”;不種植了吧,家中沒有綠色襯托感覺沒有生機(jī);保存吧,花草長得不夠旺盛,還影響家庭裝飾效果。雖然目前市面上有賣盆花自動(dòng)澆水器的,但價(jià)格十分的昂貴,并且大多只能設(shè)定一個(gè)定時(shí)澆水的時(shí)間,很難做到給盆花適時(shí)適量澆水。也有較經(jīng)濟(jì)的盆花缺水報(bào)警器,可以提醒人們及時(shí)的給盆花澆水??墒沁@種報(bào)警器只能報(bào)警,澆水還是需要人們親自動(dòng)手。當(dāng)家里無人時(shí),即使報(bào)警也無人澆水,就起不到應(yīng)有的作用了。因此,我想通過設(shè)計(jì)一種集盆花土壤濕度檢測(cè),自動(dòng)澆水以及蓄水箱自動(dòng)供水于一體的盆花自動(dòng)澆水系統(tǒng)。讓盆花在人們無暇照顧時(shí)也能得到及時(shí)的澆灌。1.2自動(dòng)澆花器的誕生背景及國內(nèi)外開展現(xiàn)狀微噴系統(tǒng)是近幾年利用國內(nèi)外先進(jìn)技術(shù)組裝的新型灌溉設(shè)施,主要是利用水流通過低壓管道系統(tǒng)以一定速度從特制的噴頭噴出,在空氣中分散成細(xì)小的水滴,著落在花草植物、作物及周圍的地面上,從而到達(dá)及時(shí)補(bǔ)充水分的目的。該系統(tǒng)具有用水量少、沖擊力小的灌溉特性,適用于栽培密度大、植株柔軟細(xì)嫩的植物。自動(dòng)澆花器的誕生是隨著人們生活水平的提高和生活節(jié)奏的加快而誕生的一種懶人園藝用品。它把微噴的概念應(yīng)用于家庭盆花澆灌中,通過相應(yīng)的改良,到達(dá)合理給盆花自動(dòng)澆水的目的。早在很多年前,國外就已經(jīng)開始普及,國內(nèi)使用的電子類自動(dòng)澆花器多數(shù)從國外進(jìn)口的,價(jià)格昂貴,但質(zhì)量比擬可靠。不過這并不太適用于國內(nèi),目前國內(nèi)外比擬流行的是玻璃制作的自動(dòng)澆花器。這種類型的澆花器多數(shù)在我國山西和浙江一帶加工生產(chǎn)的,價(jià)格比擬低廉,實(shí)用性沒有電子類自動(dòng)澆花器好。隨著國內(nèi)居民消費(fèi)水平和生活質(zhì)量的提高,居家園藝市場(chǎng)異?;鸨怯捎谏罟?jié)奏加快,種花容易養(yǎng)花難的問題暴露出來,而養(yǎng)花最重要的問題就是澆水問題,研究說明花草80%以上的死亡由于澆水不及時(shí)引起,因此國內(nèi)商家已經(jīng)看到了這種需求潛力。目前這類小居家用品的廠家主要集中在廣東,上海,浙江一帶?,F(xiàn)在市面上所出售的自動(dòng)澆花器主要有以下幾類:⑴電子類自動(dòng)澆花器電子類自動(dòng)澆花器又叫時(shí)控噴淋裝置,系統(tǒng)構(gòu)成為:主機(jī)〔或者控制器〕、主管〔可以是花園管也可以是4/7mm的微噴淋管〕、分水接頭(3通、4通、5通、6通、分水器〕、副管(3/5mm)噴淋管〔霧化噴頭、旋轉(zhuǎn)噴頭、折射霧化噴頭等〕。電子類自動(dòng)澆花器根據(jù)電源的不同分為交流電自動(dòng)澆花器和電池自動(dòng)澆花器兩種??刂破鞯囊话阈阅苡校弘姶砰y控制;智能時(shí)控電路?微電腦芯片控制;適用電源為AC220V/50HZ;最適宜水壓0.3-0.6Mpa;待機(jī)功率〔4VA,澆水時(shí)<12VA〕;可控制連續(xù)作業(yè)時(shí)間是1分鐘至168個(gè)小時(shí);可每天自動(dòng)完成十次以上澆水作業(yè),可每天、隔天、隔多天自動(dòng)循環(huán)進(jìn)行澆水,手動(dòng)自動(dòng)兩用;每天計(jì)時(shí)誤差小于正負(fù)3秒;電器適應(yīng)環(huán)境溫度為-10~50℃;相對(duì)濕度<90%RH。⑵玻璃、陶瓷類自動(dòng)澆花器玻璃、陶瓷類自動(dòng)澆花器又叫自動(dòng)滲水裝置,它由本身材質(zhì)的物理結(jié)構(gòu)構(gòu)成,根據(jù)器具的物理滲水原理完成自動(dòng)澆灌,當(dāng)自動(dòng)澆水器內(nèi)部存水,自身形成一定的壓力,當(dāng)遇到枯燥的土壤,水就會(huì)自上而下的流出,當(dāng)土壤濕潤以后,會(huì)形成一個(gè)堵塞壓力,從而導(dǎo)致水流速度變慢或者停止。器具工藝不同,效果也不一樣,當(dāng)然也因土壤的疏松情況決定器具內(nèi)水流的速度。當(dāng)前傳感器技術(shù)與單片機(jī)技術(shù)開展迅速,其應(yīng)用逐步由工業(yè)、軍事等領(lǐng)域向其他領(lǐng)域滲透,已經(jīng)和我們的日常生活息息相關(guān)。而且智能家居概念也越來越受人們的推崇,因此,微電腦控制的電子類自動(dòng)澆花系統(tǒng)有很好的開展前景。1.3畢業(yè)設(shè)計(jì)所采用的研究方法和手段本次畢業(yè)設(shè)計(jì)是設(shè)計(jì)一種單片機(jī)控制的自動(dòng)澆水系統(tǒng),實(shí)現(xiàn)室內(nèi)盆花澆水的自動(dòng)化系統(tǒng)。該系統(tǒng)可對(duì)土壤的溫濕度進(jìn)行監(jiān)控,并對(duì)作物進(jìn)行適時(shí)、適量的澆水。其核心是單片機(jī)和溫濕度傳感器以及澆水驅(qū)動(dòng)電路構(gòu)成的檢測(cè)控制局部。主要研究土壤濕度與澆水量之間的關(guān)系、澆灌控制技術(shù)及設(shè)備系統(tǒng)的硬件、軟件編程各個(gè)局部。檢測(cè)局部,單片機(jī)選用AT89C51單片機(jī),溫濕度傳感器選用SHT11溫濕度傳感器。SHT-11采用COMSens專利傳感器技術(shù)將溫度濕度傳感器、A/D轉(zhuǎn)換器、數(shù)字接口、校準(zhǔn)數(shù)據(jù)存儲(chǔ)器、標(biāo)準(zhǔn)I2C總線等電路全部集成在一個(gè)芯片內(nèi)。軟件選用C51語言編程。土壤溫濕度傳感器可將檢測(cè)到的土壤溫濕度模擬量放大轉(zhuǎn)換成數(shù)字量通過單片機(jī)內(nèi)程序控制精確的將溫度與濕度分別顯示在LCD顯示屏上,同時(shí)通過單片機(jī)內(nèi)的中斷效勞程序判斷是否要給盆花澆水,假設(shè)需澆水,那么單片機(jī)系統(tǒng)發(fā)出澆水信號(hào),并經(jīng)放大驅(qū)動(dòng)設(shè)備,開啟電磁閥進(jìn)行澆水,假設(shè)不需澆水,那么進(jìn)行下一次循環(huán)檢測(cè)。在澆水系統(tǒng)中也同時(shí)設(shè)計(jì)一個(gè)手動(dòng)澆水局部,系統(tǒng)工作時(shí)通過設(shè)置鍵的按下與否來選擇澆水系統(tǒng)的工作方式。土壤澆水驅(qū)動(dòng)電路采用繼電器開關(guān)電路,蓄水箱水位報(bào)警以及自動(dòng)上水局部采用純硬件控制。2、AT89C51單片機(jī)AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器〔FPEROM—FalshProgrammableandErasableReadOnlyMemory〕的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。2.1AT89C51單片機(jī)的根本組成AT89C51由一個(gè)8位的微處理器,128KB片內(nèi)數(shù)據(jù)存儲(chǔ)器RAM,21個(gè)特殊功能存放器SFR,4KB片內(nèi)程序存儲(chǔ)器FlashROM,64KB可尋址片內(nèi)外統(tǒng)一編址的ROM,64KB可尋址片外的RAM,4個(gè)8位并行I/O接口〔P0—P3〕,一個(gè)全雙工通用異步串行接口UART,兩個(gè)16位的定時(shí)器/計(jì)數(shù)器,具有位操作功能的布爾處理機(jī)及位尋址功能的五個(gè)中斷源、兩個(gè)優(yōu)先級(jí)的中斷控制系統(tǒng)以及片內(nèi)振蕩器和時(shí)鐘產(chǎn)生電路。其根本組成框圖如圖2-1所示。圖2-1AT89C51的根本組成2.2AT89C51主要特性AT89C51主要特性有:·與MCS-51兼容·4K字節(jié)可編程閃爍存儲(chǔ)器

·壽命:1000寫/擦循環(huán)

·數(shù)據(jù)保存時(shí)間:10年

·全靜態(tài)工作:0Hz-24Hz

·三級(jí)程序存儲(chǔ)器鎖定

·128*8位內(nèi)部RAM

·32可編程I/O線

·兩個(gè)16位定時(shí)器/計(jì)數(shù)器

·5個(gè)中斷源

·可編程串行通道

·低功耗的閑置和掉電模式

·片內(nèi)振蕩器和時(shí)鐘電路2.3管腳說明AT89C51的引腳圖如圖2-2所示。各引腳的具體說明如下:VCC:供電電壓。

GND:接地。

P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P0口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。

P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能存放器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。圖2-2AT89C51引腳圖P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入口。作為輸入,由于外部下拉為低電平,P3口將輸出電流〔ILL〕這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如表2-1所示。同時(shí),P3口為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。表2-1P3口的特殊功能引腳名稱功能說明引腳名稱功能說明P3.0RXD串行輸入口P3.4T0記時(shí)器0外部輸入P3.1TXD串行輸出口P3.5T1記時(shí)器1外部輸入P3.2外部中斷0P3.6外部數(shù)據(jù)存儲(chǔ)器寫選通P3.3外部中斷1P3.7外部數(shù)據(jù)存儲(chǔ)器讀選通RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí),ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。

/VPP:當(dāng)/EA保持低電平時(shí),那么在此期間外部程序存儲(chǔ)〔0000H-FFFFH〕,不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),將內(nèi)部鎖定為RESET;當(dāng)端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源〔VPP〕。XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。2.4AT89C51單片機(jī)的存儲(chǔ)器在單片機(jī)中,存儲(chǔ)器分為程序存儲(chǔ)器ROM和數(shù)據(jù)存儲(chǔ)器RAM,并且兩個(gè)存儲(chǔ)器是獨(dú)立編址的。AT89C51單片機(jī)芯片內(nèi)配置有8KB〔0000H~1FFFH〕的Flash程序存儲(chǔ)器和256字節(jié)〔00H~FFH〕的數(shù)據(jù)存儲(chǔ)器RAM,根據(jù)需要可外擴(kuò)到最大64KB的程序存儲(chǔ)器和64KB的數(shù)據(jù)存儲(chǔ)器,因此AT89C51的存儲(chǔ)器結(jié)構(gòu)可分為4局部:片內(nèi)程序存儲(chǔ)器、片外程序存儲(chǔ)器、片內(nèi)數(shù)據(jù)存儲(chǔ)器和片外數(shù)據(jù)存儲(chǔ)器。如果以最小系統(tǒng)使用單片機(jī),即不擴(kuò)展,那么AT89C51的存儲(chǔ)器結(jié)構(gòu)就較簡單:只有單片機(jī)自身提供的8KBFlash程序存儲(chǔ)器和256字節(jié)數(shù)據(jù)存儲(chǔ)器RAM。圖2-3給出了AT89C51單片機(jī)的存儲(chǔ)器分布空間。左側(cè)線框中為單片機(jī)自身提供的8KBFlash程序存儲(chǔ)器和256字節(jié)數(shù)據(jù)存儲(chǔ)器RAM。右側(cè)為可擴(kuò)展的64KB的程序存儲(chǔ)器ROM和64KB的數(shù)據(jù)存儲(chǔ)器RAM。2.4.1程序存儲(chǔ)器AT89C51單片機(jī)出廠時(shí)片內(nèi)已帶有8KB的Flash程序存儲(chǔ)器,使用時(shí),引腳要按高電平〔5V〕,這時(shí),復(fù)位后CPU從片內(nèi)ROM區(qū)的0000H單元開始讀取指令代碼,一直運(yùn)行到1FFFH單元,如果外部擴(kuò)展有程序存儲(chǔ)器ROM,那么CPU會(huì)自動(dòng)轉(zhuǎn)移到片外ROM空間2000H~FFFFH讀取指令代碼。圖2-3存儲(chǔ)器空間分布圖2.4.2數(shù)據(jù)存儲(chǔ)器AT89C51單片機(jī)出廠時(shí)片內(nèi)已帶有256字節(jié)的數(shù)據(jù)存儲(chǔ)器RAM,如果不夠用,可以在片外擴(kuò)展,最多可擴(kuò)展64KBRAM。圖2-4片內(nèi)數(shù)據(jù)存儲(chǔ)器的結(jié)構(gòu)單片機(jī)自帶的數(shù)據(jù)存儲(chǔ)器RAM結(jié)構(gòu)如圖2-4所示,此256字節(jié)單元〔00H~FFH〕的低128字節(jié)〔00H~7FH〕單元為用戶使用區(qū),高128字節(jié)〔80H~FFH〕單元為特殊功能存放器SFR區(qū)。片內(nèi)數(shù)據(jù)存儲(chǔ)器的00H~7FH單元又劃分為3塊:00H~1FH塊是工作存放器所用;20H~2FH塊是位尋址功能的單元區(qū);30H~3FH是普通RAM區(qū)。工作存放器又分為4組,在當(dāng)前的運(yùn)行程序中只有一組是被激活的,誰被激活有程序狀態(tài)存放器PSW的RS1,RS0兩位決定。2.5振蕩電路和時(shí)鐘在AT89C51芯片內(nèi)部,有一個(gè)振蕩電路和時(shí)鐘發(fā)生器,引腳XTAL1和XTAL2之間接入晶體振蕩器和電容后構(gòu)成內(nèi)部時(shí)鐘方式。也可以使用外部振蕩器,由外部振蕩器產(chǎn)生的信號(hào)直接加載到振蕩器的輸入端,作為CPU的時(shí)鐘源,稱為外部時(shí)鐘方式。采用外部時(shí)鐘方式時(shí),外部振蕩器的輸出信號(hào)接至XTAL1,XTAL2懸空。兩種方式的電路連接如圖2-5所示。大多數(shù)的單片機(jī)采用內(nèi)部時(shí)鐘方式,本次設(shè)計(jì)亦然?!瞐〕使用片內(nèi)振蕩器接法〔b〕使用片外振蕩器接法圖2-5AT89C51振蕩器的連接方式在AT89C51單片機(jī)內(nèi)部,引腳XTAL2和引腳XTAL1連接著一個(gè)高增益反相放大器,XTAL1引腳是反相放大器的輸入端,XTAL2引腳是反相放大器的輸出端。芯片內(nèi)部的時(shí)鐘發(fā)生器是一個(gè)二分頻觸發(fā)器,振蕩器的輸出為其輸入,輸出為兩相的時(shí)鐘信號(hào)〔狀態(tài)時(shí)鐘信號(hào)〕,頻率為振蕩器輸出信號(hào)頻率的1/2。狀態(tài)時(shí)鐘經(jīng)三分頻后為低字節(jié)地址鎖存信號(hào)ALE,頻率為振蕩器輸出信號(hào)頻率的1/6,經(jīng)六分頻后為機(jī)器周期信號(hào),頻率為/12。、一般取20~30pF的陶瓷電容器。2.6AT89C51的中斷系統(tǒng)為了提高系統(tǒng)的工作效率,AT89C51單片機(jī)設(shè)置了中斷系統(tǒng),采用中斷方式與外設(shè)進(jìn)行數(shù)據(jù)傳送。所謂“中斷”,是指單片機(jī)在執(zhí)行某一段程序的過程中,由于某種原因〔如異常情況或特殊請(qǐng)求〕,單片機(jī)暫時(shí)中止正在執(zhí)行的程序,而去執(zhí)行相應(yīng)的處理程序,待處理結(jié)束后,再返回到被打斷的程序處,繼續(xù)執(zhí)行原程序的過程。2.6.1中斷系統(tǒng)結(jié)構(gòu)和中斷控制AT89C51有六個(gè)固定的可屏蔽中斷源,分別是三個(gè)片內(nèi)定時(shí)器/計(jì)數(shù)器溢出中斷TF0、TF1和TF2,兩個(gè)外部中斷(P3.2)和(P3.3),一個(gè)片內(nèi)串行口中斷TI或RI。6個(gè)中斷源有兩級(jí)中斷優(yōu)先級(jí),可形成中斷嵌套。它們?cè)诔绦虼鎯?chǔ)器中各有固定的中斷入口地址,由此進(jìn)入相應(yīng)的中斷效勞程序。引起6個(gè)中斷源的符號(hào)、名稱及產(chǎn)生的條件如下::外部中斷0,由P3.2端口線引入,低電平或下降沿引起;:外部中斷1,由P3.3端口線引入,低電平或下降沿引起;T0:定時(shí)器/計(jì)數(shù)器0中斷,由T0記滿回零引起;T1:定時(shí)器/計(jì)數(shù)器1中斷,由T1記滿回零引起;TI/RI:串行口I/O中斷,串行端口完成一幀字符發(fā)送/接收后引起中斷;T2:定時(shí)器/計(jì)數(shù)器2中斷,由T2記滿回零引起。在本次設(shè)計(jì)中采用了定時(shí)器/計(jì)數(shù)器0中斷,它的中斷控制存放器包括定時(shí)器/計(jì)數(shù)器0、1控制存放器TCON和中斷允許控制存放器IE。①定時(shí)器控制存放器TCONTCON是定時(shí)器/計(jì)數(shù)器和外部中斷兩者合用的一個(gè)可位尋址的特殊功能存放器,它的格式如下:D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0各控制位定義如下:TF1:定時(shí)器/計(jì)數(shù)器1溢出中斷請(qǐng)求標(biāo)志位。當(dāng)定時(shí)器/計(jì)數(shù)器1計(jì)數(shù)產(chǎn)生溢出時(shí),由內(nèi)部硬件置位TF1,向CPU響應(yīng)中斷并轉(zhuǎn)向該中斷效勞程序執(zhí)行時(shí),由硬件內(nèi)部自動(dòng)TF1清0。TR1:定時(shí)器/計(jì)數(shù)器1啟動(dòng)/停止位。由軟件置位/復(fù)位控制定時(shí)器/計(jì)數(shù)器1的啟動(dòng)或停止計(jì)數(shù)。TF0:定時(shí)器/計(jì)數(shù)器0溢出中斷請(qǐng)求標(biāo)志位。當(dāng)定時(shí)器/計(jì)數(shù)器0計(jì)數(shù)產(chǎn)生溢出時(shí),由內(nèi)部硬件置位TF0,向CPU響應(yīng)中斷并轉(zhuǎn)向該中斷效勞程序執(zhí)行時(shí),由硬件內(nèi)部自動(dòng)TF1清0。TR0:定時(shí)器/計(jì)數(shù)器0啟動(dòng)/停止位。由軟件置位/復(fù)位控制定時(shí)器/計(jì)數(shù)器0的啟動(dòng)或停止計(jì)數(shù)。IE1:外部中斷請(qǐng)求標(biāo)志位。當(dāng)CPU檢測(cè)到INT0低電平或下降沿且IT1=1時(shí),由內(nèi)部硬件置位IE1標(biāo)志位〔IE1=1〕向CPU請(qǐng)求中斷,當(dāng)CPU響應(yīng)中斷并轉(zhuǎn)向該中斷效勞程序執(zhí)行時(shí),由硬件內(nèi)部將IE1清0。IE0:外部中斷請(qǐng)求標(biāo)志位。當(dāng)CPU檢測(cè)到INT0低電平或下降沿且IT0=1時(shí),由內(nèi)部硬件置位IE0標(biāo)志位〔IE0=1〕向CPU請(qǐng)求中斷,當(dāng)CPU響應(yīng)中斷并轉(zhuǎn)向該中斷效勞程序執(zhí)行時(shí),由硬件內(nèi)部將IE0清0。IT1:用軟件置位/復(fù)位IT1來選擇外部中斷INT1是下降沿觸發(fā)還是電平觸發(fā)中斷請(qǐng)求。當(dāng)IT1置1時(shí),那么外部中斷INT1為下降沿觸發(fā)中斷請(qǐng)求,即INT1端口由前一個(gè)機(jī)器周期的高電平跳變?yōu)橄乱粋€(gè)機(jī)器周期的低電平,那么觸發(fā)中斷請(qǐng)求;當(dāng)IT1復(fù)位清0,那么INT1的低電平觸發(fā)中斷請(qǐng)求。IT0:由軟件置位/復(fù)位IT0來選擇外部中斷INT0是下降沿觸發(fā)還是低電平觸發(fā)中斷請(qǐng)求,其控制原理同IT1。②中斷允許控制存放器中斷允許控制存放器IE的格式如下:D7D6D5D4D3D2D1D0EAET2ESET1EX1ET0EX0各控制位定義如下:EA:中斷總控制為。EA=1,CPU開中斷,它是CPU是否響應(yīng)中斷的前提,在此前提下,如果某中斷源的中斷允許位置1,才能響應(yīng)該中斷源的中斷請(qǐng)求。如果EA=0,無論哪個(gè)中斷源有請(qǐng)求,CPU都不予回應(yīng)。ET2:定時(shí)器/計(jì)數(shù)器T2中斷控制位,ET2=1,允許T2計(jì)數(shù)溢出中斷;ET2=0,禁止T2中斷。ES:串行口中斷控制位,ES=1,允許串行口發(fā)送/接收中斷;ES=0禁止串行口中斷。ET1:定時(shí)器/計(jì)數(shù)器T1中斷控制位,ET1=1,允許T1計(jì)數(shù)溢出中斷;ET1=0,禁止T1中斷。EX1:外部中斷1控制位,EX1=1,允許中斷;EX1=0,禁止外部中斷1中斷。ET0:定時(shí)器/計(jì)數(shù)器T0中斷控制位,ET0=1,允許T0計(jì)數(shù)溢出中斷;ET0=0,禁止T0中斷。EX0:外部中斷0控制位,EX0=1,允許中斷;EX0=0,禁止外部中斷0中斷[1]。2.6.2中斷響應(yīng)過程CPU中斷處理從響應(yīng)中斷、控制程序轉(zhuǎn)向?qū)?yīng)的中斷矢量地址入口處執(zhí)行中斷效勞程序,到執(zhí)行返回〔RETI〕指令為止。中斷響應(yīng)可分為以下幾個(gè)步驟:①保護(hù)斷點(diǎn),即保存下一個(gè)將要執(zhí)行的指令的地址,把這個(gè)地址送入堆棧。②尋找中斷入口,根據(jù)6個(gè)不同的中斷源所產(chǎn)生的中斷,中斷系統(tǒng)必須能夠正確地識(shí)別中斷源,查找6個(gè)不同的入口地址。以上工作是由單片機(jī)自動(dòng)完成的,與編程者無關(guān)。在6個(gè)入口地址處存放有中斷處理程序。③執(zhí)行中斷處理程序。④中斷返回:執(zhí)行完中斷指令后,從中斷處返回到主程序,繼續(xù)執(zhí)行[2]。2.7定時(shí)器/計(jì)數(shù)器AT89C51單片機(jī)內(nèi)部設(shè)有兩個(gè)16位可編程定時(shí)器/計(jì)數(shù)器,即定時(shí)器/計(jì)數(shù)器0和定時(shí)器/計(jì)數(shù)器1。除此之外還有一個(gè)可編程定時(shí)器/計(jì)數(shù)器2。2.7.1定時(shí)器/計(jì)數(shù)器0和1簡介定時(shí)器/計(jì)數(shù)器0和1內(nèi)部有一個(gè)計(jì)數(shù)存放器〔和〕,它實(shí)際上是一個(gè)累加存放器進(jìn)行加1計(jì)數(shù)。定時(shí)器和計(jì)數(shù)器共用這個(gè)存放器,但定時(shí)器/計(jì)數(shù)器同一時(shí)刻只能工作在其中一種方式下,不可能既工作在定時(shí)器方式,同時(shí)又工作在計(jì)數(shù)器方式。這兩個(gè)工作方式的根本區(qū)別是在于計(jì)數(shù)脈沖的來源不同。工作在定時(shí)器方式時(shí),對(duì)振蕩源12分頻的脈沖計(jì)數(shù),即每過一個(gè)機(jī)器周期〔1個(gè)機(jī)器周期在時(shí)間上和12個(gè)振蕩周期的時(shí)間相等〕,計(jì)數(shù)存放器中的值就加1。工作在計(jì)數(shù)器方式時(shí),計(jì)數(shù)脈沖不是來自內(nèi)部的機(jī)器周期,而是來自外部輸入。對(duì)定時(shí)器/計(jì)數(shù)器0、定時(shí)器/計(jì)數(shù)器1,計(jì)數(shù)脈沖分別來自T0、T1引腳。當(dāng)這些引腳上輸入的信號(hào)產(chǎn)生高電平至低電平的負(fù)跳變時(shí),計(jì)數(shù)存放器的值就加1。單片機(jī)每個(gè)機(jī)器周期都要對(duì)對(duì)外部輸入進(jìn)行采樣,如果在第一個(gè)周期采得的外部信號(hào)為高電平,在下一個(gè)周期采得的信號(hào)為低電平,那么在再下一個(gè)機(jī)器周期,即第三個(gè)機(jī)器周期計(jì)數(shù)存放器的值才增加1[1]。2.7.2與定時(shí)器/計(jì)數(shù)器0和1相關(guān)的特殊功能存放器①計(jì)數(shù)存放器TH0、TL0和TH1、TL1計(jì)數(shù)存放器是16位的,再啟動(dòng)定時(shí)器時(shí)需要對(duì)它設(shè)定初始值。是計(jì)數(shù)存放器的高8位,是計(jì)數(shù)存放器的低8位。TH0、TL0對(duì)應(yīng)T/C0,TH1、TL1對(duì)應(yīng)T/C1。②定時(shí)器/計(jì)數(shù)器控制存放器TCON定時(shí)器/計(jì)數(shù)器控制存放器TCON的格式如下:TF1TR1TF0TR1IE1IT1IE0IT0TF1為T/C1的溢出標(biāo)志,溢出時(shí)由硬件置1,進(jìn)入中斷后又由硬件自動(dòng)清0。TR1為T/C1的啟動(dòng)和停止位,由軟件控制。置1時(shí)啟動(dòng)T/C1;清0時(shí)停止T/C1。TF0和TR0的功能和使用方法以TF1、TR1類似,只是它們針對(duì)的是T/C0。③定時(shí)器/計(jì)數(shù)器方式控制存放器TMOD定時(shí)器/計(jì)數(shù)器方式控制存放器TMOD的格式如下所示。它的控制位都是由軟件控制的,其中高4位是針對(duì)T/C1的,低4位是針對(duì)T/C0的,其功能和使用方法相似。GATEM1M0GATEM1M0現(xiàn)在以T/C0來說明各控制位的使用方法:GATE是一個(gè)選通位,當(dāng)GATE位置1時(shí),T/C0受到雙重控制,只有為高電平且TR0位置1是T/C0才開始工作,當(dāng)GATE位清0時(shí),T/C0僅受到TR0的控制。用來選擇工作在定時(shí)器方式還是計(jì)數(shù)器方式。當(dāng)該位置1時(shí)工作在計(jì)數(shù)器方式,清0時(shí)工作在定時(shí)器方式。M1和M0聯(lián)合起來用于選擇操作模式,一共有四種操作模式,如表2-2所示。表2-2操作模式M1M0操作模式計(jì)數(shù)器配置00模式013位計(jì)數(shù)器10模式2自動(dòng)重轉(zhuǎn)載的8位計(jì)數(shù)器10模式2自動(dòng)重轉(zhuǎn)載的8位計(jì)數(shù)器11模式3T0分為兩個(gè)8位計(jì)數(shù)器,T1停止計(jì)數(shù)3、溫濕度傳感器傳統(tǒng)的模擬式濕度傳感器需設(shè)計(jì)信號(hào)調(diào)理電路并要經(jīng)過復(fù)雜的校準(zhǔn)、標(biāo)定過程,測(cè)量精度難以得到保證,且在線性度、重復(fù)性、互換性、一致性等方面往往不盡人意。為解決這些問題,瑞士Sensirion公司推出了新一代基于CMOSensTM技術(shù)的數(shù)字式溫濕度傳感器。它很好地解決了溫濕度傳感器存在的上述問題,實(shí)現(xiàn)了數(shù)字式輸出、免調(diào)試、免標(biāo)定、免外圍電路及全互換功能[3]。3.1數(shù)字溫濕度傳感器SHT-11數(shù)字溫濕度傳感器SHT—11采用COMSens專利傳感器技術(shù)將溫度濕度傳感器、A/D轉(zhuǎn)換器、數(shù)字接口、校準(zhǔn)數(shù)據(jù)存儲(chǔ)器、標(biāo)準(zhǔn)I2C總線等電路全部集成在一個(gè)芯片內(nèi)〔其內(nèi)部結(jié)構(gòu)如圖3-1所示〕[4]。圖3-1數(shù)字溫濕度傳感器SHT—11的內(nèi)部結(jié)構(gòu)圖由它的內(nèi)部結(jié)構(gòu)可看出SHT-11具有不同保護(hù)的“微型結(jié)構(gòu)”檢測(cè)電極系統(tǒng)與聚合物覆蓋層組成了傳感器芯片的電容,這樣除保持了電容式濕敏器件的原有特性外還可抵御來自其它方面的影響。將溫度傳感器與濕度傳感器結(jié)合在一起構(gòu)成了一個(gè)單一的個(gè)體,這就使得測(cè)量精度提高并且可以精確得出露點(diǎn),而不會(huì)產(chǎn)生由于溫度與濕度傳感器之間隨溫度梯度變化而引起的誤差。而且將傳感器元件、信號(hào)放大器、模/數(shù)轉(zhuǎn)換器、OTP校準(zhǔn)數(shù)據(jù)存儲(chǔ)器、I2C工業(yè)標(biāo)準(zhǔn)串行總線等,電路功能部件全部采用CMOS技術(shù)與溫濕度傳感器一起放置在一個(gè)芯片內(nèi)。這不僅使信號(hào)強(qiáng)度增加,更重要的是長期穩(wěn)定性也得到增強(qiáng),這對(duì)傳感器系統(tǒng)是極為重要的。同時(shí),模/數(shù)轉(zhuǎn)換也在一個(gè)芯片內(nèi)同時(shí)完成,這可使信號(hào)對(duì)噪聲不敏感,尤其重要的是,在傳感器芯片數(shù)據(jù)存儲(chǔ)器內(nèi)裝載的針對(duì)每一只傳感器的校準(zhǔn)數(shù)據(jù)保證了每一只傳感器都有相同的功能,可以實(shí)現(xiàn)100%的互換。此外,。該傳感器還具有I2C二線串行總線接口,這可使傳感器方便的與任何類型的微處理器、微控制器接口相連,為溫濕度的微機(jī)化測(cè)試帶來極大的方便,這不僅能減少溫濕度測(cè)試系統(tǒng)的開發(fā)時(shí)間,還可節(jié)約數(shù)字化接口的軟硬件本錢。該傳感器還有反響迅速、高精度、低功耗等優(yōu)點(diǎn)。3.2SHT-11的傳感器輸出SHT-11的相對(duì)濕度絕對(duì)精度、溫度精度和25℃露點(diǎn)精度如圖3-2(a)~(c)所示[4]。〔a〕濕度絕對(duì)精度〔b〕溫度精度〔C〕25℃露點(diǎn)精度圖3-2相對(duì)濕度、溫度和露點(diǎn)的精度曲線3.2.1濕度值輸出SHT-11可通過I2C總線直接輸出數(shù)字量濕度值,其相對(duì)濕度輸出特性曲線如圖3-2所示。從中可以看出,SHT11的輸出特性呈一定的非線性,為了補(bǔ)償濕度傳感器的非線性以獲取準(zhǔn)確數(shù)據(jù),可按式〔3-1〕修正濕度值:=式中,SORH表示傳感器相對(duì)濕度測(cè)量值,系數(shù)取值分別如下:12位時(shí):;8位時(shí):。3.2.2溫度值輸出SHT-11溫度傳感器的線性非常好,可用以下公式〔3-2〕將溫度數(shù)字輸出轉(zhuǎn)換成實(shí)際溫度值T:式中,表示傳感器溫度測(cè)量值。當(dāng)電源電壓為5V,溫度傳感器的分辨率為14位時(shí),,;當(dāng)溫度傳感器的分辨率為12位時(shí),,。圖3-3相對(duì)濕度輸出特性曲線3.2.3露點(diǎn)計(jì)算空氣的露點(diǎn)值可根據(jù)相對(duì)濕度和溫度值由下面公式計(jì)算:式中,——飽和水蒸氣壓強(qiáng)〔mmHg〕3.2.4非線性校正及溫度補(bǔ)償式〔3-1〕為相對(duì)濕度的非線性補(bǔ)償計(jì)算公式,對(duì)于單片機(jī)系統(tǒng)而言,計(jì)算量大而過復(fù)雜,下面給出簡化的計(jì)算方法?!?〕線性當(dāng)系統(tǒng)對(duì)濕度測(cè)量精度要求不高時(shí),可采用以下的線性計(jì)算公式。式中,。〔2〕2×線性當(dāng)系統(tǒng)對(duì)濕度測(cè)量精度要求較高時(shí),可采用以下的2×線性計(jì)算公式,即用最小的計(jì)算復(fù)雜性來提高精確度。式中,為8位濕度傳感器輸出濕度值。當(dāng)時(shí),,;當(dāng)時(shí),,?!?〕溫度補(bǔ)償上述濕度計(jì)算公式是按環(huán)境溫度為25℃進(jìn)行計(jì)算的,而實(shí)際的測(cè)量溫度值那么在一定的范圍內(nèi)變化,所以應(yīng)考慮濕度傳感器的溫度系數(shù),可按式對(duì)環(huán)境溫度進(jìn)行補(bǔ)償。當(dāng)為12位時(shí),,;當(dāng)為8位時(shí),,。3.3SHT-11的特性3.3.1SHT-11的特點(diǎn)SHT-11傳感器的特點(diǎn)如下:1〕相對(duì)濕度和溫度一體測(cè)量;2〕精確露點(diǎn)測(cè)量;3〕全量程標(biāo)定,無需重新標(biāo)定即可互換使用;4〕超快響應(yīng)時(shí)間;5〕兩線制數(shù)字接口〔最簡單的系統(tǒng)集成,較低的價(jià)格〕;6〕超小尺寸〔7.5×5×2.5mm〕;7〕高可靠性〔工業(yè)CMOS工業(yè)〕;8〕優(yōu)化的長期穩(wěn)定性;9〕可完全浸沒水中;10〕基于請(qǐng)求式測(cè)量,因此低能耗;11〕具有濕度傳感器元件的自檢測(cè)能力;12〕傳感器元件加熱應(yīng)用,亦可獲得極高的精度和穩(wěn)定性。3.3.2SHT的詳細(xì)規(guī)格1.相對(duì)濕度傳感器〔RH〕的性能參數(shù)如下:范圍:0—100%RH;精度:±3%RH〔20—80%RH〕;響應(yīng)時(shí)間:≤4s;復(fù)現(xiàn)性:±0.1%RH;分辨率:0.03%RH;工作溫度:-40℃—+120℃。2.溫度傳感器〔T〕的性能參數(shù)如下:范圍:-40℃—+120℃;精度:±0.5℃〔在25℃時(shí)〕,±0.9℃〔在0—40℃時(shí)〕;響應(yīng)時(shí)間:≤20s;復(fù)現(xiàn)性:±0.1℃;分辨率:0.01℃。3.電器數(shù)據(jù)能耗:典型30uW〔@5V,12-bit,測(cè)量周期2秒〕典型1uW〔@2.4V,8-bit,測(cè)量周期2分〕;供電范圍:2.4V—5.5V;檢測(cè)電流:0.5mA;待機(jī)電流:0.3uV。3.4SHT-11的引腳SHT-11的引腳圖如圖3-4所示。圖3-4SHT-11的引腳圖引腳簡介引腳1—GND接地端;SHT-11的供電電壓為0.4~5.5V,傳感器上電后要等待11ms以越過“休眠”狀態(tài)。在此期間無需發(fā)送任何指令,電源引腳〔VDD,GND〕之間可增加一個(gè)100uF的電容,用以去耦濾波。引腳2—DATA雙向串行數(shù)據(jù)線;SHT-11的串行接口,在傳感器的讀取及電源損耗方面都做了優(yōu)化處理。DATA三態(tài)門用于數(shù)據(jù)的讀取。引腳3—SCK串行時(shí)鐘輸入;用于微處理器與SHT-11之間的通訊同步。由于接口包含了完全靜態(tài)邏輯,因而不存在最小SCK頻率。引腳4—VDD電源端,0.4—5.5V電源引腳5—8—NC空管腳3.5SHT-11的的內(nèi)部命令與接口時(shí)序3.5.1SHT-11的內(nèi)部命令SHT-11傳感器共有5條用戶命令,具體命令格式見表3-1。在程序編程時(shí)根據(jù)命令編號(hào)來設(shè)定SHT-11的工作狀態(tài)。例如:0x03設(shè)置SHT-11為溫度測(cè)量,0x05是設(shè)置SHT-11為濕度測(cè)量[5]。表3-1SHT-11傳感器命令列表命令編號(hào)說明測(cè)量溫度00011溫度測(cè)量測(cè)量濕度00101濕度測(cè)量讀存放器00111“讀”狀態(tài)存放器寫存放器00110“寫”狀態(tài)存放器軟啟動(dòng)11110重啟芯片,去除狀態(tài)記錄器的錯(cuò)誤記錄11毫秒后進(jìn)入下一個(gè)命令3.5.2SHT-11的命令順序及命令時(shí)序1)傳輸開始初始化傳輸時(shí),應(yīng)發(fā)出“傳輸開始”命令,具體為SCK是高電平時(shí),DATA高電平變?yōu)榈碗娖?并在下一個(gè)SCK為高時(shí)將DATA升高。接著傳輸開始下一個(gè)命令,包含3個(gè)地址位(目前只支持“000”)和5個(gè)命令位,通過DATA腳的ack位處于低電位表示SHT11正確收到命令。2)連接復(fù)位順序如果與SHT11傳感器的通訊中斷,以下信號(hào)順序會(huì)使串口復(fù)位:當(dāng)使DATA線處于高電平時(shí),觸發(fā)SCK9次以上(含9次),并發(fā)一個(gè)前述的“傳輸開始”命令。3)溫濕度測(cè)量時(shí)序當(dāng)發(fā)出了溫(濕)度測(cè)量命令后,控制器就要等到測(cè)量完成后才開始動(dòng)作。使用8/12/14位的分辨率測(cè)量分別需要大約11/55/210ms。為說明測(cè)量完成,SHT11會(huì)使DATA為低電平,此時(shí)控制器必須重新啟動(dòng)SCK,然后SHT11傳送兩字節(jié)測(cè)量數(shù)據(jù)與1字節(jié)CRC校驗(yàn)和到控制器,控制器必須通過使DATA為低來確認(rèn)每一字節(jié),通訊在確認(rèn)CRC數(shù)據(jù)位后停止。如果沒有用CRC28校驗(yàn)和,那么控制器就會(huì)在測(cè)量數(shù)據(jù)LSB后,保持ack為高時(shí)停止通訊,SHT11在測(cè)量和通訊完成之后會(huì)自動(dòng)返回睡眠模式。需要注意的是,為使SHT11溫升上下于0.1℃,那么此時(shí)工作頻率不能大15%(如:12位精確度時(shí),每秒最多進(jìn)行3次測(cè)量)。測(cè)量溫度和測(cè)量濕度命令所對(duì)應(yīng)的時(shí)序如圖3-4所示。圖3-4測(cè)量溫濕度時(shí)序圖4)加熱控制將傳感器芯片中的加熱開關(guān)接通,傳感器溫度大約增加5℃,加熱用途如下:其一,通過對(duì)啟動(dòng)加熱器前后的溫、濕度進(jìn)行比擬,可以正確地區(qū)別傳感器的功能;其二,在相對(duì)濕度較高的環(huán)境下,傳感器可通過加熱來防止冷凝。5)低電壓檢測(cè)SHT11的工作極限功能可以檢測(cè)VDD電壓是否低于2.45V,準(zhǔn)確度為±0.1V。3.4.3SHT-11的狀態(tài)存放器SHT-11的狀態(tài)存放器的類型及其說明見表3-2。表3-2SHT-11狀態(tài)存放器及說明位類型說明缺省說明7保存06讀工檢限X5保存04保存0續(xù)表位類型說明缺省說明3只用于試驗(yàn),不可以使用02讀/寫加熱0關(guān)1讀/寫不從OTP重下載0重下載0讀/寫‘1’—8位相對(duì)濕度,12位溫度分辨率;‘0’—12位相對(duì)濕度,14位溫分辨率012位相對(duì)濕度,14溫度3.6硬件接口圖3.2DS1302與單片機(jī)連接SHT-11與單片機(jī)接口構(gòu)成的溫濕度測(cè)量電路,如圖3-5所示。因SHT-11內(nèi)部集成了A/D轉(zhuǎn)換器、數(shù)字接口等,在與單片機(jī)連接時(shí)就不需要再外接轉(zhuǎn)換部件[6]。圖3.2DS1302與單片機(jī)連接圖3-5SHT-11與單片機(jī)接口3.7恢復(fù)處理置于極限工作條件下或化學(xué)蒸汽中的傳感器,經(jīng)過在80~90℃〔176~194F〕和<5%RH的濕度條件下保持24小時(shí)〔烘干〕,隨后在20~30℃〔70~90F〕和>74%RH的濕度條件下保持48小時(shí)以上〔重新水和〕的處理后可使其恢復(fù)到剛校準(zhǔn)時(shí)的狀態(tài)[7]。通過上面的論述可見SHT-11數(shù)字式溫濕度傳感器完全符合對(duì)土壤溫濕度檢測(cè)的要求。3.8SHT-11的相關(guān)程序⑴SHT11端口定義sbitSHT11_DATA=P2^6;sbitSHT11_SCK=P2^5;ucharflag_tempeture=0;//顯示溫度位置的標(biāo)志ucharflag_humidity=0; //顯示濕度位置的標(biāo)志//uchardat;uinti,temp1,temp2,dat=0,count;floattempeture1;floatRHline,RHtrue;voiddelay(uintm){while(m--);}⑵SHT11內(nèi)部延時(shí)voidDelay(){ ; ;}⑶SHT11檢測(cè)等待延時(shí):11ms/55ms/210ms分別對(duì)應(yīng)8位/12位/14位測(cè)量結(jié)果,對(duì)應(yīng)的形參為N那么延時(shí)NmsvoidDelay_Ms(uintms){ uinti,j; for(i=ms;i>0;i--) for(j=112;j>0;j--);}⑷SHT11啟動(dòng)時(shí)序voidSHT11_Start(){ SHT11_SCK=1; SHT11_DATA=1; Delay(); SHT11_DATA=0; Delay(); SHT11_SCK=0; Delay(); SHT11_SCK=1; Delay(); SHT11_DATA=1;}⑸向SHT11發(fā)送8bite數(shù)據(jù)voidSHT11_Sendbyte(uchardat){ uchari; SHT11_SCK=0; Delay(); for(i=0;i<8;i++) { if(dat&0x80) { SHT11_DATA=1; Delay(); } else { SHT11_DATA=0; Delay(); } dat=dat<<1; SHT11_SCK=1; Delay(); SHT11_SCK=0; }}⑹檢測(cè)SHT11的響應(yīng)信號(hào)(在第九個(gè)時(shí)鐘周期)voidSHT11_Answer(){ SHT11_SCK=1; Delay(); while(SHT11_DATA==1); SHT11_SCK=0; SHT11_DATA=1;}⑺檢測(cè)SHT11溫濕度檢測(cè)是否完畢voidSHT11_Test_Finish(){ while(SHT11_DATA==1);}⑻“寫”程序:向SHT11的狀態(tài)存放器設(shè)置功能,command為REG_WRITE0x06寫存放器,dat為設(shè)置SHT11的功能,可以設(shè)置檢測(cè)的數(shù)據(jù)位數(shù)voidSHT11_Write_Register(ucharcommand,uchardat){ SHT11_Start(); SHT11_Sendbyte(command); SHT11_Answer(); SHT11_Sendbyte(dat); SHT11_Answer();}⑼“讀”程序:ommand為REG_READ0x07//讀存放器,返回值為狀態(tài)存放器的值。位6顯示當(dāng)前檢測(cè)完一次數(shù)據(jù)后電源供電情況:當(dāng)位6為0時(shí)說明VDD>2.47V當(dāng)位6為1時(shí)說明VDD<2.47V即電量缺乏。位0說明當(dāng)前的測(cè)量分辨率:當(dāng)位0為1時(shí)說明測(cè)量精度:8位/濕度12位溫度,當(dāng)位0為0時(shí)說明測(cè)量精度:12位濕度14位溫度,默認(rèn)為0ucharSHT11_Read_Register(ucharcommand){uchardat;SHT11_Start();SHT11_Sendbyte(command);SHT11_Answer();dat=SHT11_Receivebyte();SHT11_End();return(dat);}⑽設(shè)置SHT11檢測(cè)功能,并返回相應(yīng)的檢測(cè)結(jié)果:command形參用于設(shè)定溫度檢測(cè)還是濕度檢測(cè),time形參用于設(shè)定檢測(cè)過程中的等待時(shí)間,以確定檢測(cè)結(jié)果的位數(shù)11ms/55ms/210ms分別對(duì)應(yīng)8位/12位/14位uintSHT11_Measure(ucharcommand,uchartime){uintdat=0;uchardata_high,data_low;SHT11_Start();SHT11_Sendbyte(command);SHT11_Answer();Delay_Ms(time);SHT11_Test_Finish();data_high=SHT11_Receivebyte();MCU_Answer();data_low=SHT11_Receivebyte();SHT11_End();dat=(dat|data_high);dat=(dat<<8)|data_low;return(dat);}⑾將檢測(cè)到的數(shù)據(jù)轉(zhuǎn)化為相應(yīng)的溫度數(shù)據(jù):溫度轉(zhuǎn)換公式--T=d1+d2*Sot,公式中的參數(shù)d1=-40,d2=0.01適用于14位測(cè)量精度floatSHT11_Convert_Tempeture14bit(uintdat){floattempeture1;tempeture1=-40+0.01*dat;if(tempeture1>100.0){ flag_tempeture=1; }elseif(tempeture1<0.0){flag_tempeture=1;}else{flag_tempeture=0;}return(tempeture1);}⑿將檢測(cè)到的數(shù)據(jù)轉(zhuǎn)化為相應(yīng)的濕度數(shù)據(jù):相對(duì)濕度轉(zhuǎn)換公式RHline=C1+C2*SOrh+C3*SOrh*SOrh,RHtrue=(tempeture-25)*(t1+t2*SOrh)+RHline式中參數(shù)C1=-4,C2=0,0405,C3=-0.0000028,t1=0.01,t2=0.00008;適用于12位測(cè)量精度floatSHT11_Convert_Humidity12bit(uintdat,floattemp){// floatRHline,RHtrue;RHline=-4+0.0405*dat-0.0000028*dat*dat;RHtrue=(temp-25)*(0.01+0.00008*dat)+RHline;if(RHtrue<10.0){ flag_humidity=1; }else{ flag_humidity=0;} return(RHtrue);}4、DS1302時(shí)鐘芯片DS1302是Dallas公司推出的高性能低功耗涓流充電時(shí)鐘芯片??赏ㄟ^簡單的串行接口與單片機(jī)進(jìn)行通信,光感應(yīng)用于智能儀器、單片機(jī)系統(tǒng)和家用時(shí)鐘電路等領(lǐng)域。4.1DS1302時(shí)鐘芯片的簡介DS1302涓流充電計(jì)時(shí)芯片包含一個(gè)實(shí)時(shí)時(shí)鐘/日歷和31字節(jié)的靜態(tài)RAM。它通過一個(gè)簡單的串行接口與微處理器進(jìn)行通信[8]。實(shí)時(shí)時(shí)鐘/日歷提供秒,分鐘,小時(shí),周,日期,月份和年的有關(guān)信息。對(duì)于少于31天的月份,每月月底的日期是自動(dòng)調(diào)整的,包括對(duì)瑞年進(jìn)行更正,時(shí)鐘運(yùn)行可采用24小時(shí)制或帶AM/PM指示的12小時(shí)制。同步串行通信簡化了DS1302與微處理的接口。與時(shí)鐘/RAM通信只需三根線:、I/O(數(shù)據(jù)線)及SCLK〔串行時(shí)鐘〕。時(shí)鐘/RAM數(shù)據(jù)的讀/寫以每次一個(gè)字節(jié)或多達(dá)31個(gè)字節(jié)的多字節(jié)模式傳輸。DS1302設(shè)計(jì)為低功耗工作,保持?jǐn)?shù)據(jù)和時(shí)鐘信息的功耗小于1uF。4.2引腳DS1302的引腳〔引腳圖如圖4-1所示〕及功能簡介如下:圖4-1DS1302引腳圖第1、2腳:Vcc1、Vcc2電源。第3腳:復(fù)位輸入端。第4腳:串行時(shí)鐘輸入端。第5腳:數(shù)據(jù)輸入/輸出端。第6、7腳:X1、X2是32.768kHz晶振輸入/輸出端。4.3命令字節(jié)表4-1所示為命令字節(jié)格式。命令字節(jié)啟動(dòng)每個(gè)字節(jié)的數(shù)據(jù)傳輸。該MSB〔第7位〕必須為邏輯1.如果是0,寫入DS1302操作將被禁用。第6位是邏輯1時(shí)指定RAM數(shù)據(jù)。第1至第5位規(guī)定特定存放器作為輸入還是輸出。LSB〔第0位〕如果是邏輯0,指定一個(gè)寫操作〔輸入〕;如果是邏輯1,執(zhí)行一個(gè)讀操作。命令字節(jié)總是從LSB〔第0位〕輸入。表4-1DS1302命令字節(jié)765432101RAMSCLKA4A3A2A1A0RD〔1〕及時(shí)鐘控制驅(qū)動(dòng)輸入高電平可啟動(dòng)所有的數(shù)據(jù)傳輸。輸入起到兩種功能:第一,啟動(dòng)控制邏輯,允許地址/字節(jié)序列訪問移位存放器。第二,信號(hào)提供了一種終止單字節(jié)或多字節(jié)數(shù)據(jù)傳輸?shù)姆椒?。一個(gè)時(shí)鐘周期是一個(gè)上升沿序列,緊跟著下降沿。對(duì)于數(shù)據(jù)輸入,在時(shí)鐘周期的上升沿時(shí)間,數(shù)據(jù)必須正確;在時(shí)鐘周期的下降沿,數(shù)據(jù)位輸出。如果輸入低電平所有數(shù)據(jù)傳輸中止。I/O引腳變成高阻狀態(tài)。數(shù)據(jù)的傳輸如圖4-2所示。在上電時(shí),必須是邏輯0,直到Vcc>2.0V.此外,當(dāng)被驅(qū)動(dòng)到邏輯1狀態(tài)時(shí),SCLK必須為邏輯0。a)單字節(jié)傳送b)多字節(jié)傳送圖4-2數(shù)據(jù)傳送時(shí)序〔2〕數(shù)據(jù)輸入繼輸入寫命令字節(jié)的8個(gè)SCLK周期后,在接下來的8個(gè)SCLK周期的上升沿輸入數(shù)據(jù)字節(jié)。如果有額外的SCLK周期,將被忽略。數(shù)據(jù)輸入從位0開始?!?〕數(shù)據(jù)輸出繼輸入寫命令的8個(gè)SCLK周期后,在接下來的8個(gè)SCLK周期的下降沿輸出數(shù)據(jù)字節(jié)。請(qǐng)注意,將被傳輸?shù)牡谝粋€(gè)數(shù)據(jù)位出現(xiàn)在命令字節(jié)最后一位被寫入后的第一個(gè)下降沿。只要維持高電平,如有附加的SCLK的周期,將重新轉(zhuǎn)發(fā)數(shù)據(jù)字節(jié)。此操作允許連續(xù)多字節(jié)模式讀取能力。此外,I/O引腳在每個(gè)SCLK的上升沿都是三態(tài)的。數(shù)據(jù)輸出開始于第0位?!?〕多字節(jié)模式時(shí)鐘/日歷或由十進(jìn)制存儲(chǔ)單元31〔地址/命令1至5=邏輯1〕尋址的RAM存放器可以為多字節(jié)模式。如上所述,第6位指定時(shí)鐘或RAM和第0位指定讀或?qū)?。在日歷/時(shí)鐘存放器的地址9至31或RAM存放器中的地址31不能存儲(chǔ)數(shù)據(jù)。在多字節(jié)模式中,讀或?qū)戦_始于地址0的第0位。當(dāng)在多字節(jié)模式下寫時(shí)鐘存放器時(shí),必須按數(shù)據(jù)傳輸?shù)拇涡驅(qū)懭胧装藗€(gè)存放器。然而,當(dāng)在多字節(jié)模式寫入RAM時(shí),為了數(shù)據(jù)的傳輸,沒有必要寫入所有的31個(gè)字節(jié)。每個(gè)被寫入的字節(jié)都將被傳輸?shù)絉AM,無論31個(gè)字節(jié)是否都被寫入?!?〕DS1302內(nèi)部存放器DS1302內(nèi)部存放器地址及數(shù)據(jù)分配情況如表4-2所示。1〕時(shí)鐘/日歷:時(shí)鐘/日歷包含在7個(gè)寫/讀存放器中。數(shù)據(jù)以BCD碼形式包含在時(shí)鐘/日歷存放器中。2〕時(shí)鐘暫停標(biāo)志:秒存放器的第7位定義為時(shí)鐘暫停標(biāo)志。當(dāng)此位置1時(shí),時(shí)鐘振蕩器停止,DS1302進(jìn)入低功耗備用模式,電源消耗小于100nA。當(dāng)此位置0時(shí),時(shí)鐘將啟動(dòng)。初始上電狀態(tài)未定義。3〕AM-PM/12-24模式:DS1302能運(yùn)行于12小時(shí)制或24小時(shí)制模式下。小時(shí)存放器的第7位被定義為12或24小時(shí)模式選擇位。當(dāng)其處于高電平時(shí),選擇12小時(shí)模式。在12小時(shí)模式下,第5位是AM/PM位,其為邏輯高電平表示PM。在24小時(shí)模式下,第5位是第二個(gè)10小時(shí)位元〔20-23〕小時(shí)。當(dāng)12/24位被改變時(shí),小時(shí)數(shù)據(jù)一定要被重新初始化。表4-2DS1302的日歷、時(shí)鐘存放器及控制字存放器名命令字格式取值范圍位內(nèi)容寫操作讀操作76543210秒存放器80H81H00-59CH10SECSEC分存放器82H83H00-59010MINMIN小時(shí)存放器84H85H01-1200-2312/24010HRHRA/P日期存放器86H87H01-28/29/30/310010DATEDATE月份存放器88H89H01-1200010MMONTH星期存放器8AH8BH01-0700000DAY年份存放器8CH8DH00-9910YEARYEAR寫保護(hù)存放器8EH8FH—WP0涓流充電存放器90H91H—TCSDSRS時(shí)鐘多字節(jié)存放器BEHBFH——RAM多字節(jié)存放器FEHFFH——4〕寫保護(hù)位:控制存放器的第7位是寫保護(hù)位。首7位〔第0至第6位〕必須為0,讀取時(shí)始終讀0。對(duì)時(shí)鐘或RAM進(jìn)行任何操作前,第7位必須為0。當(dāng)寫保護(hù)位為高電平時(shí),該位阻止對(duì)任何其他存放器的寫操作。初始的上電狀態(tài)沒有定義。因此,在寫入該器件之前,應(yīng)去除WP位。5〕涓流充電存放器:該存放器控制DS1302的涓流特性。涓流充電選擇(TCS)位〔第4至第7位〕控制涓流充電器的選擇。為了阻止意外使能,只有1010模式使能涓流充電器。所有其他模式都禁用涓流充電器。DS1302上電時(shí),涓流充電器被禁用。DS為二極管選擇位,RS為電阻選擇位。6〕時(shí)鐘/日歷多字節(jié)模式:該時(shí)鐘/日歷命令字節(jié)指定多字節(jié)觸發(fā)模式操作。在此模式下,首8個(gè)時(shí)鐘/日歷存放器可以從地址0的第0位開始被連續(xù)地讀取或?qū)懭?。?dāng)指定寫時(shí)鐘/日歷多字節(jié)模式時(shí),如果寫保護(hù)位被設(shè)置為高電平,將沒有數(shù)據(jù)傳送到8個(gè)時(shí)鐘/日歷存放器〔包括控制存放器〕的任意一個(gè)。在多字節(jié)模式下,涓流充電器不可用。7〕RAM:靜態(tài)RAM是RAM地址空間中連續(xù)編址的31×8字節(jié)。8〕RAM多字節(jié)模式:RAM命令字節(jié)指定多字節(jié)模式操作。在此模式下,31個(gè)RAM存放器從地址0的第0位開始被連續(xù)讀取或?qū)懭搿!?〕晶振的選擇32.768kHz的晶振可通過引腳2和3〔X1、X2〕直接連接至DS1302。所選定的晶振應(yīng)該加一個(gè)6pF的負(fù)載電容?!?〕電源控制Vcc1在單電源與電池供電的系統(tǒng)中提供低電源的電池備份。Vcc2在雙電源系統(tǒng)中提供主電源,此時(shí)Vcc1連接到備份電源,以便在沒有主電源,以便在沒有主電源的情況下能保存時(shí)間信息以及數(shù)據(jù)。DS1302由Vcc1或Vcc2兩者中較大者供電。它與單片機(jī)連接后,單片機(jī)便可讀出其實(shí)時(shí)時(shí)間。連接示意圖如圖4-3所示[9]。圖4-3DS1302與AT89C51連接圖4.4DS1302的相關(guān)程序DS1302的初始化、寫入數(shù)據(jù)及讀出數(shù)據(jù)的程序如下:⑴DS1302的頭文件程序sbitT_CLK=P1^5;

sbitT_IO=P1^6;

sbitT_RST=P1^7;

sbitACC0=ACC^0;

sbitACC7=ACC^7;

⑵DS1302讀寫程序:d為寫入的數(shù)據(jù),無返回值

voidRTInputByte(unsignedchard)

{

unsignedchari;

ACC=d;

for(i=8;i>0;i--)

{

T_IO=ACC0;

//相當(dāng)于匯編中的RRC

T_CLK=1;

T_CLK=0;

ACC=ACC>>1;

}

}

⑶從DS1302讀取1Byte數(shù)據(jù)(內(nèi)部函數(shù)):ACC為返回值

unsignedcharRTOutputByte(void)

{

unsignedchari;

for(i=8;i>0;i--)

{

ACC=ACC>>1;

//相當(dāng)于匯編中的RRC

ACC7=T_IO;

T_CLK=1;

T_CLK=0;

}

return(ACC);

}

⑷往DS1302寫入數(shù)據(jù):ucAddr為DS1302地址,ucData為要寫的數(shù)據(jù),無返回值voidWrite1302(unsignedcharucAddr,unsignedcharucDa)

{

T_RST=0;

T_CLK=0;

T_RST=1;

RTInputByte(ucAddr);

//地址,命令

RTInputByte(ucDa);

//寫1Byte數(shù)據(jù)

T_CLK=1;

T_RST=0;

}

⑸讀取DS1302某地址的數(shù)據(jù):ucAddr為DS1302地址,ucData為讀取的數(shù)據(jù),即返回值

unsignedcharRead1302(unsignedcharucAddr)

{

unsignedcharucData;

T_RST=0;

T_CLK=0;

T_RST=1;

RTInputByte(ucAddr);

//地址,命令

ucData=RTOutputByte();

//讀1Byte數(shù)據(jù)

T_CLK=1;

T_RST=0;

return(ucData);

}⑹設(shè)置初始時(shí)間

voidSet1302(unsignedchar*pClock)

{

unsignedchari;

unsignedcharucAddr=0x80;

Write1302(0x8e,0x00);

//控制命令,WP=0,寫操作

for(i=7;i>0;i--)

{

Write1302(ucAddr,*pClock);

//秒分時(shí)日月星期年

pClock++;

ucAddr+=2;

}

Write1302(0x8e,0x80);

//控制命令,WP=1,寫保護(hù)

}5、液晶顯示器LCD液晶顯示器是一種低功耗液晶顯示器件。工作電流小,適合于儀表和低功耗系統(tǒng)。常用的有筆畫型液晶顯示器、點(diǎn)陣字符型液晶顯示器和圖形點(diǎn)陣式液晶顯示器。LCD液晶顯示器的原理是利用液晶的物理特性,通過電壓對(duì)其顯示區(qū)域進(jìn)行控制,。有電就顯示黑色,這樣就顯示出圖形。液晶顯示器適應(yīng)于大規(guī)模電路直接驅(qū)動(dòng),易于實(shí)現(xiàn)全彩色顯示的特點(diǎn)。目前被廣泛應(yīng)用于計(jì)算機(jī),數(shù)字?jǐn)z像機(jī)等眾多領(lǐng)域。5.1液晶顯示器的分類液晶顯示器按顯示圖案的不同可分筆段型LCD、字符型LCD和點(diǎn)陣圖型LCD三種[1]。筆段型筆段型是以長條狀作為根本單位顯示。該類型主要用于數(shù)字顯示,也可用于顯示西文字符或某些字符。這種段型顯示通常有6段、7段、8段、9段、14段和16段等,在形狀上與數(shù)碼管類似,總是圍繞數(shù)字“8”的結(jié)構(gòu)變化。其中以7段顯示器常用,常用于數(shù)字儀表、電子儀器中。字符型字符型液晶顯示器是專門用來顯示英文和其他拉丁文字母、數(shù)字、符號(hào)等點(diǎn)陣型液晶顯示模塊。它一般由假設(shè)干個(gè)5×8或5×11點(diǎn)陣組成,每個(gè)點(diǎn)陣顯示一個(gè)字符。這類模塊一般應(yīng)用于數(shù)字尋呼機(jī)、數(shù)字儀表等電子設(shè)備中。點(diǎn)陣圖形型點(diǎn)陣圖形型是在一平板上排列多行多列的矩陣式的晶格點(diǎn),點(diǎn)的大小可根據(jù)顯示清晰度來設(shè)計(jì),可顯示數(shù)字、字母、漢字、圖像,甚至動(dòng)畫。這液晶顯示器廣泛應(yīng)用于、筆記本電腦等需要顯示大量信息的設(shè)備中。5.2AMPIRE128×64帶中文字庫的128×64是一種具有4位/8位并行、2線或3線串行多種接口方式,內(nèi)部含有國標(biāo)一級(jí)、二級(jí)簡體中文字庫的點(diǎn)陣圖形液晶顯示模塊;其顯示分辨率為128×64,內(nèi)置8192個(gè)16*16點(diǎn)漢字,和128個(gè)16*8點(diǎn)ASCII字符集。利用該模塊靈活的接口方式和簡單、方便的操作指令,可構(gòu)成全中文人機(jī)交互圖形界面。可以顯示8×4行16×16點(diǎn)陣的漢字.也可完成圖形顯示。低電壓低功耗是其又一顯著特點(diǎn)。由該模塊構(gòu)成的液晶顯示方案與同類型的圖形點(diǎn)陣液晶顯示模塊相比,不管硬件電路結(jié)構(gòu)或顯示程序都要簡潔得多,且該模塊的價(jià)格也略低于相同點(diǎn)陣的圖形液晶模塊。在本次設(shè)計(jì)中要求顯示溫度值,濕度值的同時(shí)顯示起說明作用的“溫度”與“濕度”兩組漢字。因此選用點(diǎn)陣圖形型的AMPIRE128×64。它的根本特性如下:?低電源電壓〔VDD:+3.0--+5.5V〕;?顯示分辨率:128×64點(diǎn);?內(nèi)置漢字字庫,提供8192個(gè)16×16點(diǎn)陣漢字(簡繁體可選);?內(nèi)置128個(gè)16×8點(diǎn)陣字符;?2MHZ時(shí)鐘頻率;?顯示方式:STN、半透、正顯;?驅(qū)動(dòng)方式:1/32DUTY,1/5BIAS;?視角方向:6點(diǎn);?背光方式:側(cè)部高亮白色LED,功耗僅為普通LED的1/5—1/10;?通訊方式:串行、并口可選;?內(nèi)置DC-DC轉(zhuǎn)換電路,無需外加負(fù)壓;?無需片選信號(hào),簡化軟件設(shè)計(jì);?工作溫度:0℃-+55℃,存儲(chǔ)溫度:-20℃-+60℃。5.2.1LCD128×64引腳功能AMPIRE128×64內(nèi)置KS0108型圖形液晶模塊驅(qū)動(dòng),它的引腳功能表如表5-1所示。邏輯工作電壓:4.5V~5.5V;電源地〔GND〕:0V;工作溫度:0~60℃〔常溫〕/-20~70℃〔寬溫〕。表5-1LCD128×64引腳功能表引腳號(hào)引腳名稱電平引腳功能描述1CS1/CS2H/L片選信號(hào),芯片1/芯片2控制液晶左半屏/右半屏2GND0V電源地3VCC+5V電源正4V0—比照度〔亮度〕調(diào)整續(xù)表引腳號(hào)引腳名稱電平引腳功能描述5RSH/LRS=“H”,表示DB7~DB0為顯示數(shù)據(jù)RS=“L”,表示DB7~DB0為顯示指令數(shù)據(jù)6R/WH/LR/W=“H”,E=“H”,數(shù)據(jù)被讀到DB7~DB0R/W=“L”,E=“L”,DB7~DB0的數(shù)據(jù)被寫到IR或DR7EH/L使能信號(hào)8DB0~DB7H/L三態(tài)數(shù)據(jù)線9H/L復(fù)位端,低電平有效10VOUT—LCD驅(qū)動(dòng)電壓輸出端5.2.2KS0108控制器指令功能KS0108控制器指令功能如表4-2所示。具體分析如下:讀狀態(tài)字〔readstatus〕格式:BUSY0ON/OFFRESETO000BUSY=1:表示KS0108正在處理計(jì)算機(jī)發(fā)來的指令或數(shù)據(jù)。此時(shí)接口電路被封鎖,不能接受除狀態(tài)字以外的任何操作。BUSY=0表示KS0108接口控制電路已處于“準(zhǔn)備好”狀態(tài),等待計(jì)算機(jī)的訪問。ON/OFF:表示當(dāng)前的顯示狀態(tài)。ON/OFF=1表示關(guān)顯示狀態(tài);ON/OFF=0表示開顯示狀態(tài)。RESSET:表示當(dāng)前KS1008的工作狀態(tài),即反映RET端得電平狀態(tài)。當(dāng)RST為低電平狀態(tài)時(shí),KS0108處于復(fù)位工作狀態(tài),RESET=1;當(dāng)RST為高電平狀態(tài)時(shí),KS0108為正常工作狀態(tài),RESET=0。在占領(lǐng)設(shè)置和數(shù)據(jù)讀寫時(shí)要注意狀態(tài)字中的BUSY標(biāo)志。只有在BUSSY=0時(shí),計(jì)算機(jī)對(duì)KS0108的操作才有效。因此計(jì)算機(jī)在每次對(duì)KS0108操作之前,都要讀出狀態(tài)字判斷BUSY是否為“0”。假設(shè)不為“0”,那么計(jì)算機(jī)需要等待,直至BUSY=0為止。顯示開關(guān)〔displayon/off〕格式:0011111D該指令設(shè)置顯示開關(guān)/觸發(fā)器的狀態(tài),由此控制顯示數(shù)據(jù)鎖存器的工作方式,從而控制顯示狀態(tài)。D位為顯示開/關(guān)的控制位。當(dāng)D=1為顯示設(shè)置,顯示數(shù)據(jù)鎖存器正常工作,顯示屏上呈現(xiàn)所需的效果。此時(shí)在狀態(tài)字中ON/OFF=0。當(dāng)D=0為關(guān)顯示設(shè)置,顯示數(shù)據(jù)鎖存器被清0,顯示屏呈不顯示狀態(tài),但顯示存儲(chǔ)器并沒有被破壞,在狀態(tài)組中ON/OFF=1。顯示起始行設(shè)置〔displaystartline〕格式:11L5L4L3L2L1L0該指令設(shè)置了顯示起始行存放器的內(nèi)容。KS0108有64行顯示的管理能力,該指令中L5~L0為顯示起始行的地址,取值在0~3FH〔1~64〕范圍內(nèi),它規(guī)定了顯示屏上最頂一行所對(duì)的顯示存儲(chǔ)器的行地址。如果定時(shí)間間隔地,等間距地修改〔如加一或減一〕顯示起始行存放器的內(nèi)容,那么顯示屏將呈現(xiàn)顯示內(nèi)容向上或向下平滑滾動(dòng)的顯示效果。頁面地址設(shè)置〔setpage(Xaddress)〕格式:10111P2P1P0該指令設(shè)置了頁面地址→X地址存放器的內(nèi)容。KS0108將顯示存儲(chǔ)器分成了8頁,指令代碼中P2~P0就是要確定當(dāng)前所要的選擇的頁面地址,取值范圍為0~7H,代表第1~8頁。該指令規(guī)定了以后的讀/寫操作將在哪一個(gè)頁面上進(jìn)行。⑤列地址設(shè)置〔setYaddress〕格式:01C5C4C3C2C1C0該指令設(shè)置了Y地址計(jì)數(shù)器的內(nèi)容,C5~C0=0~3FH(1~64)代表某一頁面上的某一單元地址,隨后的一次讀或?qū)憯?shù)據(jù)將在這個(gè)單元上進(jìn)行。Y地址計(jì)數(shù)器具有自動(dòng)加一功能,在每一次讀/寫數(shù)據(jù)后它將自動(dòng)加一,所以在連續(xù)進(jìn)行讀/寫數(shù)據(jù)時(shí),Y地址計(jì)數(shù)器不必每次都設(shè)置一次。頁面地址的設(shè)置和列地址的設(shè)置將顯示存儲(chǔ)器單元唯一確定下來,為后來的顯示數(shù)據(jù)的讀/寫作了地址的選通。⑥寫顯示數(shù)據(jù)〔writedisplaydata〕該操作將8位數(shù)據(jù)寫入先前已經(jīng)確定的顯示存儲(chǔ)器的單元內(nèi),操作完成后列地址計(jì)數(shù)器自動(dòng)加一。⑦讀顯示數(shù)據(jù)〔readdisplaydata〕該操作將KS0108接口部的輸出存放器內(nèi)容讀出,然后列地址自動(dòng)加一。5.2.3應(yīng)用說明用帶中文字庫的128×64顯示模塊時(shí)應(yīng)注意以下幾點(diǎn):①欲在某一個(gè)位置顯示中文字符時(shí),應(yīng)先設(shè)定顯示字符位置,即先設(shè)定顯示地址,再寫入中文字符編碼。②顯示ASCII字符過程與顯示中文字符過程相同。不過在顯示連續(xù)字符時(shí),只須設(shè)定一次顯示地址,由模塊自動(dòng)對(duì)地址加1指向下一個(gè)字符位置,否那么,顯示的字符中將會(huì)有一個(gè)空ASCII字符位置。③當(dāng)字符編碼為2字節(jié)時(shí),應(yīng)先寫入高位字節(jié),再寫入低位字節(jié)。④模塊在接收指令前,向處理器必須先確認(rèn)模塊內(nèi)部處于非忙狀態(tài),即讀取BF標(biāo)志時(shí)BF需為“0”,方可接受新的指令。如果在送出一個(gè)指令前不檢查BF標(biāo)志,那么在前一個(gè)指令和這個(gè)指令中間必須延遲一段較長的時(shí)間,即等待前一個(gè)指令確定執(zhí)行完成。指令執(zhí)行的時(shí)間請(qǐng)參考指令表中的指令執(zhí)行時(shí)間說明。⑤“RE”為根本指令集與擴(kuò)充指令集的選擇控制位。當(dāng)變更“RE”后,以后的指令集將維持在最后的狀態(tài),除非再次變更“RE”位,否那么使用相同指令集時(shí),無需每次均重設(shè)“RE”位。5.2.4LCD相關(guān)程序⑴字庫1ucharcodehzk[4][32]={/*--文字:濕--*//*--宋體12;此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x16--*/0x10,0x60,0x02,0xCC,0x00,0x00,0x3E,0x2A,0xAA,0x2A,0xAA,0x2A,0x3E,0x00,0x00,0x00,0x08,0x08,0xFE,0x01,0x40,0x42,0x4C,0x40,0x

溫馨提示

  • 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. 人人文庫網(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)論