智能生態(tài)系統(tǒng)分析.doc_第1頁(yè)
智能生態(tài)系統(tǒng)分析.doc_第2頁(yè)
智能生態(tài)系統(tǒng)分析.doc_第3頁(yè)
智能生態(tài)系統(tǒng)分析.doc_第4頁(yè)
智能生態(tài)系統(tǒng)分析.doc_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、智能生態(tài)系統(tǒng)隊(duì)員 1:姓名:徐德鵬,性別:男,出生年月:1992 年 12 月,所在學(xué)院:儀器科學(xué)與電氣工程學(xué)院,專業(yè): 電氣工程及其自動(dòng)化專業(yè),年級(jí): 2011 級(jí),教學(xué)號(hào): 65110507,郵箱 2397961557,電話:隊(duì)員 2:姓名:李京杰,性別:男,出生年月:1992 年 12 月,所在學(xué)院:儀器科學(xué)與電氣工程學(xué)院,專業(yè) : 電氣工程及其自動(dòng)化專業(yè),年級(jí): 2011 級(jí),教學(xué)號(hào): 65110505,郵箱:1569394708,電話:隊(duì)員 3:姓名:王曉丹,性別:女,出生年月:1992 年 7 月,所在學(xué)院:儀器科學(xué)與電氣工程學(xué)院

2、, 專業(yè) : 電氣工程及其自動(dòng)化專業(yè),年級(jí): 2011 級(jí),教學(xué)號(hào): 65110629,郵箱 :2495013305,電話:作品類別:自動(dòng)化裝置類引言中國(guó)農(nóng)業(yè)的發(fā)展必須走現(xiàn)代化農(nóng)業(yè)這條道路, 農(nóng)業(yè)的研究和應(yīng)用技術(shù)越來(lái)越受到重視,特別是智能化生態(tài)系統(tǒng)已經(jīng)成為高效農(nóng)業(yè)的一個(gè)重要組成部分。 其中重要一環(huán)就是對(duì)農(nóng)業(yè)生產(chǎn)環(huán)境的一些重要參數(shù)進(jìn)行檢測(cè)和控制。例如 , 空氣的溫度、濕度和土壤的含水量等。在農(nóng)業(yè)種植問題中,環(huán)境與生物的生長(zhǎng)、發(fā)育和能量交換密切相關(guān), 進(jìn)行環(huán)境測(cè)控是實(shí)現(xiàn)生產(chǎn)管理自動(dòng)化、 科學(xué)化的基本保證, 通過對(duì)監(jiān)測(cè)數(shù)據(jù)的分析, 結(jié)合作物生長(zhǎng)發(fā)育規(guī)律, 控制環(huán)境條件,使作

3、物達(dá)到優(yōu)質(zhì)、高產(chǎn)、高效的栽培目的。國(guó)外的智能化生態(tài)系統(tǒng)設(shè)施己經(jīng)發(fā)展到比較完備的程度,并形成了一定的標(biāo)準(zhǔn), 但是價(jià)格非常昂貴, 并且與我國(guó)氣候特點(diǎn)不相適應(yīng)。 而當(dāng)今國(guó)內(nèi)大多數(shù)對(duì)大棚溫度、 濕度的檢測(cè)與控制都采用人工管理, 這樣有測(cè)控精度低、勞動(dòng)強(qiáng)度大及由于測(cè)控不及時(shí)等弊端, 容易造成不可彌補(bǔ)的損失, 不但大大增加了成本,浪費(fèi)了人力資源,而且很難達(dá)到預(yù)期的效果。因此,為了實(shí)現(xiàn)高效農(nóng)業(yè)生產(chǎn)的科學(xué)化并提高農(nóng)業(yè)研究的準(zhǔn)確性,推動(dòng)我國(guó)農(nóng)業(yè)的發(fā)展,必須大力發(fā)展農(nóng)業(yè)設(shè)施與相應(yīng)的農(nóng)業(yè)工程,科學(xué)合理地調(diào)節(jié)生態(tài)系統(tǒng)內(nèi)溫度、濕度等,形成有利于蔬菜、水果生長(zhǎng)的環(huán)境,是蔬菜和水果早熟、優(yōu)質(zhì)高效益的重要環(huán)節(jié)。 目前,隨著智

