2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  基于AVR單片機的智能氣象信息采集系統(tǒng)</p><p>  摘要:本文從氣象數(shù)據(jù)采集的實際出發(fā),對氣象數(shù)據(jù)的采集、傳輸以及處理過程進行了研究。提出并設(shè)計了一種基于單片機的智能氣象數(shù)據(jù)采集系統(tǒng),完成了系統(tǒng)的硬件和軟件設(shè)計。分別介紹了各個模塊的電路圖,并給出了系統(tǒng)的硬件原理圖和軟件設(shè)計方案。該系統(tǒng)以ATMEL公司推出的AVR單片機為核心,構(gòu)建了針對溫、壓、濕等基本氣象要素的采集系統(tǒng)。系統(tǒng)采用無線

2、方式將采集到的氣象數(shù)據(jù)傳輸至上位機,以供顯示、分析和儲存。數(shù)據(jù)采集端由光伏電源供電,滿足了長期觀測的需要。</p><p>  關(guān)鍵字:溫濕度測量 AVR單片機 nRF401 RS232-RS485串行通信 光伏電源</p><p><b>  一 引言:</b></p><p>  隨著我國經(jīng)濟社會的發(fā)展,工農(nóng)業(yè)生產(chǎn)對氣象信息的需求日

3、益加大。農(nóng)業(yè)農(nóng)情灌溉氣象環(huán)境指標(biāo)監(jiān)測、森林火險氣象指標(biāo)監(jiān)測、各種突發(fā)性災(zāi)害性天氣的快速響應(yīng)和現(xiàn)場監(jiān)控均需要對氣象信息進行實時采集和分析。本系統(tǒng)采用DS18B20、HS1101等高精度傳感器,低功耗高性能的ATmega16單片機,數(shù)字無線收發(fā)芯片NRF401;數(shù)據(jù)采集端配備光伏電源系統(tǒng),通過數(shù)據(jù)采集、傳送與處理從而實現(xiàn)全天候檢測周遭環(huán)境的溫度、濕度、氣壓等氣象要素;工作方式靈活,可現(xiàn)場通過1602液晶顯示器顯示測得數(shù)據(jù),也可采用無線通信的

4、方式將數(shù)據(jù)傳送至計算機。</p><p><b>  二 系統(tǒng)設(shè)計</b></p><p>  系統(tǒng)設(shè)計包括數(shù)據(jù)采集端,數(shù)據(jù)傳輸,數(shù)據(jù)處理,光伏電源四個部分。</p><p>  系統(tǒng)工作原理概述:上位機定時發(fā)出檢測指令,下位機通過無線數(shù)傳模塊接收到檢測指令后,開始檢測氣象數(shù)據(jù);檢測結(jié)束后立即再通過無線數(shù)傳模塊把數(shù)據(jù)發(fā)往上位機,然后上位機軟件以

5、圖形化的界面顯示、分析并儲存氣象數(shù)據(jù)?,F(xiàn)場顯示氣象數(shù)據(jù)時無線數(shù)傳模塊被關(guān)閉,下位機即數(shù)據(jù)采集端獨立運行,不依賴于上位機發(fā)出的檢測指令,依次顯示采集到的氣象數(shù)據(jù)。</p><p><b>  系統(tǒng)框圖:</b></p><p>  圖2.1下位機數(shù)據(jù)采集原理框圖</p><p>  圖2.2 上位機數(shù)據(jù)接收原理框圖</p><

6、p><b>  2.1 數(shù)據(jù)采集</b></p><p>  數(shù)據(jù)采集模塊負(fù)責(zé)完成對氣象信息的采集和轉(zhuǎn)換。以ATMEL公司的AVR單片機ATmega16為核心。</p><p>  ATMEL 公司的AVR 單片機,是增強型RISC 內(nèi)載Flash 的單片機芯片上的Flash 存儲器附在用戶的產(chǎn)品中,可隨時編程再編程,使用的產(chǎn)品設(shè)計容易,更新?lián)Q代方便AVR 單片

7、機采用增強的RISC 結(jié)構(gòu),使其具有高速處理能力,在一個時鐘周期內(nèi)可執(zhí)行復(fù)雜的指令,每MHz 可實現(xiàn)1MIPS 的處理能力AVR 單片機工作電壓為2.7 6.0V,可以實現(xiàn)耗電最優(yōu)化AVR 的單片機廣泛應(yīng)用于計算機外部設(shè)備,工業(yè)實時控制,儀器儀表,通訊設(shè)備,家用電器,宇航設(shè)備等各個領(lǐng)域。</p><p>  ATmega16是基于增強的AVR RISC結(jié)構(gòu)的低功耗8 位CMOS微控制器。由于其先進的指令集以及單時

8、鐘周期指令執(zhí)行時間,ATmega16 的數(shù)據(jù)吞吐率高達(dá)1 MIPS/MHz,從而可以緩減系統(tǒng)在功耗和處理速度之間的矛盾。 </p><p>  ATmega16 AVR 內(nèi)核具有豐富的指令集和32 個通用工作寄存器。所有的寄存器都直接與算邏單元(ALU) 相連接,使得一條指令可以在一個時鐘周期內(nèi)同時訪問兩個獨立的寄存器。這種結(jié)構(gòu)大大提高了代碼效率,并且具有比普通的CISC 微控制器最高至10 倍的數(shù)據(jù)吞吐率。&l

