通信系統(tǒng)綜合設(shè)計報告——光照強監(jiān)測系統(tǒng)設(shè)計_第1頁
通信系統(tǒng)綜合設(shè)計報告——光照強監(jiān)測系統(tǒng)設(shè)計_第2頁
通信系統(tǒng)綜合設(shè)計報告——光照強監(jiān)測系統(tǒng)設(shè)計_第3頁
通信系統(tǒng)綜合設(shè)計報告——光照強監(jiān)測系統(tǒng)設(shè)計_第4頁
通信系統(tǒng)綜合設(shè)計報告——光照強監(jiān)測系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目目 錄錄第一章概述.2第一節(jié) 課題背景與意義.2第二節(jié) 課題設(shè)計要求與指標.2第二章系統(tǒng)方案選擇與確定.2第一節(jié) 硬件系統(tǒng)方案選擇.2一、 光照采集模塊方案選擇.2二、 無線傳輸模塊方案選擇.3三、 LCD 顯示模塊方案選擇.3四、 MCU 模塊方案選擇.3第二節(jié) 軟件系統(tǒng)方案選擇.4第三章系統(tǒng)硬件設(shè)計與實現(xiàn).4第一節(jié) 采集端硬件設(shè)計.4一、光照采集模塊設(shè)計.5二、ATmega16L 最小系統(tǒng)模塊設(shè)計.6三、無線傳輸模塊設(shè)計.7第二節(jié) 終端硬件設(shè)計.8一、LCD 顯示模塊設(shè)計.8二、變壓電路設(shè)計.10第四章 系統(tǒng)軟件設(shè)計與實現(xiàn).10第一節(jié) 程序整體設(shè)計.10第二節(jié) 光照采集與 AD 轉(zhuǎn)換程序

2、設(shè)計.11第三節(jié) 無線傳輸程序設(shè)計.12第四節(jié) LCD 顯示程序設(shè)計.13第五節(jié) 程序下載.13第四章測試結(jié)果及討論.14第一節(jié) LCD 顯示測試.14第二節(jié) 光照采集與顯示測試.15心得體會.17參考文獻.17附錄.18一、 器件清單.18二、工具清單. 18三、實物圖. 19四、程序代碼. 19第一章第一章概述概述第一節(jié)第一節(jié) 課題課題背景與意義背景與意義在現(xiàn)代農(nóng)業(yè)和工業(yè)領(lǐng)域,經(jīng)常需要對一些環(huán)境參數(shù)進行監(jiān)測,以做出相應(yīng)處理,確保設(shè)備和系統(tǒng)運行在最佳狀態(tài)。隨著科技的發(fā)展,對環(huán)境參數(shù)監(jiān)測系統(tǒng)的要求也越來越高;因此基于傳感器、單片機和無線通信芯片設(shè)計出一種無線環(huán)境參數(shù)監(jiān)測系統(tǒng)十分的重要。光照強度

3、是一個重要的環(huán)境參數(shù),在工業(yè)和農(nóng)業(yè)領(lǐng)域有著重要的應(yīng)用,本課程設(shè)計介紹一種可以應(yīng)用在許多領(lǐng)域的無線光照強度監(jiān)測系統(tǒng), 實現(xiàn)對環(huán)境中的光照強度進行實時采集處理、無線傳輸與顯示的功能。本文的主要研究工作集中在光照強度監(jiān)測系統(tǒng)的設(shè)計上,通過 C 語言編程對單片機進行控制,使單片機控制光照采集傳感器、無線通信芯片和 LCD,實現(xiàn)系統(tǒng)功能。在本課題的基礎(chǔ)上可以設(shè)計完成一個高速、方便、穩(wěn)定的環(huán)境數(shù)據(jù)監(jiān)測采集和傳輸系統(tǒng),可以廣泛應(yīng)用于現(xiàn)代農(nóng)業(yè)和工業(yè)領(lǐng)域。第二節(jié)第二節(jié) 課題設(shè)計要求與指標課題設(shè)計要求與指標本系統(tǒng)以環(huán)境光照強度為研究對象,應(yīng)滿足的要求與指標為:1、監(jiān)測點光照強度測量精確,精度大于 0.1lux;2

