基于單片機的光立方設計
目 錄
摘要1
Abstract2
前言3
第1章 緒論4
第1.1節 開發背景4
第1.2節 本文所作的工作4
第2章 系統總體方案設計5
第2.1節 光立方控制原理5
第2.2節 系統總體硬件方案選擇6
2.2.1核心控制器6
2.2.2 電源電路7
2.2.3 層面控制驅動電路7
2.2.4 LED燈選型7
2.2.5編譯器選擇8
第3章 系統硬件電路設計與實現9
第3.1節硬件電路設計9
3.1.1 單片機介紹9
第3.2節 總控制電路設計10
3.2.1 復位電路11
3.2.2 晶振電路12
3.2.3 供電系統及電源接口設計13
3.2.4 層控制電路設計13
3.2.5 行列選擇電路設計14
3.2.6 程序下載電路設計14
第3.3節 LED 光立方焊接方法15
第4章 系統軟件設計18
第4.1節 軟件編譯流程18
第4.2節 軟件設計流程22
第4.3節 顯示程序設計23
4.3.1 光立方動態顯示原理23
4.3.2 顯示程序的設計23
第5章 系統調試與分析25
第5.1節 硬件調試25
第5.2節 軟件調試25
結論26
參考文獻27
致 謝28
附錄 光立方實物圖29
摘要
LED光立方是由512個LED燈組成的立方體,其有8行8列8層LED燈構成。光立方使用的主控芯片宏晶科技公司生產的STC89C52單片機,使用ULN2803達林頓管芯片作為LED燈的層驅動電路,使用74HC573鎖存器芯片作為LED燈的列驅動電路。整篇文章介紹了LED光立方的原理,方案選擇、電路設計和軟硬件調試等內容,完整的介紹了整個系統的制作過程。整個系統運行起來,能呈現出一個3D立體的動畫效果,從而顯示出更加豐富多彩的畫面,打破了以前傳統的平面顯示方案,為將來LED燈技術發展提供了方向。
關鍵詞:STC89C52,光立方,LED,ULN2803,74HC573
Abstract
LED Light Cube is a cube composed of 512 LED lights, which has 8 rows of 8 columns and 8 layers of LED lamp. The main chip used by the optical cube Acer Technology STC89C52 microcontroller, the use of ULN2803 Darlington tube chip as a layer of LED lamp drive
circuit, the use of 74HC573 latch chip as a column LED driver circuit. The whole article describes the principle of LED light cube, program selection, circuit design and hardware and software debugging and other content, a complete introduction to the whole
system of the production process. The whole system to run up and can show a 3D three-dimensional animation, which shows a more colorful picture, breaking the previous flat-panel display program for the future development of LED light technology provides a
direction.
Keywords: STC89C52, light cube, LED, ULN2803, 74HC573
前言
LED點陣早已融入到我們生活中,走在大街上到處都可以看見顯示各種文字、圖案的LED顯示屏,人們早已看慣了那種平面顯示的廣告了。如何對LED屏進行創新,重新吸引人們的眼球呢?聯想到現在的3D電影,3D電影給人們帶來了視覺上的享受,如身臨其境的感覺。從圖書館和網上查找LED燈的資料,了解到LED燈的技術特點:一是使用壽命長,單個LED燈壽命長達10萬小時,二是節能,LED燈功耗非常低,三是基本沒有電磁輻射。 LED燈還具有比數碼管具有實用、便宜、高亮度等特點,并且做出了LED顯示屏非常耐用。 LED燈具還具有低工作電壓、低功耗、高亮度、長壽命、性能穩定、小型化和抗沖擊等優點。目前,光立方已經用于娛樂室、會議室、家庭、大型音樂會、地標等城市布局和裝飾的地方,也可以用于更廣闊的領域,具有廣闊的應用前景。
第1章 緒論
第1.1節 開發背景
在09年10月1日,建國60周年的國慶晚會上,導演像人們展示了美輪美奐的光立方,該光立方由4028顆發光樹組成。其漂亮的造型,優美的表演,給人們留下了深刻的映像。而傳統的LED顯示屏只能顯示寫平面文字和圖案,全國有好多家生產傳統顯示屏的廠家,但是生產的顯示屏都是大同小異,沒有創新。設計將打破傳統的屏幕顯示方法,LED光立方顯示色彩鮮艷,立體感強,可廣泛應用于大型晚會、演唱會、廣告公司、酒店和車站等公共場所,相比于傳統顯示屏,肯定會深受廣大人民群眾的歡迎。
第1.2節 本文所作的工作
本次設計一個由512個LED燈組成的8*8*8光立方,整個設計的電路由六部分組成:電源電路、單片機最小系統電路、程序下載電路、行驅動電路、列驅動電路和顯示電路等。主控芯片選用宏晶科技公司生產的STC89C52單片機,電源芯片采用LM2596-5 DC-DC降壓芯片,列驅動電路采用8個74HC573鎖存器芯片,行驅動電路采用ULN2803達林頓管芯片,顯示電路為512個LED燈組成的8*8*8立方體。設計還包括電路焊接、程序編寫及軟硬件的調試燈工作。
設計的主要內容:
1、選擇每個模塊的設計方案。
2、設計每個模塊的工作電路。
3、焊接電路。
4、編寫程序,實現光立方需要顯示的視覺效果。
第2章 系統總體方案設計
第2.1節 光立方控制原理
LED光立方由512個LED燈組成,其每層有8行8列總共64個LED燈,總共有8層。每層的64個LED燈陰極接一起然后與8個74HC573鎖存器芯片的輸出端相連,然后每層陽極接到一起,與UNL2803達林頓管芯片的輸出端相連。
其顯示原理如下,先通過單片機控制ULN2803芯片的某個引腳輸出高電平,控制光立方的第一層,然后用控制74HC573鎖存器芯片來控制哪幾列的燈亮,然后給個5mS的延時,在把ULN2803芯片的另外引腳輸出高電平,然后在來控制74HC573鎖存器芯片。如此快速的切換芯片的高低電平輸出,就達到了動態顯示的效果。其中有個人眼視覺暫留原理,人眼的分辨率是每秒24幀,當我LED燈切換速度足夠快,在人眼看了,那就是一立體的畫面了。
圖一、光立方立體效果圖
圖二、光立方面效果圖
本節主要講系統的設計方案論證,從多方面角度對系統所使用的芯片進行分析比較,最后經仔細研究確定使用的器件、編程軟件和電路圖繪制軟件的選擇。
第2.2節 系統總體硬件方案選擇
2.2.1核心控制器
控制器是整個系統的核心部分,其功能控制I/ O輸出高低電平,從而控制LED燈的亮滅,實現各種不同的動畫效果。其常用的電子設計控制芯片有單片機和FPGA。
方案一:單片機
單片機是一種集成電路芯片,內部集成了ROM、RAM、定時器等很多功能,在日常生活中,我們常用的電子產品、家用電器里面都離不開單片機的控制。目前單片機種類眾多,型號有8位單片機,16位單片機,32位單片機和64位單片機。有些單片機上集成了A/D,D/A,LCD驅動,USB驅動、SD卡驅動、函數發生器,PWM波等等功能,而且他們價格高低不同,開發者可以根據項目的需求選擇合適價格和功能的單片機。
方案二:FPGA
FPGA是一種可以編程的硬件芯片,使用Verilog語音能對它進行編程,能夠實現很多硬件的功能。FPGA可以實現硬件并行工作,在實時測量和控制以及高速應用領域具有光明的未來。但是FPGA開發難度大,成本高,LED光立方系統中用FPGA來開發很不劃算。
綜上所述,兩種方案都可以通過編程實現對光立方的控制,但是單片機的技術門檻低,只需要懂C語言就能進行開發,而且單片機開發成本低,一般芯片只需要幾塊錢就能買到,相比FPGA動輒幾百幾千的芯片,其成本可以忽略不計了。現在市場上常用的單片機主要有8位單片機MCS-51、STM8 和STC,16位單片機 MSP430,32位單片機STM32等。目前使用最廣泛的單片機是ATMEL公司的51系列單片機,其產品硬件結構合理,指令系統規范,很多教材都是以51系列單片機作為模板來講解的。綜上所述,該系統使用STC89C52單片機來控制。
2.2.2 電源電路
方案一:LED光立方系統使用LM7805線性穩壓電路給系統供電,先通過適配器把市電降壓輸入到電路,然后在把降壓后的電源輸入到LM7805線性穩壓電路為整個系統供電。LM7805芯片的優點是電路簡單,工作穩定,但是降壓的效率比較低,只有50%左右,發熱量大,考慮到系統功耗會比較大,長時間工作會浪費電能,因此不采用此芯片
方案二:LED光立方系統使用LM2596-5 DC-DC降壓電路給系統供電,先通過適配器把市電降壓輸入到電路,然后在把降壓后的電源輸入到LM2596-5降壓為整個系統供電。LM2596-5的降壓效率為85%,效率高,滿足系統的功耗要求。
綜上所述,選擇LM2596-5降壓芯片加適配器的方式為光立方系統供電。
2.2.3 層面控制驅動電路
方案一:采用八個NPN三極管(型號:S8050),使用三極管來放大電流,雖然這種方法可以達到驅動LED燈層的目的,但是此方法是才有的分立元器件,增加了板子的面積帶來成本的增加,而且布線麻煩,焊接時也容易出錯,穩定性差,因此不采用此方案。
方案二:使用芯片ULN2803,該芯片內部有八個NPN型達林頓管,能驅動大電流設備,可以滿足512個LED燈的功耗。而且用一個芯片替代八個NPN三極管,不僅體積變小了,節約了成本,簡化了電量,還提高了系統的穩定性。
綜上所述,選擇ULN2803芯片來作為層驅動電路。
2.2.4 LED燈選型
方案一:使用草帽型LED燈,但是這種燈光源發散很嚴重,點亮時會影響周圍的LED燈,會降低視覺效果,影響光立方整體顯示的性能。
方案二:使用方形高亮LED燈,這種燈工作電流為2mA至10mA。方形LED燈聚光效果好,即使所有燈全部工作,也不會影響整體顯示效果。
綜上所述,采用方形的LED燈來顯示。
圖2-2 左邊為方形LED燈,右邊為草帽型LED燈
2.2.5編譯器選擇
方案一:使用偉福WAVA600編譯器,該編譯器是專門用來編譯匯編程序的軟件,同時該軟件有個配套使用的仿真器,該仿真器可以當做單片機來使用,還可以通過偉福軟件來選擇需要仿真的單片機型號。偉福軟件可以對匯編程序進行單步調試,方便查找程序問題。但是該軟件只能使用匯編來編寫,匯編程序本身就比較復雜難懂,需要熟悉每條指令的含義,對于編寫光立方程序,難度太大了。而且配套的仿真器價格比較貴,一套好的仿真器價格需要1000多,成本太高。
方案二:使用Keil編譯器,Keil是由ARM公司開發的一款單片機編程的軟件,該軟件支持51系列、stm32系列等多種型號單片機,支持多種該軟件支持C語音開發和匯編語音開發,或者C語音和匯編語音混合開發。該軟件能支持單片機軟件仿真和軟硬件在線實調試,但是對于51系列單片機只支持軟件仿真,51系列單片機不支持在線調試。
綜上所述,選擇Keil編譯器來編寫程序,Keil使用方便,功能強大,且C語音可讀性和可移植型都比匯編語音強。
2.2.6電路設計軟件選擇
方案一:使用Multisim軟件來設計電路圖,該軟件是用來進行模擬和數字電路仿真的,可以用來繪制原理圖,但是這款軟件的功能是偏仿真使用的,對繪制電路圖的功能不是很強大。
方案二:使用Altium Designer軟件來設計電路圖,該軟件不僅可以制作原理圖,設計PCB電路板,而且可以對原理圖電路進行仿真調試,在實際工作中,很多公司都用這款軟件來設計電路,深受廣大電子工程師的喜愛。
綜上所述,使用Altium Designer軟件來設計本系統電路圖。
第3章 系統硬件電路設計與實現
第3.1節硬件電路設計
系整個系統由STC89C52單片機、電源模塊、復位電路、時鐘電路、行驅動電路、列驅動電路和512個LED燈組成,其原理圖如圖3-1所示。
圖3-1 系統原理圖
3.1.1 單片機介紹
STC89C52單片機是宏晶科技公司研發的一款高性能8位單片機。STC89C52單片機使用的是51的內核,它的指令集和I/O口與MSC-51單片機是完全兼容的。
STC89C52系列單片機主要特性如下:
(1)工作電壓:5 V
(2)用戶應用程序空間(Flash)為8K。
(3)隨機存儲控件(RAM)為512字節。
(4) 有32個通用I/O端口,單片機復位后,所有的I/O口的狀態,是一個準雙向口/弱上拉狀態。P0口為開漏輸出,用作地址擴展總線時,不需要加上拉電阻,用作普通I/O 口使用時,需要加上拉電阻。
(5)單片機總共3個16位定時器/計數器,分別是定時器T0、T1、T2。
單片機STC89C52引腳圖如圖3-2所示:
圖3-2 STC89C52引腳圖
單片機P0口是一個漏極開路的8位雙向I/O口。在作為輸出端口時,每個引腳需要外接一個上拉電阻才能輸出高電平,否則只能輸出高組態,會影響電路正常工作。
P1、P2、P3口是一個帶內部上拉電阻的8位雙向I/O口。
P3口除作為一般I/O口外,還有其他一些復用功能,如表3-1所示。P3口除了具有MSC-51單片機功能外,其P3.0、P3.1口在STC系列單片機里面還具有下載程序的功能。
表3-1 P3口引腳復用功能
第3.2節 總控制電路設計
圖3-3為單片機最小系統原理圖。總控制電路主要由電源電路、復位電路和晶振電路組成。單片機STC89C52加電時,需要進行復位操作,復位后STC89C52的工作環境配置成初始狀態,并從程序的開始進行運行。RST引腳接復位電路,本系統采用12MHz的外部晶振電路。
圖3-3 單片機最小系統原理圖
3.2.1 復位電路
STC89C52單片機是高電平復位,至少需要給單片機的復位腳提供24個晶振震蕩周期的時間,單片機才能復位。
單片機常用的復位電路有兩種,一種是手動復位,另一種是上電復位。
上電復位電路是單片機的復位腳接一個1uF電容到電源上,同時接一個10K電阻到地。當系統上電以后,電源給電容充電,電路導通,單片機的復位腳是高電平,單片機復位。然后等電容充滿電后,電容就相當于短路了,單片機的復位腳接地是低電平,單片機就能工作了。
手動復位是在上電復位電路的基礎上再電源和復位腳之間接一個按鍵(也就是在電容上并一個按鍵)。在單片機正常工作時,如果系統需要復位,就把此按鍵按下。這時電容短路,單片機復位腳是高電平,系統復位。等系統復位后,在把按鍵松開,電源和復位腳之間又斷開了,復位腳為低電平,單片機正常工作。
本電路采用的是手動復位電路,其復位電路如圖3-4所示。
圖3-4 復位電路原理圖
3.2.2 晶振電路
每個單片機運行都需要一個基準的時鐘源,單片機所有的指令執行時間都是以這時鐘源來決定的,時鐘頻率越高,單片機執行的速度就越快。但是單片機也有個上限時鐘頻率,STC89C52的最快時鐘頻率是40MHz。
單片機的時鐘源我們常稱為晶振,晶振可以分為無源晶振電路和有源晶振電路。有源晶振只需要給晶振提供電源,晶振就能自己起振產生時鐘頻率,然后輸入到單片機的XTAL0腳,單片機就能工作了。無源晶振它本身不能自己起振,需要外接電路才能起振工作。一般是在晶振兩端接兩個20pF的小電容,然后把晶振兩端分別接到單片機的18腳和19腳(即XTAL0和XTAL1兩個引腳),在單片機上電后,晶振與單片機內部的震蕩電路連接到一起,晶振電路就能夠起振,單片機就能正常工作。
本電路采用的是無源晶振,使用一個12MHz的晶振加兩個20pF的電容,接到單片機的XTAL0和XTAL1兩個引腳上,晶振電路如圖3-5所示。
圖3-5 復位電路原理圖
3.2.3 供電系統及電源接口設計
本系統供電方式使用12V的電源適配器,先把市電降到12V,然后通過DC-DC降壓芯片,把12V電源降壓成5V電源。5V電源一方面用來給單片機最小系統供電,另外一方面給ULN2803達林頓管、74HC573鎖存器芯片供電和LED燈供電,電源電路如圖3-6所示。
圖3-6 系統供電原理圖
LM2596-5芯片1號腳如電源輸入端,2號腳為輸出端,3號腳和6好腳接地,4號腳接電源輸出反饋,L1電感為儲能電感,D2二極管為續流二極管,整個電路上電以后,電路中的電容是整流濾波用的,就能把12V電壓將到5V去。
3.2.4 層控制電路設計
UNL2803達林頓管芯片用來控制光立方的層亮滅,單片機的P3.0~P3.7分別接到ULN2803的1~8號腳,ULN的11~18號腳接一個限流電阻后接到光立方的沒一層共陽引腳上。如果單片機的P3口輸出低電平時,ULN2803芯片內部的達林頓管截止,OUT腳輸出低電平。如果單片機的P3口輸出高電平是,ULN2803芯片內部的達林頓管導通,輸出高電平,然后驅動LED燈亮。UNL2803層驅動如圖3-7所示。
圖3-7 ULN層驅動原理圖
3.2.5 行列選擇電路設計
電路采用8個74HC573鎖存器芯片來控制LED每層哪些行列的燈亮滅。單片機的P1.0~P1.7口分別與8個74HC573鎖存器芯片的每個使能端口相連,用來控制選擇對應的74HC573工作,然后單片機的P0.0~P0.7口與每個74HC573鎖存器芯片D0~D7腳相連,74HC573的O0~O7與LED每層的行列相連。74HC573原理如圖3-8所示。電路設計時,在每個74HC573芯片的電源和地之間,都加了一個陶瓷電容,用了濾除電源里面的高頻干擾,增加芯片的穩定性。
圖3-8 行列控制原理圖
3.2.6 程序下載電路設計
STC系列的單片機都是采用單片機的P3.0和P3.1兩個接口來下載程序到單片機的,因此把STC89C52單片機的兩個引腳引出來,然后在與串口模塊相連,注意串口模塊與下載接口相連時,接線順序是模塊電源與接口電源相連,模塊地與接口地相連,模塊的RX與接口的TX相連,模塊的TX與接口的RX相連。其程序下載電路如圖3-9所示。
圖3-9 程序下載電路原理圖
第4章 LED 光立方焊接
第4.1節 LED 彎曲方法
LED光立方在焊接時,為了整體的美觀性,使用LED燈的引腳來進行搭接,也就是直接把LED燈引腳首尾焊接到一起,而不用額外的器件來做支架。
為了方便焊接和整體的美觀性,將所有LED燈的陰極用鉗子彎曲90度,如圖3-10所示。
圖4-1 LED燈彎曲效果圖
第4.2節 LED 線焊接方法
找塊泡沫板,在上面畫出面積大小為15*15cm的區域,在這區域里面孔均勻的打8*8總共64個點,在根據LED的大小來打孔。然后把用鉗子弄好的LED燈放八個一排,插入到打好的孔內,在把8個LED燈的陽極焊接到一起,如此重復焊接,總共需要焊64條LED燈。8個LED燈焊接效果如圖3-11所示。
圖4-2 LED一排效果圖
第4.3節 LED 面焊接方法
把焊接好的LED燈燈條擺在桌子上,來進行LED陰極的焊接,控制好LED直接的距離。如此重復焊接,總共需要焊8個LED層面,一層LED的焊接圖如圖3-12所示。
圖4-3 LED一層效果圖
第4.4節 LED 立方體焊接方法
先在洞洞板上完成單片機、電源、ULN2803和74HC573芯片的焊接,然后在焊接LED燈的固定腳,固定腳直接的間距要跟前面泡沫板設計的間距一樣,否則LED燈是插不上去的。
然后將所有焊好的LED燈層面垂直的插入到洞洞板上,把每一層的陽極陰極焊到一起,在通過8跟導線把每層的陽極接到板子的ULN2803輸出陰極上,由面到體的效果圖如圖3-13。
圖4-4 LED立方體效果圖
第5章 系統軟件設計
第4.1節 軟件編譯流程
1、本次設計使用的編程軟件是ARM公司開發的Keil uVision4。先從網上下載Keil軟件,在對其進行破解,如果不對軟件進行破解,軟件會對代碼的大小進行限制,當代碼超出限制范圍,程序就會報錯,因此需要先對其破解后在使用。
圖4-1 keil軟件破解
2、軟件破解后,先點擊軟件上方的Project,然后在點擊new 按鈕,就會彈出圖4-2所示界面,把工程放到一個文件夾里面,并設置一個名字。
圖4-2 新建工程界面
3、工程建好以后,軟件會彈出圖4-3所示界面,用來選擇單片機型號,本設計采用的是STC89C52單片機,它的資源跟AT89C52單片機型號是差不多的,在這里選擇AT89C52單片機即可。
圖4-3 選擇單片機型號界面
4、在單片機型號選好以后,我們就可以來寫程序了,先要新建一個后綴為“.c”的文件,我們所有的程序都是在這個文件里面編寫的。點擊軟件左上角的新建文件按鈕,然后點擊保存按鈕,把該文件保存到剛才建立的工程里面,文件名寫為“main.c”。
圖4-4 新建main.c文件
5、文件建好以后,點軟件左邊圖4-5所示地方,把剛才新建的“main.c”文件添加到工程中去。
圖4-5 添加main.c文件到工程
6、一切準備就緒后,就可以寫程序了,在程序寫好以后,點擊軟件上的編譯按鈕,軟件就會對程序自動進行編譯,同時會把編譯的結果顯示在軟件的下方。當編譯出錯,就根據編譯的錯誤提示來進行程序修改,知道程序完全編譯通過為止。
圖4-6 新建main.c文件
7、程序在編譯完成后,點擊軟件Target Option按鈕。再點擊Output按鈕,把Create HEX File給勾選上,這個地方是讓軟件把程序編譯后的結果生成為.Hex文件,這個文件就是我們需要的程序文件,通過燒寫工具把這個文件燒入單片機里面,單片機就能運行了。
圖4-7 新建main.c文件
8、在編譯好程序后,把串口模塊一端接到單片機的程序下載口,另一端接到電腦上,然后打開STC-ISP軟件,按下圖4-8進行配置,然后就可以把程序下載到單片機里面了。
圖4-8 程序燒寫軟件
第4.2節 軟件設計流程
單片機程序運行的流程如下,首先是對系統進行初始化,主要是對T0定時器的初始化,T0定時器主要是用來給系統定時使用的。然后是對光立方初始化,主要是對控制ULN2803芯片和74HC573鎖存器芯片的I/O口進行初始化,然后對跟顯示相關的數組進行賦值。燈初始化完成以后,單片機就會進入死循環,不斷的切換顯示的圖片和動畫效果。主程序的流程圖如圖4-9所示。
圖4-9 主程序流程圖
第4.3節 顯示程序設計
4.3.1 光立方動態顯示原理
單片機每次只能給一層上面的一個74HC573鎖存器寫數據,而整個系統由8個鎖存器和8層,要想讓人眼看到一個立體畫面,就需要單片機給74HC573寫完數據后,延時段時間,馬上給下一個74HC573寫入數據,如此重復,而且速度要快,才能看到一個立體的畫面。
4.3.2 顯示程序的設計
圖4-10 LED動態顯示流程圖
顯示動畫,首先要把要顯示的74HC573鎖存器的片選選中,然后把數據輸出到P0,74HC573鎖存器就是把數據顯示出來,然后單片機選中下一個74HC573鎖存器的片選,在把新的數據輸出到P0口,如此操作,直到把所有要顯示的數據都輸出到P0口,就顯示完成了。
第5章 系統調試與分析
第5.1節 硬件調試
5.1.1 LED燈測試
LED燈在焊接過程中很容易別烙鐵的靜電焊壞,為了防止烙鐵的靜電干擾,在焊接過程中,需要把烙鐵頭接地。同時為了確保每個LED燈都是好的,把每8個LED燈焊成一條,然后用萬用表測試燈是不是好的,如果有LED燈不亮,就用烙鐵焊下來,重新換個新燈。
5.1.2 在整個系統焊接完成以后,不要急于上電,以免短路燒壞芯片。要先檢查板子看有沒有短路、短路、虛焊的地方。在檢查確認沒有問題后,在上電試下。
第5.2節 軟件調試
在硬件全部焊接完成以后,就按照第4章寫的方法來把代碼燒寫到STC89C52中。先編寫程序,把所有ULN2803輸出高電平,然后把所有的74HC573鎖存器輸出低電平,讓所有的LED燈都亮,來測試檢測電路和所有的燈是不是正常的。
1、測試中發現燈都沒有亮,檢查程序,發現程序里面定義的引腳和電路中使用的引腳不一樣,在修改引腳定義后,所有燈能正常亮了。
2、在程序編寫好后,測試動畫效果,發現有兩層燈是同時亮的,檢查后發現原來是ULN2803芯片有兩個腳短路了,在把他們重新焊接以后,測試就正常了。
結論
經過一個多月的設計,終于是把整個光立方系統完成了,整個制作過程中遇到困難多的數不勝數,其中的汗水與快樂只有自己能體會。當看著自己親手做的第一個作品,心里還是挺自豪的。
此次設計,把我在課堂上所學到的單片機知識、C語言知識、模電知識和數據知識都用到了。使我對自己所學的知識有了深刻的理解,鞏固了大學四年所學的知識,為我將來畢業后工作,打下了堅實的基礎。
在選了光立方這個題目后,我是有些茫然的,不知道怎樣開始設計。在老師的指導下,我先從網上搜集資料,看別人是怎樣制作光立方的。先找資料理解光立方的工作原理,在原理理解了后,在自己動手來設計原理圖。但是之前沒有使用過Altium Designer 09這軟件,就在網上找視頻資料,對著視頻來學習怎樣畫原理圖,怎樣設計電路。軟件學好了以后,就找資料來設計原理圖,對有些模塊電路不理解的地方,我是找同學幫忙分析電路。
原理圖設計出來后,就是購買材料,然后焊接電路了。512個LED燈焊起來可不是件容易的事,經常會把LED燈給焊壞,然后需要把它拆了在重新焊,焊燈就花了好長的時間才完成。燈焊好了,就是焊芯片了,那么多的導線,經常是焊著這里斷了那里,就這么一點一點的給焊完了。
硬件搭好以后,就需要寫程序來進行調試了。Keil編程軟件之前也沒有使用過,還是先從學習軟件開始。怎樣建工程,怎樣編譯程序,怎樣解決程序里面的錯誤。還好網上有些好心人分享了他們制作光立方的程序,我把他們的程序下載下來,然后根據自己的引腳來進行修改,調試了幾天,程序就跑通了,光立方可以顯示圖案了。
通過這次的畢業設計,我理解到,光學習理論,不實踐是不行的,只有把理論運用到實踐中,才能發揮出所學知識的價值。
參考文獻
[1] 姜志海,黃玉清,劉連鑫. 單片機原理及應用(第2版)[M]. 電子工業出版社, 2009
[2] 魏澤鼎. 單片機應用技術與實例[M]. 電子工業出版社, 2005
[3] 張洪潤,張亞凡. 單片機原理及應用[M]. 清華大學出版社,2005
[4] 李玉峰. MCS-51系列單片機原理與接口技術[M]. 人民郵電出版社, 2004
[5] 馬忠梅. 單片機的C語言應用程序設計[M]. 北京航空航天大學出版社, 2007
[6] 閻石. 數字電子技術基礎(第四版) [M]. 高等教育出版社,1998
[7] 譚浩強. C語言程序設計(第四版)[M]. 清華大學出版社,2010
[8] 谷樹忠.劉文洲.姜航. Altium Designer教程[M].電子工業出版社出版,2012
[9] 周立功. 單片機實驗與實踐教程[M]. 北京航空航天大學出版社,2006
[10] 黃智偉. 全國大學生電子設計競賽電路設計[M]. 北京航空航天大學出版社,2011
致 謝
本次畢業設計的完成是在導師的細心指導以及同學們的幫助下進行的。從最開始的選題、寫任務書、寫開題報告、搜集資料,到最后的論文成形,都是老師一步一步的指導我,花費了周老師大量的時間,在這里我要向周老師表示由衷的感謝。
在完成論文的過程中我還要感謝同學們的對我的支持,是你們在我平時設計中幫助我查找資料,一起探討問題,解決問題,對我寫的內容提出建議,幫助我解決硬件和程序中遇到的問題,讓我能夠如此短的時間內完成系統的設計和焊接和調試。在整個畢業設計制作過程中,我得到了很大的鍛煉和成長,會自己去思考問題、解決問題,這對我以后的工作會有很大幫助,我將受益終身。
附錄 光立方實物圖
圖一、光立方整體實物圖
圖二、光立方工作實物圖
基于單片機的光立方設計
相關推薦
4*4*4光立方的制作
樓主周末不回家,老師直接把單片機實驗室交給我了,一時興起,就做了一個4*4*4光立方玩玩兒,我是直接做的,所以現在沒有什么資料的,光立方主板
2016-10-23 22:54:13
444光立方不用573,也不用595,也不用2803
的,近幾天我加的光立方群里面很多人要444,888的原理圖,以及程序,我突然想到,444的光立方,xyz一共12個控制端,那么單片機的IO口不用說,是肯定多余12的,那么可不可以直接用單片機而不借組其他
2012-11-27 22:14:40
51單片機4*4*4光立方倒計時程序怎么寫啊?
`小弟于今年五月在無意中看到光立方的視頻,就迷上了它。并且非常想學好單片機!于是就著手準備開始動手制作光立方。購買了51學習板。和1000個LED。和制作光立方的一些材料。在這做的過程中。越到了很多
2013-05-28 19:54:26
光立方+心形燈+資料
仿真)最終效果圖: 兩個小玩意兒都是用51單片機做的,非常適合初學單片機的同學DIY,提高編程能力,同時也能提高自己PCB設計能力和焊接能力。后面附上兩個小東西的資料,歡迎大家下載。`
2015-10-31 01:12:32
光立方+頻譜+上位機軟件(原創)
` 本帖最后由 蕭九 于 2014-5-22 22:06 編輯
[hide] [/hide]耗時一個多月,集成了MP3播放,頻譜,光立方上位機軟件,光筆采集手寫!系統流程圖可以看下。有點亂
2014-04-25 23:28:10
光立方動畫和上位機問題
請教大神誰懂光立方動畫的那些底層函數,看不懂,也不會寫。還有就是上位機是適用于每一種光立方么?還是只要電路有一點不同就要有不同版本的上位機。在此給大神們貼上自己的原理圖額。如果有適合該電路的上位機,致電哦{:19:}{:19:}{:19:}QQ 728843414
2013-08-20 00:19:14
光立方求助
光立方求助啊 請問各位做完光立方的大神們,你們焊接光立方的時候沒有出現過點一個燈同時亮N多個的情況嗎,小弟做了兩個都是這樣 根本出不來效果啊 敢問這是什么原因啊
2013-04-23 19:17:27
光立方求教
我這幾天剛做了一個光立方,寫了一個全亮的程序,為什么剛接電源時是全亮的,可是一有按鍵的聲音圖案就變了,是聲音,還有一按開關,也是顯示出不同的圖像。用的是89c52rc單片機,芯片是573的。
2016-01-12 09:15:12
光立方的原理
本帖最后由 wolfwyf 于 2013-8-17 14:17 編輯
光立方的圖像時保存在單片機上面上電后自動開始按照編好的順序播放 還是插上音頻 通過音樂的變化自動選取合適的畫面進行播放 還有它的原理 求指教~
2013-07-28 23:48:34
單片機光立方問題求助!!急!!!
我在網上買了塊板子做8*8光立方,現在的問題有點詭異,首先程序焊接應該都沒問題,設計是共陰極接口連接2803,單片機是用的STC60S2,正常情況下上電之后等都能亮,但是不按程序走,只是亮著不動
2015-05-18 13:22:15
單片機中while(1)的一些問題
放到一塊單片機中,但是顯示溫度和測量溫度本身就要放在while(1)中的,而像光立方那樣循環,也需要一個獨立的while(1)這樣兩者就矛盾了,一旦觸發到光立方的while(1),那它就只會亮燈,溫度就不會更新了,大家能不能幫我想想辦法,能不能用一塊單片機來實現。
2016-10-23 23:24:31
單片機可以直接驅動光耦嗎?
單片機-->光耦-->ULN2003-->繼電器,最多同時驅動4個光耦,單片機低電平驅動光耦,電流夠,那么單片機直接驅動光耦從可靠性上來說有問題嗎?要不要緩沖下再接光耦?
2019-10-15 09:10:33
DIY炫酷光立方8*8*8,精美PCB
本帖最后由 大貓禮 于 2014-3-18 19:27 編輯
工作閑來無事,就DIY一些小東西來玩玩。以前做過一次光立方是用AVR單片機,貌似現在這個不太受歡迎還是怎么滴,現在改用STC
2014-03-11 23:21:16
STC89C52單片機和573 2803A做光立方
我用STC89C52單片機和5732803A做光立方,遇到兩個問題:1、單片機的P0口接8個573,為什么P0口輸出高電平時,測量它的引腳電壓僅為0.5V左右,加了1K的上拉電阻之后電壓為2V左右
2013-05-29 14:10:18
stc12c5a60s2單片機光立方頻譜顯示引腳問題 解決有報酬
stc12c5a60s2僅p1支持adc轉換,但是焊出來的把p1用做了其他用途,模擬輸入接到了p3上,頻譜沒法顯示了,有什么補救措施嗎,怎樣改可以實現頻譜顯示
2018-06-01 19:31:27
【CANNON試用體驗】+光立方藍牙控制心得
實驗。不多說,先上圖!我這個是用藍牙來控制光立方的開關,用開關來對光立方變化不同的圖形。所以呢,設計比較簡單,大家笑納 !這個光立方,是我以前做好的,所以說藍牙芯片我就直接夾在單片機的io口上,通過
2016-04-13 13:22:33
做了個光立方不知道怎么把程序下到單片機中去
做了個光立方不知道怎么把程序下到單片機中去。 從網上找個光立方程序, 讓后用keil建個工程 把程序復制到里面編譯的時候沒錯誤。 但是鏈接的時候就不行。 沒法生成HEX 文件。 請問咋整、
2014-04-07 15:23:32
全彩RGB光立方,把你帶進彩色立方時代
`以前不知道光立方是什么東西,知道大一新生入學時看到師兄師姐拿著光立方來我們教室宣傳才知道什么叫光立方。那時候的確感覺很新奇很神奇的東西,小小的一個東西就可以做這么多功能,而且單片機只認0和1,深深
2014-08-10 19:51:15
關于光立方的上位機和取模
請教一下關于光立方的上位機和取模的實際控制方式和用法是什么樣的,可以分別講述一下么,對光立方的硬件有什么要求比如通訊,謝謝各位指導,小弟新人
2014-01-08 00:15:21
關于光立方問題
現在光立方是束為二極管正極連接共64引腳由74HC573控制,面為二極管負極連接共8只腳由ULN2803控制,單片機為STC60s2的,現在燒入程序后進行全部的發光二極管進行點亮,請問單靠電腦的USB接口的供電能正常讓發光二極管點亮么?求解答,謝謝{:4_124:}
2013-04-07 21:53:40
基于51單片機的光立方制作步驟教程及程序
[table=98%,transparent][tr=transparent][td] 這是做好后的效果還是很炫的 制作要的點: 1.單片機必須用STC12C5A60S2因為低速51根本帶不動
2018-07-05 09:57:57
基于51單片機的光立方自作
[table][tr][td] 這是做好后的效果還是很炫的 制作要的點: 1.單片機必須用STC12C5A60S2因為低速51根本帶不動 它的運算速度要求非常高. 2.也就是晶振要用24M
2018-06-29 09:08:49
基于51單片機的光立方設計
本作品采用STC12C5A60S2單片機,8個74hc573鎖存器控制每一列,2個74hc573鎖存器控制顏色,所有鎖存器輸入端均接P0,8個鎖存器的使能端接P2,控制顏色的接P1^0,p1^1,uln2803輸入端接P0.換顏色的按鍵接P3^2
2014-05-16 01:58:41
基于單片機的光立方體資料分享!(原理圖&PCB&源程序)
`功能描述: 8*8*8光立方主控板,采用STC12C5A60S2單片機為主控芯片,驅動電路采用8個SN74HC573為驅動鎖存器和ULN2803芯片來實現。同時采用5V USB 與 9V電池雙供電
2020-08-28 15:00:02
基于單片機的光立方設計 精選資料分享
基于單片機的光立方設計目錄摘要 1Abstract 2前言 3第1章緒論 4第1.1節 開發背景 4第1.2節 本文所作的工作 4第2章系統總體方案設計 5第2.1節 光立方控制原理 5第2.2節 系統總體硬件方案選擇 62.2.1核心控制器 62.2.2...
2021-08-09 07:24:28
基于STC89C52單片機8x8x8的LED光立方設計資料分享
1.簡介本設計是以STC89C52單片機的8x8x8的LED光立方。本設計將LED光立方分成8層,分別由單片機的P1,8個IO口來控制每一層,由于采用的是共陰極所以當層電位為高電平有效,由P0口
2021-11-18 07:27:45
多彩888光立方
64字節光立方數據。這是這樣不斷循環。讓我一會兒破解了。我現在已經升級到STM32單片機控制了。用DMA功能,正好送到光立方的顯示數據數組中。最近還在完善各方面功能。過段時間發視頻。前一段時間比較無聊,為了打發時間,又做了個光立方,這回用了黃綠紅三種顏色。`
2015-12-26 15:21:51
如何把光立方和小車的電機聯系起來?
最近單片機入門做了一個444的光立方和智能小車,想把二者聯系起來。唯一的方法的通過小車電機的電平來獲得小車的運動狀態,從而讓光立方顯示小車的運動方向,但電平的獲得不太會,希望大家能有解答!
2022-11-20 23:57:29
想做4*4*4光立方,求指導
想做個4*4*4光立方,每層共陽,按照別人的方法把立方體給焊出來了,有74HC154和74HC245和單片機,求教剩下怎么焊,另外求個程序。 新手初學,求高手前輩 指導。 聯系郵箱,569889472@qq.com
2013-05-23 17:32:52
我做的光立方
本帖最后由 zzzjjjhhh123 于 2013-5-6 20:53 編輯
參加了學校的校賽,在網上找,看到光立方,很不錯,,就上手做了,,雖然只是自學了兩個多星期的單片機,,啥都不
2013-05-06 20:32:06
改版光立方
通過漫長的一個月電路設計,終于開發出來了一塊光立方的驅動底板,和元旦20多個小時的連續奮斗,今天終于調試完成了新版光立方,采用了專門的led驅動芯片,祝大家新年快樂。上圖秀秀;上位機,紅外,脫機運行;最炫的動畫;
2015-01-03 21:19:01
有沒有stc89c52做的4*4*4*光立方程序?
層共陰,豎列共陽。試試作好了光立方,剛接觸單片機。不會程序。望高手指點或給個簡單程序能夠點亮。來提高興趣。謝謝。
2013-03-30 09:28:47
夢幻光立方
方案介紹:夢幻光立方是由(8X8X8)個霧狀led燈組成的led立方體,通過單片機控制可以顯示具有3D效果的圖案,給人以視覺上的沖擊力,也可以實現音樂的動態頻譜顯示。通過按鍵或遙控器實現顯示圖形
2013-10-26 13:14:45
求助光立方問題
我做了一個光立方,單片機用的STC12C5A60S2,總體來說還不錯,但是程序寫進去后,有些程序好像丟了一樣,但是重新寫進去還是那樣,還有不該亮的有時也會亮(這個我覺得是焊接燈的時候沒有去靜電,各位大神覺得有可能嗎?)求解救啊,要拿來代表我們系比賽的。。
2013-10-15 17:24:22
求助,光立方不亮,P0口用金屬碰一下,對應的一列亮
求助,我剛做好的一個光立方,是共陰極的,正極用573驅動,負極用一片2803控制,但是光立方沒有反應,用一根金屬絲接觸一下2803的輸入端(接入單片機IO口那一端),光立方對應的一列就會亮了,這是為什么啊?懇請大神們求救啊
2015-05-23 17:43:52
用atmega16做的光立方,沒啥創新,純玩
單片機下載程序用。3.BT是藍牙接口,接上藍牙模塊可以用。其實沒啥實際用處,我就是想用手機或者電腦的藍牙控制光立方的動畫圖案。僅此而已。4.POWER是自鎖開關。按下開關后,單片機即接通電源,開始工作
2014-09-02 09:48:37
紅外控制光立方
遠程控制,從而可實時控制。 2.作品的系統構成該產品利用SLH89F5162單片機的功能由紅外遙控模塊、LED電路組合顯示模塊、驅動電路模塊等電路模塊。運用了紅外遙控技術,有著抗干擾能力強,信息傳輸
2013-11-06 12:43:03
自己制作的光立方,
的是STC12C5A32S2單片機,其實跟51差不多多少!鎖存用的是74hc573 還有uln2803驅動。原理圖里面少了鎖存的輸出端跟燈的連接。8個573連接的是光立方的64個陽極端,2803的輸出端
2013-11-29 17:27:02
請問我這樣的光立方能實現頻譜效果動畫嗎?
#pid520142{background-image:url("static/image/postbg/2.jpg");}我比賽做了一個888的光立方,用的是stc12單片機
2019-08-02 01:20:26
NY8A050D單片機,AD單片機,九齊代理
?這篇文章將介紹臺灣九齊單片機NY8A050D 6 I/O 8-bit EPROM-Based MCU,包括其特點、應用領域、與其他單片機的比較等內容。一、九齊單片機NY8A050D 6 I/O
2023-11-27 21:54:52
基于51單片機的立方體
2013-05-22 10:35:509
基于51單片機光立方設計_陳聰
2014-04-18 21:47:5759
51單片機光立方完整資料
2015-07-31 16:08:5080
怎樣不用單片機做一個led光立方
我也是DIY新手,開始就被大師的led 光立方著迷了,各位新手一定像我一樣,被單片機搞到頭痛,。這次,我們不用單片機,不用編程,自制一個4*4*4光立方。
2018-09-13 14:14:006512
基于單片機的LED燈光立方設計
光立方顧名思義就是會發光的立方體,光立方的基本原理是利用人眼的暫留效應,利用單片機控制LED燈快速的閃爍,顯示出一個完整的圖案。光立方原理相對簡單只是制作過程較為耗時。
2022-06-12 08:52:482862
評論
查看更多