9、t;/p><p>  ATmega16 有如下特點:16K字節(jié)的系統(tǒng)內(nèi)可編程Flash(具有同時讀寫的能力,即RWW),512 字節(jié)EEPROM,1K 字節(jié)SRAM,32 個通用I/O 口線,32 個通用工作寄存器,用于邊界掃描的JTAG 接口,支持片內(nèi)調(diào)試與編程,三個具有比較模式的靈活的定時器/ 計數(shù)器(T/C),片內(nèi)/外中斷,可編程串行USART,有起始條件檢測器的通用串行接口,8路10位具有可選差分輸入級可編程

10、增益(TQFP 封裝) 的ADC ,具有片內(nèi)振蕩器的可編程看門狗定時器,一個SPI 串行端口,以及六個可以通過軟件進行選擇的省電模式。 </p><p>  工作于空閑模式時CPU 停止工作,而USART、兩線接口、A/D 轉(zhuǎn)換器、SRAM、T/C、SPI 端口以及中斷系統(tǒng)繼續(xù)工作;掉電模式時晶體振蕩器停止振蕩,所有功能除了中斷和硬件復(fù)位之外都停止工作;在省電模式下,異步定時器繼續(xù)運行,允許用戶保持一個時間基準(zhǔn),

11、而其余功能模塊處于休眠狀態(tài); ADC 噪聲抑制模式時終止CPU 和除了異步定時器與ADC 以外所有I/O 模塊的工作,以降低ADC 轉(zhuǎn)換時的開關(guān)噪聲; Standby 模式下只有晶體或諧振振蕩器運行,其余功能模塊處于休眠狀態(tài),使得器件只消耗極少的電流,同時具有快速啟動能力;擴展Standby 模式下則允許振蕩器和異步定時器繼續(xù)工作。</p><p>  本芯片是以Atmel 高密度非易失性存儲器技術(shù)生產(chǎn)的。片內(nèi)I

12、SP Flash 允許程序存儲器通過ISP 串行接口,或者通用編程器進行編程,也可以通過運行于AVR 內(nèi)核之中的引導(dǎo)程序進行編程。引導(dǎo)程序可以使用任意接口將應(yīng)用程序下載到應(yīng)用Flash存儲區(qū)(ApplicationFlash Memory)。在更新應(yīng)用Flash存儲區(qū)時引導(dǎo)Flash區(qū)(Boot Flash Memory)的程序繼續(xù)運行,實現(xiàn)了RWW 操作。 通過將8 位RISC CPU 與系統(tǒng)內(nèi)可編程的Flash 集成在一個芯片內(nèi),

13、ATmega16 成為一個功能強大的單片機,為許多嵌入式控制應(yīng)用提供了靈活而低成本的解決方案。ATmega16 具有一整套的編程與系統(tǒng)開發(fā)工具,包括:C 語言 編譯器、宏匯編、 程序調(diào)試器/ 軟件仿真器、仿真器及評估板。</p><p>  ATmega16產(chǎn)品特性</p><p>  ? 高性能、低功耗的 8 位AVR® 微處理器</p><p>  ?

14、 先進的RISC 結(jié)構(gòu)</p><p>  – 131 條指令 – 大多數(shù)指令執(zhí)行時間為單個時鐘周期</p><p>  – 32個8 位通用工作寄存器</p><p><b>  – 全靜態(tài)工作</b></p><p>  – 工作于16 MHz 時性能高達(dá)16 MIPS</p><p>  –

15、 只需兩個時鐘周期的硬件乘法器</p><p>  ? 非易失性程序和數(shù)據(jù)存儲器</p><p>  – 16K 字節(jié)的系統(tǒng)內(nèi)可編程Flash</p><p>  擦寫壽命: 10,000 次</p><p>  – 具有獨立鎖定位的可選Boot 代碼區(qū)</p><p>  通過片上Boot 程序?qū)崿F(xiàn)系統(tǒng)內(nèi)編程<

16、/p><p><b>  真正的同時讀寫操作</b></p><p>  – 512 字節(jié)的EEPROM</p><p>  擦寫壽命: 100,000 次</p><p>  – 1K字節(jié)的片內(nèi)SRAM</p><p>  – 可以對鎖定位進行編程以實現(xiàn)用戶程序的加密</p><

17、p>  ? JTAG 接口( 與IEEE 1149.1 標(biāo)準(zhǔn)兼容)</p><p>  – 符合JTAG 標(biāo)準(zhǔn)的邊界掃描功能</p><p>  – 支持?jǐn)U展的片內(nèi)調(diào)試功能</p><p>  – 通過JTAG 接口實現(xiàn)對Flash、EEPROM、熔絲位和鎖定位的編程</p><p><b>  ? 外設(shè)特點</b>

18、;</p><p>  – 兩個具有獨立預(yù)分頻器和比較器功能的8 位定時器/ 計數(shù)器</p><p>  – 一個具有預(yù)分頻器、比較功能和捕捉功能的16 位定時器/ 計數(shù)器</p><p>  – 具有獨立振蕩器的實時計數(shù)器RTC</p><p><b>  – 四通道PWM</b></p><p&g

19、t;  – 8路10 位ADC</p><p><b>  8 個單端通道</b></p><p>  TQFP 封裝的7 個差分通道</p><p>  2 個具有可編程增益(1x, 10x, 或200x)的差分通道</p><p>  – 面向字節(jié)的兩線接口</p><p>  – 兩個可編程

20、的串行USART</p><p>  – 可工作于主機/ 從機模式的SPI 串行接口</p><p>  – 具有獨立片內(nèi)振蕩器的可編程看門狗定時器</p><p><b>  – 片內(nèi)模擬比較器</b></p><p>  ? 特殊的處理器特點</p><p>  – 上電復(fù)位以及可編程的掉電檢

