版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 目錄</b></p><p> 摘要............................................1</p><p> 關鍵字..........................................1</p><p> 引言........................
2、....................2</p><p> 正文............................................2</p><p> 、主要元件介紹................................3</p><p> 1、STC12C5A60S2.............................
3、........3</p><p> 2、74HC573..........................................3</p><p> ULN2803..........................................4</p><p> 、工作原理...................................
4、.5</p><p> 驅(qū)動模塊原理.....................................6</p><p> ?。ㄈ?、元器件選擇...................................7</p><p> ?。ㄋ模⒅谱?、調(diào)試...................................8</p><
5、;p> 1、制作.............................................9</p><p> 2、調(diào)試.............................................11</p><p> 五、結束語..........................................13</p><
6、p> 六、參考文獻........................................12</p><p> 七、附錄(程序)....................................13</p><p><b> 光立方</b></p><p><b> 一、摘要: </b><
7、;/p><p> 本設計采用8*8*8 的模式,硬件主要分為三個模塊:主控模塊、驅(qū)動模塊、顯示模塊。采用的主控芯片為STC12C5A60S2 芯片,驅(qū)動電路是采用我們常用74HC573數(shù)字芯片。數(shù)組 OUT[0]代表光立方從第一層 D0 到第八層 D0 的數(shù)據(jù),以此類推數(shù) 組 OUT[1] 代表光立方從第一層 D1 到第八層 D1 的數(shù)據(jù)。本設計采用C語言編程,利用單片機控制LED的亮滅,采用延時控制LED亮滅時間
8、,最終使得整個立體展現(xiàn)不同的造型和圖案,使其變得美輪美奐、絢麗多彩。</p><p> 二、關鍵字:LED光立方,74HC573,STC12C5A60S2,ULN2803</p><p><b> 三、引言:</b></p><p> 光立方是由四千多棵光藝高科技“發(fā)光樹”組成的,在2009年10月1日天安門廣場舉行的國慶聯(lián)歡晚會上面世
9、,這是新中國成立六十周年國慶晚會最具創(chuàng)意的三大法寶之首,自從國慶60周年聯(lián)歡晚會開始演練后,一個全新的名詞“光立方”,吸引了全國人民的關注。國慶聯(lián)歡晚會三樣法寶,光立方為最,“光立方”在氣勢和整體感覺上,融合了北京奧運會開幕式“擊缶而歌”和“活字印刷”的風格,而各種圖案則與貫穿奧運會開幕式的“畫卷”有異曲同工之妙。“光立方”可以根據(jù)愛國歌曲的不同內(nèi)容,展示不同的造型和圖案,具有豐富的視覺效果。</p><p>&
10、lt;b> 四、正文</b></p><p><b> 主要元件介紹:</b></p><p> 1、STC12C5A60S2</p><p> STC12C5A60S2/AD/PWM系列單片機是宏晶科技生產(chǎn)的單時鐘/機器周期(1T)的單片機,是高速/低功耗/超強抗干擾的新一代8051單片機,指令代碼完全兼容傳統(tǒng)805
11、1,但速度快8-12倍。內(nèi)部集成MAX810專用復位電路,2路PWM,8路高速10位A/D轉(zhuǎn)換(250K/S),針對電機控制,強干擾場合。</p><p> 增強型8051 CPU,1T,單時鐘/機器周期,指令代碼完全兼容傳統(tǒng)8051</p><p> 工作電壓:STC12C5A60S2系列工作電壓:5.5V- 3.3V(5V單片機)</p><p> 工作頻
12、率范圍:0 - 35MHz,相當于普通8051的 0~420MHz</p><p> 應用程序空間8K /16K / 20K / 32K / 40K / 48K / 52K / 60K / 62K字節(jié)</p><p> 片上集成1280字節(jié)RAM</p><p> 外部中斷I/O口7路,傳統(tǒng)的下降沿中斷或低電平觸發(fā)中斷,并新增支持上升沿中斷的PCA模
13、塊,Power Down模式可由外部中斷喚醒,INT0/P3.2, INT1/P3.3,T0/P3.4,T1/P3.5,RxD/P3.0,CCP0/P1.3(也可通過寄存器設置到P4.2 ), CCP1/P1.4 (也可通過寄存器設置到P4.3)。</p><p> A/D轉(zhuǎn)換, 10位精度ADC,共8路,轉(zhuǎn)換速度可達250K/S(每秒鐘25萬次)</p><p> 通用全雙工異步串行
14、口(UART),由于STC12系列是高速的8051,可再用定時器或PCA軟件實現(xiàn)多串口</p><p> STC12C5A60S2系列有雙串口,后綴有S2標志的才有雙串口,RxD2/P1.2(可通過寄存器設置到P4.2),TxD2/P1.3(可通過寄存器設置到P4.3)</p><p> 工作溫度范圍:-40 - +85℃(工業(yè)級) / 0 - 75℃(商業(yè)級)</p>
15、<p><b> 2、74HC573</b></p><p> 74HC573是八進制 3 態(tài)非反轉(zhuǎn)透明鎖存器。器件的輸入是和標準 CMOS 輸出兼容的;加上拉電阻,他們能和LS/ALSTTL輸出兼容。當鎖存使能端為高時,這些器件的鎖存對于數(shù)據(jù)是透明的(也就是說輸出同步)。當鎖存使能變低時,符合建立時間和保持時間的數(shù)據(jù)會被鎖存。輸出既不是高電平,也不是低電平,而是高阻抗的狀態(tài);
16、在這種狀態(tài)下,可以多個芯片并聯(lián)輸出,當輸入的數(shù)據(jù)消失時,在芯片的輸出端,數(shù)據(jù)仍然保持</p><p><b> 3、ULN2803</b></p><p> </p><p> ULN2803是八重達林頓管,1至 8腳為8路輸入,18 到 11腳為8路輸出。驅(qū)動能力為 500MA \50V。應用
17、時9腳接地,10腳接負載電源V+,輸入的電平信號為0或5V。輸入0是輸出達林頓管截止,輸入為5V電平時,輸出達林頓飽和。輸出負載加在電源V+和輸出口上,當輸入為高電平時,輸出負載工作,該電路為反向輸出型,即輸入低電平電壓,輸出端才能導通工作。</p><p><b> 工作原理</b></p><p> 有8個8*8點陣,再用8個引腳來當充當各個8*8點陣的“開關
18、”。只要將64個燈陽極連在一起,在連到這個引腳上。采用了hc573暫存的方法,來分別把64個燈的亮滅信息存到這個上面,然后再一起輸出到燈上,573的64個輸出引腳控制前面所述每一個面的64個燈;而每層燈的陰極全連接在一起接入uln2803,由uln2803控制的每一個層燈。通過單片機主控芯片STC12C5A60S2來控制所有燈的亮滅,從而控制P0、P1、P2實現(xiàn)控制X、Y、Z空間立體控制來顯示我們所需要顯示的現(xiàn)象。</p>
19、<p> 圖1 8層面 圖2 64個燈孔</p><p> 整個設計主要分為三個模塊分別是主控模塊、驅(qū)動模塊、顯示模塊</p><p><b> 1、驅(qū)動模塊原理</b></p><p> 圖3 74HC573驅(qū)動 </p><p>&
20、lt;b> 圖4 原理圖</b></p><p> uln2803的1~8腳接主控芯片的P1口(1~8腳),數(shù)據(jù)由主控芯片P2口輸入經(jīng)過uln2803從11~18腳輸出,實現(xiàn)通過uln2803來驅(qū)動每一層。每個573的2~9腳(數(shù)據(jù)輸入)都連接在一起連接到主控芯片的P0口(32~39腳),數(shù)據(jù)從主控芯片P0口輸送到573,573的1腳是3態(tài)輸出使能輸入(低電平)一般都與地相接,573的11
21、腳(鎖存使能輸入)都連接在一起連接到主控芯片的P2口(21~28腳)作為鎖存控制。當573的11腳為高電平和2~9腳為高電平時,573的12~19腳(3態(tài)鎖存輸出)為高電平,驅(qū)動一豎面的燈亮,當11腳為高低平、2~9腳為低電平時,573的12~19腳則就為低電平,從而燈滅,當11腳為低電平時,2~9腳不管高低電平,12~19腳的輸出不變。主控芯片通過573+uln2803來驅(qū)動控制哪豎面的哪一層的哪個燈的亮滅。R1~R16是限流電阻。&
22、lt;/p><p><b> ?。ㄈ┰骷x擇</b></p><p> 由于光立方的程序量比較大,而且要求相對比較高,因此用 51 系列的增強型芯片 STC12C5A60S2,選擇的理由:1.無法解密,采用第六代加密技術; 2.超強抗干擾;3.內(nèi)部集成高可靠復位電路,外部復位可用可不用;4.速度快,比 8051 快 8-12 倍。 </p><p
23、> 2)由于燈的個數(shù)比較多,因此所需要的電流相對也比較大,所以選擇ULN2803。 3)驅(qū)動部分使用了熟悉的74HC573,其優(yōu)點有 1.高阻態(tài),就是輸出既不是高電平,也不是低電平,而是高阻抗的狀態(tài);在這種狀態(tài)下,可以多個芯片并聯(lián)輸出;2.數(shù)據(jù)鎖存;當輸入的數(shù)據(jù)消失時,在芯片的輸出端,數(shù)據(jù)仍然保持;3.數(shù)據(jù)緩沖、加強驅(qū)動能力。</p><p> 4)LED 燈的選擇,出于外觀和整體的形狀美觀,采用
24、的是霧狀藍光的 LED 燈 ,由于高亮燈比霧狀燈刺眼,所以選擇霧狀燈。</p><p> 圖 5 霧狀LED燈</p><p><b> (四)制作、調(diào)試</b></p><p><b> 1)制作:</b></p><p> 1、我們首先完成的是驅(qū)動電路 </p>&l
25、t;p> 驅(qū)動電路由于線比較多電路比較復雜,所以我們有比較多的跳線,由八個74HC573組成的,如下圖:</p><p> 圖6 573驅(qū)動連接反面</p><p> 圖7 573驅(qū)動連接正面</p><p><b> 主控電路 </b></p><p> 主控電路是最簡單的電路,主要是最
26、小系統(tǒng),其中還有一個控制層的驅(qū)動芯片焊接在主控板上,如圖所示:</p><p> 圖8 最小系統(tǒng)</p><p><b> 3、顯示模塊 </b></p><p> 首先我們用一塊比較大萬能板,在上面做了8*8個點的標志,間距為2mm然后把燈按統(tǒng)一形狀掰好管腳。然后固定在在萬能板上進行焊接,焊接完如下圖:</p>
27、<p> 圖9 燈的焊接</p><p> 焊好的如圖:每次焊完以后都要去檢查測試每個燈是否會亮,很重要的步驟</p><p> 圖 10 把八個面做好以后就是把八個面一層一層的疊起來,在這里要注意的是必須用尺子量好各個角度的高度(我們做的間距為2厘米),必須使每一個面在同一水平面上,如下圖所示:同樣的每次焊完以后都要去檢查測試每個燈是否會亮
28、 </p><p> 圖11 8層燈</p><p> 顯示部分反面,如下圖:</p><p><b> 圖12 </b></p><p><b> 2) 調(diào)試:</b></p><p> 主要是檢查全部的燈是否正常工作:</p><
29、p> (1)程序燒寫進單片機之后,發(fā)現(xiàn)有兩列沒有點亮,還好兩列的都在邊上,進而如果換燈也相對容易,我們用排除法來檢查電路,首先是檢查燈的線路是否虛焊,斷路,果真有一列的是斷路了,把它接上后這一列也亮了。</p><p> (2)還剩下另外一列,我們用同樣的方法來做,從驅(qū)動電路到顯示的都沒有問題,而且在輸入那一列的電壓也正常,我們就想不通了,是什么原因呢?我們懷疑是不是有燈壞了,我們又一個一個的檢查了這一
30、列燈,但是全部都會亮,經(jīng)過很細心的檢查,發(fā)現(xiàn)有一個燈的亮度和其他的燈亮度完全不同,相對比較暗,于是我們把它換了下來,接上另外一個,果然是哪個燈的問題,原來是由于這燈的阻抗很大,把那一列的電平都拉低了,使燈無法亮起來。</p><p> ?。?)在調(diào)試過程中,有一豎面的燈完全不亮,第一個想法是燈沒有供電,檢測供電電路法發(fā)現(xiàn)沒有問題,于是我找到573這一部分,因為這一部分跳線較多且線路密集,逐一測量發(fā)現(xiàn)線頭間短路了,
31、從新焊接后測試,故障順利排除。</p><p> ?。?)在調(diào)試過程中有幾個燈一直不亮,用萬用表歐姆檔測量發(fā)現(xiàn)燈已經(jīng)燒壞,拆下壞掉,但是有2個燈是存在虛焊問題,從新焊接后正常工作。</p><p><b> 五、結束語</b></p><p> 經(jīng)過這次的設計,讓我們更明確了團隊合作的要領和精神,更明白了焊接技術的重要性,也讓我們對單片機編
32、程的進一步了解,為了這次設計我們找了查找了很多資料,包括一些對該設計元件的作用、工作電壓等資料的了解,感謝百度和Google公司。他們的搜索功能龐大、快捷又免費,讓我們很方便地搜索到了我們所需要的設計資料和豐富的知識。此次畢業(yè)設計,是我大學學習中遇到過的時段最長、涉及內(nèi)容最廣、 工作量最大的一次設計。用老師的一句話概括就是這次畢業(yè)設計相當如是把以前的小課程設計綜合在一起的過程,只要把握住每個小課設的精華、環(huán)環(huán)緊扣、增強邏輯,那么這次的任
33、務也就不難了。同時感謝老師對我們的指導和為我們理清思路從而使我們更快我完成設計。</p><p><b> 參考文獻</b></p><p> 【1】 祈偉楊亭.單片機C51程序設計教程與實驗 北京航空航天大學出版社2006年1月 </p><p> 【2】張瑞玲.單片機原理與應用 西北工業(yè)大學出版社2010年12月</p>
34、;<p> 【3】趙亮,侯國銳.單片機C語言編程與實例[M].北京:人民郵電出版社,2003. </p><p><b> 七、附錄(源程序)</b></p><p> #include <REG52.H></p><p> #include <intrins.h></p><p
35、> #define uchar unsigned char</p><p> #define uint unsigned int </p><p> uchar display[8][8]; </p><p> /*rank:A,1,2,3,4,I,心,U*/</p><p> uchar code table_cha[8
36、][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,0x3c,0x30,0x38,0x3c,0x3e,0x36,0x7e,0x30,0x30,0x3c,0x3c,0x18,0
37、x18,0x18,0x18,0x3c,0x3c,0x66,0xff,0xff,0xff,0x7e,0x3c,0x18,0x18,0x66,0x66,0x66,0x66,0x66,0x66,0x7e,0x3c};</p><p> /*the "ideasoft"*/</p><p> uchar code table_id[40]={0x81,0xff,0x81,0
38、x00,0xff,0x81,0x81,0x7e,0x00,0xff,0x89,0x89,0x00,0xf8,0x27,0x27,0xf8,0x00,0x8f,0x89,0x89,0xf9,0x00,0xff,0x81,0x81,0xff,0x00,0xff,0x09,0x09,0x09,0x01,0x0,0x01,0x01,0xff,0x01,0x01,0x00};</p><p> /*railway*/&l
39、t;/p><p> uchar code dat[128]={0x0,0x20,0x40,0x60,0x80,0xa0,0xc0,0xe0,0xe4,0xe8,0xec,0xf0,0xf4,0xf8,0xfc,0xdc,0xbc,0x9c,0x7c,0x5c,0x3c,0x1c,0x18,0x14,0x10,0xc,0x8,0x4,0x25,0x45,0x65,0x85,0xa5,0xc5,0xc9,0xcd,0x
40、d1,0xd5,0xd9,0xb9,0x99,0x79,0x59,0x39,0x35,0x31,0x2d,0x29,0x4a,0x6a,0x8a,0xaa,0xae,0xb2,0xb6,0x96,0x76,0x56,0x52,0x4e,0x6f,0x8f,0x93,0x73,0x6f,0x8f,0x93,0x73,0x4a,0x6a,0x8a,0xaa,0xae,0xb2,0xb6,0x96,0x76,0x56,0x52,0x4e,0x
41、25,0x45,0x65,0x85,0xa5,0xc5,0xc9,0xcd,0xd1,0xd5,0xd9,0xb9,0x99,0x79,0x59,0x39,0x3</p><p> /*railway 2*/ </p><p> uchar code dat2[28]={0x0,0x20,0x40,0x60,0x80,0xa0,0xc0,0xe0,0xe4,0xe8,0xec,0xf0
42、,0xf4,0xf8,0xfc,0xdc,0xbc,0x9c,0x7c,0x5c,0x3c,0x1c,0x18,0x14,0x10,0xc,0x8,0x4};</p><p> /*railway 3*/</p><p> uchar code dat3[24]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x16,0x26,0x36,0x46,0x56,0
43、x66,0x65,0x64,0x63,0x62,0x61,0x60,0x50,0x40,0x30,0x20,0x10};</p><p> /*3p char*/</p><p> uchar code table_3p[3][8]={0xff,0x89,0xf5,0x93,0x93,0xf5,0x89,0xff,0x0e,0x1f,0x3f,0x7e,0x7e,0x3f,0x1f,0
44、x0e,0x18,0x3c,0x7e,0xff,0x18,0x18,0x18,0x18};</p><p> /*initializtion</p><p> That is to initialize the program .</p><p> It is write to set the timer in c52 mcu.</p><
45、p> So the program can renovate the led_3d_cube in fixed time use the interrupt function.*/</p><p> void sinter()</p><p><b> { </b></p><p><b> IE=0x82;<
46、/b></p><p> TCON=0x01;</p><p> TH0=0xc0; </p><p><b> TL0=0; </b></p><p><b> TR0=1; </b></p><p><b> }</b><
47、/p><p> void delay5us(void) //誤差 -0.026765046296us STC 1T 22.1184Mhz</p><p><b> {</b></p><p> unsigned char a,b;</p><p> for(b=7;b>0;b--)</p>&
48、lt;p> for(a=2;a>0;a--);</p><p><b> }</b></p><p> void delay(uint i) </p><p><b> { </b></p><p> while (i--) delay5us();//12t的mcu 注釋
49、這個延時即可</p><p><b> }</b></p><p> /*To judge the num bit判斷數(shù)字點*/</p><p> uchar judgebit(uchar num,uchar b)</p><p><b> {</b></p><p>
50、;<b> char n;</b></p><p> num=num&(1<<b);</p><p> if (num)</p><p><b> n=1;</b></p><p><b> else</b></p>
51、<p><b> n=0;</b></p><p> return n;</p><p><b> }</b></p><p> /*To figure out the round number計算出的輪數(shù)*/</p><p> uchar abs(ucha
52、r a)</p><p><b> {</b></p><p> uchar b;</p><p><b> b=a/10; </b></p><p><b> a=a-b*10;</b></p><p> if (a>
53、;=5)</p><p><b> b++;</b></p><p> return b;</p><p><b> }</b></p><p> /*To figure out the absolute value找出絕對值*/</p><p> u
54、char abss(char a)</p><p><b> {</b></p><p> if (a<0)</p><p><b> a=-a;</b></p><p> return a;</p><p><b>
55、}</b></p><p> /*The function can comparat the character.</p><p> And remove the big one to the back.*/</p><p> void max(uchar *a,uchar *b)</p><p> { &
56、lt;/p><p> uchar t; </p><p> if ((*a)>(*b)) </p><p><b> { </b></p><p><b> t=(*a); </b></p><p> (*a)=(*b);<
57、/p><p> (*b)=t; </p><p><b> }</b></p><p><b> }</b></p><p> /*The function is to figure out the max number and return it.*/</p><p&g
58、t; uchar maxt(uchar a,uchar b,uchar c)</p><p> { </p><p> if (a<b) </p><p> a=b; </p><p> if (a<c) </p><p> a=c;
59、 </p><p> return a; </p><p><b> }</b></p><p> void clear(char le)</p><p><b> {</b></p><p> uchar i,j;&
60、lt;/p><p> for (j=0;j<8;j++)</p><p><b> {</b></p><p> for (i=0;i<8;i++) </p><p> display[j][i]=le; </p><p> } </p
61、><p><b> }</b></p><p> void trailler(uint speed)</p><p><b> {</b></p><p><b> char i,j;</b></p><p> for (i=6;i>=-3;
62、i--)</p><p><b> {</b></p><p><b> if (i>=0)</b></p><p><b> {</b></p><p> for (j=0;j<8;j++)</p><p> display[j]
63、[i]=display[j][i+1];</p><p><b> }</b></p><p><b> if (i<4)</b></p><p><b> {</b></p><p> for (j=0;j<8;j++)</p><p&
64、gt; display[j][i+4]=0;</p><p><b> }</b></p><p> delay(speed);</p><p><b> }</b></p><p><b> }</b></p><p> void poin
65、t(uchar x,uchar y,uchar z,uchar le)</p><p><b> {</b></p><p> uchar ch1,ch0;</p><p><b> ch1=1<<x;</b></p><p><b> ch0=~ch1;</b&
66、gt;</p><p><b> if (le) </b></p><p> display[z][y]=display[z][y]|ch1;</p><p><b> else </b></p><p> display[z][y]=display[z][y]&ch0;</p
67、><p><b> }</b></p><p> void type(uchar cha,uchar y)</p><p><b> { </b></p><p><b> uchar xx;</b></p><p> for (xx
68、=0;xx<8;xx++)</p><p><b> {</b></p><p> display[xx][y]=table_cha[cha][xx];</p><p><b> }</b></p><p><b> }</b></p><p&
69、gt; /*The first variable is the distance from the midpoint.</p><p> The second is the layer.</p><p> the third is the flash speed of the time between each two point.</p><p> The
70、 forth is the enable io,it controls weather draw or claen.*/</p><p> void cirp(char cpp,uchar dir,uchar le)</p><p><b> {</b></p><p> uchar a,b,c,cp;</p><p&
71、gt; if ((cpp<128)&(cpp>=0))</p><p><b> {</b></p><p><b> if (dir)</b></p><p> cp=127-cpp;</p><p><b> else </b></p&g
72、t;<p><b> cp=cpp; </b></p><p> a=(dat[cp]>>5)&0x07;</p><p> b=(dat[cp]>>2)&0x07;</p><p> c=dat[cp]&0x03;</p><p> if (cpp
73、>63)</p><p><b> c=7-c;</b></p><p> point (a,b,c,le);</p><p><b> }</b></p><p><b> }</b></p><p> void line(uchar
74、x1,uchar y1,uchar z1,uchar x2,uchar y2,uchar z2,uchar le)</p><p><b> {</b></p><p> char t,a,b,c,a1,b1,c1,i;</p><p><b> a1=x2-x1;</b></p><p>&
75、lt;b> b1=y2-y1;</b></p><p><b> c1=z2-z1;</b></p><p> t=maxt(abss(a1),abss(b1),abss(c1));</p><p><b> a=x1*10;</b></p><p><b>
76、b=y1*10;</b></p><p><b> c=z1*10;</b></p><p> a1=a1*10/t;</p><p> b1=b1*10/t;</p><p> c1=c1*10/t;</p><p> for (i=0;i<t;i++)</p&
77、gt;<p><b> {</b></p><p> point(abs(a),abs(b),abs(c),le);</p><p><b> a+=a1;</b></p><p><b> b+=b1;</b></p><p><b> c+
78、=c1;</b></p><p><b> }</b></p><p> point(x2,y2,z2,le);</p><p><b> }</b></p><p> void box(uchar x1,uchar y1,uchar z1,uchar x2,uchar y2,u
79、char z2,uchar fill,uchar le)</p><p><b> {</b></p><p> uchar i,j,t=0;</p><p> max(&x1,&x2);</p><p> max(&y1,&y2);</p><p> m
80、ax(&z1,&z2);</p><p> for (i=x1;i<=x2;i++)</p><p><b> t|=1<<i;</b></p><p><b> if (!le)</b></p><p><b> t=~t;</b>&
81、lt;/p><p><b> if (fill)</b></p><p><b> {</b></p><p><b> if (le)</b></p><p><b> {</b></p><p> for (i=z1;i&
82、lt;=z2;i++)</p><p><b> {</b></p><p> for (j=y1;j<=y2;j++)</p><p> display[j][i]|=t;</p><p><b> }</b></p><p><b> }<
83、/b></p><p><b> else</b></p><p><b> {</b></p><p> for (i=z1;i<=z2;i++)</p><p><b> {</b></p><p> for (j=y1;j&l
84、t;=y2;j++)</p><p> display[j][i]&=t;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> else&
85、lt;/b></p><p><b> {</b></p><p><b> if (le)</b></p><p><b> {</b></p><p> display[y1][z1]|=t;</p><p> display[y2]
86、[z1]|=t;</p><p> display[y1][z2]|=t;</p><p> display[y2][z2]|=t;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b
87、></p><p> display[y1][z1]&=t;</p><p> display[y2][z1]&=t;</p><p> display[y1][z2]&=t;</p><p> display[y2][z2]&=t;</p><p><b>
88、}</b></p><p> t=(0x01<<x1)|(0x01<<x2);</p><p><b> if (!le)</b></p><p><b> t=~t;</b></p><p><b> if (le)</b><
89、/p><p><b> {</b></p><p> for (j=z1;j<=z2;j+=(z2-z1))</p><p><b> {</b></p><p> for (i=y1;i<=y2;i++)</p><p> display[i][j]|=t
90、;</p><p><b> }</b></p><p> for (j=y1;j<=y2;j+=(y2-y1))</p><p><b> {</b></p><p> for (i=z1;i<=z2;i++)</p><p> display[j][
91、i]|=t;</p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> for (j=z1;j<=
92、z2;j+=(z2-z1))</p><p><b> {</b></p><p> for (i=y1;i<=y2;i++)</p><p><b> {</b></p><p> display[i][j]&=t;</p><p><b>
93、 }</b></p><p><b> }</b></p><p> for (j=y1;j<=y2;j+=(y2-y1))</p><p><b> {</b></p><p> for (i=z1;i<=z2;i++)</p><p>&
94、lt;b> {</b></p><p> display[j][i]&=t;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b
95、> }</b></p><p><b> }</b></p><p> void box_apeak_xy(uchar x1,uchar y1,uchar z1,uchar x2,uchar y2,uchar z2,uchar fill,uchar le)</p><p><b> {</b>&l
96、t;/p><p><b> uchar i;</b></p><p> max(&z1,&z2);</p><p><b> if (fill)</b></p><p><b> {</b></p><p> for (i=z1;i
97、<=z2;i++) line (x1,y1,i,x2,y2,i,le); </p><p><b> } </b></p><p><b> else</b></p><p><b> {</b></p><p> line (x1,y1,z1,x2,y2,
98、z1,le);</p><p> line (x1,y1,z2,x2,y2,z2,le);</p><p> line (x2,y2,z1,x2,y2,z2,le);</p><p> line (x1,y1,z1,x1,y1,z2,le);</p><p><b> }</b></p><
99、;p><b> }</b></p><p> void poke(uchar n,uchar x,uchar y)</p><p><b> {</b></p><p><b> uchar i;</b></p><p> for (i=0;i<8;i++
100、)point(x,y,i,judgebit(n,i));</p><p><b> }</b></p><p> void boxtola(char i,uchar n)</p><p><b> { </b></p><p> if ((i>=0)&(i<8))
101、 poke(n,0,7-i);</p><p> if ((i>=8)&(i<16)) poke(n,i-8,0);</p><p> if ((i>=16)&(i<24)) poke(n,7,i-16);</p><p><b> }</b></p><p
102、> void rolldisplay(uint speed)</p><p><b> {</b></p><p><b> uchar j;</b></p><p><b> char i,a;</b></p><p> for (i=23;i>-40;
103、i--)</p><p><b> {</b></p><p> for (j=0;j<40;j++)</p><p><b> {</b></p><p><b> a=i+j;</b></p><p> if ((a>=0)&a
104、mp;(a<24))</p><p> boxtola(a,table_id[j]);</p><p><b> }</b></p><p> delay(speed);</p><p><b> }</b></p><p><b> }</b
105、></p><p> void roll_apeak_yz(uchar n,uint speed)</p><p><b> {</b></p><p><b> uchar i;</b></p><p><b> switch(n)</b></p>
106、<p><b> {</b></p><p> case 1:for (i=0;i<7;i++){display[i][7]=0;display[7][6-i]=255;delay(speed);}break;</p><p> case 2: for (i=0;i<7;i++){display[7][7-i]=0;display[6-
107、i][0]=255;delay(speed);}break;</p><p> case 3:for (i=0;i<7;i++){display[7-i][0]=0;display[0][i+1]=255;delay(speed);}break;</p><p> case 0:for (i=0;i<7;i++){display[0][i]=0;display[i+1]
108、[7]=255;delay(speed);}break;</p><p><b> }</b></p><p><b> }</b></p><p> void roll_apeak_xy(uchar n,uint speed)</p><p><b> {</b>&l
109、t;/p><p><b> uchar i;</b></p><p><b> switch(n)</b></p><p><b> {</b></p><p> case 1: for(i=0;i<7;i++){line(0,i,0,0,i,7,0);line(i+
110、1,7,0,i+1,7,7,1);delay(speed);} break;</p><p> case 2: for (i=0;i<7;i++){line(i,7,0,i,7,7,0);line(7,6-i,0,7,6-i,7,1);delay(speed);}break;</p><p> case 3: for (i=0;i<7;i++){line(7,7-i,0,7
111、,7-i,7,0);line(6-i,0,0,6-i,0,7,1);delay(speed);}break;</p><p> case 0: for (i=0;i<7;i++){line(7-i,0,0,7-i,0,7,0);line(0,i+1,0,0,i+1,7,1);delay(speed);}break;</p><p><b> }</b><
112、;/p><p><b> }</b></p><p> void roll_3_xy(uchar n,uint speed)</p><p><b> {</b></p><p><b> uchar i;</b></p><p><b>
113、 switch(n)</b></p><p><b> {</b></p><p> case 1: for (i=0;i<8;i++)</p><p><b> {</b></p><p> box_apeak_xy (0,i,0,7,7-i,7,1,1);<
114、/p><p> delay(speed);</p><p> if (i<7) box_apeak_xy (3,3,0,0,i,7,1,0);</p><p><b> };</b></p><p><b> break;</b></p><p> ca
115、se 2: for (i=0;i<8;i++)</p><p><b> {</b></p><p> box_apeak_xy (7-i,0,0,i,7,7,1,1);</p><p> delay(speed);</p><p> if (i<7) box_apeak_xy
116、 (3,4,0,i,7,7,1,0);</p><p><b> };</b></p><p><b> break;</b></p><p> case 3: for (i=0;i<8;i++)</p><p><b> {</b></p>
117、<p> box_apeak_xy (0,i,0,7,7-i,7,1,1);</p><p> delay(speed);</p><p> if (i<7) box_apeak_xy (4,4,0,7,7-i,7,1,0);</p><p><b> }</b></p><p
118、><b> break;</b></p><p> case 0: for (i=0;i<8;i++)</p><p><b> {</b></p><p> box_apeak_xy (7-i,0,0,i,7,7,1,1);</p><p> delay(speed);
119、</p><p> if (i<7) box_apeak_xy (4,3,0,7-i,0,7,1,0);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p>&
120、lt;p> void trans(uchar z,uint speed)</p><p><b> {</b></p><p> uchar i,j;</p><p> for (j=0;j<8;j++)</p><p><b> {</b></p><p&
121、gt; for (i=0;i<8;i++) display[z][i]>>=1;</p><p> delay(speed);</p><p><b> }</b></p><p><b> }</b></p><p> void tranoutchar(uchar
122、 c,uint speed)</p><p><b> {</b></p><p> uchar i,j,k,a,i2=0;</p><p> for (i=0;i<8;i++)</p><p><b> {</b></p><p><b> if
123、(i<7)</b></p><p> box_apeak_xy (i+1,0,0,i+1,7,7,1,1);</p><p> box_apeak_xy (i2,0,0,i2,7,7,1,0);</p><p><b> a=0;</b></p><p><b> i2=i+1;<
124、;/b></p><p> for (j=0;j<=i;j++) a=a|(1<<j); </p><p> for (k=0;k<8;k++)</p><p><b> {</b></p><p> display[k][3]|=table_cha[c][k]&
125、a;</p><p> display[k][4]|=table_cha[c][k]&a;</p><p><b> }</b></p><p> delay(speed);</p><p><b> }</b></p><p><b> }<
126、;/b></p><p> void transss()</p><p><b> {</b></p><p> uchar i,j;</p><p> for (i=0;i<8;i++)</p><p><b> {</b></p>&l
127、t;p> for (j=0;j<8;j++)</p><p> display[i][j]<<=1;</p><p><b> }</b></p><p><b> } </b></p><p> /*From now on,the function below i
128、s to display the flash.*/</p><p> void flash_1()</p><p><b> {</b></p><p> clear(0);type(1,0);delay(60000);type(2,0);delay(60000);type(3,0);delay(60000);type(4,0);dela
129、y(60000);</p><p> delay(60000);clear(0);rolldisplay(30000);type(0,7);delay(60000);trailler(6000);delay(60000);</p><p><b> } </b></p><p> void flash_2() </p>&
130、lt;p><b> {</b></p><p><b> uchar i;</b></p><p> for (i=129;i>0;i--)</p><p><b> {</b></p><p> cirp(i-2,0,1);</p><
131、;p> delay(8000);</p><p> cirp(i-1,0,0);</p><p><b> }</b></p><p> delay(8000); </p><p> for (i=0;i<136;i++)</p><p><b> {&l
132、t;/b></p><p> cirp(i,1,1);</p><p> delay(8000);</p><p> cirp(i-8,1,0);</p><p><b> }</b></p><p> delay(8000);</p><p> for
133、(i=129;i>0;i--)</p><p><b> {</b></p><p> cirp(i-2,0,1);</p><p> delay(8000);</p><p><b> }</b></p><p> delay(8000);</p>
134、;<p> for (i=0;i<128;i++)</p><p><b> {</b></p><p> cirp(i-8,1,0);</p><p> delay(8000);</p><p><b> }</b></p><p> del
135、ay(60000); </p><p><b> }</b></p><p> void flash_3()</p><p><b> {</b></p><p><b> char i;</b></p><p> for (i=0;i<
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 3d光立方畢業(yè)設計
- 畢業(yè)設計 3d光立方設計
- 3d光立方系統(tǒng)的設計與實現(xiàn)【畢業(yè)設計】
- 炫色3d光立方設計
- 3d光立方的制作
- (畢業(yè)論文)3d打印機畢業(yè)設計
- 3d簡約客廳畢業(yè)設計
- 畢業(yè)設計---鍋爐3d模型設計
- 畢業(yè)論文-3d電梯光幕保護系統(tǒng)
- 畢業(yè)論文-3d電梯光幕保護系統(tǒng)
- 3d打印機設計機械畢業(yè)設計論文
- 3d動畫短片的制作論文畢業(yè)設計
- 畢業(yè)設計(論文)-3d電影的光學原理探討
- 3d打印機設計-機械畢業(yè)設計(論文)
- 3d打印機畢業(yè)設計
- 畢業(yè)論文--3d綠色機房設計
- 3d動畫畢業(yè)論文
- 畢業(yè)設計:3d打印機設計
- 3d游戲設計 ——音頻處理-畢業(yè)論文
- 3d室內(nèi)設計畢業(yè)論文
評論
0/150
提交評論