基于STM32的智能家居系統(tǒng)設(shè)計(jì)_第1頁(yè)
基于STM32的智能家居系統(tǒng)設(shè)計(jì)_第2頁(yè)
基于STM32的智能家居系統(tǒng)設(shè)計(jì)_第3頁(yè)
基于STM32的智能家居系統(tǒng)設(shè)計(jì)_第4頁(yè)
基于STM32的智能家居系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩60頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、本科畢業(yè)設(shè)計(jì)(論文)題目名稱: 基于STM32的智能家居系統(tǒng)設(shè)計(jì) 學(xué) 院: 計(jì)算機(jī)科學(xué)技術(shù)學(xué)院 專業(yè)年級(jí): 計(jì)算機(jī)科學(xué)與技術(shù)(工)12級(jí) 學(xué)生姓名: 張?jiān)婆?班級(jí)學(xué)號(hào): 1 班 41號(hào) 指導(dǎo)教師: 范忠誠(chéng) 2016 年 6 月 摘 要隨著科技的不斷發(fā)展進(jìn)步和人們對(duì)家居生活要求的逐步變高,智能家居已經(jīng)得到了人們的認(rèn)可,而現(xiàn)如今一套完整的智能家居設(shè)備價(jià)格昂貴,一般的家庭難以承受其高昂的價(jià)格,針對(duì)此種現(xiàn)象,一款功能穩(wěn)定全面,但成本低廉的智能家居產(chǎn)品會(huì)幫助人們?cè)趦r(jià)格和功能之間找到一條滿足人們?cè)竿某雎?。此款智能家居采用STM32處理器,技術(shù)成熟,程序移植方便,價(jià)格低廉。本款家居設(shè)備設(shè)計(jì)包括硬件設(shè)計(jì)和軟

2、件設(shè)計(jì)兩個(gè)部分:硬件設(shè)計(jì)包含 :12864液晶電路、溫度濕度傳感器電路、煙霧濃度采集電路、ADC轉(zhuǎn)換電路、報(bào)警電路、電源電路、光照采集電路和燈光控制部分電路,軟件設(shè)計(jì)包含主程序、數(shù)據(jù)(溫度、濕度,氣體濃度,光照)檢測(cè)及處理、和標(biāo)準(zhǔn)氣體標(biāo)定、ADC數(shù)據(jù)轉(zhuǎn)換,當(dāng)氣體濃度超限時(shí)報(bào)警程序。經(jīng)實(shí)驗(yàn)測(cè)試結(jié)果表明該智能家居設(shè)備有自動(dòng)檢測(cè)家庭環(huán)境指標(biāo)并可以對(duì)采集信息進(jìn)行及時(shí)穩(wěn)妥的處理,精度高,檢測(cè)范圍廣,穩(wěn)定性好,顯示簡(jiǎn)單,操作簡(jiǎn)便,抗干擾能力強(qiáng)等優(yōu)良性能。關(guān)鍵詞:ARM-M3;ADC;數(shù)據(jù)采集與處理;智能家居AbstractAlong with the continuous development of s

3、cience and technology progress and people's requirement for household life gradually become tall, intelligent household has gained the recognition of people, now a complete set of intelligent household equipment is expensive, the average family is difficult to afford the high prices, aiming at t

4、his phenomenon, a stable overall function, but low-cost intelligent household products can help people find a way out between price and functionality. This intelligent household USES STM32 processor, mature technology, application transplant convenience, low prices. This household equipment design i

5、ncluding hardware design and software design of two parts: hardware design includes: 12864 LCD, reactive temperature, humidity sensor circuit, the concentration of the smoke collecting circuit, ADC conversion circuit, alarm circuit, power circuit, acquisition circuit and lighting lighting control ci

6、rcuit, software design includes the main program, data (temperature, humidity, gas concentration, light) detection and processing, and calibration standard gases, ADC data conversion, when gas concentration overrun alarm program. By the experimental test results show that the smart home devices have

7、 automatic detection family environment index and can be conducted to collect information to err on the side of the processed on time, high precision, detection range, good stability, display is simple, easy operation, strong anti-interference ability and other excellent properties.Key words: ARMv7-

8、M; ADC; Data acquisition and processing; serial communicationII目 錄摘 要IAbstractII第1章 緒 論11.1 選題背景11.2 課題意義11.3 國(guó)內(nèi)外發(fā)展概況11.4 指導(dǎo)思想2第2章 開(kāi)發(fā)工具與MCU簡(jiǎn)介32.1 STM32F10XX32.2 KEIL MDK5第3章 總體分析與設(shè)計(jì)73.1 方案分析73.1.1 整體系統(tǒng)方案分析73.1.2 數(shù)據(jù)采集方案設(shè)計(jì)83.1.3 數(shù)據(jù)存儲(chǔ)方案分析83.1.4 顯示方案分析103.2 功能設(shè)計(jì)10第4章 詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)124.1 界面設(shè)計(jì)124.2 原理圖設(shè)計(jì)134.2.1

9、數(shù)據(jù)采集模塊144.2.2 溫濕度傳感器模塊154.2.3 煙霧傳感模塊164.2.4 液晶顯示電路設(shè)計(jì)174.2.5 報(bào)警電路的設(shè)計(jì)194.2.6 時(shí)鐘模塊204.3 業(yè)務(wù)處理模塊設(shè)計(jì)224.3.1 界面顯示任務(wù)224.3.2 AD采樣及數(shù)據(jù)處理234.3.3 煙霧傳感器284.3.4 溫濕度傳感器304.4.5 燈光控制與光照檢測(cè)32第5章 結(jié)果分析365.1 硬件設(shè)計(jì)的結(jié)果分析365.1.1 溫濕度模塊的分析365.1.2 光照模塊的分析365.1.3 煙霧檢測(cè)375.1.4 硬件綜合測(cè)試375.2 軟件設(shè)計(jì)的結(jié)果分析38結(jié) 論39致 謝40參考文獻(xiàn)41附 錄422第1章 緒 論 1.1

10、 選題背景進(jìn)入21世紀(jì),人們的生活節(jié)奏越來(lái)越快,生活壓力也越來(lái)越大,家成為人們最溫馨的地方,人們對(duì)待自己最溫暖舒適的家庭環(huán)境要求也隨之在不斷提高,如今的人們?cè)绨送砦宓墓ぷ?,上?jí)的壓力,父母長(zhǎng)輩的壓力,同事之間盲目的攀比等等,早已經(jīng)將當(dāng)代人壓的喘難以呼吸,人們似乎已經(jīng)注意到了家是自己的避風(fēng)港,家居生活得到了人們的廣泛關(guān)注,如今電子行業(yè)的發(fā)展速度飛漲,智能產(chǎn)品橫飛,先進(jìn)的科技與人們想要的智能家居生活擦出了美麗的火花-智能家居,時(shí)光荏苒,轉(zhuǎn)眼間,智能家居從出現(xiàn)到現(xiàn)如今經(jīng)歷了幾十年的漫長(zhǎng)發(fā)展逐步走向成熟,安全,智能,方便的家居生活得到了廣大普通百姓的認(rèn)可,從企業(yè)到個(gè)人都無(wú)時(shí)無(wú)刻與它發(fā)生著親密關(guān)系,人們