21、測</p><p>  – 片內(nèi)經(jīng)過標(biāo)定的RC 振蕩器</p><p>  – 片內(nèi)/ 片外中斷源</p><p>  – 6種睡眠模式: 空閑模式、ADC 噪聲抑制模式、省電模式、掉電模式、Standby 模式以及</p><p>  擴展的Standby 模式</p><p><b>  ? I/O 和封

22、裝</b></p><p>  – 32 個可編程的I/O 口</p><p>  – 40引腳PDIP 封裝, 44 引腳TQFP 封裝, 與44 引腳MLF 封裝</p><p><b>  ? 工作電壓:</b></p><p>  – ATmega16L:2.7 - 5.5V</p>&

23、lt;p>  – ATmega16:4.5 - 5.5V</p><p><b>  ? 速度等級</b></p><p>  – 0 - 8 MHz ATmega16L</p><p>  – 0 - 16 MHz ATmega16</p><p>  ? ATmega16L 在1 MHz, 3V, 25

24、6;C 時的功耗</p><p>  – 正常模式: 1.1 mA</p><p>  – 空閑模式: 0.35 mA</p><p>  – 掉電模式: < 1 μA</p><p>  本設(shè)計中主要用到ATmega16的片內(nèi)ADC、定時/計數(shù)器、I/O口輸入輸出控制、可編程串行USART等。</p><p>

25、<b>  2.1.1溫度測量</b></p><p>  溫度信號采集采用美國DALLAS公司生產(chǎn)的DS18B20芯片。DSl8B20是一線數(shù)字溫度傳感器,每片DS18B20都有全球惟一的識別號,可輕松地組建傳感器網(wǎng)絡(luò),大大提高了系統(tǒng)的抗干擾性,適合于惡劣環(huán)境的現(xiàn)場溫度測量。測量溫度范圍為-55°C~+125°C,支持3V~5.5V的電壓范圍,可以程序設(shè)定9~12位的分

26、辨率。DS18B20芯片的管腳簡單,它無需任何外圍硬件即可方便地進行溫度測量,與單片機交換信息僅需要一根I/O口線,如圖2.3</p><p><b>  圖 2.3</b></p><p>  控制器對DS18B20操作流程: </p><p>  1, 復(fù)位:首先我們必須對DS18B20芯片進行復(fù)位,復(fù)位就是由控制器(單片機)給DS18B2

27、0單總線至少480uS的低電平信號。當(dāng)DS18B20接到此復(fù)位信號后則會在15~60uS后回發(fā)一個芯片的存在脈沖。 </p><p>  2, 存在脈沖:在復(fù)位電平結(jié)束之后,控制器應(yīng)該將數(shù)據(jù)單總線拉高,以便于在15~60uS后接收存在脈沖,存在脈沖為一個60~240uS的低電平信號。至此,通信雙方已經(jīng)達(dá)成了基本的協(xié)議,接下來將會是控制器與DS18B20間的數(shù)據(jù)通信。如果復(fù)位低電平的時間不足或是單總線的電路斷路都不

28、會接到存在脈沖,在設(shè)計時要注意意外情況的處理。 </p><p>  3, 控制器發(fā)送ROM指令:雙方打完了招呼之后最要將進行交流了,ROM指令共有5條,每一個工作周期只能發(fā)一條,ROM指令分別是讀ROM數(shù)據(jù)、指定匹配芯片、跳躍ROM、芯片搜索、報警芯片搜索。ROM指令為8位長度,功能是對片內(nèi)的64位光刻ROM進行操作。其主要目的是為了分辨一條總線上掛接的多個器件并作處理。誠然,單總線上可以同時掛接多個器件,并通

29、過每個器件上所獨有的ID號來區(qū)別,一般只掛接單個DS18B20芯片時可以跳過ROM指令(注意:此處指的跳過ROM指令并非不發(fā)送ROM指令,而是用特有的一條“跳過指令”)。ROM指令在下文有詳細(xì)的介紹。 </p><p>  4, 控制器發(fā)送存儲器操作指令:在ROM指令發(fā)送給DS18B20之后,緊接著(不間斷)就是發(fā)送存儲器操作指令了。操作指令同樣為8位,共6條,存儲器操作指令分別是寫RAM數(shù)據(jù)、讀RAM數(shù)據(jù)、將R

30、AM數(shù)據(jù)復(fù)制到EEPROM、溫度轉(zhuǎn)換、將EEPROM中的報警值復(fù)制到RAM、工作方式切換。存儲器操作指令的功能是命令DS18B20作什么樣的工作,是芯片控制的關(guān)鍵。 </p><p>  5, 執(zhí)行或數(shù)據(jù)讀寫:一個存儲器操作指令結(jié)束后則將進行指令執(zhí)行或數(shù)據(jù)的讀寫,這個操作要視存儲器操作指令而定。如執(zhí)行溫度轉(zhuǎn)換指令則控制器(單片機)必須等待DS18B20執(zhí)行其指令,一般轉(zhuǎn)換時間為500uS。如執(zhí)行數(shù)據(jù)讀寫指令則需要

