【正文】
......... 31 參考文獻(xiàn) ........................................................... 32 附錄 ............................................................... 33 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 1 引言 研究意義 LED射燈是指發(fā)出的光線是方向性的 (directional)的 LED燈泡 , 主要類型有MR16,GU10, PAR series. LED球泡燈是指發(fā)出的光線為發(fā)散性的 LED燈泡 , 主要類型為 :E27 base. 按照功率來分 , LED燈泡可分為 : 小功率 (主要為 5mm LED生產(chǎn)的 )和大功率 (主要 1 W, 3 W ,甚至 5 W LED生產(chǎn)的 )。 為降低其成本,本設(shè)計(jì)采用了 STC12C5A60S2單片機(jī),這種單片機(jī)自帶有 A/D轉(zhuǎn)換模塊;使用的鎖存器是常用的 SN74HC573。因此各大網(wǎng)站也充斥著各種各樣的光立方版本。 關(guān)鍵詞: 光立方 制作模板 音頻顯示 A/D轉(zhuǎn)換 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 ABSTRACT Lightcube is a long, wide, high is posed of 8 x 8 x 8 leds true 3 d volumetric display. Its biggest characteristic, is to bring the viewer stereo cool 3 d visual experience. So each big web site is filled with all kinds of cubic light version. But all versions of this light cubic method is very plex, and the cost is also high, and pared with this design is beautifully simple and low cost. In order to ensure the exquisite cubic shape, this design also provides a light cube production template, to ensure that the ability to appearance difference to a minimum. To reduce its cost, this design USES STC12C5A60S2 MCU, the MCU builtin A/D conversion module。 隨著大功率 LED的價(jià)格下降 , 大功率 LED燈泡將會(huì)為市場(chǎng)主流。然而在網(wǎng)上搜索了大量相關(guān)資料后,我發(fā)現(xiàn),網(wǎng)上各種版本的光立方的制作方法都很復(fù)雜,而且成本也很高,所以我想找出一種相對(duì)成本較低,制作方法簡單,便于廣大電子愛好者學(xué)習(xí)制作的方法。 該論文的內(nèi)容安排 開篇引言主要介紹研究的意義和目前光立方的研究現(xiàn)狀。 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 3 光立方的設(shè)計(jì)方案 本設(shè)計(jì)基本功能和特點(diǎn) 8*8*8LED陣列 3D光立方體顯示器,設(shè)計(jì)方案精簡,電路簡潔,采用的材料是高亮藍(lán)色霧面 LED燈,可以達(dá)到光立方最佳視覺效果。 全開放式用戶自定義操控,用戶可根據(jù)自己的喜好自行編寫對(duì)應(yīng)的程序。 P4口的 4,5,6引腳則用來接三個(gè)按鍵,分別控制:圖形顯示、音頻輸出、夜燈模式,這三個(gè)模式的選擇。 以下是單片機(jī)管腳圖及功能介紹。而是選擇用常用的芯片做為光立方的驅(qū)動(dòng)。這對(duì)檢修是很有利的。其中 1 號(hào)和 10 號(hào)引腳接 5V 直流電源(以下簡稱 DC)的負(fù)極,就是圖中的 GND(表示接地端,接負(fù)極就行); 11 號(hào)引腳接到 STC 單片機(jī)的 P2 口,一共 8 個(gè) 573芯片,對(duì)應(yīng)接到 P2 的 07 口(這個(gè)在買的單片機(jī)最小系統(tǒng)上有標(biāo)識(shí));20 號(hào)引腳接到 5V DC 的正極; 2 號(hào)引腳到 9 號(hào)引腳接到單片機(jī)的 P0^1P0^7。 Keil 提供了包括 C 編譯器、宏匯編、連接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個(gè)集成開發(fā)環(huán)境( uVision)將這些部份組合在一起。 sbit F0 = PSW^5。 //Data Pointer High Byte //新一代 1T 8051 系列 單片機(jī)中斷特殊功能寄存器 //有的中斷控制、中斷標(biāo)志位 散布在其它特殊功能寄存器中,這些位在位地址中定義 //新一代 1T 8051 系列 單片機(jī) I/O 口特殊功能寄存器 sfr P2M0 = 0x96。 sfr P4SW = 0xBB。 sbit IE0 = TCON^1。 生成 .hex 文件的界面說明: 圖 按照上圖中所示的步驟,先在“ Project”中選擇“ Options for Target “ Target 1”” ,在之后出現(xiàn)的界面中,點(diǎn)擊“ Output”選項(xiàng),就會(huì)出現(xiàn)上圖有半部分的界面。動(dòng)畫顯示部分支持用戶自定義圖形。a0。 Void T0_time() interrupt 1 { TH0=(6553545872)/256。 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 22 顯示部分測(cè)試結(jié)果 由 于 Proteus軟件里沒有該設(shè)計(jì)所用的單片機(jī),且測(cè)試程序大于 51單片機(jī)的 8K內(nèi)存。(建議最好買十個(gè),多買兩個(gè)以備特殊情況。 ②用 18*30的萬用板制作光立方焊接模板,以便達(dá)到最好的焊接效果。 不過插針焊接比較麻煩,每焊一個(gè)插針都需要調(diào)整一次。 問題二:換上一個(gè)使 LED全亮的程序,發(fā)現(xiàn)只有個(gè)別的燈亮,其他的都不亮。焊接好以后再次測(cè)試,一切順利。最初焊接光立方 8 8的面時(shí),每個(gè)LED引腳的連接都是很困難的。 在焊接驅(qū)動(dòng)電路時(shí),底板的每個(gè)插針又要重新動(dòng)一次以便與控制引腳連接。在獲得知識(shí)的同時(shí),我也認(rèn)識(shí)到了自己還需要學(xué)習(xí)的東西很多,理論需要很好的結(jié)合實(shí)踐,全面分析并解決問題的能力有待提高。 /*rank:A,1,2,3,4,I,心 ,U*/ uchar code table_cha[8][8]={0x51,0x51,0x51,0x4a,0x4a,0x4a,0x44,0x44,0x18,0x1c,0x18,0x18,0x18,0x18, 0x18,0x3c,0x3c,0x66,0x66,0x30,0x18,0xc,0x6,0xf6,0x3c,0x66,0x60,0x38,0x60,0x60,0x66,0x3 c,0x30,0x38,0x3c,0x3e,0x36,0x7e,0x30,0x30,0x3c,0x3c,0x18,0x18,0x18,0x18,0x3c,0x3c,0x66, 0xff,0xff,0xff,0x7e,0x3c,0x18,0x18,0x66,0x66,0x66,0x66,0x66,0x66,0x7e,0x3c}。 TH0=0xc0。a)。 } /*To figure out the round number*/ uchar abs(uchar a) { uchar b。 if ((*a)(*b)) { t=(*a)。j8。j8。 ch0=~ch1。 } } /*The first variable is the distance from the midpoint. 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 37 The second is the layer. the third is the flash speed of the time between each two point. The forth is the enable io,it controls weather draw or claen.*/ void cirp(char cpp,uchar dir,uchar le) { uchar a,b,c,cp。 c=dat[cp]amp。 t=maxt(abss(a1),abss(b1),abss(c1))。it。x1,amp。 for (i=x1。j++) display[j][i]|=t。 display[y2][z1]|=t。=t。i=y2。j=z2。i=z2。i=z2。i8。 } } void rolldisplay(uint speed) { uchar j。(a24)) boxtola(a,table_id[j])。 }。 break。 case 0: for (i=0。i7。i++) { line(i,7,0,i,7,7,0)。 line(6i,0,0,6i,0,7,1)。 delay(speed)。 }。 break。 case 0: for (i=0。 } } void trans(uchar z,uint speed) { uchar 。 }。 if (i7) box_apeak_xy (3,4,0,i,7,7,1,0)。 delay(speed)。i++) { line(7i,0,0,7i,0,7,0)。i7。 case 2: for (i=0。 } } void roll_apeak_xy(uchar n,uint speed) { 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 42 uchar i。 }。 delay(speed)。 display[7][6i]=255。j++) { a=i+j。 } if ((i=16)amp。 } } void poke(uchar n,uchar x,uchar y) { uchar i。z2)。j=y2。i++) display[j][i]|=t。j=z2。=t。=t。i++) { for (j=y1。z1,amp。 } void box(uchar x1,uchar y1,uchar z1,uchar x2,uchar y2,uchar z2,uchar fill,uchar le) { 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 38 uchar i,j,t=0。 c1=c1*10/t。 b1=y2y1。 b=(dat[cp]2)amp。xx8。 } } void point(uchar x,uchar y,uchar z,uchar le) { uchar ch1,ch0。i=3。 } void clear(char le) { 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 36 uchar i,j。 return a。 河南理工大學(xué)畢業(yè)設(shè)計(jì)(論文)說明書 35 else n=0。b) for(a=2。 /*initializtion That is to initialize the program . It is write to set the timer in c52 mcu. So the program can renovate the led_3d_cube in fixed time use the interrupt function.*/ void sinter() { IE=0x82。在此,也對(duì)他們表示衷心感謝。求學(xué)歷程是艱 苦的,但又是快樂的。有網(wǎng)友用的是排插,但是那樣 會(huì)影響到最終的美觀。 而本設(shè)計(jì)旨在設(shè)計(jì)出一種制作簡單、低花費(fèi)、高質(zhì)量的光立方。 解決辦法:再次查看程序,沒有錯(cuò)誤。 解決辦法:用萬用表測(cè)試了一下串亮的 LED,發(fā)現(xiàn)有一個(gè) LED燒壞了造成部分電路短路。依照該模板焊接焊接依次 8層 8*8LED立方體面。 LED燈的長腳的是正極,用萬用表的負(fù)極,短一點(diǎn)的是負(fù)的引腳。這樣的燈我是在淘寶網(wǎng)上購買的。針對(duì)晶振為 50ms的初值是 45872。 } 其中 z代表你想延長的時(shí)間,單位為秒。 如果想用不太嚴(yán)格的延時(shí)的話,程序一般可這樣書寫: include define uint unsigned int void delay(uint z) { int a,i,j。 程序流程圖 我們所做的光立方,如圖 ,有三個(gè)獨(dú)立按鍵,分別是 , , ,其中 是控制音頻顯示, , 。 //T1 Low Byte sfr TH1 = 0x8D。 sbit IE1 = TCON^3。 //8 bitPort4 1111,1111 sfr P4M0 = 0xB4。 //Stack Pointer 0000,0111 sfr DPL = 0x82。 //Program Status Word CY AC F0 RS1 RS0