旋轉(zhuǎn)式電子桌椅設(shè)計(jì)報(bào)告_第1頁(yè)
旋轉(zhuǎn)式電子桌椅設(shè)計(jì)報(bào)告_第2頁(yè)
旋轉(zhuǎn)式電子桌椅設(shè)計(jì)報(bào)告_第3頁(yè)
旋轉(zhuǎn)式電子桌椅設(shè)計(jì)報(bào)告_第4頁(yè)
旋轉(zhuǎn)式電子桌椅設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、2014年電子設(shè)計(jì)選拔賽題目:旋轉(zhuǎn)式電子桌牌參賽隊(duì)員: 專業(yè): 11級(jí)電氣四班 參賽隊(duì)員: 專業(yè): 12級(jí)電氣一班 參賽隊(duì)員: 專業(yè): 13級(jí)電氣一班 2014-6-20摘 要為了滿足旋轉(zhuǎn)式電子桌椅的設(shè)計(jì)要求,基于視覺(jué)暫留特性設(shè)計(jì)并制作了一個(gè)13點(diǎn)線陣LED模塊的顯示屏。首先,在控制器的管理下,通過(guò)線狀LED控制和電機(jī)驅(qū)動(dòng)控制這兩部分來(lái)完成基于STC89C52單片機(jī)的旋轉(zhuǎn)式電子桌椅文字顯示裝置的設(shè)計(jì);經(jīng)過(guò)軟硬件調(diào)試,該部分實(shí)現(xiàn)了中英文字符顯示轉(zhuǎn)速顯示等功能。其次,用MSP430G2553測(cè)量直流電機(jī)的電壓和電流,通過(guò)LCM12864顯示。然后,通過(guò)NRF2401無(wú)線模塊、串口模塊與電腦進(jìn)行無(wú)線

2、通信,能通過(guò)上位機(jī)界面修改LED顯示屏的內(nèi)容。實(shí)際測(cè)試表明,所采用的設(shè)計(jì)方案先進(jìn)有效,完全達(dá)到了設(shè)計(jì)要求。該顯示裝置電路簡(jiǎn)單、顯示內(nèi)容穩(wěn)定清晰,并擴(kuò)展了無(wú)線通信和上位機(jī)功能,客服了點(diǎn)陣LED顯示屏的不足,可以用于很多的場(chǎng)合,比如廣告牌、家庭裝飾、記分牌、娛樂(lè)顯示等。關(guān)鍵詞:視覺(jué)暫留;LED旋轉(zhuǎn)屏;無(wú)線通信;上位機(jī)界面;單片機(jī)目錄摘 要第二章系統(tǒng)方案的設(shè)計(jì)與論證21.1系統(tǒng)總體框架21.2方案論證與比較21.2.1系統(tǒng)供電方案21.2.2顯示部分:31.2.3芯片的選擇:31.2.4鍵盤選擇:41.2.5電機(jī)選擇41.2.6電機(jī)驅(qū)動(dòng)模塊的選擇:41.2.7液晶的選擇:51.2.8無(wú)線通信模塊選擇

3、5第二章 理論分析與計(jì)算62.1旋轉(zhuǎn)LED顯示屏簡(jiǎn)介62.2系統(tǒng)機(jī)械結(jié)構(gòu)72.3重心調(diào)節(jié)8第三章 系統(tǒng)的硬件電路設(shè)計(jì)93.1系統(tǒng)硬件框架圖93.2單片機(jī)最小系統(tǒng)93.3旋轉(zhuǎn)式LED模塊93.4 RF模塊103.5串口通信模塊103.6RF供電模塊113.7LCD顯示模塊11第四章 系統(tǒng)的軟件設(shè)計(jì)144.1系統(tǒng)程序流程圖144.2上位機(jī)界面設(shè)計(jì)144.3主控機(jī)程序流程設(shè)計(jì)164.4從機(jī)程序流程設(shè)計(jì)164.5 MSP430測(cè)量程序流程設(shè)計(jì)18第五章 測(cè)試方法和結(jié)論195.1測(cè)試方案及測(cè)試儀器195.2數(shù)據(jù)測(cè)試195.2.1電壓電流測(cè)量數(shù)據(jù)195.1.2RF實(shí)際通信過(guò)程示波器圖195.3 測(cè)試結(jié)果分

4、析20第六章 小結(jié)21第七章 參考文獻(xiàn)21附錄一:主電路原理圖22附錄二:部分源程序23(一)主控機(jī)主程序23(二)從機(jī)主程序25(三)MSP430測(cè)量主程序27第一章 系統(tǒng)方案的設(shè)計(jì)與論證1.1系統(tǒng)總體框架根據(jù)題目分析,本設(shè)計(jì)由機(jī)械旋轉(zhuǎn)部件、顯示電路、無(wú)線通信電路等幾部分構(gòu)成。通信電路通信電路用于通過(guò)計(jì)算機(jī)向顯示屏下載顯示內(nèi)容,由于顯示屏在高速旋轉(zhuǎn)的情況下不便于接線進(jìn)行顯示內(nèi)容的更改,所以設(shè)計(jì)使用了RF通信電路,該模塊選用2.4GHz高速2Mbps無(wú)線收發(fā)芯片NRF24L01作為RF的實(shí)現(xiàn)芯片,采用NRF24L01高速嵌入式無(wú)線數(shù)據(jù)傳送模塊來(lái)實(shí)現(xiàn)通信??傮w框架如圖1-1所示。圖1-1 總體框