31、嚴(yán)格遵循DS18B20的讀寫時序來操作。數(shù)據(jù)的讀寫方法將有下文有詳細(xì)介紹。 </p><p>  若要讀出當(dāng)前的溫度數(shù)據(jù)我們需要執(zhí)行兩次工作周期,第一個周期為復(fù)位、跳過ROM指令、執(zhí)行溫度轉(zhuǎn)換存儲器操作指令、等待500uS溫度轉(zhuǎn)換時間。緊接著執(zhí)行第二個周期為復(fù)位、跳過ROM指令、執(zhí)行讀RAM的存儲器操作指令、讀數(shù)據(jù)(最多為9個字節(jié),中途可停止,只讀簡單溫度值則讀前2個字節(jié)即可)。其它的操作流程也大同小異,在此不多

32、介紹。</p><p>  DSl8820的程序設(shè)計</p><p>  DSl8B20在使用時,硬件連接非常簡單。只需將DSl8B20信號線與處理器l位I/O線相連。但對ATmega16來說,硬件上并不支持單總線協(xié)議,因此,必須采用軟件的方法來模擬單總線的協(xié)議時序來完成對DSl8B20芯片的訪問。</p><p>  1、DSl8B20初始化程序</p>

33、;<p>  根據(jù)DSl8B20的1-WIRE協(xié)議,處理器首先向DQ發(fā)出低電平復(fù)位脈沖,寬度在480us到960us之間,然后恢復(fù)DQ的高電平,在200 us之內(nèi),等待由DSl8B20發(fā)出的應(yīng)答脈沖。如果DQ被下拉為低電平,則DSl8B20初始化成功,設(shè)備就位。</p><p>  2、DSl8B20寫入程序</p><p>  對DSl8B20的寫入是在DQ為1的情況下置位

34、O,延時1us以上,隨后寫入數(shù)據(jù)位,延時60 us,DQ再置為l,各位逐位寫入。</p><p>  3、DSl8B20讀出程序</p><p>  同DSl8B20的寫入相似,先下拉DQ為0,延時1us以上,隨后從DQ上讀入數(shù)據(jù)位,延時60us,DQ再置為l,完成一位數(shù)據(jù)的讀取。</p><p>  4、DSl8B20溫度采集程序</p><p

35、>  程序開始先進行DSl8B20復(fù)位,不成功則返回錯誤代碼0xFFFFFFFF,然后向DSl8B20寫入跳出ROM命令CCH和溫度轉(zhuǎn)換命令44H,經(jīng)延時750us等待DSl8B20充分完成溫度轉(zhuǎn)換。再進行一次復(fù)位后,通過對其發(fā)送溫度讀取命令BEH,即可調(diào)用數(shù)據(jù)讀取子程序得到剛剛轉(zhuǎn)換的溫度數(shù)據(jù)。</p><p><b>  ICC代碼示例</b></p><p>

36、;  Read_Temperature(void)</p><p><b>  {</b></p><p>  Init_DS18B20() ;//DS18B20初始化</p><p>  WriteOneChar(0xCC) ; // 跳過讀序號列號的操作</p><p>  WriteOneChar(0x4

37、4) ; // 啟動溫度轉(zhuǎn)換</p><p>  Init_DS18B20() ;</p><p>  WriteOneChar(0xCC) ; //跳過讀序號列號的操作</p><p>  WriteOneChar(0xBE) ; //讀取溫度寄存器</p><p>  tel = ReadOneChar() ;

38、//溫度低8位</p><p>  teh = ReadOneChar() ; //溫度高8位 </p><p><b>  }</b></p><p>  DS18B20 溫度轉(zhuǎn)換方法</p><p>  讀取到的溫度值高八位如果大于0X07則溫度值為負(fù),應(yīng)取反加一后乘以0.625。溫度值高八位如果小于0X07

39、則溫度值為正,直接乘以0.625 即可。</p><p>  圖2.4 典型溫度值的二進制,十六進制數(shù)據(jù)對照表</p><p>  2.2.2 濕度測量</p><p>  濕度測量采用HS1101。濕度傳感器HS1101是法國Humirel生產(chǎn)的電容式濕度傳感器。HS1101是一種在高分子薄膜上形成的電容。高分子薄膜上的電極是很薄的金屬微孔蒸發(fā)膜,水分子可通過兩

40、端的電極被高分子薄膜吸附或釋放,隨著這種水分子的吸附或釋放,高分子的介電系數(shù)將發(fā)生相應(yīng)的變化。由于介電系數(shù)隨空氣的相對濕度變化而變化,所以只要測定電容C值就可得相對濕度。</p><p>  HS1101 是基于獨特工藝設(shè)計的固態(tài)聚合物結(jié)構(gòu),在電路中等效于一個電容器Cx,其電容隨所測空氣的相對濕度增大而增大。具有極好的線性輸出,在相對濕度為(0--100)%RH的范圍內(nèi),電容的容量由163pF變化到202pF,其

41、誤差不大于±2%RH;濕度量程為(1~99)%RH,工作溫度范圍為-40℃~100℃;濕 度輸出受溫度影響極小(溫度系數(shù)僅為0.04pF/C );常溫使用無需溫度補償,無需校準(zhǔn);相對濕度在(33--75)%RH之間,電容與相對濕度的變化為0.34 pF/%R H,相對濕度為55% R H時的典型電容值約182pF;高可靠性及長期穩(wěn)定性,年漂移量0.5%RH/年;響應(yīng)時間小于5s.</p><p>  采

42、用電容/頻率轉(zhuǎn)換電路進行濕度檢測,將濕敏電容Cx置于振蕩電路之中,電路如圖2.5所示。將濕度的變化轉(zhuǎn)換為方波振蕩頻率變化,該頻率信號可以直接被微處理器采集。</p><p>  圖2.5 HS1101典型應(yīng)用電路</p><p>  上圖中輸出的方波信號可直接被ATmega16采集,連續(xù)測量一定數(shù)量周期所經(jīng)歷的時間,進而可計算出頻率值。</p><p>  典型濕度

