基于單片機(jī)的光立方課程設(shè)計(jì)(20210207053450)_第1頁(yè)
基于單片機(jī)的光立方課程設(shè)計(jì)(20210207053450)_第2頁(yè)
基于單片機(jī)的光立方課程設(shè)計(jì)(20210207053450)_第3頁(yè)
基于單片機(jī)的光立方課程設(shè)計(jì)(20210207053450)_第4頁(yè)
基于單片機(jī)的光立方課程設(shè)計(jì)(20210207053450)_第5頁(yè)
已閱讀5頁(yè),還剩59頁(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、HUIZHDU JNrVERBfTV單片機(jī)課程設(shè)計(jì)報(bào)告題目 基于單片機(jī)的4*4*4光立方設(shè)計(jì)系別計(jì)算機(jī)科學(xué)系專業(yè)計(jì)算機(jī)科學(xué)與技術(shù)班級(jí)學(xué)號(hào)姓名指導(dǎo)教師日期【摘要】當(dāng)今社會(huì),隨著電子行業(yè)的不斷發(fā)展,單片機(jī)的應(yīng)用從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法,已廣泛的應(yīng)用在工業(yè)自動(dòng)化、通信、自動(dòng)檢測(cè)、信息家電、電力電子航空航天等各個(gè)方面。成為現(xiàn)代生產(chǎn)和生活中不可缺少的一部分。我們學(xué)習(xí)單片機(jī)也一個(gè)學(xué)期了,此次單片機(jī)課程設(shè)計(jì),我采用的是STC12C5A60S2系列的單片機(jī),設(shè)計(jì)一個(gè)4*4*4模式的“光 立方”。將LED燈分成4層,利用程序來(lái)編寫各種不同的效果來(lái)控制LED的亮滅,最終使得整個(gè)立方體展現(xiàn)不同

2、的變換,美輪美奐,絢麗多彩?!炯怄I詞】單片機(jī)課程設(shè)計(jì) 光立方1緒論1.1課題研究的背景“光立方” 一詞正逐漸引起了全國(guó)人民的尖注,并得到了全球的高度肯定。所謂“光立方”:就是在平面LED基礎(chǔ)上發(fā)展起來(lái)的新的顯示技術(shù),通過復(fù)雜的程序控制,在三維空間能夠顯示具有立體感的圖形、動(dòng)畫等。由此,也掀起了光立方的設(shè)計(jì)與學(xué)習(xí)熱潮,在原有的基礎(chǔ)上不斷增加難度,增加變換花樣,吸引電子愛好者對(duì)其研究、創(chuàng)新。光立方是由LED燈組成,由于發(fā)光二級(jí)管質(zhì)量比較穩(wěn)定,使用壽命長(zhǎng),不用頻繁地去更換,能減少成本,更節(jié)能。光立方作為一種特殊的顯示資源,已用于一些廣告行業(yè)、家庭、娛樂廳、會(huì)議室、大型演唱會(huì)、城市地標(biāo)廣場(chǎng)等場(chǎng)所的布置

3、和裝飾,還可以用于更廣泛方面,具有廣闊的應(yīng)用前景。1.2課題研究的意義本次畢業(yè)設(shè)計(jì)一改傳統(tǒng)的平面流水燈的風(fēng)格,而是從平面向立體發(fā)展,通過更寬廣的三維空間呈現(xiàn)出更加絢麗的效果,直接沖擊著人們審美視覺,不在停留在乏味的平面成像。光立方主體部分由64個(gè)LED燈組成,在制作過程中鍛煉學(xué)習(xí)動(dòng)手焊接能力,并以低成本,智能化產(chǎn)品對(duì)實(shí)現(xiàn)經(jīng)濟(jì)利益、商業(yè)價(jià)值的形成具有積極的推動(dòng)作用。光立方的研究極具創(chuàng)意和啟發(fā),而且可以低成本、高效益的研究未來(lái)的3D技術(shù)。2總體設(shè)計(jì)2.1設(shè)計(jì)目的1 進(jìn)一步掌握單片機(jī)的原理及其功能。學(xué)會(huì)利用單片機(jī)做一些課外電子設(shè)計(jì) 與制作。2. 熟悉LED點(diǎn)亮條件及其工作原理。3. 熟悉光立方顯示的

4、原理及其相尖的線路連接。4. 通過此次的電路焊接和調(diào)試提高自己的動(dòng)手及其分析問題的能力。2.2工作原理光立方其功能相當(dāng)于三維顯示器,只不過光立方是由LED燈組成的三維的立方體。光立方顯示的原理簡(jiǎn)單的說(shuō)就是用單片機(jī)控制64個(gè)LED燈,在不同時(shí)刻點(diǎn)亮要顯示圖案位置所在的燈,利用人眼余輝效應(yīng),可以看到比較完整的顯示圖案或動(dòng)畫了。其原理如下:光立方從下到上共4 層,每一層16個(gè)LED的負(fù)極接到一起,第一層16個(gè)藍(lán)色正極和16個(gè)紅色正極分別單獨(dú)引出,第二層的每個(gè)正極分別接到它對(duì)應(yīng)第一層正極,第三層的正極接第二層的正極。就是豎著看是8個(gè)接到一個(gè)正極上。連在一起的是陰極,這樣焊接起來(lái)。光立方引出4層引 出線

5、加上16個(gè)正極引出線。3系統(tǒng)硬件電路設(shè)計(jì)與實(shí)現(xiàn)3.1元件清單PCB 板 *1,紅藍(lán)雙色超高亮長(zhǎng)腳LED*70,40P圓排珍4,5MMLED間隔柱*5,5MM 七彩 LED*5,15MM 銅柱 *5,DC005 線 *1,DC005 座 *1,25V470UF電解電容叮,1K電阻*4,40 P芯片底座22P瓷片電容U,STC12C5A60S 芯片 *1,11.0592M 晶振 *1,單芯導(dǎo)線X3.2硬件電路設(shè)計(jì)本電路是由單片機(jī)STC12C5A60S2為控制核心,具有大容量程序存儲(chǔ)器且是FLASH工藝的,具有串口燒寫編程功能,低功耗;時(shí)鐘源電路有很多種,比如阻容低速時(shí)鐘源、普通晶體時(shí)鐘源、帶緩 沖

6、放大的晶體時(shí)鐘源等等,考慮到電路穩(wěn)定及材料選購(gòu)等方面,決定采用普通晶體時(shí)鐘源,其中晶體用11-0592M的石英晶振。顯示部份由顯示部份由來(lái)進(jìn)行顯示。64個(gè)LED燈組成3.3單片機(jī)最小系統(tǒng)單片機(jī)的最小系統(tǒng)就是讓單片機(jī)能正常工作并發(fā)揮其功能時(shí)所必須的組成部分,解為是用最少的元件組成的單片機(jī)可以工作的系統(tǒng)。對(duì)89C51單片機(jī)來(lái)說(shuō),最小系統(tǒng)該包括:?jiǎn)纹瑱C(jī)、時(shí)鐘電路、復(fù)位電路、輸入/輸出設(shè)備等。也可理般應(yīng)單片機(jī)的最小系統(tǒng)如下圖所示303.3電路圖設(shè)計(jì)通過電路圖設(shè)計(jì),方便搭建起光立方的架構(gòu)。1 電源設(shè)計(jì)電路圖VCCT T1 A2時(shí)鐘電路圖3整體電路圖F4k-| lw PW IF* I E I詞二k制b:

7、Wk把其余元器件焊接好后xki&ZK珈k跖P.-嚴(yán)?:】化nr*!IICM1OCKOK! cm;MnBcowR-CX)E嚴(yán):3.4光立方搭建方法3.4.1將LED從點(diǎn)到線的搭建首先接線下燈座的制作萬(wàn)法:把40P圓排母用水口鉗或者斜口鉗剪成單針如下圖所示LED的可以用342將LED從線到面的搭建進(jìn)行八次上訴焊接后接下來(lái)就是將4束的LED焊接起來(lái)。在從點(diǎn)到線時(shí)是將所有陰極連在一起,而這次則是將所有LED陽(yáng)極彎折并依次連接,如圖所示。注意:由于焊接過程中將產(chǎn)生靜電容易將LED燒壞,因此本項(xiàng)工作完成后請(qǐng)認(rèn)真檢查每個(gè)燈的好壞 萬(wàn)用筆等工具檢測(cè)。同時(shí)檢測(cè)燈與燈之間有沒虛焊情況。343將LED從面到體的搭建

8、最后一個(gè)步驟是將已焊好的4個(gè)面進(jìn)行焊接,其方法是將之前8個(gè)面上的陰極對(duì)應(yīng)位置依次焊接,最后 留出的4個(gè)陰極與輸出端進(jìn)行連接。實(shí)物圖如下圖所示。4 系統(tǒng)軟件設(shè)計(jì)4.1主程序設(shè)計(jì)程序主函數(shù)運(yùn)行流程框圖如下圖所示。4.2軟件測(cè)試光立方主要是通過程序來(lái)控制光立方體從而達(dá)到多種動(dòng)畫變化的效果。由于要形成多樣的3D動(dòng)畫,在 變成過程中也出現(xiàn)了不少的問題。最后經(jīng)過多次的細(xì)心修改,順利的完成了編程工作。4.3結(jié)果分析本設(shè)計(jì)通過硬件設(shè)備和軟件完美配合,總共呈現(xiàn)十一個(gè)連續(xù)的動(dòng)畫效果。經(jīng)過多次的反復(fù)測(cè)試與分析,所呈現(xiàn)的動(dòng)畫與程序中預(yù)期的效果吻合,符合設(shè)計(jì)要求。在軟硬件測(cè)試過程中讓我們對(duì)原先 設(shè)計(jì)的電路的原理及功能進(jìn)