5、架1.2方案論證與比較1.2.1系統(tǒng)供電方案方案1:采用固定電池供電。即在電路板是直接附帶一個(gè)蓄電池,為系統(tǒng)供電。這種供電方式比較簡(jiǎn)單。但是,有兩個(gè)問(wèn)題難以解決。首先,高亮度LED的功耗比較大,而電池的蓄電量有限,這就難以實(shí)現(xiàn)系統(tǒng)的長(zhǎng)期運(yùn)作;其二,由于電池的體積和重量比較大,若固定在板子上,電量用完后,難以替換。若不固定,在電機(jī)轉(zhuǎn)動(dòng)的時(shí)候可能會(huì)甩出去,引起安全隱患。同時(shí),也增加了旋轉(zhuǎn)重心的調(diào)節(jié)的難度。故不采用此方法。 方案2:采用電刷供電。即在電機(jī)的轉(zhuǎn)軸上,手工增加一個(gè)電刷,通過(guò)電刷為系統(tǒng)供電。此方法能夠讓系統(tǒng)長(zhǎng)期供電,但是由于增加了電刷,電機(jī)的摩擦增大,勢(shì)必會(huì)使系統(tǒng)的功耗增加。故不采用此方法

6、。方案3:從電機(jī)轉(zhuǎn)子中引出電源線,為系統(tǒng)供電。此方法直接在電機(jī)的轉(zhuǎn)子中引出電源線,通過(guò)整流濾波后,可以作為系統(tǒng)供電,同時(shí)也可以作為系統(tǒng)控制時(shí)序的中斷源。由于顯示屏在高速旋轉(zhuǎn)的情況下不便于接線,所以不采用該方案。綜合上面幾種,本系統(tǒng)采用復(fù)合供電方式,即:LED顯示屏采用固定蓄電池供電,電機(jī)采用12V電源供電,上下采用獨(dú)立供電方案。1.2.2顯示部分:顯示部分是本次設(shè)計(jì)最核心的部分,對(duì)于LED線陣有以下兩種方案:方案一:靜態(tài)顯示,將一幀圖像中的每一個(gè)二極管的狀態(tài)分別用0 和1 表示,若為1 ,則表示L ED 無(wú)電流,即暗狀態(tài);若為0則表示二極管被點(diǎn)亮。若給每一個(gè)發(fā)光二極管一個(gè)驅(qū)動(dòng)電路,一幅畫面輸入

7、以后,所有L ED 的狀態(tài)保持到下一幅畫。對(duì)于靜態(tài)顯示方式,所需的譯碼驅(qū)動(dòng)裝置很多,引線多而復(fù)雜,成本高,且可靠性也較低。方案二:動(dòng)態(tài)顯示,對(duì)一幅畫面進(jìn)行分割,對(duì)組成畫面的各部分分別顯示,是動(dòng)態(tài)顯示方式。動(dòng)態(tài)顯示方式,可以避免靜態(tài)顯示的問(wèn)題。但設(shè)計(jì)上如果處理不當(dāng),易造成亮度低,閃爍問(wèn)題。因此合理的設(shè)計(jì)既應(yīng)保證驅(qū)動(dòng)電路易實(shí)現(xiàn),又要保證圖像穩(wěn)定,無(wú)閃爍。動(dòng)態(tài)顯示采用多路復(fù)用技術(shù)的動(dòng)態(tài)掃描顯示方式, 復(fù)用的程度不是無(wú)限增加的, 因?yàn)槔脛?dòng)態(tài)掃描顯示使我們看到一幅穩(wěn)定畫面的實(shí)質(zhì)是利用了人眼的暫留效應(yīng)和發(fā)光二極管發(fā)光時(shí)間的長(zhǎng)短, 發(fā)光的亮度等因素. 我們通過(guò)實(shí)驗(yàn)發(fā)現(xiàn), 當(dāng)掃描刷新頻率(發(fā)光二極管的停閃頻

8、率) 為50Hz, 發(fā)光二極管導(dǎo)通時(shí)間1m s 時(shí), 顯示亮度較好, 無(wú)閃爍感.。 經(jīng)過(guò)上述兩種方案比較, 我們采用方案二 。1.2.3芯片的選擇:方案一:采取并口輸入,能更準(zhǔn)確的控制到每一個(gè)led。使led旋轉(zhuǎn)屏能呈現(xiàn)更好的效果。方案二:選取串口輸入,但驅(qū)動(dòng)力弱,對(duì)于旋轉(zhuǎn)LED顯示屏來(lái)說(shuō)不穩(wěn)定。經(jīng)過(guò)上述兩種方案比較, 我們采用方案一。1.2.4鍵盤選擇:方案一:采用獨(dú)立式鍵盤。由于各鍵相互獨(dú)立,每個(gè)按鍵各接一根輸入線,通過(guò)檢測(cè)輸入線的電平狀態(tài)可以很容易的判斷哪個(gè)按鍵被按下。此種鍵盤適用于按鍵較少或操作速度較高的場(chǎng)合。方案二:采用行列式鍵盤。它由行線和列線組成,按鍵位于行列的交叉點(diǎn)上,行線信號(hào)

9、和列線信號(hào)分別通過(guò)兩個(gè)接口和CPU相連,通過(guò)行列掃描法判定按鍵的位置。方案三:采用并串轉(zhuǎn)換。將口線數(shù)據(jù)輸入到單片機(jī)的串行口,利用串行通信方式0擴(kuò)展鍵盤接口,這樣節(jié)省了IO口,但犧牲了速度。綜合考慮,采用方案一與方案二的巧妙結(jié)合。1.2.5電機(jī)選擇方案1:采用步進(jìn)電機(jī)。步進(jìn)電機(jī)能夠準(zhǔn)確的定向,但是圖像或者文字的分辨率受到步進(jìn)電機(jī)的步進(jìn)角度的限制。并且步進(jìn)電機(jī)以及控制電路成本較高,并且需要單片機(jī)控制,占用CPU的資源。方案2:采用普通的電機(jī)。此方案不占用單片機(jī)I/O口,節(jié)省單片機(jī)資源,使用方便,成本較低,通過(guò)簡(jiǎn)單的改裝,可以給系統(tǒng)供電。綜合各方面考慮,為了節(jié)省成本,簡(jiǎn)單系統(tǒng)電路,以及更方便的為系統(tǒng)