43、-頻率值對照表:</p><p>  2.2.3 氣壓測量</p><p>  本設(shè)計要測量的是絕對氣壓值,為了簡化電路,提高穩(wěn)定性和抗干擾能力,要求使用具有溫度補償能力的氣壓傳感器。經(jīng)綜合考慮,本設(shè)計選用美國摩托羅拉公司的集成壓力傳感芯片MPX4105作為氣壓傳感器。MPX4105可產(chǎn)生于所加氣壓呈線性關(guān)系的高精度模擬輸出電壓,它具有以下特點:</p><p> 

44、 ·供電范圍:4.85~5.35V,典型值為5.1V。</p><p>  ·測量范圍:15~105kPa。</p><p>  ·工作溫度范圍:0~85℃。</p><p>  ·溫度補償范圍:-40~+125℃。</p><p>  ·測量精度為±1.7%VFSS </p&

45、gt;<p>  ·最低氣壓對應(yīng)的輸出電壓VOFF為0.184~0.428V,典型值為0.306V;最高氣壓對應(yīng)的輸出電壓VOFF為4.804~4.988V,典型值為4.896V;滿刻度輸出電壓間距VFSS的典型值為4.590V。</p><p>  ·理想的微處理器接口。</p><p>  被測氣壓經(jīng)過氣壓傳感器MPX4105轉(zhuǎn)換成電壓輸出,輸出電壓V

46、out和大氣壓P有如下關(guān)系:</p><p>  Vout=Vcc*(0.01P-0.09)</p><p>  輸出的模擬電壓可輸入ATmega16的片內(nèi)ADC轉(zhuǎn)換成相應(yīng)電壓,再根據(jù)以上轉(zhuǎn)換關(guān)系即可得出要測的氣壓值。</p><p>  圖2.6 MPX4105與AVR單片機的連接方式</p><p><b>  ICC代碼示例:

47、</b></p><p>  adc(void)//單次AD轉(zhuǎn)換 10位精度 </p><p><b>  {</b></p><p>  unsigned char adcl,adch;</p><p>  float adc=0;</p><p>  ADMUX|=0X40;/

48、/參考電壓 AVCC 轉(zhuǎn)換結(jié)果右對齊 輸入端ADC0</p><p>  ADCSRA|=((1<<ADEN)|(1<<ADPS2));//使能AD轉(zhuǎn)換 ADC 16預(yù)分頻 </p><p>  ADCSRA|=1<<ADSC;//啟動單次轉(zhuǎn)換</p><p>  while(~(0XEF|ADCSRA));//等待轉(zhuǎn)換完成&

49、lt;/p><p>  adcl=ADCL;adch=ADCH;//讀取轉(zhuǎn)換值</p><p>  adc=5000/1024*(adch*256+adcl);//10位精度 參考電壓5000mV</p><p>  return adc;</p><p><b>  }</b></p><p>  

50、2.2.4 1602液晶現(xiàn)場顯示</p><p>  1602屬于工業(yè)字符型液晶,能夠同時顯示16*02即32個字符。(16列2行)。</p><p>  引腳說明:1602字符型LCD通常有14條引腳線或16條引腳線的LCD,多出來的2條線是背光電源線。VCC(15腳)和地線GND(16腳),其控制原理與14腳的LCD完全一樣。詳細(xì)說明如下</p><p>&l

51、t;b>  寄存器選擇控制表</b></p><p><b>  字符集</b></p><p>  1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個不同的點陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯

52、示時模塊把地址41H中的點陣字符圖形顯示出來,我們就能看到字母“A”。</p><p>  因為1602識別的是ASCII碼,試驗可以用ASCII碼直接賦值,在單片機編程中還可以用字符型常量或變量賦值,如'A’。</p><p><b>  顯示地址</b></p><p>  寫顯示位置時要求數(shù)據(jù)最高位D7恒為高電平,例如,要在第一行

53、第二列顯示一字符,此位置地址為01H,則應(yīng)先寫入數(shù)據(jù)81H,再寫入字符數(shù)據(jù)。</p><p><b>  基本操作時序</b></p><p>  1.讀狀態(tài):輸入:RS=L,RW=H,E=H 輸出:D0~D7=狀態(tài)字</p><p>  2.寫指令:輸入:RS=L,RW=L,D0~D7=指令碼,E=上升沿 </p>&l

54、t;p>  3.讀數(shù)據(jù):輸入:RS=H,RW=H,E=H 輸出:D0~D7=數(shù)據(jù)</p><p>  4.寫數(shù)據(jù):輸入:RS=H,RW=L,D0~D7=數(shù)據(jù),E=上升沿 </p><p> ?。看螌刂破鬟M行讀寫操作之前,都必須進行讀寫忙檢測,確保STA7即D7為0)</p><p><b>  初始化過程(復(fù)位)</b><

55、;/p><p>  1.寫指令38H:顯示模式設(shè)置</p><p><b>  2.延時5ms</b></p><p>  3.寫指令0Fh:開顯示,有光標(biāo)且光標(biāo)閃爍</p><p><b>  4.延時5ms</b></p><p>  5.寫指令06H:設(shè)置為光標(biāo)右移,文字不

