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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  本科畢業(yè)設計(論文)</p><p><b> ?。?0 屆)</b></p><p>  遠程糧倉濕度監(jiān)測系統(tǒng)設計與實現(xiàn)——下位機系統(tǒng)</p><p><b>  目錄</b></p><p><b>  摘要III</b></p>&

2、lt;p>  AbstractIV</p><p><b>  第一章 緒論1</b></p><p>  1.1 課題意義1</p><p>  1.2 課題現(xiàn)狀1</p><p>  1.3 課題設計方案2</p><p>  第二章 主要器件及工具3</p&

3、gt;<p>  2.1 濕度的基本概念3</p><p>  2.2 濕度傳感器3</p><p>  2.3 微控制器5</p><p>  2.4 集成開發(fā)環(huán)境Keil5</p><p>  2.5 EDA軟件Proteus6</p><p>  第三章 總體設計7</

4、p><p>  3.1 設計思路7</p><p>  3.2 總體設計7</p><p>  3.2.1 硬件設計部分7</p><p>  3.2.2 軟件設計部分8</p><p>  第四章 詳細設計9</p><p>  4.1 硬件設計9</p>&

5、lt;p>  4.1.1 頻率采集模塊9</p><p>  4.1.2 單片機測頻模塊9</p><p>  4.2 軟件設計11</p><p>  4.2.1 主體設計思想11</p><p>  4.2.2 單片機測頻模塊軟件設計11</p><p>  第五章 仿真與實現(xiàn)16&l

6、t;/p><p>  5.1 模擬仿真16</p><p>  5.1.1 Keil的調試16</p><p>  5.1.2 Proteus 的電路模擬17</p><p>  5.1.3 Keil與Proteus的聯(lián)合仿真18</p><p>  5.1.4 串口的調試20</p>&

7、lt;p>  5.2 硬件實現(xiàn)21</p><p>  第六章 系統(tǒng)設計總結24</p><p><b>  參考文獻25</b></p><p>  附錄一 下位機電路圖26</p><p>  附錄二 下位機系統(tǒng)源碼27</p><p><b>  致謝29

8、</b></p><p>  遠程糧倉濕度監(jiān)測系統(tǒng)設計與實現(xiàn)</p><p><b>  ——下位機系統(tǒng)</b></p><p><b>  摘要</b></p><p>  中國是一個農業(yè)大國,由于存儲不當,造成大量的糧食浪費,給國家和人民造成了巨大的經濟損失。糧食的儲藏對環(huán)境溫度和濕

9、度的要求較高,因此對糧倉的濕度檢測非常必要。</p><p>  早期糧倉的濕度監(jiān)測主要采用濕度計測量法,它是憑經驗將濕度計放入多個特定的位置,多點測量。管理人員定期現(xiàn)場記錄數(shù)據(jù),再根據(jù)濕度數(shù)據(jù)決定是否倒倉。此方法對糧倉濕度監(jiān)測卻有一定作用,但是由于濕度計精度、人工讀數(shù)的誤差等因素的制約,糧倉經常發(fā)生因局部糧食發(fā)霉變質所引起大面積壞糧情況。</p><p>  所以,本設計的目的就是設計并

10、實現(xiàn)一個能實現(xiàn)異地糧倉濕度監(jiān)測的遠程分布式集散系統(tǒng),以替代傳統(tǒng)的人工檢測手段,降低糧食儲藏成本。首先,通過濕度傳感器采集濕度信息,經振蕩電路轉化成頻率信號,接著通過單片機進行測頻。每個單片機都有一個不同的地址,代表不同的測量點。然后將地址與頻率信息通過串口直接傳給計算機。最后,計算機通過軟件把收到的信息進行圖像化處理,簡單、形象、直觀的展現(xiàn)在管理人員眼前,管理人員就可以足不出戶的實時查看每一個測量點的濕度信息。</p>&

11、lt;p>  關鍵詞: 濕度;Proteus ;MCU;傳感器;串口</p><p>  Design and realization of Remote Measurement System of Granary Humidity</p><p>  ——Lower Computer </p><p><b>  Abstract</b&g

12、t;</p><p>  China is a large agricultural nation, due to improper storage and caused a lot of food waste, to the country and the people's caused a huge economic losses.Grain storage to the ambient temper

13、ature and humidity requirement is higher, so the granary of the humidity detection is necessary. Early the humidity monitoring of granary is using of hygrometer , it is putting the hygrometer into specific location

14、empirically, multi-point measurements. Management personnel to record data regularly on s</p><p>  Key words:  Humidity, Proteus, MCU, Sensor, Serial Port </p><p><b>  第一章 緒論</b&g

15、t;</p><p><b>  1.1 課題意義</b></p><p>  全球糧食生產地區(qū)不平衡,糧食儲備也是“貧富不均”。印度正在吃糧倉不夠的虧,最近幾年有兩三億人挨餓, 但又有數(shù)千萬噸糧食因露天存放不當而霉爛;巴西人沾了儲備充足的光,當別的國家食品價格上漲五六成時,巴西漲幅只有20%;為糧食儲備投入過巨資的美國,冷戰(zhàn)后放棄戰(zhàn)略眼光,現(xiàn)在的庫存小麥“還不夠每

16、個美國人吃一小塊餅干”。俄羅斯為保障本國災后有糧,斷然停止谷物出口……二戰(zhàn)后,全球已發(fā)生7次糧荒,每當糧食危機的陰影拉長,糧食儲備就成了各國比較家底厚薄的一個重要指標。中國農業(yè)問題專家李國祥在接受強調,盡管人類農業(yè)生產水平越來越發(fā)達,但大宗糧食生產還是“靠天吃飯”,所以各國都不敢怠慢糧食儲備。</p><p>  近幾年據(jù)海關統(tǒng)計結果顯示,我國糧食進出口同比均呈下降趨勢,我國糧食供求開始進入緊平衡階段。在糧食供給

