版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> XXX大學(xué) </p><p><b> 本科生畢業(yè)論文</b></p><p><b> 目 錄</b></p><p> 1 自動澆花器的研究現(xiàn)狀2</p><p> 2 系統(tǒng)設(shè)計的研究方法和手段2</p><p>
2、 3 系統(tǒng)硬件簡介2</p><p> 3.1 單片機的最小化系統(tǒng)2</p><p> 3.1.1 AT89C51單片機的基本組成3</p><p> 3.1.2 AT89C51單片機的存儲器3</p><p> 3.1.3 振蕩電路和時鐘4</p><p> 3.2 LCD1602簡介5&l
3、t;/p><p> 3.2.1 LCD1602的基本參數(shù)及引腳功能5</p><p> 3.3 ADC0832的簡介7</p><p> 3.3.1 ADC靜態(tài)特性8</p><p> 3.3.2 ADC動態(tài)特性8</p><p> 3.3.3 ADC性能測試9</p><p&
4、gt; 3.3.4 常用ADC芯片概述9</p><p> 3.3.5 ADC0832模數(shù)轉(zhuǎn)換原理及主要技術(shù)指標(biāo)10</p><p> 3.3.6 主要特性10</p><p> 3.3.7 內(nèi)部結(jié)構(gòu)10</p><p> 3.3.8 外部特性(引腳功能)10</p><p> 3.3.9 AD
5、C0832的工作過程11</p><p> 3.3.10 ADC0832與單片機的接口電路11</p><p> 3.4 土壤濕度檢測模塊12</p><p> 3.4.1 比較器LM39313</p><p> 3.4.1.1 LM393主要特點:13</p><p> 3.4.1.2 LM393
6、引腳圖及內(nèi)部框圖13</p><p> 3.5 報警及電機驅(qū)動15</p><p><b> 4軟件設(shè)計15</b></p><p> 4.1 主程序流程圖15</p><p> 4.2顯示模塊18</p><p> 4.3 AD轉(zhuǎn)換模塊19</p><p
7、> 4.4濕度檢測模塊20</p><p><b> 5. 結(jié)論21</b></p><p><b> 謝 辭24</b></p><p> 附錄1 原理圖25</p><p> 附錄2 參考程序26</p><p><b> 自動
8、澆花系統(tǒng)的設(shè)計</b></p><p> xxx 指導(dǎo)老師:xxx</p><p> 摘要:本設(shè)計是基于AT89C51單片機和ADC0832的自動澆花系統(tǒng)。本設(shè)計的電路內(nèi)部包含濕度采集和AD轉(zhuǎn)換等主要功能。自動澆水系統(tǒng)設(shè)計的澆水部分是通過單片機程序設(shè)計澆水的上下限值與感應(yīng)電路送入單片機的土壤濕度值相比較,當(dāng)?shù)陀谙孪拗禃r,單片機輸出一個信號控制澆水,高于上限值時再由單片
9、機輸出一個信號控制停止?jié)菜?。這樣可以幫助人們及時地給心愛的盆花澆水。</p><p> 關(guān)鍵詞:AT89C51;濕度的采集與顯示; LED</p><p> Design of potted flowerss automatic watering system</p><p> xxxxxxxxx Tutor:xxxxxx</p><p&
10、gt; Abstract:This design is the automatic watering system AT89C51 based on MCU and ADC0832. The design of the circuit contains the main functions of humidity acquisition and AD conversion. Watering part of automatic wat
11、ering system design is through the upper and lower limits of microcontroller programming watering value and induction circuit into MCU soil moisture compared to the values, when the lower limit value, the output of the s
12、ingle chip a signal to control the watering, above the upper limi</p><p> Key words: AT89C51 ; Humidity acquisition and display ; LED</p><p> 1 自動澆花器的研究現(xiàn)狀</p><p> 現(xiàn)如今人們的生活質(zhì)量不斷提高
13、。人們都喜歡在家里養(yǎng)養(yǎng)盆花,這樣可以陶冶人們的情操,豐富人們的生活。同時盆花可以通過光合作用吸收二氧化碳,凈化室內(nèi)空氣,在有花木的地方空氣中陰離子聚集較多,所以空氣也特別清新,而且許多花木還可以吸收空氣中的有害氣體,因此,養(yǎng)盆花如今被許多人喜愛。</p><p> 給盆花澆水是否能做到適時及適量,是養(yǎng)花成敗與否的關(guān)鍵。但是,在生活中人們總是會有沒時間照顧的時候,比如工作學(xué)習(xí)太忙,旅游或者出差等?;ú萆L的問題大
14、多數(shù)以上是由花兒澆灌不及時引起的;好不容易種植很長時間的花草,因為澆水不及時或者長勢不好,用來美化室內(nèi)環(huán)境的花草幾乎成了“擺設(shè)”。因此,我想設(shè)計一種可以給盆花土壤濕度進(jìn)行檢測,并且自動澆水的盆花自動澆水系統(tǒng)。</p><p> 2 系統(tǒng)設(shè)計的研究方法和手段</p><p> 本次畢業(yè)設(shè)計是設(shè)計一種單片機控制的自動澆水系統(tǒng),它可以實現(xiàn)室內(nèi)盆花澆水的自動化系統(tǒng)。該系統(tǒng)可對土壤的濕度進(jìn)行實時
15、監(jiān)控,并對盆花進(jìn)行適時適量的澆水。其核心是單片機、濕度采集、顯示電路以及澆水驅(qū)動電路構(gòu)成的檢測以及控制部分。主要研究土壤濕度與澆水量之間的關(guān)系、澆灌控制技術(shù)及設(shè)備系統(tǒng)的硬件、軟件編程各個部分。該設(shè)計的檢測部分單片機選用AT89C51單片機,軟件部分選用C51語言編程。土壤濕度采集于顯示電路可將檢測到的土壤濕度模擬量放大轉(zhuǎn)換成數(shù)字量并且通過單片機內(nèi)程序控制精確的將濕度分顯示在LCD顯示屏上,通過單片機內(nèi)的程序判斷是否要給盆花澆水,如果需要
16、澆水,則單片機系統(tǒng)就會發(fā)出澆水信號,帶動水泵開始澆水,若不需要澆水,則進(jìn)行下一次循環(huán)檢測。</p><p><b> 3 系統(tǒng)硬件簡介</b></p><p> 3.1 單片機的最小化系統(tǒng)</p><p> AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器的低電壓,高性能CMOS8位微處理器,俗稱單片機。單片機的可擦除只讀存儲器可
17、以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集合輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ALMEL的AT89C51是一種高效微控制器,AT89C51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價格低廉的方案。</p><p> 3.1.1 AT89C51單片機的基本組成</p><p> AT89C5
18、1由一個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)生電路。其基本組成框圖如圖3-1-1所示。</
19、p><p> 圖3-1-1 AT89C51單片機的基本組成</p><p> 3.1.2 AT89C51單片機的存儲器</p><p> 在單片機中,存儲器分為程序存儲器ROM和數(shù)據(jù)存儲器RAM,并且兩個存儲器是獨立編址的。</p><p> AT89C51單片機芯片內(nèi)配置有8KB(0000H-1FFFH)的Flash程序存儲器和256字
20、(00H-FFH)的數(shù)據(jù)存儲器RAM,根據(jù)需要可外擴(kuò)到最大64KB的程序存儲器和64KB的數(shù)據(jù)存儲器,因此AT89C51的存儲器結(jié)構(gòu)可分為4個部分:片內(nèi)程序存儲器、片外程序存儲器、片內(nèi)數(shù)據(jù)存儲器和片外程序存儲器。</p><p> 下圖給出了AT89C51單片機的存儲器分布空間。左側(cè)框中為單片機自身提供的8KBFlash程序存儲器和256字節(jié)數(shù)據(jù)存儲器RAM。右側(cè)為可擴(kuò)展的64KB的程序存儲器ROM和64KB的
21、數(shù)據(jù)存儲器RAM。</p><p> 圖3-1-2 存儲器空間分布</p><p> ?。?)程序存儲器 </p><p> AT89C51的程序存儲器由ROM構(gòu)成,切斷電源后程序是不會丟失的,它的作用是存儲好編寫好的程序中所用的常數(shù),最大容量有64KB。</p><p><b> ?。?) 數(shù)據(jù)存儲器</b>&l
22、t;/p><p> 它的作用是用來存放數(shù)據(jù),運算中間結(jié)果,和帶調(diào)試的程序等等。</p><p> 單片機自帶的數(shù)據(jù)存儲器RAM結(jié)構(gòu)如圖2-4所示,此字節(jié)單元(00H-FFH)的低128字節(jié)(00H-7FH)單元為用戶使用區(qū),高128字節(jié)(80H-FFH)單元為特殊功能寄存器SFR區(qū)。</p><p> 片內(nèi)數(shù)據(jù)存儲器的00H-7FH單元又劃分為3塊:00H-1FH
23、塊是工作寄存器所用;20-2FH塊是位尋址功能的單元區(qū);30H-3FH是普通RAM區(qū)。工作寄存器又分為4組,在當(dāng)前的運行程序中只有一組是被激活的,誰被激活有程序狀態(tài)寄存器PEW的RS1,RS0兩位決定。</p><p> 3.1.3 振蕩電路和時鐘</p><p> 在AT89C51芯片內(nèi)部,有一個振蕩電路和時鐘發(fā)生器,引腳XTAL1和XTAL2之間接入晶體振蕩器和電容后構(gòu)成內(nèi)部時鐘方
24、式。也可以使用外部振蕩器,由外部振蕩器產(chǎn)生的信號直接加載到振蕩器的輸入端,作為CPU的時鐘源,稱為外部時鐘方式。采用外部時鐘方式時,外部振蕩器的輸出信號接至XTAL1,XTAL2懸空。兩種方式的電路連接圖1.6所示。大多數(shù)的單片機采用內(nèi)部時鐘方式,本次設(shè)計亦然。</p><p> 在AT89C51單片機內(nèi)部,引腳XTAL2和引腳XTAL1連接著一個高增益反相放大器,XTAL1引腳是反相放大器的輸入端,XTAL2
25、引腳是反相放大器的輸出端。</p><p> 芯片內(nèi)部的時鐘發(fā)生器是一個二分頻觸發(fā)器,振蕩器的輸出fosc為其輸入,輸出為兩相時鐘信號(狀態(tài)時鐘信號),頻率為振蕩器輸出信號頻率fosc的二分之一。</p><p> 3.2 LCD1602簡介</p><p> 3.2.1 LCD1602的基本參數(shù)及引腳功能</p><p> LCD
26、1602液晶顯示器具有功耗低、體積小,超薄輕巧等優(yōu)點,同時可以顯示字母、數(shù)字符號以及中文字符,顯示的內(nèi)容十分豐富。它還分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應(yīng)用中并無差別,兩者尺寸差別如圖3-2-1所示。</p><p> 圖3-2-1 LCD1602結(jié)構(gòu)圖</p><p> LCD1602主要技術(shù)參數(shù): </p&
27、gt;<p> 容量:16×2個字符</p><p> 芯片工作電壓:4.5—5.5V</p><p> 工作電流:2.0mA(5.0V)</p><p> 模塊最佳工作電壓:5.0V</p><p> 字符尺寸:2.95×4.35(W×H)mm</p><p>&
28、lt;b> 引腳功能說明:</b></p><p> 引腳接口說明表3-2-1 </p><p> 第1腳:VSS為地電源。</p><p> 第2腳:VDD接5V正電源。</p><p> 第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個
29、10K的電位器調(diào)整對比度。</p><p> 第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。</p><p> 第5腳:R/W為讀寫信號線,高電平時進(jìn)行讀操作,低電平時進(jìn)行寫操作。當(dāng)RS和R/W共同為低電平時可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時可以讀忙信號,當(dāng)RS為高電平R/W為低電平時可以寫入數(shù)據(jù)。</p><p&g
30、t; 第6腳:E端為使能端當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。</p><p> 第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。</p><p> 第15腳:背光源正極。</p><p> 第16腳:背光源負(fù)極。</p><p> LCD1602的一般初始化(復(fù)位)過程:</p><p><b&
31、gt; 延時15mS</b></p><p> 寫指令38H(不檢測忙信號)</p><p><b> 延時5mS</b></p><p> 寫指令38H(不檢測忙信號)</p><p><b> 延時5mS</b></p><p> 寫指令38H(不
32、檢測忙信號)</p><p> 以后每次寫指令、讀/寫數(shù)據(jù)操作均需要檢測忙信號</p><p> 寫指令38H:顯示模式設(shè)置</p><p> 寫指令08H:顯示關(guān)閉</p><p> 寫指令01H:顯示清屏</p><p> 寫指令06H:顯示光標(biāo)移動設(shè)置</p><p> 寫指令
33、0CH:顯示開及光標(biāo)設(shè)置</p><p> 3.2.2 顯示模塊采用1602液晶顯示接口電路</p><p> 圖3-2-2 1602液晶顯示接口</p><p> 3.3 ADC0832的簡介</p><p> ADC0832其實就是美國國家半導(dǎo)體公司生產(chǎn)的CMOS工藝8通道,8位逐次逼近式A/D模數(shù)轉(zhuǎn)換器。其內(nèi)部有一個8通道多路開
34、關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號,只選通8路模擬輸入信號中的一個進(jìn)行A/D轉(zhuǎn)換。是目前國內(nèi)應(yīng)用最廣泛的8位通用A/D芯片。</p><p> 圖3-3 ADC0832引腳圖</p><p> 3.3.1 ADC靜態(tài)特性 </p><p> ADC的靜態(tài)特性是指其與時間特性無關(guān)的特性,主要包括以下幾類:</p><p><b&
35、gt; 1) 分辨率</b></p><p> ADC的分辨率定位為二進(jìn)制末位變化1所需的最小輸入電壓與參考電壓的比值,即ADC能夠分辨的最小的模擬量的變化。</p><p><b> 2) 量化誤差</b></p><p> 量化電平定義為滿量程電壓(或滿度信號值)UFSR與2的N次冪的比值,其中N位被數(shù)字化的數(shù)字信號的二
36、進(jìn)制位數(shù)。量化電平一般用Q表示。</p><p> 3) 全輸入范圍和動態(tài)范圍</p><p> 全輸入范圍是指允許輸入模擬信號的最大值與最小值之差;動態(tài)范圍是指全輸入范圍與ADC最小可分辨的量值之比。</p><p> 4) 偏置誤差和增益誤差</p><p> ADC的偏置誤差定義為使最低位被置成“1”狀態(tài)時ADC的輸入電壓與理論
37、上使最低位被置成“1”狀態(tài)時的輸入電壓之差。當(dāng)偏置誤差高速為零之后,輸出為全1時對應(yīng)的實際輸入電壓與理想輸入電壓之差。</p><p> 3.3.2 ADC動態(tài)特性</p><p> 高速ADC的動態(tài)特性是指輸入為交變簡諧信號時的性能技術(shù)指標(biāo),它是與ADC的操作速度有關(guān)的特性。其主要技術(shù)指標(biāo)如下:</p><p> 1) 轉(zhuǎn)換時間、采集時間</p>
38、;<p> 轉(zhuǎn)換時間是指從信號開始轉(zhuǎn)換到可獲得完整的信號輸出所用的時間,它是高速ADC的一項重要指標(biāo)。</p><p> 采集時間是指采樣保持電路在采樣模式下能夠保證其在隨之到來的保持模式輸出在采樣保持轉(zhuǎn)換時,相對該時刻存在的輸入電平之間的誤差將會限制在一定的誤差范圍內(nèi)所需的時間。</p><p><b> 2) 頻率響應(yīng)</b></p>
39、;<p> 它是沖擊響應(yīng)的傅立葉變換,其最佳表達(dá)方式是幅頻與相頻曲線,從系統(tǒng)辨識的角度看這是在頻域?qū)DC動態(tài)線性特性的非參數(shù)模型描述。</p><p> 3) 動態(tài)積分非線性誤差和動態(tài)微分非線性誤差</p><p> 動態(tài)積分非線性誤差(INL)定義為在動態(tài)情況下(一般輸入信號為正弦信號),ADC實際轉(zhuǎn)換特性曲線之間的最大偏差。每個數(shù)碼的偏差都是由那個數(shù)碼的中心值來度
40、量的。</p><p> 動態(tài)微分非線性誤差(DNL)定義為在動態(tài)情況下(一般輸入信號為正弦信號),ADC實際轉(zhuǎn)換特性的碼寬(1LSB)與理想代碼寬度之間的最大偏差,單位為LSB。為了保證ADC不失碼,通常規(guī)定在25oC時最大DNL為 1/2LSB。</p><p> 4) 信噪比、信噪失真比和有效位數(shù)</p><p> 信噪比(SNR)是信號電平的有效值與各
41、種噪聲(包括量化噪聲、熱噪聲、白噪聲等)有效值之比的分貝數(shù)。其中信號是指基波分量的有效值,噪聲指奈奎斯特頻率以下的全部非基波分量的有效值(除諧波分量和直流分量外)。</p><p> 5) 小信號帶寬和全功率帶寬</p><p> ADC的模擬帶寬是指輸入掃描頻率基波在ADC輸出端用FFT分析得到的基波頻譜下降到3dB處的帶寬(不考慮諧波失真和噪聲影響)。根據(jù)輸入信號幅值不同,模擬帶寬
42、又可以分為小信號帶寬(SSBW,一般指1/10滿量程)和全功率帶寬(FPBW,指滿量程)。</p><p> 3.3.3 ADC性能測試</p><p> ADC測試方法主要有兩種:模擬方法和數(shù)字方法。前者是將A/D采集的數(shù)字信號經(jīng)D/A轉(zhuǎn)換位模擬信號再用傳統(tǒng)的測試方法對其進(jìn)行測試,優(yōu)點是易于理解,缺點是許多A/D采集卡本身不帶D/A,即或有,D/A的性能也將影響A/D指標(biāo)的測試。
43、</p><p> 3.3.4 常用ADC芯片概述</p><p> A/D轉(zhuǎn)換器是用來通過一定的電路將模擬量轉(zhuǎn)變?yōu)閿?shù)字量。模擬量可以是電壓、電流等電信號,也可以是壓力、溫度、濕度、位移、聲音等非電信號。但在A/D轉(zhuǎn)換之前,輸入到A/D轉(zhuǎn)換器的輸入信號一定要經(jīng)各種傳感器把各種物理量轉(zhuǎn)換成電壓信號。</p><p> 3.3.5 ADC0832模數(shù)轉(zhuǎn)換原理及主
44、要技術(shù)指標(biāo)</p><p> ADC0832 是美國國家半導(dǎo)體公司生產(chǎn)的一種8位分辨率、雙通道A/D轉(zhuǎn)換芯片。其內(nèi)部有一個8通道多路開關(guān),它能夠根據(jù)地址碼鎖存譯碼后的信號,只選通8路模擬輸入信號中的任何一個進(jìn)行A/D轉(zhuǎn)換。這是目前國內(nèi)應(yīng)用最廣泛的8位通用A/D芯片。</p><p> 3.3.6 主要特性</p><p> 1)8路輸入通道,8位A/D轉(zhuǎn)換器,
45、即分辨率為8位。 </p><p> 2)具有轉(zhuǎn)換起停控制端。 </p><p> 3)轉(zhuǎn)換時間為100μs(時鐘為640kHz時),130μs(時鐘為500kHz時) </p><p> 4)單個+5V電源供電 </p><p> 5)模擬輸入電壓范圍0~+5V,不需零點和滿刻度校準(zhǔn)。 </p><p>
46、 6)工作溫度范圍為-40~+85攝氏度 </p><p> 7)低功耗,約15mW。 </p><p> 3.3.7 內(nèi)部結(jié)構(gòu)</p><p> ADC0832是CMOS單片型逐次逼近式A/D轉(zhuǎn)換器,它由8路模擬開關(guān)、地址鎖存與譯碼器、比較器、8位開關(guān)樹型A/D轉(zhuǎn)換器、逐次逼近。</p><p> 3.3.8 外部特性(引腳功能)&
47、lt;/p><p> ADC0832芯片有28條引腳,采用雙列直插式封裝。下面說明各引腳功能。 </p><p> IN0~I(xiàn)N7:8路模擬量輸入端。 </p><p> 2-1~2-8:8位數(shù)字量輸出端。 </p><p> ADDA、ADDB、ADDC:3位地址輸入線,用于選通8路模擬輸入中的一路 </p><p&
48、gt; ALE:地址鎖存允許信號,輸入,高電平有效。 </p><p> START: A/D轉(zhuǎn)換啟動脈沖輸入端,輸入一個正脈沖(至少100ns寬)使其啟動(脈沖上升沿使0809復(fù)位,下降沿啟動A/D轉(zhuǎn)換)。 </p><p> EOC: A/D轉(zhuǎn)換結(jié)束信號,輸出,當(dāng)A/D轉(zhuǎn)換結(jié)束時,此端輸出一個高電平(轉(zhuǎn)換期間一直為低電平)。 </p><p> OE:數(shù)
49、據(jù)輸出允許信號,輸入,高電平有效。當(dāng)A/D轉(zhuǎn)換結(jié)束時,此端輸入一個高電平,才能打開輸出三態(tài)門,輸出數(shù)字量。 </p><p> CLK:時鐘脈沖輸入端。要求時鐘頻率不高于640KHZ。 </p><p> REF(+)、REF(-):基準(zhǔn)電壓。 </p><p> Vcc:電源,單一+5V。 </p><p><b> GN
50、D:地。 </b></p><p> 3.3.9 ADC0832的工作過程</p><p> 首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復(fù)位。下降沿啟動 A/D轉(zhuǎn)換,之后EOC輸出信號變低,指示轉(zhuǎn)換正在進(jìn)行。直到A/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖?,指示A/D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器
51、,這個信號可用作中斷申請。當(dāng)OE輸入高電平 時,輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。 </p><p> 轉(zhuǎn)換數(shù)據(jù)的傳送 A/D轉(zhuǎn)換后得到的數(shù)據(jù)應(yīng)及時傳送給單片機進(jìn)行處理。數(shù)據(jù)傳送的關(guān)鍵問題是如何確認(rèn)A/D轉(zhuǎn)換的完成,因為只有確認(rèn)完成后,才能進(jìn)行傳送。為此可采用下述三種方式。 </p><p> (1)定時傳送方式 </p><p> 對于一種A
52、/D轉(zhuǎn)換其來說,轉(zhuǎn)換時間作為一項技術(shù)指標(biāo)是已知的和固定的。例如ADC0832轉(zhuǎn)換時間為128μs,相當(dāng)于6MHz的MCS-51單片機共64個機器周期??蓳?jù)此設(shè)計一個延時子程序,A/D轉(zhuǎn)換啟動后即調(diào)用此子程序,延遲時間一到,轉(zhuǎn)換肯定已經(jīng)完成了,接著就可進(jìn)行數(shù)據(jù)傳送。 </p><p><b> ?。?)查詢方式 </b></p><p> A/D轉(zhuǎn)換芯片由表明轉(zhuǎn)換完成
53、的狀態(tài)信號,例如ADC0832的EOC端。因此可以用查詢方式,測試EOC的狀態(tài),即可確認(rèn)轉(zhuǎn)換是否完成,并接著進(jìn)行數(shù)據(jù)傳送。 </p><p><b> (3)中斷方式 </b></p><p> 把表明轉(zhuǎn)換完成的狀態(tài)信號(EOC)作為中斷請求信號,以中斷方式進(jìn)行數(shù)據(jù)傳送。 </p><p> 不管使用上述哪種方式,只要一旦確定轉(zhuǎn)換完成,即
54、可通過指令進(jìn)行數(shù)據(jù)傳送。首先送出口地址并以信號有效時,OE信號即有效,把轉(zhuǎn)換數(shù)據(jù)送上數(shù)據(jù)總線,供單片機接受。</p><p> 3.3.10 ADC0832與單片機的接口電路</p><p> ADC0832模數(shù)轉(zhuǎn)換器與AT89C51單片機的接口電路如圖3-3-10所示</p><p> 圖3-3-10 ADC0832與AT89C51單片機接口電路</p
55、><p> 3.4 土壤濕度檢測模塊</p><p> 濕度檢測原理圖如圖3.4.1所示</p><p> 圖3.4.1 濕度檢測原理圖</p><p> 原理闡述:土壤濕度傳感器采用FC-28,土壤濕度傳感器由不銹鋼探針和防水探頭構(gòu)成,可長期埋設(shè)于土壤和堤壩內(nèi)使用,對表層和深層土壤進(jìn)行墑情的定點監(jiān)測和在線測量。與數(shù)據(jù)采集器配合使用,可作
56、為水分定點監(jiān)測或移動測量的工具測量土壤容積含水量,主要用于土壤墑情檢測以及農(nóng)業(yè)灌溉和林業(yè)防護(hù)。J1是兩個插片,插在土壤里, AC口用來采集電壓壓值,當(dāng)土壤濕度少時,探針間電阻接近無窮大,AC值就相當(dāng)于是VCC值,當(dāng)土壤濕度大時,此時探針鍵電阻會減少到幾千甚至幾百歐,此時AC的電壓會變化。LM393是一個比較器,通過R1設(shè)置一個標(biāo)準(zhǔn)值,當(dāng)濕度大(AC值小),OUT輸出低電平,相反輸出高電平。OUT信號可以直接用來粗略估算濕度大小。AC數(shù)值
57、送到數(shù)模轉(zhuǎn)換模塊轉(zhuǎn)換成數(shù)字信號。L1用來看電路是否接通,L2濕度?。ˋC值大)滅,濕度大(AC值?。┝?。土壤的濕度是由ADC0832進(jìn)行模擬并送入單片機,通過單片機的I/O口把檢測到的土壤濕度值用LCD顯示出來。同時,如果系統(tǒng)在智能澆水設(shè)置情況下,則該值與設(shè)定的澆水上下限值相比較,若低于下限值,則單片機發(fā)出一個控制信號,水泵開始運行然后開始澆水。若高于上限值時,單片機再發(fā)出</p><p> 3.4.1 比較器
58、LM393</p><p> 3.4.1.1 LM393主要特點:</p><p> (1)工作電源電壓范圍寬,單電源、雙電源均可工作,單電源:2~36V,雙電源:±1~±18V;</p><p> (2)消耗電流小,Icc=0.8mA;</p><p> ?。?)輸入失調(diào)電壓小,VIO=±2mV;<
59、/p><p> ?。?)共模輸入電壓范圍寬,Vic=0~Vcc-1.5V; </p><p> ?。?)輸出與TTL,DTL,MOS,CMOS 等兼容; </p><p> 3.4.1.2 LM393引腳圖及內(nèi)部框圖</p><p> 圖3-4-1 LM393引腳圖及內(nèi)部框圖</p><p&g
60、t; LM393引腳功能排列表</p><p> LM393主要參數(shù)表</p><p> LM393是高增益,寬頻帶器件,象大多數(shù)比較器一樣,如果輸出端到輸入端有寄生電容而產(chǎn)生耦合,則 很容易產(chǎn)生振蕩.這種現(xiàn)象僅僅出現(xiàn)在當(dāng)比較器改變狀態(tài)時,輸出電壓過渡的間隙.電源加旁路濾波并不能解決這個問題,標(biāo)準(zhǔn)PC板的設(shè)計對減小輸入—輸出寄生電容耦合是有助的.減小輸入電阻至小于10K將減小反饋信號
61、,而且增加甚至很小的正反饋量(滯回1.0~10mV)能導(dǎo)致快速轉(zhuǎn)換,使得不可能產(chǎn)生由于寄生電容引起的振蕩.除非利用滯后,否則直接插入IC并在引腳上加上電阻將引起輸入—輸出在很短的轉(zhuǎn)換周期內(nèi)振蕩,如果輸入信號是脈沖波形,并且上升和下降時間相當(dāng)快,則滯回將不需要. 比較器的所有沒有用的引腳必須接地. LM393偏置網(wǎng)絡(luò)確立了其靜態(tài)電流與電源電壓范圍 2.0~30V無關(guān). 通常電源不需要加旁路電容。</p><p&g
62、t; 3.5 報警及電機驅(qū)動</p><p> 圖3-5報警及電機驅(qū)動電路</p><p><b> 4軟件設(shè)計</b></p><p> 4.1 主程序流程圖</p><p> 在本設(shè)計中,整個系統(tǒng)采用模塊化設(shè)計,這樣設(shè)計可以使程序看起來清晰明了,便于閱讀以及調(diào)試。</p><p>
63、 土壤濕度檢測及自動澆灌模塊的程序結(jié)構(gòu)是主程序以及按鍵掃描處理、土壤濕度數(shù)據(jù)采集、數(shù)據(jù)處理、顯示、電機驅(qū)動等子程序組成,如圖4-1-1所示。</p><p> 圖4-1-1 程序結(jié)構(gòu)圖</p><p> 整個系統(tǒng)操作操作方法為當(dāng)開啟系統(tǒng)后進(jìn)入主函數(shù),初始化化函數(shù)變量及初始化傳感器模塊,進(jìn)入按鍵掃描函數(shù),通過按鍵選擇系統(tǒng)的工作模式,在自動控制模式下,調(diào)用土壤濕度數(shù)據(jù)采集函數(shù),采集當(dāng)前土壤
64、濕度值,并通過數(shù)據(jù)處理程序?qū)穸戎颠M(jìn)行分析,當(dāng)濕度值小于預(yù)設(shè)值時,進(jìn)入水泵電機驅(qū)動函數(shù),開啟灌溉功能,直到達(dá)到濕度預(yù)設(shè)值,停止灌溉。其主程序流程圖如圖4-1-2所示。</p><p> 圖4-1-2 主程序流程圖</p><p> 表4-1-2 函數(shù)功能表</p><p><b> 4.2顯示模塊</b></p><p
65、> 首先初始化1602顯示,接著顯示測試出的值,在通過按鍵調(diào)節(jié)顯示濕度的上下限的值。</p><p><b> 圖4-2 顯示模塊</b></p><p> 4.3 AD轉(zhuǎn)換模塊</p><p> 圖4-3-1 AD轉(zhuǎn)換模塊</p><p> 附上ADC0832時序圖如圖4-3-2</p>
66、<p> 圖4-3-2 ADC0832時序圖</p><p><b> 4.4濕度檢測模塊</b></p><p> 通過傳感器測的的濕度數(shù)據(jù)存入單片機然后設(shè)定的上下限的值做比較,當(dāng)測的的值低于下限時,開始澆水,如果測的的值高于下限時,就再與設(shè)定的上限值做比較,當(dāng)濕度低于上限時就開始澆水,反之則停止?jié)菜?lt;/p><p> 圖
67、4-4 濕度檢測模塊</p><p><b> 5. 結(jié)論</b></p><p> 本次設(shè)計的盆花自動澆水系統(tǒng)以電子類的自動澆花器的工作原理為參考,運用濕度采集電路及單片機控制技術(shù)構(gòu)成一個土壤濕度采集與控制系統(tǒng)。再用數(shù)字電路控制自動給水系統(tǒng)及時的澆水系統(tǒng)供水。</p><p> 本次畢業(yè)設(shè)計讓我進(jìn)一步熟悉了一些元器件的功能和屬性。也使我
68、真正接觸到了控制系統(tǒng)的設(shè)計,雖然是一個人們?nèi)粘I畹男∠到y(tǒng),但也讓我明白了很多設(shè)計上應(yīng)該注意的問題,比如實用性、經(jīng)濟(jì)性以及安裝問題等。</p><p><b> 參考文獻(xiàn):</b></p><p> [1] 李泉溪.單片機原理與應(yīng)用實例仿真[M].北京:北京航天大學(xué)出版社,2009.8.</p><p> [2] 李敏.孟臣.數(shù)字式溫濕度
69、傳感器及其應(yīng)用技術(shù)[J].電子元器件應(yīng)用,2004,11.</p><p> [3] 孫榮超.孫德超, 數(shù)字溫濕度數(shù)據(jù)記錄儀的設(shè)計[J].現(xiàn)代電子技術(shù),2005.7</p><p> [4] 黃鴻,吳石增.傳感器及其應(yīng)用技術(shù)[M]北京理工大學(xué)出版社,2008.7</p><p> [5] 劉燦軍.實用傳感器[M].北京:國防工業(yè)出版社,2004,6.</
70、p><p> [6] 孫惠芹.單片機項目設(shè)計教程[M],北京:電子工業(yè)出版社,2009,6</p><p> [7] 宗光華,李大寨.多單片機系統(tǒng)應(yīng)用技術(shù)[M].北京:國防工業(yè)出版社,2003.10.</p><p> [8] 王芳琴.單片機控制的節(jié)水灌溉系統(tǒng)的研究[J].華中農(nóng)業(yè)大學(xué).</p><p> [9] 趙振德.單片機原理及實驗
71、/實訓(xùn)[M].西安:西安電子科技大學(xué)出版社,2009.</p><p> [10] 艾永樂,付子儀.數(shù)字電子技術(shù)基礎(chǔ)[M].北京:中國電力出版社,2008.</p><p><b> 謝 辭</b></p><p> 光陰似箭,為期四年的農(nóng)大學(xué)習(xí)生涯即將結(jié)束。同時,經(jīng)過兩個多月的努力,我的畢業(yè)論文也即將完成。本次論文的撰寫,對我而言
72、是一次難得的鍛煉機會。本畢業(yè)論文是在我的導(dǎo)師的親切關(guān)懷和悉心指導(dǎo)下完成的。在課題的整個研究工作期間,我曾遇到不少的困難和挫折,是她給予我的幫助和鼓勵,讓我重新獲得了繼續(xù)前進(jìn)的勇氣和信心。在此謹(jǐn)向老師致以衷心的感謝和深深的敬意! 在論文即將完成之際,我的心情無法平靜,從開始進(jìn)入課題到論文的順利完成,有多少可敬的師長、同學(xué)、朋友給了我無言的幫助,在這里請接受我誠摯的謝意!</p><p> 感謝我的同學(xué)和我的室友,
73、在大學(xué)四年里,他們給我許多的關(guān)心和幫助,伴我度過許多快樂時光。和他們在一起度過的日子永遠(yuǎn)值得回味。</p><p> 感謝各級領(lǐng)導(dǎo)對我的教育培養(yǎng)。他們細(xì)心指導(dǎo)我的學(xué)習(xí)與研究,在此,我要向諸位老師深深地鞠上一躬。</p><p> 感謝我的父母親和所有家人,正是你們的無私愛心和殷殷期盼使得我終于能夠走到今天,你們永遠(yuǎn)健康快樂就是我最大的心愿。</p><p>&l
74、t;b> 附錄1 原理圖</b></p><p><b> 附錄2 參考程序</b></p><p> /*************讀數(shù)模轉(zhuǎn)換數(shù)據(jù)***************/</p><p> unsigned char ad0832read(bit SGL,bit ODD)</p><p>
75、;<b> {</b></p><p> unsigned char i=0,value=0,value1=0;</p><p><b> SCL=0;</b></p><p><b> DO=1;</b></p><p> CS=0;//開始</p&g
76、t;<p> SCL=1;//第一個上升沿</p><p><b> SCL=0;</b></p><p><b> DO=SGL;</b></p><p> SCL=1; //第二個上升沿</p><p><b> SCL=0;</b><
77、;/p><p><b> DO=ODD;</b></p><p> SCL=1; //第三個上升沿</p><p> SCL=0; //第三個下降沿</p><p><b> DO=1;</b></p><p> for(i=0;i<8;i++)&
78、lt;/p><p><b> {</b></p><p><b> SCL=0;</b></p><p> SCL=1; //開始從第四個下降沿接收數(shù)據(jù)</p><p> value<<=1;</p><p><b> if(DO)</b&g
79、t;</p><p> value++;</p><p><b> }</b></p><p> for(i=0;i<8;i++)</p><p> {//接收校驗數(shù)據(jù)</p><p> value1>>=1;</p><p>
80、<b> if(DO)</b></p><p> value1+=0x80;</p><p><b> SCL=1;</b></p><p><b> SCL=0;</b></p><p><b> }</b></p><p&
81、gt;<b> SCL=1;</b></p><p> if(value==value1)//與校驗數(shù)據(jù)比較,正確就返回數(shù)據(jù),否則返回0</p><p> return value;</p><p><b> return 0;</b></p><p><b> }&
82、lt;/b></p><p> /*************定時器0初始化程序***************/</p><p> void time_init() </p><p><b> {</b></p><p> EA = 1; //開總中斷</p><p>
83、 TMOD = 0X01; //定時器0、定時器1工作方式1</p><p> ET0 = 1; //開定時器0中斷 </p><p> TR0 = 1; //允許定時器0定時</p><p><b> }</b></p><p> /********************獨立按鍵程序**
84、***************/</p><p> uchar key_can; //按鍵值</p><p> void key() //獨立按鍵程序</p><p><b> {</b></p><p> static uchar key_new;</p><p> key_can
85、 = 20; //按鍵值還原</p><p> P3 |= 0xf0;</p><p> if((P3 & 0xf0) != 0xf0)//按鍵按下</p><p><b> {</b></p><p> delay_1ms(1); //按鍵消抖動<
86、;/p><p> if(((P3 & 0xf0) != 0xf0) && (key_new == 1))</p><p> {//確認(rèn)是按鍵按下</p><p> key_new = 0;</p><p> switch(P3 & 0xf0)</p><p><b&
87、gt; {</b></p><p> case 0xe0: key_can = 4; break; //得到k1鍵值</p><p> case 0xd0: key_can = 3; break; //得到k2鍵值</p><p> case 0xb0: key_can = 2; break; //得到k3鍵值</p>
88、;<p> case 0x70: key_can = 1; break; //得到k4鍵值</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b>
89、else </b></p><p> key_new = 1;</p><p><b> }</b></p><p> /****************按鍵處理顯示函數(shù)***************/</p><p> void key_with()</p><p><
90、;b> {</b></p><p> if(key_can == 1) //設(shè)置鍵</p><p><b> {</b></p><p> menu_1 ++;</p><p> if(menu_1 >= 3)</p><p><b> {</
91、b></p><p> menu_1 = 0;</p><p> init_1602() ; //初始化顯示</p><p><b> }</b></p><p><b> }</b></p><p> if(menu_1 == 1)//設(shè)置濕度上限&
92、lt;/p><p><b> {</b></p><p> if(key_can == 2)</p><p><b> {</b></p><p> s_high ++ ;//濕度上限值加1 </p><p> if(s_high > 99)</p>
93、;<p> s_high = 99;</p><p><b> }</b></p><p> if(key_can == 3)</p><p><b> {</b></p><p> s_high -- ;//濕度上限值減1 </p><p>
94、if(s_high <= s_low)</p><p> s_high = s_low + 1 ;</p><p><b> }</b></p><p> write_sfm2(2,4,s_high); //顯示濕度上限</p><p> write_sfm2(2,12,s_low);
95、 //顯示濕度下限</p><p> write_com(0x80+0x40+4); //將光標(biāo)移動到第2行第到3位</p><p> write_com(0x0f); //顯示光標(biāo)并且閃爍</p><p> write_eeprom(); //保存數(shù)據(jù)</p><
96、p><b> }</b></p><p> if(menu_1 == 2)//設(shè)置濕度下限</p><p><b> {</b></p><p> if(key_can == 2)</p><p><b> {</b></p><p&
97、gt; s_low ++ ; //濕度下限值加1 </p><p> if(s_low >= s_high)</p><p> s_low = s_high - 1;</p><p><b> }</b></p><p> if(key_can == 3)</p><p>&l
98、t;b> {</b></p><p> s_low --; //濕度下限值減1 </p><p> if(s_low <= 1)</p><p> s_low = 1;</p><p><b> }</b></p><p> write_sfm2(2,4,s
99、_high); //顯示濕度上限</p><p> write_sfm2(2,12,s_low); //顯示濕度下限</p><p> write_com(0x80+0x40+12); //將光標(biāo)移動到第2行第到3位</p><p> write_com(0x0f); //顯示光標(biāo)并且
100、閃爍</p><p> write_eeprom(); //保存數(shù)據(jù)</p><p><b> }</b></p><p><b> } </b></p><p> /****************報警函數(shù)***************/</p>&
101、lt;p> void clock_h_l()</p><p><b> {</b></p><p> static uchar value,value1;</p><p> if(shidu <= s_low)</p><p><b> {</b></p><
102、;p><b> value ++;</b></p><p> if(value >= 2)</p><p><b> {</b></p><p> value = 10;</p><p> beep = ~beep; //蜂鳴器報警</p><p>
103、 dianji = 0; //打開電機</p><p><b> }</b></p><p><b> }else </b></p><p> beep = 1; //關(guān)閉蜂鳴器</p><p> if(shidu >= s_high)</p><
104、p><b> {</b></p><p> value1 ++;</p><p> if(value1 >= 2)</p><p><b> {</b></p><p> value1 = 10;</p><p> beep = 1; //關(guān)閉蜂鳴
105、器</p><p> dianji = 1; //關(guān)機電機</p><p><b> }</b></p><p><b> }else </b></p><p> value1 = 0;</p><p><b> }</b><
106、/p><p> /***************主函數(shù)*****************/</p><p> void main()</p><p><b> {</b></p><p> init_1602(); //1602液晶初始化</p><p> init_eeprom(
107、); //讀eeprom數(shù)據(jù)</p><p> time_init();//初始化定時器 </p><p><b> while(1)</b></p><p><b> {</b></p><p> key();//獨立按鍵程序</p><
108、;p> if(key_can < 10)</p><p><b> {</b></p><p> key_with();//按鍵按下要執(zhí)行的程序</p><p><b> }</b></p><p> if(flag_300ms == 1)</p><
109、p><b> {</b></p><p> flag_300ms = 0; </p><p> clock_h_l(); //報警函數(shù) </p><p> if(beep == 1)</p><p><b> {</b></p><p> shid
110、u = ad0832read(1,0);//讀出濕度</p><p> shidu = 99 - shidu * 99 / 255;</p><p><b> }</b></p><p> if(menu_1 == 0)</p><p><b> {</b></p><
111、p> write_sfm2(1,9,shidu); //顯示濕度等級</p><p><b> }</b></p><p><b> } </b></p><p> delay_1ms(1);</p><p><b> }</b></p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 本科畢業(yè)論文自動澆花系統(tǒng)的設(shè)計
- 畢業(yè)論文-自動控制澆花系統(tǒng)
- 畢業(yè)設(shè)計(論文)-自動澆花系統(tǒng)的設(shè)計
- 基于52單片機的全自動澆花系統(tǒng)設(shè)計-畢業(yè)論文
- 自動澆花系統(tǒng)畢業(yè)設(shè)計
- 自動澆花系統(tǒng)的設(shè)計
- 自動澆花系統(tǒng)的設(shè)計文獻(xiàn)綜述
- 畢業(yè)論文plc自動倉儲系統(tǒng)的設(shè)計
- 畢業(yè)論文自動售貨機的系統(tǒng)設(shè)計
- 自動裝箱控制系統(tǒng)的設(shè)計-畢業(yè)論文
- 畢業(yè)論文--自動制釘機傳動系統(tǒng)的設(shè)計
- 自動稱重系統(tǒng)畢業(yè)論文
- 自動供料系統(tǒng)畢業(yè)論文
- 自動打鈴系統(tǒng)畢業(yè)論文
- 自動泊車系統(tǒng)畢業(yè)論文
- 自動噴水滅火系統(tǒng)設(shè)計畢業(yè)論文
- 自動窗簾控制系統(tǒng)設(shè)計【畢業(yè)論文】
- 自動窗的設(shè)計-畢業(yè)論文設(shè)計
- 畢業(yè)設(shè)計-基于at89c52單片機的自動澆花系統(tǒng)
- 畢業(yè)論文(設(shè)計)無人監(jiān)守點滴自動監(jiān)控系統(tǒng)的設(shè)計
評論
0/150
提交評論