基于單片機的智能藍牙臺燈_第1頁
基于單片機的智能藍牙臺燈_第2頁
基于單片機的智能藍牙臺燈_第3頁
基于單片機的智能藍牙臺燈_第4頁
基于單片機的智能藍牙臺燈_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

[5]。假如沒有發(fā)現(xiàn)任何人類活動,那幺便立即停止使用燈光。而當處在手動模式時,需要對按鈕2與按鈕3進行逐個測試。假設控制按鍵2被按下,則減少臺燈點亮度;假設控制按鍵3被按下,則增長臺燈點亮度。最后,通過藍牙模塊與手機進行數(shù)據(jù)傳輸,實現(xiàn)手機藍牙功能的控制,并將臺燈的狀態(tài)信息上傳到手機進行顯示。

開始開始定時器初始化定時器初始化串口初始化串口初始化是是按鍵1按下?按鍵1按下?否結束控制否結束控制是是自動模式自動模式否否是是最近半分鐘檢測到有人?是是最近半分鐘檢測到有人?按鍵2按下?按鍵2按下?否否檢測環(huán)境亮度降低亮度否否檢測環(huán)境亮度降低亮度是調(diào)節(jié)臺燈亮度熄滅臺燈按鍵3按下?是調(diào)節(jié)臺燈亮度熄滅臺燈按鍵3按下?否增加亮度否增加亮度傳輸藍牙數(shù)據(jù)傳輸藍牙數(shù)據(jù)結束結束圖4-1主函數(shù)流程圖