17、能力逐漸弱化的情況下,我們必須注意到貯存糧食的科學性和有效性[1]。但是,現(xiàn)實操作中,由于存儲不當,造成大量的糧食浪費,給國家和人民造成了巨大的經濟損失,糧倉的性能成為了糧食質量的決定因素。而糧倉內的濕度是決定的糧倉的性能的一大關鍵因素。</p><p><b>  1.2 課題現(xiàn)狀</b></p><p>  糧倉濕度監(jiān)測屬于監(jiān)控系統(tǒng)范疇。早期糧倉的濕度監(jiān)測主要采

18、用濕度計測量法,他是憑經驗將濕度計放入多個特定的位置,多點測量。管理人員定期現(xiàn)場記錄數(shù)據(jù),在根據(jù)數(shù)據(jù)決定是否倒倉。此方法對糧倉濕度監(jiān)測有一定作用,但由于濕度計精度、人工讀數(shù)的誤差等因素的制約,糧倉經常發(fā)生因局部糧食發(fā)霉變質所引起大面積壞糧情況。</p><p>  近年來,由于傳感器技術、計算機技術、超大規(guī)模集成電路技術和網絡通信技術的發(fā)展,使糧倉濕度監(jiān)測計數(shù)的研究在軟硬件方面都有的一定的進展。</p>

19、;<p>  隨著科學技術的發(fā)展,糧情監(jiān)測的準確性、穩(wěn)定性要求越來越高。尋找最佳配置和最好的性價比成為糧情監(jiān)測研究的熱點。目前,國內出現(xiàn)了豐富的數(shù)字傳感器及其配套產品,技術逐漸成熟。</p><p>  1.3 課題設計方案</p><p>  現(xiàn)實生活中常用濕度監(jiān)測方法主要有兩種:干濕球計測濕法和電子式濕度傳感器測濕法。</p><p>  干濕球

20、測濕法原理簡單,但其測量受到風速、溫度計本身準確度、大氣壓力測量準確度等各種因素的影響[2]。干濕球濕度計的準確度只有5%~7%RH;電子式濕度傳感器測濕法的濕度傳感器的準確度可以達到2%~3%RH。但是,濕度傳感器對使用的環(huán)境溫度有要求,超過其規(guī)定的使用溫度將對傳感器造成損壞。</p><p>  現(xiàn)實中糧倉內的環(huán)境一般是無風、溫度相對穩(wěn)定、干凈而且對濕度監(jiān)測的要求相對來說較高。所以本課題設計方案采用電子式傳感

21、器測濕法。</p><p>  普通的電子式傳感器測濕法采用的濕度傳感器傳出的信號是模擬信號,然后經過復雜的電路將濕度信息層層轉化,最后通過數(shù)碼管顯示出來。這種系統(tǒng)電路極其復雜,只能單點測量,并且不能遠程監(jiān)測,功能擴展性差。</p><p>  本設計方案選用濕敏電容濕度傳感器HS1101收集濕度信息,利用其濕度—電容特性,將其接在振蕩電路中產生不同的頻率信號。然后將采集到的頻率信號傳送到

22、單片機中,將頻率信號的頻率值計算出來。再將此頻率值與單片機地址碼一起通過串口發(fā)送給電腦。然后通過計算機上的LabVIEW軟件對傳送過來的數(shù)據(jù)進行處理,將其頻率值,濕度值通過直觀的圖形化界面實時顯示出來。</p><p>  通過以上可以看出,本方案的電路極其簡單。其核心是選用了可編程的單片機(MCU)系統(tǒng),它將模擬的頻率信號轉化成了數(shù)字信號,而且實現(xiàn)了分布式系統(tǒng)內多個測量點的地址的識別功能,功能擴展的話只需加一些

23、程序和簡單的電路就能實現(xiàn)。所以本方案具有一定的創(chuàng)新性。</p><p>  第二章 主要器件及工具</p><p>  2.1 濕度的基本概念</p><p>  濕度,表示大氣干燥程度的物理量??諝獾母蓾癯潭冉凶觥皾穸取薄T诖艘饬x下,常用絕對濕度、相對濕度、比濕以及露點等物理量來表示。</p><p>  絕對濕度就是單位體積空氣內所含

24、水蒸氣的質量,也就是指空氣中水蒸氣的密度。絕對濕度一般用一立方米空氣中所含水蒸氣的克數(shù)表示。</p><p>  相對濕度是表示空氣中實際所含水蒸氣的分壓(PW)和同溫度下飽和水蒸氣的分壓(PN)的百分比,即HT=(PW/PN)T×100%RH。通常,用RH%表示相對濕度[3]。日常生活中所說的空氣濕度,實際上就是指相對濕度而言。</p><p>  比濕是融化在空氣中的水的質量

25、與濕空氣的質量之間的比。若濕空氣與外界無質量交換,且無相變,則比濕保持不變。</p><p>  露點是空氣濕度達到飽和時的溫度。溫度高的氣體,含水蒸氣越多。若將其氣體冷卻,即使其中所含水蒸氣量不變,相對濕度將逐漸增加,增到某一個溫度時,相對濕度達100%,呈飽和狀態(tài),再冷卻時,蒸氣的一部分凝聚生成露,把這個溫度稱為露點溫度。</p><p>  濕度在生活中是一個極其重要的概念,濕度監(jiān)測

26、廣泛應用于各領域,比如氣象學和水文學、醫(yī)學、生物學、儲藏和生產、農業(yè)和林業(yè)、建筑等等。</p><p>  2.2 濕度傳感器 </p><p>  要較好的測量糧倉濕度,選好濕度傳感器是十分重要的。</p><p>  濕敏元件是最簡單的濕度傳感器。濕敏元件主要有電阻式、電容式兩大類。 </p><p>  濕敏電阻:其特點是在基片上覆蓋

