找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6299|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

簡單的課程設(shè)計報告-蔬菜大棚的智能控制系統(tǒng)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:114642 發(fā)表于 2016-4-18 00:26 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
蔬菜大棚的智能控制系統(tǒng)
一、       要求和意義
1、 要求
蔬菜大棚的智能控制系統(tǒng)的設(shè)計,使用51單片機(jī)和無線通信模塊完成以下基本功能:
使用溫度傳感器測量大棚溫度;
使用兩位數(shù)碼管進(jìn)行動態(tài)顯示;
超過35度自動打開風(fēng)機(jī)(用led燈模擬),低于28度關(guān)閉風(fēng)機(jī)。
擴(kuò)展功能:
利用光敏傳感器檢測,實現(xiàn)大棚外路燈的自動控制,白天關(guān)燈,晚上亮燈(節(jié)點模塊);
紅外遙控手動控制風(fēng)機(jī)和路燈(上位機(jī)模塊)。
可選用的器件與元件:(具體實物要根據(jù)學(xué)校給出的作為標(biāo)準(zhǔn))
STC89C51單片機(jī)、nRF24L01模塊各兩塊,18B20、光敏電阻各一個,共陽兩位一體數(shù)碼管一塊,電阻、電容、三極管、LED燈、按鍵任選。
學(xué)生2人一組,獨立完成電路分析和設(shè)計,并完成系統(tǒng)調(diào)整和測試。每個人必須能完成不同的功能,最后組成一個總系統(tǒng),并且做成電路實物系統(tǒng)。

2、 意義
根據(jù)需要選學(xué)參考書,查閱手冊,圖表和文獻(xiàn)資料的自學(xué)能力,通過獨立思考﹑深入鉆研有關(guān)問題,學(xué)會自己分析解決問題的方法。
利用所學(xué)過的最基本的MSC51單片機(jī)和無線電通信知識,通過設(shè)計計算﹑元件選取﹑電路板制作調(diào)試等環(huán)節(jié),初步掌握工程設(shè)計的技能。
掌握常用儀表的正確使用方法,學(xué)會簡單電路的實驗調(diào)試和整機(jī)指標(biāo)測試方法,使學(xué)生鞏固和加深對數(shù)字邏輯電路的理論知識,鍛煉學(xué)生的動手能力。
了解與課程有關(guān)的電子電路以及元器件工程技術(shù)規(guī)范,能按課程設(shè)計任務(wù)書的技術(shù)要求,編寫設(shè)計說明,能正確反映設(shè)計和實驗成果,能正確繪制電路圖。
培養(yǎng)嚴(yán)謹(jǐn)?shù)墓ぷ髯黠L(fēng)和科學(xué)態(tài)度,能夠逐步建立正確的生產(chǎn)觀點,經(jīng)濟(jì)觀點和全局觀點。
二、硬件電路設(shè)計
   1、仿電路設(shè)計
根據(jù)課程設(shè)計的要求,初步?jīng)Q定蔬菜大棚的智能系統(tǒng)框圖,如圖一:


根據(jù)圖一的大概框架,使用Proteus仿真軟件進(jìn)行系統(tǒng)的仿真,驗證電路的可靠性和可行性。
仿真電路如圖二所示:


仿真圖說明:
根據(jù)參考器件仿真電路MCU選用STC89C52單片機(jī),如上圖所示,查閱資料[1]可以知道該單片機(jī)的最小系統(tǒng),包括:時鐘電路(這次仿真電路使用11.0592M晶振)、復(fù)位電路等,其中P0八個I/O口要使用10k上拉電阻才能驅(qū)動數(shù)碼管的段位。外部電路有:數(shù)碼管電路(另一組員負(fù)責(zé))、溫度傳感器電路(本人負(fù)責(zé))、抽風(fēng)機(jī)電路(用LED燈代替)。所有程序?qū)⒃谙旅嬲f明。
指導(dǎo)老師的檢驗:
   我們這組的仿真電路已經(jīng)成功了,但是這是理想狀態(tài)下的仿真,與實際電路還有一些出入,本人負(fù)責(zé)的電路中第一個問題是溫度傳感器,在實際電路中需要使用上拉電阻,電阻阻值范圍是4.7k—20K;第二個問題是抽風(fēng)機(jī)電路,雖然是一個LED燈作為代替,但是在實際電路中要使用一個限流電阻,根據(jù)這兩個問題在實際電路設(shè)計的時候要加上。