4、能化生態(tài)系統(tǒng)設(shè)施的迅速增多,人們對(duì)其性能要求也越來(lái)越高,特別是為了提高生產(chǎn)效率,對(duì)自動(dòng)化程度要求也越來(lái)越高。不同種類觀賞花卉對(duì)溫度及濕度等生長(zhǎng)所需條件的要求也不盡相同, 為它們提供一個(gè)更適宜其生長(zhǎng)的封閉的、 良好的生存環(huán)境, 以提早或延遲花期, 觀賞植物栽培生產(chǎn)最終將會(huì)給我們帶來(lái)巨大的經(jīng)濟(jì)效益。結(jié)合用戶需要, 設(shè)計(jì)了一套智能化生態(tài)系統(tǒng)。 本系統(tǒng)采用傳感器技術(shù)和單片機(jī)相結(jié)合,實(shí)現(xiàn)自動(dòng)控制加熱、降溫、通風(fēng)。根據(jù)需要,通過顯示屏顯示基本信息,根據(jù)情況可隨時(shí)調(diào)節(jié)環(huán)境參數(shù)。本文將基于 COS 嵌入式系統(tǒng),使用STM32F103ZET6型號(hào)的 ARM處理器設(shè)計(jì)操作界面, 對(duì)生態(tài)系統(tǒng)的溫度及濕度進(jìn)行檢測(cè)和控

5、制, 利用現(xiàn)有資源設(shè)計(jì)一個(gè)實(shí)時(shí)控制生態(tài)溫度、 濕度等的控制系統(tǒng)。 并在此基礎(chǔ)上,利用 STM32F103ZET6芯片上的片上資源設(shè)計(jì)了一系列的多媒體娛樂功能,包括音樂播放器、收音機(jī)、照相機(jī)以及圖片管理等應(yīng)用。目錄引言一、方案設(shè)計(jì)11、方案選擇12、方案確定23、理論分析與方案論證2二、總體設(shè)計(jì)2三、單元電路(或軟件模塊)設(shè)計(jì)41、電源模塊設(shè)計(jì)42、繼電器模塊設(shè)計(jì)43、光控模塊設(shè)計(jì)54、溫控模塊設(shè)計(jì)55、功放模塊設(shè)計(jì)66、濕度檢測(cè)模塊設(shè)計(jì)6四、單元電路測(cè)試71、電源模塊測(cè)試72、繼電器模塊測(cè)試73、光控模塊測(cè)試84、溫控模塊測(cè)試8五、整體測(cè)試9六、結(jié)論11七、附錄111、整體軟件流程圖112、軟

6、件程序代碼清單12八、參考文獻(xiàn)25一、方案設(shè)計(jì)1、方案選擇方案一:采用 MSP430單片機(jī)作為控制芯片,通過LCD1602液晶屏顯示基本信息。優(yōu)點(diǎn): MSP430單片機(jī)具有 低功耗 和開發(fā)環(huán)境高效方便等優(yōu)點(diǎn), LCD1602液晶屏成本較低。缺點(diǎn):MSP430性能不穩(wěn)定, 運(yùn)算速度低, LCD1602液晶屏顯示信息量不能本設(shè)計(jì)滿足要求,并且不能顯示漢字。方案二:采用 STC89C52RC單片機(jī)作為控制芯片,通過Nokia5110 液晶屏顯示基本信息。優(yōu)點(diǎn): STC89C52RC單片機(jī)具有成本低、編程操作簡(jiǎn)單等優(yōu)點(diǎn), Nokia5110 液晶屏具有性價(jià)比高、色彩豐富等優(yōu)點(diǎn)。缺點(diǎn): Nokia511

7、0 液晶屏屏幕太小,亮度不夠,不易查看信息參數(shù)。方案三:采用 STC12C5A60S2單片機(jī)作為控制芯片, 通過 LCD12864液晶屏顯示基本信息。優(yōu)點(diǎn): STC12C5A60S2單片機(jī)具有成本較低、運(yùn)算速度快等優(yōu)點(diǎn), LCD12864 液晶屏可以顯示更多字符,并且可以顯示漢字。缺點(diǎn): STC12C5A60S2單片機(jī)相關(guān)開發(fā)資料不夠完善,開發(fā)使用難度大、周期長(zhǎng)。方案四:采用 STM32F103ZET6 ARM處理器作為控制核心,利用 TFTLCD觸摸顯示屏顯示信息。 24 個(gè) 12VLED超高亮節(jié)能燈作為光照補(bǔ)充模塊。 DS18B20單線式數(shù)字溫度計(jì)作為溫度檢測(cè)模塊,傳回信息給 ARM處理器

8、。采用 12V/5A 開關(guān)電源將市電220V轉(zhuǎn)換為 DC12V,利用 LM2596對(duì) DC12V進(jìn)行降壓處理得到 DC5V。采用光敏電阻對(duì)光照強(qiáng)度進(jìn)行檢測(cè),土壤濕度計(jì)檢測(cè)模塊作為土壤濕度傳感器檢測(cè)土壤濕1度。采用電動(dòng)噴霧器水泵(回流隔膜泵)12V作為噴水裝置。優(yōu)點(diǎn):STM32F103ZET6ARM處理器具有運(yùn)行速度快、 內(nèi)置 FLASH存儲(chǔ)等優(yōu)點(diǎn),可運(yùn)行片上操作系統(tǒng), 具有極其強(qiáng)大的擴(kuò)展功能。 超高亮節(jié)能燈照明模塊亮度非常高并且低功耗。 12V/5A 開關(guān)電源模塊具有方便、穩(wěn)定和可調(diào)等優(yōu)點(diǎn)。 12V 穩(wěn)定版光控開關(guān)光敏電阻加繼電器模塊光線檢測(cè)開關(guān)具有靈敏、 高效和穩(wěn)定等優(yōu)點(diǎn)。水泵具有體積小、