10、供電,使系統(tǒng)能夠長(zhǎng)期工作,故采用方案2。1.2.6電機(jī)驅(qū)動(dòng)模塊的選擇:方案一:使用高耐壓復(fù)合晶體管芯片ULN2003來(lái)驅(qū)動(dòng)電機(jī)。方案二:使用L298N電機(jī)驅(qū)動(dòng)模塊。ULN2003最大工作電流為500mA,對(duì)于本系統(tǒng)中的直流減速電機(jī)驅(qū)動(dòng)能力不足。相反,L298N電機(jī)驅(qū)動(dòng)芯片工作電壓高,最高工作電壓可達(dá)46V,內(nèi)含兩個(gè)H橋的高電壓電流全橋式驅(qū)動(dòng)器可以很好的控制本系統(tǒng)中的直流減速電機(jī)。故采用方案二。1.2.7液晶的選擇:方案一:帶中文字庫(kù)的128864 是一種具有4 位/8 位并行、2 線或3 線串行多種接口方式,內(nèi)部含有國(guó)標(biāo)一級(jí)、二級(jí)簡(jiǎn)體 中文字庫(kù)的點(diǎn)陣圖形液晶顯示模塊;利用該模塊靈活的接口方式和

11、簡(jiǎn)單、方便的操作指令,可構(gòu)成全中文人機(jī)交互圖形界面??梢燥@示8×4 行16×16 點(diǎn) 陣的漢字. 也可完成圖形顯示.低電壓低功耗是其又一顯著特點(diǎn)。不論硬件電路結(jié)構(gòu)或顯示程序都要簡(jiǎn)潔得多,且該模塊的價(jià)格也略低于相同點(diǎn)陣的圖形液晶模塊方案二:12232具有2560位顯示RAM(DD RAM),即80×8×4位 具有與68系列或80系列相適配的MPU接口功能,并有專用的指令集,可完成文本顯示或 圖形顯示的功能設(shè)置 綜合考慮,我們采用方案一的串口,既節(jié)省了IO口,和得到更多的顯示信息。1.2.8無(wú)線通信模塊選擇方案1:使用采用紅外通信,電路簡(jiǎn)單,但紅外通訊需要大

12、量的編碼、譯碼,程序設(shè)計(jì)復(fù)雜,且由于AT89S52速度比較慢,在短時(shí)間難以做太多的運(yùn)算,故不采用此方法。方案2:使用NRF2401無(wú)線模塊通信。nRF2401是單片射頻收發(fā)芯片,工作于2.42.5GHz ISM頻段,芯片內(nèi)置頻率合成器、功率放大器、晶體振蕩器和調(diào)制器等功能模塊,輸出功率和通信頻道可通過(guò)程序進(jìn)行配置。芯片能耗非常低,以-5dBm的功率發(fā)射時(shí),工作電流只有10.5mA,接收時(shí)工作電流只有18mA,多種低功率工作模式,節(jié)能設(shè)計(jì)更方便。且電路比較簡(jiǎn)單,使用方法也簡(jiǎn)單,只需把數(shù)據(jù)送到串口,就可以立即發(fā)送,只需進(jìn)行初始化,不需要對(duì)數(shù)據(jù)進(jìn)行曼切斯特編碼,具有全雙工的通信功能,受外界影響較小。

13、在處理器運(yùn)算速度相對(duì)比較慢的情況下,采用此方法。第二章 理論分析與計(jì)算2.1旋轉(zhuǎn)LED顯示屏簡(jiǎn)介L(zhǎng)ED顯示屏已廣泛應(yīng)用于廣告、車站、銀行、商場(chǎng)等公共場(chǎng)所。它具有功耗小、壽命長(zhǎng)、色彩好等優(yōu)點(diǎn)?,F(xiàn)在的 LED 顯示屏的發(fā)光器件主要采用 LED 平板模塊,室內(nèi)顯示屏主要采用 16 行循環(huán)掃描的方法,即每16 行為一個(gè)單元,在每一幀中, 逐次每行亮十六分之一秒的時(shí)間,由于幀頻一般大于 60Hz,我們并不覺(jué)察到掃描,而認(rèn)為是一幅穩(wěn)定的圖像。這種類型的顯示屏有兩個(gè)問(wèn)題有待改進(jìn):第一、顯示屏整個(gè)面積全由LED 模塊組成,器件數(shù)量多,成本高;第二、由于顯示屏是一個(gè)平面,而且 LED 象素點(diǎn)有一定視角限制,使顯

14、示屏的可視范圍被局限到正面某個(gè)范圍之內(nèi),在應(yīng)用中使顯示屏的信息發(fā)布受到了空間的限制。新型的旋轉(zhuǎn)柱式顯示屏,克服了以上兩個(gè)不足,以機(jī)械轉(zhuǎn)動(dòng)掃描方式代替逐行掃描,成本大大降低,可視范圍做到了360 度。本文介紹了它的顯示原理,系統(tǒng)組成,指出了設(shè)計(jì)中要注意的幾個(gè)核心問(wèn)題,并提出了一些新的發(fā)展方向。旋轉(zhuǎn)掃描的原理:由于人眼具有視覺(jué)暫留的特性,當(dāng)畫面以一定速率刷新時(shí),我們看到的就是連續(xù)的圖像,電視機(jī)顯示采用逐點(diǎn)掃描方式,每秒鐘要刷新畫面 50 場(chǎng)(25 幀),而在人眼中則是一幅完整的畫面,傳統(tǒng) LED 顯示屏一般采用 1/16 掃描,16 行進(jìn)行逐行循環(huán)點(diǎn)亮,由于刷新速率足夠大,看到的也是一幅穩(wěn)定的畫面