9、一步熟悉,并對(duì)各電路模塊和相尖的芯片聯(lián)合工作更加了解。在這個(gè)調(diào)試的過程中雖然挺枯燥無(wú)味,但鍛煉我們發(fā)現(xiàn)問題并解決問題的能力,對(duì)我們的專業(yè)知識(shí) 起到了溫故知新的作用。5課程設(shè)計(jì)心得體會(huì) 此次為期兩個(gè)禮拜的課程設(shè)計(jì),讓我感受頗深。最終看到了絢麗多姿,變化多 端的LED光立方的圖案。在中,在很大程度上培養(yǎng)了自己的獨(dú)立思考及其動(dòng)手能力。學(xué)會(huì)了自己獨(dú)立的 發(fā)現(xiàn)問題、分析問題。老師在實(shí)驗(yàn)室指導(dǎo)我們的設(shè)計(jì),在查閱資料仍找不到但答案的還可以請(qǐng)教老師。 盡管此次設(shè)計(jì)過程中遇到些問題,但最終還是一步一個(gè)腳印過來(lái)了。此次設(shè)計(jì)在丁老師的指導(dǎo)下完成的, 老師扎實(shí)的專業(yè)知識(shí),讓我覺得自己還有好多的知識(shí)需要去學(xué)習(xí)。在這大學(xué)

10、的時(shí)間,要好好的提升自己的相 尖技能。程序代碼#include #include vintrins.h#define uint unsigned int#define uchar unsigned char#define MAX_Delay 8#define MIN_Delay 1sbit S_1 = P1 A1;sbit S_2 = P1 A2;unsigned int pwm;unsigned char TimeDelay = 10;unsigned char Mode = 1;unsigned char code tabP2=0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0