27、一層用感濕材料制成的膜,當空氣中的水蒸氣吸附在感濕膜上時,元件的電阻率和電阻值都發(fā)生變化,利用這一特性即可測量濕度。濕敏電阻的優(yōu)點是靈敏度高,主要缺點是線性度和產品的互換性差。</p><p>  濕敏電容:當環(huán)境濕度發(fā)生改變時,濕敏電容的介電常數(shù)發(fā)生變化,使其電容量也發(fā)生變化,其電容變化量與相對濕度成正比。濕敏電容的主要優(yōu)點是靈敏度高、產品互換性好、響應速度快、濕度的滯后量小、便于制造、容易實現(xiàn)小型化和集成化,

28、但其精度一般比濕敏電阻要低一些[4]。</p><p>  所以,我們選擇濕敏電容作為本系統(tǒng)的濕度傳感器。國外生產濕敏電容的主廠家有Humirel公司、Philips公司、Siemens公司等。其中以Humirel公司生產的HS1101型濕敏電容最為經典。</p><p>  其測量范圍是(1%~99%)RH,在55%RH時的電容量為180pF(典型值)。當相對濕度從0變化到100%時,電

29、容量的變化范圍是163pF~202pF。溫度系數(shù)為0.04pF/℃,濕度滯后量為±1.5%,響應時間為5s[5]。</p><p>  其濕度-電容響應曲線如圖2.1所示。</p><p>  圖2.1 HS1101濕度-電容響應曲線</p><p>  根據(jù)HS1101以上特性,我們就可以將其作為電容與典型的555振蕩電路連接,從而實現(xiàn)濕度電容頻率的轉

30、換。典型的555振蕩電路如圖2.2所示[6]。</p><p>  圖2.2 典型555電路</p><p><b>  2.3 微控制器</b></p><p>  555振蕩電路產生的頻率信號并不能直接被電腦識別,因此,我們就需要用微控制器將其頻率值測量出來,然后再加上測量點的信息(用單片機地址碼表示),以數(shù)據(jù)包的形式通過串口傳給電腦。

31、要實現(xiàn)單片機測頻的功能,我們需要用到三個定時器分別實現(xiàn)定時、計數(shù)和波特率發(fā)生的功能。然而早期的51系列單片機只有兩個定時器。經過比較,我們選用SST89E516RD型單片機。</p><p>  SST89E516RD單片機可靠性高,價格低廉,軟硬件完全兼容8051/52系列單片機,原有資源均可使用。其內部有三個定時器,最高工作頻率可達40MHz,內部具有64K+8KB的FALSH ROM存儲器,可反復讀寫超過

32、十萬次。在應用中基本無需再擴展程序儲存器。此外內部數(shù)據(jù)RAM達1K字節(jié),能滿足大多數(shù)應用,比標準51機的RAM大8倍[7]。</p><p>  因其軟硬件完全兼容8051/52系列單片機,其引腳功能同8051/52系列單片機的引腳功能相同,所以本文不再對其引腳功能贅述。其引腳圖如圖2.3所示。</p><p><b>  圖2.3 管腳圖</b></p>

33、;<p>  2.4 集成開發(fā)環(huán)境Keil</p><p>  單片機要實現(xiàn)預定的功能除必要的硬件外,同樣離不開軟件的支撐。軟件的編寫一般有匯編語言和C語言。匯編語言的執(zhí)行效率高,但是編程的要求高,難度大,不易調試。C語言雖然執(zhí)行效率不及匯編語言,但是C語言在功能上、結構性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用[8]。因此,本系統(tǒng)的軟件設計就選擇C語言。經過比較,我們選擇Keil C51來

34、完成單片機的軟件調試。</p><p>  Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng)。其生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。</p><p>  Keil C51可以完成編輯、編譯、連接、調試、仿真等整個開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件

35、。然后分別由C51及A51編譯器編譯生成目標文件(.OBJ)。目標文件可由LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經L51連接定位生成絕對目標文件 (.ABS)。ABS文件由OH51轉換成標準的Hex文件,以供調試器dScope51或tScope51使用進行源代碼級調試,也可由仿真器使用直接對目標板進行調試,也可以直接寫入程序存貯器如EPROM中。</p><p>  2.5 EDA軟件Proteus<

36、;/p><p>  Keil C51雖然很強大,但是其只能對單片機系統(tǒng)進行很好的調試與仿真。但是,單片機系統(tǒng)只是我們系統(tǒng)設計中的一部分,對于整個系統(tǒng)的調試與仿真來說,Keil C51就會無能為力了。所以,我們還需要一款強大的EDA工具來對整個電路系統(tǒng)來進行模擬。經過比較,我們選擇了Proteus。</p><p>  Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調試到

37、單片機與外圍電路協(xié)同仿真,一鍵切換到PCB設計,真正實現(xiàn)了從概念到產品的完整設計。是目前世界上唯一將電路仿真軟件、PCB設計軟件和虛擬模型仿真軟件三合一的設計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年增加Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器[9

38、]。</p><p>  通過Proteus和Keil軟件通信,使開發(fā)者在只有一臺微機的條件下,就能實現(xiàn)對整個單片機應用系統(tǒng)的軟硬件仿真。</p><p><b>  第三章 總體設計</b></p><p><b>  3.1 設計思路</b></p><p>  本方案的設計思路是:首先,通

39、過濕度傳感器采集數(shù)據(jù),然后通過單片機進行處理,每個單片機都有一個不同的地址碼,代表不同的測量點,最后將濕度信息及其地址碼通過串口直接傳給計算機。</p><p>  根據(jù)以上思路,本課題的具體實現(xiàn)方法采用下面的方法實現(xiàn)。</p><p>  利用HS1101的濕度-電容特性,將其接在555振蕩電路中充當可變電容,產生不同的頻率信號。然后將采集到的頻率傳送到單片機中,將頻率信號的頻率值計算出

40、來,再將其頻率值與地址碼一起通過串口發(fā)送給電腦。然后通過計算機上的LabVIEW軟件對傳送過來的數(shù)據(jù)進行處理。</p><p>  根據(jù)以上實現(xiàn)方法,可以畫出直觀的系統(tǒng)構架圖,如圖3.1所示。</p><p><b>  圖3.1 系統(tǒng)構架</b></p><p><b>  3.2 總體設計</b></p>