56、動</p><p><b>  6.延時5ms</b></p><p>  7.寫指令01H:清除顯示</p><p><b>  8. 延時5ms</b></p><p>  可通過按鍵設(shè)置為1602現(xiàn)場顯示氣象數(shù)據(jù)或是設(shè)置為無線傳輸數(shù)據(jù)至上位機,兩種方式選擇一種則另一種被關(guān)閉以減省功耗。<

57、/p><p><b>  2.3數(shù)據(jù)傳輸</b></p><p>  本設(shè)計中采用無線方式傳輸數(shù)據(jù),選用的無線傳輸模塊為PTR2000,它是一種超小型、低功耗、高速率的無線收發(fā)數(shù)據(jù)傳輸模塊,使用的是挪威Nordic公司推出的nRF401 無線通信芯片。該芯片使用了433MHz IGM頻段,是真正的單片UHF無線收發(fā)一體芯片。采用抗干擾能力較強的FSK調(diào)制/解調(diào)方式,其工作

58、頻率穩(wěn)定可靠、外圍元件少、功耗極低且便于設(shè)計生產(chǎn),這些優(yōu)異特性使得PTR200非常適合于便攜及手持產(chǎn)品的設(shè)計。另外,由于它采用了低發(fā)射功率、高靈敏度設(shè)計,因而可滿足無線管制的要求且無需使用許可證,是目前低功率無線數(shù)傳的理想選擇。</p><p>  PTR2000的主要特征如下:</p><p>  該器件將接收和發(fā)射合接為一體;</p><p>  工作頻率為國際

59、通用的數(shù)傳頻段433MHZ;</p><p>  采用FSK調(diào)制/解調(diào),可直接進入數(shù)據(jù)輸入/輸出,抗干擾能力強,特別適合工業(yè)控制場合;</p><p>  采用DDS(直接數(shù)據(jù)合成)+PLL頻率合成技術(shù),因而頻率穩(wěn)定性極好;</p><p>  靈敏度高達(dá)—105bBm;</p><p>  工作電壓低(最低2.7V),功耗小,接受待機狀態(tài)電

60、流僅為8μA;</p><p>  具有兩個頻道,可滿足需要多信道工作的場合;</p><p>  工作數(shù)率最高達(dá)20kbit/s(也可在較抵速率下工作,如9600bps);</p><p>  超小體積,約40×27×5mm3;</p><p>  可直接與單片機串口進行連接,也可以用RS232與計算機接口,軟件編程非常

61、方便;</p><p>  標(biāo)準(zhǔn)的DIR引腳間距更適合于嵌入式設(shè)備;</p><p>  由于采用了低發(fā)射功率、高接收靈敏的設(shè)計,因此使用時無需申請許可證,開闊地時的使用距離最遠(yuǎn)可達(dá)1000米。</p><p>  PTR2000引腳排列及功能</p><p>  PTR2000模板的引腳排列如圖1所示。各引腳的功能說明如下;</p&g

62、t;<p>  VCC(1腳);下輸入端,電壓范圍為2.7~5.25V;</p><p>  CS(2腳):頻道選擇端。CS=0時,選擇工作頻道1,即433.92MHz頻道;CS=1,芯片工作于頻道二,即434.33MHz.</p><p>  DO(3腳):數(shù)據(jù)輸出端;</p><p>  DI(4腳):數(shù)據(jù)輸入端</p><p&

63、gt;  GND(5腳):電源地</p><p>  PWR(6腳):低功耗控制端。當(dāng)PWR=1時,模塊處于正常工作狀態(tài),PWR=0時,模塊處于待機微功耗狀態(tài);</p><p>  TXTN(7腳):發(fā)射/接收控制端。當(dāng)TXTN=1時,模塊為發(fā)射狀態(tài);當(dāng)TXTN=0時,模塊被設(shè)置為接受狀態(tài)。</p><p>  PTR2000可與所有單片機配合使用,可直接接單片機的

64、串口或I/O口,也可與計算機串口進行通訊,此時需要在中間簡單地接在一個RS232電平轉(zhuǎn)換芯片,如MAX232等。</p><p>  圖2.7 PTR2000與計算機串口的典型連接方式</p><p>  ATmega16串行通信</p><p>  ATmega16的通用同步和異步串行接收器和轉(zhuǎn)發(fā)器(USART) 是一個高度靈活的串行通訊設(shè)備。主要特點為:<

65、/p><p>  ? 全雙工操作( 獨立的串行接收和發(fā)送寄存器)</p><p><b>  ? 異步或同步操作</b></p><p>  ? 主機或從機提供時鐘的同步操作</p><p>  ? 高精度的波特率發(fā)生器</p><p>  ? 支持5, 6, 7, 8, 或9 個數(shù)據(jù)位和1 個或2

66、個停止位</p><p>  ? 硬件支持的奇偶校驗操作</p><p><b>  ? 數(shù)據(jù)過速檢測</b></p><p><b>  ? 幀錯誤檢測</b></p><p>  ? 噪聲濾波,包括錯誤的起始位檢測,以及數(shù)字低通濾波器</p><p>  ? 三個獨立的中

67、斷:發(fā)送結(jié)束中斷, 發(fā)送數(shù)據(jù)寄存器空中斷,以及接收結(jié)束中斷</p><p>  ? 多處理器通訊模式</p><p>  ? 倍速異步通訊模式</p><p><b>  ICC代碼示例</b></p><p>  void uart_init(unsigned int baud)//串行通信初始化</p>