11、已經(jīng)清楚的看到,智能家居的發(fā)展已成必然,他的騰飛亦不可阻擋。1.2 課題意義眾所周知智能家居應(yīng)經(jīng)嶄露頭角,近幾年一直以良好高速的發(fā)展態(tài)勢(shì)在前進(jìn),智能家居市場(chǎng)上也開(kāi)始出現(xiàn)了很多新穎的設(shè)備來(lái)滿足人們的生活需要,但從總體的狀況來(lái)分析總結(jié),仍有不盡善盡美的地方,最主要兩點(diǎn)是標(biāo)準(zhǔn)不統(tǒng)一和權(quán)威產(chǎn)品的缺乏。伴隨著科技的進(jìn)步,經(jīng)濟(jì)的發(fā)展,人們的財(cái)富變多的同時(shí),對(duì)自己的生活環(huán)境的要求水平也的隨著變高,智能家居也越發(fā)變的受人青睞。家居智能化控制的開(kāi)發(fā)和研究是未來(lái)國(guó)家經(jīng)濟(jì)發(fā)展的必然趨勢(shì)。智能家居控制器可以為系統(tǒng)提供更智能更人性化生活模式,使住戶的生活更加便捷,更高效,更能為家庭的日?;顒?dòng),為快節(jié)奏的都是生活減小人們

12、的壓力,同時(shí)提供巨大方便。而且在現(xiàn)在這個(gè)重視健康環(huán)保的世界里,智能的為住戶提供檢測(cè)好空氣的溫度,濕度等檢查空氣成分讓住戶安心,放心可以滿足人們的個(gè)性化需求。同時(shí),智能家居控制器可以根據(jù)住戶的要求調(diào)整方案,緊急事故處理,危機(jī)救護(hù)等急救控制,充分滿足用戶的需要。1.3 國(guó)內(nèi)外發(fā)展概況智能家居在國(guó)內(nèi)早已經(jīng)不是一個(gè)新興產(chǎn)業(yè),處于一個(gè)導(dǎo)入期與成長(zhǎng)期的臨界點(diǎn),大眾市場(chǎng)的消費(fèi)觀念還未完全形成,但隨著智能家居市場(chǎng)經(jīng)營(yíng)者推廣的進(jìn)一步實(shí)施,引導(dǎo)消費(fèi)者的消費(fèi)方向和新產(chǎn)品的使用等措施的應(yīng)用,智能家居市場(chǎng)的的活躍只是時(shí)間的問(wèn)題。如今智能家居至今在中國(guó)已經(jīng)歷了近13年的發(fā)展,從人們剛開(kāi)始的夢(mèng)想,到今天真真正正的走進(jìn)我們的

13、生活,經(jīng)歷了一個(gè)反復(fù)曲折路。在1994年-1999,渡過(guò)智能家居的第一階段萌芽期/智能小區(qū)期,在2000年-2005年期間,迎來(lái)了自己的第二階段開(kāi)創(chuàng)期,在2006年,經(jīng)過(guò)了5年的發(fā)展,智能家居正式進(jìn)入第三階段-徘徊期,現(xiàn)如今,我們正在經(jīng)歷他的第四個(gè)階段-融合演變期,自進(jìn)入2011年以后,產(chǎn)品需求市場(chǎng)明顯增長(zhǎng),現(xiàn)階段房產(chǎn)行業(yè)不好,智能家居的進(jìn)入能否再添新動(dòng)力受到大家的關(guān)注。智能家居的產(chǎn)品需求量增長(zhǎng)說(shuō)明智能家居行業(yè)進(jìn)入了一個(gè)新的時(shí)間段,接下來(lái)的幾年的時(shí)間里,智能家居一方面進(jìn)入一個(gè)相對(duì)快速的發(fā)展階段,另一方面協(xié)議與技術(shù)標(biāo)準(zhǔn)也開(kāi)始慢慢走向統(tǒng)一,為標(biāo)準(zhǔn)化生產(chǎn)提供軟條件的準(zhǔn)備。而良好的勢(shì)頭也吸引了一批商人

14、的加入,開(kāi)發(fā)人員工資不斷攀高,新的產(chǎn)品層出不窮,市場(chǎng)競(jìng)爭(zhēng)越來(lái)越激烈。根據(jù)美國(guó)該行業(yè)權(quán)威公司PARKS的統(tǒng)計(jì)資料顯示:1995年,美國(guó)一個(gè)家庭智能家居方面的花費(fèi)大概在7000至9000美元之間。1995年美國(guó)家庭已使用先進(jìn)家庭自動(dòng)化設(shè)備的比率為0.33%,看來(lái)市場(chǎng)真正啟動(dòng)尚需時(shí)日。預(yù)計(jì)這五年內(nèi),家庭自動(dòng)化的市場(chǎng)年平均增長(zhǎng)率為8%.PARKS公司的資料亦顯示:到2004年,家庭網(wǎng)絡(luò)市場(chǎng)總額可達(dá)57億美元,由此可知,智能家居無(wú)論在國(guó)內(nèi)還是國(guó)外都有良好的發(fā)展前景,形勢(shì)一片大好。1.4 指導(dǎo)思想 本系統(tǒng)開(kāi)發(fā)基于C語(yǔ)言。使用Keil4集成開(kāi)發(fā)環(huán)境,使用現(xiàn)已經(jīng)技術(shù)成熟的器材,以保障系統(tǒng)正常安全使用、質(zhì)量性能

15、好、穩(wěn)定。界面操作簡(jiǎn)單,功能全面,實(shí)用性強(qiáng),人機(jī)交互友好,無(wú)需復(fù)雜操作就可以使用產(chǎn)品,易學(xué)易用。 第2章 開(kāi)發(fā)工具與MCU簡(jiǎn)介2.1 STM32F10XXSTM32系列單片機(jī)是為高性能、低成本、低功耗的嵌入式應(yīng)用專門(mén)設(shè)計(jì)的,十分適合現(xiàn)在的智能家居研發(fā),款型多、功能完備,資料豐富,技術(shù)也相對(duì)成熟,下面我們就來(lái)系統(tǒng)的了解一下這款單片機(jī)。按內(nèi)核架構(gòu)分為不同產(chǎn)品。其中STM32F1系列有:STM32F103"增強(qiáng)型"系列STM32F101"基本型"系列STM32F105、STM32F107"互聯(lián)型"系列增強(qiáng)型系列時(shí)鐘頻率為72MHz,再同品型