2器件與元件補(bǔ)充說明
   根據(jù)設(shè)計需要我們將使用的是STC89C52單片機(jī),但是在學(xué)校領(lǐng)取的是STC12C5A60S2單片機(jī)。查詢資料STC官方資料[2],可以比較出兩種單片機(jī)的不同點和相同點,不同點:復(fù)位電路更加簡單,P0將不用上拉電阻,并且P1有AD轉(zhuǎn)換功能,這樣可以使用在光敏傳感器檢測中擴(kuò)展功能色設(shè)計。相同點是電源、地、Rx、Tx引腳位置相同,這樣可以使用51單片機(jī)的開發(fā)板進(jìn)行程序的焼寫。
3、電路設(shè)計
1)、STC12C5A60S2單片機(jī)最小系統(tǒng)如下圖所示:



說明:STC12C5A60S2單片機(jī)的引腳封裝與STC89C52單片機(jī)的引腳封裝一樣,所以使用STC89C52單片機(jī)原理圖。所以上圖部分引腳的標(biāo)注不正確,但是不影響其封裝的使用,兩種單片機(jī)都是使用一樣的封裝。復(fù)位電路的設(shè)計是根據(jù)STC12C5A60S2單片機(jī)技術(shù)文檔[2]所描述的來設(shè)計,使用一個10uF的電解電容和1k的電阻組成;晶振電路使用兩個33uf的瓷片電容和一個11.0592M頻率的晶振組成。

2)、溫度檢測模塊,如下圖所示:


說明:溫度傳感器使用的是DS18b20,其封裝是TO-92封裝,數(shù)據(jù)傳輸引腳使用一個4.7K的電阻作為上拉電阻,并且跟單片機(jī)的P3^7接口相連接。DS18B20的數(shù)字溫度計提供9至12位(可編程設(shè)備溫度讀數(shù))。由于DS18B20是一條口線通信,所以與DS18B20只有一個一條口線連接。為讀寫以及溫度轉(zhuǎn)換可以從數(shù)據(jù)線本身獲得能量,不需要外接電源。因為每一個DS18B20的包含一個獨特的序號,多個ds18b20s可以同時存在于一條總線。

3)、抽風(fēng)機(jī)模塊和其他模塊,如下圖所示:


說明:在抽風(fēng)機(jī)模塊中,使用一個LED燈代替抽風(fēng)機(jī),這樣就要使用一個470歐電阻個LED燈串聯(lián)使用,并且跟單片機(jī)的P3^5引腳連接如上圖所示。燈與光敏傳感器組成的電路時擴(kuò)展部分設(shè)計,具體電路如上圖所示。

4)、電源模塊,如下圖所示:
說明:電源模塊在系統(tǒng)設(shè)計中是一個很重要的部分,在這個模塊中,因為外接電源是5v電壓,所以在本系統(tǒng)設(shè)計中主要是加入濾波跟開關(guān)部分,濾波電路由一個104瓷片電容跟一個10uf電解電容組成。



5)、調(diào)試電路模塊,如下圖所示:


說明:系統(tǒng)的調(diào)試是一個很重要的步驟,所以要加上調(diào)試接口,這樣就不用經(jīng)常拔插單片機(jī),方便以后的調(diào)試系統(tǒng)使用。本接口主要的部分是電源引腳和P3^0引腳、P3^1引腳,這四個引腳都是為了焼寫程序做準(zhǔn)備,其他引腳作為附加和固定作用。


二、       程序設(shè)計
1)、溫度傳感器子程序
說明:程序的設(shè)計使用KeiluVision4軟件,本人負(fù)責(zé)的是DS18b20溫度傳感器[3]對溫度的檢測和溫度的讀取部分。本人將關(guān)于溫度傳感器有關(guān)的子程序做成一個頭文件來使用,具體的程序流程,如下圖所示。在溫度讀取上,直接在頭文件里就做數(shù)據(jù)的處理,轉(zhuǎn)換成十進(jìn)制兩位數(shù),轉(zhuǎn)換語句如下:


a=ReadOneChar();
b=ReadOneChar();
temp=b;
temp<<=8;
temp=temp|a;//將讀取到的兩個八位二進(jìn)制數(shù)據(jù)合并
f_temp=temp*0.0625; //計算出溫度,帶小數(shù)點,16位分辨率是0.0625
temp=f_temp+0.5; //四舍五入,取整數(shù)如實際溫度是11.6°,將//顯示12°

上面的轉(zhuǎn)換過程能夠在仿真時正確使用。