15、。它的原理示意如圖2- 1 所示,其中(a) (b) (c) (d) (e) 分別是不同時(shí)刻的顯示狀態(tài),(f)為人眼看到的完整畫面“3”。在這種LED顯示屏中,采用的是逐行換位下移點(diǎn)亮器件的掃描方式,每一行都必須有LED顯示器件,這就使顯示屏的成本偏大。圖2-1 傳統(tǒng)LED顯示屏的顯示原理圖旋轉(zhuǎn)掃描方式顯示器只有一列,由電機(jī)帶動(dòng)它進(jìn)行旋轉(zhuǎn),運(yùn)行到某一位置時(shí)就顯示該位置的狀態(tài),到下一位置后又顯示下一位置的狀態(tài),即一列顯示器件要完成全部圖像的顯示,掃描過(guò)程由機(jī)械轉(zhuǎn)動(dòng)更換位置來(lái)實(shí)現(xiàn).其顯示原理如圖2-2。所示。圖中a)b)c)是 圖2-2 旋轉(zhuǎn)柱式顯示屏的顯示原理圖不同時(shí)刻的顯示狀態(tài),d)是人眼看到

16、的完整畫面“3”。由于旋轉(zhuǎn)掃描成像不是平面,而是一個(gè)柱面,所以稱之為旋轉(zhuǎn)柱式顯示屏,其觀看視角是360°。2.2系統(tǒng)機(jī)械結(jié)構(gòu)旋轉(zhuǎn)式LED文字顯示裝置示意圖如圖2-3所示。電機(jī)安裝在底座上,電機(jī)旋轉(zhuǎn)時(shí)帶動(dòng)著旋轉(zhuǎn)式LED也旋轉(zhuǎn)。旋轉(zhuǎn)式LED和電機(jī)通過(guò)一個(gè)齒輪盤連接,大致結(jié)構(gòu)如圖2-3所示。圖2-3 系統(tǒng)機(jī)械結(jié)構(gòu)2.3重心調(diào)節(jié)重心調(diào)節(jié)是最困難的一個(gè)技術(shù)環(huán)節(jié)。旋轉(zhuǎn)的重心直接關(guān)系到系統(tǒng)的穩(wěn)定的運(yùn)行,以及安全性問(wèn)題。旋轉(zhuǎn)的重心如果不在轉(zhuǎn)軸上的話,在高速的旋轉(zhuǎn)中,會(huì)產(chǎn)生劇烈的抖動(dòng),在巨大的離心力下,會(huì)使整個(gè)系統(tǒng)分解,產(chǎn)生安全隱患。所以,重心調(diào)節(jié)是必須解決的問(wèn)題。下面介紹重心調(diào)節(jié)的方法。首先是電路板

17、的外觀設(shè)置。根據(jù)物理質(zhì)心計(jì)算方法,可知道,均勻的圓盤的重心就在圓盤的中心。但是,由于電子器件的封裝,重量都是不同的,圓盤電路板的重心是不均勻分布的,比較難調(diào)節(jié),故不采用這種方法。根據(jù)杠桿原理,當(dāng)支點(diǎn)兩端的物體的質(zhì)量與力距乘積相等時(shí),杠桿就處于平衡。因此我采用了長(zhǎng)條方型的電路板結(jié)構(gòu)。M1M2M2M1L2L1L1圖2-4 杠桿原理示意圖如上圖2-4所示,只要M1*L1 = M2*L2時(shí),在布PCB的同時(shí),只要通過(guò)簡(jiǎn)單的測(cè)量和計(jì)算便可以使得杠桿處于平衡。第三章 系統(tǒng)的硬件電路設(shè)計(jì)3.1系統(tǒng)硬件框架圖根據(jù)前面方案的論證,我們?cè)O(shè)計(jì)出本系統(tǒng)的總體架構(gòu)如圖3-1所示。圖3-1 系統(tǒng)硬件框圖3.2單片機(jī)最小系

18、統(tǒng)STC89C52單片機(jī)最小系統(tǒng)包括晶體振蕩電路、復(fù)位開關(guān)和電源部分。下圖為AT89C52單片機(jī)最小系統(tǒng)。圖3-2 單片機(jī)最小系統(tǒng)圖3.3旋轉(zhuǎn)式LED模塊在單片機(jī)的IO口串聯(lián)一個(gè)電阻與led相連,最后接到VCC上。當(dāng)IO口為低電平時(shí)點(diǎn)亮led燈。圖3-3 旋轉(zhuǎn)式LED模塊3.4 RF模塊圖3-4 RF模塊內(nèi)部結(jié)構(gòu)圖為了解決顯示屏在高速旋轉(zhuǎn)的情況下不便于接線進(jìn)行顯示內(nèi)容的更改存在的問(wèn)題,我們采用NRF24L01來(lái)實(shí)現(xiàn)主從控制器之間進(jìn)行通信,NRF24L01是NORDIC公司最近生產(chǎn)的一款無(wú)線通信通信芯片,采用FSK 調(diào)制,內(nèi)部集成NORDIC自己的Enhanced Short Burst 協(xié)議。