16、的單片機(jī)中是性能最好的一款;普通型的時(shí)鐘頻率為36MHz,而如今普通產(chǎn)品的價(jià)格得到性能大幅提升產(chǎn)品,相信是很多用戶的最佳選擇。兩個(gè)系列產(chǎn)品都內(nèi)置閃存大小是相同的,還是32K到128K,不同的是SRAM的最大容量和外設(shè)接口的這兩部分。當(dāng)時(shí)鐘頻率72MHz時(shí)候,可以從閃存中直接運(yùn)行程序,速度更快,STM32功耗為36mA,是32位單片機(jī)同類(lèi)市場(chǎng)上功耗最低的產(chǎn)品。 圖2-1 STM32F10XX功能框圖內(nèi)核:32位mcu處理器,頻率為72MHz,采用單周期乘法,不容易受外部設(shè)備電流影響,穩(wěn)定性更好。存儲(chǔ)器:片上集成32-512KB的閃存。6-64KB的只讀存儲(chǔ)器。時(shí)鐘、復(fù)位和電源管理:電源為3V供電

17、。上電復(fù)位、掉電復(fù)位電路完善,自帶可編程的電壓探測(cè)器(現(xiàn)不常應(yīng)用)。晶振為16MHz(頻率可設(shè)置,可滿足不同外部設(shè)備的驅(qū)動(dòng))。8MHz RC電路。40 kHz的RC振蕩電路(可外接振蕩電路,也可利用自身具有的振蕩電路)。CPU時(shí)鐘具有校準(zhǔn)功能,由的32kHz的晶振單獨(dú)完成。低功耗模式:3種低功耗模式:休眠,停止,待機(jī)模式。調(diào)試模式:串行調(diào)試接口和JTAG接口。DMA:12通道DMA控制器。支持的外設(shè):定時(shí)器,ADC,DAC,SPI,IIC和UART。3個(gè)12位的us級(jí)的A/D轉(zhuǎn)換器:A/D測(cè)量范圍:0-3.6V。雙采樣和保持能力。D/A轉(zhuǎn)換器的種類(lèi)多,可以適合不同型號(hào)外設(shè)信息采集,非常全面???/p>

18、速I(mǎi)/O端口:所有的端口都可以鏈接到個(gè)外部中斷。排除模擬量的輸入,所有的端口都可以接受5V以內(nèi)的信號(hào)輸入。定時(shí)器:4個(gè)16位定時(shí)器,每個(gè)定時(shí)器都配有4個(gè)IC/OC/PWM或者脈沖計(jì)數(shù)器。2個(gè)16位控制定時(shí)器:最多6個(gè)通道可用于PWM輸出除此還有2個(gè)看門(mén)狗定時(shí)器,可供多個(gè)外設(shè)同時(shí)工作時(shí)應(yīng)用。Systick定時(shí)器:24位倒計(jì)數(shù)器。2個(gè)16位基本定時(shí)器用于驅(qū)動(dòng)DAC。擁有3個(gè)SPI接口,兩個(gè)和IIS復(fù)用端口。一個(gè)2.0B的CAN接口,一個(gè)2.0USB接口含5個(gè)USART接收端口,13個(gè)通信接口,2個(gè)IIC接口,和一個(gè)SDIO接口。1、相較傳統(tǒng)的嵌入式處理器多一個(gè)嵌入式ARM內(nèi)核,使其兼容性更加強(qiáng)悍,

19、不僅對(duì)編程軟件還是與單片機(jī)相關(guān)的工具都是一次技術(shù)上的統(tǒng)一,與此同時(shí)提高了代碼處理效率,運(yùn)行,調(diào)試更加高效。2、嵌入式Flash存儲(chǔ)器和RAM存儲(chǔ)器:內(nèi)置512KB的閃存,為數(shù)據(jù)的安全性提供了更好的保障,存儲(chǔ)數(shù)據(jù)程序也更加方便,只讀存儲(chǔ)器與CPU的時(shí)鐘速度相同,可進(jìn)行高速讀寫(xiě)操作,更加貼近產(chǎn)品驅(qū)動(dòng)需要。3、可變靜態(tài)存儲(chǔ)器(FSMC):STM32的靜態(tài)存儲(chǔ)器擁有4個(gè)片選,且每一種片選模式還有四種模式選擇,控制的更加細(xì)致,精確,多更控制更加方便,不需要再加繁雜的外設(shè),代碼都是從外部存儲(chǔ)器執(zhí)行,不占用沒(méi)存,節(jié)省空間,提高運(yùn)行速度,外部訪問(wèn)按照36MHz進(jìn)行,速度更高,出錯(cuò)率更低。4、ARM的中斷:可以

20、處理43個(gè)中斷通道,包含16個(gè)中斷優(yōu)先級(jí),可以同時(shí)處理多個(gè)外部中斷,對(duì)外設(shè)的處理精確度得到有效提高,更適合處理復(fù)雜多樣的外設(shè)。緊密耦合的NVIC實(shí)現(xiàn)了低的中斷處理延遲,直接向內(nèi)核傳遞中斷入口向量表地址,緊密耦合的NVIC內(nèi)核接口,更加方便允許中斷提前處理,對(duì)后到的更高優(yōu)先級(jí)的中斷進(jìn)行處理,自動(dòng)保存處理器狀態(tài),中斷入口在中斷退出時(shí)自動(dòng)恢復(fù),不需要指令控制,自動(dòng)化程度更好,減小程序員的工作量。5、外部中斷/事件控制器(EXTI):外部中斷/事件控制器由19個(gè)產(chǎn)生中斷請(qǐng)求檢索組成。每條線都是經(jīng)過(guò)獨(dú)特配置用于選擇觸 發(fā)事件(模式:上升沿,下降沿,或者兩者都可以),可以同時(shí)屏蔽多個(gè),也可以只屏蔽一個(gè),更

