【正文】
,值為False時關(guān)閉串口。Input:從輸入寄存器讀取數(shù)據(jù),返回值為從串口讀取的數(shù)據(jù)內(nèi)容,同時輸入寄存器將被清空。Ouput:發(fā)送數(shù)據(jù)到輸出寄存器。InBufferCount:設(shè)置輸入寄存器所存儲的字符數(shù),當(dāng)將其值設(shè)為0時,則輸入寄存器將被清空。InputMode:設(shè)置從輸入寄存器中讀取數(shù)據(jù)的形式。若值為0,則表示以文本形式讀?。恢禐?,則表示以二進(jìn)制形式讀取。OutBufferCount:設(shè)置輸出寄存器所存儲的字符數(shù),當(dāng)將其值設(shè)為0時,則輸出寄存器將被清空。RThreshold:設(shè)置在MSComm控件設(shè)置CommEvent屬性為EvReceive并產(chǎn)生OnComm事件之前要接受的字符數(shù)。CommEvent屬性:返回最近的通訊事件或錯誤。通過對它具體屬性值的查詢,我們就可以獲得通訊事件和通訊錯誤的完整信息。當(dāng)其值是EvReceive時表示接收到數(shù)據(jù)。二、MSComm的事件 除了公共事件之外,MSComm只有一個OnComm事件。當(dāng)CommEvent屬性值變化時將發(fā)生OnComm事件,指示發(fā)生一個通訊事件或錯誤。當(dāng)我們設(shè)置Rtheshold屬性值為0時,將使得捕獲EvReceive事件無效。 VB程序設(shè)計 程序詳細(xì)設(shè)計VB程序詳細(xì)設(shè)計請見附錄1。 系統(tǒng)界面系統(tǒng)界面見圖51。圖51 PC機(jī)接收溫度值軟件界面6 調(diào)試 液晶顯示器LCD1602設(shè)計過程中遇到的問題既解決方法一、LCD不能正常顯示經(jīng)過對程序的調(diào)試和硬件電路的檢查,問題有如下幾個:(1)對單片機(jī)延時不熟悉,延時程序錯誤;(2)LCD1602背光設(shè)置不合適,字體看不清。解決方法如下:(1)查看ATMEGA16L相關(guān)資料,將資料與電路板相對照,熟悉芯片上每一個針腳的名稱,熟悉針腳的用法;(2)編寫小程序如發(fā)光二極管閃亮、跑馬燈等,利用AVR Studio進(jìn)行程序的編輯、編譯、連接、調(diào)試,然后將HEX文件下載到單片機(jī)。二、LCD顯示器顯示的字符看不清楚經(jīng)過硬件電路的檢查,問題有如下:LCD對比度調(diào)節(jié)端電壓沒調(diào)好。解決方法如下:在LCD對比度調(diào)節(jié)端接一個10K的電位器,可在運(yùn)行時調(diào)節(jié)背光到合適的亮度。 串口設(shè)計過程中遇到的問題既解決方法一、串口不能正常通信,通過檢查電路和程序發(fā)現(xiàn)問題如下:(1)電路RS232芯片焊接錯誤;(2)程序編寫不正確,比如波特率設(shè)置錯誤。解決方法如下:(1)重新焊接電路;(2)仔細(xì)檢查程序錯誤,不斷調(diào)試。二、串口通信正常,但出現(xiàn)亂碼,通過檢查程序發(fā)現(xiàn)問題如下:程序編寫不正確。解決方法如下:重新編寫部分程序,不斷調(diào)試。 nRF905設(shè)計過程中遇到的問題既解決方法 nRF905不能正常通信,通過檢查電路發(fā)現(xiàn)問題如下:單片機(jī)電源和nRF905電源不統(tǒng)一。單片機(jī)電源采用5V供電,而nRF905電源采3V供電。導(dǎo)致電壓、電流不穩(wěn)定,使nRF905不能正常工作。解決方法如下:單片機(jī)電源采用3V供電,使單片機(jī)電源和nRF905電源統(tǒng)一。 DS18B20設(shè)計過程中遇到的問題既解決方法一、單片機(jī)檢測不到溫度傳感器 DS18B20,通過檢查電路和程序發(fā)現(xiàn)問題如下:(1)程序中的端口設(shè)置錯誤,和電路連接的不符;(2)DS18B20對時序要求特別高,時序發(fā)生錯誤。解決方案如下:(1)重新設(shè)置端口;(2)檢查延時函數(shù),重新設(shè)置延時。二、溫度傳感器 DS18B20讀出的溫度值不是正確的溫度值,通過檢查程序發(fā)現(xiàn)問題如下:(1)延時設(shè)置不正確。DS18B20是單總線結(jié)構(gòu),對延時的要求很嚴(yán)格。如果延時不正確就讀不出正確的溫度值;(2)讀出的溫度數(shù)據(jù)處理錯誤。解決方案如下:(1)通過仿真得出正確的延時,重新編寫 DS18B20的延時程序;(2)重新編寫溫度數(shù)據(jù)處理程序。 VB程序設(shè)計中遇到的問題與解決方法在系統(tǒng)設(shè)計中出現(xiàn)了無法接收、接收亂碼、接收數(shù)據(jù)不完整等現(xiàn)像。經(jīng)過排查和重新設(shè)置接收模式、接收方式、處理方法等實(shí)現(xiàn)了正確接收。結(jié)論本文通過對AVR單片機(jī)Atmega16L和無線數(shù)傳模塊nRF905的研究,提出了一種基于AVR單片機(jī)的無線環(huán)境監(jiān)測系統(tǒng)的總體設(shè)計方案。通過制作主機(jī)和從機(jī)電路板,設(shè)計和實(shí)現(xiàn)了環(huán)境數(shù)據(jù)的采集、收發(fā)、顯示和上傳PC機(jī)于一體。做了以下幾方面的工作:(1)深入地分析研究了Atmega16L單片機(jī)。(2)查閱了大量的無線數(shù)傳模塊的相關(guān)資料和數(shù)據(jù)手冊,根據(jù)實(shí)際需要對模塊進(jìn)行了選型,經(jīng)分析比較后選擇了無線數(shù)傳模塊nRF905。(3)完成了系統(tǒng)主機(jī)和從機(jī)的電路原理圖的繪制和電路板的制作。(4)采用AVR Studio編寫了nRF905無線通信程序,實(shí)現(xiàn)了主機(jī)和兩個從機(jī)的無線數(shù)據(jù)傳輸。(5)采用數(shù)字式溫度傳感器DS18B20,應(yīng)用傳感技術(shù)、無線收發(fā)技術(shù)及計算機(jī)技術(shù),實(shí)現(xiàn)溫度數(shù)據(jù)的采集和短距離無線數(shù)據(jù)傳輸并用液晶顯示器LCD1602顯示無線發(fā)送和接收的溫度數(shù)據(jù)。(6)采用Atmega16L內(nèi)部自帶的AD為模數(shù)轉(zhuǎn)換,進(jìn)行濕度的采集。(7)采用AVR Studio編寫了主機(jī)串口通信程序,實(shí)現(xiàn)了主機(jī)與PC機(jī)之間通過串口進(jìn)行數(shù)據(jù)的傳輸,從而實(shí)現(xiàn)了溫度數(shù)據(jù)的上傳。(8),完成了溫度數(shù)據(jù)的顯示并通過Access寫入數(shù)據(jù)庫。系統(tǒng)結(jié)構(gòu)采用模塊化設(shè)計,主要由兩大部分構(gòu)成:第一部分為系統(tǒng)的從機(jī),以ATMEGA16L單片機(jī)和一片nRF905無線收發(fā)芯片為核心,與單總線溫度傳感器 DS18B20和電位器組成溫度采集點(diǎn)和模擬濕度采集點(diǎn),完成溫度和濕度數(shù)據(jù)的采集和無線發(fā)送,并通過液晶顯示器LCD1602顯示;第二部分為系統(tǒng)的主機(jī),以ATMEGA16L單片機(jī)和一片nRF905無線收發(fā)芯片為核心,通過RS232接口模塊,完成溫度數(shù)據(jù)的無線接收、顯示和上傳功能。系統(tǒng)電路簡單,性能穩(wěn)定,抗干擾能力強(qiáng),可靠性高,搭建方便,易于擴(kuò)展,經(jīng)過軟件進(jìn)行非線性及溫度補(bǔ)償后,測溫精度可進(jìn)一步提高,因此本系統(tǒng)適用于在短距離對多種環(huán)境溫濕度的監(jiān)測,有廣闊的應(yīng)用前景。但是,對該系統(tǒng)的研究還存在一些問題需要解決。比如溫度傳感器的測溫范圍不夠?qū)挘磻?yīng)速度慢、有滯后等缺點(diǎn)。致謝本論文是在我的導(dǎo)師高老師的精心指導(dǎo)和悉心關(guān)懷下完成的,在我論文的研究工作中無不傾注著高老師辛勤的汗水和心血。高老師淵博的學(xué)識,嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度、務(wù)實(shí)的工作作風(fēng)、無私的奉獻(xiàn)精神及平和的為人處事態(tài)度不僅使我在知識上受益匪淺,也使我的人生觀和世界觀得到不斷的修正。在此謹(jǐn)向高老師表示衷心的感謝和誠摯的敬意。特別感謝我的舍友,他們對我的課題研究工作給予了很多建議和寶貴資料,給了我很多幫助。感謝我的父母家人,他們殷切的希望和默默的支持是我學(xué)業(yè)得以順利完成的動力。感謝這些年來幫助過我的老師和同學(xué),在徐州我已經(jīng)學(xué)習(xí)生活了四年,留下了許多美好的回憶。最后衷心地感謝在百忙之中評閱論文和參加答辯的各位老師。參考文獻(xiàn)[1] ,2009[2]張軍. ,2009[3],2009[4],2009[5] ,2006[6] 郭剛,,2004[7] 李文仲,[M].北京航天航空大學(xué)出版社,2006[8] IC 原理與應(yīng)用[M].北京航空航天大學(xué)出版社,2004[9] 王英洲,[J].數(shù)據(jù)通信,2004[10] [M].北京航天航空大學(xué)出版社,2005附錄附錄1英文翻譯外文文獻(xiàn)翻譯一、EnglishAtmega16LPin Configurations Figure 1. Pinout ATmega16Overview the ATmega16 is a lowpower CMOS 8bit microcontroller based on the AVR enhanced RISC architecture. By executing powerful instructions in a single clock cycle, the ATmega16 achieves throughputs approaching 1 MIPS per MHz allowing the system designer to optimize power consumption versus processing speed.The AVR core bines a rich instruction set with 32 general purpose working registers. All the 32 registers are directly connected to the Arithmetic Logic Unit (ALU), allowing two independent registers to be accessed in one single instruction executed in one clock cycle. The resulting architecture is more code efficient while achieving throughputs up to ten times faster than conventional CISC microcontrollers.The ATmega16 provides the following features: 16K bytes of InSystem Programmable Flash Program memory with ReadWhileWrite capabilities, 512 bytes EEPROM, 1K byte SRAM, 32 general purpose I/O lines, 32 general purpose working registers, a JTAG interface for Boundaryscan, Onchip Debugging support and programming, three flexible Timer/Counters with pare modes, Internal and External Interrupts, a serial programmable USART, a byte oriented Twowire Serial Interface, an 8channel, 10bit ADC with optional differential input stage with programmable gain (TQFP package only), a programmable Watchdog Timer with Internal Oscillator, an SPI serial port, and six software selectable power saving modes. The Idle mode stops the CPU while allowing the USART, Twowire interface, A/D Converter, SRAM, Timer/Counters, SPI port, and interrupt system to continue functioning. The Powerdown mode saves the register contents but freezes the Oscillator, disabling all other chip functions until the next External Interrupt or Hardware Reset. In Powersave mode, the Asynchronous Timer continues to run, allowing the user to maintain a timer base while the rest of the device is sleeping. The ADC Noise Reduction mode stops the CPU and all I/O modules except Asynchronous Timer and ADC, to minimize switching noise during ADC conversions. In Standby mode, the crystal/resonator Oscillator is running while the rest of the device is sleeping. This allows very fast startup bined with lowpower consumption. In Extended Standby mode, both the main Oscillator and the Asynchronous Timer continue to run.The device is manufactured using Atmel’s high density nonvolatile memory technology. The Onchip ISP Flash allows the program memory to be reprogrammed insystem through an SPI serial interface, by a conventional nonvolatile memory programmer, or by an Onchip Boot program running on the AVR core. The boot program can