4、、將監(jiān)測點的參數(shù)數(shù)據(jù)以無線方式發(fā)送至匯節(jié)點,并 LCD 顯示,要求分立元件實現(xiàn)的無線傳輸距離大于 20cm, 無線傳輸模塊實現(xiàn)的傳輸距離大于 1km;3、無線傳輸設(shè)備具有較強的抗干擾能力;4、設(shè)備具有較高的實時性;5、設(shè)備功耗功耗較低。第二章第二章系統(tǒng)方案選擇與確定系統(tǒng)方案選擇與確定第一節(jié)第一節(jié)硬件系統(tǒng)方案選擇硬件系統(tǒng)方案選擇系統(tǒng)硬件部分主要分為采集端和終端兩個部分,采集端應(yīng)包含:光照采集模塊、MCU 模塊、無線傳輸模塊;終端應(yīng)包括:MCU 模塊、無線傳輸模塊、LCD顯示模塊。針對各個模塊,分別有幾種不同的方案,本節(jié)將各個模塊的方案進行比較并確定最終方案。一、一、光照采集模塊方案選擇光照采集模

5、塊方案選擇系統(tǒng)要求采集環(huán)境內(nèi)實時光照強度,并有一定的精確度,光照采集模塊有下列兩種方案:方案一:采用光敏電阻及相關(guān)的外圍電路,設(shè)計成的自制光照采集模塊,用于采集環(huán)境光照信息。使用光敏電阻的電路結(jié)構(gòu)簡單、實時性高、成本低,但是一般的光敏電阻精確度較低,難以達到課題的要求。方案二: 采用光照傳感器Po188采集環(huán)境的光照信息。 使用光照傳感器Po188的電路結(jié)構(gòu)簡單、實時性好、成本較低,靈敏度高、電流隨光照度增強呈線性變化,采集精確度高,符合課題要求。故采用該方案。二、二、無線傳輸模塊方案選擇無線傳輸模塊方案選擇系統(tǒng)要求采集端通過無線的方式將采集到的光照強度信息發(fā)送到終端, 終端也是采用無線的方式

6、接受采集端發(fā)來的數(shù)據(jù)。無線通信模塊方案有下列幾種方案:方案一:通過自制的無線通信模塊,但是由于是采用分立元件設(shè)計的自制無線通信模塊,工作不穩(wěn)定,抗干擾性差,不滿足題目的要求,故不采用該方案。方案二:采用無線串口進行無線數(shù)據(jù)通信,具有接口簡單,只需利用單片機的串口就可建立無線通信,采用該模塊成本較高,雖然能夠滿足題目要求,但是考慮到系統(tǒng)的成本,不采用該方案。方案三:采用無線收發(fā)模塊 nRF24L01,該模塊采用 SPI 接口可以很方便的與 MCU 建立通信,發(fā)送與接受只需通過簡單的將控制指令通過 SPI 接口寫入nRF24L01 就可以發(fā)送和接收數(shù)據(jù)。 具有低的系統(tǒng)費用(低速微處理器也能進行高速

7、射頻發(fā)射),數(shù)據(jù)在空中停留時間短,抗干擾性高。故采用該方案。三、三、LCD 顯示模塊方案選擇顯示模塊方案選擇系統(tǒng)的終端需要實時地將環(huán)境光照強度信息顯示出來, 選擇 1602 液晶模塊,該模塊能夠顯示 32 個 ASCII 碼,并且電路結(jié)構(gòu)簡單,能夠滿足系統(tǒng)的數(shù)據(jù)顯示要求,故采用液晶 1602 進行數(shù)據(jù)顯示。四、四、MCU 模塊方案選擇模塊方案選擇方案一:采用 51 系列單片機及其最小系統(tǒng)作為 MCU 模塊,其特點是結(jié)構(gòu)簡單,使用的是 CISC 指令系統(tǒng),馮諾依曼總線結(jié)構(gòu),系統(tǒng)功能易于實現(xiàn),成本低,但是處理速度較慢,故不采用此方案。方案二:采用 AVR 系列單片機及其最小系統(tǒng)作為 MCU 模塊,

8、其特點是結(jié)構(gòu)簡單,使用的是 RISC 指令系統(tǒng),哈佛結(jié)構(gòu)總線結(jié)構(gòu),處理速度較快,更好的滿足系統(tǒng)實時性的要求, 同時功耗較低。 故采用該方案, 我們選用的是 ATmega16L單片機。第第二二節(jié)節(jié)軟件系統(tǒng)方案選擇軟件系統(tǒng)方案選擇軟件系統(tǒng)采用模塊化設(shè)計思想, 分別使用 C 語言對對采集端和終端的 MCU進行編程。軟件系統(tǒng)的編譯環(huán)境采用的是采用 AVR 單片機 C 語言集成開發(fā)環(huán)境 codevision1.25.3,是 HP Info Tech 專為 AVR 系列單片機設(shè)計的一款低成本 C 語言編譯器。它產(chǎn)生的代碼非常嚴密,效率很高,不僅包括了 AVR 的 C 編譯器,同時也是一個集成 IDE 的