19、可以實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)或是1對(duì)6的無(wú)線通信。無(wú)線通信速度可以達(dá)到2Mbps。NORDIC公司提供通信模塊的GERBER文件,可以直接加工生產(chǎn)。只需要為單片機(jī)系統(tǒng)預(yù)留5個(gè)GPIO,1個(gè)中斷輸入引腳,就可以很容易實(shí)現(xiàn)無(wú)線通信的功能,非常適合用來(lái)為MCU系統(tǒng)構(gòu)建無(wú)線通信能。圖3-4是NRF24L01的內(nèi)部結(jié)構(gòu)圖。3.5串口通信模塊為了解決RF無(wú)線通信與電腦上位機(jī)通信的同步數(shù)據(jù)處理問(wèn)題,本系統(tǒng)采用STC89C52作為微處理器,通過(guò)串口通信將顯示屏更改的內(nèi)容發(fā)送到單片機(jī)上,然后再由RF無(wú)線通信模塊將數(shù)據(jù)發(fā)送給LED顯示屏微處理器。-圖3-5 串口模塊電路3.6RF供電模塊由于電壓工作范圍:1.9V3.6V,直接

20、用5V給RF模塊供電會(huì)使其燒壞,為了保證其能正常工作,采用AMS1117穩(wěn)壓管給其提供3.3V電壓。3.3V供電模塊電路如圖3-6所示。圖3-6 3.3V供電模塊3.7LCD顯示模塊圖3-7 LCD(12864)顯示液晶顯示模塊是128×64點(diǎn)陣的漢字圖形型液晶顯示模塊,可顯示漢字和圖形,內(nèi)置8192個(gè)中文漢字,128個(gè)字符,可與CPU直接接口,提供兩種界面來(lái)連接微機(jī)處理器(嵌入式處理器STC12C5A60S2):8位并行及串行兩種連接方式,有多種功能:光標(biāo)顯示,畫面移動(dòng),睡眠模式,外觀尺寸:93×70×12.5mm,視域尺寸:73×39mm,本系統(tǒng)使用

21、8位串行連接方式, 用LCD12864顯示直流電機(jī)將的電壓和電流值。3.8電壓、電流檢測(cè)模塊(一)主函數(shù) 主函數(shù)的流程框圖如圖1所示。主函數(shù)主要是調(diào)用系統(tǒng)初始化函數(shù)和循環(huán)開啟ADC轉(zhuǎn)換,這是由于ADC10采用單通道單次轉(zhuǎn)換模式,每次采樣后需要重新開啟ADC,才會(huì)進(jìn)行下一次信號(hào)采樣轉(zhuǎn)換。另外,信號(hào)的采樣與處理以及電壓值的顯示都是通過(guò)中斷來(lái)完成。(二)系統(tǒng)初始化函數(shù)系統(tǒng)初始化的流程框圖如圖2所示。該函數(shù)對(duì)看門狗的工作模式、所需的I/O口以及ADC10和12864進(jìn)行定義或初始化配置。(三)ADC初始化函數(shù)ADC初始化的流程框圖如圖3所示。該函數(shù)的任務(wù)是對(duì)轉(zhuǎn)換控制寄存器ADC10CTL0和ADC10

22、CTL1的初始化配置。其中,ADC10CTL0 需要配置的是ADC10的開關(guān)、采樣周期、參考電壓、ADC10中斷使能;而ADC10CTL1則只需要對(duì)外部采樣通道和ADC的工作模式進(jìn)行選擇。(四)液晶屏初始化液晶屏初始化的流程框圖如圖4所示。該函數(shù)需要寫指令控制:清屏指令、功能設(shè)定為基本指令集操作、地址歸0、開顯示且關(guān)閉光標(biāo)及其反白顯示。(五)中斷函數(shù)中斷函數(shù)用到了ADC中斷函數(shù)和看門狗中斷函數(shù)。ADC中斷函數(shù)的流程框圖如圖5所示,每4個(gè)ADC10CLKS周期會(huì)產(chǎn)生一次中斷,ADC10會(huì)將采集到的電壓值自動(dòng)保存在轉(zhuǎn)換存儲(chǔ)寄存器ADC10MEM中,直接讀取該寄存器就可以取出數(shù)據(jù),再通過(guò)固定的轉(zhuǎn)換公

23、式轉(zhuǎn)換成測(cè)得的電壓值??撮T狗中斷函數(shù)的流程框圖如圖6所示,每隔1s會(huì)產(chǎn)生一次中斷,更新液晶屏顯示的電壓值。第四章 系統(tǒng)的軟件設(shè)計(jì)4.1系統(tǒng)程序流程圖系統(tǒng)軟件設(shè)計(jì)采用模塊化設(shè)計(jì)的方法,它是把一個(gè)功能完整的較大的程序分解為若干個(gè)功能相對(duì)獨(dú)立的較小的程序模塊,對(duì)各個(gè)程序模塊分別進(jìn)行設(shè)計(jì)、編程和調(diào)試,最后把各個(gè)調(diào)試好的程序模塊聯(lián)成一個(gè)大的程序。模塊化程序設(shè)計(jì)的優(yōu)點(diǎn)是單個(gè)功能明確設(shè)計(jì)和調(diào)試比較方便、容易完成。一個(gè)模塊可以為多個(gè)程序所共享。模塊化編程的具體體現(xiàn)是把各個(gè)功能相對(duì)獨(dú)立的模塊作為子函數(shù),主程序是一個(gè)不斷循環(huán)檢測(cè)結(jié)構(gòu)。當(dāng)系統(tǒng)上電自檢、初始化后,進(jìn)入信號(hào)輸出的循環(huán),并自動(dòng)查詢面板按鍵的狀態(tài),以檢測(cè)用

