|
摘要 隨著社會的發(fā)展,科技也得到進(jìn)步。相對的,人們對人文的需要也越來越重視。我們從科技服務(wù)于人文的角度出發(fā),設(shè)計出本POV-LED顯示系統(tǒng)。該系統(tǒng)使用STC89C52RC作為主要控制單元,采用的是POV -LED(POV即persistence of vision視覺停留)技術(shù),借助人眼的視覺暫留效果,通過旋轉(zhuǎn)LED燈的方式來顯示各種圖像。原理是通過電動機(jī)帶動上層的LED燈繞電機(jī)為中心軸高速旋轉(zhuǎn),同時單片機(jī)采集傳感器反饋的信息,控制各個LED燈在旋轉(zhuǎn)平面對應(yīng)的位置上點亮,構(gòu)成一幅點陣畫,由于人的視覺暫留效果,會認(rèn)為LED是同時點亮的,從而顯示圖像。
一、系統(tǒng)設(shè)計方案 1.1、總體方案 本設(shè)計采用雙電源供電的方式,一部分供給下層的點擊,另一部分供給上層的單片機(jī)。旋轉(zhuǎn)線陣LED顯示屏在高速旋轉(zhuǎn)時,使用通過軟件延時使之在相應(yīng)的時刻亮滅,人的視覺暫留現(xiàn)象,從而形成完整連續(xù)的圖像。因此對于顯示方面可以采用單片機(jī)依據(jù)其晶振頻率控制延時來實現(xiàn)。采用霍爾傳感器采集數(shù)據(jù)并檢測標(biāo)志桿,標(biāo)志桿作為現(xiàn)實的起點,從而得到穩(wěn)定的顯示畫面。由獨立按鍵開關(guān)的切換程序功能,從而顯示不同的畫面。 系統(tǒng)框圖如下: 1.2系統(tǒng)組成 電源部分: 供電部分主要由兩排4節(jié)5號電池通過電池盒固定連接組成,能在較長時間內(nèi)穩(wěn)定輸出5v的直流電壓供電機(jī)及單片機(jī)使用。 單片機(jī)部分:單片機(jī)部分采用STC89C52RC系列單片機(jī)芯片,該系列芯片造價低廉,工作穩(wěn)定。 旋轉(zhuǎn)顯示部分:旋轉(zhuǎn)顯示部分主要由16顆貼片式led發(fā)光二極管組成。 傳感器部分:傳感器部分采用霍爾傳感器。 2.1主控板的選擇 | | 采用ARM為系統(tǒng)的控制核心,優(yōu)點是功能強(qiáng)大,集成度度高,提高了運行穩(wěn)定性,系統(tǒng)的處理速度高,適合作為大規(guī)模的系統(tǒng)的控制核心。
| 采用51單片機(jī)作為系統(tǒng)的控制核心。用其控LED,足以實現(xiàn)預(yù)期的性能指標(biāo),操控。51單片機(jī)運算功能強(qiáng),軟件編程靈活、自由度大,功耗低、體積小、技術(shù)成熟,價格低廉。 |
由于考慮到不宜太高,那么對系統(tǒng)處理信息的速度要求也就不會太高。綜合成本考慮,我們選擇采用方案二。 2.2 供電方式選擇 LED旋轉(zhuǎn)采用電機(jī)旋轉(zhuǎn)的方式,以下是兩種電機(jī)方案的對比: | | 采用單電源供電,通過單電源同時給主控板和減速直流電機(jī)進(jìn)行供電,該方案的優(yōu)點是,減少機(jī)身的重量,操作簡便。其缺點是,使得單片機(jī)的波動較大,影響單片機(jī)的工作性能,穩(wěn)定性比較弱。 | 采用雙電源供電,通過兩個獨立電源分別對單片機(jī)和減速直流電機(jī)進(jìn)行供電,此方案的優(yōu)點是,減少信號波動,穩(wěn)定性比較好,小車運行較穩(wěn)定。 |
通過對以上方案盡心比較以上兩種方案,為了得到更穩(wěn)定的效果,我們選取方案二。
2.3 驅(qū)動電機(jī)選擇 | | 采用減速直流電機(jī),優(yōu)點是電路簡單。轉(zhuǎn)速穩(wěn)定,調(diào)速簡便,且價格低廉。對于智能車的運行,能夠很好的控制。 | 采用步進(jìn)電機(jī),步進(jìn)電機(jī)是將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰苹蚓位移的開環(huán)控制元步進(jìn)電機(jī)件。可以按照人們的預(yù)定的速度調(diào)速,但是電機(jī)的控制較為復(fù)雜。 |
表1.1 電機(jī)性能對比
綜合考慮,采用減速直流電機(jī)作為LED旋轉(zhuǎn)電機(jī)。 2.4傳電方案的選擇 該裝置的難點之一在于供電底座與需要用電的旋轉(zhuǎn)發(fā)光部分的電氣連接,裝置要求能給旋轉(zhuǎn)發(fā)光部分提供穩(wěn)定的直流電壓的同時阻力較小不影響電機(jī)帶動其轉(zhuǎn)動。 1電刷連接 優(yōu)點:成本相對較低,能提供穩(wěn)定電壓,同時電刷工作時旋轉(zhuǎn)有一定的美觀性,阻力較大。 缺點:會有輕微的噪聲,穩(wěn)定性較差,易損毀,接觸電阻較大,電壓損耗較大,制作工藝要求高。 2劃環(huán) 優(yōu)點:能提供穩(wěn)定電壓,接觸電阻極其小,電壓損耗較小,占用體積較小,阻力較小。 缺點:元件價格高。 3無線供電 優(yōu)點:能提供穩(wěn)定電壓,阻力較小。 缺點:電路元件數(shù)量較多,占用體積較大 綜合考慮我們采用無線供電方式。 2.5旋轉(zhuǎn)顯示部分的選擇 貼片式Led發(fā)光二極管 優(yōu)點:體積較小,重量較輕。 缺點:亮度稍暗,不適用于室外強(qiáng)光環(huán)境。 直插式led發(fā)光二極管 優(yōu)點:亮度較高,顯示效果好。 缺點:占用體積較大,重量較大。 綜合考慮我們采用貼片式Led發(fā)光二極管。 3、電路與程序設(shè)計 3.1無線供電 單片機(jī)系統(tǒng)和LED燈都分布在電機(jī)上,被電機(jī)帶東旋轉(zhuǎn),如果直接用電線必然會被絞在一起然后斷掉,有團(tuán)隊考慮了兩種方案:1.電刷供電;2.無線供電。在嘗試第一種電刷時,由于電機(jī)轉(zhuǎn)動會產(chǎn)生微微振動,使得電刷不夠穩(wěn)定導(dǎo)致單片機(jī)芯片一直處于重置狀態(tài)。所以采用了無線供電,電路圖如下: 原直流電電源供電經(jīng)過高頻振蕩電路產(chǎn)生振蕩電流傳到傳送模塊—感應(yīng)線圈。用感應(yīng)線圈把電能傳到電機(jī)上的電路,傳上了的電是交流電,經(jīng)過整流橋和電容整流濾波后,產(chǎn)生一個穩(wěn)定的直流電壓給單片機(jī)供電。 3.2起始位置校準(zhǔn) 電機(jī)轉(zhuǎn)速的穩(wěn)定性直接決定了顯示是否有重影和浮影。然而,要其完全不變是不可能的。在這種情況下,誤差會積累而形成浮影。 所以,對起始位置的不斷矯正是理由非步進(jìn)電機(jī)制作旋轉(zhuǎn)LED顯示屏必不可少的技術(shù)。通過霍爾傳感器檢測置于固定位置的小磁鐵來不斷定位起始位置消除積累誤差。本裝置中當(dāng)霍爾原件到固定小磁鐵位置,就會反向?qū)óa(chǎn)生低電平而觸發(fā)外部中斷。指針板每旋轉(zhuǎn)一周,就會產(chǎn)生這樣一個中斷信號,這個信號被稱為“過零信號”。 外部中斷的任務(wù)是將旋轉(zhuǎn)角度清零,以此消除積累誤差。 3.3功能切換 通過當(dāng)按住按鍵時,讓STC89C51芯片IO口檢測到低電位,然后通過程序設(shè)計來實現(xiàn)功能切換; 3.4最小系統(tǒng)與LED線陣 一個條狀電路板上集成了16個貼片型發(fā)光LED—線陣LED。集成有LED的電路板繞其一端隨電動機(jī)轉(zhuǎn)動。由STC89C51芯片IO口控制,當(dāng)轉(zhuǎn)動到合適的角度時,對應(yīng)的IO口輸出高電平點亮合適的LED就可以顯示需要顯示的內(nèi)容。 4 軟件設(shè)計 4.1 軟件平臺 簡介:Keil C51是美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。Keil提供了包括C編譯器、宏匯編、鏈接器、庫管理和一個功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(μVision)將這些部分組合在一起。運行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。如果你使用C語言編程,那么Keil幾乎就是你的不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會令你事半功倍。[3]工作界面如圖4.4.1。
另一款用到的軟件是PCtoL2002,可以有效減少程序開發(fā)周期。工作界面如圖4.4.2
4.2程序流程設(shè)計 該P(yáng)OV-LED通過實時檢測各個模塊傳感器的輸出電平,利用紅外對管檢測黑線實現(xiàn)尋跡,通過火焰?zhèn)鞲衅鲗崿F(xiàn)報警和滅火,從而實現(xiàn)比賽的基本要求。其程序流程圖如圖4.4所示。 5 結(jié)束語 項目設(shè)計以STC89C52RC單片機(jī)為核心,采用了霍爾傳感器,工作靈敏。該機(jī)器人可以實現(xiàn)了如下能: 6附錄
單片機(jī)源程序如下:
- #include <reg52.h>
- #include<intrins.h>
- #define uint unsigned int
- #define uchar unsigned char
- //Led P1,P2
- sbit key=P3^3;//霍爾開關(guān)
- sbit key_1=P3^4;//功能開關(guān)
- voidtongxinyuan();
- voidhanzi();
- int s;
- s=0;
- uchar code table[]={
- 0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x20,0x80,0x10,0x80,0x10,0x80,0x08,0x80,0x08,
- 0x80,0x0C,0x80,0x04,0x90,0x06,0x90,0x02,0x88,0x03,0xC8,0x01,0xD8,0xF9,0xF8,0xFF,
- 0xF4,0x7F,0x54,0x02,0x46,0x02,0x46,0x02,0x42,0x02,0x40,0x04,0x00,0x04,0x00,0x04,
- 0x00,0x04,0x40,0x04,0x40,0x04,0xC8,0x02,0x90,0x02,0x90,0x02,0x10,0x02,0x00,0x02,
- 0x01,0x02,0x03,0x02,0xFF,0xFF,0xFE,0xFF,0xFE,0x3F,0x00,0x02,0x00,0x02,0x00,0x02,
- 0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"科",0*/
-
- 0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x00,0x18,0x00,0x18,0x40,0x18,0x40,0x08,
- 0x40,0x08,0x40,0x44,0x40,0x84,0x40,0x84,0x40,0x86,0x43,0xE2,0xFF,0xFF,0xFE,0xFF,
- 0x22,0x01,0x20,0x01,0x20,0x00,0x20,0x80,0x00,0x80,0x00,0x80,0x00,0x86,0x20,0x86,
- 0x20,0x46,0x20,0x46,0x20,0x4A,0x20,0x4A,0x21,0x71,0xF3,0x31,0xFE,0x31,0x3E,0x31,
- 0x36,0x39,0x12,0x7F,0x10,0x6F,0x10,0x47,0x10,0xC1,0x10,0xC1,0x10,0xC0,0x10,0x80,
- 0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"技",1*/
-
- 0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x20,
- 0x00,0x20,0x00,0x10,0x00,0x10,0x00,0x18,0x00,0x08,0x00,0x0C,0x00,0x06,0x00,0x06,
- 0x00,0x03,0x80,0x01,0xC0,0x01,0xE0,0x00,0x70,0x00,0x7C,0x00,0xBC,0x00,0x1C,0x01,
- 0x0C,0x01,0x04,0x03,0x00,0x02,0x00,0x06,0x00,0x04,0x00,0x0C,0x00,0x0C,0x00,0x18,
- 0x00,0x18,0x00,0x30,0x00,0x30,0x00,0x70,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,
- 0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"人",2*/
-
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x40,0x00,0x40,
- 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x41,0x40,0x21,0x40,0x21,0x40,0x21,
- 0x20,0x22,0x20,0x32,0x22,0x16,0x22,0x1C,0x22,0x1C,0x26,0x0E,0xE6,0x0F,0xE6,0x1F,
- 0xE4,0x11,0xE0,0x30,0x10,0x30,0x10,0x20,0x10,0x60,0x10,0x60,0x10,0x40,0x10,0xC0,
- 0x10,0xC0,0x10,0xC0,0x10,0xC0,0x10,0xC0,0x10,0xC0,0x00,0x80,0x00,0x80,0x00,0x80,
- 0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"文",3*/
-
- };
-
- voiddelayms(uint z)
- {
- uinti,j;
- for(i=z;i>0;i--)
- for(j=110;j>0;j--);
-
- }
- /*****n(us)延時子程序*****/
- voidDelayUs(uint N)
- {
- uint x;
- for(x=0; x<=N;x++);
- }
- /*****鍵盤掃描*****/
- intkeyscan()
- {
- if(key_1==0)
- {
- delayms(10);
- if(key_1==0)
- {
- while(!key_1);
- if(++s==3)s=0;
- }
- }
- return s;
- }
-
- //****************同心圓******************
- voidtongxinyuan()
- {
- int k;
- P1=0x01;
- for(k=0;k<8;k++)
- {
- delayms(500);
- P1=_crol_(P1,1);
- }
- P1=0x00;
- P2=0x01;
- for(k=0;k<8;k++)
- {
- delayms(500);
- P2=_crol_(P2,1);
- }
- P2=0x00;
- while(key_1);
- }
- //****************漢字******************
- voidhanzi()
- {
- inti;
- if(key==0)
- {
- for(i=0;i<512;i++)
- {
- P1=table[i];
- P2=table[++i];
- DelayUs(10);
- }
- P1=0x00;
- P2=0x00;
- }
- }
-
- //****************主函數(shù)******************/
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
完整的Word格式設(shè)計報告文檔51黑下載地址:
基于STC89C52的POV.docx
(323.17 KB, 下載次數(shù): 218)
2017-10-31 12:27 上傳
點擊文件名下載附件
報告 下載積分: 黑幣 -5
|