9、AVR 開發(fā)平臺,簡稱 CVAVR?;诟呒壵Z言開發(fā)單片機系統(tǒng)具有語言簡潔,可讀性強,可移植性好,可進行結(jié)構(gòu)化和模塊化程序設(shè)計等優(yōu)點。圖 2-1 為 code vision1.25.3 的開發(fā)環(huán)境。圖 2-1code vision1.25.3 的開發(fā)環(huán)境第三章第三章系統(tǒng)硬件設(shè)計與實現(xiàn)系統(tǒng)硬件設(shè)計與實現(xiàn)系統(tǒng)硬件部分主要分為采集端和終端兩個部分,采集端應(yīng)包含:光照采集模塊、MCU 模塊、無線傳輸模塊;終端應(yīng)包括:MCU 模塊、無線傳輸模塊、LCD顯示模塊。圖 3-1 為系統(tǒng)硬件設(shè)計框圖。圖 3-1系統(tǒng)硬件設(shè)計框圖第第一一節(jié)節(jié)采集端硬件設(shè)計采集端硬件設(shè)計終端LCD 顯示模塊(1602)MCU 模塊(

10、ATmega16L)無線傳輸模塊(nRF24L01)采集端光照采集模塊(Po188)MCU 模塊(ATmega16L)無線傳輸模塊(nRF24L01)采集端主要由光照采集模塊、MCU 模塊,即 ATmega16L 最小系統(tǒng)、以及無線傳輸模塊構(gòu)成,采集端電路圖如圖 3-2 所示。圖 3-2 采集端硬件電路圖一、一、光照采集模塊設(shè)計光照采集模塊設(shè)計采集端的光照采集模塊的主要器件是光照傳感器 Po188。 Po188 是一個光電集成傳感器,典型入射波長為p=520nm,內(nèi)置雙敏感元接收器,可見光范圍內(nèi)高度敏感,輸出電流隨照度呈線性變化。Po188 的主要特性有:暗電流小,低照度響應(yīng),靈敏度高,電流隨

11、光照度增強呈線性變化;內(nèi)置雙敏感元,自動衰減近紅外,光譜響應(yīng)接近人眼函數(shù)曲線;內(nèi)置微信號 CMOS 放大器、高精度電壓源和修正電路,輸出電流大,工作電壓范圍寬,溫度穩(wěn)定性好;可選光學(xué)納米材料封裝,可見光透過,紫外線截止、近紅外相對衰減,增強了光學(xué)濾波效果;符合歐盟 RoHS 指令, 無鉛、無鎘等。光照采集模塊 Po188 連接電路圖如圖 3-3 所示, Po188 輸出特性曲線如圖 3-4所示。圖 3-3Po188 電路圖圖 3-4 Po188 輸出特性曲線二、二、ATmega16LATmega16L 最小系統(tǒng)模塊設(shè)計最小系統(tǒng)模塊設(shè)計采集端和終端的 MCU 模塊都由 ATmega16L 單片機

12、及其最小系統(tǒng)。ATmega16是基于增強的 AVR RISC 結(jié)構(gòu)的低功耗 8 位 CMOS 微控制器。由于其先進的指令集以及單時鐘周期指令執(zhí)行時間,ATmega16 的數(shù)據(jù)吞吐率高達 1MIPS/MHz,從而可以緩減系統(tǒng)在功耗和處理速度之間的矛盾。ATmega16L 最小系統(tǒng)主要由 ATmega16L 芯片、晶振電路、復(fù)位電路組成。ATmega16L 芯片的工作電壓 2.7v-5.5v,我們采用的是 3.3v 供電,由電源電路提供。在 ATmega16L 芯片的 XTAL1 和 XTAL2 之間加上 8M 的晶振,通過 30pf 電容接地為單片機提供工作時鐘。在 RESET 引腳加上低電平復(fù)

13、位的復(fù)位電路,一開始上電的時候是自動上電復(fù)位,后來工作過程中通過復(fù)位開關(guān)實現(xiàn)手動復(fù)位。ATmega16L 最小系統(tǒng)如圖 3-5 所示。圖 3-5 Atmega16L 最小系統(tǒng)三、三、無線傳輸模塊設(shè)計無線傳輸模塊設(shè)計無線傳輸模塊使用的主要芯片是nRF24L01,nRF24L01是一款工作在2.42.5GHz世界通用ISM頻段的單片無線收發(fā)器芯片。無線收發(fā)器包括:頻率發(fā)生器、增強型SchockBurst模式控制器、功率放大器、晶體振蕩器、調(diào)制器解調(diào)器。輸出功率頻道選擇和協(xié)議的設(shè)置可以通過SPI 接口進行設(shè)置。芯片電流消耗極低, 當工作在發(fā)射模式下發(fā)射功率為-6dBm 時電流消耗為9.0mA, 接收