21、有利于對(duì)外設(shè)的控制。有一個(gè)掛起寄存器用來(lái)檢測(cè)中斷請(qǐng)求。當(dāng)外部線上出現(xiàn)長(zhǎng)度超過(guò)內(nèi)部時(shí)鐘周期的脈沖時(shí),EXTI便馬上能檢測(cè)到是由外部的信號(hào)在申請(qǐng)中斷。6、時(shí)鐘和啟動(dòng):系統(tǒng)的時(shí)鐘在系統(tǒng)在工作前,先需要時(shí)鐘的設(shè)定,一種是利用內(nèi)部8MHz的晶振作為CPU時(shí)鐘源。另外可以選擇一個(gè)外部的4-16MHz時(shí)鐘源,STM32在時(shí)鐘的檢測(cè)十分嚴(yán)格,會(huì)實(shí)時(shí)監(jiān)控當(dāng)與控制器被禁止那么軟件中斷管理也會(huì)跟著被禁止。還可以在PLL時(shí)鐘的中斷管理設(shè)定時(shí)鐘。多個(gè)預(yù)比較器可以用來(lái)配置AHB頻率,包括高速APB2和低速APB1,高速APB最高的頻率為72MHz,低速APB最高的頻率為36MHz。7、Boot模式:Boot引腳有3種Bo

22、ot模式選項(xiàng)可供選擇:從Flash進(jìn)入,從系統(tǒng)存儲(chǔ)器導(dǎo)入,從SRAM進(jìn)入。Boot導(dǎo)入代碼存儲(chǔ)在系統(tǒng)存儲(chǔ)器,用于通過(guò)USART1對(duì)Flash存儲(chǔ)器編程。8、電源供電方案:工作電壓2.0V-3.6V,外部電源通過(guò)VDD引腳連接,用于I/O和內(nèi)部調(diào)壓器。VSSA和VDDA的電壓范圍都是2.0-3.6V,外部模擬電壓用于ADC,復(fù)位模塊,RC和PLL,在VDD范圍之內(nèi),VSSA和VDDA必須相應(yīng)連接到VSS和VDD才可以。VBAT的電壓范圍為1.8-3.6V,當(dāng)VDD無(wú)效時(shí)為RTC,晶振和備份寄存器也可以為其提供電源,保證正常工作不受到影響。 2.2 KEIL MDKKeil MDK 的應(yīng)用十分廣泛

23、,因其功能全面性能佳,界面簡(jiǎn)介友好,從其問(wèn)世就迅速被廣大程序工程師所熟知和使用,工程師的反饋-非常適合STM32的開(kāi)發(fā)。Keil MDK,也稱MDK-ARM,Realview MDK、I-MDK、uVision4 等。MDK-ARM軟件為基于Cortex-M、Cortex-R4、ARM7、ARM9處理器設(shè)備提供了一個(gè)完整的開(kāi)發(fā)環(huán)境,一款軟件多項(xiàng)應(yīng)用,方便嵌入式工程師們?cè)诓煌?xiàng)目中多種程序的編寫(xiě),不用多次熟悉開(kāi)發(fā)工具,單憑這一點(diǎn),早已在嵌入式工程師的心中占據(jù)巨大優(yōu)勢(shì), MDK-ARM是一款專為微控制器應(yīng)用而設(shè)計(jì)生產(chǎn)的,因其界面簡(jiǎn)潔清晰,不僅易學(xué)易用,而且功能強(qiáng)大,能夠滿足大多數(shù)的嵌入式

24、應(yīng)用,綜合分析是嵌入式工程師的不二選擇。MDK-ARM有四個(gè)可用版本。所有版本均提供一個(gè)完善的C / C+開(kāi)發(fā)環(huán)境,實(shí)現(xiàn)多界面,多機(jī)型,多語(yǔ)言集于一身的高性價(jià)比產(chǎn)品,其中MDK-Professional還包含大量的中間庫(kù),方便調(diào)用且數(shù)據(jù)庫(kù)全面。使用Keil 來(lái)開(kāi)發(fā)嵌入式軟件,大致有以下幾個(gè)步驟:1. 創(chuàng)建一個(gè)project,選擇芯片,并進(jìn)行一些必要的配置信息2. 編寫(xiě)C 源文件3. 編譯工作代碼4. 修改源程序中的錯(cuò)誤5. 下載程序調(diào)試uVision4 開(kāi)發(fā)環(huán)境如下我們可以做到編輯,編譯,項(xiàng)目管理等多個(gè)程序調(diào)試步驟,窗口設(shè)計(jì)合理,出錯(cuò)顯示更加清晰,方便程序的調(diào)試。uVision4的特點(diǎn):支持多

25、系列單片機(jī)(Cortex-M、Cortex-R4、ARM7和ARM9);多語(yǔ)言(C/C+)的工具鏈,操作系統(tǒng)自帶源碼,封裝模塊化數(shù)據(jù);不僅提供編譯,調(diào)試,還具備仿真環(huán)境;網(wǎng)絡(luò)套件提供多種協(xié)議應(yīng)用;擁有標(biāo)準(zhǔn)的USB設(shè)備連接可能,與外設(shè)交互友好;不僅可以處理程序代碼,還可以處理圖形;程序每運(yùn)行一次會(huì)有一次覆蓋;符合國(guó)際公認(rèn)的軟件接口標(biāo)準(zhǔn)。ULINK USB-JTAG 界面適配器:ULINK USB-JTAG 是一個(gè)用于連接PC USB 口和開(kāi)發(fā)板JTAG 口的小硬件適配器。通過(guò)JTAG你可以很方便的將你的程序下載到目標(biāo)板上測(cè)試和驗(yàn)證程序運(yùn)行的效果。ULINK 支持如下操作:1. 下載目標(biāo)程序2.

26、檢查存儲(chǔ)器和寄存器3. 單步運(yùn)行程序4. 插入多個(gè)中斷點(diǎn)5. 實(shí)時(shí)運(yùn)行程序6. 燒寫(xiě)FLASH 存儲(chǔ)器第3章 總體分析與設(shè)計(jì)3.1 方案分析3.1.1 整體系統(tǒng)方案分析每個(gè)智能家居系統(tǒng)的設(shè)計(jì)者首先考慮到的問(wèn)題就是MCU選型的問(wèn)題。嵌入式設(shè)計(jì)中比較主流的兩款單片機(jī)就屬ARM與AVR/51最受大家的青睞,51是一款8位MCU的處理器,相較32位處理器的ARM在運(yùn)算能力上有明顯的不足,但32位的運(yùn)算的指令也是非常復(fù)雜的,進(jìn)行大量的數(shù)據(jù)運(yùn)算,視頻數(shù)據(jù),能力雖然較8位機(jī)強(qiáng)很多,運(yùn)算速度也高好多倍,但在各個(gè)中斷,寄存器配置,時(shí)鐘要求等等也更為嚴(yán)格,而且AVR的編程需要配置gcc或icc才能正常工作,有固定

