自動澆花系統(tǒng)的設(shè)計 [摘要]本設(shè)計主要的內(nèi)容是土壤濕度檢測電路的設(shè)計與制作。該電路的工作原理是由STC89C52單片機和ADC0832組成系統(tǒng)的核心部分,濕度傳感器將采集到的數(shù)據(jù)直接傳送到ADC0832的IN端作為輸入的模擬信號。選用濕度傳感器和AD轉(zhuǎn)換,電路內(nèi)部包含有濕度采集、AD轉(zhuǎn)換、單片機譯碼顯示等功能。單片機需要采集數(shù)據(jù)時,發(fā)出指令啟動A/D轉(zhuǎn)換器工作,ADC0832根據(jù)送來的地址信號選通IN1通道,然后對輸入的模擬信號進行轉(zhuǎn)換,轉(zhuǎn)換結(jié)束時,EOC輸出高電平,通知單片機可以讀取轉(zhuǎn)換結(jié)果,單片機通過調(diào)用中斷程序,讀取轉(zhuǎn)換后的數(shù)據(jù)。最后,單片機把采集到的濕度數(shù)據(jù)經(jīng)過軟件程序處理后送到LCD1602進行顯示。自動澆水系統(tǒng)設(shè)計為智能和手動兩個部分:智能澆水部分是通過單片機程序設(shè)計澆水的上下限值與感應電路送入單片機的土壤濕度值相比較,當?shù)陀谙孪拗禃r,單片機輸出一個信號控制澆水,高于上限值時再由單片機輸出一個信號控制停止?jié)菜?手動部分是由通過關(guān)閉單片機電源,由外圍電路供電進行澆灌
引言 1 選題的目的和意義 隨著社會的進步,人們的生活質(zhì)量越來越高。在家里養(yǎng)養(yǎng)盆花可以陶冶情操,豐富生活。同時盆花可以通過光合作用吸收二氧化碳,凈化室內(nèi)空氣,在有花木的地方空氣中陰離子聚集較多,所以空氣也特別清新,而且許多花木還可以吸收空氣中的有害氣體,因此,養(yǎng)盆花如今被許多人喜愛。 盆花澆水量是否能做到適時適量,是養(yǎng)花成敗的關(guān)鍵。但是,在生活中人們總是會有無暇顧及的時候,比如工作太忙,或者出差、旅游等;ú萆L問題80%以上是由花兒澆灌問題引起的;好不容易種植幾個月的花草,因為澆水不及時,長勢不好,用來美化環(huán)境的花草幾乎成了“雞肋”;不種植吧,家里沒有綠色襯托,感覺沒有生機;保留吧,花草長得不夠旺盛,還影響家庭裝飾效果。雖然市場上有賣盆花自動澆水器,但價格十分昂貴,并且大多只能設(shè)定一個定時澆水的時間,很難做到給盆花自動適時適量澆水。夜有較經(jīng)濟的盆花缺水報警器,可以提醒人們及時的給盆花澆水。可是這種報警器只能報警,澆水還需要人們親自動手。當家里無人時,即使報警也無人澆水,就起不到應有的作用了。因此,我想設(shè)計一種集盆花土壤濕度檢測,自動澆水以及蓄水箱自動供水于一體的盆花自動澆水系統(tǒng)。讓人們無暇顧及時也能得到及時的澆灌。 2 自動澆水器的誕生背景及國內(nèi)外發(fā)展現(xiàn)狀 微噴系統(tǒng)是近幾年利用國內(nèi)外先進技術(shù)組裝的新型灌溉設(shè)施,主要是利用水流通過管道系統(tǒng)以一定速度從特制的噴頭噴出,在空氣中分散成細小的水滴著落在花草植物。作物及周圍的地面上,從而達到及時補充水分的目的。該系統(tǒng)具有用水量少、沖擊力小的灌溉特性,適用于栽培密度大、植被柔軟細嫩的植物。自動澆水器的誕生時隨著人們生活水平的提高和生活節(jié)奏的加快而誕生的一種懶人園藝用品。它把微噴的概念應有家庭盆花澆灌中,通過相應地改進,達到合理給盆花自動澆水的目的。 早在很多年前,國外就已經(jīng)開始普及,國內(nèi)實用的電子類自動澆水器多數(shù)從國外進口的,價格昂貴,但質(zhì)量比較可靠。不過這不太適用于國內(nèi),目前國內(nèi)外比較流行的是玻璃制作的自動澆水器。這種類型的澆水器多數(shù)在我國山西和浙江一帶生產(chǎn)的,價格比較低廉,實用性沒有電子類自動澆水器好。隨著國內(nèi)居民消費水平和生活質(zhì)量的提高,居家園藝市場異;鸨,但是由于生活節(jié)奏加快,種花容易養(yǎng)花難,澆水問題就暴露出來,因此國內(nèi)上加已經(jīng)看到了這種需求潛力。目前這類小居家用品的廠家主要集中在廣東,上海,浙江一帶。現(xiàn)在市場上所出售的自動澆水器主要有電子類自動澆水器和玻璃、陶瓷類自動澆水器。 電子類自動澆水器又叫時控噴淋裝置,系統(tǒng)構(gòu)成為:主機(或者)、主管(可以是花園管也可以是七分之四毫米的微噴淋管)、分水接頭(3通、4通、5通、6通、分水器)、副管(五分之三毫米)噴淋管(霧化噴頭、旋轉(zhuǎn)噴頭、折射霧化噴頭等)。電子類自動澆水器根據(jù)電源的不同分為交流電自動澆水器和電池自動澆水器兩種?刂破鞯囊话阈阅苡校弘姶砰y控制;智能時控電路、微電腦芯片控制;適用電源為AC220V/50Hz;最適水壓0.3-0.6Mpa;待機功率(4VA,澆水時小于12VA);可控制連續(xù)作業(yè)時間試1分鐘至168個小時;可每天自動完成十次以上澆水作業(yè),可每天、隔天、隔多天自動循環(huán)進行澆水,手動自動兩用;每天計時誤差小于正負3秒;電器適應環(huán)境溫度為-10~50攝氏度;相對濕度小于90%RH。 2)玻璃、陶瓷類自動澆水器 玻璃。陶瓷類自動澆水器又叫自動滲水裝置,它由本身材質(zhì)的物理結(jié)構(gòu)構(gòu)成,根據(jù)器具的物理滲水原理完成自動澆灌,當自動澆水器內(nèi)部存水,自身形成一定的壓力,當遇到干燥的土壤,水就會自上而下的流出,當土壤濕潤以后,會形成一個堵塞壓力,從而導致水流速度變慢或者停止。器具工藝不同,效果也不一樣,當然也因土壤的疏松情況決定器具內(nèi)水流的速度。當前傳感器技術(shù)與單片機技術(shù)發(fā)展迅速,其應用逐步由工業(yè)、軍事等領(lǐng)域向其它領(lǐng)域滲透,已經(jīng)和我們的日常生活息息相關(guān)。而且智能家居概念也越來越受到人們的推崇,因此,微電腦控制的電子類自動澆水系統(tǒng)有很好的發(fā)展前景。 3畢業(yè)設(shè)計所采用的研究方法和手段 本次畢業(yè)設(shè)計是設(shè)計一種單片機控制的自動澆水系統(tǒng),實現(xiàn)室內(nèi)盆花澆水的自動化系統(tǒng)。該系統(tǒng)可對土壤的濕度進行監(jiān)控,并對作物進行適時適量的澆水。其核心是單片機和溫濕度采集和顯示電路以及澆水驅(qū)動電路構(gòu)成的檢測控制部分。主要研究土壤濕度與澆水量之間的關(guān)系、澆灌控制技術(shù)及設(shè)備系統(tǒng)的硬件、軟件編程各個部分。檢測部分,單片機選用STC89C52單片機,軟件選用C51語言編程。土壤溫濕度采集于顯示電路可將檢測到的土壤溫濕度模擬量放大轉(zhuǎn)換成數(shù)字量通過單片機內(nèi)程序控制精確的將溫度與濕度分別顯示在LCD顯示屏上,同時把程序發(fā)給另外一塊單片機,通過單片機內(nèi)的中斷服務(wù)程序判斷是否要給盆花澆水,若需澆水,則單片機系統(tǒng)發(fā)出澆水信號,開始澆水,若不需要澆水,則進行下一次循環(huán)檢測。在澆水系統(tǒng)中也同時設(shè)計一個定時澆水部分,通過按鍵開關(guān)設(shè)置不同的澆水時間段,在時間段以內(nèi)時,單片機驅(qū)動澆水系統(tǒng),開始澆水,如不在時間段內(nèi),則不澆水。
目錄 目錄 1 STC89C52 1.1 STC89C52的簡介 1.2 STC89C52單片機的基本組成 1.3 STC89C52主要特性: 1.4 STC89C52的管腳說明 1.5 STC89C52單片機的存儲器 1.6 振蕩電路和時鐘 1.7 STC89C52的中斷系統(tǒng) 1.7.1 中斷系統(tǒng)結(jié)構(gòu)和中斷控制 1.7.2 中斷響應過程 1.8 定時器/計數(shù)器 1.8.1 定時器/計數(shù)器0和1簡介 1.8.2 與定時器/計數(shù)器0和1相關(guān)的特殊功能寄存器 2 LCD1602顯示 2.1 1602LCD的基本參數(shù)及引腳功能 2.2 顯示模塊采用1602液晶顯示接口電路 3 ADC0832 3.1 ADC0832的簡介 3.2 ADC0832引腳圖 3.3.2 ADC靜態(tài)特性 ADC的靜態(tài)特性是指其與時間特性無關(guān)的特性,主要包括以下幾類: 3.3.3 ADC動態(tài)特性 3.3.4 ADC性能測試 3.3.5 常用ADC芯片概述 3.3.6 ADC0832模數(shù)轉(zhuǎn)換原理及主要技術(shù)指標 1.主要特性 2.內(nèi)部結(jié)構(gòu) 3.外部特性(引腳功能) 3.3.7 ADC0832與單片機的接口電路 4 盆花自動澆水系統(tǒng)的設(shè)計 4.1 土壤溫濕度采集與顯示 4.1.1 硬件電路設(shè)計 4.1.2系統(tǒng)軟件設(shè)計 5.2定時器部分 7 致謝 8 參考文獻 9 附錄 附錄A 原理圖
1 STC89C52 1.1 STC89C52的簡介 STC89C52是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器的低電壓,高性能CMOS8位微處理器,俗稱單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的MCS-51指令集合輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ALMEL的STC89C52是一種高效微控制器,STC89C52單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且廉價的方案。 1.2 STC89C52單片機的基本組成  STC89C52由一個8位的微處理器,128KB片內(nèi)數(shù)據(jù)存儲器RAM,21個特殊功能寄存器SFR,3KB片內(nèi)程序存儲器Flash ROM,64KB可尋址片內(nèi)外一編址的ROM,64KB可尋址片外的RAM,4個8位并行I/O接口(P0-P3),一個全雙工通用異步串行接口UART,兩個16位的定時器、計數(shù)器,具有位操作功能的布爾處理機及位尋址功能的五個中斷源、兩個優(yōu)先級的中斷控制系統(tǒng)以及片內(nèi)振蕩器和時鐘產(chǎn)生電路。其基本組成框圖如圖1.1所示。
圖1.1 STC89C52單片機的基本組成 1.3 STC89C52主要特性: - 與MCS-51兼容
- 4K字節(jié)可編程閃爍存儲器
- 壽命:1000寫、擦循環(huán)
- 數(shù)據(jù)保留時間:10年
- 全靜態(tài)工作:0Hz-24Hz
- 三級程序存儲器鎖定
- 128*8位內(nèi)部RAM
- 32可編程I/O線
- 兩個16位定時器、計數(shù)器
- 5個中斷源
- 可編程串行通道
- 低功耗的閑置和掉電模式
- 片內(nèi)振蕩器和時鐘電路
1.4 STC89C52的管腳說明 STC89C52的引腳圖如圖1.2所示。各引腳的具體說明如下: VCC:供電電壓 GND:接地 P0口 :P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P0口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的低八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須接上拉電阻。 P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為低八位地址接收。 P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。 P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。 P3口也可作為STC89C52的一些特殊功能口,如下所示: 各口管腳 備選功能 P3.0 RXD(串行輸入口) P3.1 TXD(串行輸出口) P3.2 /INT0(外部中斷0) P3.3 /INT1(外部中斷1) P3.4 T0(記時器0外部輸入) P3.5 T1(記時器1外部輸入) P3.6 /WR(外部數(shù)據(jù)存儲器寫選通) P3.7 /RD(外部數(shù)據(jù)存儲器讀選通) P3口同時為閃爍編程和編程校驗接收一些控制信號。 RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。 ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。 /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。 /EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出。 圖1.2 STC89C52的引腳圖 1.5 STC89C52單片機的存儲器 在單片機中,存儲器分為程序存儲器ROM和數(shù)據(jù)存儲器RAM,并且兩個存儲器是獨立編址的。 STC89C52單片機芯片內(nèi)配置有8KB(0000H-1FFFH)的Flash程序存儲器和256字(00H-FFH)的數(shù)據(jù)存儲器RAM,根據(jù)需要可外擴到最大64KB的程序存儲器和64KB的數(shù)據(jù)存儲器,因此STC89C52的存儲器結(jié)構(gòu)可分為4個部分:片內(nèi)程序存儲器、片外程序存儲器、片內(nèi)數(shù)據(jù)存儲器和片外程序存儲器。如果以最小系統(tǒng)使用單片機,即不擴展,則STC89C52的存儲器結(jié)構(gòu)就較簡單:只有單片機自身提供的8Flash程序存儲器和256字節(jié)數(shù)據(jù)存儲器RAM。  圖1.3給出了STC89C52單片機的存儲器分布空間。左側(cè)框中為單片機自身提供的8KBFlash程序存儲器和256字節(jié)數(shù)據(jù)存儲器RAM。右側(cè)為可擴展的64KB的程序存儲器ROM和64KB的數(shù)據(jù)存儲器RAM。 圖1.3存儲器空間分布 (1) 程序存儲器 STC89C52單片機出廠時片內(nèi)已帶有8KB的Flash程序存儲器,使用時,引腳/EA要按高電平(5V),這時,復位后CPU從片內(nèi)ROM區(qū)0000H單元開始讀取指令代碼,一直運行到1FFFH單元,如果外部擴展有程序存儲器ROM,則CPU會自動轉(zhuǎn)移到片外ROM空間2000H-FFFH讀取指令代碼。 (2) 數(shù)據(jù)存儲器 STC89C52單片機出廠時片內(nèi)已帶有256字節(jié)的數(shù)據(jù)存儲器RAM,如果不夠用,可以在片外擴展,最多可擴展64KB RAM. 單片機自帶的數(shù)據(jù)存儲器RAM結(jié)構(gòu)如圖2-4所示,此字節(jié)單元(00H-FFH)的低128字節(jié)(00H-7FH)單元為用戶使用區(qū),高128字節(jié)(80H-FFH)單元為特殊功能寄存器SFR區(qū)。 片內(nèi)數(shù)據(jù)存儲器的00H-7FH單元又劃分為3塊:00H-1FH塊是工作寄存器所用;20-2FH塊是位尋址功能的單元區(qū);30H-3FH是普通RAM區(qū)。工作寄存器又分為4組,在當前的運行程序中只有一組是被激活的,誰被激活有程序狀態(tài)寄存器PEW的RS1,RS0兩位決定。 1.6 振蕩電路和時鐘 在STC89C52芯片內(nèi)部,有一個振蕩電路和時鐘發(fā)生器,引腳XTAL1和XTAL2之間接入晶體振蕩器和電容后構(gòu)成內(nèi)部時鐘方式。也可以使用外部振蕩器,由外部振蕩器產(chǎn)生的信號直接加載到振蕩器的輸入端,作為CPU的時鐘源,稱為外部時鐘方式。采用外部時鐘方式時,外部振蕩器的輸出信號接至XTAL1,XTAL2懸空。兩種方式的電路連接圖1.6所示。大多數(shù)的單片機采用內(nèi)部時鐘方式,本次設(shè)計亦然。 在STC89C52單片機內(nèi)部,引腳XTAL2和引腳XTAL1連接著一個高增益反相放大器,XTAL1引腳是反相放大器的輸入端,XTAL2引腳是反相放大器的輸出端。 芯片內(nèi)部的時鐘發(fā)生器是一個二分頻觸發(fā)器,振蕩器的輸出fosc為其輸入,輸出為兩相時鐘信號(狀態(tài)時鐘信號),頻率為振蕩器輸出信號頻率fosc的二分之一。狀態(tài)時鐘經(jīng)三分頻后為低字節(jié)地址鎖存信號ALE,頻率為振蕩器輸出信號頻率fosc的六分之一,經(jīng)六分頻后為機器周期信號,頻率為fosc/12。C1,C2一般取20-30pF的陶瓷電容器。 圖1.4 STC89C52振蕩器的連接方式 1.7 STC89C52的中斷系統(tǒng) 為了提高系統(tǒng)的工作效率,STC89C52單片機設(shè)置了中斷系統(tǒng),采用中斷方式與外設(shè)進行數(shù)據(jù)傳送。所謂“中斷”,是指單片機在執(zhí)行某一段程序的過程中,由于某種原因(如異常情況或特殊請求),單片機暫時中止正在執(zhí)行的程序,而去執(zhí)行相應的處理程序,待處理結(jié)束后,再返回到被打斷的程序除,繼續(xù)執(zhí)行原程序的過程。 1.7.1 中斷系統(tǒng)結(jié)構(gòu)和中斷控制 STC89C52有六個固定的可屏蔽中斷源,分別是三個片內(nèi)定時器/計數(shù)器溢出中斷TF0、TF1和TF2,兩個外部中斷/INT0(P3.2)和/INT1(P3.3),一個片內(nèi)串行口中斷T1或RI。6個中斷源有兩個中斷優(yōu)先級,可形成中斷嵌套。它們在程序存儲器中各有固定的中斷入口地址,由此進入相應的中斷服務(wù)程序。 引起6個中斷源的符號、名稱及產(chǎn)生的條件如下: /INT0:外部中斷0,由P3.2端口線引入,低電平或下降沿引起; /INT1:外部中斷1,由P3.3端口線引入,低電平或下降沿引起; T0:定時器/計數(shù)器0中斷,由T0記滿回零引起; T1 :定時器/計數(shù)器1中斷,由T1記滿回零引起; T1/RI:串行口I/O中斷,串行口完成一幀字符發(fā)送/接收后引起中斷; T2:定時器/計數(shù)器2中斷,由T2記滿回零引起。 在本次設(shè)計中采用了定時器/計數(shù)器0中斷,它的中斷控制寄存器包括定時器/計數(shù)器0、1控制寄存器TCON和中斷允許控制寄存器IE。 TCON是定時器/計數(shù)器和外部中斷兩者合用的一個可尋址的特殊功能寄存器,它的格式如下: 各控制位定義如下: TF1:定時器/計數(shù)器1溢出中斷請求標志位。當定時器/計數(shù)器1計數(shù)產(chǎn)生溢出時,由內(nèi)部硬件置位TF1,向CPU響應中斷并轉(zhuǎn)向該中斷服務(wù)程序執(zhí)行時,由硬件內(nèi)部自動TF1清0。 TR1:定時器/計數(shù)器1啟動/停止位。由軟件置位/復位控制位/計數(shù)器1的啟動或停止計數(shù)。 TF0:定時器/計數(shù)器0溢出中斷請求標志位。當定時器/計數(shù)器0計數(shù)產(chǎn)生溢出時,由內(nèi)部硬件置位TF0,向CPU響應中斷并轉(zhuǎn)向該中斷服務(wù)程序執(zhí)行時,由硬件內(nèi)部自動TF1清0. TR0:定時器/計數(shù)器0啟動/停止位。由軟件置位/復位控制定時器/計數(shù)器0的啟動或停止計數(shù)。 IE1:外部中斷請求標志位。當CPU檢測到INT0低電平或下降沿且IT1=1時,由內(nèi)部硬件置位IE1標志位(IE=1)向CPU請求中斷,當CPU響應中斷并轉(zhuǎn)向該中斷服務(wù)程序執(zhí)行時,由硬件內(nèi)部將IE1清0。 IE0:外部中斷請求標志位。當CPU檢測到INT0低電平或下降沿且IT0=1時,由內(nèi)部硬件置位IE0標志位(IE0=1)向CPU請求中斷,當CPU響應中斷并轉(zhuǎn)向該中斷服務(wù)程序執(zhí)行時,由硬件內(nèi)部將TE0清0。 IT1:用軟件置位/復位IT1來選擇外部中斷INT1是下降沿觸發(fā)還是電平觸發(fā)中斷請求。當IT1置1時,則外部中斷INT1為下降沿觸發(fā)中斷請求,即INT1端口由前一個機器周期的高電平跳變?yōu)橄乱粋機器周期的低電平,則觸發(fā)中斷請求;當IT1復位清0,則INT1的低電平觸發(fā)中斷請求。 IT0:由軟件置位/復位IT0來選擇外部中斷INT0是下降沿觸發(fā)還是低電平觸發(fā)中斷請求,其控制原理同IT1。 中斷允許控制寄存器IE的格式如下: 各控制定義如下: EA:中斷總控制位,EA=1。CPU開中斷,它是CPU是否響應中斷的前提,在此前提下,如果某中斷源的中斷允許置位1,才能響應應該中斷源的中斷請求。如果EA=0,無論哪個中斷源有請求,CPU都不予回應。 ET2:定時器/計數(shù)器T2中斷控制位,ET2=1,允許T2計數(shù)溢出中斷;ET=2,禁止T2中斷。 ES:串行口中斷控制位,ES=1,允許串行口發(fā)送/接受中斷;ES=0禁止串行口中斷。 ET1:定時器/計數(shù)器T1中斷控制位,ET1=1,允許T1計數(shù)溢出中斷;ET1=0,禁止T1中斷。 EX1:外部中斷1控制位,EX1=1,允許中斷;EX=0,禁止外部中斷1中斷。 ET0:定時器/計數(shù)器T0中斷控制位,ET0=1,允許T0計數(shù)溢出中斷;ET0=0,禁止T0中斷。 EX0:外部中斷0控制位,EX0=1,允許中斷;EX0=0,禁止外部中斷0中斷。 1.7.2 中斷響應過程 CPU中斷處理從響應中斷、控制程序轉(zhuǎn)向?qū)闹袛嗍噶康刂啡肟谔巿?zhí)行中斷服務(wù)程序,到執(zhí)行返回(RET1)指令為止。中斷響應可分為以下幾個步驟: (1)保護斷點,即保存下一個將要執(zhí)行的指令的地址,把這個地址送入堆棧。 (2)尋找中斷入口,根據(jù)6個不同的中斷源所產(chǎn)生的中斷,中斷系統(tǒng)必須能夠正確地識別中斷源,查找6個不同的入口地址。以上工作是由單片機自動完成的,與編程者無關(guān)。在6個入口地址處存放有中斷處理程序。 (4)中斷返回:執(zhí)行完中斷指令后,從中斷處返回到朱程序,繼續(xù)執(zhí)行。 1.8 定時器/計數(shù)器 STC89C52單片機內(nèi)部設(shè)有兩個16位可編程定時器/計數(shù)器,即定時器/計數(shù)器0和定時器/計數(shù)器1。除此之外還有一個可編程定時器/計數(shù)器2。 1.8.1 定時器/計數(shù)器0和1簡介 定時器/計數(shù)器0和1內(nèi)部有一個計數(shù)寄存器(THx和TLx),它實際上是一個累加寄存器加1計數(shù)。定時器和計數(shù)器共用這個寄存器,但定時器/計數(shù)器同一時刻只能工作在其中一種方式下,不可能既工作在定時器方式,同時又工作在計數(shù)器方式。這兩個工作方式的根本區(qū)別是在于計數(shù)脈沖的來源不同。工作在定時器方式時,對振蕩器12分頻的脈沖計數(shù),即每過一個機器周期(1個機器周期在時間上和12個振蕩周期的時間相等),計數(shù)寄存器中的值就加1。工作在計數(shù)器方式時,計數(shù)器不是來自內(nèi)部的機器周期,而是來自外部輸入。對定時器/計數(shù)器0、定時器/計數(shù)器1,計數(shù)脈沖分別來自T0、T1引腳。當這些引腳上輸入的信號產(chǎn)生高電平至低電平的負跳變時,計數(shù)器寄存器的值就加1。單片機每個機器周期都要對對外部輸入進行采樣,如果在第一個周期,即第三個機器周期計數(shù)寄存器的值才增加1。 1.8.2 與定時器/計數(shù)器0和1相關(guān)的特殊功能寄存器 (1)計數(shù)器寄存器TH0、TL0和TH1、TL1 計數(shù)寄存器是16位的,再啟動定時器時需要對它設(shè)定初始值。THx是計數(shù)器寄存器的高8位,THx是計數(shù)寄存器的低8位。TH0、TL0對應T/C0,TH1,TL1對應T/C1。 - 定時器/計數(shù)器控制寄存器TCON的格式如下:
TF1為T/C1的溢出標志,溢出時由硬件置1,進入中斷后又由硬件自動清0。 TR1為T/C1的啟動和停止位,由軟件控制。置1時啟動T/C1;清0時停止T/C1。 TF0和TR0的功能和使用方法以TF1、TR1類似,只是它們針對的是T/C0. (3)定時器/計數(shù)器方式控制寄存器TMOD 定時器/計數(shù)器方式控制寄存器TMOD的格式如下所示。它的控制位都是由軟件控制的,其中高4位是針對T/C1的,低4位是針對T/C0的,其功能和使用方法相似。 現(xiàn)在以T/C0來說明各控制位的使用方法:GATE是一個選通位,當GATE位置1時,T/C0受到雙重控制,只有/INT0為高電平且TR0位置1是T/C0才開始工作,當GATE位清0時,T/C0僅受到TR0的控制。C//T用來選擇工作在定時器方式還是計數(shù)器方式。當該位置1時工作在計數(shù)器方式,清0時工作在定時器方式。M1和M0聯(lián)合起來用于選擇操作模式,一共有四種操作模式,如表所示。
表1.1 定時器/計數(shù)器的四種模式 | | | | | | | | | | | | | | | | | | | T0分為兩個8位計數(shù)器,T1停止計數(shù) |
2 LCD1602顯示 2.1 1602LCD的基本參數(shù)及引腳功能 1602LCD分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應用中并無差別,兩者尺寸差別如圖16所示。 圖16 LM016L結(jié)構(gòu)圖 LCD1602主要技術(shù)參數(shù): 容量:16×2個字符 芯片工作電壓:4.5—5.5V 工作電流:2.0mA(5.0V) 模塊最佳工作電壓:5.0V 字符尺寸:2.95×4.35(W×H)mm 引腳功能說明: 1602LCD采用標準的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表1所示: 表7引腳接口說明表
第1腳:VSS為地電源。 第2腳:VDD接5V正電源。 第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度。 第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。 第5腳:R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當RS和R/W共同為低電平時可以寫入指令或者顯示地址,當RS為低電平R/W為高電平時可以讀忙信號,當RS為高電平R/W為低電平時可以寫入數(shù)據(jù)。 第6腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。 第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。 第15腳:背光源正極。 第16腳:背光源負極。 2.2 顯示模塊采用1602液晶顯示接口電路 圖17 1602液晶顯示接口
3 ADC0832 3.1 ADC0832的簡介 ADC0832其實就是美國國家半導體公司生產(chǎn)的CMOS工藝8通道,8位逐次逼近式A/D模數(shù)轉(zhuǎn)換器。其內(nèi)部有一個8通道多路開關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號,只選通8路模擬輸入信號中的一個進行A/D轉(zhuǎn)換。是目前國內(nèi)應用最廣泛的8位通用A/D芯片。 3.2 ADC0832引腳圖 3.3.2 ADC靜態(tài)特性 ADC的靜態(tài)特性是指其與時間特性無關(guān)的特性,主要包括以下幾類: 1) 分辨率 ADC的分辨率定位為二進制末位變化1所需的最小輸入電壓與參考電壓的比值,即ADC能夠分辨的最小的模擬量的變化。 2) 量化誤差 量化電平定義為滿量程電壓(或滿度信號值)UFSR與2的N次冪的比值,其中N位被數(shù)字化的數(shù)字信號的二進制位數(shù)。量化電平一般用Q表示。 3) 全輸入范圍和動態(tài)范圍 全輸入范圍是指允許輸入模擬信號的最大值與最小值之差;動態(tài)范圍是指全輸入范圍與ADC最小可分辨的量值之比。 4) 偏置誤差和增益誤差 ADC的偏置誤差定義為使最低位被置成“1”狀態(tài)時ADC的輸入電壓與理論上使最低位被置成“1”狀態(tài)時的輸入電壓之差。當偏置誤差高速為零之后,輸出為全1時對應的實際輸入電壓與理想輸入電壓之差。
3.3.3 ADC動態(tài)特性 高速ADC的動態(tài)特性是指輸入為交變簡諧信號時的性能技術(shù)指標,它是與ADC的操作速度有關(guān)的特性。其主要技術(shù)指標如下: 1) 轉(zhuǎn)換時間、采集時間 轉(zhuǎn)換時間是指從信號開始轉(zhuǎn)換到可獲得完整的信號輸出所用的時間,它是高速ADC的一項重要指標。 采集時間是指采樣保持電路在采樣模式下能夠保證其在隨之到來的保持模式輸出在采樣保持轉(zhuǎn)換時,相對該時刻存在的輸入電平之間的誤差將會限制在一定的誤差范圍內(nèi)所需的時間。 2) 頻率響應 它是沖擊響應的傅立葉變換,其最佳表達方式是幅頻與相頻曲線,從系統(tǒng)辨識的角度看這是在頻域?qū)DC動態(tài)線性特性的非參數(shù)模型描述。 3) 動態(tài)積分非線性誤差和動態(tài)微分非線性誤差 動態(tài)積分非線性誤差(INL)定義為在動態(tài)情況下(一般輸入信號為正弦信號),ADC實際轉(zhuǎn)換特性曲線之間的最大偏差。每個數(shù)碼的偏差都是由那個數(shù)碼的中心值來度量的。 動態(tài)微分非線性誤差(DNL)定義為在動態(tài)情況下(一般輸入信號為正弦信號),ADC實際轉(zhuǎn)換特性的碼寬(1LSB)與理想代碼寬度之間的最大偏差,單位為LSB。為了保證ADC不失碼,通常規(guī)定在25oC時最大DNL為 1/2LSB。 4) 信噪比、信噪失真比和有效位數(shù) 信噪比(SNR)是信號電平的有效值與各種噪聲(包括量化噪聲、熱噪聲、白噪聲等)有效值之比的分貝數(shù)。其中信號是指基波分量的有效值,噪聲指奈奎斯特頻率以下的全部非基波分量的有效值(除諧波分量和直流分量外)。 5) 小信號帶寬和全功率帶寬 ADC的模擬帶寬是指輸入掃描頻率基波在ADC輸出端用FFT分析得到的基波頻譜下降到3dB處的帶寬(不考慮諧波失真和噪聲影響)。根據(jù)輸入信號幅值不同,模擬帶寬又可以分為小信號帶寬(SSBW,一般指1/10滿量程)和全功率帶寬(FPBW,指滿量程)。 3.3.4 ADC性能測試 ADC測試方法主要有兩種:模擬方法和數(shù)字方法。前者是將A/D采集的數(shù)字信號經(jīng)D/A轉(zhuǎn)換位模擬信號再用傳統(tǒng)的測試方法對其進行測試,優(yōu)點是易于理解,缺點是許多A/D采集卡本身不帶D/A,即或有,D/A的性能也將影響A/D指標的測試; 3.3.5 常用ADC芯片概述 A/D轉(zhuǎn)換器是用來通過一定的電路將模擬量轉(zhuǎn)變?yōu)閿?shù)字量。模擬量可以是電壓、電流等電信號,也可以是壓力、溫度、濕度、位移、聲音等非電信號。但在A/D轉(zhuǎn)換前,輸入到A/D轉(zhuǎn)換器的輸入信號必須經(jīng)各種傳感器把各種物理量轉(zhuǎn)換成電壓信號。 3.3.6 ADC0832模數(shù)轉(zhuǎn)換原理及主要技術(shù)指標 ADC0832是M美國國家半導體公司生產(chǎn)的CMOS工藝8通道,8位逐次逼近式A/D轉(zhuǎn)換器。其內(nèi)部有一個8通道多路開關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號,只選通8路模擬輸入信號中的一個進行A/D轉(zhuǎn)換。是目前國內(nèi)應用最廣泛的8位通用A/D芯片 1.主要特性 1)8路輸入通道,8位A/D轉(zhuǎn)換器,即分辨率為8位。 2)具有轉(zhuǎn)換起停控制端。 3)轉(zhuǎn)換時間為100μs(時鐘為640kHz時),130μs(時鐘為500kHz時) 4)單個+5V電源供電 5)模擬輸入電壓范圍0~+5V,不需零點和滿刻度校準。 6)工作溫度范圍為-40~+85攝氏度 7)低功耗,約15mW。 2.內(nèi)部結(jié)構(gòu) ADC0832是CMOS單片型逐次逼近式A/D轉(zhuǎn)換器,它由8路模擬開關(guān)、地址鎖存與譯碼器、比較器、8位開關(guān)樹型A/D轉(zhuǎn)換器、逐次逼近。 3.外部特性(引腳功能) ADC0832芯片有28條引腳,采用雙列直插式封裝。下面說明各引腳功能。 IN0~IN7:8路模擬量輸入端。 2-1~2-8:8位數(shù)字量輸出端。 ADDA、ADDB、ADDC:3位地址輸入線,用于選通8路模擬輸入中的一路 ALE:地址鎖存允許信號,輸入,高電平有效。 START: A/D轉(zhuǎn)換啟動脈沖輸入端,輸入一個正脈沖(至少100ns寬)使其啟動(脈沖上升沿使0809復位,下降沿啟動A/D轉(zhuǎn)換)。 EOC: A/D轉(zhuǎn)換結(jié)束信號,輸出,當A/D轉(zhuǎn)換結(jié)束時,此端輸出一個高電平(轉(zhuǎn)換期間一直為低電平)。 OE:數(shù)據(jù)輸出允許信號,輸入,高電平有效。當A/D轉(zhuǎn)換結(jié)束時,此端輸入一個高電平,才能打開輸出三態(tài)門,輸出數(shù)字量。 CLK:時鐘脈沖輸入端。要求時鐘頻率不高于640KHZ。 REF(+)、REF(-):基準電壓。 Vcc:電源,單一+5V。 GND:地。 4.ADC0832的工作過程 首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復位。下降沿啟動 A/D轉(zhuǎn)換,之后EOC輸出信號變低,指示轉(zhuǎn)換正在進行。直到A/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖,指示A/D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個信號可用作中斷申請。當OE輸入高電平 時,輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。 轉(zhuǎn)換數(shù)據(jù)的傳送 A/D轉(zhuǎn)換后得到的數(shù)據(jù)應及時傳送給單片機進行處理。數(shù)據(jù)傳送的關(guān)鍵問題是如何確認A/D轉(zhuǎn)換的完成,因為只有確認完成后,才能進行傳送。為此可采用下述三種方式。 (1)定時傳送方式 對于一種A/D轉(zhuǎn)換其來說,轉(zhuǎn)換時間作為一項技術(shù)指標是已知的和固定的。例如ADC0832轉(zhuǎn)換時間為128μs,相當于6MHz的MCS-51單片機共64個機器周期?蓳(jù)此設(shè)計一個延時子程序,A/D轉(zhuǎn)換啟動后即調(diào)用此子程序,延遲時間一到,轉(zhuǎn)換肯定已經(jīng)完成了,接著就可進行數(shù)據(jù)傳送。 (2)查詢方式 A/D轉(zhuǎn)換芯片由表明轉(zhuǎn)換完成的狀態(tài)信號,例如ADC0832的EOC端。因此可以用查詢方式,測試EOC的狀態(tài),即可確認轉(zhuǎn)換是否完成,并接著進行數(shù)據(jù)傳送。 (3)中斷方式 把表明轉(zhuǎn)換完成的狀態(tài)信號(EOC)作為中斷請求信號,以中斷方式進行數(shù)據(jù)傳送。 不管使用上述哪種方式,只要一旦確定轉(zhuǎn)換完成,即可通過指令進行數(shù)據(jù)傳送。首先送出口地址并以信號有效時,OE信號即有效,把轉(zhuǎn)換數(shù)據(jù)送上數(shù)據(jù)總線,供單片機接受。 3.3.7 ADC0832與單片機的接口電路 ADC0832模數(shù)轉(zhuǎn)換器與STC89C52單片機的接口電路如圖9所示
圖9 ADC0832與STC89C52單片機接口電路 4 盆花自動澆水系統(tǒng)的設(shè)計 該系統(tǒng)包括土壤干濕度采集與顯示系統(tǒng)和定時器的設(shè)置與顯示系統(tǒng)兩個系統(tǒng)。
4.1 土壤溫濕度采集與顯示
土壤溫濕度采集與顯示系統(tǒng)以單片機STC89C52為控制核心,通過軟件設(shè)置達到具體動作實現(xiàn)。土壤的溫濕度是由ADC0832和兩個點位器進行模擬并送入單片機,通過單片機的I/O口把檢測到的土壤溫濕度值用LCD顯示出來。同時,如果系統(tǒng)在智能澆水設(shè)置情況下,則該值與設(shè)定的澆水上下限值相比較,若低于下限值,則單片機發(fā)出一個控制信號,開始澆水。若高于上限值時,單片機再發(fā)出一個控制信號控制,停止?jié)菜H绻到y(tǒng)設(shè)置在手動澆水情況下,則按照設(shè)定好的定時澆水時間進行澆水,溫濕度檢測電路把檢測到的土壤溫濕度值顯示在LCD上,以達到對土壤溫濕度實時監(jiān)測的目的。
4.1.1 硬件電路設(shè)計 土壤溫濕度檢測與控制系統(tǒng)由STC89C52單片機、ADC0832、電位器、LCD顯示屏、電阻等組成。 對于LCD顯示屏將D0-D7通過排阻RESPACK8連接到單片機的P0.0-P0.7上,E、R/W、RS與P3.7、P3.6、P3.5連接。
5.2定時器部分
定時器部分以單片機STC89C52為控制核心,通過軟件設(shè)置達到具體動作實現(xiàn)。通過按鍵開關(guān)對當前時間以及定時澆水時間進行設(shè)置,共陰數(shù)碼管顯示,當時間處在所設(shè)置的澆水時間內(nèi)時,單片機發(fā)出控制信號,開始澆水。否則,停止?jié)菜?/div>
6.總結(jié) 本次設(shè)計的盆花自動澆水系統(tǒng)以電子類的自動澆花器的工作原理為參考,運用溫濕度采集電路及單片機控制技術(shù)構(gòu)成一個土壤溫濕度采集與控制系統(tǒng)。再用數(shù)字電路控制自動給水系統(tǒng)及時的澆水系統(tǒng)供水。整個盆花自動澆水系統(tǒng)包括土壤溫濕度的采集和顯示、計數(shù)器的設(shè)置與顯示兩個個部分。土壤溫濕度的采集和顯示以ADC0832配合兩個電位器為感應電路,將檢測到的土壤溫濕度值送入STC89C52單片機,再由單片機的I/O口輸出到LCD液晶顯示屏進行顯。同時此濕度值也是是否給盆花澆水的參考值。它設(shè)計為智能和手動兩個部分:智能澆水系統(tǒng)是通過單片機程序設(shè)定澆水的上下限值并與溫濕度采集電路送入單片機的土壤濕度值相比較,當傳感器檢測到的濕度值低于設(shè)定的下限值時,單片機輸出一個信號,開始澆水,高于設(shè)定的上限值時再由單片機輸出一個信號,停止?jié)菜;手動部分是由單片機從數(shù)碼管讀入月份與每天的實時時刻,通過軟件程序設(shè)定定時澆水的時間。通過按鍵開關(guān)對當前時間以及定時澆水時間進行設(shè)置,共陰數(shù)碼管顯示,當時間處在所設(shè)置的澆水時間內(nèi)時,單片機發(fā)出控制信號,開始澆水。否則,停止?jié)菜?/div> 過本次畢業(yè)設(shè)計,讓我進一步熟悉了一些元器件的功能和屬性。也使我真正接觸到了控制系統(tǒng)的設(shè)計,雖然是一個人們?nèi)粘I畹男∠到y(tǒng),但也讓我明白了很多設(shè)計上應該注意的問題。比如實用性。經(jīng)濟性以及安裝條件等。
7 致謝 本畢業(yè)論文是在我的導師xx老師的親切關(guān)懷和悉心指導下完成的。她嚴肅的科學態(tài)度,嚴謹?shù)闹螌W精神,精益求精的工作作風,深深地感染和激勵著我。從課題的選擇到項目的最終完成,朱亞莉等老師都始終給予我細心的指導和不懈的支持。在課題的整個研究工作期間,我曾遇到不少的困難和挫折,是他們給予我的幫助和鼓勵,讓我重新獲得了繼續(xù)前進的勇氣和信心,在此期間,他們對我的論文提出了許多寶貴的修改意見,從而進一步增強了本論文的可讀性和嚴密性。在此謹向朱老師致以衷心的感謝和深深的敬意! 在此,我還要感謝在一起愉快的工作的各位同組人員,正是由于他們的幫助和支持團結(jié)配合克服一個一個的困難和疑惑,直至本文的順利完成。 在論文即將完成之際,我的心情無法平靜,從開始進入課題到論文的順利完成,有多少可敬的師長、同學、朋友給了我無言的幫助,在這里請接受我誠摯的謝意! 感謝我的同學、我的室友,在大學四年里,他們給我許多的關(guān)心和幫助,伴我度過許多快樂時光。和他們在一起度過的日子永遠值得回味。 感謝各級領(lǐng)導對我的教育培養(yǎng)。他們細心指導我的學習與研究,在此,我要向諸位老師深深地鞠上一躬。 |