電源是系統(tǒng)穩(wěn)定工作的前提,由于任何非電量的控制都要轉(zhuǎn)換為電量進行測量與控制,所以我們首先對電源進行設(shè)計。在本系統(tǒng)中,需要兩種不同的電壓,主要分為單片機供電電壓(5V)與風速風向模塊電壓(12V),主要有以下兩種方案:
方案一,采用兩種電源供電。單片機及外圍電路采用5V供電,外部模塊采用12V供電,將兩種電壓完全隔離開,獨立工作。此種方法的好處是設(shè)計簡單,但是需要增加道閘負載。
方案二,采用單一電源供電。首先使用12V電壓對外部模塊供電,再有12V電壓源引入轉(zhuǎn)壓芯片進行5V轉(zhuǎn)壓,給單片機及外圍電路供電。此種方法設(shè)計較為復(fù)雜,但是可以減少系統(tǒng)的負載。
考慮到本次設(shè)計的主要目的為提高能力,增強自己的電路制作能力,也考慮到系統(tǒng)的靈敏性,我們選擇了第二種方案,對系統(tǒng)進行單一供電。并且由于本次設(shè)計可能會進行反復(fù)地測試,我們決定采購可充電電池。
52單片機是51系列單片機的一種。該款單片機芯片具有較低的工作電壓,而性能通常比較高,單片機內(nèi)部包含8k bytes的可以重復(fù)使用的Flash(即只讀存儲器)以及256 比特的隨機存儲器(RAM)。該MCU基于先進的存儲技術(shù)和強大的計算能力。對上一代單片機進行了升級。但對傳統(tǒng)的51單片機的指令也能夠兼容。該芯片內(nèi)置了通用的8位cpu以及Flash存儲單元,因此該單片機的強大的運算能力和控制能力可以應(yīng)用在廣泛的場合中。
該單片機有40個引腳。32個外部雙向輸入/輸出(I/O)端口。同時內(nèi)含2個外中斷口。3個16位的可以通過程序編程的定時器。兩個全雙工的串行口。2個讀寫引腳。可以通過常規(guī)編程方法進行控制。但不可以在線編程。該單片機通過將常用的MCU和Flash結(jié)合在了一起,尤其通過使用可重復(fù)擦寫的Flash存儲器,不僅在功耗上還是在效率上都具有相當?shù)膶嵱眯浴?/div>
該單片機的基本組成框圖見圖3.2.1。
1.011.jpg (23.41 KB, 下載次數(shù): 86)
下載附件
2017-5-18 00:21 上傳
圖3.2.1 單片機組成框圖
3.2.2 AT89S52單片機引腳特性
AT89S52有PDIP、PQFP/TQFP及PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。主要功能特性:
兼容MCS51指令系統(tǒng)
· 8k可反復(fù)擦寫(>1000次)Flash ROM
· 32個雙向I/O口
· 256x8bit內(nèi)部RAM
· 3個16位可以通過編程設(shè)置的定時器。
· 時鐘頻率0-24MHz
· 2個串行中斷
· 可編程UART串行通道
· 2個外部中斷源
· 共6個中斷源
· 2個讀寫中斷口線
· 3級加密位
· 低功耗空閑和掉電模式
· 軟件設(shè)置睡眠和喚醒功能
1.012.jpg (25.95 KB, 下載次數(shù): 91)
下載附件
2017-5-18 00:21 上傳
圖3.2.2 單片機引腳圖
部分引腳說明:
(1)時鐘電路引腳XTAL1 和XTAL2:
XTAL2(18 腳):可以外接晶體振蕩器?梢詷(gòu)成內(nèi)部系統(tǒng)的振蕩電路,振蕩器的振蕩頻率等于系統(tǒng)的固有頻率。當需要外部時鐘提供信號時,可以從該端口輸入所需信號。在驗證該部分是否處于正常狀態(tài)時,可將示波器的輸入引腳連接該端口,在示波器上觀察系統(tǒng)的輸出信號。
XTAL1(19 腳):同上述18腳連接方式相同。系統(tǒng)的內(nèi)部時鐘振蕩器。如果使用內(nèi)部時鐘時,將該腳接地。若要使用外部時鐘,則將時鐘信號加到該引腳即可。
(2)控制信號引腳RST,ALE,PSEN 和EA:
復(fù)位引腳:復(fù)位信號輸入端,高電平有效。該引腳為備用電源引腳,可以由外部電源進行供電。在該引腳上輸入兩個時鐘周期的高電平,便完成了對MCU的復(fù)位。同時RST 端口具有另外一種功能,即當接入RST接口時,可以作為RAM 備用電源,以使系統(tǒng)在突然掉電時,在寄存器內(nèi)的數(shù)據(jù)不會丟失,在系統(tǒng)復(fù)位之后仍可以繼續(xù)運行。
ALE/PROG:地址鎖存允許信號端。51單片機在正常上電之后,該引腳對外輸出高電平,頻率是振蕩電驢振蕩頻率的1/6。MCU讀取外部存儲器。作為低8 位地址的鎖存信號。該引腳會輸出相應(yīng)的信號。
單片在在不訪問外部ROM時,該引腳則以內(nèi)部振蕩器1/6 的頻率固定輸出高電平信號,所以該引腳的輸出信號可以用來給外部電路提供工作時鐘。在驗證單片機的性能時,可以示波器的輸入端外界ALE引腳,觀察示波器是否顯示對應(yīng)信號。當輸出正常的信號時。芯片正常。
ALE 端的驅(qū)動能力較強,可以帶動多個負載。
同時這個引腳可以作為單片機的地址輸入端口。進行地址選擇時,可以在此端口進行。
PSEN:輸出使能信號。完成對相應(yīng)功能的使能。該引腳外界存儲器的使能端口,后續(xù)會有相應(yīng)原理圖展示。PSEN 端有效,即允許讀出EPROM/ROM 中的指令碼。PSEN 端同樣可驅(qū)動8 個LS 型TTL 負載。
EA/Vpp(31 腳):該引腳是單片機的程序輸入使能引腳。該引腳外接高電平時,MCU只在內(nèi)部存儲其中進行尋址,即只能執(zhí)行內(nèi)部命令。在地址選擇器的值大于內(nèi)部存儲器時。單片機會自動去外部存儲器中讀取指令。即0x0FFF是內(nèi)外存儲器的區(qū)分點。當給該引腳接地時,MCU將脂肪紋外部程序存儲器的內(nèi)容,而忽略內(nèi)部存儲器的內(nèi)容。對于無片內(nèi)ROM 的8031 或8032,需外擴EPROM,此時必須將EA 引腳接地。
(3)輸入/輸出端口P0/P1/P2/P3:
P0口(P0.0~P0.7,39~32 腳):P0口是一個漏極開路的8 位準雙向I/O口。該引腳的構(gòu)成方式為漏極開路模式,一共可以對8個負載進行驅(qū)動。當P0用作輸入引腳時,必須先向口鎖存器(地址80H)寫入0XFFFF,導(dǎo)致P0口引腳成為懸浮狀態(tài),成為了高阻態(tài)。該引腳作為輸入端使用時,需要配置相應(yīng)的寄存器。即先由該引腳進行寫出,再進行讀入。即具有雙向的特性。
P1口(P1.0~P1.7,1~8 腳):P1口是一個帶內(nèi)部上拉電阻的8 位準雙向I/O口。P1口每位能驅(qū)動4 個LS 型TTL 負載。當將P1端作為輸入端使用時,同樣應(yīng)該向控制端寫入控制信號,不同于P0,此時P1端自動進入上拉狀態(tài),顯示高電平。
P2口(P2.0~P2.7,21~28 腳):P2口是一個帶內(nèi)部上拉電阻的8 位準雙向I/O口。該引腳可以同時驅(qū)動四個負載。在訪問片外寄存器時,它輸出高地址。
P3口(P3.0~P3.7,10~17 腳):P3口是一個帶內(nèi)部上拉電阻的8 位準雙向I/O口。如下:
P3.0:(RXD)串行數(shù)據(jù)接收。
P3.1:(RXD)串行數(shù)據(jù)發(fā)送。
P3.2:(INT0#)外部中斷0輸入。
P3.3:(INT1#)外部中斷1輸入。
P3.4:(T0)定時/計數(shù)器0的外部計數(shù)輸入。
P3.5:(T1)定時/計數(shù)器1的外部計數(shù)輸入。
P3.6:(WR#)對外部的數(shù)據(jù)存儲器進行使能。
P3.7:(RD#)選擇片外存儲器。
3.3 顯示模塊設(shè)計
系統(tǒng)采用1602作為顯示器件,可以較為清晰地顯示我們需要的字符與數(shù)字,相比其他顯示器件,具有功耗低,成本低的特點。液晶的命令操作腳是RS、RW、EN接在單片機的P1^1、P1^2、P1^3腳。顯示屏的數(shù)據(jù)輸入端應(yīng)該分別接單片機的的P0口。在顯示特定字符時,單片機通過這些引腳對顯示內(nèi)容進行控制。具體電路圖如圖下所示:
1.013.jpg (12.49 KB, 下載次數(shù): 76)
下載附件
2017-5-18 00:21 上傳
圖3.3 顯示模塊原理圖
3.4 風速風向電路設(shè)計
3.4.1 風速風向儀簡介風速儀用來檢測風的速度,而風向儀可以測量風的方向。兩者結(jié)合起來使用可以確定環(huán)境中風的特性。在對風的常規(guī)測量中,經(jīng)常將這兩者結(jié)合起來使用,以達到對環(huán)境中風的檢測。在風速儀模塊電路中,因為需要檢測風的速度,所以通常包括一個風杯(三杯),該風杯在受到環(huán)境中風的作用時發(fā)生旋轉(zhuǎn),帶動下級檢測電路運動,下級檢測電路根據(jù)風杯的運動即可檢測到風的速度。為了在任何角度都能檢測到風,所以經(jīng)常采用三個風杯來組成檢測模塊。而風向儀用來測量環(huán)境中風的方向,所以在檢測電路中包括一個由風向標組成的指示模塊。風向儀在受到風的作用后受力旋轉(zhuǎn),但不同于風速計的不斷旋轉(zhuǎn),風向儀會達到一個平衡狀態(tài),在平衡狀態(tài)時,風向標指示的即為風當前的方向。
風速風向儀在檢測到當前環(huán)境中的風速和風向后,將采集的數(shù)據(jù)傳遞給單片機,單片機對這些數(shù)據(jù)進行濾波處理,通常為求均值后,將這些信息顯示在顯示屏上,用戶即可得到當前環(huán)境中風的特性。通常將風向以讀數(shù)表示,而風速以等級或者m/s的形式展示。用戶在得到這些信息后,便可以據(jù)此安排自己的生產(chǎn)生活,提高自己的作業(yè)水平。
3.4.2 風速儀工作原理本系統(tǒng)采用的風速儀是基于光電編碼器的原理工作的。光電編碼器的傳動軸與風杯連接在一起,在風的吹動下,編碼器傳動軸跟隨轉(zhuǎn)動,由此不停地產(chǎn)生出脈沖信號。外部電路檢測到脈沖信號后,根據(jù)脈沖信號產(chǎn)生的頻率,即可計算出風的速度。
在工作時,我們將光電編碼器即風速儀的輸出引腳連接至單片機的中斷引腳處,配置單片機為上升沿觸發(fā)中斷。則由于風的轉(zhuǎn)動,風速儀的引腳會源源不斷地產(chǎn)生脈沖信號。這些脈沖信號傳遞給單片機后,單片機進入中斷。由于風的速度不同,導(dǎo)致編碼器脈沖信號的頻率也不盡相同,所以單片機內(nèi)部根據(jù)這些信號的頻率,即可得到風速儀的轉(zhuǎn)速。按照動量守恒原理,風的速度便可以得到。
3.4.3 風向儀工作原理風速儀在工作工程中,三個風杯在風的作用下不斷旋轉(zhuǎn),由此得到風的速度。而風向儀的工作原理與此不同。由于我們需要采集環(huán)境中風的方向,當環(huán)境中風的方向比較穩(wěn)定時,風向儀的風標不會有大幅度的波動。
風向儀的核心元器件同樣采用光電編碼器。但是與風速儀不同的是,風速儀根據(jù)光電編碼器脈沖產(chǎn)生的頻率工作,而風向儀根據(jù)編碼器轉(zhuǎn)動方向的不同而工作。由于編碼器在進行正轉(zhuǎn)或者反轉(zhuǎn)時,產(chǎn)生脈沖信號的電平不同。在正轉(zhuǎn)時,編碼器輸出高電平,而反轉(zhuǎn)時,輸出低電平。由此根據(jù)編碼器輸出電平的正負,我們便可以得知風向標正轉(zhuǎn)或者反轉(zhuǎn)過的角度,經(jīng)過初始定位,便得到了風的方向。
3.4.4 光電編碼器原理圖光電編碼器原理圖如下所示:
1.014.jpg (10.68 KB, 下載次數(shù): 85)
下載附件
2017-5-18 00:21 上傳
圖3.4.4 光電編碼器原理圖
如上圖所示為系統(tǒng)采用的光電編碼器原理圖。傳感器通過外部轉(zhuǎn)子的帶動,產(chǎn)生不同頻率,不同電平的脈沖。單片機根據(jù)脈沖頻率得到轉(zhuǎn)速,根據(jù)電平高低得到轉(zhuǎn)角。便可以精確地測量風的轉(zhuǎn)速和轉(zhuǎn)向。
4 軟件設(shè)計
4.1 風向檢測軟件設(shè)計
在進行風向檢測時,我們設(shè)計系統(tǒng)中斷來對風向進行檢測。將風向儀的A相引腳接至單片機的INT0中斷引腳,而將B相接至普通輸入引腳。配置INT0為下降沿中斷,即外部引腳產(chǎn)生下降沿時觸發(fā)中斷,程序進入中斷服務(wù)函數(shù)進行處理。風向儀在正常工作時,A相產(chǎn)生中斷,系統(tǒng)進入中斷程序后判斷B引腳的電平。若該引腳電平為低,則表示風向標反轉(zhuǎn),將其計數(shù)減一。而如果該引腳為高電平,則代表風向標正轉(zhuǎn),計數(shù)值加一。
光電編碼器具有自己的轉(zhuǎn)值,即旋轉(zhuǎn)一周產(chǎn)生的脈沖個數(shù)。本系統(tǒng)采用的風向儀的轉(zhuǎn)數(shù)為500.即風向標每轉(zhuǎn)過一圈,產(chǎn)生五百個脈沖。所以風向標的角度為N/500*360度。在程序中設(shè)計計數(shù)值N的絕對值小于500,當大于500時,減去500。而當小于-500時,加上500即可。
該部分的軟件流程圖如下:
1.016.jpg (13.17 KB, 下載次數(shù): 89)
下載附件
2017-5-18 00:21 上傳
圖4.1 風向檢測流程圖
4.2 風速檢測軟件設(shè)計
在進行風速的測量時,我們需要采集風速儀在一定時間內(nèi)產(chǎn)生脈沖的個數(shù)。設(shè)計定時器T0作為定時器,定時時間為1s,即檢測在1s內(nèi)產(chǎn)生脈沖的個數(shù),我們即可得到風速儀的轉(zhuǎn)速。設(shè)計N1為脈沖計數(shù)個數(shù),連接至中斷引腳INT1。風速儀在進行工作時,不斷有脈沖產(chǎn)生。當產(chǎn)生脈沖時,我們在中斷程序中對計數(shù)值N進行加1操作。每當1s的定時到達時,對脈沖計數(shù)個數(shù)進行計算。由此我們得到了以脈沖個數(shù)表達的轉(zhuǎn)速。即v=N1。每秒轉(zhuǎn)過的度數(shù)為:N1/500*360。乘以風速儀的半徑,即為風的速度。
風速檢測部分流程圖如下:
圖4.2 風速檢測流程圖
由上圖所示,我們剛開始先初始化定時器T0,以及中斷引腳INT1。
初始化計數(shù)值N1為0.每當有脈沖產(chǎn)生時,計數(shù)值加1。
定時器的定時周期為1s。每當1s定時到達時,計算當前風速,并用顯示屏進行顯示。
4.3 主程序設(shè)計
系統(tǒng)的軟件主要包括風速檢測,風向檢測,與數(shù)值顯示。在上文中,我們討論了風速和風向的檢測部分的軟件流程。
顯示部分僅僅是對各個數(shù)值進行顯示,比較簡單,故在此不再贅述。
系統(tǒng)在工作時,處于等待狀態(tài),等待風向儀的中斷或者風速儀的中斷的脈沖到來,系統(tǒng)轉(zhuǎn)去執(zhí)行相應(yīng)的處理函數(shù)。
在完成對各部分的處理之后,驅(qū)動顯示屏顯示對應(yīng)的風速和風向。
整體流程采用順序流程,原理也比較簡單。整體流程圖如下所示:
1.020.jpg (15.31 KB, 下載次數(shù): 84)
下載附件
2017-5-18 00:21 上傳
1.021.jpg (1.59 KB, 下載次數(shù): 90)
下載附件
2017-5-18 00:21 上傳
圖4.3 整體流程圖
如上所示系統(tǒng)的整體流程圖,在程序中,主程序一直等待外部脈沖的到來。在有脈沖產(chǎn)生后,系統(tǒng)判斷脈沖的來源,并轉(zhuǎn)而去執(zhí)行各自的處理程序。在完成處理后,驅(qū)動顯示屏進行顯示。
5 系統(tǒng)測試與評價
5.1 測試方法
所需儀器:測試儀器主要包括數(shù)字萬用表,秒表,量角器,示波器,USB轉(zhuǎn)TTL設(shè)備。
所需軟件:keil編譯軟件,串口調(diào)試軟件,protues仿真軟件。
調(diào)試前準備工作:
數(shù)字萬用表測量電壓源(5V和12V)輸出電壓是否為標準電壓,測量標準電阻是否標稱(本文用到的電阻為1k,5k,10k和100k)。示波器檢查風速儀和風向儀輸出波形是否準確。用量角器檢測風向儀的精準度是否足夠。
測試步驟:
給各模塊上電,用數(shù)字萬用表檢查各個模塊是否處于正常工作電壓。其中單片機,顯示屏模塊等標準電壓應(yīng)處于4~6V,檢查電壓源電壓,防止發(fā)生泄露,電壓源電壓位于12V左右,誤差不超過1V。
各模塊檢查無誤,對各模塊組裝供電。用萬用表檢查各模塊電壓是否標準,LED指示是否正確。
打開單片機開關(guān),讓系統(tǒng)處于等待狀態(tài)。首先對風速儀進行檢測。
打開電源開關(guān),模擬外界環(huán)境產(chǎn)生風源,檢測風速儀的輸出,測量10次,每次測試1分鐘。
進而對風向儀進行檢測。
讓風從不同角度吹動風向標,觀察顯示屏顯示的角度是否精確。測量5次,每次30s。
5.2 測試結(jié)果與分析
表5-1 風速儀檢測狀況(10次)
表5-2 風向儀檢測
誤差分析:我們進行了兩類的系統(tǒng)測試:驗證系統(tǒng)風速儀狀態(tài)的正確性和風向儀檢測精準度。在速度檢測準確性方面,我們可以達到百分之九十以上的準確性,這是由兩方面因素決定的:代碼健壯性以及編碼器模塊的穩(wěn)定性。由于我們在代碼中只是測試指令的數(shù)值,并沒有進行大量的運算,所以其精準度會很高。
在風向檢測方面,其誤差出現(xiàn)的原因主要包括:編碼器精度不夠,風向波動較大,以及單片機定時器的誤差。即使存在這些影響因素,我們的精準度也達到了百分之九十以上,已經(jīng)足夠面對日常使用了。
參考文獻
[1] 何立民. 單片機應(yīng)用系統(tǒng)設(shè)計. 北京:航天航空大學(xué)出版社,2002.22-33
[2] 李廣弟. 單片機基礎(chǔ).北京:北京航空航天大學(xué)出版社,2001.1-3
[3] 何希才. 新型實用電子電路400例. 電子工業(yè)出版社,2000.7-9
[4] 趙負圖. 傳感器集成電路手冊. 第一版,化學(xué)工業(yè)出版社,2004.12-14
[5] 陳伯時. 電力拖動自動控制系統(tǒng). 第二版,北京:機械工業(yè)出版社,2000.15-19
[6] 張毅剛,彭喜元. 新編 MCS-51 單片機應(yīng)用設(shè)計. 第一版,哈爾濱工業(yè)大學(xué)出版社,2003.1-9
[7] 邵貝貝. 單片機嵌入式應(yīng)用的在線開發(fā)方法, 清華大學(xué)出版社,2004.12-19
[8] 楊寧,胡學(xué)軍. 單片機與控制技術(shù),北京航空航天大學(xué)出版社,2005.44-46
[9] 趙亮,侯國銳.單片機C語言編程與實例,人民郵電出版社,2003.43-48
[10] 黃開勝,金華民,蔣狄南. 韓國智能模型車技術(shù)方案分析,2006.33-39
[11] 胡漢才. 單片機原理及系統(tǒng)設(shè)計.北京:清華大學(xué)出版社,2003.13-15
[12] 李朝青. 單片機原理及接口技術(shù).北京:北京航空航天大學(xué)出版社,2003.22-25
[13]《8051 單片機課程設(shè)計實訓(xùn)教材》陳明熒編著,北京:清華大學(xué)大學(xué)社,2005.16-18
[14]《單片機實訓(xùn)教程》張迎軍,貢雪梅,北京:北京大學(xué)出版社,2005.34-35
[15]《單片機應(yīng)用實訓(xùn)教程》袁啟昌,王宏宇,北京:科學(xué)出版社,2006 .46-49
[16] 胡漢才. 單片機原理及系統(tǒng)設(shè)計.北京:清華大學(xué)出版社,2003.55-56
[17] 李朝青. 單片機原理及接口技術(shù).北京:北京航空航天大學(xué)出版社,2003.65-66
[18]黃家升. 基于IAP的單片機軟件遠程升級[J]. 艦船電子對抗, 2007,(03) 41-44 .
[19]楊美仙. 單片機的發(fā)展及其應(yīng)用[J]. 科技信息(學(xué)術(shù)研究), 2007,(35) 26-28.
[20]陳壽元. 單片機多機通信網(wǎng)絡(luò)改進及數(shù)據(jù)通信容錯技術(shù)[J]. 山東師范大學(xué)學(xué)報(自然科學(xué)版), 2006,(02) . 23-28
[21]栗欣,周東輝,孫曉苗,李立. 單片機程序遠程升級的設(shè)計[J]. 微計算機信息, 2006,(32) 33-35.
致 謝
在我完成本科畢業(yè)設(shè)計的幾個月時間里,我的指導(dǎo)老師呂承啟在學(xué)習上給予了悉心的指導(dǎo)和極大的幫助,在生活上給予了無微不至的關(guān)懷與照顧。呂承啟老師深厚的理論功底、嚴謹?shù)闹螌W(xué)態(tài)度、科學(xué)的思維方式,務(wù)實的工作作風令我收益非淺。值此論文完成之際,向呂承啟老師致以最崇高的敬意和衷心的感謝。此外,同時還要感謝同實驗室和同班的各位同學(xué)給我的無私的幫助,是他們使我在本科階段的學(xué)習和生活充滿樂趣,受益良多,在這里向他們表示由衷的感謝。最后要特別感謝我的父母,在我多年的求學(xué)生涯中,不斷的支持和鼓勵我,承受了各種的壓力,付出了最真摯的愛。謹以此文獻給所有關(guān)心我的老師、同學(xué)、朋友。
最后,向評閱本文的專家、教授致敬!
附錄
單片機源程序如下:
完整論文下載(word格式 可編輯):
03-(設(shè)計論文-自動化-2013211320-劉江)風速風向數(shù)據(jù)采集實驗裝置的設(shè)計(呂承啟老師).doc
(510.92 KB, 下載次數(shù): 124)
2017-5-17 21:59 上傳
點擊文件名下載附件
下載積分: 黑幣 -5