27、的工作的環(huán)境,和51單片機(jī)相比,很復(fù)雜,可以用來(lái)參考的文獻(xiàn)資料也沒(méi)有51多,ARM與51相比雖然采用指令集簡(jiǎn)化了很多,可以在每個(gè)時(shí)鐘周期內(nèi)執(zhí)行一條命令,51需要12個(gè)時(shí)鐘周期才能完成一條指令的工作,綜合來(lái)分析51與STM32單片機(jī)都擁有各自的優(yōu)勢(shì),如何選擇就要從需求上加以分析。51單片機(jī)是每一嵌入式編程人員的入門(mén)課程,很基礎(chǔ),電路也相對(duì)簡(jiǎn)單,資料豐富,芯片很便宜,市面很常見(jiàn),但一旦處理大量的數(shù)據(jù),設(shè)計(jì)復(fù)雜運(yùn)動(dòng)控制,視頻時(shí),51就力不從心了,運(yùn)算的速度和效率低也是51的一個(gè)致命的缺點(diǎn),簡(jiǎn)單的總結(jié)下就是AVR的指令系統(tǒng)比較精簡(jiǎn),總線和存儲(chǔ)結(jié)構(gòu)也與51單片機(jī)不同,速度比51快很多。其次,從性能的角度

28、分析,ARM是32位處理器,頻率高達(dá)百兆赫茲,速度和處理能力遠(yuǎn)遠(yuǎn)優(yōu)于AVR和51,根據(jù)智能家居需要控制多個(gè)家用設(shè)備,傳送視頻圖像等等因素考慮,為了滿足該設(shè)備的設(shè)計(jì)要求,以上的51和AVR類(lèi)的MCU產(chǎn)品功能上仍顯不足。STM32FX 系列的MCU從功能上來(lái)說(shuō)更具吸引力,尤其是STM32F103VCT6這款MCU,片內(nèi)外設(shè)相當(dāng)豐富,3 個(gè)12 位模數(shù)轉(zhuǎn)換器、2 通道12 位D/A 轉(zhuǎn)換器、12通道DMA 控制器、80個(gè)快速I(mǎi)/O 端口、8 個(gè)定時(shí)器、多達(dá)13 個(gè)通信界面。除了其豐富的片內(nèi)外設(shè),它的每個(gè)I/O口都對(duì)應(yīng)著32位的配置寄存器,可以進(jìn)行自由的配置,還具有鎖存器和16位的復(fù)位寄存器和復(fù)位寄存

29、器。每個(gè)I/O口都可以自由的編程,每個(gè)I/O口都可以由軟件配置成多種模式。它的嵌入式中斷矢量控制器,具有16個(gè)可編程優(yōu)先級(jí),60個(gè)可屏蔽中斷通道,還具有延遲的異常和中斷處理。STM32F103VCT6 優(yōu)秀的特性決定了本設(shè)備產(chǎn)品設(shè)計(jì)的最終平臺(tái)。在選定MCU 后,首先規(guī)劃本設(shè)備的各個(gè)功能的實(shí)現(xiàn)。通過(guò)分析該設(shè)備在工業(yè)現(xiàn)場(chǎng)需要發(fā)揮的監(jiān)控作用,初步將該設(shè)備的功能設(shè)計(jì)如下:AD 數(shù)據(jù)采集,串行通信,EEPROM 數(shù)據(jù)存儲(chǔ)的讀寫(xiě),SD 卡數(shù)據(jù)存儲(chǔ)的讀寫(xiě),NANDFLASH 數(shù)據(jù)存儲(chǔ)的讀寫(xiě),時(shí)鐘的讀寫(xiě)設(shè)置。STM32F103VCT6的ADC轉(zhuǎn)換器是一種12位精度的逐次逼近型的數(shù)字轉(zhuǎn)換器。它有18個(gè)通道用來(lái)傳

30、遞信息數(shù)據(jù),可以測(cè)量16個(gè)外部信號(hào)和2個(gè)內(nèi)部信號(hào)。本款產(chǎn)品沒(méi)有全部使用所有的ADC,僅使用了其中的6條AD轉(zhuǎn)換通道。在ADC 通過(guò)外部傳感器將模擬信號(hào)轉(zhuǎn)化為數(shù)字信號(hào)后,接收返回的數(shù)據(jù)存儲(chǔ)在SD卡中或者EEPROM 中,供使用程序人員對(duì)數(shù)據(jù)進(jìn)行分析和處理。時(shí)鐘在不斷電的情況下即可正常運(yùn)行,可以為產(chǎn)品的液晶屏顯示提供時(shí)間不需要外接設(shè)備提供時(shí)間。3.1.2 數(shù)據(jù)采集方案設(shè)計(jì)我們所常用的傳感器信號(hào)一般都是模擬量,例如溫度傳感器,濕度傳感器等為了數(shù)據(jù)的操作與處理方便,需要將其轉(zhuǎn)換為數(shù)字量,所以需要使用到ADC 器件。緊接著就是AD方案的選擇問(wèn)題:其中一種是使用獨(dú)立的ADC轉(zhuǎn)換器,另一種使用MCU中自帶的

31、ADC 轉(zhuǎn)換模塊。而ADC的選擇依據(jù)有如下幾個(gè)關(guān)鍵的參數(shù)有分辨率,轉(zhuǎn)換速率,模擬量輸入端數(shù),模擬量輸入電壓范圍,數(shù)字量輸出方式等等。我們以ADC0809為例簡(jiǎn)單說(shuō)明下,0809的參數(shù)如下:1)8路輸入通道,8位A/D轉(zhuǎn)換器,即分辨率為8位。2)具有轉(zhuǎn)換起??刂贫?。3)轉(zhuǎn)換時(shí)間為100s。4)5V電源供電。5)模擬輸入電壓范圍0-+5V,不需要校準(zhǔn)和清零過(guò)程。6)工作溫度在-40+85攝氏度。7)功耗低,約15mW。ADC0809屬于中等速度的ADC轉(zhuǎn)換器,價(jià)格也比較低,但分辨率較低。如果外接高速ADC 轉(zhuǎn)換器,價(jià)格又過(guò)高,并不是最好的選擇。然而,對(duì)于MCU自帶的ADC模塊,其工作性能并不差。該

32、ADC屬于逐次逼近型模擬數(shù)字轉(zhuǎn)換器。它有18個(gè)信息采集返回通道,可測(cè)量16個(gè)外部信號(hào)和2個(gè)內(nèi)部信號(hào)。在本次設(shè)計(jì)中我們將兩種ADC的采集方法并用,下面會(huì)有詳細(xì)的使用說(shuō)明。3.1.3 數(shù)據(jù)存儲(chǔ)方案分析在智能家居系統(tǒng)里,需要存儲(chǔ)的數(shù)據(jù)并不是很多,溫濕度信息的存儲(chǔ)和登錄密碼存儲(chǔ)即可。說(shuō)到STM32的閃存用途,我們的第一反應(yīng)是用來(lái)裝程序代碼的,實(shí)際上,STM32的片內(nèi)FLASH不僅可以用來(lái)裝程序數(shù)據(jù)代碼,還用來(lái)裝芯片配置、芯片ID等等。雖然智能家居系統(tǒng)里的數(shù)據(jù)存儲(chǔ)只放在FLASH就可以了,但我們?yōu)榱舜蠹夷軌蚋玫牧私?,還是簡(jiǎn)談下FLASH的有關(guān)問(wèn)題: 1、FLASH分類(lèi)  根據(jù)用途進(jìn)