24、戶可能輸入的指令,確定程序?qū)⒁獔?zhí)行的功能。本系統(tǒng)軟件由上位機(jī)界面、主控機(jī)程序模塊、從機(jī)程序模塊以及MSP430測(cè)量模塊組成。4.2上位機(jī)界面設(shè)計(jì)上位機(jī)界面在易語(yǔ)言開發(fā)環(huán)境下調(diào)試并實(shí)現(xiàn)功能。易語(yǔ)言具有全可視化編程、集成化開發(fā)環(huán)境。集界面設(shè)計(jì)、代碼編寫、調(diào)試分析、編譯打包等于一體的優(yōu)點(diǎn)。圖4-1 上位機(jī)操作界面4.3主控機(jī)程序流程設(shè)計(jì)首先,對(duì)單片機(jī)串口初始化,設(shè)置波特率為9600bit/s,以及nRF401初始化設(shè)置,因?yàn)閚RF401是半雙工的無(wú)線通訊,所以初始設(shè)置為發(fā)射狀態(tài),選擇通信頻道1。然后,調(diào)用取模軟件對(duì)字符串進(jìn)行取模,從串口通過(guò)nRF401把命令發(fā)送出去。圖4-2 主控機(jī)程序框架圖4.4

25、從機(jī)程序流程設(shè)計(jì)從機(jī)的程序開始,對(duì)NRF401、外部中斷0、定時(shí)器0進(jìn)行初始化,然后進(jìn)入默認(rèn)的中文顯示模式,因?yàn)?3陣列每個(gè)點(diǎn)顯示的時(shí)間是由定時(shí)器確定的,但是,電機(jī)的轉(zhuǎn)速,一開始都是不確定的,先通過(guò)霍爾元件將電機(jī)的轉(zhuǎn)速測(cè)量出來(lái)。然后再四分屏顯示信息。下面簡(jiǎn)單說(shuō)下,自適應(yīng)算法的實(shí)現(xiàn)過(guò)程。首先,把假設(shè)旋轉(zhuǎn)一周顯示的點(diǎn)陣數(shù)為16*128。那就意味著旋轉(zhuǎn)一周需要顯示的點(diǎn)數(shù)為128個(gè)。由于電機(jī)旋轉(zhuǎn)一周產(chǎn)生的中斷次數(shù)為3次。那么每次外部中斷發(fā)生時(shí),應(yīng)該掃描的點(diǎn)數(shù)為43個(gè)。在這里我設(shè)計(jì)為45個(gè)。也就是外部中斷產(chǎn)生時(shí),定時(shí)器應(yīng)該產(chǎn)生的中斷次數(shù)為45次(也就是掃描45個(gè)點(diǎn))。當(dāng)進(jìn)入外部中斷時(shí),通過(guò)判斷計(jì)時(shí)的中斷

26、次數(shù)來(lái)重新調(diào)整計(jì)時(shí)器的值,如果定時(shí)器中斷次數(shù)大于45,表明LED顯示一個(gè)點(diǎn)的時(shí)間太短(圖象或者文字寬度減少),應(yīng)該適當(dāng)?shù)难娱L(zhǎng)定時(shí)器定時(shí)時(shí)間;若定時(shí)器中斷次數(shù)小于45,表明LED顯示一個(gè)點(diǎn)的時(shí)間過(guò)長(zhǎng),應(yīng)該適當(dāng)減少定時(shí)器定時(shí)時(shí)間。通過(guò)對(duì)定時(shí)器定時(shí)時(shí)間的不斷調(diào)整(也就是調(diào)整LED顯示每一個(gè)點(diǎn)的時(shí)間),從而達(dá)到穩(wěn)定的顯示。這種方法只需在軟件上進(jìn)行修改、調(diào)試,即使電機(jī)的轉(zhuǎn)速發(fā)生了改變,也能夠正確的顯示文字或圖象。圖4-3 從機(jī)程序流程圖4.5 MSP430測(cè)量程序流程設(shè)計(jì)第五章 測(cè)試方法和結(jié)論5.1測(cè)試方案及測(cè)試儀器測(cè)試方案:將MSP430模塊開啟后,用萬(wàn)用表測(cè)量直流電機(jī)的電壓和電流值,反復(fù)測(cè)量多次并記

27、錄數(shù)據(jù),然后比較LCD12864液晶顯示的電壓和電流值。 開啟另外一個(gè)MSP430模塊,對(duì)電機(jī)進(jìn)行PWM控制,用示波器演示PWM輸出引腳的波形。同時(shí)也用示波器測(cè)試無(wú)線發(fā)射是否成功。測(cè)試所用儀器見表4.1所示。表5-1測(cè)試儀器序號(hào)名稱、型號(hào)、規(guī)格數(shù)量1FLUKE17B萬(wàn)用表12TDS-2024數(shù)字存儲(chǔ)示波器15.2數(shù)據(jù)測(cè)試5.2.1電壓電流測(cè)量數(shù)據(jù)表5-3 直流電機(jī)電壓、電流測(cè)量結(jié)果次數(shù)LCD顯示值萬(wàn)用表測(cè)量值電壓值電流值電壓值電流值 17.4V0.539A8.14V0.485A 27.18V1.230A8.62V1.107 37.07V1.136A7.78V1.022A 46.94V1.024