11、xBF,0x7F; 掃描 uchar s=0;void DELAY_MS (uchar i)/unsigned int i;/while( -a != 0)/for(i = 0; i 600; i+);/uchar xj;for(j=0;ji;j+) for(x=0;x=148;x+);void Adc_Delay (uint a) uint i; while( -a != 0)for(i = 0; i 0;x-) for(y=z;y0;y-);void timerl_init()TMOD |= 0x10;TH1 =0;TL1 = 0;ET1 = 1;TR1 = 1;EA= 1;/*z.ipA

12、D轉(zhuǎn)換函數(shù)*/unsigned char Read (unsigned char CHA)unsigned char AD_FIN=0; / CHA&= 0x07; ADC_CONTR0x00;=存儲(chǔ)A/D轉(zhuǎn)換標(biāo)志選擇ADC的8個(gè)接口中的一個(gè)(0000 0111清0高5位)據(jù)數(shù)據(jù)手冊(cè)設(shè)置)/ADC轉(zhuǎn)換的速度(0XX0 0000其中XX控制速度,請(qǐng)根nop_(); ADC_CONTR|= CHA;_nop_();ADC_CONTR |= 0x80;Adc_Delay(1);ADC_CONTR |= 0x08;選擇A/D當(dāng)前通道/啟動(dòng)A/D電源使輸入電壓達(dá)到穩(wěn)定(1ms即可)_nop_();啟動(dòng)

13、A/D 轉(zhuǎn)換(0000 1000 令 ADCS = 1 )_nop_();_nop_();_nop_();while (AD_FIN =0)/等待A/D轉(zhuǎn)換結(jié)束AD_FIN = (ADC_CONTR & 0x10); /0001 0000 測(cè)試 A/D 轉(zhuǎn)換結(jié)束否ADC_CONTR &二 0xE7; /1111 0111 清 ADC_FLAG 位,尖閉 A/D 轉(zhuǎn)換,return(ADC_RES);/返回A/D轉(zhuǎn)換結(jié)果(8位)if*it* AD電容式觸摸按鍵檢測(cè)程序*/bit 1表示有感應(yīng)物 0表示沒有感應(yīng)物S1bit S1 (void)unsigned char R,mm=0,i,j,k;b

14、it aa;j=O;k=O;for(i=0;iv10;i+)/ 一次采集數(shù)據(jù)的數(shù)量Adc_Delay(3); R=Read(1);/讀對(duì)應(yīng)的口 觸發(fā)對(duì)應(yīng)的觸摸按鍵if(R1 & j1)mm+;elsemm=O;if(mm0)aa =1;elseaa=O;return(aa);/S2/itbit S2(void)unsigned char R,mm=O,iJ,k;bit aa;j=O;k=O; for(i=0;i10;i+) / 一次采集數(shù)據(jù)的數(shù)量Adc_Delay ;R=Read ;if(R1 & j1)mm+;elseif(mm0)aa =1;elseaa=O;return(aa);結(jié)束呼吸

15、燈專用uchar code table=0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,

16、96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,;void PwmUp(uint a, uchar c)uchar i;if(c =1)P3 =0X00;elseP0 =0X00;P2 0X0 0;i = table

17、a; Delay(i); if(c = 1)P3 = OXFF;elsePO = OXFF; P2 = OXOO; Delay(150-i);void PwmDown(uint a,uchar c) uchar i;if(c = 1)P3=0XFF; elsePO=OXFF;P2 0X00;i = tablea; Delay(i);if(c = 1)P3 =0X00; elsePO =0X00;P2 0X0 0;Delay(150-i);void PwmAllon(uchar c)inti;for(i = 0; i 150 ;i+) PwmDown(i,c);if(c =1)P3 =0X00;

18、elsePO =0X00;P2 0X0 0;void PwmOff(uchar c) inti;/ P3 = OXFF;/ P2 = 0X00;/ Delay(100);for(i = 0; i 150; i+) PwmUp(i,c);/P3 = 0X00;void Allfalloff(uchar c,uchar time)由全亮到下落尖閉只剩一排unsigned char code tabP058= 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF, 0x00,0x00,0xFF

19、,0xFF,0x00,0x00,0xFF,0xFF, 0x00,0x00,0x00,OxFF,0x00,0x00,0x00,OxFF, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, ;int j,k,i;if(c=1)P3 = 0X00;else if(c=2)P0 = 0X00;elseP3 = OXFF;P0 = OXFF;for(j=0;j5;j+)for(k=0;k15;k+)for(i=0;iv8;i+)/ P0=0;P2=tabP2i;if(c = 1)PO=tabPO0i;else if(c = 2)P3 = tabPO0i;elsePO=ta

20、bPO0i;DELAY_MS(time);void Randomlight(uchar c,uchar time)隨機(jī)亮完unsigned char codetabP0388= 0x00,0x20,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x10,0x00, 0x00,0x20,0x00,0x00,0x00,0x02,0x10,0x00, 0x00,0x20,0x04,0x00,0x00,0x02,0x10,0x00, 0x00,OxAO,0x04,0x00,0x00,0x02,0x10,0x00, 0x00,O

21、xAO,0x24,0x10,0x00,0x02,0x10,0x00, 0x40,OxAO,0x24,0x10,0x00,0x02,0x10,0x00, 0x40,OxAO,0x24,0x10,0x20,0x02,0x10,0x00, 0x40,OxAO,0x24,0x10,0x20,0x22,0x10,0x00, 0x40,OxAO,0x24,0x10,0x20,0x22,0x14,0x42, 0x40,OxAO,0x24,0x10,0x20,0x26,0x14,0x42, 0x40,OxAO,0x25,0x10,0x20,0x26,0x14,0x42, 0x44,OxAO,0x25,0x10

22、,0x20,0x26,0x14,0x42, 0x44,OxAO,0x25,0x50,0x20,0x26,0x14,0x42, 0x44,OxAO,0x25,0x50,OxAO,0x26,0x14,0x42, 0x44,OxAO,0x25,0x50,OxAO,0x27,0x14,0x43, 0x44,OxAO,0x25,0x50,OxAO,0x27,0x14,0x53, 0x44,OxAO,0x65,0x50,OxAO,0x27,0x54,0x53, 0x44,OxAO,0x65,0x50,0xA0,0xA7,0x54,0x53, 0x44,OxAO,0x65,0x50,0xA8,0xA7,0x

23、54,0x53, 0x44,OxAO,0x65,0x50,0xA8,0xA7,0x56,0x5B, 0x46,OxAO,0x67,0x52,0xA8,0xA7,0x56,0x5B, 0x46,OxA1,0x67,0x52,0xA8,0xA7,0x56,0x5B, 0x46,OxB1,0x67,0x52,0xA8,0xA 7,0x56,0x5B, 0x46,OxB1,0x67,0x5A,0xA8,0xA7,0x56,0x5B, 0x56,OxB1,0x67,0x5A,0xA8,0xA7,0x56,0x5B, 0x56,OxB1,0x67,0x5A,0xA8,0xE7,0x56,0x5B, 0x5

24、6,OxB1,0x67,0x5A,0xAA,0xE7,0x56,0x5F, 0x56,OxB1,0x67,0x5A,0xAA,0xE7,0x56,0x7F, 0x56,0xF9,0x67,0x7A,0xAA,0xE7,0x56,0x7F, 0x56,0xF9,0x67,0x7A,0xAE,0xE7,0x5E,0x7F, 0x5E,0xFD,0x67,0x7B,0xAE,0xE7,0x5E,0x7F, 0x5E,0xFD,0x67,0x7B,0xEE,0xE7,0xDE,0xFF, 0xDE,0xFD,0xE7,0xFB,0xEF,0xE7,0xFF,0xFF, 0xDE,0xFD,0xF7,0

25、xFB,0xFF,0xF /QxFFQxFF,0xDE,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF ;int j,k,i;if(c=1)P3 = 0X00;else if(c=2)P0 = 0X00;elseP3 = OXFF;PO = OXFF;for(j=0;j38;j+)for(k=0;k10;k+)for(i=0;iv8;i+)/ P0=0;P2=tabP2i;if(c = 1) PO=tabPOji;else if(c = 2)P3 = tabPOji; elseP3 = tab

26、PO0i;PO=tabPO0i; DELAY_MS(time);void Randomoff(uchar c,uchar time) t逋機(jī)滅完unsigned char code tabP0238= 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xDF,0xFF,0xFF,0xFF,0xFF,0xDF, 0xFF,0xFF,0xDF,0xFF,0xFF,0xFF,0xED,0xDF, 0xFF,0xF7,0xDD,0xFF,0xFF,0xFF,0xED,0xDF, 0xFF,0xF7,0xDD,0xEF,0xFF,0xDF,0xED,

27、0xDF, 0xFF,0xF7,0x5D,0xAF,0xFD,0xDF,0xED,0xDF, 0xFF,0xF7,0x5C,0xAF,0xDD,0xDF,0xED,0xDF, 0xFF,0xE7,0x5C,0xAF,0xDD,0xDF,0x6D,0xDD, 0xFF,0xE7,0x5C,0x2F,0xDD,0xD7,0x6D,0x9D, 0xFF,0xE5,0x5C,0x2F,0xDD,0xD7,0x69,0x9D, 0xFF,0xA5,0x5C,0x2B,0xDD,0x57,0x69,0x9D, 0xFF,0xA5,0x5C,0x29,OxDD,0x57,0x69,0x8D, OxBD,0x

28、85,0x5C,0x29,OxDD,0x57,0x69,0x8D, OxBD,0x85,0x54,0x29,OxDD,0x53,0x48,0x8D, 0x9D,0x85,0x54,0x29,OxDD,0x53,0x08,0x8D, 0x9D,0x81,0x54,0x09,OxDD,0x13,0x08,0x8D, 0x95,0x81,0x54,0x09,OxDD,0x12,0x08,0x85, 0x95,0x01,0x54,0x09,0x09,0x12,0x08,0x85, 0x95,0x01,0x54,0x01,0x89,0x12,0x08,0x84, 0x95,0x01,0x40,0x01,

29、0x89,0x02,0x08,0x80, 0x95,0x00,0x40,0x01,0x88,0x02,0x08,0x00, 0x94,0x00,0x00,0x00,0x88,0x00,0x08,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,;int j,k,i;if(c=1)P3 = 0X00;else if(c=2)P0 = 0X00;elseP3 = OXFF; PO = OXFF;for(j=0;j23;j+)for(k=0;k10;k+)for(i=0;iv8;i+)/ P0=0;P2=tabP2i; if(c = 1)PO=tabPOji

30、; else if(c = 2)P3 = tabP0ji; elsePO=tabPOji; DELAY_MS(time);void Righttoleft(uchar c,uchar time)/ 右面平移至!左面unsigned char code tabPO4= 0x00,0x00,0x00,0x00,0x0F,0x0F,0x0F,0x0F, 0x00,0x00,0x00,0x00,0xF0,0xF0,0xF0,0xF0, 0xF0,0xF0,0xF0,0xF0,0x00,0x00,0x00,0x00, 0x0F,0x0F,0x0F,0x0F,0x00,0x00,0x00,0x00 ;in

31、t j,k,i;if(c=1)P3 = 0X00;else if(c=2)PO = 0X00;elseP3 = OXFF;PO = OXFF;for(j=0;jv4;j+)for(k=0;k10;k+)for(i=0;iv8;i+)/ P0=0;P2=tabP2i;if(c = 1)PO=tabPO0i;else if(c = 2)P3 = tabP0ji;elsePO=tabPOji;P3 = tabP0ji;DELAY_MS(time);void Lefttoright(uchar c,uchar time) / 左面平移至!右面unsigned char code tabP048= 0x

32、0F,0x0F,0x0F,0x0F,0x00,0x00,0x00,0x00, 0xF0,0xF0,0xF0,0xF0,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xF0,0xF0,0xF0,0xF0, 0x00,0x00,0x00,0x00,0x0F,0x0F,0x0F,0x0F;int j,k,i; if(c=1) P3 = 0X00;else if(c=2) P0 = 0X00;else P3 = OXFF;P0 = 0XFF;for(j=0;jv4;j+)for(k=0;k10;k+)for(i=0;iv8;i+)/P0=0;P2=tabP2i;

33、if(c = 1) PO=tabPOji; else if(c = 2) P3 = tabPOji;elsePO=tabPO0i; DELAY_MS(time);void turnD(uchar c,uchar time)/ 從右面至!下面unsigned char code tabPO8= 0x00,0x00,0x00,0x00,0xF0,0x0F,0x0F,0x0F,OxFO,0x00,0x00,0x00,0x00,0xF0,0x0F,0x0F, 0x0F,0xF0,0x00,0x00,0x00,0x00,0xF0,0x0F, 0x00,0x0F,0xF0,0x00,0x00,0x00,0

34、x00,OxFF, 0x00,0x00,0x0F,0xF0,0x00,0x00,0x00,OxFF, 0x00,0x00,0x00,0xFF,0x00,0x00,0x00,OxFF;int j,k,i;if(c=1)P3 = 0X00;else if(c=2)PO = 0X00;elseP3 = OXFF;PO = OXFF;for(j=0;jv6;j+)for(k=0;k10;k+)for(i=0;i8;i+)/ P0=0;P2=tabP2i;if(c = 1)PO=tabPO0i;else if(c = 2)P3 = tabPO0i;elsePO=tabPOji;DELAY_MS(time

35、);void Toptofollowing(uchar c,uchar time) 上面平移到卜面unsigned char code tabP048=OxFF,0x00,0x00,OxOO,OxFF,0x00,0x00,0x00, 0x00,OxFF,0x00,0x00,0x00,OxFF,0x00,0x00, 0x00,0x00,OxFF,0x00,0x00,0x00,OxFF,0x00, 0x00,0x00,0x00,OxFF,0x00,0x00,0x00,OxFF,; int j,k,i;if(c=1)P3 = 0X00;else if(c=2)PO = OXOO; elseP3 =

36、OXFF;PO = OXFF;for(j=0;jv4;j+)for(k=0;k10;k+)for(i=0;iv8;i+)/ P0=0;P2=tabP2i;if(c = 1)PO=tabPO0i;else if(c = 2)P3 = tabPOji; elsePO=tabPO0i;DELAY_MS(time);void Followingtotop(uchar c,uchar time)下面平移到上面unsigned char code tabP048= 0x00,0x00,0x00,OxFF,0x00,0x00,0x00,OxFF,0x00,0x00,OxFF,0x00,0x00,0x00,O

37、xFF,0x00, 0x00,OxFF,0x00,0x00,0x00,OxFF,0x00,0x00,OxFF,0x00,0x00,0x00,OxFF,0x00,0x00,0x00,;int j,k,i;if(c=1)P3 = 0X00;else if(c=2)PO = 0X00;elseP3 = OXFF;PO = OXFF;for(j=0;jv4;j+)for(k=0;k10;k+)(for(i=0;iv8;i+)/ P0=0;P2=tabP2i;if(c = 1)PO=tabPO0i;else if(c = 2)P3 = tabP0ji; elsePO=tabPO0i; DELAY_MS(

38、time);void Alllight(uchar c,uchar time)右到左全亮unsigned char code tabP04H8=0x00,0x00,0x00,0x00,0x0F,0x0F,0x0F,0x0F, 0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF, 0xF0,0xF0,0xF0,0xF0,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF ;intj,k,i;if(c=1)P3 = 0X00;else if(c=2)P0 = 0X00;elseP3 = OXFF;P0

39、 = OXFF;for(j=0;jv4;j+)for(k=0;k10;k+)for(i=0;iv8;i+)/ P0=0;P2=tabP2i;if(c = 1)PO=tabPO0i;else if(c = 2)P3 = tabP0ji;elsePO=tabPOji;DELAY_MS(time);void Evel(uchar c,uchar time) / 斜面亮unsigned char code tabP078=0x00,0x00,0x00,OxFE,0x00,0x00,0x00,0xF7,0x00,0x00,0x00,OxEC,0x00,0x00,0x00,0x73, 0x00,0x00,

40、0x00,0x4C,0x00,0x00,0x00,0x23, 0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x21, 0x00,0x00,0x48,0x48,0x00,0x00,0x21,0x21, 0x00,0x48,0x48,0x48,0x00,0x21,0x21,0x21, 0x48,0x48,0x48,0x48,0x21,0x21,0x21,0x21, ; int j,k,i;if(c=1)P3 = 0X00;else if(c=2)PO = 0X00;elseP3 = OXFF;PO = OXFF;for(j=0;jv7;j+)for(k=0;k10;k+)

41、for(i=0;iv8;i+)P0=0;P2=tabP2i;if(c = 1)PO=tabPO0i;else if(c = 2)P3 = tabP0ji;elsePO=tabPO0i;DELAY_MS(time);void Followtotop(uchar c,uchar time)/上面轉(zhuǎn)移到后面可以接旋轉(zhuǎn)unsigned char code tabP010勻OxFF,0x00,0x00,0x00,OxFF,0x00,0x00,0x00, 0xEE,0x11,0x00,0x00,OxFF,0x00,0x00,0x00, 0xEC,0x12,0x01,0x00,OxFF.OxOO,0x00,

42、0x00, 0xC8,0x24,0x12,0x01 ,OxEF,0x10,0x00,0x00, 0x88,0x48,0x24,0x12,0xCE,0x21,0x10,0x00, 0x88,0x88,0x48,0x24,0x8C,0x42,0x21,0x10, 0x88,0x88,0x88,0x48,0x88,0x84,0x42,0x21,0x88,0x88,0x88,0x88,0x88,0x88,0x84,0x42, 0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x84,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88intif(c=1)

43、P3 = 0X00;else if(c=2)P0 = 0X00;elseP3 = OXFF;PO = OXFF;for(j=0;j15;j+)for(k=0;kv10;k+)for(i=0;i8;i+)/ P0=0;P2=tabP2i;if(c = 1)PO=tabPO0i;else if(c = 2)P3 = tabP0ji;elsePO=tabPO0i;DELAY_MS(time);void Spin(uchar c,uchar time) / 旋轉(zhuǎn)unsigned char code tabP088= 0x48,0x48,0x48,0x48,0x21,0x21,0x21,0x21, 0x

44、44,0x44,0x44,0x44,0x22,0x22,0x22,0x22, 0x22,0x22,0x22,0x22,0x44,0x44,0x44,0x44, 0x21,0x21,0x21,0x21,0x48,0x48,0x48,0x48, 0x31,0x31,0x31,0x31,0xC8,0xC8,0xC8,0xC8, 0x30,0x30,0x30,0x30,0xC0,0xC0,0xC0,0xC0, 0xC0,0xC0,0xC0,0xC0,0x30,0x30,0x30,0x30, 0xC8,0xC8,0xC8,0xC8,0x31,0x31,0x31,0x31,;int j,k,i;if(c=

45、1)P3 = 0X00;else if(c=2)PO = 0X00;elseP3 = OXFF;PO = OXFF;for(j=0;jv8;j+)for(k=0;kv8;k+)for(i=0;iv8;i+)/ PO=O;P2=tabP2i;if(c = 1)PO=tabPO0i;else if(c = 2)P3 = tabPOji; else PO=tabPOji;DELAY_MS(time);void Thenthelast(uchar c,uchar time) /接旋轉(zhuǎn)下來(lái)到第一排unsigned char code tabP038= 0x00,0x48,0x48,0x48,0x00,0

46、x21,0x21,0x21, 0x00,0x00,0x48,0x48,0x00,0x00,0x21,0x21, 0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x21 ;int j,k,i;if(c=1)P3 = 0X00;else if(c=2)P0 = 0X00;elseP3 = OXFF;P0 = OXFF;for(j=0;jv3;j+)for(k=0;k10;k+)for(i=0;iv8;i+)/ P0=0;if(c = 1)PO=tabPO0i; else if(c = 2)P3 = tabPO0i;elsePO=tabPO0i; DELAY_MS(time)

47、;void Thelast(uchar c,uchar time) /接下來(lái)一排斜的后4點(diǎn)轉(zhuǎn)到左上1unsigned char code tabP0438= 0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x21, 0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x23, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x27, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,OxOF, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8E, 0x00,0x00,0x00,0

48、x80,0x00,0x00,0x00,0x8C, 0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x88, 0x00,0x00,0x00,0x8C,0x00,0x00,0x00,0x80, 0x00,0x00,0x00,0x8E,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,OxOF,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x10, 0x00,0x00,0x00,0x11,0x00,0x00

49、,0x00,0x30, 0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x70, 0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x70, 0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60, 0x00,0x00,0x00,0x60,0x00,0x00,0x20,0x40, 0x00,0x00,0x00,0x60,0x00,0x00,0x60,0x00, 0x00,0x00,0x40,0x20,0x00,0x00,0x60,0x00, 0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00, 0x00,0x00,0x60,0x00,0x00,0x20,0x40,0x00, 0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00, 0x00,0x40,0x20,0x00,0x00,0x60,0x00,0x00, 0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00, 0x00,0x60,0x00,0x00

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論