33、行分類(lèi),STM32片內(nèi)的閃存分成兩部分:主存儲(chǔ)部分、信息塊部分。 主存儲(chǔ)塊可以用于存儲(chǔ)程序,我們寫(xiě)的代碼,數(shù)據(jù)都會(huì)存儲(chǔ)在這里。 信息塊又分成兩部分:系統(tǒng)存儲(chǔ)器部分、選項(xiàng)字節(jié)部分。系統(tǒng)存儲(chǔ)器存儲(chǔ)是出廠時(shí)就被鎖死的,用戶不需要處理它,用來(lái)存儲(chǔ)系統(tǒng)代碼, 選項(xiàng)字節(jié)存儲(chǔ)芯片的配置內(nèi)容是對(duì)主存儲(chǔ)塊內(nèi)容的一種保護(hù)。    2、FLASH的頁(yè)面   STM32的FLASH主存儲(chǔ)塊按頁(yè)組織,有的產(chǎn)品每頁(yè)1KB,有的產(chǎn)品每頁(yè)2KB。頁(yè)面典型的用途就是用于按頁(yè)擦除FLASH。從這點(diǎn)來(lái)看,頁(yè)面有點(diǎn)像通用FLASH的扇區(qū)。 3、STM32產(chǎn)品的分類(lèi) 

34、0;STM32根據(jù)FLASH主存儲(chǔ)塊容量、頁(yè)面的不同,系統(tǒng)存儲(chǔ)器的不同,分為小容量、中容量、大容量、互聯(lián)型,共四類(lèi)產(chǎn)品。  小容量產(chǎn)品的主存儲(chǔ)存容量在1-32KB之間,系統(tǒng)占2KB,中容量產(chǎn)品主存儲(chǔ)容量在64-128KB之間,每頁(yè)占1KB大??;大容量產(chǎn)品主存儲(chǔ)容量在256KB以上,系統(tǒng)占2KB,每頁(yè)占2KB;互聯(lián)網(wǎng)型產(chǎn)品主存容量最大為 256KB以上,系統(tǒng)占18KB,每頁(yè)占2KB。 根據(jù)以下簡(jiǎn)單的規(guī)則進(jìn)行區(qū)分,根據(jù)其主存儲(chǔ)塊容量來(lái)劃分,STM32F105xx、STM32F107xx是互聯(lián)型產(chǎn)品。  幾類(lèi)單片機(jī)的不同之處就在于引導(dǎo)裝載程

35、序的不同,小中大容量產(chǎn)品的BootLoader占用空間很小,只能通過(guò)USART1進(jìn)行在線編程,而互聯(lián)型產(chǎn)品的BootLoader有18KB是小中型的9倍,從而編程的方式選擇也就更加的多樣化,例如USAT1、4、CAN等多種方式。 1、關(guān)于ISP與IAP ISP即在系統(tǒng)編程,是指直接在目標(biāo)電路板上對(duì)芯片進(jìn)行編程,一般需要一個(gè)自舉程序(BootLoader)來(lái)執(zhí)行。ISP也有叫ICP(In Circuit Programming)、在電路編程、在線編程。 IAP(In Application Programming)在應(yīng)用中編程,是指最終產(chǎn)品出廠后,由最終用戶在使用中對(duì)用戶程序部分進(jìn)行編

36、程,實(shí)現(xiàn)在線升級(jí)。IAP要求將程序分成兩部分:引導(dǎo)程序、用戶程序。引導(dǎo)程序總是不變的。IAP也有叫在程序中編程。 ISP與IAP的區(qū)別在于,ISP一般是對(duì)芯片整片重新編程,用的是芯片廠的自舉程序。而IAP只是更新程序的一部分,用的是電器廠開(kāi)發(fā)的IAP引導(dǎo)程序。綜合來(lái)看,ISP受到的限制更多,而IAP由于是自己開(kāi)發(fā)的程序,更換程序的時(shí)候更容易操作。 2、FPEC FPEC(FLASH Program/Erase controller 閃存編程/擦除控制器),STM32通過(guò)FPEC來(lái)擦除和編程FLASH。FPEC使用7個(gè)寄存器來(lái)操作閃存: FPEC鍵寄存器(FLASH_KEYR

37、)          寫(xiě)入鍵值解鎖。 選項(xiàng)字節(jié)鍵寄存器(FLASH_OPTKEYR)   寫(xiě)入鍵值解鎖選項(xiàng)字節(jié)操作。 閃存控制寄存器(FLASH_CR)          選擇并啟動(dòng)閃存操作。 閃存狀態(tài)寄存器(FLASH_SR)          查詢閃存操作狀態(tài)。 閃存地址寄存器(FLASH_AR)      

38、60;   存儲(chǔ)閃存操作地址。 選項(xiàng)字節(jié)寄存器(FLASH_OBR)         選項(xiàng)字節(jié)中主要數(shù)據(jù)的映象。 寫(xiě)保護(hù)寄存器(FLASH_WRPR)          選項(xiàng)字節(jié)中寫(xiě)保護(hù)字節(jié)的映象。主存儲(chǔ)塊不僅可以全部擦除,重新寫(xiě)入,也可以對(duì)其中的一頁(yè)或者幾頁(yè)進(jìn)行刪除,重新寫(xiě)入的操作。 建議使用以下步驟進(jìn)行頁(yè)擦除: 1檢查FLASH_SR寄存器的BSY位。保證沒(méi)有其他正在進(jìn)行的閃存操作。設(shè)置一段延時(shí)等待BSY位為0,才可繼續(xù)操作。

39、60;2設(shè)置FLASH_CR寄存器的PER位為1。 3選擇出所要擦除的頁(yè)碼地址,盡行擦出準(zhǔn)備。 4啟動(dòng)擦除操作。5當(dāng)收到響應(yīng)信號(hào)也就是寄存器BSY變?yōu)?。 6做檢查,如果EOP位為1,說(shuō)明此次操作成功否則檢查前幾步操作是否得當(dāng)。  7分析數(shù)據(jù)位,每次擦完后數(shù)據(jù)位都會(huì)被設(shè)置成數(shù)字1,若操作正確既可以得到全部為1的數(shù)據(jù)位,整片擦除的方法(與寫(xiě)入方式相反的操作)大體如下:     1檢查BSY位,確認(rèn)沒(méi)有其他正在進(jìn)行的操作。 2設(shè)置寄存器的MER位為1。   3設(shè)置寄存器的STRT位為1。&