9、電流小、使用壽命長(zhǎng)、 物美價(jià)廉等優(yōu)點(diǎn), 泵體與電機(jī)分離,泵體內(nèi)無(wú)機(jī)械部件、 無(wú)磨損。水泵自帶釋壓溢流回路裝置, 不會(huì)憋爆水管和損壞水泵。缺點(diǎn): STM32F103ZET6ARM微處理器成本較高,嵌入式系統(tǒng)的開發(fā)和應(yīng)用難度較大。2、方案確定通過對(duì)比四種方案的優(yōu)缺點(diǎn),以及可操作性,考慮到題目要求、工作條件,方案四優(yōu)于其他幾種方案。 STM32F103ZET6ARM處理器可以更好的滿足控制要求,功能強(qiáng)大,并可以設(shè)計(jì)友好的人機(jī)交互界面。 TFTLCD觸摸屏具有大屏、顯示信息多、方便實(shí)現(xiàn)人機(jī)交互等優(yōu)越性。 方案四能使系統(tǒng)有較好的穩(wěn)定性, 充分體現(xiàn)了模塊化設(shè)計(jì)的要求, 并且這些芯片及器件均為通用器件, 在

10、市場(chǎng)上較常見, 價(jià)格也低廉,樣品制作成功的可能性比較大,所以本設(shè)計(jì)采用方案四。3、理論分析與方案論證本設(shè)計(jì)采用方案四。通過STM32F103ZET6 ARM處理器控制 TFTLCD觸摸屏實(shí)現(xiàn)溫度和濕度等信息的顯示。通過12V/5A 開關(guān)電源給系統(tǒng)供電。通過加熱片加熱空氣來(lái)提高溫度。通過風(fēng)扇控制系統(tǒng)通風(fēng)降溫。 通過 LED燈模塊補(bǔ)充光照強(qiáng)度。通過水泵噴水霧控制土壤干濕度。二、總體設(shè)計(jì)本系統(tǒng)的硬件結(jié)構(gòu)圖如圖1 所示。 12V/5A 開關(guān)電源模塊將AC220V轉(zhuǎn)化為DC12V,再經(jīng)過 LM2596降壓芯片獲得DC5V,以此提供 5V/12V 直流電以滿足處理2器和外圍設(shè)備的供電需要。 12V光控開關(guān)

11、,由光敏電阻對(duì)光照強(qiáng)度進(jìn)行檢測(cè),通過由 LM393構(gòu)成的電壓比較電路獲得繼電器的觸發(fā)信號(hào), 由繼電器的常開觸點(diǎn)控制 12V 光照補(bǔ)充模塊(由 24 個(gè)超高亮 LED節(jié)能燈組成)。當(dāng)沒有光強(qiáng)或光照強(qiáng)度不足時(shí),繼電器經(jīng)觸發(fā)信號(hào)觸發(fā), 其常開觸點(diǎn)閉合,控制 12V光照補(bǔ)充模塊工作,超高亮 LED節(jié)能燈通電發(fā)光, 為植物提供充足的光照。 當(dāng)光照強(qiáng)度充足時(shí), 繼電器常開觸點(diǎn)斷開, 光照補(bǔ)充模塊斷電熄滅。 土壤濕度檢測(cè)模塊作為土壤濕度傳感器檢測(cè)土壤濕度。 當(dāng)土壤濕度傳感器檢測(cè)到土壤的濕度低于設(shè)定閾值時(shí), 將土壤濕度信息傳給 STM32F103ZET6ARM處理器,此時(shí)處理器通過繼電器控制電動(dòng)噴霧水泵抽水,