14、模式時為12.3mA掉電模式和待機模式下電流消耗更低。支持六路通道的數(shù)據(jù)接收,工作電壓為1.9v3.6v。無線傳輸模塊示意圖如圖3-6所示。在實際電路中我們使用的是集成的nRF24L01模塊,如圖3-7所示。圖3-6nRF24L01與單片機連接示意圖圖3-7 nRF24L01集成模塊實物nRF24L01 集成模塊有 8 個引腳, 各個引腳的功能及與單片機的連接如表 3-1所示。引腳名稱引腳功能描述與 Atmega16L 連接1VSS電源接地(0V)2VDD電源電源(+3V)3CE數(shù)字輸入RX或TX模式選擇PB24CSN數(shù)字輸入SPI 片選信號PB15MOSI數(shù)字輸入從 SPI 數(shù)據(jù)輸入腳PB6

15、6MISO數(shù)字輸出從 SPI 數(shù)據(jù)輸出腳PB57SCK數(shù)字輸入SPI 時鐘PB78IRQ數(shù)字輸出可屏蔽中斷腳PD2表 3-1 nRF24L01 集成模塊引腳功能在系統(tǒng)工作時, 采集端單片機將光照傳感器采集到的光照強度信息處理后傳給采集端的無線傳輸模塊,采集端的無線模塊將 32 字節(jié)信息打包,通過無線傳輸協(xié)議發(fā)送, 終端的無線傳輸模塊接收, 傳給單片機, 通過相關(guān)處理, 顯示結(jié)果。第二節(jié)第二節(jié)終端硬件設(shè)計終端硬件設(shè)計終端主要由 LCD 顯示模塊、MCU 模塊,即 ATmega16L 最小系統(tǒng)、以及無線傳輸模塊構(gòu)成,終端電路圖如圖 3-8 所示。圖 3-8 終端硬件電路圖終端中的 MCU 模塊,

16、ATmega16L 最小系統(tǒng)、 無線傳輸模塊的設(shè)計與采集端類似,故不再贅述,下面介紹一下終端中的 LCD 顯示模塊和變壓電路。一、一、LCD 顯示模塊設(shè)計顯示模塊設(shè)計終端中選用的是字符液晶顯示器 1602,工作電壓為 5V,兩行顯示,每行顯示 16 個字符,一共有 16 個引腳,1602 引腳功能如表 3-2 所示。引腳符號功能說明1VSS一般接地2VDD接電源(+5V)3V0液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個 10K 的電位器調(diào)整對比度) 。4RSRS 為寄存器選擇,高電平 1 時選擇數(shù)據(jù)寄存器、低電平 0 時選

17、擇指令寄存器。5R/WR/W 為讀寫信號線,高電平(1)時進行讀操作,低電平(0)時進行寫操作。6EE(或 EN)端為使能(enable)端,下降沿使能。7DB0底 4 位三態(tài)、 雙向數(shù)據(jù)總線 0 位(最低位)8DB1底 4 位三態(tài)、 雙向數(shù)據(jù)總線 1 位9DB2底 4 位三態(tài)、 雙向數(shù)據(jù)總線 2 位10DB3底 4 位三態(tài)、 雙向數(shù)據(jù)總線 3 位11DB4高 4 位三態(tài)、 雙向數(shù)據(jù)總線 4 位12DB5高 4 位三態(tài)、 雙向數(shù)據(jù)總線 5 位13DB6高 4 位三態(tài)、 雙向數(shù)據(jù)總線 6 位14DB7高 4 位三態(tài)、 雙向數(shù)據(jù)總線 7 位 (最高位) (也是 busy flag)15BLA背光電

18、源正極16BLK背光 電源負極表 3-2 1602 引腳功能在 1602 的引腳中,714 DB0-DB7 八位數(shù)據(jù)總線,三態(tài)雙向。實際使用時,用的是 DB4-DB7 這四位數(shù)據(jù)線,這樣節(jié)省了 ATmega16L 的 I/O 資源。因為液晶引腳是與單片機 PA 口相連的, PA 口只有八位, 液晶 4、 5、 6 引腳分別接的 PA0、PA1、PA2,剩下的只有五個口,所以用四位數(shù)據(jù)線分兩次傳送來緩解接口的緊張。 1602 引腳示意圖如圖 3-9 所示, 1602 與 ATmega16L 引腳連接示意圖如圖 3-10所示。圖 3-9 1602 引腳示意圖圖 3-101602 與 ATmega1