40、#160;  4等待寄存器的BSY位變?yōu)?。 5查詢FLASH_SR寄存器的EOP位,EOP為1時(shí)。   6做驗(yàn)證。 主存儲(chǔ)塊的編程:主存儲(chǔ)模塊的程序編寫(xiě)每一次只可以寫(xiě)16bit,當(dāng)寄存器的PG位被設(shè)置為1時(shí),在一個(gè)Flash地址寫(xiě)入一個(gè)16位將會(huì)進(jìn)行一次編程;寫(xiě)入任何其他的數(shù)字或者數(shù)據(jù),總線上都會(huì)產(chǎn)生錯(cuò)誤信息,當(dāng)發(fā)現(xiàn)讀取閃存時(shí)會(huì)使CPU停止工作,有可能是FPEC設(shè)置錯(cuò)誤產(chǎn)生的。 建議對(duì)主存儲(chǔ)塊使用如下過(guò)程進(jìn)行編寫(xiě)程序: 1檢查寄存器的BSY位,確認(rèn)所有的其他程序操作沒(méi)有占用。2選擇編程操作。  3在指定的地址寫(xiě)入

41、要編程的半字,切記不要輸入其他的數(shù)字。  4設(shè)置一段延時(shí),等待寄存器的BSY位變?yōu)?。 5再一次查詢寄存器的EOP位,若EOP為1表示此次操作是成功的。  3.1.4 顯示方案分析在數(shù)據(jù)顯示方面上,常用的實(shí)驗(yàn)器材有兩種可供選擇,12864液晶和1602液晶,12864 顧名思義像素是128乘以64,能顯示32個(gè)漢字,如果型號(hào)不同,待的漢子庫(kù)不同,能顯示的數(shù)字和效果都會(huì)有所不同,功能相比1602強(qiáng)大很多,1602只能顯示符號(hào)、數(shù)字和字母能顯示32個(gè)字符,但寄存器不止32個(gè),可以將內(nèi)容滾動(dòng)顯示出來(lái),顯示字符的順序也可以設(shè)置,從左往右或者相反都可以,因?yàn)槠涔δ芎惋@示效果

42、簡(jiǎn)單,價(jià)格比12864少很多,在嵌入式使用方面,兩者難度差不多,原理也相近,只要配置好指令、地址、數(shù)據(jù)即可。智能家居的在顯示方面需要同時(shí)顯示幾行數(shù)據(jù),而1602每一次顯示的數(shù)據(jù)過(guò)少,相互比較而言12864是不錯(cuò)的選擇。3.2 功能設(shè)計(jì)智能家居設(shè)備可以同時(shí)檢測(cè)三個(gè)不同區(qū)域的氣體濃度,三個(gè)地方溫濕度情況,三個(gè)地域光照強(qiáng)度并且控制燈光,超過(guò)標(biāo)準(zhǔn)值時(shí)的報(bào)警功能,采用整屏顯示模式。產(chǎn)品功能設(shè)計(jì)如圖3-1所示。照明顯示模塊ADC0809采集模塊I/O I/OI/O I/OT1 STM32T0 I/OT2 I/O煙霧傳感器模塊液晶顯示12864模塊溫濕度傳感器模塊 光照強(qiáng)度信息采集模塊 報(bào)警器 圖3-1智能

43、家居整體功能設(shè)計(jì)第4章 詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)4.1 界面設(shè)計(jì)1.溫濕度顯示界面 圖4-1 溫濕度顯示界面2. 煙霧顯示界面圖4-2 煙霧顯示界面 4.2 原理圖設(shè)計(jì)顯示供電中央處理器CPULED電路溫濕度電路繼電器電路煙感電路電源電路液晶電路控制控制數(shù)據(jù)圖4-3 硬件系統(tǒng)原理本智能家居系統(tǒng)的設(shè)計(jì)分為溫濕度數(shù)據(jù)采集模塊、煙霧數(shù)據(jù)存采集模塊、光照數(shù)據(jù)采集模塊、燈光控制模塊、報(bào)警模塊和顯示模塊等6部分組成。每個(gè)模塊的設(shè)計(jì)上均有其難點(diǎn)和特殊性,需要嚴(yán)格按照原理圖設(shè)計(jì)規(guī)范來(lái)設(shè)計(jì)13,原理圖設(shè)計(jì)要點(diǎn)如下所示:1. 各功能塊布局要合理,整份原理圖需要布局均衡,避免有些地方很擠,而有些地方很松。2. 將溫

44、度信息采集模塊、如溫度采集模塊、濕度數(shù)據(jù)采集,光照信息采集,報(bào)警部分各功能部分模塊化,方便差錯(cuò)和修改程序。3 在接插口時(shí)盡量將外設(shè)分布在四周,不要分布不均一面造成一側(cè)的端口不夠用。例如電源輸入,輸出負(fù)載接口等等。4 對(duì)于一些像滑阻類(lèi)似的可調(diào)元件,都應(yīng)該標(biāo)清楚方向以及物體說(shuō)明,以免在實(shí)驗(yàn)中損壞器件。5 外部的元器件在向主控電路接入的過(guò)程中,采取就近原則即可。6 濾波器件應(yīng)該就近排放,減少不必要的空間浪費(fèi)。7 重點(diǎn)的模塊、信號(hào)和器件,應(yīng)該用標(biāo)簽標(biāo)注清楚,接線清楚,接口也要標(biāo)注清楚,如果有條件可以用PCB畫(huà)板技術(shù)。9 將所需要的所有二極管統(tǒng)

45、一放在一個(gè)表格中,進(jìn)行標(biāo)注作用,方便后續(xù)的錯(cuò)誤檢測(cè)與查找。 10 在寫(xiě)文檔時(shí),將重要的程序可以用黑體或者加粗。 11 用于特別表示的文字,或者標(biāo)簽,為了更好的區(qū)分可以不同的用不同的顏色區(qū)分,例如器件用紅色,接口用黃色等等。12 在標(biāo)注元器件參數(shù)時(shí),應(yīng)該格外注重電阻的阻止,或者器件的工作電壓,和工作條件,為查找故障提供方便條件。4.2.1 數(shù)據(jù)采集模塊設(shè)備的數(shù)據(jù)采集,即ADC 數(shù)據(jù)轉(zhuǎn)換模塊,利用了MCU 自帶的ADC 模塊和外部設(shè)備ADC0809兩種數(shù)據(jù)轉(zhuǎn)換模式,將傳感器的模擬信號(hào)轉(zhuǎn)換為數(shù)字量存儲(chǔ)起來(lái)。本設(shè)備設(shè)計(jì)的傳感器為6路,所以需要MCU 的