2)、抽風(fēng)機(jī)子程序流程圖
說明:首先是對溫度的處理一次,然后使用if語句進(jìn)行對溫度的判斷,如果溫度大于35°就打開抽風(fēng)機(jī);如果溫度小于28°就關(guān)閉抽風(fēng)機(jī)。在這就有一個數(shù)據(jù)段是沒有處理的,就是溫度在28°到35°這一段,根據(jù)實際分析可以做出處理:當(dāng)溫度是有35°以上開始下降的,下降到35°不用關(guān)閉抽風(fēng)機(jī),一直下降到28°才關(guān)閉抽風(fēng)機(jī),這樣有利于對溫度的下降。反之當(dāng)溫度上升到35°才開始打開抽風(fēng)機(jī)。






3)、主程序流程圖
   說明:主程序是一個大循環(huán),使用的while語句處理,在主函數(shù)中,首先讀取溫度,然后是溫度的顯示,最后是抽風(fēng)機(jī)子函數(shù)的處理。





四、調(diào)試記錄
1、調(diào)試前的準(zhǔn)備
   在調(diào)試之前就是對硬件的處理,首先確保PCB電路板要設(shè)計正確,PCB板的制作要符合電磁兼容性(EMC)原則;然后是電子元件必須正確焊接;接著使用萬用表檢查電路是否短路,焊接是否合格,檢查是否有斷路、虛焊的情況;最后把程序下載到單片機(jī)中,并接到電路板中。
2、上電調(diào)試過程
   在接電源之前,要確保電源的正負(fù)極接正確,開關(guān)是否在正確的位置。根據(jù)實際情況我們是使用分模塊調(diào)試的方法進(jìn)行對電路的調(diào)試。首先是數(shù)碼管顯示的調(diào)試,這部分是另一位組員負(fù)責(zé),在這里不作詳細(xì)說明。
   在調(diào)試好數(shù)碼管,使之能夠正常顯示后,本人開始對溫濕度傳感器模塊進(jìn)行調(diào)試,下面是本人的詳細(xì)調(diào)試過程:
   本人將仿真使用過的程序把它焼寫進(jìn)單片機(jī),觀察數(shù)碼管時能夠正常顯示出當(dāng)前的溫度,發(fā)現(xiàn)數(shù)碼管不能正常顯示,顯示出兩個0。
   首先,檢查是否是硬件的問題,因為這個模塊使用的元件比較少,只有一個上拉電阻和一個傳感器,首先檢查上拉電阻是否使用正確,這個電阻的阻值是4.7k,正常使用時可以的;然后檢查溫度傳感器的引腳是否接正確,實際上沒問題;最后檢查溫度傳感器是否不能工作,在這個過程本人編寫了一個串口溫度檢測程序,在上位機(jī)上測試發(fā)現(xiàn)PC機(jī)能夠正常顯示出溫度,說明溫度傳感器沒有損壞,能夠正常工作;在這里排除硬件的問題。
   然后,檢查是否是單片機(jī)的問題,因為對于溫度處理,全部是在溫度傳感器這個頭文件中。程序是在STC12C5A60S2單片機(jī)中運(yùn)行的,而仿真時使用的單片機(jī)是STC89c52單片機(jī),也許兩者有一些不同的地方,查閱STC12C5A60S2單片機(jī)的技術(shù)文檔發(fā)現(xiàn),該單片機(jī)的運(yùn)行頻率比較高,在讀取溫度上可能不能正常讀取,所以要利用時鐘分頻控制寄存器進(jìn)行時鐘分頻,從而使單片機(jī)在較低頻率下工作,設(shè)置如下:

sfr CLK_DIV = 0x97; //定義時鐘分頻控制寄存器地址
CLK_DIV = 0x03;//(外部晶振時鐘或內(nèi)部RC振蕩時鐘)/8

再次,焼寫改寫過的程序,依然不能正常顯示溫度。
   接著,在排除單片機(jī)的問題之后,開始對程序的檢查是否正確。主要是在頭文件中找問題,可能的問題就是在溫度的轉(zhuǎn)換過程中出現(xiàn)錯誤,仔細(xì)分析在處理溫度的程序,發(fā)現(xiàn)本人在主函數(shù)處理的溫度主要是整數(shù)部分,而小數(shù)點之后的數(shù)據(jù)是沒有讀取的,在這里本人將在頭文件的子程序中轉(zhuǎn)換和讀取四位數(shù)據(jù),包括兩位整數(shù)和兩位小數(shù),在主程序中只顯示整數(shù)部分。在a和b讀取溫度之后,就讓程序的處理如下:

   //傳感器返回值除16得實際溫度值
   //為了得到2位小數(shù)位,先乘100,再除16,考慮整型數(shù)據(jù)長度,
   //技巧處理后先乘25,再除4,除4用右移實現(xiàn)
    t =(b*256+a)*25;
   return( t >> 2  );