41、<p>  根據(jù)系統(tǒng)總體構架圖可知,本系統(tǒng)的設計可以硬件設計部分和軟件設計部分。</p><p>  3.2.1 硬件設計部分</p><p><b>  1. 頻率采集模塊</b></p><p>  HS1101濕度傳感器是一種基于電容原理的濕度傳感器,相對濕度的變化和電容值呈現(xiàn)一定的變化關系。因此,我們利用濕度傳感器HS1

42、101的濕度-電容特性,將濕度傳感器HS1101作為電容連接在555振蕩電路中,通過振蕩電路,將采集到的濕度信號轉化成頻率信號,再將頻率信號傳輸?shù)絊ST89E516RD單片機中。</p><p>  這一模塊實現(xiàn)的功能是完成濕度到頻率的轉換,完成頻率數(shù)據(jù)的采集功能。</p><p>  2. 單片機測頻模塊</p><p>  555振蕩電路產生的頻率信號傳輸?shù)絾纹?/p>

43、機后,單片機啟動定時器與中斷控制,將接收到的頻率信號的頻率測量出來,然后加上本機的地址碼以及數(shù)據(jù)包頭,形成一個數(shù)據(jù)包。然后,以兩秒每次的頻率通過串口將數(shù)據(jù)包傳輸?shù)接嬎銠C上。</p><p>  這一模塊實現(xiàn)的功能是測量555振蕩電路產生的頻率信號的頻率值,然后再加上單片機識別信息等發(fā)送給計算機。</p><p>  3.2.2 軟件設計部分</p><p>  本

44、系統(tǒng)的設計用到了單片機,而單片機開發(fā)中除必要的硬件外,還必須要有軟件的支撐。所以,本系統(tǒng)的軟件設計部分也是十分有必要的。</p><p>  通觀本系統(tǒng),只有單片機需要程序的支持,其余都是利用器件的物理特性。所以,本系統(tǒng)的軟件設計,就是對單片機測頻并輸出部分的設計。</p><p>  要實現(xiàn)此功能我們要用到三個定時器:T0對頻率信號進行計數(shù),T1對計數(shù)時間進行定時,T2負責對數(shù)據(jù)輸出的波

45、特率進行設置,使其發(fā)送與端口的接收同步。三個定時其互相配合,共同完成測頻并輸出數(shù)據(jù)的功能。</p><p>  此部分的時序圖和邏輯結構圖分別如圖3.2和圖3.3所示。</p><p>  圖3.2 時序結構</p><p>  圖3.3 邏輯結構</p><p><b>  第四章 詳細設計</b></p&

46、gt;<p>  遠程糧倉濕度監(jiān)測系統(tǒng)(下位機部分)的詳細設計可以分為系統(tǒng)硬件設計部分和軟件設計部分。</p><p><b>  4.1 硬件設計</b></p><p>  4.1.1 頻率采集模塊</p><p>  HS1101測量濕度采用將HS1101置于555振蕩電路中,相當于一個可變電容器C。由此,將電容值的變化

47、轉換成電壓值不斷變化的頻率信號,可以直接被微處理器采集。</p><p>  555定時器模塊的電路設圖如圖2.2所示。</p><p>  555芯片與其電阻R1,R2、HS1101相接,構成對HS1101(等效電容)的充電回路。7端通過芯片內部的晶體管對地短路實現(xiàn)對HS1101的放電回路,并將引腳2,6端相連引入到片內比較器,構成一個多諧波振蕩器。</p><p&g

48、t;  HS1101作為電容變量接在555定時器的TRIG與THRES兩引腳上,引腳7用作電阻R1的短路。等量電容HS1101通過R1與R2充電到門限電壓(約0.67Vcc,時間記為Thigh),通過R2放電到觸發(fā)電平(約0.33Vcc,時間記為Tlow),然后R1通過引腳7短路到地。傳感器由不同的電阻R1與R2充放電,電阻R4是做內部溫度補償,目的是為了引入溫度效應,使它與HS1101的溫度效應相匹配。R4必須象所有的R.C時鐘電阻的

49、要求一樣,1%的精度,最大的溫度效應應該小于100ppm。由于不同型號的555的內部溫度補償有所不同,R4的值必須與特定的芯片相匹配。</p><p>  其工作循環(huán)可以描述如下:</p><p>  Thigh=C *(R1+R2)*ln2</p><p>  Tlow=C *R2*ln2</p><p>  F=1/(Thigh+Tlow

50、)=1/(C@%RH*(R1+2*R2)*ln2)</p><p>  由此可以看出,空氣相對濕度與555芯片輸出頻率存在一定線性關系??梢酝ㄟ^微處理器采集555定時器電路的頻率,然后查表即可得出相對濕度值。</p><p>  4.1.2 單片機測頻模塊</p><p><b>  1. 時鐘電路</b></p><p&

51、gt;  SST89E516RD片內設有一個由反向放大器所構成的振蕩電路,XTAL1和XTAL2分別為振蕩電路的輸入端和輸出端。時鐘可以由內部方式產生或外部方式產生。此系統(tǒng)選用內部時鐘電路方式。此方式,在XTAL1和XTAL2引腳上外接定時元件,內部振蕩電路就產生自激振蕩。定時元件經常采用石英晶體和電容組成的并聯(lián)諧振電路。晶體可以在1.2MHZ~12MHZ之間選擇,電容值在50PF~30PF之間選擇,電容的大小可以起頻率微調的作用[10

52、],其電路圖如圖4.1所示:</p><p>  圖4.1 時鐘振蕩電路</p><p><b>  2. 復位電路</b></p><p>  單片機的復位電路原理是在RESET輸入端出現(xiàn)高電平來實現(xiàn)復位和初始化。</p><p>  本復位電路如圖4.2所示。加電瞬間,RST端的電平與VCC相同,隨著RC電路充電電