46、6個(gè)ADC 模擬量輸入引腳,在綜合考慮MCU 引腳使用情況后,決定使用PA0PA3,PB0,PB1 引腳作為模擬信號(hào)輸入端。為簡(jiǎn)化下位機(jī)電路,沒(méi)有將傳感器模擬信號(hào)采集部分設(shè)計(jì)到下位機(jī)上14。電路設(shè)計(jì)圖如圖4-4所示:圖4-4 AD輸入端電路圖各個(gè)模擬量輸入端子全部直接連接到MCU 的ADC 模擬輸入引腳上AD數(shù)據(jù)采集程序:void AD_data(uchar x)double i;int j;int ge,shi,bai;init();cs=1;cs=0;rd=1; while(x)x-;for(a=0;a<13;a+) write_com(0x80+a);write_date(tabl

47、ea);delay(5);delay(5);wr=1;wr=0;wr=1;delay(10);rd=0;delay(5);i=P1;i=i/255;i*=5;i*=100;j=(int)i;ge=j%10;put_str(4,ge);j-=ge;shi=j/10;shi=shi%10;write_date(shi);bai=j/100;put_str1(2,'.');delay(5);put_str(1,bai);delay(5);rd=1;delay(5);write_com(0x80+0x40+4);delay(5);write_date('V');dela

48、y(5);4.2.2 溫濕度傳感器模塊為了測(cè)量的準(zhǔn)確性和多通道數(shù)據(jù)采集,這里選擇3片dht11 連接到stm32芯片上,由芯片上的IO引腳作為3片dht11 的器件數(shù)據(jù)及時(shí)鐘選擇端口。電路圖設(shè)計(jì)如圖4-5所示:圖4-5 溫濕度設(shè)計(jì)電路圖溫濕度數(shù)據(jù)采集程序:u8 DHT11_Read_Bit(void) u8 retry=0;while(DHT11_DQ_IN&&retry<100)retry+;delay_us(1);retry=0;while(!DHT11_DQ_IN&&retry<100)retry+;delay_us(1);delay_us(4

49、0);if(DHT11_DQ_IN)return 1;else return 0; u8 DHT11_Read_Byte(void) u8 i,dat; dat=0;for (i=0;i<8;i+) dat<<=1; dat|=DHT11_Read_Bit();return dat;u8 DHT11_Read_Data(u8 *temp,u8 *humi) u8 buf5;u8 i;DHT11_Rst();if(DHT11_Check()=0)for(i=0;i<5;i+)bufi=DHT11_Read_Byte();if(buf0+buf1+buf2+buf3)=bu

50、f4)*humi=buf0;*temp=buf2;else return 1;return 0;4.2.3 煙霧傳感模塊傳感器采用兩種數(shù)據(jù)采集方法,一種是數(shù)字量DO的采集判斷有無(wú)氣體,一種是模擬量輸出AO檢測(cè)氣體的濃度狀態(tài)情況,以及判斷該濃度對(duì)人體是否有害。詳細(xì)電路設(shè)計(jì)如下圖4-6所示:圖4-6 煙霧傳感電路設(shè)計(jì)圖煙霧傳感數(shù)據(jù)采集程序:u16 Get_Adc(u8 ch) ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_239Cycles5 );ADC_SoftwareStartConvCmd(ADC1, ENABLE); while(

51、!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC );return ADC_GetConversionValue(ADC1);u16 Get_Adc_Average(u8 ch,u8 times)u32 temp_val=0;u8 t;for(t=0;t<times;t+)temp_val+=Get_Adc(ch);delay_ms(5);return temp_val/times; adcx=Get_Adc_Average(ADC_Channel_1,10);if(!adcx1)adcx1=adcx;longdu=(adcx-adcx1)*100/256;pr

52、intf("rn您發(fā)送的消息為:濃度:%drnrn",longdu);4.2.4 液晶顯示電路設(shè)計(jì)本系統(tǒng)液晶顯示采用LCM12864液晶作為顯示器。顯示相關(guān)的提示信息和數(shù)據(jù)的輸出。該液晶模塊支持串行通信和并口通信。串行通信為單根數(shù)據(jù)線,通信速率低于并口通信,占用端口少。并口通信通信速率塊但是占用端口多。為了節(jié)約IO口采用串行方式設(shè)計(jì)電路電路圖設(shè)計(jì)如圖4-7下:圖4-7 液晶顯示電路設(shè)計(jì)圖液晶初始化程序:void SendByte(unsigned char dat)unsigned char i;CLK_L;for(i=0;i<8;i+)if(dat&0x80

53、) SID_H;else SID_L;CLK_L;delay(10);CLK_H;dat=dat<<1;CLK_L;void WriteCommandLCD(unsigned char dat,unsigned char tt) CS_H;delay(10);CLK_L;delay(10);SendByte(0xF8);/11111,00,0 RW=0,RS=0 同步標(biāo)志 delay(10);SendByte(dat&0xF0);/高四位SendByte(dat&0x0F)<<4);/低四位delay_ms(1);CS_L;void WriteDataL

54、CD(unsigned char dat)CS_H;delay(10)CLK_L;delay(10);SendByte(0xFA);/11111,01,0 RW=0,RS=1 delay(10);SendByte(dat&0xF0);/高四位 delay(10);SendByte(dat&0x0F)<<4);/低四位delay_ms(1);CS_L; void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData) CS_H; if(Y<1) Y=1; if(Y>4) Y

55、=4; X &= 0x0F; switch(Y)case 1:X|=0X80;break;case 2:X|=0X90;break;case 3:X|=0X88;break;case 4:X|=0X98;break;WriteCommandLCD(X, 0); WriteDataLCD(DData); delay(100); CS_L;void SET_ADDR(unsigned char X, unsigned char Y) CS_H; if(Y<1) Y=1;if(Y>4)Y=4; X &= 0x0F; switch(Y) case 1:X|=0X80;bre

56、ak;case 2:X|=0X90;break;case 3:X|=0X88;break;case 4:X|=0X98;break;WriteCommandLCD(X, 0); delay(100);CS_L;void SET_ADDR1(unsigned char X, unsigned char Y) CS_H; if(Y<1)Y=1;if(Y>4)Y=4;X &= 0x0F; /限制X不能大于16,Y不能大于1 switch(Y)case 1:X|=0X80;break;case 2:X|=0X90;break;case 3:X|=0X88;break;case 4:X|=0X98;break;WriteCommandLCD(X, 0); delay(100); CS_L;void LCDInit(void) /LCM初始化 CS_H;delay_ms(100);CLK_L;WriteCommandLCD(0x3

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論