版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
共27頁第基于單片機的雞舍光照強度檢測系統(tǒng)設計與實現(xiàn)摘要在禽類的生長過程中,影響其發(fā)育的因素有很多。其中光照的時常與強度至關(guān)重要。在當下大多數(shù)雞舍中不能具體的檢測到外界光照對光照的管理也考慮不足。本文針對該問題設計了包含:光照采集模塊、警報模塊、按鈕模塊、顯示控制模塊的雞舍光照強度檢測系統(tǒng)。其中選用stc89c52rc作為主控制器芯片,實現(xiàn)對各個模塊的控制,采用gy-30感光傳感器芯片作為光照檢測器件來直接完成對于外界光照環(huán)境的檢測;選用1602液晶顯示器作為本系統(tǒng)的的一個顯示屏,用來對檢測到的光照數(shù)據(jù)以及閾值進行實時顯示,報警模塊中采用有源蜂鳴器和led燈作為聲光報警系統(tǒng)的主要設計,在按鈕模塊上則采用了輕觸式按鍵方法來直接完成對于光照閾值的修改。其中軟件程序部分通過vc語言編程,經(jīng)過keil軟件生成16進制碼文件通過ISP軟件將其燒寫于單片機中進行分析處理,并將其通過LCD顯示出來。關(guān)鍵詞:微光強度;按鍵;蜂鳴器;閾值;傳感器目錄30123摘要 I9533Abstract II285671緒論 190921.1研究背景與意義 1133742系統(tǒng)方案設計 231372.1設計需求 2303612.2方案選擇 2280602.2.1微型控制選擇 2324802.2.2顯示屏選擇 3242842.2.3感光和報警選擇 3244532.2.4電源和開關(guān)選擇 4102102.2.5按鍵選擇 5110593硬件電路設計 665843.1顯示屏設計 6316633.2數(shù)據(jù)采集模塊 7185383.3按鍵模塊 8227253.4警報模塊 963324軟件設計 10183514.1軟件技術(shù) 10267494.1.1功能設計 11201144.1.2程序設計 1237164.2顯示代碼設計 13217674.2.1液晶屏初始化 1360524.2.2引腳說明 14209394.2.3數(shù)據(jù)顯示 1441114.3光照檢測代碼設計 15304714.3.1IIC雙向通信 16258594.3.2光照檢測 17229984.4警報設計 1822324.4.1報警功能 18140624.5按鍵代碼設計 1848404.5.1按鍵功能 18178144.6延時功能設計 20108564.6.1延時流程 20213304.7調(diào)試與下載 21104045系統(tǒng)測試 23301885.1實物調(diào)試 23117855.2功能測試 23201626總結(jié) 2529054參考文獻 271緒論1.1研究背景與意義雞蛋是禽蛋類行業(yè)占比較重的一部分,怎樣提高雞蛋的產(chǎn)量是商家和相關(guān)研究者的頭號難題。而養(yǎng)雞的環(huán)境決定了雞蛋的生產(chǎn)多少。在近幾年的技術(shù)進步下現(xiàn)有的研究發(fā)現(xiàn),光照強度可以刺激和控制雞的生長發(fā)育,也影響雞蛋的生產(chǎn)量,雞蛋品質(zhì)。在飼養(yǎng)環(huán)境中,如果沒有人為干預養(yǎng)殖環(huán)境,光照時間不能保證充足,產(chǎn)蛋就會減少?,F(xiàn)在,很多養(yǎng)雞環(huán)境正在從密度低的家養(yǎng)、放養(yǎng)向密度較高的雞舍轉(zhuǎn)型,開放式散養(yǎng)正一步步被人工可調(diào)控的環(huán)境替換,雞舍內(nèi)光照環(huán)境能夠影響雞蛋生產(chǎn)效率與高品質(zhì)發(fā)展。在光照時間不夠或光照強度不夠的環(huán)境中養(yǎng)殖是低效率的體現(xiàn),如何檢測光照的數(shù)據(jù)并提醒人們保證產(chǎn)蛋雞舍的光照時間到達所需要求。所以,針對現(xiàn)在大多數(shù)的雞舍結(jié)構(gòu),設計了基于微型控制芯片的雞舍光照強度檢測系統(tǒng)。該系統(tǒng)以單片機STC89C52為微控制器,選用gy-30感光模塊進行光采集,采集到的光照強度數(shù)據(jù)直接通過芯片內(nèi)部轉(zhuǎn)換成數(shù)據(jù)信號給單片機進行數(shù)據(jù)顯示和判斷。該系統(tǒng)根據(jù)感光模塊進行數(shù)據(jù)采集,生成實際測量值,能夠?qū)崿F(xiàn)檢測雞舍內(nèi)的光照度。通過該系統(tǒng)的數(shù)據(jù)顯示及設定值警報進行人為的去調(diào)控光照,可以及時的保證雞的光照要求的時候也可以方便節(jié)約電能輔助性的提高雞的生產(chǎn)性能。該設計想法是很好的但仍有一些不足的地方比如仍然需要人工的去管控一些電器完成最終的工作,不能夠?qū)崿F(xiàn)自動控制但相對在養(yǎng)殖領(lǐng)域也算是進一步的向科學技術(shù)靠近。設計可以更加直觀的明朗的讓人感受到光照的變化數(shù)據(jù)上的變化來進行操作該研究雖然不能夠直接作為產(chǎn)品銷售但也在光照檢測上有可取之處。擁有其所學專業(yè)知識和設計的意義。
2系統(tǒng)方案設計2.1設計需求本設計的關(guān)鍵功能分別是環(huán)境數(shù)據(jù)采集系統(tǒng)、數(shù)據(jù)顯示系統(tǒng)和控制器系統(tǒng)及反應操作。系統(tǒng)中數(shù)據(jù)采集模塊通過光傳感器模塊采集光照數(shù)據(jù)配合內(nèi)部的數(shù)模轉(zhuǎn)換模塊直接進行數(shù)字輸出到微控制器進行程序上的分析以及判斷;顯示系統(tǒng)通過液晶屏來顯示想要顯示的字符和數(shù)據(jù);執(zhí)行操作主要指報警等功能。如圖2.1所示。圖2.1需求框架圖2.2方案選擇2.2.1微型控制選擇可以作為本設計的核心控制芯片有很多例如單片機就有很多種型號因為所學專業(yè)的要求和自己了解知識以及成本的緣故,本設計通過選用宏晶公司的STC89C52微處理器作為該系統(tǒng)的主控制器,其外部皆有復位電路和晶振電路以及電源接口。作為設計的核心控制器它內(nèi)部由算術(shù)和控制器單元組成,可以執(zhí)行管理控制指令和算術(shù)邏輯的協(xié)調(diào));并且提供8K字節(jié)的程序存儲區(qū),512字節(jié)的數(shù)據(jù)存儲區(qū),同時它具有在系統(tǒng)可編程特性,不需要用其他的仿真器或編程器通過配合PC端的ISP軟件就可以對單片機程序存儲器中的代碼反復下載測試很方便。外界輸入輸出口有32根也足夠設計使用。其中控制器的電源引腳部分分別是VCC電源線和GND地線,外加晶振引腳XTAL。最終本設計選用控制芯片實物圖如圖2.2所示:圖2.2控制芯片實物圖2.2.2顯示屏選擇由于預想要把所采集到的光照強度和設定的值數(shù)據(jù)顯示出來,讓外面更為直觀的去了解當前的光照數(shù)據(jù),更好的進行交互。增加了硬件顯示屏幕,該設計選擇的顯示模塊有很多例如LCD1602和LCD12864都可以,兩者對比之下1602的使用方法和顯示的范圍不僅可以滿足顯示需求其成本也比另一款較低,通過方便易于控制。綜合對比之下該設計選用1602作為本系統(tǒng)的顯示硬件實物圖如圖2.32.4所示。圖2.3顯示屏前視圖圖2.4顯示屏后視圖2.2.3感光和報警選擇其中系統(tǒng)中為重要的便是光照采集的功能,能夠?qū)崿F(xiàn)該功能的傳感器市面上也非常多例如:光敏電阻和gy-30數(shù)字感光這兩個都可以完成所需要的。其中g(shù)y-30模塊它內(nèi)部不僅包含了BH1750FVI芯片也集成16bit模數(shù)轉(zhuǎn)換器解決了對電壓信號變成數(shù)據(jù)的工作,在外部看來可以直接進行數(shù)字輸出。其測量的光照強度區(qū)間為0-65535lx更加的符合人眼睛的光譜范圍,是一款比較節(jié)省空間和數(shù)據(jù)精準更為穩(wěn)定的器件。除此之外還支持3-5V供電,可與5V單片機IO直接連接;其中BH1750內(nèi)部集成了IIC信號轉(zhuǎn)換電路方便使用。綜合考慮本設計用該感光模塊作為光照采集其實物圖如圖2.4所示:圖2.4光傳感器BH1750fvi基于功能上的顧慮在本畢設系統(tǒng)中,加入了報警系統(tǒng)。報警分為很多形式比如給人視覺,聽覺。所使用的報警器也分為很多的形式如電壓式的和電磁的,考慮本設計的成本和其他的用電因素選擇電壓式報警器來發(fā)出聲音和LED燈光的視覺和聽覺的警報。提醒人光照強度低于我們設置的最大和最小值。2.2.4電源和開關(guān)選擇任何系統(tǒng)都需要進行用電驅(qū)動,設計中既可以通過專屬電源進行供電也可以通過電腦輸出口進行供電。因本設計絕大多數(shù)都是低壓用電器就可以驅(qū)動工作所以該設計本系統(tǒng)中使用一個USB的DC端口作為設計的總體供電它使用很方便,因為系統(tǒng)中所需要的電壓和電路內(nèi)部都不需要很大的功率去驅(qū)動因此該電源線可以一邊電腦接口或用手機充電頭變壓之后連接供電,雖然系統(tǒng)中大多數(shù)用電器電壓都為低功率。為了保證用電安全和使用方便所以在同一個電路中連接了自鎖開關(guān)與電源接口,作為同一個電路的開關(guān),接電之后默認為常閉需重新按下才可以。它內(nèi)部的引腳有兩組常開和常閉觸點每一側(cè)的兩端都是常閉觸點共有兩組,在本文設計中沒用到常閉觸點只用了一組常開觸點作為啟動器的引腳來將其接入到該電路中。采用的是自鎖啟動開關(guān)的實物示意圖如下表2.5所示:圖2.5自動鎖定開關(guān)2.2.5按鍵選擇因為在設計中需要人手動的去修改設定的最大閾值,還有就是防止系統(tǒng)卡頓和時間上的不一致需要進行刷新和復位的功能。在本系統(tǒng)中選用按鍵來實現(xiàn)復位以及閾值上下限的增加與減少的功能,實現(xiàn)本設計功能的有很多器件比如鑰匙開關(guān)或者電子式的按鈕因為空間大小原因的考慮該設計中使用輕觸按鍵作為復位按鈕以及增減按鈕每次按下都實現(xiàn)相應的功能,它的內(nèi)部所欲密封的,即使在外灰塵較多的環(huán)境或者濕度高的環(huán)境也能夠得到高可靠性的保障。硬件實物如圖2.6所示:圖2.6按下按鈕3硬件電路設計3.1顯示屏設計本設計最終采用1602顯示屏硬件作為該顯示器模塊。能夠在屏上顯示2行英文字符,每行16個英文字符可以在屏上顯示清晰的英文字符和數(shù)據(jù)并且具有4位串行接口的方式,其中所顯示的內(nèi)容一般為英文字母和數(shù)碼字符,而且它正常的工作頻率為3-5v。其中"lcd1602"1號引腳接地,lcd2號引腳接vcc,lcd3引號腳是基于lcd的灰度調(diào)節(jié)。3腳與地之間的阻止為200歐~5K,LCD4~14連接到單片機相對應的I/O端口。15腳(A)為背光的電源,16腳(K)為背光的地。其與STC89C52連線圖和引腳說明如圖3.1,3.2所示:圖3.2液晶“LCD1602”連接圖圖3.3引腳說明圖在對顯示屏進行讀寫操作時,有一定的時間和操作上的順序,在進行都指令操作時,使能端信號為高電平有效所以在進行代碼的編寫需要先設置指令選擇控制端和讀寫控制線的狀態(tài),再將E端變?yōu)楦唠娖讲趴梢赃M行數(shù)據(jù)的讀。讀操作完成后將使能端為低電平最后將控制先和指令選擇端變成原來狀態(tài)。在寫指令時,E為低電平時有效同樣的需要先進行控制線的狀態(tài)。選擇數(shù)據(jù)產(chǎn)生E端的信號脈沖最后還原讀寫控制線和指令選擇端的的狀態(tài)。顯示屏指令順序如圖3.4,3.5所示:圖3.4讀指令時序圖圖3.5寫指令時序圖3.2數(shù)據(jù)采集模塊本系統(tǒng)最后采用gy-30該感光模塊作為檢測外界光照的傳感器,該模塊內(nèi)部加有轉(zhuǎn)換模塊比如AD模數(shù)轉(zhuǎn)換模,電流電壓的轉(zhuǎn)換經(jīng)過它內(nèi)部的這些信號的相互轉(zhuǎn)換最終達到我們所需要的光照檢測數(shù)據(jù)其整體電路如圖3.6所示。圖3.6gy-30原理圖在對光照數(shù)據(jù)采集上采用GY-30數(shù)字光模塊它內(nèi)置傳感器BH1750FVI芯片包含了16bit模數(shù)轉(zhuǎn)換器,GY-30是一個五針腳模塊,包含VCC、SCL、SDA、ADDR、GND五個引腳。SCL為時鐘線;SDA為數(shù)據(jù)線。圖中C表示為串聯(lián)在電路中的兩個濾波電容,addr為寄存器的地址。該模塊不僅僅可以有效地完成設計所需要的功能并擁有很好的運行又節(jié)省空間。其1750芯片內(nèi)部如圖3.7所示。圖3.71750內(nèi)部圖該芯片內(nèi)部的電路主要包括:pd二極管,它的作用是內(nèi)部流過的電流會隨著外部光強的變化而改變并發(fā)生相應的大小變化;amp運算放大器將隨光變化的電流信號轉(zhuǎn)換成為電壓信號;數(shù)模轉(zhuǎn)換:將電壓信號轉(zhuǎn)換成16位數(shù)字信號到其中的光照強度計算接口,osc是里面的振蕩器時鐘頻率為320khz。GY-30與單片機的連接相對簡單,vcc連接到供電電源電路,寄存器的地址和地相連。在設計系統(tǒng)中將SDA、SCL引腳與對應的的P10與P11相連具體連線圖如3.8所示圖3.8GY-30連線圖3.3按鍵模塊四個按鍵供電電壓5V。和控制器的引腳連接來實現(xiàn)觸摸按鈕內(nèi)部的金屬部件,受到力彈動,實現(xiàn)開和關(guān)。設計中將四個按鍵分別對應的連接到3.3~3.6接口。按鍵另一端傳連接到電源端。四個按鍵分別作為設計中人為設定的上下最值進行修改具體的硬件連線圖如3.9所示:圖3.9按鍵連線圖3.4警報模塊考慮到前面的設計和方案選擇后本系統(tǒng)最后一次采用了電壓式訊響器,他采用的是一種以電子式為一體的報警器它用直流點進行供電,工作時間為1.5~15v,它的工作原簡單(一個振蕩器震動時可以輸出1.5-2.5赫茲的音頻信號),電流傳遞到其內(nèi)部的一個電磁信號,使得這個電磁信號線圈能夠產(chǎn)生較大的強磁場,振蕩器薄膜能夠產(chǎn)生較大的聲音。電磁線圈在工作時產(chǎn)生一個磁場所必須大于微控制器電流的輸入,因此這里我加了一個三極管電流放大器放大之后來驅(qū)動警報模塊來達到發(fā)聲警報的效果。在該設計中將其連到2.0引腳利用翻轉(zhuǎn)電來讓其工作。警報模塊連線圖如圖3.10示:圖3.10警報模塊連線圖通過以上各個系統(tǒng)模塊的連線之后,形成了一張總體的連線電路圖,核心為單片機控制芯片,將外面的lcd顯示系統(tǒng)模塊,感光傳感器模塊,以及警報系統(tǒng)模塊一一的連到對應的接口中完成總體的硬件電路圖繪制,根據(jù)設計圖進行各個器件的連線焊接,同時在代碼上也需要根據(jù)該連線進行定義。如圖3.11所示:圖3.11總體連線圖
4軟件設計4.1軟件技術(shù)在本文設計的過程中,在軟件方面通過采用vc語言編程來直接實現(xiàn)對各個模塊的初始化與其所需功能的設計在實現(xiàn)過程中使用到了keil5軟件,該項目的軟件采用了美國keilsoftware公司的一種可以直接開發(fā)51單片機的一款軟件,在實際上所使用的語言上,可以用C來編程與本專業(yè)知識基本上很契合該軟件使用相對于其他開發(fā)軟件更容易上手并且可以進行生成16進制碼的hex文件。該軟件出現(xiàn)時間長久如果在編程過程中遇到一些版權(quán)或者其他的軟件驅(qū)動的問題可以通過一些成熟的資料與經(jīng)驗去更好的解決。選擇它的原因主要還是在校學習期間對其使用過并進行了一些開發(fā)工程,有一些親和感相對比較熟悉。同時軟件功能強大,款集成的開發(fā)環(huán)境不僅僅可以對51系列也對ARM進行開發(fā),開發(fā)界面使用也比較方便使用,結(jié)構(gòu)上、性能上都能滿足本設計的需求。同時在軟件中也含有強大的軟件仿真在進行軟件代碼編程的時候更為方便。此軟件需先進行破解相關(guān)的開發(fā)系列包,在設計中用51單片機進行所以破解時是采用相對應的破解包才可以正常使用,下圖4.1為軟件開發(fā)界面:圖4.1軟件界面圖除了開發(fā)軟件,在代碼設計完成后。如何將其燒寫到控制芯片內(nèi)也需要用到一款編程器。因為設計中單片機支持在線編程。所以通過對應的ISP軟件就可以在電腦上通連線進行程序燒寫,燒寫前必須在開發(fā)軟件中生成16進制的hex文件。雙擊ISP軟件,軟件界面如下圖4.2示:圖4.2isp界面4.1.1功能設計本設計是實現(xiàn)的是檢測雞舍的光照強度,并通過顯示器顯示出傳感器檢測的光照數(shù)據(jù)與人為事先設定的上下限值同時也可以顯示實時修改后的值。當傳感器檢測到的實際光照數(shù)據(jù)值超過人為設定的上限值,警報模塊便會進行視覺和聽覺的報警。同時如果當測的值比下限值還低也會進行報警。當系統(tǒng)出現(xiàn)異?,F(xiàn)象可以重新刷新復位讓整個設計比較完整。如圖4.3:圖4.3所需功能圖4.1.2程序設計在軟件的總功能上,本設計首先進行核心控制芯片的初始化,其次在芯片之后對各個小系統(tǒng)模塊進行初始化如:顯示器和傳感器的這里簡稱為硬件的初始化。最終在初始化完成之后首先會在液晶屏上顯示設定值的數(shù)據(jù)和傳感器采集的外界光照數(shù)據(jù)和固定的單位字符信息。本設計中警報有兩種情況:當感光模塊檢測到的光照信息高過人為設定的MAX值或小于設定的MIN值便會通過控制芯片的輸入輸出引腳定時翻轉(zhuǎn)的高電平信號使得led和訊響器電路中流過電流才形成回路進行工作產(chǎn)生警報。如果外界光照處于上下設定的極值范圍內(nèi)系統(tǒng)便會處于正常工作狀態(tài)。修改極值的大小也有可能不在閾值范圍內(nèi)來使得報警器工作。作為設計的核心所有的模塊都需要將所獲得的信號經(jīng)過單片機的分析處理來進行反饋和控制具體流程如圖4.4:圖4.4程序流程圖4.2顯示代碼設計4.2.1液晶屏初始化數(shù)據(jù)顯示功能通過LCD1602液晶屏幕實現(xiàn),在LCD接通電源時,LCD的工作模式、顯示狀態(tài)、清除畫面、輸入方式、光標移動等設定會在一定的時間初始化LCD。以下使用命令字初始化LCD602的流程如圖4.5所示:LCD初始化LCD初始化工作方式設置工作方式設置顯示狀態(tài)設置顯示狀態(tài)設置清屏清屏輸入方式設置輸入方式設置返回返回圖4.5LCD初始流程圖01DLNF命令字與處理器設定LCD接口數(shù)據(jù)位DL、顯示行數(shù)N、字型F。DL=1:8位數(shù)據(jù)接口(D7-D0)。DL=0:4位數(shù)據(jù)接口(D7-D4)N=1:2行,N=0:1顯示1行。F=1:5x10,F(xiàn)=0:5x8。例:00111000B(0x38)設置數(shù)據(jù)位數(shù)8位、2行顯示。00001DCB命令字設定整體顯示開關(guān)D、光標開關(guān)C、光標位置的文字閃爍B。D=1:打開顯示,C=0.光標不顯示。B=0:光標位不閃爍。示例00001100B(0x0C)打開LCD顯示器,光標不顯示,光標位不閃爍。清空命令字0x01界面重新加載。000001I/D命令字設定光標移動方向,判斷整體顯示是否移動。I/D=1:增量方式向右偏移,I/D=0:減量方式向左偏移。S=1:位移,S=0:不位移。例:00000110B(0x06)將光標增量向右移動,設定為顯示字符不移動。在本設計中用LCD_Write_Com(0x38)函數(shù)設定屏幕顯示數(shù)據(jù)位數(shù)8位,兩行顯示。并通過延時函數(shù)進行延時。同樣將0x08命令字通過寫入函數(shù)完成顯示關(guān)閉的功能,把命令字換成0x01進行清屏命令。同時也需要延時,將命令字0x0c完成LCD開和光標。4.2.2引腳說明在軟件代碼中用2.5引腳為數(shù)據(jù)和命令選擇控制端,端口為0表示命令和數(shù)據(jù);端口等于1為數(shù)據(jù)。用2.6引腳為讀取/寫入控制線,該控制線為0是寫入操作;該控制線等于1為讀取操作。用2.7引腳作為始能端執(zhí)行命令的使能引腳,接單片機的任意輸入輸出。顯示屏幕1602的基本操作分為以下四種:讀狀態(tài)時當輸入命令選擇控制端為0控制線等于1始能為高功率輸出狀態(tài)字。讀數(shù)據(jù)輸入命令選擇控制端為1控制線等于1始能為高功率輸出為數(shù)據(jù)。寫命令輸入命令選擇控制端為0控制線等于0始能為高功率。寫數(shù)據(jù)輸入命令選擇控制端為1控制線等于0始能為高功率。在執(zhí)行寫指令、寫數(shù)據(jù)、讀三個命令操作之前,必須先執(zhí)行讀狀態(tài)操作來查詢占用標志,當占用標志為0時,可以執(zhí)行以上的操作,判忙函數(shù):bitLCD_mang(void){ifdefCheck_bDataPort=0xFF;//端口為輸入RS_CLR;//RS=0:命令RW_SET;//RW=1:讀EN_CLR;//EN=0_nop_();EN_SET;//EN=1:高脈沖return(bit)(DataPort&0x80);//采用“與”操作屏蔽掉低7位elsereturn0;}4.2.3數(shù)據(jù)顯示清屏函數(shù)“voidLCD_Clear(void);”就是將清屏命令字0x01,將光標設置為第一行第一列來達到清屏的效果。代碼中將初值固化在主函數(shù)中因此清屏函數(shù)在該系統(tǒng)中也起到復位的功能“LCD_Write_Com(0x01)”函數(shù)將清屏命令寫到LCD。變量數(shù)據(jù)顯示代碼用來顯示當前外界的光照強度因為外界光照強度會隨時變化,即顯示HB1750傳感器測量的數(shù)據(jù),把隨時改變的數(shù)據(jù)寫到屏幕中去。其中,輸入?yún)?shù)x第四象限的正半軸,y表示第四象限的負半軸,Data表示所要輸出的字符。代碼如下:voidLCD_display(unsignedcharx,unsignedchary,unsignedcharData){ unsignedcharbai,shi,ge;//定義無符號字符型變量 bai=Data/100; shi=Data%100/10; ge=Data%10;if(y==0)//判斷在LCD顯示在第幾行 { LCD_Write_Com(0x80+x); }else { LCD_Write_Com(0xC0+x); }LCD_Write_Data(bai+0x30);LCD_Write_Data(shi+0x30);LCD_Write_Data(ge+0x30);}4.3光照檢測代碼設計在感光模塊中用到了I2C通訊協(xié)議在進行光數(shù)據(jù)采集時需要先對控制芯片和傳感器之間完成數(shù)據(jù)通信才能夠?qū)?shù)據(jù)傳給單片機進行處理和顯示。需要進行初始信號的開始和應答確認標志才可以從其中讀取數(shù)據(jù)的值最后有最終結(jié)束標志才算完成。具體流程如圖4.6所示:圖4.6通訊流程圖4.3.1IIC雙向通信IIC是一種將多個設備連接到同一總線上的集成電路串行通信總線,每個設備都用作實時數(shù)據(jù)傳輸?shù)目刂圃?,該總線的兩個主要接口,一個數(shù)據(jù)線。時鐘線該模塊既可以做主設備也可以做為從設備在本系統(tǒng)中將控制芯片作為主設備傳感器作為從設備。在數(shù)據(jù)傳輸過程中有三種類型的信號,它們是:初始信號:當時鐘線處于高電平時,數(shù)據(jù)線從高電平跳到低電平,產(chǎn)生初始信號傳輸數(shù)據(jù)。最終標志:當時鐘線處于高電平時,數(shù)據(jù)線從低電平跳到高電平,產(chǎn)生最終信號終止數(shù)據(jù)傳輸。應答確認標志:主要用于在數(shù)據(jù)通信過程中,在接收結(jié)束和上傳結(jié)束時確認發(fā)送控制字符發(fā)送的數(shù)據(jù)沒有錯誤。主機和從機之間的響應信號代碼如下:發(fā)送應答信號首先寫應答信號并拉高時鐘線進行函數(shù)延時,同時拉低時鐘線bitBH1750_RecvACK(bitack){SCL=1;//拉高時鐘線Delay5us();//延時CY=SDA;//讀應答信號SCL=0;//拉低時鐘線Delay5us();//延時returnCY;}4.4警報設計4.4.1報警功能報警功能通過led燈和訊響器實現(xiàn),當檢測到光照強度高于最大閾值報;當前光照強度低于最小閾值訊響器工作。蜂鳴器是低電平觸發(fā),即控制端給它一個低電平,蜂鳴器發(fā)聲,在外界光照超過最大閾值或低于最小閾值蜂鳴器持續(xù)發(fā)出類似警報的聲音,使用條件語句判斷符合條件是給引腳一個低電報警器發(fā)聲。具體代碼如下:voidjudge()//判斷{ if(Nlight>=Gmax||Nlight<Gmin) { beef=0; } else { beef=1; } }4.3.2光照檢測照的檢測使用了BH1750.c文件首先通過初始化代碼BH1750芯片光設定采用高-分辨率模式。通過連續(xù)讀取內(nèi)部數(shù)據(jù)代碼。在此函數(shù)中先調(diào)用IIC通信函數(shù)的初始代碼用于發(fā)送一個起始信號再通過“BH1750_SendByte(SlaveAddress);”向IIC總線發(fā)送一個設備地址和寫入信號,通過for循環(huán)語句連續(xù)讀取兩個地址數(shù)據(jù),并存儲在BUF中。最后的數(shù)據(jù)必須返回。最后形成停止信號來連續(xù)讀取BH1500內(nèi)部數(shù)據(jù)的功能程序。代碼如下: return(guang);}在主函數(shù)中,顯示變化數(shù)據(jù)的函數(shù),定位之后,一位位的顯示在LCD界面上。在主函數(shù)中有一個界面顯示函數(shù),他主要是定位并顯示固定在界面中不經(jīng)常變化的指示說明單位。4.5按鍵代碼設計4.5.1按鍵功能在本設計中除去單片機系統(tǒng)中自帶的復位按鍵。在進行設定的最大值最小值上也采用按鍵來進行修改。在程序的設計中先用key函數(shù)來完成按鈕的功能,其中用判斷語句判斷此時各個按鈕的一端是不是低電平如果是的話就進行一個延后。并完成各個按鈕的功能操作。并在單片機的控制下顯示在屏幕中。以下為各個按鍵的功能:第一個按鍵用于設定最大閾值的,設置報警的閾值,開機系統(tǒng)默認在第一個界面,當按下按鍵s1,引腳給一個低電平在界面的最大閾值會增加100.判斷按鍵1是否被按下,同時增加數(shù)據(jù),調(diào)用顯示寫入函數(shù),顯示閾值設置界面;第二個按鍵用于設定最大閾值的減數(shù)據(jù),設置報警的閾值,默認一個閾值,當按下按鍵s2,引腳給一個低電平在界面的最大閾值會減少100.判斷按鍵1是否被按下,同時增加數(shù)據(jù),調(diào)用顯示寫入函數(shù),顯示閾值設置界面。第三個按鍵用于最小閾值加數(shù),每按一次在主界面上都會顯示最小閾值增加10個單位同時判斷是否有效給予顯示器寫入新的數(shù)據(jù)第四個按鍵在第一個界面用于最小閾值減數(shù),每按一次在min閾值減少10個單位同時判斷是否有效給予顯示器寫入新的數(shù)據(jù)代碼如下:voidkey(){ if(s1==0) DelayMs(20); if(s1==0) { Gmax+=100;//光強度 } if(s2==0) DelayMs(20); if(s2==0) { Gmax-=100;//光強度 } if(s3==0) DelayMs(20); if(s3==0) { Gmin+=10;//光強度 } if(s4==0) DelayMs(20); if(s4==0) { Gmin-=10;//光強度 }}4.6延時功能設計4.6.1延時函數(shù)系統(tǒng)中對顯示屏的讀寫操作要符合它的時間順序,設計中處理器的運算速度是遠遠大于顯示屏和其他設備的,所以有必要編寫延時代碼對各個器件中實現(xiàn)功能時加上延時功能,編寫的流程如圖4.7所示:圖4.7延時功能圖延遲函數(shù)中參數(shù)為無符號字符輸入,沒有返回值。變量代碼如下:voidDelayUs2x(unsignedchart){while(--t);delayUs2x()}4.7調(diào)試與下載在系統(tǒng)硬件設計的基礎上,根據(jù)各模塊的功能進行編寫程序,主要完成了主單片機處理系統(tǒng)和數(shù)據(jù)采集系統(tǒng)的軟件,這兩個系統(tǒng)根據(jù)具體功能調(diào)用各頭文件和功能函數(shù),采用C語言編寫。此外,對控制程序進行了編寫,實現(xiàn)了采外界光照強度值的顯示在液晶屏,完成自動控制的任務,編寫的程序可以運行在PC上,主單片機定義和處理系統(tǒng)與GY-30感光數(shù)據(jù)采集系統(tǒng)的C51程序由keiluvision5軟件編寫,通過編譯生成HEX文件,再由stcisp軟件將十六進制文件燒在stc89c52rc單片機。下面為我在PC機上對工程程序的調(diào)試與生成HEX文件的過程圖如4.7所示:圖4.7生成HEX文件在生成HEX文件后,我通過串口下載器,與單片機下載器底板。在串口上我將插針數(shù)據(jù)線接到USB串口的GND端,TXD發(fā)送數(shù)據(jù)端,RXD接收數(shù)據(jù)端,因為我的下載器地板是單獨通過DC口供電的就沒有接電源端。插針數(shù)據(jù)線的另一端我接到下載器底板的底線,同時將TXD和RXD與PC電腦端是交叉相連,在底板上P30與P31為定義的發(fā)送數(shù)據(jù)和接收數(shù)據(jù)端下圖為我通過STC-ISP軟件燒寫HEX文件到單片機的過程,先連接好外部線路,如圖4.8所示:圖4.8數(shù)據(jù)下載連線圖在軟件中自動檢測并選中相應的串口名字,自動檢測單片機的型號,再此過程中我需要先將下載器斷電在低電平下檢測單片機的型號通過給電形成一個脈沖來檢測。同理在下載HEX文件時也需要先選擇文件下載命令后通過自鎖開關(guān)打開上電來燒寫。下面為使用STC-ISP軟件燒錄HEX文件成功如圖4.9所示:圖4.9燒寫HEX文件5系統(tǒng)測試5.1實物調(diào)試在硬件焊接好之后,軟件設計好之后,硬件連接好,通過keil軟件創(chuàng)建環(huán)境工程文件將所編寫的各個功能代碼導入成為工程,在該軟件平臺內(nèi)設置生成十六進制的參數(shù)。并將燒錄完程序后將燒錄好程序的單片機插到整體系統(tǒng)焊好底座上需要通過電腦端的USB口連接電源線進行供電來功能的調(diào)試,如圖5.1所示。圖5.1硬件測試圖5.2功能測試檢測其中光照強度顯示檢測:預計效果(在屏幕的第一行顯示當前的外界光照強度)實際效果(第一行顯示光照強度為193L)。閾值顯示檢測:預計效果(在屏幕的第二行分別顯示最大最小的閾值)實際效果(最大閾值為1000,最小閾值為10)。綜上所述可以看出光照,設定上下值的數(shù)據(jù)信息都可以及時的顯示在交互面板上。顯示模塊基本工作正常在進行光照檢測和顯示功能都是可以和預期一樣工作的。便繼續(xù)對按鈕和警報功能進行測試效果如表5.1:表5.1按鈕和警報測試編號測試模塊設想功能測試功能1按鈕s1設定的MAX值增大每一次都增加100lx按鍵s1按一下在顯示界面最大閾值增加100單位2按鈕s2設定的MIN值減少減少100lx按鍵s2按一下,顯示界面最大閾值減少100單位3按鈕s3設定的最小閾值的增加10按鍵s3按一下從顯示界面最小閾值增加10單位4按鈕s4設定的下限值減少10按鍵s4按一下光照下限值減少10,到0的時候重新到250lx逐一減少5上限報警外界光照強度大于設定的最大值MAX,報警外界光照122,閾值調(diào)至100,蜂鳴器響同時電流經(jīng)過led發(fā)光二極管進行聲光警報6下限報警外界光照強度小于設定最小值MIN進行聲光報警當前有光照199,閾值調(diào)至200,蜂鳴器響led二極管發(fā)光通過上面的測試表可知按鈕與報警功能都可以進行正常工作。整體測試通電后屏幕上顯示MAX光照的閾值、MIN光照的閾值、NOW外界變化的光照三行數(shù)據(jù),和最初的設計顯示一樣的。當按下按鍵1后,MAX光照的閾值增加了100,每按一下按鍵1,都會在界面增加100,由于設置顯示位只有四位最多增加到9900到最后在點擊按鍵1會重新從0累增100。按鍵2是減100最少到0如果繼續(xù)的話會回到9900重新開始。按鍵3是最小值加10設置最多為250數(shù)值。同時外界光照變化屏幕上的數(shù)據(jù)也會跟著顯示變化數(shù)據(jù)。當環(huán)境參數(shù)超過MAX閾值的情況下的反應,蜂鳴器立刻預警,同時紅色LED燈隨之亮起。將環(huán)境參數(shù)改變在MIN的閾值以下,蜂鳴器立刻預警,報警燈亮可以得出結(jié)論整體設計可以正常工作。6總結(jié)最終完成本設計其具體實現(xiàn)了:通過外部感光模塊采集實時的光照數(shù)據(jù)通過I2C通信交給處理器分析通過程序控制將外界光照實時數(shù)據(jù)和固定的顯示單位和可以通過按鍵更改
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 賈科梅蒂課件
- 2026年房地產(chǎn)法律風險的行業(yè)標準與監(jiān)測機制
- 2026春招:行政主管面試題及答案
- 2026年直流配電系統(tǒng)在建筑中的應用
- 2026春招:五糧液試題及答案
- 貨運安全培訓計劃大綱課件
- 互聯(lián)網(wǎng)醫(yī)療支付解決方案
- 醫(yī)療衛(wèi)生事業(yè)發(fā)展與展望
- 2026年海南體育職業(yè)技術(shù)學院高職單招職業(yè)適應性測試備考題庫有答案解析
- 2026年漢中職業(yè)技術(shù)學院高職單招職業(yè)適應性測試參考題庫有答案解析
- 假體豐胸培訓課件
- 中建八局項目如何落實鋼筋精細化管理
- 婚外賠償協(xié)議書
- 血小板減少紫癜課件
- 安徽省江南十校2025-2026學年高一上學期12月聯(lián)考生物(含答案)
- 2025年大學公共管理(公共管理學)試題及答案
- 雨課堂學堂在線學堂云《藥物信息學(山東大學 )》單元測試考核答案
- GB 5009.11-2024食品安全國家標準食品中總砷及無機砷的測定
- 全面風險清單-采購與業(yè)務外包管理風險(2023年11月-雷澤佳編制)
- copepe低熔點皮芯型復合短纖維生產(chǎn)工藝的開發(fā)
- 管理學-李彥斌
評論
0/150
提交評論