28、A7.63V0.922A 56.81V1.0067.49V0.905A5.1.2RF實(shí)際通信過(guò)程示波器圖對(duì)于NRF2041的編程主要是通過(guò)命令以及中斷信號(hào)IRQ共同完成的。對(duì)于發(fā)射節(jié)點(diǎn),如果使能ACK和IRQ功能,則當(dāng)通信成功以后(也就是發(fā)射節(jié)點(diǎn)接收到了接收節(jié)點(diǎn)送回來(lái)的ACK信號(hào))IRQ線會(huì)置低;對(duì)于接收節(jié)點(diǎn)如果使能ACK和IRQ功能,則當(dāng)通信成功以后IRQ線會(huì)置低。根據(jù)以上情況,用示波器測(cè)試RF無(wú)線模塊是否收發(fā)成功。黃色信號(hào)是CE,綠色信號(hào)是IRQ,接收成功的示波器如下圖所示。圖5-1 RF發(fā)射成功波形圖5.3 測(cè)試結(jié)果分析從表5-2、5-3我們可以看出,在基礎(chǔ)部分,直流電機(jī)的電壓和電流值,

29、誤差比較下,與預(yù)期效果比較符合。從圖5-1可知,從第一批SCK的最后一個(gè)信號(hào)到IRQ置低大致需要1ms,說(shuō)明通信成功。第六章 小結(jié)在這次選拔賽中,使我們熟悉的掌握51單片機(jī)和msp430單片機(jī)的編程,我們制作的旋轉(zhuǎn)式電子桌椅基本上完成題目的基本要求,實(shí)現(xiàn)了控制好直流電機(jī)的轉(zhuǎn)速,使直流電機(jī)的轉(zhuǎn)速平穩(wěn),也完成了無(wú)線通信和上位機(jī)模塊,但是有一些問(wèn)題沒(méi)有完全解決,比如通信協(xié)議中的數(shù)據(jù)處理不是很完善。通過(guò)這次選拔賽,我們學(xué)到了很多,它鍛煉了我們的團(tuán)隊(duì)合作能力;同時(shí)強(qiáng)化了我們隊(duì)專業(yè)知識(shí)的學(xué)習(xí),將理論應(yīng)用于實(shí)際。第七章 參考文獻(xiàn)1陳尚松,雷加,郭慶.電子測(cè)量與儀器M.北京:電子工業(yè)出版社,2005:1081

30、262徐科軍.傳感器與檢測(cè)技術(shù)M.北京:電子工業(yè)出版社,2004:12333馬忠梅.單片機(jī)的C語(yǔ)言應(yīng)用程序設(shè)計(jì)M.北京:北京航空航天大學(xué)出版社,1999:20834王幸之.AT89系列單片機(jī)原理與接口技術(shù)M.北京:北京航空航天大學(xué)出版社,2004:33525 Schultz. C and the 8051: Programming and Multitasking. PTR Prentice-Hall. 1993:33526何立民.MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)M.北京:北京航空航天大學(xué)出版社,2003:591027康華光.電子技術(shù)基礎(chǔ) 模擬部分(第五版) M.北京:高等教育出版社,200

31、6:1011478樊昌信,徐炳祥,吳成柯等.通信原理(第五版) M.北京:國(guó)防工業(yè)出版社,2004:1331379閻石,數(shù)字電子技術(shù)基礎(chǔ)(第五版) M.北京:高等教育出版社,2006:10911410 譚浩強(qiáng).C程序設(shè)計(jì)(第二版) M.北京:清華大學(xué)出版社,2004:87120.11 戴佳,苗龍,陳斌.51單片機(jī)應(yīng)用系統(tǒng)開發(fā)典型實(shí)例M.北京:中國(guó)電力出版社,2005:2585.附錄一: 主電路原理圖附錄二:部分源程序(一) 主控機(jī)主程序#include"head.h"#include "RF.H" /RF發(fā)送模式/#include "dianz

32、heng.h"#include"uart.h"/*RF發(fā)送延時(shí)函數(shù)和發(fā)送數(shù)據(jù)函數(shù)*/void Delay()/11.0592MHz 延時(shí)時(shí)間為4*RF_BH msuchar i,j,k; k=30; doi=44;j=3;dowhile (-j); while (-i);while(-k);void RF_FS() uint i=0;RF_DJ;RF_BW();for(i=0;i<32;i+) RF_W(uart_datai+num_fs*32);num_fs+;if(i=32) i=0;if(num_fs=5) num_fs=0;RF_END;RF_QD;

33、void main (void) uchar m;/*-初始化部分-*/RF_DJ;RF_INIT();RF_END;RF_SRX; InitUART();SendStr("UART test,技術(shù)論壇: 請(qǐng)?jiān)诎l(fā)送區(qū)輸入任意信息");ES=1;/*END*/ while (1) / display(); /點(diǎn)陣顯示(后三行均為顯示處理)/ shijian+;/ if(shijian=50) shijian=0;wu+;/ if(wu=20) wu=0; if(Flag_RF=1) Flag_RF=0;/RF發(fā)送標(biāo)志位清零for(m=0;m<20;m+)if(!RF_I

34、RQ)RF_DJ;RF_SRX;RF_END;RF_CIN;RF_CRX;RF_QD;Delay();RF_FS(); (二)從機(jī)主程序/#include "dianzheng.h"#include "STC12LE5204AD.H"#include "LED.H" #include "RF.H"uint num=0;uint num_js=0; /RF接收的移位標(biāo)志位(每次移32位)void RF_DACL()/-從機(jī)號(hào) 流水號(hào) 誤碼 命令 數(shù)據(jù)uint i;if(RF_RREG(0X07)&0X30)R

35、F_END;RF_SRX;return;/接收中斷驗(yàn)證RF_BR();/設(shè)置連續(xù)讀模式for(i=0;i<32;i+) pai3i+num_js*32=RF_R();num_js+;if(num_js=5) num_js=0;TR0=1;void main(void)/*-初始化部分-*/RF_DJ;RF_INIT();RF_END; RF_SRX;IT0=1;/跳變沿出發(fā)方式(下降沿)EX0=1;/打開INT0的中斷允許。設(shè)置INT1 IT1=1;EX1=1;TMOD=0x02;/選擇方式2TH0=0xA3; /0.1MSTL0=0xA3;ET0=1; /開定時(shí)器0中斷EA=1; /開