4.2.2模數(shù)轉(zhuǎn)換程序設計在展開ADC0832控制芯片的數(shù)據(jù)信息收集以前,單片機要求朝向ADC控制芯片輸送一個起始數(shù)字信號。因為ADC0832具備2個AD交換要道,所以還要求輸送一個要道選用數(shù)字信號,以明確要展開交換的要道。之后展開數(shù)據(jù)信息收集,并且從ADC控制芯片獲得2個儲存字節(jié)的數(shù)據(jù)信息。第1個儲存字節(jié)是正向自動輸送的數(shù)據(jù)信息,第2個儲存字節(jié)是反向自動輸送的數(shù)據(jù)信息。展開兩次自動輸送是為了校對核驗這2個儲存字節(jié)的數(shù)據(jù)信息,以判定有沒有自動輸送問題錯誤。在結尾,將獲取到的AD最終結果自動智能返回給主數(shù)學函數(shù)。圖4-2模數(shù)轉(zhuǎn)換流程圖4.2.3PWM調(diào)光程序設計脈沖寬度調(diào)制(PWM)是一項用于調(diào)節(jié)光線的技術。其理論是設立一個固定的時間工作周期,本次研究設計中設立是10毫秒。為了規(guī)避臺燈產(chǎn)生明暗閃爍,工作周期時間不能過長。之后在這一個工作周期內(nèi),經(jīng)過明確不同的高低壓工作電平比重來控制管理臺燈的實際亮度。綜上所述,亮和熄滅時間方面的比重是3:7.當亮的時間占據(jù)的總體比重愈大時,臺燈就會變得更加明亮。圖4-3PWM調(diào)光程序流程圖4.2.4按鍵程序設計首先需進行按鍵檢測,若未被按下,則需重新掃描和判斷。當按鍵被觸發(fā)時,應采取適當?shù)难舆t操作,以去除抖動問題實際現(xiàn)象,充分保障無影響。隨后等候控制按鍵排放,并且參考依據(jù)不同控制按鍵完成各自功能,使用提前撰寫的控制按鍵應用程序區(qū)域來執(zhí)行相應操作。圖4-4按鍵掃描流程圖第5章設計和實現(xiàn)手機藍牙應用系統(tǒng)5.1應用開發(fā)環(huán)境此次我們采用了一個名叫E4A(易安卓)的中文安卓程序設計工具來構建我們的手機藍牙應用開發(fā)環(huán)境。該工具允許我們在其平臺上方便地訪問并控制手機中的傳感器及藍牙組件。E4A是一款完全以中文呈現(xiàn)的安卓程序設計的語言,它是在2013年06月01日首次發(fā)布的。這個工具的目標用戶包括了各類的企業(yè)、網(wǎng)站管理員、開發(fā)人員、互聯(lián)網(wǎng)服務商以及其他需要利用安卓系統(tǒng)創(chuàng)建APP的移動設備制造商等。這款編程語言的設計理念十分契合中國人的編程思路,這使中國人能快速掌握操作方法。預估E4A將會變成全世界第一個具備豐富功能并且容易運用的所有漢語AndroidAPP開發(fā)編輯語言。E4A,又稱之為易安卓,是一個以谷歌Simple編輯語言為根本基礎的操控應用軟件研發(fā)應用平臺,主要目標是讓用戶能簡單地構建出android應用。它的基本語法和易語言的基本語法非常接近,因此對于熟悉易語言的人來說,學習并掌握E4A并不困難。E4A提供了一個視覺化的開發(fā)界面,同時還具有優(yōu)秀的智能語法建議能力。它允許我們用純粹的中文字符來編寫代碼,這使得操作更具親近感,而且不會因記憶英語關鍵字而產(chǎn)生困擾。此外,E4A已內(nèi)置了Android1.5SDK開發(fā)套件。(l)新建項目工程第一步,開啟E4A操控應用軟件,前進入主頁面。在那里,你會發(fā)現(xiàn)1個全新建項目工程的控制面板。在這一個控制面板上,你要求自動輸入一個英文包名和使用名字。當項目信息輸入完畢時,該項工作會被立即保存至位于E4A軟件設置路徑的projects文件夾內(nèi)。若您完成了項目的構建,所產(chǎn)生的APK文件也會和原始的項目數(shù)據(jù)存放在同一位置。此外,你可以使用鼠標的右鍵快捷方式迅速啟動新E4A項目的設計過程。圖5-1E4A新建工程界面(2)可視化界面設計E4A的設計接口具有獨特的風格,它是通過以行為主、列為輔的方法布局部件。當構建界面的時候,系統(tǒng)將會自動使部件與網(wǎng)格保持一致。值得注意的是,在插入部件的過程中,同一線上的部件高度應保持一致,且不可出現(xiàn)堆疊現(xiàn)象,這可能引發(fā)解析出錯的風險。圖5-2正確的界面設計圖5-3錯誤的界面設計(3)代碼的輸入E4A具備和易編輯語言類似的功能——人工智能表達語法自動輸入意見,這代表了客戶不需要因自動輸入漢語存儲字符而耗用額外附加的時間。只需鍵入關鍵字詞的首個字母縮略形式,即可立刻獲取相關語法信息。同時,若鼠標移至關鍵字或者指令之上,系統(tǒng)將會主動展示相關的語法說明區(qū)域。圖5-4代碼輸入提示(4)調(diào)試運行通過編輯翻譯自動形成APK資料文件之后,我們能夠選用將其安裝設置到安卓模擬仿真器設備展開測試,或安裝設置到實際移動智能手機上展開測試。5.2手機藍牙應用開發(fā)5.2.1設計應用概述本設計所使用的是E4A中文編程軟件進行編輯和設計的藍牙應用程序。在設計界面功能時,首先需要將所需的控制模塊添加到相應的界面中。主要分為三個部分,包括:①與藍牙連接相關的功能、②對臺燈進行控制的功能、③獲取臺燈狀態(tài)的功能。5.2.2藍牙連接相關的功能在進行臺燈的控制和狀態(tài)讀取之前,需要先建立藍牙設備的連接。通過將手機APP和單片機藍牙模塊連接起來,我們可以進行相應的控制操控管理。藍牙鏈接的具體過程包含搜查能夠使用的藍牙機器設備以及鏈接或者切斷藍牙機器設備。圖5-5藍牙搜索連接界面一旦用戶點擊搜索設備按鈕,系統(tǒng)將自動檢查周圍所有能夠連接的藍牙設備,并把它們的設備地址標記在列表框里。如果發(fā)現(xiàn)目標設備,用戶可以選擇點擊該設備名稱來進行藍牙連接,并且連接結果將會實時顯示在狀態(tài)標簽上。圖5-6藍牙相關的程序5.2.3臺燈控制相關的功能手機端藍牙控制主要是對臺燈的運行模式以及亮度進行控制??偣舶ㄈ齻€控制按鍵,分別是亮度減、亮度加、自動模式。當點擊亮度減或亮度加時,臺燈會切換到手動模式,當點擊自動模式按鍵后,臺燈又會回到自動模式運行。