53、流的減小,RST端的電位逐漸下降。只要RST端保持兩個機器周期的高電平,單片機就能有效復位。在單片機啟動后,RST處于低電平所以系統(tǒng)正常工作。當按鍵按下的時候,開關導通,這個時候電容兩端形成了一個回路,電容被短路,電容開始釋放之前充的電量。隨著時間的推移,電容的電壓在從5V釋放到變?yōu)榱?.5V,甚至更小,RST引腳又接收到高電平。單片機系統(tǒng)自動復位。</p><p>  圖4.2 系統(tǒng)復位電路</p>

54、;<p><b>  3. 單片機地址碼</b></p><p>  P1口是一個帶有內部上拉電阻的8位準雙向口,做通用的I/O口使用。本系統(tǒng)的單片機地址碼設計就是應用P1口作為輸入線使用的情況,單片機P1口置1后,再將其八個口接8位撥碼開關,再將其接地。從而控制P1口各位的輸入電平。單片機讀入P1口正確的數(shù)據(jù)信息后,再將其作為地址碼發(fā)送出去。如圖4.3所示。</p>

55、;<p>  圖4.3 地址碼設計圖</p><p>  根據(jù)硬件系統(tǒng)的各個模塊的設計,我們最終可以完成了整個系統(tǒng)硬件的總體設計。本設計的電器原理圖詳見附錄一。</p><p><b>  4.2 軟件設計</b></p><p>  對于單片機系統(tǒng),硬件是它的骨骼,那么軟件就是它的核心靈魂。由此可見,系統(tǒng)的軟件設計部分是本課

56、題最重要的步驟之一。</p><p>  4.2.1 主體設計思想</p><p>  本系統(tǒng)要實現(xiàn)濕度的測量用到了一個轉化關系,即將不可直接測量的物理量轉化成可被電子設備識別的物理量。我們首先將濕度信號轉化成頻率信號,然后將頻率信號測頻,再加上單片機地址碼以數(shù)據(jù)包的形式發(fā)送給電腦,進而進行直觀的顯示。</p><p>  系統(tǒng)主體設計思想框圖如圖4.4所示:&l

57、t;/p><p>  圖4.4 系統(tǒng)主體設計思想</p><p>  4.2.2 單片機測頻模塊軟件設計</p><p>  由系統(tǒng)主體設計思想框圖可以看出,本系統(tǒng)下位機部分的軟件編程設計,就是對單片機測頻模塊的軟件編程設計。本模塊的實現(xiàn),可以分解成幾個分功能模塊設計:定時器設計、計數(shù)器設計、串口波特率設計以及單片機地址碼設計。</p><p&g

58、t;  由此可知,我們要用到T0、T1、T2三個定時器、P1口以及串口。我們可以把T0最為計數(shù)器模塊,頻率信號由T0口輸入:T1作為定時器模塊:T2作為波特率發(fā)生器模塊,控制并同步串口之間的通信:P1口作為地址碼的輸入端,識別地址碼;串口發(fā)送數(shù)據(jù)包。</p><p>  要實現(xiàn)以上功能,我們首先做出系統(tǒng)的主函數(shù)的程序流程圖,如圖4.5所示。</p><p>  圖4.5 主函數(shù)流程圖&l

59、t;/p><p>  接著,我們就要進行各功能模塊的詳細設計。以下只是給出了實現(xiàn)各模塊功能的詳細設計方法及其流程圖,具體的程序代碼詳見附錄二。</p><p>  首先,T0、T1功能的實現(xiàn)需要由工作方式寄存器TMOD來控制。</p><p>  工作方式寄存器TMOD用于設置定時/計數(shù)器的工作方式,低四位用于T0,高四位用于T1。其格式如圖4.6所示。</p&g

60、t;<p>  圖4.6 TMOD寄存器</p><p>  所以我們可以設定設定定時器T1為8位自動重裝計數(shù)器,用于門控定時;定時器T0為16位計數(shù)器,P3.4(T0口)用于對外部時鐘計數(shù)。代碼如下:</p><p>  TMOD=0x25;</p><p>  設定完成后就開始執(zhí)行定時器的中斷函數(shù)了。</p><p>  

61、T0、T1的中斷函數(shù)流程圖如圖4.7、圖4.8所示。</p><p>  圖4.7 T0中斷函數(shù)         圖4.8 T1中斷函數(shù)</p><p>  其次,T2功能的實現(xiàn)由T2CON緩存器控制。 </p><p>  T2是一個16 位定時/計數(shù)器。它既可當定時器使用,也可作為外部事件計數(shù)器使用,其工作方式由特殊功能寄存器T2CON的C/T2位選擇。如圖

62、4.9所示。</p><p>  圖4.9 T2CON緩存器</p><p>  定時器2 有三種工作方式:捕獲方式,自動重裝載(向上或向下計數(shù))方式和波特率發(fā)生器方式,工作方式由T2CON 的控制位來選擇。如表4.1所示。</p><p>  表4.1 T2CON 的控制位</p><p>  T2被規(guī)劃為波特率發(fā)生器,由設定T2CON

63、緩存器的位TCLK與RCLK,當TCLK=1傳輸速度由TIMER2所控制,若RCLK=1接收速率由TMER2所控制。注意其發(fā)送或接收的鮑率是可以不同的,如果TCLK=1,RCLK=0,傳輸速度由TIMER2控制,接收速率由TIMER1控制。</p><p>  波特率=振蕩頻率/(32*(65536.(RCP2H,RCP2L))),式中RCAP2H,RCAP2L是RCAP2H和RCAP2L中的16位無符號數(shù)。&l

64、t;/p><p>  所以我們可以設定T2作波特率發(fā)生器,波特率19.2kbps。設定完成后開始執(zhí)行T2定時器的中斷函數(shù)。代碼如下:</p><p>  T2CON=0x30; RCAP2H=0xff; RCAP2L=0xee; </p><p>  T2的中斷函數(shù)流程圖如圖4.10所示。</p><p>  圖4.10 T2中斷函