12、并且通過噴頭噴出水霧。 當(dāng)土壤濕度傳感器檢測(cè)到的土壤濕度高于或者達(dá)到設(shè)定閾值時(shí),此時(shí)處理器通過繼電器控制電動(dòng)噴霧器水泵停止工作。DS18B20單線式數(shù)字溫度傳感器作為溫度檢測(cè)裝置。 當(dāng)感應(yīng)到的溫度低于設(shè)定閾值時(shí),處理器通過繼電器控制加熱片給空氣加熱。 當(dāng)感應(yīng)到溫度高于設(shè)定閾值時(shí),處理器通過繼電器控制風(fēng)扇給通風(fēng)降溫。 本系統(tǒng)共有 2 個(gè)風(fēng)扇,一個(gè)風(fēng)扇逆時(shí)針轉(zhuǎn)控制進(jìn)風(fēng),一個(gè)風(fēng)扇順時(shí)針轉(zhuǎn)控制出風(fēng),從而實(shí)現(xiàn)空氣流動(dòng)。LED照明模塊光控開關(guān)加熱片5V/12VSTM32F103DS18B20測(cè)溫電源模塊ZET6人機(jī)交互風(fēng)扇ARM界面土壤濕度檢測(cè)電動(dòng)噴霧水泵圖 1 系統(tǒng)的硬件結(jié)構(gòu)圖3三、單元電路(或軟件模塊

13、)設(shè)計(jì)1、電源模塊設(shè)計(jì)由 12V/5A 開關(guān)電源和LM2596 降壓電路組成。因?yàn)樗闷骷际怯?5V 和+12V供電,所以降壓模塊選擇降壓到+5V和+12V電壓,開關(guān)電源將220V 交流電轉(zhuǎn)化為 12V 直流電, LM2596降壓模塊將 12V 直流電轉(zhuǎn)化為 5V 直流電。如圖 2 所示。12/5A 開LM2596 降壓關(guān)電源模塊+12V 電壓+5V電壓圖 2 電源模塊設(shè)計(jì)圖2、繼電器模塊設(shè)計(jì)繼電器模塊共有3 個(gè)繼電器其中2 個(gè)繼電器控制電壓為 +12V,一個(gè)為 +5V,觸發(fā)方式設(shè)置為低電平觸發(fā)。繼電器電路圖如圖3 所示。其中繼電器選取DC5V繼電器,控制 +12 電壓的 R2阻值為 2.3

14、K ,控制 +5V電壓的 R2 阻值為 910,R1 阻值相同為4.7K ,二極管類型為1N4148,三極管類型為PNP型硅三極管S8550。圖 3 繼電器電路設(shè)計(jì)圖43、光控模塊設(shè)計(jì)光控模塊由光敏電阻、電壓比較器LM393、電磁繼電器和LED節(jié)能燈組成。光敏電阻負(fù)責(zé)檢測(cè)光照強(qiáng)度, 并將檢測(cè)到的光強(qiáng)電阻信號(hào)通過特定的電路轉(zhuǎn)化為電壓信號(hào),電壓比較器 LM393負(fù)責(zé)將此電壓信號(hào)與預(yù)設(shè)電壓進(jìn)行比較, 并由此產(chǎn)生繼電器的觸發(fā)信號(hào),從而控制 LED節(jié)能燈的導(dǎo)通與關(guān)斷。其結(jié)構(gòu)如圖 4 所示。光敏電阻LM393電壓電磁繼電比較LED器圖 4 光控模塊設(shè)計(jì)圖4、溫控模塊設(shè)計(jì)溫控模塊由 DS18B20溫度傳感器

15、、繼電器、 12V/20W加熱片和兩個(gè) 12V/5W 通風(fēng)扇組成,通過 TFTLCD觸摸屏顯示溫度信息。當(dāng) DS18B20檢測(cè)到的溫度低于設(shè)定閾值, STM32F103ZET6ARM處理器通過繼電器控制加熱片工作,直至溫度升高到設(shè)定閾值;當(dāng) DS18B20檢測(cè)到的溫度高于設(shè)定閾值, STM32F103ZET6ARM處理器通過繼電器控制通風(fēng)扇工作, 直至溫度降低到設(shè)定閾值。 溫控模塊整體結(jié)構(gòu)如圖 5 所示。DS18B20溫度傳感器加熱片繼STM32F103ZE顯示屏電風(fēng)扇T6器圖 5 溫控模塊設(shè)計(jì)圖55、功放模塊設(shè)計(jì)功放模塊由兩片TDA2030功放芯片組成,構(gòu)成雙聲道功放電路,驅(qū)動(dòng)兩個(gè)0.5W/

16、8 的喇叭進(jìn)行音樂播放。功放模塊整體結(jié)構(gòu)如圖6 所示。圖 6 功放模塊設(shè)計(jì)圖6、濕度檢測(cè)模塊設(shè)計(jì)圖 6 濕度檢測(cè)模塊設(shè)計(jì)圖6如圖 7 所示,濕度檢測(cè)模塊由土壤探頭、LM393比較電路和指示燈構(gòu)成。土壤探頭測(cè)得的漏電流大小經(jīng)過電阻變?yōu)殡妷盒盘?hào),通過 LM393進(jìn)行電壓比較, 產(chǎn)生數(shù)字信號(hào),進(jìn)而被處理器利用進(jìn)行濕度的控制。四、單元電路測(cè)試1、電源模塊測(cè)試電源模塊可以正常工作,提供穩(wěn)定的電壓,檢測(cè)結(jié)果如圖8。圖 8 電源模塊測(cè)試結(jié)果圖2、繼電器模塊測(cè)試?yán)^電器控制模塊可以正常工作,工作時(shí)綠色指示燈亮表示該繼電器正常工作,檢測(cè)結(jié)果如圖9。7圖 9 繼電器模塊測(cè)試結(jié)果圖3、光控模塊測(cè)試當(dāng)沒有光照或光照強(qiáng)度