圖5-7臺燈控制相關的界面設計圖5-8臺燈控制相關的程序第6章硬件組裝與調(diào)試6.1元器件的選擇與測量本次綜合設計運用的元器件設備包含:STC89C51單片機、分子晶振、額定工作電阻、額定作用電容、控制按鍵、控制開關、工作電源座、三極晶體管構件、發(fā)光二極晶體管設備、AD控制芯片、紅外熱釋傳感器設備以及藍牙功能應用模塊等。在開始對上述構件實行焊接加工前,我們必須深入研究相關文獻以掌握每種部件的具體屬性,從而確保正確的操作流程。這類設備的規(guī)格可以在電子零件市場中輕易尋得。在執(zhí)行焊接任務時,需特別注意各部件的正負極性、電阻與電容量大小及芯片插孔排序等問題。一般而言,可通過顏色環(huán)或使用萬用表精確測定電阻值;而電容和晶振等部分則會在其自身標注出尺寸;關于某些特殊部件的正負極性問題,可參考相應文檔予以確認。6.2元件的焊接與組裝電路的組裝常常有兩種模式,一類是焊接加工,另一類是運用插接面包板。不管應用哪一類模式,都要求關注以下多個角度。(1)為了充分保障運用的元器件設備皆是合格的,在組合安裝設置前應該展開全面調(diào)試以論證其功能。(2)為了充分保障焊接加工和布線設計的準確展開,需要維持所有集中工作電路的組合安裝設置分布方向一致。(3)在分立元件設備的時候,應該精確辨別元件設備的正反極性,同時把標識安置到容易觀測的具體位置,方便未來的檢測和測試運行工作。針對具備正陰極性的元件設備(譬如電解電容器設施、分子晶體二極晶體管設備等),在組合安裝設置過程里特別需要特別關注極性,不然將會造成測試實驗失敗。(4)為了簡單化全面處理焊接加工和檢測工作電路,能夠選用不同顏色的金屬傳導線來表示反映它們的不同的使用性能。一般情況條件里,我們習慣紅色金屬傳導線代表陽極,藍色金屬傳導線代表陰極,黑色金屬傳導線代表地線,黃色金屬傳導線代表數(shù)字信號線等。自然,也能夠只運用一類顏色的金屬傳導線。(5)在真實焊接加工過程里,應該盡可能維持連接線布局計劃簡約并且方便。假設要求鏈接到集中工作電路控制芯片,需要從其四周展開連接線。與此同時,應該盡可能規(guī)避連接線互相交叉重合,并且規(guī)避從工作電路元器件設備的上方展開連接線。(6)為保證電子設備運行無誤并順利測試,所有的接地點應被連結成單一基準點。除了能保持線路整潔且易于操作外,合理的設計也能提升其穩(wěn)定性和可信賴度,同時方便了檢測、調(diào)整與問題解決。若預先繪制一張安裝藍圖,則會大大提高效率,使得整個過程更加迅速而有效率。6.3電路的調(diào)試調(diào)試過程是針對系統(tǒng)的優(yōu)化、改良及檢測階段。其主要目的是通過對已構建好的電路進行測驗來評估其性能與運行狀況。在此基礎上,我們需要根據(jù)結果對其中的部分參數(shù)做出相應的修改,以便達到預設的設計目標。為了保證調(diào)試工作的順利推進,我們在開始前需明確各項測試任務、操作流程、調(diào)試手段以及所需要的設備等,這樣才能做到胸中有數(shù),從而保障調(diào)試活動的成功實施。6.3.1調(diào)試方法兩條主要的調(diào)整策略被采用。首先,我們采取一邊組裝一邊測試的方法。我們將復雜的電子線路劃分為各個部分并依次安裝與檢測,接著逐漸擴展測試區(qū)域直至全部完工。這通常用于新設計中的電路。其次,我們在所有元件連接完畢后再一次對整套設備進行全面檢查。此方式適合于簡單的且系統(tǒng)的電路調(diào)試。6.3.2調(diào)試步驟(1)通電前檢查當焊接作業(yè)完畢之后,切勿立即開啟電源,首先需要對線路連接情況做全面審查,這包含了有誤的鏈接(如只在一側(cè)正確的兩段或一段是錯的)、遺漏的線纜、過多的線纜以及潛在的短路問題(特別是在小間距下,例如引腳到焊點的距離)。另外,也要確保每一個元件使用的接口都符合圖紙要求。在核查線路的過程中,建議利用指針式的萬用表設置為Ω×1檔位或是選擇數(shù)字萬用表的Ω檔蜂鳴模式進行檢測。并且盡可能地直接測試元器件的引腳,如此一來能夠一同找出觸碰不良的情況。(2)通電觀察在插入電源前,需確認所有線路設置正確且沒有遺漏(首先切斷電源按鈕,然后完成電源線的連結再開啟電源按鈕)。一旦啟動了電源,不能立刻開始對設備的功能進行檢測,相反,我們需要細心地檢查整套系統(tǒng)中有沒有任何異樣情況發(fā)生,例如零部件過熱、損壞,或者有漏電、短路或是斷路等問題。若是在測試過程當中發(fā)現(xiàn)了系統(tǒng)的異常,必須馬上停止供電并解決掉問題之后再次進行試驗。另外,也得按照規(guī)定來測定每個零部件接口處的電流值,而不是只看整體的電源電流,以便保證各個零部件都能順利運行。(3)單元電路調(diào)試當對單個元件組進行測試的時候,我們需要清楚地了解這一步驟具體的要求是什么。為使測試過程順暢無阻,我們可以根據(jù)電路設計中的信號流動路徑來安排測試的步驟。首先逐一測試每個部件,然后把其輸出的信息作為下一個環(huán)節(jié)的輸入數(shù)據(jù),這樣能有效保障整體設備的檢測更為流暢且易于操作。單元測試分為靜態(tài)調(diào)試和動態(tài)調(diào)試兩種方式。對于無外界刺激下的電子設備各部分節(jié)點電壓測量,尤其是對有源組件的靜態(tài)操作點檢測是靜態(tài)調(diào)整的主要任務。此過程有助于盡早識別已受損或者接近故障的零部件。至于動態(tài)調(diào)節(jié)則依賴于上游輸出的信息或是自身產(chǎn)生的數(shù)據(jù)以評估單個模塊的各項性能是否滿足預設標準,涵蓋了如信號強度、波型形態(tài)、相對位置、增益與頻率等因素。對于信號產(chǎn)生電路,一般只需要關注動態(tài)指標。通過對靜態(tài)和動態(tài)測試結果與設計指標的對比分析,我們能夠?qū)﹄娐泛蛥?shù)進行適當?shù)恼{(diào)整。在調(diào)試階段,應該詳盡地記錄相關信息。(4)整機聯(lián)調(diào)當每個子系統(tǒng)都經(jīng)過測試且無誤時,我們無法確保其構成的大型系統(tǒng)的功能必定優(yōu)良。所以,有必要執(zhí)行全面的電路檢測。此項任務的核心目標是評估和量測動態(tài)特性,并將所得數(shù)據(jù)與預設標準一一比較,發(fā)現(xiàn)問題并提供解決策略,接著調(diào)整整個電路及相關參數(shù)直至滿足全部設計的性能需求。

第7章總結經(jīng)過超過三個月的努力,我已經(jīng)成功完成了本次畢業(yè)設計的任務——基于單片機的智能臺燈。雖然這項任務并非獨一無二,但在執(zhí)行的過程中,我積累了許多關于系統(tǒng)構建和設計的寶貴經(jīng)驗,這對我的成長有著極大的益處。從構思到驗證,再到制造電路板、編寫代碼直至最后的順利測試,我都全程參與并完成了一整套系統(tǒng)的建設。對于這樣的實踐機遇,我是極為珍視的。實踐與理論相結合,展現(xiàn)了大學生的實際操作能力。借助對資源的檢索及收集相關的研究文件,我們的自學能力和操作技能得到了提升。由被動的接收信息轉(zhuǎn)變成主動地尋找答案,這標志著我們在學習策略上的重大進步。傳統(tǒng)的教學方式可能會讓我們僅僅掌握大量課本內(nèi)容,然而經(jīng)過這次畢業(yè)設計的經(jīng)歷,我們懂得了怎樣把所學的理論應用到實際行動中去,也明白了如何更有效地解決實操與理論結合的問題,找準關鍵點,戰(zhàn)勝挑戰(zhàn),并能靈活利用已有的知識。在這個項目中,我能夠有效地整合多學科如單片機原理、C語言編程、模擬電子學與數(shù)字電子學的關鍵知識點并將其運用至實踐當中。經(jīng)過深度研究及實施,我對于這些重要概念有更為深刻的認識。同時,我也熟練于自系統(tǒng)的需要開始,直至提出解決方案,分割出功能模塊,完成原理圖的設計與描繪,制造PCB版,編寫軟件代碼,最后是軟硬設備的測試等一系列步驟,這使我有豐富的工作經(jīng)驗。雖然這個項目的目標較為簡易,但是其涵蓋了許多關于單片機的基本內(nèi)容,從而增強了我在這方面技能的發(fā)展。這次設計為我將理論能力轉(zhuǎn)化為實踐能力提供了絕佳機會,因為盡管單片機的功能日益強大,但其基本原理卻保持相對穩(wěn)定不變。

經(jīng)過此次畢業(yè)項目的體驗,我深感理解專業(yè)技能的重要性和體會到了理論與實際操作之間的緊密聯(lián)系。同時,我也對自己四年的學業(yè)做了全面的評估。雖然在這個項目里,我在應用和連接知識方面還存在一些不足之處,但我會繼續(xù)在我的職業(yè)生涯和學習過程中持續(xù)奮斗,不斷地自我改進。這個為期三個月的項目是對于我之前所學知識的一次系統(tǒng)的提高和擴展,將來我會更深入地加強理論根基,增強實操技巧,以便能在工作中及學習上獲得更多的突破。在設計過程中,由于時間緊迫,不免就會存在很多問題的地方。從新再次審查這個設計,我能夠逐漸拓展其功能,譬如增添接近桌面提示安全保護功能、自動顯示實際溫濕度等,以提升設計的智能化水平。參考文獻李曉帥,郝潤生,楊海祺,等.基于單片機控制的智能螺旋丸設計[J].數(shù)字技術與應用,2020,38(07):10-12.張利.近視眼的眼健康管理[J].中國眼鏡科技雜志,2019,(03):108-109.王烈進,王游司,陳洪燕,等.基于51單片機的智能手環(huán)藍牙模塊設計[J].電腦知識與技術,2018,14(23):260-261.梁書博,尹麗紅,何佳寶.基于單片機的農(nóng)業(yè)魚池中水的溫度和pH值檢測系統(tǒng)[J].農(nóng)民致富之友,2018,(15):144.鄧宇.基于單片機的智能臺燈設計[J].電子制作,2018,(12):9-10+18.王凌波.基于光敏電阻特性的光控燈實驗平臺設計[J].蘭州石化職業(yè)技術學院學報,2015,15(04):23-25.秦鳳梅.基于藍牙技術的手機數(shù)據(jù)查詢系統(tǒng)研究與設計[J].數(shù)字技術與應用,2015,(07):152.夏洋,龔毅,周強,等.道路障礙非接觸式動態(tài)測試與車輛通行能力判斷方法研究[J].北京汽車,2015,(01):31-33.王方.光學雷達用大功率LED脈沖準直光源設計[D].西安理工大學,2014.季晨雪,鄭小倩.基于單片機的安全報警器設計[J].山西電子技術,2014,(01):41-42+47.車微.分析DSP的發(fā)展及其在通信工程中的應用[J].才智,2013,(23):250.陸建敏.光敏傳感器的應用——聲光控開關電路[J].企業(yè)科技與發(fā)展,2012,(18):36-39.黃珍,方瑞華,葛如海.電子防眩目后視鏡原理[J].重慶交通大學學報(自然科學版),2012,31(02):318-320+334.呂璠.熱釋電紅外報警器的設計[D].河北工業(yè)大學,2011.楊鎮(zhèn)宇.基于機器視覺和SVM的花椒外觀品質(zhì)檢測技術研究[D].西南大學,2010.羅海濱.白光LED用Ba_2Si_3O_8:Eu~(2+)綠色熒光粉制備及其表征[D].浙江大學,2010.徐文燕.上海市中小學生近視眼危險因素評估及干預對策探討[D].復旦大學,2009.崔玉珩.藍牙技術在汽車電子半實物仿真系統(tǒng)中的應用[D].大連理工大學,2008.張豪.基于單片機的模糊控制在節(jié)水灌溉控制系統(tǒng)中的實現(xiàn)[D].江南大學,2007.胡湘韓.關于黑龍江省發(fā)展可再生能源農(nóng)業(yè)的建議[J].決策咨詢通訊,2004,(06):77-78.紀明宇.通用藍牙模塊的研究與開發(fā)[D].哈爾濱工程大學,2004.徐志國.電力節(jié)能降耗技術的研究[D].東南大學,2007.

附錄主程序代碼:#include<reg52.h>#include<intrins.h>#defineucharunsignedchar //以后unsignedchar就可以用uchar代替#defineuintunsignedint //以后unsignedint就可以用uint代替sbitLED=P1^0; //模式指示燈,亮是自動模式,滅是手動模式sbitLamp=P1^4; //臺燈控制引腳sbitKey1=P1^1; //按鍵1,模式切換按鍵sbitKey2=P1^2; //按鍵2,亮度減少按鍵sbitKey3=P1^3; //按鍵3,亮度增加按鍵sbitADC_CS=P2^3; //ADC0832的CS引腳sbitADC_CLK=P2^0; //ADC0832的CLK引腳sbitADC_DAT=P2^1; //ADC0832的DI/DO引腳sbitModule=P2^2; //人體紅外檢測模塊uchargCount=0; //全局計數(shù)變量uchargIndex; //亮度變量,0是最暗,9是最亮,一共10檔uintgTime=0; //計時變量,用于計時多久沒檢測到有人/*********************************************************///毫秒級的延時函數(shù),time是要延時的毫秒數(shù)/*********************************************************/voidDelayMs(uinttime){ uinti,j; for(i=0;i<time;i++) for(j=0;j<112;j++);}/*********************************************************///ADC0832的時鐘脈沖/*********************************************************/voidWavePlus(){ _nop_(); ADC_CLK=1; _nop_(); ADC_CLK=0;}/*********************************************************///獲取指定通道的A/D轉(zhuǎn)換結果/*********************************************************/ucharGet_ADC0832(){ uchari; uchardat1=0; uchardat2=0; ADC_CLK=0; //電平初始化 ADC_DAT=1; _nop_(); ADC_CS=0; WavePlus(); //起始信號 ADC_DAT=1; WavePlus(); //通道選擇的第一位 ADC_DAT=0; WavePlus(); //通道選擇的第二位 ADC_DAT=1; for(i=0;i<8;i++) //第一次讀取 { dat1<<=1; WavePlus(); if(ADC_DAT) dat1=dat1|0x01; else dat1=dat1|0x00; } for(i=0;i<8;i++) //第二次讀取 { dat2>>=1; if(ADC_DAT) dat2=dat2|0x80; else dat2=dat2|0x00; WavePlus(); } _nop_(); //結束此次傳輸 ADC_DAT=1; ADC_CLK=1; ADC_CS=1; if(dat1==dat2) //返回采集結果 returndat1; else return0;}/*********************************************************///定時器初始化/*********************************************************/voidTimerInit(){ TMOD=0x21; //使用定時器 SCON=0x50; //配置串口寄存器 TH0=252; //給定時器0的TH0裝初值 TL0=24; //給定時器0的TL0裝初值 TH1=0xfd; //計算波特率的值為9600 TL1=0xfd; //計算波特率的值為9600 ET0=1; //打開定時器0中斷 ES=1; //打開串口中斷 EA=1; //打開總中斷 TR0 =1; //啟動定時器0 TR1=1; //啟動定時器1}/*********************************************************///串口發(fā)送數(shù)據(jù)函數(shù)/*********************************************************/voidUartSendData(uchardat){ SBUF=dat; while(!TI); TI=0;} /*********************************************************///發(fā)送數(shù)據(jù)到藍牙模塊/*********************************************************/voidSendBlueTooth(){ UartSendData(gIndex+48); //發(fā)送當前亮度 UartSendData('/'); if(LED==0) //發(fā)送控制模式 UartSendData('0'); else UartSendData('1');}/*********************************************************///手動控制/*********************************************************/voidManualControl(){ //亮度減少 if(Key2==0) //如果按鍵2被按下去 { if(gIndex>0) //只要當前亮度不為最低才能減少亮度 { gIndex--; //亮度降低一檔 DelayMs(300); //延時0.3秒 } } //亮度增加 if(Key3==0) //如果按鍵3被按下去 { if(gIndex<9) //只要當前亮度不為最高才能增加亮度 { gIndex++; //亮度增加一檔 DelayMs(300); //延時0.3秒 } }}/*********************************************************///自動控制/*********************************************************/voidAutoControl(ucharnum){ if(num<59) //最亮 gIndex=9; elseif((num>65)&&(num<81)) //第二亮 gIndex=8; elseif((num>87)&&(num<103)) //第三亮 gIndex=7; elseif((num>109)&&(num<125)) gIndex=6; elseif((num>131)&&(num<147)) gIndex=5; elseif((num>153)&&(num<169)) gIndex=4; elseif((num>175)&&(num<191)) gIndex=3; elseif((num>197)&&(num<213)) gIndex=2; elseif((num>219)&&(num<235)) gIndex=1; elseif(num>241) //最暗 gIndex=0;}/*********************************************************///主函數(shù)/*********************************************************/voidmain(){ uchari; ucharret; TimerInit(); //定時器初始化 LED=0; //指示燈點亮(自動模式指示燈) ret=Get_ADC0832(); //獲取AD采集結果(環(huán)境光照強度) AutoControl(ret); //上電先進行一次自動亮度控制 AutoControl(ret+7); while(1) { /*模式切換控制*/ if(Key1==0) //如果按鍵1被按下去 { LED=~LED; //切換LED燈狀態(tài) if(LED==0) //如果切換后是自動模式的話 { ret=Get_ADC0832(); //獲取AD采集結果(環(huán)境光照強度) AutoControl(ret); //進行一次自動亮度調(diào)整 AutoControl(ret+7); } DelayMs(10); //延時消除按鍵按下的抖動 while(!Key1); //等待按鍵釋放 DelayMs(10); //延時消除按鍵松開的抖動 } /*亮度控制*/ if(LED==1) //如果LED是滅的 { for(i=0;i<20;i++) { ManualControl(); //則進行手動控制 DelayMs(10); } } else //如果LED是亮的 { if(gTime<30000) //如果最近30秒內(nèi)檢測到有人 { ret=Get_ADC0832(); //獲取AD采集結果(環(huán)境光照強度)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論