65、數(shù)</p><p>  然后,P1口是一個帶有內部上拉電阻的8位準雙向口,做通用的I/O口使用。P1口作為輸入線使用的情況,單片機P1口置1。由于單片機默認的就是P1口為高電平,所以不用特意置1,只要把各位的電平信息發(fā)送給SBUF就可以了。</p><p>  所以我們可以設定將P1口的信息送給SBUF的第二個字節(jié),等待SBUF輸出就可以了。代碼如下:</p><p&g

66、t;  *(unsigned char *)(SendData+1)=P1;</p><p>  最后,我們設定串口的工作方式由控制寄存器SCON設定。</p><p>  串行接口控制寄存器SCON是一個特殊功能寄存器,用以設定串行口的工作方式、接收/發(fā)送控制以及設置狀態(tài)標志,如圖4.11所示。</p><p>  圖4.11 SCON寄存器</p>

67、<p>  SM0和SM1為工作方式選擇位,可選擇四種工作方式。由于我們要發(fā)送的數(shù)據(jù)包為:一個包頭(需要一個字節(jié)),單片機地址碼(需要一個字節(jié))和頻率值(需要兩個字節(jié)),所以一共需要四個字節(jié)。由此我們選擇方式1。</p><p>  所以我們可以設定串口工作方式為方式1。設定完成后開始執(zhí)行串口的中斷函數(shù)。代碼如下:</p><p>  SCON=0x40;</p>

68、<p>  T1的中斷函數(shù)如圖4.12所示。</p><p>  圖4.12 串口中斷函數(shù)</p><p>  第五章 仿真與實現(xiàn)</p><p>  設計完成后,緊接著要進行系統(tǒng)的軟件模擬仿真,然后就是硬件的制作與調試,直至系統(tǒng)最終實現(xiàn)。 </p><p><b>  5.1 模擬仿真</b>&

69、lt;/p><p>  軟件的模擬仿真,就是用軟件模擬并實現(xiàn)整個下位機系統(tǒng)。首先,我們要用Keil實現(xiàn)下位機系統(tǒng)的軟件調試。然后,我們使用Proteus實現(xiàn)整個硬件電路的仿真。最后,我們使用這兩個軟件聯(lián)合通信,搭建成一個完整的模擬平臺。它們之間互相通信的流程示意圖如圖5.1所示。</p><p>  圖5.1 軟件間通信</p><p>  5.1.1 Keil的調

70、試</p><p>  我們首先打開Keil,新建一個工程文件。文件建好后,選擇芯片,再利用“新建文件”圖標新建一個文檔,把代碼寫好,保存為“濕度.c”,再把此文件加載到“Source Group 1”里。緊接著,我們生成目標文件,如果有錯誤會出現(xiàn)界面如圖5.2所示。</p><p>  圖5.2 錯誤提示界面</p><p>  表明,在“TL1”附近存在錯誤,

71、目標文件生成失敗。我們就可以根據(jù)提示在TL1附近找到錯誤并修改。完成后再利用“建立目標文件”按鈕生成目標文件,如果目標文件生成成功,且無錯誤,就會出現(xiàn)界面如圖5.3所示</p><p>  圖5.3 目標文件生成成功</p><p>  目標文件生成成功以后,我們可以利用“調試”按鈕來進行調試。調試成功后,我們可以通過設置斷點來試試查看各部分的運行結果,這樣可以找到程序錯誤的具體位置。&

72、lt;/p><p>  設置斷點的方法是在要設置斷點的左邊雙擊,點擊運行按鈕,程序就會執(zhí)行到斷點的地方停止,此時我們只要在“watches”窗口里輸入要查看結果的地址,就可以查看結果了,如圖5.4所示。</p><p>  圖5.4 斷點執(zhí)行結果</p><p>  此部分運行結果無誤后我們在設置斷點的地方點擊三下,就可以取消斷點了。以此方法我們可以實現(xiàn)每一部分的調試

73、。程序調試完成后,我們就要進行系統(tǒng)硬件的模擬仿真了。</p><p>  5.1.2 Proteus 的電路模擬</p><p>  打開Proteus 軟件,我們可以通過“P”按鈕來實現(xiàn)庫元件的選擇。選好原件后,點擊確定,庫元件就加載好了。我們選定剛才所選原件然后在繪圖區(qū)域單機就可以了。</p><p>  當然,左側的工具欄還有很多模式和儀器供我們選擇。<

74、;/p><p>  當我們原件都選好并按照電路設計圖接好后,電路圖的設計就完成了。</p><p>  電路圖完成后,我們就可以。點擊“運行”按鈕進行模擬仿真了。如果設計圖有錯誤,就會出現(xiàn)畫面如圖5.5所示。</p><p>  圖5.5 錯誤提示界面</p><p>  我們就可以按著他的提示,到電路圖中去找錯誤,然后進行修改。直至成功。成功

75、后,會出現(xiàn)界面如圖5.6所示。</p><p>  圖5.6 仿真成功</p><p>  5.1.3 Keil與Proteus的聯(lián)合仿真</p><p>  Keil與Proteus單獨調試與仿真都成功以后,下一步,我們就要進行兩者的聯(lián)合仿真。</p><p>  首先,打開Keil軟件,對工程文件的輸出進行設置。我們需要勾選“Crea

76、te HEX Fill”選項,目的是,當我們生成的目標文件中含有單片機的可執(zhí)行文件。以便電路仿真時,單片機能夠執(zhí)行其設計的功能。</p><p>  其次,打開Proteus軟件的設計圖,雙擊單片機,把Keil生成的可執(zhí)行文件加載進去。進行完以上步驟后,我們就可以開始模擬仿真了。點擊運行我們就看到了模擬結果。頻率采集模塊產生的頻率信號波形圖如圖5.7所示。</p><p><b>