68、<p><b>  {</b></p><p>  UCSRB=0x00; //UART收發(fā)允許 中斷允許</p><p>  UCSRA=0x02;//收發(fā)完成,錯誤 狀態(tài)寄存器清零 </p><p>  //設(shè)為雙倍速 減小波特率設(shè)置誤差</p><p>  UCSRC=(1<<URSEL)|

69、(0<<UPM0)|(3<<UCSZ0);//通信模式設(shè)置寄存器 選擇UCSRC,異步模式,禁止校驗,1位停止位,8位數(shù)據(jù)位</p><p>  baud=mclk/8/baud-1;</p><p>  UBRRL=baud%256;</p><p>  UBRRH=baud/256;//設(shè)置波特率</p><p>

70、  UCSRB=(1<<TXEN)|(1<<RXEN)|(1<<RXCIE); //接收、發(fā)送使能,接收中斷使能</p><p>  SREG=BIT(7);//全局中斷開放</p><p>  DDRD|=0X02;//配置TX為輸出</p><p><b>  }</b></p><p

71、><b>  RS232</b></p><p><b>  VB串口通信</b></p><p>  VB中可利用MSComm控件實現(xiàn)串行通信, VB的MSComm控件提供了兩種處理通信的方式:一種為事件驅(qū)動方式,該方式相當(dāng)于一般程序設(shè)計中的中斷方式。當(dāng)串口發(fā)生事件或錯誤時,MSComm控件會產(chǎn)生OnComm事件,用戶程序可以捕獲該事件進

72、行相應(yīng)處理。另一種為查詢方式,在用戶程序中設(shè)計定時或不定時查詢MSComm控件的某些屬性是否發(fā)生變化,從而確定相應(yīng)處理。在程序空閑時間較多時可以采用該方式。利用MSComm控件實現(xiàn)計算機通信的關(guān)鍵是理解并正確設(shè)置MSConun控件眾多屬性和方法。以下是MSComm控件的常用屬性和方法:</p><p>  1.Commport:設(shè)置或返回串口號。</p><p>  2.Settings:

73、以字符串的形式設(shè)置或返回串口通信參數(shù)。</p><p>  3.Portopen:設(shè)置或返回串口狀態(tài)。</p><p>  4.InputMode:設(shè)置或返回接收數(shù)據(jù)的類型。</p><p>  5.Inpuren:設(shè)置或返回一次從接收緩沖區(qū)中讀取字節(jié)數(shù)。</p><p>  6.InBufferSize:設(shè)置或返回接收緩沖區(qū)的大小,缺省值為

74、1024字節(jié)。</p><p>  7.InBufferCount:設(shè)置或返回接收緩沖區(qū)中等待計算機接收的字符數(shù)。</p><p>  8.Input:從接收緩沖區(qū)中讀取數(shù)據(jù)并清空該緩沖區(qū),該屬性設(shè)計時無效,運行時只讀。</p><p>  9.OutBufferSize:設(shè)置或返回發(fā)送緩沖區(qū)的大小,缺省值為512字節(jié)。</p><p>  

75、10.OutBufferCount:設(shè)置或返回發(fā)送緩沖區(qū)中等待計算機發(fā)送的字符數(shù)。</p><p>  11.Output:向發(fā)送緩沖區(qū)發(fā)送數(shù)據(jù),該屬性設(shè)計時無效。運行時只讀。</p><p>  12.Rthreshold:該屬性為一閥值。當(dāng)接收緩沖區(qū)中字符數(shù)達(dá)到該值時,MSGomm控件設(shè)置Conunevent屬性為ComEvReceive。并產(chǎn)生OnComm事件。用戶可在OnComm事

76、件處理程序中進行相應(yīng)處理。若Rthreshold屬性設(shè)置為0。則不產(chǎn)生OnComm事件。例如用戶希望接收緩沖區(qū)中達(dá)到一個字符就接收一個字符,可將Rthreshold設(shè)置為1。這樣接收緩沖區(qū)中接收到一個字符,就產(chǎn)生一次OnComm事件o</p><p>  13.Sthreshold:該屬性亦為一閥值。當(dāng)發(fā)送緩沖區(qū)中字符數(shù)小于該值時。MSComm控件設(shè)置Commevent屬性為ComEvSend,并產(chǎn)生OnComm

77、事件。若Sthreshold屬性設(shè)置為0,則不產(chǎn)生OnComm事件。要特別注意的是僅當(dāng)發(fā)送緩沖區(qū)中字符數(shù)小于該值的瞬間才產(chǎn)生OnComm事件。其后就不再產(chǎn)生OnComm事件。例如Sthreshold設(shè)置為3,僅當(dāng)發(fā)送緩沖區(qū)中字符數(shù)從3降為2時,MSComm控件設(shè)置Commevent屬性為ComEvSend,同時產(chǎn)生OnComm事件。如發(fā)送緩沖區(qū)中字符始終為2,則不會再產(chǎn)生OnComm事件;這就避免了發(fā)送緩沖區(qū)中數(shù)據(jù)未發(fā)送完就反復(fù)發(fā)生On

78、Comm事件。</p><p>  14.CommEvent:這是一個非常重要的屬性。該屬性設(shè)計時無效,運行時只讀。一旦串口發(fā)生通信事件或產(chǎn)生錯誤,依據(jù)產(chǎn)生的事件和錯誤,MSComm控件為CommEvent屬性賦于不同的代碼,同時產(chǎn)生OnComm事件。用戶程序就可在OnConun事件處理程序中針對不同的代碼,進行相應(yīng)的處理。</p><p><b>  2.3數(shù)據(jù)處理</b

79、></p><p>  上位機軟件用Visual Basic語言編寫,上位機軟件接收到測得數(shù)據(jù)后進行轉(zhuǎn)換,顯示和儲存。</p><p>  上位機軟件接收到采集得的數(shù)據(jù)后可顯示在軟件界面上,繪制出溫度、濕度及氣壓隨時間的變化曲線。還可根據(jù)需要在上位機中儲存氣象數(shù)據(jù),以供長期氣象的監(jiān)測和分析。</p><p><b>  2.4光伏電源</b&g

80、t;</p><p>  下位機采用節(jié)能環(huán)保的光伏電源供電。</p><p>  光伏發(fā)電的基本原理就是利用光電效應(yīng),將太陽輻射能直接轉(zhuǎn)換成電能。當(dāng)太陽光(或其他光)照射到太陽能電池上時,電池吸收光能,產(chǎn)生光生電子一空穴對。在電池內(nèi)建電場作用下,光生電子和空穴被分離,電池兩端出現(xiàn)異號電荷的積累,即產(chǎn)生“光生電壓”。若在內(nèi)建電場的兩側(cè)引出電極,并接上負(fù)載,則負(fù)載就有“光生電流”流過。<

81、/p><p>  太陽能電池板受環(huán)境的影響輸出電壓不穩(wěn)定,所以一般不單獨作為電源使用,要配合充放電控制器和蓄電池才能為負(fù)載提供穩(wěn)定的電源。</p><p>  本設(shè)計中光伏電源主要包括以下三個部分</p><p>  太陽能電池板:光伏電源的核心部分,將太陽能直接轉(zhuǎn)換成電能。</p><p>  充放電控制器:快速、平穩(wěn)、高效地為蓄電池充電,同時

82、保護蓄電池,避免過放和過充現(xiàn)象。控制器的最主要的功能就是通過檢測蓄電池的電壓或荷電狀態(tài),判斷蓄電池是否已經(jīng)達(dá)到過充點或放充點,并根據(jù)檢測結(jié)果發(fā)出繼續(xù)充、放電或終止充、放電的指令??刂破鞯墓δ艹吮O(jiān)測判斷是否繼續(xù)充放電,為了保護系統(tǒng)正常運行還要對充放電過程進行保護。</p><p>  本設(shè)計中采用MAX1641進行充放電控制。MAXl641是一個充電效率高達(dá)95%的CMOS型、輸出電壓可調(diào)的器件。開關(guān)電流控制模式

83、的降壓型DC-DC變換器集成電路。輸入電范圍為5.5~26 V,輸出電壓調(diào)節(jié)范圍是2~24 V的微處理器控制供電電池的充電電源電路。由MAXl641構(gòu)成的具有智能控制功能的快速充電電路如圖2.8所示。該電路通過對Do和D,的輸入狀態(tài)進行智能控制,并對充電電池的充電狀態(tài)的檢測結(jié)果來隨時調(diào)整充電狀態(tài)和充電模式。圖2中電路的輸入是一個小型太陽能電池;輸出的電壓范圍為5.5~26 V,經(jīng)過一個防反沖二極管作為MAX1641的輸入電壓。因為太陽能

84、電池受光強的影響并非總是能提供電能,當(dāng)光強太弱而不能發(fā)電時,待充電電池會反向給太陽能電池供電,二極管D3就能避免反向供電。</p><p>  圖2.8 MAX1641構(gòu)成的12V輸出降壓型電路</p><p>  D0和D1的輸入狀態(tài)信號所對應(yīng)的工作模式和輸出電流關(guān)系:</p><p>  輸出的充電電壓與外部分壓器電阻R5和R4之間的關(guān)系可由下式給出:</

85、p><p>  R5=R4×((Vout/V)-1) (1)</p><p>  式中:R4的取值范圍為10~500 kQ,V=2 V。</p><p>  該應(yīng)用電路中的D1和D0的輸入狀態(tài)信號所對應(yīng)的工作模式和輸出電流關(guān)系如表所示。</p><p>  當(dāng)然,這些參數(shù)可調(diào)整。R2=R3×((Vref/Vset)-1),Vr

86、ef=2 V,10 kΩ<R5<300KΩ,Vset與輸出充電電流成正比。</p><p>  蓄電池:將太陽能電池發(fā)出的直流電儲存起來,并根據(jù)需要向負(fù)載供電。一般選用鉛酸蓄電池。在陽光充足時太陽能電池板通過充放電控制器為數(shù)據(jù)采集端供電并為蓄電池充電,陽光不足時則由直接蓄電池向數(shù)據(jù)采集端供電。</p><p>  光伏電源的輸出電壓經(jīng)過DC-DC變換為5V后才能為數(shù)據(jù)采集端的數(shù)

87、據(jù)采集電路和無線數(shù)傳模塊提供電源。</p><p><b>  3.結(jié)束語</b></p><p>  本設(shè)計采用多種高性能低功耗的電子器件,最終能夠?qū)崿F(xiàn)對溫度、濕度、氣壓這三種氣象信息的實時采集、分析和儲存。能夠滿足小型氣象觀測的需要。</p><p><b>  參考文獻(xiàn)</b></p><p>

88、;  [1] Atmel Corporation.ATmega16-16L Data Sheet. 2004</p><p>  [2]劉紅兵?;陔p單片機的智能遙測微型氣象站。南京信息工程大學(xué):大氣物理學(xué)與大氣環(huán)境.2006</p><p>  [3]戴佳,戴衛(wèi)恒。51單片機C語言應(yīng)用設(shè)計實例精講。北京:電子工業(yè)出版社,2007</p><p>  [4]張永和,

溫馨提示

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

評論

0/150

提交評論