19、6L 引腳連接二、變壓電路設(shè)計二、變壓電路設(shè)計變壓電路部分的主要功能是給無線傳輸模塊提供穩(wěn)定的 3.3V 的電壓,使其正常工作,在采集端的電路中也有變壓電路,在這里一同介紹。系統(tǒng)使用的是 AMS1117 系列穩(wěn)壓器。AMS1117 系列穩(wěn)壓器有可調(diào)版與多種固定電壓版, 設(shè)計用于提供 1A 輸出電流且工作壓差可低至 1V。 在最大輸出電流時,AMS1117 器件的壓差保證最大不超過 1.3V,并隨負載電流的減小而逐漸降低。AMS1117 的片上微調(diào)把基準電壓調(diào)整到 1.5%的誤差以內(nèi), 而且電流限制也得到了調(diào)整,以盡量減少因穩(wěn)壓器和電源電路超載而造成的壓力。AMS1117 電路圖如圖3-11 所

20、示。圖 3-11 AMS1117 電路圖第四章第四章系統(tǒng)軟件設(shè)計與實現(xiàn)系統(tǒng)軟件設(shè)計與實現(xiàn)第一節(jié)第一節(jié) 程序整體設(shè)計程序整體設(shè)計系統(tǒng)軟件部分主要是使用 C 語言對 ATmega6L 進行編程,使采集端的 MCU 能夠處理光照傳感器 Po188 傳遞來的模擬電流信號,將其轉(zhuǎn)換為數(shù)字信號;同時MCU 傳遞給無線傳輸傳輸模塊,將光照信息發(fā)送出去。在終端,無線傳輸模塊可以接收到采集端傳來的光照信息,傳遞給 MCU 進行處理,最終顯示在 LCD 上面。系統(tǒng)程序的整體流程就是這樣,下面分別給出采集端和終端的程序流程圖,采集端程序流程圖如圖 4-1 所示,終端程序流程圖如圖 4-2 所示。圖 4-1 采集端程

21、序流程圖圖 4-2 終端程序流程圖我們將重點介紹光照采集與 AD 轉(zhuǎn)換程序, 無線傳輸程序以及 LCD 顯示程序,并簡單說明一下程序下載的方法,詳細的程序代碼將在附錄中給出。第二節(jié)第二節(jié) 光照采集與光照采集與 AD 轉(zhuǎn)換程序設(shè)計轉(zhuǎn)換程序設(shè)計這部分程序要求將光照采集模塊采集到的電壓信號轉(zhuǎn)換成電流信號后經(jīng)過函數(shù)轉(zhuǎn)換成光照強度單位勒克斯。 這里需要注意四個與數(shù)模轉(zhuǎn)換 ADC 相關(guān)的 I/O寄存器:ADC 多路復(fù)用器選擇寄存器 ADMUX、ADC 控制和狀態(tài)寄存器ADCSRA、ADC 數(shù)據(jù)寄存器 ADCL 和 ADCH,這些寄存器在數(shù)模轉(zhuǎn)換前都需要根據(jù)需求進行設(shè)置。光電函數(shù)關(guān)系即 Po188 特性曲線

22、在第二章第一節(jié)中有所介紹,可以參考圖3-4,下面給出本部分程序代碼。unsigned int read_adc(unsigned charadc_input)float adc_data;ADMUX=adc_input|(ADC_VREF_TYPE&0 xff);delay_us(10);ADCSRA|=0X40;while(ADCSRA&0 x10)=0);ADCSRA|=0X10;adc_data=ADCL;adc_data=adc_data+ADCH*256;adc_data=(adc_data*2560.0/1024.0)/1000.0;adc_data=adc_data/330.0*