17、不足時(shí),光控開關(guān)閉合,LED光照模塊工作,發(fā)出亮光,檢測(cè)結(jié)果如圖10 所示。圖 10 光控模塊測(cè)試結(jié)果圖4、溫控模塊測(cè)試溫控模塊可以測(cè)試溫度,并使LCD12864液晶屏正常顯示溫度數(shù)值,檢測(cè)結(jié)果如圖 11 所示。8圖 11 溫控模塊檢測(cè)圖五、整體測(cè)試系統(tǒng)整體實(shí)物圖如圖 12 所示,所有模塊均能穩(wěn)定工作。當(dāng)沒有光強(qiáng)或光照強(qiáng)度不足時(shí), 繼電器經(jīng)觸發(fā)信號(hào)觸發(fā), 其常開觸點(diǎn)閉合, 控制 12V 光照補(bǔ)充模塊工作,超高亮 LED節(jié)能燈通電發(fā)光, 為植物提供充足的光照。 當(dāng)光照強(qiáng)度充足時(shí),繼電器常開觸點(diǎn)斷開, 光照補(bǔ)充模塊斷電熄滅。 土壤濕度檢測(cè)模塊作為土壤濕度傳感器檢測(cè)土壤濕度。 當(dāng)土壤濕度傳感器檢測(cè)到

18、土壤的濕度低于設(shè)定閾值時(shí), 將土壤濕度信息傳給 STM32F103ZET6ARM處理器,此時(shí)處理器通過繼電器控制電動(dòng)噴霧水泵抽水, 并且通過噴頭噴出水霧。 當(dāng)土壤濕度傳感器檢測(cè)到的土壤濕度高于或者達(dá)到設(shè)定閾值時(shí),此時(shí)處理器通過繼電器控制電動(dòng)噴霧器水泵停止工作。DS18B20單線式數(shù)字溫度傳感器作為溫度檢測(cè)裝置。 當(dāng)感應(yīng)到的溫度低于設(shè)定閾值時(shí),處理器通過繼電器控制加熱片給空氣加熱。 當(dāng)感應(yīng)到溫度高于設(shè)定閾值時(shí),處理器通過繼電器控制風(fēng)扇給通風(fēng)降溫。9圖 12 整體實(shí)物圖圖 13 開機(jī)界面圖10六、結(jié)論本系統(tǒng)是利用 STM32F103ZET6ARM處理器采用程序設(shè)計(jì)方法控制加熱片、風(fēng)扇和水泵等電子器

19、件, 再通過溫度傳感器DS18B20感應(yīng)溫度,加熱片、風(fēng)扇控制溫度,通過水泵噴水控制土壤干濕度,最終通過TFTLCD觸摸屏顯示出溫度、干濕度等信息。 智能生態(tài)系統(tǒng)處于溫度不適應(yīng)的情況,溫度較低或較高時(shí), 可以通過自動(dòng)調(diào)節(jié),實(shí)時(shí)監(jiān)控環(huán)境溫度,實(shí)現(xiàn)環(huán)境溫度最優(yōu)化。同時(shí),也可對(duì)土壤干濕度做出準(zhǔn)確監(jiān)控, 達(dá)到調(diào)節(jié)土壤環(huán)境的目的。 光照控制保障了充足的光強(qiáng),更利于生物生長(zhǎng)。通過軟件仿真,基本達(dá)到預(yù)期的設(shè)計(jì)目標(biāo)。七、附錄1、整體軟件流程圖11開始初始化檢測(cè)光照測(cè)定溫度干濕度液晶屏上顯示正常?是否否溫度正常?是光照不足?水泵開啟?否是否是否溫度高?LED 光照是加熱片出水系統(tǒng)工作否風(fēng)扇工作工作否光照正常時(shí)間

20、到?否是溫度正常?是是結(jié)束圖 14 整體軟件流程圖2、軟件程序代碼清單#include includes.h#include stdlib.h#include exfuns.h#include listbox.h#include t9input.h#include spb.h12#include ebook.h#include picviewer.h#include mp3player.h#include settings.h#include calendar.h#include paint.h#include radio.h#include recoder.h#include camera.

21、h#include mmc_sd.h#include huapen.h/UCOSII任務(wù)設(shè)置 /START任務(wù)/設(shè)置任務(wù)優(yōu)先級(jí)#define START_TASK_PRIO10 /開始任務(wù)的優(yōu)先級(jí)設(shè)置為最低/設(shè)置任務(wù)堆棧大小#define START_STK_SIZE64/任務(wù)堆棧, 8 字節(jié)對(duì)齊_align(8) static OS_STK START_TASK_STKSTART_STK_SIZE;/任務(wù)函數(shù)void start_task(void *pdata);/串口任務(wù)/設(shè)置任務(wù)優(yōu)先級(jí)#define USART_TASK_PRIO7/設(shè)置任務(wù)堆棧大小#define USART_STK_