3)、最后再次焼寫改寫后的程序進(jìn)單片機(jī),就可以得到正常的溫度了,并且能夠正常工作。

4)、我們這組準(zhǔn)備做的擴(kuò)展模塊是光敏對電燈的控制,我們的計劃是使用該單片機(jī)的P1  IO口進(jìn)行八位的AD轉(zhuǎn)換,通過測量經(jīng)過光敏電阻的不同電壓來控制電燈的亮跟滅。由于在電路設(shè)計上的缺陷,不能正常測量出經(jīng)過光敏電阻的電壓,最后不能成功。因為在AD轉(zhuǎn)換引腳上的信號輸入,沒有加上濾波電容和一個分壓電阻,所以不能正常工作。這是我們感到遺憾的一個地方



。
調(diào)試時間
調(diào)試步驟
調(diào)試結(jié)果
分析結(jié)果
解決方法
結(jié)論
2014年3月25日
調(diào)試前硬件電路檢查
發(fā)現(xiàn)短路和斷路的布線
造成電路板不能正常工作
認(rèn)真檢查原理圖和用萬用表檢查電烙鐵電焊位置
在電焊的時候要注意電路走線是否正確,焊盤之間是否短路
2014年3月25日
數(shù)碼管模塊調(diào)試(另一組員負(fù)責(zé))




2014年3月25日
DS18b20模塊調(diào)試
不能正常顯示溫度,只顯示00
1、硬件電路問題

1、再次檢查硬件電路和上拉電阻是否使用正確
在模塊調(diào)試過程中,要一步步來調(diào)試排除問題,通過分析問題,找出最優(yōu)的方案來得出實驗的結(jié)果。
2、新單片機(jī)與仿真用的單片機(jī)有性能差別;
2、在程序中加上降低工作頻率的代碼
3、溫度傳感器損壞;
3、使用開發(fā)板測試溫度傳感器是否正常工作,可以正常使用
4、程序出現(xiàn)錯誤
4、修改DS18b20頭文件,讀取全部溫度位數(shù)
2014年3月25日
抽風(fēng)機(jī)模塊(LED燈代替)
不能正常亮
1、硬件電路問題;
1、用萬用表檢查硬件電路
在用萬用表檢查電路是發(fā)現(xiàn)有斷路的現(xiàn)象,最后檢查是焊盤出現(xiàn)虛焊的原因,解決后再次用程序測試,LED燈可以正常顯示
2、程序出問題
2、編寫測試程序


五、課程設(shè)計體會
      作為一名通信工程的大三學(xué)生,單片機(jī)課程設(shè)計是十分有意義的,而且是十分必要的。在已度過的大學(xué)時間里,我們大多數(shù)接觸的是專業(yè)課。我們在課堂上掌握的僅僅是專業(yè)課的理論知識,如何去鍛煉我們的實踐能力?如何把我們所學(xué)的專業(yè)基礎(chǔ)課理論知識運(yùn)用到實踐中去呢?類似的課程設(shè)計就為我們提供了良好的實踐平臺。
      在這次的單片機(jī)課程實際過程中,我們這組從開始到調(diào)試結(jié)束經(jīng)過了5個星期的時間,而且擴(kuò)展模塊沒有完成,雖然一開始就計劃好要做光敏電阻那一部分,最后還是未能完成,這是一個小小的遺憾。主要問題是在硬件設(shè)計時就沒有好好考慮擴(kuò)展部分電路問題,導(dǎo)致那一部分簡單電路不能正常工作。從這里可以看出考慮問題的水平,以及后續(xù)問題處理能力還有待提高。
      我們通過查閱大量有關(guān)資料,并在小組中互相討論,交流經(jīng)驗和自學(xué),若遇到實在搞不明白的問題就會及時請教同學(xué)和老師,使自己學(xué)到了不少知識,也經(jīng)歷了不少艱辛,但收獲同樣巨大。
通過這次課程設(shè)計發(fā)現(xiàn)了自身存在的不足之處,雖然感覺理論上已經(jīng)掌握,但在運(yùn)用到實踐的過程中仍有意想不到的困惑,經(jīng)過一番努力才得以解決。這也激發(fā)了今后努力學(xué)習(xí)的興趣,這將對我以后的學(xué)習(xí)產(chǎn)生積極的影響
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:510485 發(fā)表于 2019-5-8 10:17 | 只看該作者
參考,謝謝分享
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表