77、;  圖5.7 波形圖</b></p><p>  撥碼開關的位置如圖5.8所示,可以看出此時的P1口輸入用十六進制表示為15。</p><p><b>  圖5.8 地址碼</b></p><p>  虛擬串口收到的數(shù)據(jù)如圖5.9所示。</p><p>  圖5.9 模擬結果</p>&

78、lt;p>  可以看到接收的數(shù)據(jù)與預期基本一致,表明此次的模擬仿真是成功的。</p><p>  5.1.4 串口的調試</p><p>  Keil與Proteus聯(lián)合模擬仿真成功了,并不能代表我們的系統(tǒng)就完全正確,我們還要查看串口是否真正接收到數(shù)據(jù),但是在模擬的情況下,物理串口并不能接收到數(shù)據(jù)。所以,我們需要用虛擬串口來測試。要創(chuàng)建虛擬串口,就要用到一款叫做VSPD的軟件。&l

79、t;/p><p>  首先,我們用VSPD創(chuàng)建兩個虛擬串口我沒可以點擊“添加端口”來添加虛擬串口。創(chuàng)建完成后,就可以看到虛擬的串口COM3和COM4了,如圖5.10所示:</p><p>  圖5.10 虛擬串口創(chuàng)建成功</p><p>  然后,打開設計好的模擬電路圖,雙擊串口原件,出現(xiàn)配置窗口,物理串口項我們選擇COM3口,波特率選擇19200(與程序中設定的波特

80、率一致)。</p><p>  最后,我們打開串口調試助手,將的串口設為COM4,波特率和Proteus的一致。完成后,運行Keil與Proteus的平臺,觀察接收區(qū)的數(shù)據(jù),如圖5.11所示。</p><p>  圖5.11 接收的數(shù)據(jù)</p><p>  可以看到,此刻串口已經接收到Proteus發(fā)來的數(shù)據(jù),接收到的數(shù)據(jù)與模擬調試的結果基本一致。</p&g

81、t;<p>  到此刻,我們已經成功的完成了所有的軟件模擬與仿真。而且,結果表明,我們對于本方案的設計理論上完全正確。接著我們就要進行系統(tǒng)的硬件實現(xiàn)了。</p><p><b>  5.2 硬件實現(xiàn)</b></p><p>  首先,我們仔細對照器件管腳圖和電器原理圖對硬件布局進行細致的規(guī)劃。然后我們首先焊接好濕度采集部分,也即555電路部分。焊接完成

82、后,首先進行電路連通性檢查,確定無短路和斷路的地方。然后接通電源,將其頻率輸出端接在示波器上觀察波形。一開始可能有沒有信號現(xiàn)象,一般是電路連接錯誤或者接觸不良所致,只要我們耐心檢查,一定能成功的。示波器的波形如圖5.12所示,如果我們對著HS1101哈氣或者吹干風,就會看到其頻率值也會相應的變化。至此,我們的濕度采集部分電路是成功的。</p><p>  圖5.12 波形圖</p><p&g

83、t;  然后,我們就要焊接單片機測量頻率的部分。同樣的,完成后進行電路連通性檢查。完畢后,將其與Keil聯(lián)機,我們再在發(fā)送中斷打開的地方設置斷點,然后查看”SendData”里的數(shù)據(jù),查看后兩個字節(jié)是否接收到數(shù)據(jù)。要是沒有的話,就要檢查程序或者電路接觸不良的問題。成功后接收到數(shù)據(jù)的界面如圖5.13所示,可以看到單片機接收到的頻率和示波器上的數(shù)據(jù)基本一致(少許誤差是由于示波器的誤差)。</p><p>  圖5.1

84、3 接收到數(shù)據(jù)</p><p>  以上完成后,我們要進行串口調試部分。將電路板與Keil聯(lián)機調試完成后,將程序下載到單片機中。為了防止串口被占用,我們先關閉Keil,然后打開串口調試工具,將其串口及其波特率與數(shù)據(jù)發(fā)送波特率設置一致,然后觀察接收區(qū)。接收區(qū)有數(shù)據(jù)后,仔細觀察其就收數(shù)據(jù)包是否與程序設計一致,如果數(shù)據(jù)不正確就要查看程序的設計是否有誤,確定正確后再試,直至成功。成功后,可以看到接收到的數(shù)據(jù)偶爾有少許變

85、動,這是由于環(huán)境和器件的影響所導致,只要其變動在一定的范圍內,均可認為正常的,成功后如圖5.14所示。</p><p>  圖5.14 串口接收數(shù)據(jù)</p><p>  接下來,我們把正確的程序燒錄到單片機中,這樣只要單片機加電,系統(tǒng)就能自動運行。完成后,將下位機系統(tǒng)與上位機系統(tǒng)聯(lián)機運行,成功后結果如圖5.15所示。</p><p>  圖5.15 聯(lián)合運行&l

86、t;/p><p>  至此,系統(tǒng)的仿真與實現(xiàn)全部完成。</p><p>  第六章 系統(tǒng)設計總結</p><p>  本系統(tǒng)主要是針對糧倉的濕度監(jiān)測而設計的。本系統(tǒng)具有電路簡單、可編程、可實時多點監(jiān)控等優(yōu)點。因此,本系統(tǒng)可在工農業(yè)生產、氣象、環(huán)保、國防、科研、航天等部門大力推廣應用。此外,此系統(tǒng)還可以廣泛應用于需要實時精確監(jiān)控,條件惡劣、人員不便進入的場合。所以說,本

87、系統(tǒng)的應用前景非常廣泛。</p><p>  但是本系統(tǒng)設計也存在一些不足。</p><p>  首先,因時間倉促,導致學習軟件不夠深入,系統(tǒng)在設計過程中,難免存在疏漏。在系統(tǒng)設計的不夠縝密,程序寫的不夠嚴密。以后應該在實踐中加強學習。</p><p>  其次,本系統(tǒng)只是針對恒溫條件下濕度的監(jiān)測,而現(xiàn)實生活中,溫度是有變化的。隨著溫度的變化,濕度的測量就會有偏差。