22、SIZE64/任務(wù)堆棧, 8 字節(jié)對(duì)齊_align(8) static OS_STK USART_TASK_STKUSART_STK_SIZE;/任務(wù)函數(shù)void usart_task(void *pdata);/主任務(wù)/設(shè)置任務(wù)優(yōu)先級(jí)#define MAIN_TASK_PRIO6/設(shè)置任務(wù)堆棧大小#define MAIN_STK_SIZE512/任務(wù)堆棧, 8 字節(jié)對(duì)齊_align(8) static OS_STK MAIN_TASK_STKMAIN_STK_SIZE;/任務(wù)函數(shù)void main_task(void *pdata);/串口監(jiān)視任務(wù)/設(shè)置任務(wù)優(yōu)先級(jí)#define WATCH_

23、TASK_PRIO3/設(shè)置任務(wù)堆棧大小#define WATCH_STK_SIZE12813/任務(wù)堆棧, 8 字節(jié)對(duì)齊_align(8) static OS_STK WATCH_TASK_STKWATCH_STK_SIZE;/任務(wù)函數(shù)void watch_task(void *pdata);/MP3 任務(wù)/設(shè)置任務(wù)優(yōu)先級(jí)#define MUSIC_PLAY_TASK_PRIO2/設(shè)置任務(wù)堆棧大小#define MUSIC_PLAY_STK_SIZE256/任務(wù)堆棧, 8 字節(jié)對(duì)齊_align(8) static OS_STK MUSIC_PLAY_TASK_STKMUSIC_PLAY_STK_

24、SIZE;/任務(wù)函數(shù)void music_play_task(void *pdata);/外部?jī)?nèi)存測(cè)試(最大支持1M 字節(jié)內(nèi)存測(cè)試 )/返回值 :0,成功 ;1,失敗 .u8 system_exsram_test(u16 x,u16 y)u32 i=0;u16 temp=0;u16 sval=0;/在地址 0 讀到的數(shù)據(jù)LCD_ShowString(x,y,239,y+12,12,Ex Memory Test:0KB);/每隔 1K 字節(jié) ,寫入一個(gè)數(shù)據(jù),總共寫入1024 個(gè)數(shù)據(jù) ,剛好是 1M 字節(jié)for(i=0;i1024*1024;i+=1024)FSMC_SRAM_WriteBuffe

25、r(u8*)&temp,i,2);temp+;/依次讀出之前寫入的數(shù)據(jù),進(jìn)行校驗(yàn)for(i=0;i1024*1024;i+=1024)FSMC_SRAM_ReadBuffer(u8*)&temp,i,2);if(i=0)sval=temp;else if(temp=1024*1024)LCD_ShowxNum(x+15*6,y,i/1024,4,12,0);/顯示內(nèi)存值return 0;/ 內(nèi)存正常 ,成功return 1;/ 失敗14/顯示錯(cuò)誤信息/x,y: 坐標(biāo) .err:錯(cuò)誤信息void system_error_show(u16 x,u16 y,u8*err)POINT_COLOR=R

26、ED;while(1)LCD_ShowString(x,y,240,320,12,err);delay_ms(400);LCD_Fill(x,y,240,y+18,BLACK);delay_ms(100);LED0=!LED0;/系統(tǒng)初始化void system_init(void)const u8 okoffset=162;u16 ypos=0;u16 j=0;u16 temp=0;u8 res;u32 dtsize,dfsize;u8 *stastr=0;u8 *version=0;u8 verbuf12;NVIC_Configuration();delay_init(72);/延時(shí)初始化

27、uart_init(9600);/串口 1 初始化LCD_Init();/LCD 初始化LCD_PWM_Init();/ 初始化 LCD 背光亮度LCD_BLPWM_V AL=200;/設(shè)置為最亮LED_Init();/LED 初始化KEY_Init();/ 按鍵初始化FSMC_SRAM_Init();/ 初始化 SRAMgui_init();Adc_Init();/ADC 初始化 ,內(nèi)部溫度傳感器BEEP_Init();AT24CXX_Init();Audiosel_Init();Audiosel_Set(0);usmart_dev.init(72);mem_init(SRAMIN);/內(nèi)部