36、總中斷TR0=1; /開定時(shí)器0P0=0xFF;P1=0xFF;/*END*/TR0=1;while(1) v=10000/n;bai=v%1000/100;shi=v%100/10;ge=v%10;/display(); /點(diǎn)陣顯示(后三行均為顯示處理)/shijian+;/if(shijian=50) shijian=0;wu+;/if(wu=20) wu=0;if(!RF_IRQ)TR0=0;RF_DJ;RF_DACL();RF_END;RF_CIN;RF_CRX;RF_QD;/RF_END;RF_SRX;void int0(void) interrupt 0display1();n=t

37、;t=0;void time(void) interrupt 1t+; if(t=n/4) display2();if(t=2*n/4)display3();if(t=3*n/4) display4();(三)MSP430測(cè)量主程序/*msp430g2553電流檢測(cè)及PWM調(diào)速*/#include<msp430g2452.h>#define uint unsigned int#define uchar unsigned char#define BIT(x) (1<<(x)#define Range_3V 0 /量程為03V#define Range_15V 1 /量程為

38、015Vvoid System_Init(void);void ADC_Init(void);void LCD_Init();void LCD_Send(uchar type,uchar transdata);void Delay_nms(uint n);void LCD_Pos(uchar x,uchar y);void LCD_Display_String(const uchar *pt,uchar num);void LCD_Display(long int Data);void LCD_Display_Digit(long int num);uchar LCD_Table='0

39、','1','2','3','4','5','6','7','8','9','.','A'long int Voltage; /全局變量Voltagelong int AO; /全局變量Auint Voltage_Range;void System_Init(void) WDTCTL = WDT_ADLY_1000; /看門狗工作在定時(shí)器模式,1s中斷一次 IE1 |= WDTIE; /使能看門狗中斷 P1DIR

40、 |= BIT0 + BIT1+BIT6; /相應(yīng)的位端口設(shè)置為輸出 P1DIR &=BIT3; /P1.3作為按鍵輸入 P1SEL |= BIT6; /P1.6作為PWM輸出 P1IE |= BIT3; / P1.3 interrupt enabled P1IES |= BIT3; / P1.3 Hi/lo edge P1REN |= BIT3; / P1.3 pullup CCR0 = 10000;/ PWM 周期 =(CCRO+1)/1048576,頻率=1.048576MHz/(CCRO+1) CCTL1 = OUTMOD_7;/ CCR1 reset/set CCR1 = 1

41、000;/ CCR1 PWM 占空比% = (CCR1+1)/(CCRO+1) TACTL = TASSEL_2 + MC_1+TACLR;/ MCLK, up mode,適用于高頻率 P1SEL |= BIT4; /P1.4為A4通道 Voltage_Range = Range_3V; /Range_3V即量程為3V,Range_15V即量程為15V ADC_Init(); /ADC初始化; LCD_Init(); /液晶初始化void ADC_Init (void) ADC10CTL0 &= ENC; /復(fù)位轉(zhuǎn)換允許位 ADC10CTL0 |= ADC10ON + ADC10SHT

42、_0 + SREF_0 + ADC10IE ; /設(shè)置轉(zhuǎn)換控制寄存器ADC10CTL0,ADC10ON=0x010,使ADC10內(nèi)核工作 /ADC10SHT_0=0*0x800u,確定采樣周期為4xADC10CLKs /SREF_0=0*0x2000u,選擇參考電壓為VR+=AVCC,VR-=AVSS /ADC10IE=0x00使對(duì)應(yīng)通道轉(zhuǎn)換后產(chǎn)生中斷 ADC10CTL1 |= INCH_4 + CONSEQ_0; /設(shè)置AD轉(zhuǎn)換控制寄存器ADC10CTL1,INCH_0=0*0x1000u,選擇通道A4 /CONSEQ_1=1*2u,設(shè)置工作模式為單通道、單次轉(zhuǎn)換模式 ADC10CTL0 |

43、= ENC + ADC10SC; /設(shè)置轉(zhuǎn)換控制寄存器ADC12CTL0,ENC=0x002使轉(zhuǎn)換允許位為1 /ADC12SC=0x001使采樣/轉(zhuǎn)換控制位為1 _EINT(); /總中斷使能#pragma vector = ADC10_VECTOR_interrupt void ADC10_Interrupt(void) uint data; data = ADC10MEM; /將AD采樣值存入data if(Voltage_Range = Range_3V) /V(實(shí)際)=(VR+ - VR-)*data/1023 + VR- Voltage = (uint)(0.540*35.4*dat

44、a/10.23); /Voltage是實(shí)際電壓值的1000倍 else Voltage = (uint)(35.4*data/10.23*5.38);#pragma vector = WDT_VECTOR_interrupt void watchdog_timer(void) LCD_Display(Voltage); /顯示電壓值void LCD_Init() Delay_nms(2); LCD_Send(0,0x01); /清屏指令 Delay_nms(2); /延時(shí)等待液晶完成復(fù)位 LCD_Send(0,0x30); /功能設(shè)定:基本指令集操作 Delay_nms(2); LCD_Send(0,0x02); /地址歸0 Delay_nms(2); LCD_Send(0,0x0c); /開顯示,且關(guān)閉光標(biāo)及其反白顯示 Delay_nms(2);void LCD_Send(uchar type,uchar transdata) uchar firstbyte = 0xf8; uchar temp,i,j; if(type) firstbyte |= 0x02; P1OUT &= BIT1; for(j=3;j>0;j-) switch(j) case 3:temp=firstbyte;break; case 2:temp=tr

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論