88、后續(xù)的設計中可以加入溫度的監(jiān)測,這樣的出的數(shù)據(jù)更精確。</p><p>  再次,本監(jiān)測系統(tǒng)的所設計的硬件電路過于簡單,只是測量了濕度,但是對于一定的正常的或者危險的濕度范圍沒有做很好的界定,及其報警系統(tǒng)。在以后的設計中,我們還可以加上報警系統(tǒng)。</p><p>  最后,本系統(tǒng)只是監(jiān)測系統(tǒng),不夠智能。在后續(xù)的設計中,我們可以加上報警處理功能,比如,除濕功能,加濕功能,溫度補償功能等。&l

89、t;/p><p>  由于時間倉促以及本人水平有限,本系統(tǒng)的設計中,難免存在一定的錯誤和疏漏,懇請各位專家、老師不吝指正。</p><p><b>  參考文獻</b></p><p>  [1]唐美斌;孫傳友;電子與電腦[J],2007年Z1期:131~131</p><p>  [2]李英干,范金鵬編著. 濕度測量[M]

90、. 北京市:氣象出版社, 1990.04:72~72</p><p>  [3]陳艾主編. 敏感材料與傳感器[M]. 北京市:化學工業(yè)出版社, 2004.07:129~130</p><p>  [4]黃繼昌,張海貴等編著. 檢測專用集成電路及其應用[M]. 沺逑瘡倏狺祈, 2006.07:32~32 </p><p>  [5]HS1101說明書[Z],apoll

91、o公司.</p><p>  [6]全安編著. 電工電子技術及應用[M]. 北京市:機械工業(yè)出版社, 2008.09:216~217</p><p>  [7]SST8951/52系列中文器件資料[Z].深圳市科賽科技開發(fā)有限公司.</p><p>  [8]唐晨光等編著. 單片機原理與應用及上機指導[M]. 北京市:清華大學出版社, 2010:156~156<

92、;/p><p>  [9]百度百科,Proteus[OL].http://baike.baidu.com/view/40936.htm</p><p>  [10]曾屹主編. 單片機原理與應用[M]. 長沙市:中南大學出版社, 2009:35~36 </p><p>  附錄一 下位機電路圖</p><p>  附錄二 下位機系統(tǒng)源碼<

93、/p><p>  #include <SST89x5x4.H></p><p>  unsigned int Timer1Counter=0; //定義定時中斷計數(shù)變量</p><p>  unsigned char SendData[4]={'R','H',0,0};</p>&

94、lt;p>  unsigned char n=0;</p><p>  //********設定三個定時器的工作方式及其初始化********</p><p>  void Init_TMR(void){</p><p>  TMOD=0x25; //設定定時器T1為8位自動重裝計數(shù)器,用于門控定時</p><p>  //定時器T0為

95、16位計數(shù)器,P3.4(T0口)用于對外部時鐘計數(shù)。</p><p>  TH1=0; //裝載計數(shù)值256到定時器1</p><p>  TL1=0; </p><p>  TH0=0; //定時器0計數(shù)器初始化為0</p><p><b>  TL0=0;</b></p><p&

96、gt;  PT1=1; //為保障定時精度,定時器1的中斷優(yōu)先級最高</p><p><b>  ET1=1;</b></p><p>  TR1=1; //啟動定時器1</p><p>  T2CON=0x30; //用定時器2作波特率發(fā)生器</p><p>  TH2=0xff; //波

97、特率19.2kbps</p><p><b>  TL2=0xee;</b></p><p>  RCAP2H=0xff;</p><p>  RCAP2L=0xee;</p><p><b>  TR2=1;</b></p><p><b>  }</b&g

98、t;</p><p>  //********設定串口工作方式*********</p><p>  void Init_SCI(void) //初始化串行接口SCI</p><p><b>  {</b></p><p>  SCON=0x40;//初始化串行口模式1</p><p&

99、gt;<b>  }</b></p><p>  //********串行中斷函數(shù)********</p><p>  void SCI_Int(void) interrupt 4 </p><p><b>  { </b></p><p><b>  TI=0;</b&g

100、t;</p><p>  SBUF=SendData[n++];</p><p>  if (n>=4) {n=0;ES=0;}</p><p><b>  }</b></p><p>  //********定時器T1中斷函數(shù)********</p><p>  void TMR1_int

101、(void) interrupt 3{</p><p>  Timer1Counter++; //定時中斷計數(shù)</p><p>  if (Timer1Counter>=3600){//定時中斷計數(shù)值到達</p><p>  Timer1Counter=0; //清除定時中斷計數(shù)值</p><p>  TR0^=

102、1; </p><p>  if (!TR0){</p><p>  *(unsigned char *)(SendData+1)=~P1;</p><p>  *(unsigned char *)(SendData+2)=TH0;</p><p>  *(unsigned char *)(SendData+3)=TL0;</p&

103、gt;<p>  TH0=0; </p><p><b>  TL0=0;</b></p><p><b>  ES=1;</b></p><p><b>  TI=1;</b></p><p><b>  } </b&

104、gt;</p><p><b>  } </b></p><p><b>  }</b></p><p>  //********主函數(shù)********</p><p>  voidmain(void) </p><p><b>  {</

105、b></p><p>  Init_TMR();//初始化定時器</p><p>  Init_SCI();//初始化串行口</p><p>  EA=1; //開總中斷</p><p>  while(1); </p><p><b>  }</b

106、></p><p><b>  致謝</b></p><p>  首先,非常感謝我的指導老師余軍老師。本文從開題、寫作直至最終定稿,余軍老師都給予了諸多建設性建議,并在百忙之中數(shù)閱其稿。余老師嚴謹?shù)闹螌W態(tài)度、科學的治學方法、淵博的學識、誨人不倦的精神和平易近人的工作作風令我景仰和敬慕,并將使我終生受益。</p><p>  其次,感謝母校

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論