28、內(nèi)存池初始化version=mymalloc(SRAMIN,31);/申請(qǐng) 31 個(gè)字節(jié)內(nèi)存15REINIT:/ 重新初始化LCD_Clear(BLACK);/ 黑屏POINT_COLOR=WHITE;BACK_COLOR=BLACK;j=0;/顯示版權(quán)信息ypos=2;app_show_mono_icos(5,ypos,18,24,(u8*)APP_ALIENTEK_ICO,YELLOW,BLACK);LCD_ShowString(28,ypos+12*j+,240,320,12, Intelligent Ecosystem);/ 智 能生態(tài) 系統(tǒng) LCD_ShowString(28,ypo

29、s+12*j+,240,320,12,CIEE of JiLin University); LCD_ShowString(28,ypos+12*j+,240,320,12,Created by Our Team);sprintf(char*)verbuf,LCD ID:%04X,lcddev.id);/LCD ID打印到 verbuf 里面LCD_ShowString(5,ypos+12*j+,240,320,12, verbuf);/ 顯示 LCD ID/開始硬件檢測(cè)初始化LCD_ShowString(5,ypos+12*j+,240,320,12, CPU:STM32F103ZET6 72

30、Mhz);LCD_ShowString(5,ypos+12*j+,240,320,12, FLASH:512KBSRAM:64KB);if(system_exsram_test(5,ypos+12*j)system_error_show(5,ypos+12*j+,EX Memory Error!);LCD_ShowString(5+okoffset,ypos+12*j+,240,320,12,OK);mem_init(SRAMEX);/外部?jī)?nèi)存池的初始化必須放到內(nèi)存檢測(cè)之后!SPI_Flash_Init();/W25Qxx 初始化switch(SPI_FLASH_TYPE)case W25Q8

31、0:temp=1*1024;break;case W25Q16:temp=2*1024;break;case W25Q32:temp=4*1024;break;case W25Q64:temp=8*1024;break;default :system_error_show(5,ypos+12*j+,Ex Flash Error!);break;LCD_ShowString(5,ypos+12*j,240,320,12, Ex Flash:KB);LCD_ShowxNum(5+9*6,ypos+12*j,temp,4,12,0);/ 顯示 flash 大小 LCD_ShowString(5+ok

32、offset,ypos+12*j+,240,320,12, OK);16LCD_ShowString(5,ypos+12*j,240,320,12, FATFS Check.);/FATFS檢測(cè)if(exfuns_init()system_error_show(5,ypos+12*(j+1),FATFS Memory Error!);/內(nèi)存分配f_mount(0,fs0);/掛載 SD 卡f_mount(1,fs1);/掛載 FLASH.LCD_ShowString(5+okoffset,ypos+12*j+,240,320,12, OK);/SD 卡檢測(cè)LCD_ShowString(5,yp

33、os+12*j,240,320,12, SD Card:MB);/FATFS檢測(cè)temp=0;dotemp+;res=exf_getfree(0:,&dtsize,&dfsize);/得到 SD 卡剩余容量和總?cè)萘縟elay_ms(200);while(res&temp10;/ 單位轉(zhuǎn)換為MBstastr=OK;elsetemp=0;/ 出錯(cuò)了 ,單位為 0stastr=ERROR;LCD_ShowxNum(5+8*6,ypos+12*j,temp,5,12,0);/顯示 SD 卡容量大小LCD_ShowString(5+okoffset,ypos+12*j+,240,320,12,stast

34、r);/SD 卡狀態(tài)/W25Q64 檢測(cè) ,如果不存在文件系統(tǒng),則先創(chuàng)建 .temp=0;dotemp+;res=exf_getfree(1:,&dtsize,&dfsize);/得到 FLASH 剩余容量和總?cè)萘縟elay_ms(200);while(res&temp20);/連續(xù)檢測(cè) 20 次if(res=0X0D)/ 文件系統(tǒng)不存在LCD_ShowString(5,ypos+12*j,240,320,12, Flash Disk Formatting.);/格式化FLASHres=f_mkfs(1,1,4096);/ 格式化 FLASH,1, 盤符 ;1,不需要引導(dǎo)區(qū) ,8 個(gè)扇區(qū)為1

35、個(gè)簇if(res=0)LCD_ShowString(5+okoffset,ypos+12*j+,240,320,12, OK);/ 標(biāo)志格式化成功 res=exf_getfree(1:,&dtsize,&dfsize);/ 重新獲取容量17if(res=0)/ 得到 FLASH 卡剩余容量和總?cè)萘縇CD_ShowString(5,ypos+12*j,240,320,12, Flash Disk:KB);/FATFS檢測(cè)temp=dtsize;else system_error_show(5,ypos+12*(j+1),Flash Fat Error!);/flash 文件系統(tǒng)錯(cuò)誤LCD_Sho