23、1000;if(adc_data=2.0)adc_data=800.0+(adc_data-2.0)*666.7;if(adc_data=1.5&adc_data=1.1&(adc_data=0.5&(adc_data1.1)adc_data=100.0+(adc_data-0.5)*333.3;if(adc_data0.5)adc_data=adc_data*200.0;adc_data=adc_data*10.0;return adc_data;第三節(jié)第三節(jié) 無線傳輸程序設(shè)計無線傳輸程序設(shè)計MCU 與 nRF24L01 是通過 SPI 接口進行通信的,SPI 的接口的讀時序如圖4-3 所示

24、,寫時序如圖 4-4 所示,圖中 Cn-SPI 指令位,Sn-狀態(tài)寄存器位,Dn-數(shù)據(jù)位(注:由低字節(jié)到高字節(jié),每字節(jié)中高位在前)。圖 4-3 SPI 寫時序圖 4-4SPI 讀時序在配置nRF24L01的寄存器之前一定要確保nRF24L01進入待機模式或掉電模式。nRF24L01 在接受模式的初始化函數(shù)為:void RX_Mode(void)nRF24L01_CE = 0;delay_us(130);write_register_onebyte(EN_AA,0 x00);/ Enable Auto.Ack:Pipe0write_register_onebyte(EN_RXADDR,0 x01

25、);/ Enable Pipe0write_register_onebyte(SETUP_AW,0 x03);/ADDR WIDTH 5 BYTESwrite_register_onebyte(RF_CH,40);/ Select RF channel freq2440Mhzwrite_register_onebyte(RX_PW_P0,TX_PLOAD_WIDTH);/SelectsameRXpayload width as TX Payload widthwrite_register_onebyte(RF_SETUP,0 x07);/TX_PWR:0dBm,Datarate:2Mbps,

26、LNA:HCURR/write_register_onebyte(CONFIG,0 x0f);/ Set PWR_UP bit, enableCRC(2 bytes) & Prim:RX. RX_DR enabled.write_register_bytes(RX_ADDR_P0,flash_channel0,TX_ADR_WIDTH);/Usethesame address on the RX device as the TXdevicewrite_register_bytes(TX_ADDR,flash_channel0,TX_ADR_WIDTH);write_register_oneby

27、te(CONFIG, 0 x0f);/ Set PWR_UP bit, enable CRC(2 bytes)& Prim:RX. RX_DR enabled.write_register_onebyte(STATUS,0 xF0);/接收模式要為高電平nRF24L01_CE = 1;delay_us(130);/This device is now ready toreceive one packet of 16 bytes payloadfrom a TX device sending to addressnRF24L01 在發(fā)射模式的初始化函數(shù)為:void TX_Mode(void)wr

28、ite_register_onebyte(EN_AA,0 x01);/EnableAuto.Ack:Pipe0write_register_onebyte(EN_RXADDR,0 x01);/Enable Pipe0write_register_onebyte(SETUP_AW,0 x03);write_register_onebyte(SETUP_RETR,0 x0a);/1A/ 500us + 86us, 10 retrans.write_register_onebyte(RF_CH,40);/ Select RF channel 40write_register_onebyte(RF_S

29、ETUP,0 x07);/TX_PWR:0dBm, Datarate:2Mbps, LNA:HCURRwrite_register_onebyte(CONFIG,0 x0E);/ SetPWR_UPbit,enableCRC(2bytes)&Prim:TX. MAX_RT & TX_DS enabled.write_register_bytes(RX_ADDR_P0,flash_channel0,TX_ADR_WIDTH);/RX_Addr0same as TX_Adr for Auto.Ackwrite_register_bytes(TX_ADDR,flash_channel0,TX_ADR

30、_WIDTH);write_register_onebyte(CONFIG,0 x0E);/ SetPWR_UPbit,enableCRC(2bytes)&Prim:TX. MAX_RT & TX_DS enabled.write_register_onebyte(STATUS,0XF0);第四節(jié)第四節(jié) LCD 顯示程序設(shè)計顯示程序設(shè)計LCD 顯示程序比較簡單,主要是 put 和 goto 語句的應(yīng)用。代碼如下:write_register_onebyte(STATUS,0 xF0);read_rx_palyoad(R_RX_PAYLOAD,data,5);lcd_gotoxy(0,0);lc

31、d_putsf(light);for(i=0;i4;i+)lcd_gotoxy(i,1);lcd_putchar(datai);lcd_gotoxy(4,1);lcd_putsf(.);lcd_gotoxy(5,1);lcd_putchar(data4);lcd_gotoxy(7,1);lcd_putsf(lux)delay_ms(100);第五節(jié)第五節(jié) 程序下載程序下載Code Vision 軟件在對項目編譯成功后會在項目文件夾的 EXE 文件夾中生成.hex 文件,此文件可通過下載軟件經(jīng)下載線下載至單片機上。我們使用的是progisp1.72 燒寫軟件,它支持所有的 AVR 芯片的編程、支

32、持 AT89S51,AT89S52支持自定義并口下載編程器、支持自定義串口的下載編程器、支持 STK500 編程器、支持 USBASP 編程器、支持并口的并行編程器、支持 USBProg 編程器、支持自定義編程芯片、支持自定義編程熔絲信息提示信息、支持 USBProg 的在線升級(通過 USB 口)、支持 USBProg-C 實現(xiàn)脫機下載、支持命令行方式,可以直接嵌入其他 IDE 中使用、 綠色軟件, 無需安裝, 占用資源少、 支持自定義漢化信息提示 、支持工程管理,可以將所有的配置數(shù)據(jù)與編程數(shù)據(jù)打包為單一文件。progisp1.72程序操作界面圖 4-5 所示。圖 4-5 progisp1.

33、72 燒寫軟件第第四四章章測試結(jié)果及討論測試結(jié)果及討論測試貫穿于硬件和軟件的設(shè)計過程中,用于檢查設(shè)計過程的出現(xiàn)的各種問題,下面介紹一下在設(shè)計過程我們對各個模塊的測試過程與結(jié)果。第一節(jié)第一節(jié) LCD 顯示測試顯示測試LCD 顯示測試的目的是測試 ATmega16L 單片機與 1602LCD 顯示屏的連接是否正確, 能否正確顯示, 測試程序為在液晶屏上顯示兩行固定數(shù)據(jù)。 測試程序如下:#include#include#asm.equ _lcd_port=0 x18;PORTB 數(shù)據(jù)寄存器地址#endasm#includeflashchardis_str=Hello World!;void main

34、(void)char flash*str;str=dis_str;lcd_init(16);while(1)lcd_clear();lcd_putsf(Itsdisplaydemo.);lcd_gotoxy(0,1);lcd_putsf(str);if(*str+=0)str=dis_str;delay_ms(200);在測試結(jié)果如圖4-6 所示, 1602上第一行顯示 “Itdemo” , 第二行顯示 “Helloword! ” 。圖 4-6 LCD 測試結(jié)果第二節(jié)第二節(jié) 光照采集與顯示光照采集與顯示測試測試光照采集測試的主要目的是測試系統(tǒng)的基礎(chǔ)部分是否達到設(shè)計的要求。 測試程序為不經(jīng)過無線

35、傳輸在液晶屏上實時顯示光照強度。測試程序如下:#include#include#asm.equ _lcd_port=0 x18 ;PORTB 數(shù)據(jù)寄存器地址#endasm#include#define ADC_VREF_TYPE 0 x40Constunsignedchartable=0123456789;unsigned int read_adc(unsigned charadc_input)float adc_data;ADMUX=adc_input|(ADC_VREF_TYPE&0 xff);delay_us(10);ADCSRA|=0X40;while(ADCSRA&0 x10)=0)

36、;ADCSRA|=0X10;adc_data=ADCL;adc_data=adc_data+ADCH*256;adc_data=(adc_data*2560.0/1024.0)/1000.0;adc_data=adc_data/330.0*1000;if(adc_data=2.0)adc_data=800.0+(adc_data-2.0)*666.7;if(adc_data=1.5&adc_data=1.1&(adc_data=0.5&(adc_data1.1)adc_data=100.0+(adc_data-0.5)*333.3;if(adc_data0.5)adc_data=adc_dat

37、a*200.0;adc_data=adc_data*10.0;return adc_data;void port_init()DDRA=0XFE;/輸入為 0, 輸出為 1PORTA=0 xFE;PORTB=0 xFF;DDRB=0 xFF;void main(void)unsigned int adc,i,ad5;port_init();lcd_init(16);ACSR=0X80;SFIOR=0X00;ADMUX=ADC_VREF_TYPE&0XFF;ADCSRA=0X86;while(1)lcd_gotoxy(0,0);lcd_putsf(light);adc=read_adc(0);f

38、or(i=0;i5;i+)ad4-i=adc%10;adc=adc/10;for(i=0;i4;i+)lcd_gotoxy(i,1);lcd_putchar(tableadi);lcd_gotoxy(4,1);lcd_putsf(.);lcd_gotoxy(5,1);lcd_putchar(tablead4);lcd_gotoxy(7,1);lcd_putsf(lux);lcd_gotoxy(0,0);lcd_putchar(tabledata);delay_ms(200);測試結(jié)果如圖 4-7 所示,LCD 上顯示實時的光照強度。圖 4-7光照采集與顯示測試結(jié)果心得體會心得體會本次通信系統(tǒng)綜

39、合設(shè)計的課題較為復(fù)雜,我們設(shè)計的過程也較為艱難,從一開始的確定方案、選擇芯片、器材購買到后來的硬件軟件系統(tǒng)的設(shè)計與實現(xiàn),以及測試過程都比以往的課程設(shè)計要困難的多, 我們不斷發(fā)現(xiàn)問題、 不斷解決困難,在寫這篇報告的時候我們已經(jīng)完成了基礎(chǔ)部分的設(shè)計, 實現(xiàn)了基礎(chǔ)部分的全部功能,發(fā)揮部分仍然在調(diào)試過程中。本次課程設(shè)計讓我們深入理解了之前學(xué)習(xí)的單片機、數(shù)字電路以及 C 語言編程等知識; 也充分鍛煉了我們的能力, 包括查閱資料的能力、 學(xué)習(xí)芯片的能力、動手動腦的能力;更重要的是課程設(shè)計鍛煉了我們的毅力,一次一次來往于電子市場購買很更換材料,一點一點焊接硬件,一行一行編寫和修改程序代碼,這些都讓我們養(yǎng)成了

40、堅持不懈的精神。 這次課程設(shè)計使我們受益匪淺, 在將來的學(xué)習(xí)、生活和工作中,這些知識、能力和精神將伴隨我們面對更大的挑戰(zhàn),完成更艱巨的任務(wù),實現(xiàn)人生的成功。在此要感謝指導(dǎo)老師張秀平對我們的悉心指導(dǎo), 更要感謝張老師在我們遇到挫折時對我們的鼓勵和幫助。參考文獻參考文獻1 馬潮.AVR 單片機嵌入式系統(tǒng)原理與應(yīng)用實踐M.北京航空航天大學(xué)出版社,20072 張友德 趙志英 涂時亮等. 單片微型機原理、 應(yīng)用與實驗 (第五版) M.復(fù)旦大學(xué)出版社,20083 康華光.電子技術(shù)基礎(chǔ)模擬部分(第五版)M.高等教育出版社,20064 康華光.電子技術(shù)基礎(chǔ)數(shù)字部分(第五版)M.高等教育出版社,20065 On

41、 Elelctronics Co Ltd . Po188 光照傳感器中文資料6ATmel 公司.Atmega16L 中文資料7 訊通科技 . nRF24L01 中文資料附附錄錄一、一、器件清單器件清單器件名稱使用個數(shù)ATMEL mega16 單片機2單片機插槽28M 晶振2nRF24L01 無線發(fā)送接收模塊2發(fā)光二極管4103uF 陶瓷電容430uF 陶瓷電容410uF 電解電容4100uF 電解電容21k電阻8500電阻101117 變壓芯片24 腳開關(guān)2105uF 陶瓷電容21602 液晶屏1503 變阻器1排針若干排線若干導(dǎo)線若干二二、工具清單工具清單1.鑷子2.老虎鉗3.螺絲刀4.電烙

42、鐵5.萬用表6.數(shù)據(jù)下載線三三、實物圖實物圖四四、程序代碼程序代碼1.發(fā)送端:發(fā)送端:#include includes.h#asm.equ _lcd_port=0 x1B ;PORTA#endasm#include #include #include #include NRF24L01.h#define ON 0#define OFF 1#define LIGHT PIND.4#defineADC_VREF_TYPE 0 x40const unsigned char table=0123456789;unsigned char data5;uchar test_temp;unsignedin

43、tread_adc(unsignedcharadc_input)float adc_data;ADMUX=adc_input|(ADC_VREF_TYPE&0 xff);delay_us(10);ADCSRA|=0X40;while(ADCSRA&0 x10)=0);ADCSRA|=0X10;adc_data=ADCL;adc_data=adc_data+ADCH*256;adc_data=(adc_data*2560.0/1024.0)/1000.0;adc_data=adc_data/330.0*1000;if(adc_data=2.0)adc_data=800.0+(adc_data-2

44、.0)*666.7;if(adc_data=1.5&adc_data=1.1&(adc_data=0.5&(adc_data1.1)adc_data=100.0+(adc_data-0.5)*333.3;if(adc_data0.5)adc_data=adc_data*200.0;adc_data=adc_data*10.0;return adc_data;void Device_init(void)/進入發(fā)送模式SPI_MasterInit();Clear_rx();Clear_tx();TX_Mode();/發(fā)送模式void PORT_init(void)DDRA=0 xFE;PORTA=

45、0 xFE;PORTB=0XFF;DDRB=0XBF;DDRD=0 xDF;PORTD=0 xFF;void main(void)unsigned int adc,i,ad6;ACSR=0 x80;SFIOR=0 x00;PORT_init();ADMUX=ADC_VREF_TYPE&0XFF;ADCSRA=0X86;Init_NRF24L01();Device_init();TX_Mode();/發(fā)送模式while (1)/ Place your code hereadc=read_adc(0);for(i=0;i5;i+)ad4-i=adc%10;adc=adc/10;數(shù)據(jù)處理data0=

46、 tablead0;data1=tablead1;data2=tablead2;data3=tablead3;data4=tablead4;write_tx_palyoad(data,5);delay_ms(1000);PORTD.5 = OFF;test_temp=Read_StatusByte(STATUS);if(test_temp & TX_DS)Clear_tx();Clear_rx();write_register_onebyte(STATUS,0XF0);/PORTD.5=ON;write_register_onebyte(CONFIG,0 x0E);test_temp = Read_StatusByte(CONFIG);

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論