完整的word格式的光立方課設(shè)論文下載:
光立方.doc
(11.27 MB, 下載次數(shù): 77)
2016-5-15 12:18 上傳
點(diǎn)擊文件名下載附件
光立方
下面是課設(shè)內(nèi)容預(yù)覽:
| | | | | | | | | | | | | | | | | 設(shè)計(jì)原理簡(jiǎn)述及原理圖 | |
| |
|
|
|
|
|
|
|
總分=實(shí)物*50%+課程設(shè)計(jì)報(bào)告書*50%。
2.元器件明細(xì)表:
3.附圖: 1.整體電路圖:
2.PCB板圖:
3.作品照片:
目錄
第一章 引言.................1
1.1設(shè)計(jì)要求..................1
第二章 設(shè)計(jì)方案分析與論證....................2
2.1總體電路分析.....................2
2.2方案論證..................3
第三章 單元電路設(shè)計(jì)..................5
3.1單片機(jī)電路設(shè)計(jì).................5
3.2時(shí)鐘電路設(shè)計(jì).................5
3.3復(fù)位電路設(shè)計(jì).................6
3.4驅(qū)動(dòng)電路設(shè)計(jì).................6
3.5 軟件設(shè)計(jì).................8
第四章 實(shí)物制作..................10 4.1
前期準(zhǔn)備.................10
4.2電路板的制作....................10
第五章 測(cè)試結(jié)果分析與設(shè)計(jì)體會(huì).....................12
5.1系統(tǒng)調(diào)試與誤差分析..................12
5.2 總結(jié)及心得.....................15
參考文獻(xiàn)...................16
附錄.................17
第一章 引言 在當(dāng)今信息化社會(huì)的高速發(fā)展過(guò)程中,大屏幕顯示已經(jīng)從公共信息展示等商業(yè)應(yīng)用向消費(fèi)類多媒體應(yīng)用滲透。隨著寬帶網(wǎng)絡(luò)的發(fā)展,數(shù)字化的多媒體內(nèi)容將在信息世界中占據(jù)主流,新型的大屏幕顯示設(shè)備將代替?zhèn)鹘y(tǒng)電視機(jī)成為人們享受信息和多媒體內(nèi)容的中心。與傳統(tǒng)的顯示設(shè)備相比,這種未來(lái)的巨大需求讓LED大屏幕顯示技術(shù)成為眾人目光的焦點(diǎn)。LED顯示屏一般分為圖文顯示屏和視頻顯示屏,均由LED矩陣塊組成。動(dòng)態(tài)圖文顯示屏可與計(jì)算機(jī)同步顯示漢字、英文文本和圖形;視頻顯示屏采用微型計(jì)算機(jī)進(jìn)行控制,圖文、圖像并茂,以實(shí)時(shí)、同步、清晰的信息傳播方式播放各種信息,還可顯示二維、三維的動(dòng)畫、錄像、電視、VCD節(jié)目以及現(xiàn)場(chǎng)實(shí)況轉(zhuǎn)播。不僅可以用于室內(nèi)環(huán)境裝飾還可以用于室外環(huán)境信息傳播,具有投影儀、電視墻、液晶顯示屏無(wú)法比擬的優(yōu)點(diǎn)。而且顯示畫面色彩鮮艷,立體感強(qiáng),靜如油畫,動(dòng)如電影,廣泛應(yīng)用于交通運(yùn)輸、車站、商場(chǎng)、醫(yī)院、賓館、證券市場(chǎng)、工業(yè)企業(yè)管理等公共場(chǎng)所。 隨著社會(huì)經(jīng)濟(jì)的不斷進(jìn)步,人們對(duì)LED顯示器的認(rèn)識(shí)不斷加深,其應(yīng)用領(lǐng)域越來(lái)越廣。目前正朝著更高亮度、更高耐氣候性、更高的發(fā)光密度、更高的發(fā)光均勻性,可靠性、全色化方向發(fā)展。 1.1設(shè)計(jì)要求 本次設(shè)計(jì)制作一個(gè)8*8*8的三維的發(fā)光二極管立方顯示體,能夠通過(guò)編寫程序來(lái)實(shí)現(xiàn)對(duì)每一個(gè)發(fā)光二級(jí)管的亮滅控制,從而可以顯示多種多樣的圖案。按照?qǐng)D文運(yùn)動(dòng)的特點(diǎn)又可以分為閃爍、平移、旋轉(zhuǎn)、縮放等多種顯示模式。產(chǎn)生不同顯示顯示模式的方法,并不意味著一定要重新編寫顯示數(shù)據(jù),可以通過(guò)一定的算法從原來(lái)的顯示數(shù)據(jù)直接生成。這樣程序書寫就不會(huì)過(guò)于繁瑣和重復(fù),而且對(duì)核心控制器的內(nèi)存空間要求不高。 借鑒單片機(jī)控制LED點(diǎn)陣顯示的原理,通過(guò)系統(tǒng)分析,確定該系統(tǒng)該具有哪些功能,有哪些模塊,各個(gè)模塊之間是怎樣連接,以及怎樣組合電路是最合理最簡(jiǎn)單的,即硬件方案設(shè)計(jì)。編寫硬件電路的相對(duì)應(yīng)軟件程序部分,利用仿真軟件對(duì)程序進(jìn)行測(cè)試修改。電路系統(tǒng)焊接完畢后,測(cè)試整個(gè)的系統(tǒng)模塊的功能,看各個(gè)功能是否能正常運(yùn)行,并依據(jù)實(shí)驗(yàn)結(jié)果找出程序中的錯(cuò)誤,改正這些錯(cuò)誤至測(cè)試成功完成課程設(shè)計(jì)要求。
第二章 設(shè)計(jì)方案分析與論證 2.1 總體電路分析 2.1.1總電路工作原理 本設(shè)計(jì)是用STC125A60S2單片機(jī)做控制芯片的,由單片機(jī)上的P2口來(lái)控制8個(gè)鎖存器的鎖存端,以此決定數(shù)據(jù)的輸入和鎖存。光立方有8層8x8點(diǎn)陣,用8個(gè)引腳來(lái)當(dāng)充當(dāng)各層8x8點(diǎn)陣的“開關(guān)”(每層共陰)。再將64個(gè)燈陽(yáng)極連到74hc573的輸出引腳上,每個(gè)74hc573控制8列LED。驅(qū)動(dòng)采用了74hc573暫存的方法,來(lái)分別把64個(gè)燈的亮滅信息存到上面,然后再一起輸出到燈上,74hc573的64個(gè)輸出引腳控制前面所述每一個(gè)面的64個(gè)燈;而每層燈的陰極全連接在一起接入uln2803,由uln2803控制的每一個(gè)層燈。通過(guò)單片機(jī)主控芯片STC12C5A60S2來(lái)控制所有燈的亮滅,這樣512個(gè)LED每一個(gè)都有單獨(dú)的位置編碼,燈的亮滅可以自由控制。總體電路原理框圖如(圖2.1):
圖2.1
2.2方案論證 2.2.1電源電路的選擇 方案一:選擇采用5號(hào)電池作為3D光立方顯示系統(tǒng)的電源。 優(yōu)點(diǎn):移動(dòng)性強(qiáng),方便隨時(shí)使用。 缺點(diǎn):該系統(tǒng)耗電量較大,需要長(zhǎng)時(shí)間不間斷的工作。雖然采用電池供電能夠?qū)崿F(xiàn),但是這種方法不斷更換電池,造成了各種使用不便與環(huán)保問(wèn)題。 方案二:采用三端集成穩(wěn)壓器LM7805作為電源供電穩(wěn)壓核心。 優(yōu)點(diǎn):選用LM7805穩(wěn)壓器在功率問(wèn)題上不僅滿足了系統(tǒng)需求,而且安全、方便和可靠。 缺點(diǎn):電源體積大,移動(dòng)性不強(qiáng)。 基于以上分析,決定選取LM7805三端穩(wěn)壓器穩(wěn)壓電路作為系統(tǒng)供電電源。 2.2.2核心控制芯片的選擇 方案一:?jiǎn)纹瑱C(jī) 。 優(yōu)點(diǎn):?jiǎn)纹瑱C(jī)擁有很強(qiáng)大的接口性能,集成了CPU、RAM和I/O口等電路,低成本、低電壓和低功耗是單片機(jī)的特點(diǎn),使得單片機(jī)的市場(chǎng)非常之大,教學(xué)上使用的單片機(jī)更是非常多,為了適應(yīng)各種應(yīng)用,各種各樣的單片機(jī)出現(xiàn),它們的性能可靠性,編程方便,開發(fā)成本低等各種優(yōu)點(diǎn)都使得在教學(xué),生產(chǎn)、民用、商業(yè)化等擁有非常多的市場(chǎng)。 缺點(diǎn):ROM內(nèi)存小,運(yùn)行慢。 方案三:DSP 芯片。 優(yōu)點(diǎn): DSP 是數(shù)字信號(hào)處理器。它主要用于數(shù)字信號(hào)處理,在擁有非常多數(shù)據(jù)需要處理的系統(tǒng)下,DSP的能力會(huì)被無(wú)窮顯現(xiàn)出來(lái),當(dāng)遇見高密度,運(yùn)算量非常之大等情況下,DSP非常好處理。相對(duì)于一般的單片機(jī),DSP的處理速度會(huì)快上2倍以上,在信號(hào)處理領(lǐng)域上D SP能夠非常好的勝任工作,在光立方的大顯示數(shù)據(jù)量,DSP更是顯示它強(qiáng)大的功能。 缺點(diǎn):需要模數(shù)轉(zhuǎn)換,受采樣頻率的限制,處理頻率范圍有限;數(shù)字系統(tǒng)由耗電的有源器件構(gòu)成,沒有無(wú)源設(shè)備可靠。 基于以上分析,以上三種核心控制處理芯片都能夠勝任3D光立方顯示器的數(shù)據(jù)處理與控制,但是基于單片機(jī)的成本與技術(shù)難度較低,因此在權(quán)衡利弊之后決定選用的控制部分核心器件為單片機(jī),單片機(jī)型號(hào)為STC12C5A60S2。 2.2.3列驅(qū)動(dòng)電路的選擇 方案一:選取串口輸入并口輸出芯片74HC595, 優(yōu)點(diǎn):74HC595中擁有8位移位寄存器和一個(gè)存儲(chǔ)器,具有三態(tài)輸出功能、數(shù)據(jù)鎖存功能和數(shù)據(jù)輸出功能,最重要是它具有串行輸入并行輸出的特點(diǎn)。 缺點(diǎn):但是在3D光立方顯示器,它依舊有不少的延遲時(shí)間。 方案二:采用鎖存器74HC573, 優(yōu)點(diǎn):74HC573是一種硅門CMOS器件并且?guī)в墟i存數(shù)據(jù)和能夠同步輸出數(shù)據(jù);通過(guò)控制使能端口,來(lái)控制鎖存器鎖存數(shù)據(jù)并且控制數(shù)據(jù)鎖存保持的時(shí)間;當(dāng)時(shí)鐘處于上升沿狀態(tài)下,8個(gè)74HC573同時(shí)正常工作,并且通過(guò)16個(gè)I/O口并行輸入數(shù)據(jù)到芯片里,并行傳輸數(shù)據(jù)時(shí)間比串行傳輸數(shù)據(jù)的延遲時(shí)間更加少,滿足設(shè)計(jì)要求。 綜合以上各方面的分析和比較,決定選取74HC573作為每一列的驅(qū)動(dòng)芯片。 2.2.4層驅(qū)動(dòng)電路選擇 光立方顯示器擁有512個(gè)LED,當(dāng)它們有同時(shí)工作時(shí),層面積聚電流隨之增大,所以需要把電流放大,提高驅(qū)動(dòng)能力,驅(qū)動(dòng)整個(gè)顯示正常工作。電流不夠而導(dǎo)致的部分LED不亮或出現(xiàn)亮度不夠的問(wèn)題,會(huì)導(dǎo)致顯示信息出錯(cuò)等問(wèn)題。整個(gè)層面驅(qū)動(dòng)電路的設(shè)計(jì)在整個(gè)系統(tǒng)起到舉足輕重的地位,以下有兩種方案: 方案一:采用5V繼電器來(lái)進(jìn)行控制。 優(yōu)點(diǎn):可以使用5V繼電器來(lái)充當(dāng)開關(guān)實(shí)現(xiàn)控制, 缺點(diǎn):會(huì)加大成本還有電路設(shè)計(jì)的復(fù)雜程度,顯示器的重量也隨之增大。 方案二:采用達(dá)林頓管ULN2803作為層面驅(qū)動(dòng)電路芯片。 優(yōu)點(diǎn): ULN2803的驅(qū)動(dòng)電流可以達(dá)到500mA,能夠驅(qū)動(dòng)層面的LED正常工作。測(cè)試結(jié)果穩(wěn)定可靠,可以滿足設(shè)計(jì)要求。 基于以上分析,決定選取ULN2803達(dá)林頓管作為層面電路控制器。
第三章 單元電路設(shè)計(jì)
3.1單片機(jī)電路設(shè)計(jì) 單片機(jī)又稱微處理器,它是在一塊硅片上集成了CPU、ROM、定時(shí)器和多種I/O接口電路等電路的集成塊。單片機(jī)最小系統(tǒng)包括了單片機(jī)芯片、時(shí)鐘電路和復(fù)位電路。時(shí)鐘電路是用于產(chǎn)生STC12C5A60S2單片機(jī)正常工作的時(shí)鐘頻率,單片機(jī)的正常工作是在這種時(shí)鐘電路產(chǎn)生的是時(shí)鐘頻率信號(hào)的控制下,嚴(yán)格地按照時(shí)序運(yùn)作。單片機(jī)的初始化是由單片機(jī)的復(fù)位電路控制的。硬件電路滿足復(fù)位時(shí)序要求,單片機(jī)進(jìn)入從初始化工作狀態(tài)。單片機(jī)電路圖如(圖3.1)所示。
圖3.1 3.2時(shí)鐘電路設(shè)計(jì) STC12C5A60S2單片機(jī)芯片的內(nèi)部時(shí)鐘提供時(shí)鐘頻率方式是因內(nèi)部設(shè)有一個(gè)振蕩器,這個(gè)振蕩器是由反向放大器構(gòu)成的,而這個(gè)振蕩電路的輸入端與輸出端為別為XTAL1和XTAL2,如果在引腳XTAL1和XTAL2上外接晶振,使用32MHZ晶振率,需要兩個(gè)30pF電容值的電容連接,它們可以起到頻率微側(cè)的作用。時(shí)鐘電路如(圖3.2)所示。
圖3.2 3.3復(fù)位電路設(shè)計(jì) 單片機(jī)最小系統(tǒng)的復(fù)位電路也是必不可少的,當(dāng)STC12C5A60S2單片機(jī)在 正常運(yùn)行時(shí),需要復(fù)位,也就是重新開始運(yùn)行程序時(shí),使單片機(jī)從初始狀態(tài)下重新工作,這個(gè)時(shí)候就需要復(fù)位電路了,所以復(fù)位電路也非常重要,單片機(jī)從初始值開始運(yùn)行程序需要復(fù)位電路,當(dāng)程序運(yùn)行錯(cuò)誤,或者進(jìn)入死循環(huán),這個(gè)時(shí)候也需要復(fù)位電路,只需要按下復(fù)位按鍵,使得RST引腳為高電平,這個(gè)時(shí)候STC12C5A60S2單片機(jī)就會(huì)從死循環(huán)跳出從程序初始值開始運(yùn)行程序,上電復(fù)位與手動(dòng)按鍵控制電平復(fù)位方式是最為常用的單片機(jī)復(fù)位方式,而這個(gè)顯示系統(tǒng)選用上電復(fù)位控制電平復(fù)位的方式。上電復(fù)位電平復(fù)位電路圖如(圖3.3)所示。
圖3.3 3.4驅(qū)動(dòng)電路設(shè)計(jì) 3.4.1層驅(qū)動(dòng)電路設(shè)計(jì) ULN2803是本設(shè)計(jì)中的層面片選控制器電路的核心控制芯片。ULN2803是八重的達(dá)林頓管,1到8腳是8路輸入,18到11腳是8路輸出,驅(qū)動(dòng)能力為500MA(V,使用時(shí),引腳9接地,用來(lái)驅(qū)動(dòng)感性負(fù)載,引腳10接負(fù)載電源,輸入電平為0V或5V,當(dāng)輸入5V的電平時(shí)候,輸出達(dá)林頓飽和;輸入0V時(shí)候,輸出達(dá)林頓截止。輸出負(fù)載加在電源V+和輸出口上,當(dāng)輸入高電平時(shí)候,輸出負(fù)載工作。ULN2803的引腳圖如圖3.4所示。
圖3.4 3.4.2列驅(qū)動(dòng)電路設(shè)計(jì) 74HC573是一個(gè)八進(jìn)制3態(tài)非反轉(zhuǎn)透明鎖存器(三態(tài)),是一種高性能硅門 CMOS器件,當(dāng)使能(OE)為高時(shí),Q 輸出。當(dāng)鎖存使能端LE為高電平時(shí),這些器件的鎖存對(duì)于數(shù)據(jù)是同步輸出。當(dāng)鎖存使能變低時(shí),符合建立時(shí)間和保持時(shí)間的數(shù)據(jù)會(huì)被鎖存。將隨數(shù)據(jù)(D)輸入而變。當(dāng)使能為低時(shí),輸出將鎖存在已建立的數(shù)據(jù)電平上。輸出控制不影響鎖存器的內(nèi)部工作,即老數(shù)據(jù)可以保持,甚至當(dāng)輸出被關(guān)閉時(shí)。當(dāng)輸入的數(shù)據(jù)消失時(shí),在芯片的輸出端,數(shù)據(jù)仍然保持。列驅(qū)動(dòng)電路圖如圖3.5所示。
圖3.5 3.5 軟件設(shè)計(jì) 3.5.1主程序設(shè)計(jì) 光立方顯示器的軟件系統(tǒng)設(shè)計(jì)是通過(guò)模塊化的設(shè)計(jì)思路來(lái)進(jìn)行程序的設(shè)計(jì)與開發(fā)的,整個(gè)程序設(shè)計(jì)采用的是C語(yǔ)言編程的方法。第一先進(jìn)行顯示系統(tǒng)的實(shí)現(xiàn)功能的分析考慮,整個(gè)系統(tǒng)要實(shí)現(xiàn)的功能是能夠進(jìn)行靜態(tài)顯示、動(dòng)態(tài)顯示、模式轉(zhuǎn)換和上位機(jī)控制。通過(guò)按鍵控制程序,可以選擇不同的模式來(lái)進(jìn)行顯示。通過(guò)打開上位機(jī)串口,能夠?qū)崿F(xiàn)PC機(jī)控制光立方顯示。主程序的工作流程如圖3.6所示。
圖3.6 3.5.2顯示模塊的程序設(shè)計(jì) 光立方顯示器的顯示部分采用顯示機(jī)制是掃描的顯示方法,因?yàn)椴捎玫氖菕呙铏C(jī)制,所以選擇單片機(jī)的數(shù)據(jù)從由低位到高位依次從數(shù)據(jù)輸入端口輸入,接著從鎖存器輸出端口輸出數(shù)據(jù)與鎖存器數(shù)據(jù)控制端口控制輸出顯示。光立方顯示程序流程圖如圖3.5.1所示。首先單片機(jī)把想顯示的圖案轉(zhuǎn)換為在相應(yīng)在光立方上顯示的點(diǎn)的數(shù)據(jù),在把顯示圖案的數(shù)據(jù)從單片機(jī)P0口輸出到相應(yīng)的鎖存器,鎖存器接收這些數(shù)據(jù),并通過(guò)控制端口,選擇輸出數(shù)據(jù)還是鎖存數(shù)據(jù),接著又把下一組的數(shù)據(jù)依次送到片選的鎖存器進(jìn)行輸出顯示,當(dāng)所以的數(shù)據(jù)被正常輸出并顯示后,顯示程序退出,等待下一次的顯示數(shù)據(jù)到來(lái)。因?yàn)橛?個(gè)鎖存器,有64引腳控制列的數(shù)據(jù)顯示,通過(guò)對(duì)應(yīng)的控制端口的控制片選,由一個(gè)ULN2803控制每一層的數(shù)據(jù)顯示,形成了各種各樣的顯示效果。顯示模塊的程序設(shè)計(jì)如圖3.7所示。
圖3.7 第四章 實(shí)物制作 4.1 前期準(zhǔn)備 提前了解8x8x8光立方的相關(guān)資料并學(xué)習(xí)和掌握相關(guān)的知識(shí),掌握相關(guān)知識(shí)后對(duì)8x8x8光立方進(jìn)行仿真,如果仿真不成功就找出問(wèn)題并解決,如果仿真成功就進(jìn)行下一步,仿真成功后把所需的元器件清單列出來(lái)并購(gòu)買回來(lái)。 4.2電路板的制作 在前期工作都完成后,就進(jìn)行電路板的制作。我這里用的是Altium Dsigner6.9軟件進(jìn)行電路板的前期制作,在Altium Dsigner6.9把所有元器件都列出來(lái),按照仿真成功的電路圖進(jìn)行繪制,繪制成功后轉(zhuǎn)到pcb中進(jìn)行排版,因?yàn)殡娐穲D有點(diǎn)難度需要跳線。最終的pcb電路圖如圖4.2所示。
圖4.1
Pcb圖完成后就進(jìn)行腐板,腐好的電路板如圖4.2所示。 圖4.2 接下來(lái)就進(jìn)行焊接元器件。
第五章 測(cè)試結(jié)果分析與設(shè)計(jì)體會(huì)
5.1系統(tǒng)調(diào)試與誤差分析 5.1.1系統(tǒng)調(diào)試 電路測(cè)試:對(duì)焊接的每一個(gè)發(fā)光二極管進(jìn)行必要的檢測(cè),一個(gè)發(fā)光二極管的顯示故障導(dǎo)致的問(wèn)題可能是程序或者是硬件,所以一開始就需要進(jìn)行必要的發(fā)光二極管的檢測(cè)。方法:使用數(shù)字式萬(wàn)用電表的紅表筆接二極管的正極,黑表筆姐二極管的負(fù)極,觀察二極管的發(fā)光情況。接下來(lái)對(duì)照電路圖與實(shí)際的電路板上的線路連線正常情況。比如說(shuō),各個(gè)點(diǎn)的焊接情況,線路的連通情況,電容的正負(fù)極,電源的供電極性等,在所有檢查完畢后在進(jìn)行下一步通電檢測(cè)。通電檢測(cè)電路,通電后,把數(shù)字式萬(wàn)用電表調(diào)到電壓檔,測(cè)量接入電源的電壓是否正常,如果不正常則立刻斷開電源,如果有元器件發(fā)燙等情況應(yīng)立刻斷開電源并檢測(cè)各個(gè)點(diǎn),看哪里出現(xiàn)短路情況,排除各種故障。 5.1.2測(cè)試結(jié)果與分析 模式一:
模式二:
模式三:
模式四:
模式五:
經(jīng)調(diào)試可見在調(diào)試過(guò)程中發(fā)光二極管亮度有問(wèn)題,3D顯示效果不是很明顯,后來(lái)經(jīng)過(guò)觀察發(fā)現(xiàn)LED亮度有問(wèn)題可能是限流電阻用的過(guò)大了,也可能是購(gòu)買這種LED不適合在白天顯示。3D效果不明顯不原因可能是發(fā)光二極管在焊接過(guò)程中是焊得不是很好,出現(xiàn)了個(gè)別松動(dòng)現(xiàn)象,不亮等元器件本身已經(jīng)損壞問(wèn)題,導(dǎo)致后面測(cè)試時(shí)顯示的畫面不是很立體。還有一問(wèn)題就是在制板過(guò)程中由于沒有考慮周全導(dǎo)致在后期階段的操作出現(xiàn)了困難。 5.2 總結(jié)及心得 通過(guò)了這次的設(shè)計(jì)與制作,鞏固了自己對(duì)所學(xué)的知識(shí)和理論,對(duì)計(jì)算機(jī)應(yīng)用系統(tǒng)有了大概的了解,并且掌握了基本的單片機(jī)軟件和硬件的開發(fā)方法,能夠提升對(duì)實(shí)際的單片機(jī)軟件和硬件開發(fā)的能力。同時(shí),加強(qiáng)了我對(duì)實(shí)際遇到問(wèn)題的分析能力和解決能力。系統(tǒng)的性能指標(biāo)和運(yùn)行的穩(wěn)定性更是我關(guān)注的重點(diǎn),以系統(tǒng)的穩(wěn)定性和精確性為主的原則,采用了各種的優(yōu)化方法,基本完成了設(shè)計(jì)規(guī)定的指標(biāo)和要求,而且對(duì)于某些指標(biāo)進(jìn)行了功能擴(kuò)展與優(yōu)化。在制作課程設(shè)計(jì)過(guò)程中還要非常感謝我身邊的同學(xué),有了他們的幫助我才得以這么順利的完成了我的設(shè)計(jì),同時(shí)我也從他們的幫我的過(guò)程中學(xué)到了很多知識(shí)。 參考文獻(xiàn) [1] 張瑞玲.單片機(jī)原理與應(yīng)用[M].西北工業(yè)大學(xué)出版社,2010,12 [2] 康華光.電子技術(shù)基礎(chǔ)(數(shù)字部分)[M].高等教育出版社,2014,1 [3] 陳海宴.51單片機(jī)原理及應(yīng)用—基于Keil C與Proteus[M].北京航空航天大學(xué)出版社,2013.3 [4] 譚浩強(qiáng).C語(yǔ)言設(shè)計(jì)[M].清華大學(xué)出版社,2010,7 [5] 郭天祥.新概念51單片機(jī)C語(yǔ)言教程[M].北京,電子工業(yè)出版社,2009,46-79. [6] 姚永平等,STC12C5A60S2系列單片機(jī)器件手冊(cè)[M]. [7] 張毅剛.基于proteus單片機(jī)課程的基礎(chǔ)實(shí)驗(yàn)與課程設(shè)計(jì)[M].北京,人民郵電出版社,2012.32-99 [8] 阮永松.打造音樂頻譜時(shí)鐘.無(wú)線電[J].2012-6(第597期),44-47
附錄
1.主要程序
- #include
- #include
- #define uchar unsigned char
- #define uint unsigned int
- uchar display[8][8];/*rank:A,1,2,3,4,I,心,U*/
- void sinter()
- {
- IE=0x82;
- TCON=0x01;
- TH0=0xc0;
- TL0=0;
- TR0=1;}
- void delay5us(void) //誤差 -0.026765046296us STC 1T 22.1184Mhz
- {
- unsigned char a,b;
- for(b=7;b>0;b--)
- for(a=2;a>0;a--);
- }
- void delay(uint i)
- {
- while (i--){
- delay5us();}//12t的mcu 注釋這個(gè)延時(shí)即可
- }/*To judge the num bit*/
- uchar judgebit(uchar num,uchar b)
- {
- char n;
- num=num&(1<<b);
- if (num)
- n=1;
- else
- n=0;
- return n;
- }
- /*To figure out the round number*/
- uchar abs(uchar a)
- {
- uchar b;
- b=a/10;
- a=a-b*10;
- if (a>=5)
- b++;
- return b;
- }
- /*To figure out the absolute value*/
- uchar abss(char a)
- {
- if (a<0)
- a=-a;
- return a;
-
- }
-
- /*The function can comparat the character.
- And remove the big one to the back.*/
- void max(uchar *a,uchar *b)
- {
- uchar t;
- if ((*a)>(*b))
- {
- t=(*a);
- (*a)=(*b);
- (*b)=t; }
- }
- /*The function is to figure out the max number and return it.*/
- uchar maxt(uchar a,uchar b,uchar c)
- {
- if (a<b)
- a=b;
- if (a<c)
- a=c;
- return a;
- }
- void trans(uchar z,uint speed)
- {
- uchar i,j;
- for (j=0;j<8;j++)
- {
- for (i=0;i<8;i++)
- {
- display[z][i]>>=1;
- }
- delay(speed);
- }}
- void print() interrupt 1
-
- {
-
- uchar i;
-
- static uchar layer=0;
-
- P1=0;
-
- for (i=0;i<8;i++)
-
- {
-
- P2=1<<i;
-
- delay(3);
-
- P0=display[layer][i];
-
- delay(3);
-
- }
-
- P1=1<<layer;
-
- if (layer<7)
-
- layer++;
-
- else
-
- layer=0;
-
- TH0=0xc0;
-
- TL0=0;
-
- }
-
復(fù)制代碼
|