36、wxNum(5+11*6,ypos+12*j,temp,4,12,0);/ 顯示 SD 卡容量大小LCD_ShowString(5+okoffset,ypos+12*j+,240,320,12,OK);/SD 卡狀態(tài)/TPAD 檢測(cè)LCD_ShowString(5,ypos+12*j,240,320,12, TPAD Check.);if(TPAD_Init()system_error_show(5,ypos+12*(j+1),TPAD Error!);/觸摸按鍵檢測(cè)else LCD_ShowString(5+okoffset,ypos+12*j+,240,320,12, OK);/RTC 檢

37、測(cè)LCD_ShowString(5,ypos+12*j,240,320,12, RTC Check.);if(RTC_Init()system_error_show(5,ypos+12*(j+1),RTC Error!);/RTC檢測(cè)else LCD_ShowString(5+okoffset,ypos+12*j+,240,320,12, OK);/ADXL345檢測(cè)LCD_ShowString(5,ypos+12*j,240,320,12, ADXL345 Check.);if(ADXL345_Init()system_error_show(5,ypos+12*(j+1),ADXL345Er

38、ror!);/ADXL345檢測(cè)else LCD_ShowString(5+okoffset,ypos+12*j+,240,320,12, OK);/24C02 檢測(cè)LCD_ShowString(5,ypos+12*j,240,320,12, 24C02 Check.);if(AT24CXX_Check()system_error_show(5,ypos+12*(j+1),24C02 Error!);/24C02檢測(cè)else LCD_ShowString(5+okoffset,ypos+12*j+,240,320,12, OK);/RDA5820 檢測(cè)LCD_ShowString(5,ypos

39、+12*j,240,320,12, RDA5820 Check.);if(RDA5820_Init()system_error_show(5,ypos+12*(j+1),RDA5820Error!);/RDA5820檢測(cè)else LCD_ShowString(5+okoffset,ypos+12*j+,240,320,12, OK);/VS1053 檢測(cè)LCD_ShowString(5,ypos+12*j,240,320,12, VS1053 Check.);VS_Init();/初始化 VS1053 接口VS_Sine_Test();/正弦測(cè)試BEEP=0;if(VS_Ram_Test()!

40、=0X83FF)system_error_show(5,ypos+12*(j+1),VS1053Error!);/RAM測(cè)試else LCD_ShowString(5+okoffset,ypos+12*j+,240,320,12, OK);/字庫(kù)檢測(cè)LCD_ShowString(5,ypos+12*j,240,320,12, Font Check.);res=KEY_Scan(1);/ 檢測(cè)按鍵while(font_init()|res=2)/ 檢測(cè)字體 ,如果字體不存在/按下 KEY1, 則更新字庫(kù)18res=0;/按鍵無(wú)效if(update_font(5,ypos+12*j,12,0)!=

41、0)/從 SD 卡更新if(update_font(5,ypos+12*j,12,1)!=0)/從 FLASH 更新system_error_show(5,ypos+12*(j+1),Font Error!);/字體錯(cuò)誤LCD_Fill(5,ypos+12*j,240,ypos+12*(j+1),BLACK);/填充底色LCD_ShowString(5,ypos+12*j,240,320,12, Font Check.);LCD_ShowString(5+okoffset,ypos+12*j+,240,320,12, OK);/字庫(kù)檢測(cè) OK/系統(tǒng)文件檢測(cè)LCD_ShowString(5,yp

42、os+12*j,240,320,12, SYSTEM Files Check.);while(app_system_file_check()/ 系統(tǒng)文件檢測(cè)LCD_Fill(5,ypos+12*j,240,ypos+12*(j+1),BLACK);/填充底色LCD_ShowString(5,ypos+12*j,6*8,12,12, Updating);/顯示 updatingapp_boot_cpdmsg_set(5,ypos+12*j);/ 設(shè)置到坐標(biāo)if(app_system_update(app_boot_cpdmsg)/更新出錯(cuò)system_error_show(5,ypos+12*(

43、j+1),SYSTEM File Error!);LCD_Fill(5,ypos+12*j,240,ypos+12*(j+1),BLACK);/填充底色LCD_ShowString(5,ypos+12*j,240,320,12, SYSTEM Files Check.);if(app_system_file_check()/ 更新了一次,再檢測(cè),如果還有不全,說明SD 卡文件就不全!system_error_show(5,ypos+12*(j+1),SYSTEM File Lost!); else break;LCD_ShowString(5+okoffset,ypos+12*j+,240,3

44、20,12, OK);/觸摸屏檢測(cè)LCD_ShowString(5,ypos+12*j,240,320,12, Touch Check.); res=KEY_Scan(1);/ 檢測(cè)按鍵if(TP_Init()|res=1)/ 有更新 /按下了 KEY0, 執(zhí)行校準(zhǔn)if(res=1)TP_Adjust();res=0;/按鍵無(wú)效goto REINIT;/重新開始初始化LCD_ShowString(5+okoffset,ypos+12*j+,240,320,12, OK);/ 觸摸屏檢測(cè) OK /系統(tǒng)參數(shù)加載LCD_ShowString(5,ypos+12*j,240,320,12, SYSTEM Parameter Load.);if(app_system_parameter_init()system_error_show(5,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論