如何制作光立方,帶有視頻,ad畫的原理圖,單片機(jī)仿真電路圖等很詳細(xì)的教程
帶有光立方的程序詳解,注釋非常詳細(xì)。
所有資料下載:
光立方制作.zip
(18.97 MB, 下載次數(shù): 1850)
2017-3-9 19:38 上傳
點(diǎn)擊文件名下載附件
光立方制作教程
光立方制作成功后的效果圖片:
光立方的原理:
仿真制作原理:先從P0口給控制共陰端的573鎖入相應(yīng)的數(shù)值,然后給共陽端再送人相應(yīng)的數(shù)值,這樣與共陰端的相呼應(yīng)就可點(diǎn)亮相應(yīng)的燈.
光立方的proteus仿真原理圖:
下面是光立方的制作過程,非常詳細(xì):
光立方的單片機(jī)源程序:
- /*銳銳制作光立方源程序*/
- #include<reg51.h> //包含頭文件,一般情況不需要改動(dòng),頭文件包含特殊功能寄存器的定義
- #define DataPort P0 //定義數(shù)據(jù)端口 程序中遇到DataPort 則用P0 替換
- sbit line_LATCH=P1^0;//定義鎖存使能端口 行掃描的鎖存端口
- sbit LATCH1=P2^0;//定義鎖存使能端口 第一燈板的字節(jié)鎖存
- sbit LATCH2=P2^1;//
- sbit LATCH3=P2^2;//
- sbit LATCH4=P2^3;
- sbit LATCH5=P2^4;
- sbit LATCH6=P2^5;
- sbit LATCH7=P2^6;
- sbit LATCH8=P2^7;
-
- void Delay(unsigned int t)
- {
- while(--t);
- }
- unsigned char line[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};// 顯示行值01234567
- void display(unsigned char *Data)//顯示子程序,指針數(shù)組作為形參,直接指向傳過來的實(shí)參數(shù)組的地址 ,這樣就可直接操縱數(shù)組傳過來的數(shù)組了
- {
- unsigned char i;
- for(i=0;i<8;i++)
- {
- DataPort=line[i]; //先給行(燈板的公共端)輸入數(shù)據(jù)
- line_LATCH=1; //打開鎖存,把數(shù)據(jù)line[i]放進(jìn)去
- line_LATCH=0; //關(guān)閉鎖存,阻止外部數(shù)據(jù)進(jìn)來
-
- DataPort=Data[i]; //把數(shù)組Data[0~7]里的值依次傳給第一燈板的573鎖存器中
- LATCH1=1;LATCH1=0;
-
- DataPort=Data[8+i]; //把數(shù)組Data[8~15]里的值依次傳給第二燈板的573鎖存器中
- LATCH2=1;LATCH2=0;
-
- DataPort=Data[16+i]; //把數(shù)組Data[16~23]里的值依次傳給第三燈板的573鎖存器中
- LATCH3=1;LATCH3=0;
-
- DataPort=Data[24+i];
- LATCH4=1;LATCH4=0;
- DataPort=Data[32+i];
- LATCH5=1;LATCH5=0;
-
- DataPort=Data[40+i];
- LATCH6=1;LATCH6=0;
-
- DataPort=Data[48+i];
- LATCH7=1;LATCH7=0;
-
- DataPort=Data[56+i];
- LATCH8=1;LATCH8=0;
- Delay(200); //掃描間隙延時(shí),時(shí)間太長會(huì)閃爍,太短會(huì)造成重影
-
- DataPort=0xff; // 清空行鎖存器里數(shù)據(jù),防止出現(xiàn)亂碼
- line_LATCH=1; //
- line_LATCH=0;
- } /*如此一趟循環(huán)下來,每次都是8塊燈板的同一行一起點(diǎn)亮,
- 如此組成一個(gè)燈板,8次循環(huán)下來,就全部燈都點(diǎn)亮了*/
- }
- void liang() //點(diǎn)亮所有的燈
- {
- unsigned int i;
- for(i=0;i<5000;i++)
- {
- DataPort=0x00; //先給行(燈板的公共端)輸入數(shù)據(jù)
- line_LATCH=1; //打開鎖存,把數(shù)據(jù)0x00放進(jìn)去
- line_LATCH=0; //關(guān)閉鎖存,阻止外部數(shù)據(jù)進(jìn)來
-
- DataPort=0xff; //把0xff送進(jìn)鎖存器1~8中,使它們的輸出引腳都輸出高電平,與行鎖存器的0x00相對,點(diǎn)亮所有的燈
- LATCH1=1;LATCH1=0;
- LATCH2=1;LATCH2=0;
- LATCH3=1;LATCH3=0;
- LATCH4=1;LATCH4=0;
- LATCH5=1;LATCH5=0;
- LATCH6=1;LATCH6=0;
- LATCH7=1;LATCH7=0;
- LATCH8=1;LATCH8=0;
- }
- }
- void mie() //熄滅所有的燈
- {
- unsigned int i;
- for(i=0;i<5000;i++)
- {
- DataPort=0x00; //先給行(燈板的公共端)輸入數(shù)據(jù)
- line_LATCH=1; //打開鎖存,把數(shù)據(jù)0x00放進(jìn)去
- line_LATCH=0; //關(guān)閉鎖存,阻止外部數(shù)據(jù)進(jìn)來
-
- DataPort=0x00; //把0x00送進(jìn)鎖存器1~8中,使它們的輸出引腳都輸出高電平,與行鎖存器的0x00相對,熄滅所有的燈
- LATCH1=1;LATCH1=0;
- LATCH2=1;LATCH2=0;
- LATCH3=1;LATCH3=0;
- LATCH4=1;LATCH4=0;
- LATCH5=1;LATCH5=0;
- LATCH6=1;LATCH6=0;
- LATCH7=1;LATCH7=0;
- LATCH8=1;LATCH8=0;
- }
- }
- void Laihui() //來回?zé)舭屣@示效果
- {
- unsigned char i;
- unsigned char code laihui0[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//定義空間為64的數(shù)組并賦值,用以傳遞給顯示子程序
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
- };
- unsigned char code laihui1[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- };
- unsigned char code laihui2[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- };
- unsigned char code laihui3[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- };
- unsigned char code laihui4[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- };
- unsigned char code laihui5[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- };
- unsigned char code laihui6[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- };
- unsigned char code laihui7[]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- };
- for(i=0;i<10;i++) display(laihui0);//調(diào)用顯示子程序display,并把數(shù)組laihui0的數(shù)組名作為實(shí)參傳給指針式形參
- for(i=0;i<10;i++) display(laihui1);
- for(i=0;i<10;i++) display(laihui2);
- for(i=0;i<10;i++) display(laihui3);
- for(i=0;i<10;i++) display(laihui4);
- for(i=0;i<10;i++) display(laihui5);
- for(i=0;i<10;i++) display(laihui6);
- for(i=0;i<10;i++) display(laihui7);
- for(i=0;i<10;i++) display(laihui7);
- for(i=0;i<10;i++) display(laihui6);
- for(i=0;i<10;i++) display(laihui5);
- for(i=0;i<10;i++) display(laihui4);
- for(i=0;i<10;i++) display(laihui3);
- for(i=0;i<10;i++) display(laihui2);
- for(i=0;i<10;i++) display(laihui1);
- for(i=0;i<10;i++) display(laihui0);
- }
- void Zhengfang() //顯示正方形方框
- {
- unsigned char i;
- unsigned char code zhengfang1[]={0xff,0x81,0x81,0x81,0x81,0x81,0x81,0xff,
- 0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x81,
- 0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x81,
- 0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x81,
- 0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x81,
- 0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x81,
- 0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x81,
- 0xff,0x81,0x81,0x81,0x81,0x81,0x81,0xff
- };
- unsigned char code zhengfang2[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x7e,0x42,0x42,0x42,0x42,0x7e,0x00,
- 0x00,0x42,0x00,0x00,0x00,0x00,0x42,0x00,
- 0x00,0x42,0x00,0x00,0x00,0x00,0x42,0x00,
- 0x00,0x42,0x00,0x00,0x00,0x00,0x42,0x00,
- 0x00,0x42,0x00,0x00,0x00,0x00,0x42,0x00,
- 0x00,0x7e,0x42,0x42,0x42,0x42,0x7e,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- };
- unsigned char code zhengfang3[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x3c,0x00,0x00,0x3c,0x00,0x00,
- 0x00,0x00,0x24,0x00,0x00,0x24,0x00,0x00,
- 0x00,0x00,0x24,0x00,0x00,0x24,0x00,0x00,
- 0x00,0x00,0x3c,0x00,0x00,0x3c,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- };
- unsigned char code zhengfang4[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- };
- for(i=0;i<20;i++)display(zhengfang1);
- for(i=0;i<14;i++)display(zhengfang2);
- for(i=0;i<14;i++)display(zhengfang3);
- for(i=0;i<14;i++)display(zhengfang4);
- for(i=0;i<14;i++)display(zhengfang4);
- for(i=0;i<14;i++)display(zhengfang3);
- for(i=0;i<14;i++)display(zhengfang2);
- for(i=0;i<14;i++)display(zhengfang1);
-
-
- for(i=0;i<4;i++)
- {
- for(i=0;i<3;i++)display(zhengfang1);
- for(i=0;i<3;i++)display(zhengfang2);
- for(i=0;i<3;i++)display(zhengfang3);
- for(i=0;i<3;i++)display(zhengfang4);
- for(i=0;i<3;i++)display(zhengfang4);
- for(i=0;i<3;i++)display(zhengfang3);
- for(i=0;i<3;i++)display(zhengfang2);
- for(i=0;i<3;i++)display(zhengfang1);
- }
- }
- void Xin() //顯示心形圖案
- {
- unsigned char code xin[]={ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x92,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x6c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- };
- display(xin);
- }
- void Zhahua() //顯示炸花式效果
- {
- unsigned char i;
- unsigned char code zhahua1[64]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
- };
- unsigned char code zhahua2[64]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x00,
- 0x00,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x00,
- 0x00,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x00,
- 0x00,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x00,
- 0x00,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x00,
- 0x00,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- };
- unsigned char code zhahua3[64]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x3c,0x3c,0x3c,0x3c,0x00,0x00,
- 0x00,0x00,0x3c,0x3c,0x3c,0x3c,0x00,0x00,
- 0x00,0x00,0x3c,0x3c,0x3c,0x3c,0x00,0x00,
- 0x00,0x00,0x3c,0x3c,0x3c,0x3c,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- };
- unsigned char code zhahua4[64]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- };
- for(i=0;i<6;i++)
- {
- for(i=0;i<18;i++)display(zhahua1);//用for循環(huán)多調(diào)用幾次,可增加顯示的時(shí)間,可省去延時(shí)的調(diào)用
- for(i=0;i<18;i++)display(zhahua2);
- for(i=0;i<18;i++)display(zhahua3);
- for(i=0;i<21;i++)display(zhahua4);
- for(i=0;i<18;i++)display(zhahua3);
- for(i=0;i<18;i++)display(zhahua2);
- for(i=0;i<18;i++)display(zhahua1);
- }
- for(i=0;i<6;i++)
- {
- for(i=0;i<5;i++)display(zhahua1);
- for(i=0;i<5;i++)display(zhahua2);
- for(i=0;i<5;i++)display(zhahua3);
- for(i=0;i<6;i++)display(zhahua4);
- for(i=0;i<5;i++)display(zhahua3);
- for(i=0;i<5;i++)display(zhahua2);
- for(i=0;i<5;i++)display(zhahua1);
- }
- }
- void Budai() //布帶抖動(dòng)效果
- {
- unsigned char i;
- unsigned char code budai0[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- };
- unsigned char code budai1[]={0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xff,0x00,0xff,
- 0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- };
- unsigned char code budai2[]={0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xff,0x00,0xff,0x00,
- 0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,
- 0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- };
- unsigned char code budai3[]={0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xff,0x00,0xff,0x00,0x00,
- 0x00,0x00,0xff,0x00,0x00,0x00,0xff,0x00,
- 0x00,0xff,0x00,0x00,0x00,0x00,0x00,0xff,
- 0xff,0x00,0x00,0x00,0x00,0x00,0x00,0xff,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- };
- unsigned char code budai4[]={0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xff,0x00,0xff,0x00,0x00,0x00,
- 0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,
- 0xff,0x00,0x00,0x00,0x00f,0x00,0xff,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- };
- unsigned char code budai5[]={0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xff,0x00,0xff,0x00,0x00,0x00,0x00,
- 0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- };
- unsigned char code budai6[]={0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xff,0x00,0xff,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- };
- unsigned char code budai7[]={0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff
- };
- unsigned char code budai8[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xff,0x00,0xff,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00
- };
- unsigned char code budai9[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xff,0x00,0x00,0x00,0xff,
- 0x00,0x00,0x00,0x00,0xff,0x00,0xff,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00
- };
- unsigned char code budai10[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xff,0x00,0x00,0x00,0x00,0x00,0xff,
- 0x00,0x00,0xff,0x00,0x00,0xff,0xff,0x00,
- 0x00,0x00,0x00,0xff,0x00,0xff,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xff,0x00,0x00,0xff
- };
- unsigned char code budai11[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,
- 0xff,0x00,0x00,0x00,0x00,0x00,0xff,0x00,
- 0x00,0xff,0x00,0x00,0x00,0xff,0x00,0x00,
- 0x00,0x00,0xff,0x00,0xff,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00
- };
- unsigned char code budai12[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,
- 0xff,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
- 0x00,0xff,0x00,0xff,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00
- };
- unsigned char code budai13[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,
- 0xff,0x00,0xff,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00
- };
- unsigned char code budai14[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,
- 0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,
- 0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,
- 0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00
- };
- for(i=0;i<8;i++) display(budai0);
- for(i=0;i<8;i++) display(budai1);
- for(i=0;i<8;i++) display(budai2);
- for(i=0;i<8;i++) display(budai3);
- for(i=0;i<8;i++) display(budai4);
- for(i=0;i<8;i++) display(budai5);
- for(i=0;i<8;i++) display(budai6);
- for(i=0;i<8;i++) display(budai7);
- for(i=0;i<8;i++) display(budai8);
- for(i=0;i<8;i++) display(budai9);
- for(i=0;i<8;i++) display(budai10);
- for(i=0;i<8;i++) display(budai11);
- for(i=0;i<8;i++) display(budai12);
- for(i=0;i<8;i++) display(budai13);
- for(i=0;i<8;i++) display(budai14);
- }
- unsigned char Data0[8]={0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01};// 顯示
- unsigned char Data1[8]={0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02};// 顯示
- unsigned char Data2[8]={0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04};// 顯示
- unsigned char Data3[8]={0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08};// 顯示
- unsigned char Data4[8]={0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10};// 顯示
- unsigned char Data5[8]={0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20};// 顯示
- unsigned char Data6[8]={0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40};// 顯示
- unsigned char Data7[8]={0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,};
- void display1(unsigned char *Data)//顯示功能模塊
- {
- unsigned char i,j,k,num=0;
- for(k=0;k<10;k++)
- {
- DataPort=0x00; // 清空行鎖存器里數(shù)據(jù),防止出現(xiàn)亂碼
- line_LATCH=1; //
- line_LATCH=0;
- LATCH1=1;LATCH1=0;
- LATCH2=1;LATCH2=0;
- LATCH3=1;LATCH3=0;
- LATCH4=1;LATCH4=0;
- LATCH5=1;LATCH5=0;
- LATCH6=1;LATCH6=0;
- LATCH7=1;LATCH7=0;
- LATCH8=1;LATCH8=0;
-
- for(j=0;j<45&&num<=8&&num>=1;j++)
- {
- DataPort=0xff; // 清空行鎖存器里數(shù)據(jù),防止出現(xiàn)亂碼
- line_LATCH=1; //
- line_LATCH=0;
-
- for(i=0;i<8;i++)
- {
- DataPort=line[i]; //先給行(燈板的公共端)輸入數(shù)據(jù)
- line_LATCH=1; //打開鎖存,把數(shù)據(jù)line[i]放進(jìn)去
- line_LATCH=0; //關(guān)閉鎖存,阻止外部數(shù)據(jù)進(jìn)來
- DataPort=Data[i]; //把數(shù)值Data[0~7]里的值依次傳給第一燈板的573鎖存器中
- if(num==1){LATCH1=1;LATCH1=0;}
- else if(num==2){LATCH2=1;LATCH2=0;}
- else if(num==3){LATCH3=1;LATCH3=0;}
- else if(num==4){LATCH4=1;LATCH4=0;}
- else if(num==5){LATCH5=1;LATCH5=0;}
- else if(num==6){LATCH6=1;LATCH6=0;}
- else if(num==7){LATCH7=1;LATCH7=0;}
- else if(num==8){LATCH8=1;LATCH8=0;}
-
- Delay(100); //掃描間隙延時(shí),時(shí)間太長會(huì)閃爍,太短會(huì)造成重影
- }
- }
- num++;
- if(num==9)num=0;
- }
- }
- void display2(unsigned char *Data)//顯示功能模塊
- {
- unsigned char i,j,k,num=9;
- for(k=0;k<10;k++)
- {
- DataPort=0x00; // 清空行鎖存器里數(shù)據(jù),防止出現(xiàn)亂碼
- line_LATCH=1; //
- line_LATCH=0;
- LATCH1=1;LATCH1=0;
- LATCH2=1;LATCH2=0;
- LATCH3=1;LATCH3=0;
- LATCH4=1;LATCH4=0;
- LATCH5=1;LATCH5=0;
- LATCH6=1;LATCH6=0;
- LATCH7=1;LATCH7=0;
- LATCH8=1;LATCH8=0;
-
- for(j=0;j<45&&num<=8&&num>=1;j++)
- {
- DataPort=0xff; // 清空行鎖存器里數(shù)據(jù),防止出現(xiàn)亂碼
- line_LATCH=1; //
- line_LATCH=0;
-
- for(i=0;i<8;i++)
- {
- DataPort=line[i]; //先給行(燈板的公共端)輸入數(shù)據(jù)
- line_LATCH=1; //打開鎖存,把數(shù)據(jù)line[i]放進(jìn)去
- line_LATCH=0; //關(guān)閉鎖存,阻止外部數(shù)據(jù)進(jìn)來
- DataPort=Data[i]; //把數(shù)值Data[0~7]里的值依次傳給第一燈板的573鎖存器中
- if(num==1){LATCH1=1;LATCH1=0;}
- else if(num==2){LATCH2=1;LATCH2=0;}
- else if(num==3){LATCH3=1;LATCH3=0;}
- else if(num==4){LATCH4=1;LATCH4=0;}
- else if(num==5){LATCH5=1;LATCH5=0;}
- else if(num==6){LATCH6=1;LATCH6=0;}
- else if(num==7){LATCH7=1;LATCH7=0;}
- else if(num==8){LATCH8=1;LATCH8=0;}
- Delay(100); //掃描間隙延時(shí),時(shí)間太長會(huì)閃爍,太短會(huì)造成重影
- }
- }
- num--;
- if(num==0)num=9;
- }
- }
- void display3(unsigned char *Data)//顯示功能模塊
- {
- unsigned char i,j,k;
- for(k=0;k<9;k++)
- {
- DataPort=0x00; // 清空行鎖存器里數(shù)據(jù),防止出現(xiàn)亂碼
- line_LATCH=1; //
- line_LATCH=0;
- LATCH1=1;LATCH1=0;
- LATCH2=1;LATCH2=0;
- LATCH3=1;LATCH3=0;
- LATCH4=1;LATCH4=0;
- LATCH5=1;LATCH5=0;
- LATCH6=1;LATCH6=0;
- LATCH7=1;LATCH7=0;
- LATCH8=1;LATCH8=0;
- for(j=0;j<8;j++)
- {
- DataPort=0xff; // 清空行鎖存器里數(shù)據(jù),防止出現(xiàn)亂碼
- line_LATCH=1; //
- line_LATCH=0;
-
- for(i=0;i<8;i++)
- {
- DataPort=line[i]; //先給行(燈板的公共端)輸入數(shù)據(jù)
- line_LATCH=1; //打開鎖存,把數(shù)據(jù)line[i]放進(jìn)去
- line_LATCH=0; //關(guān)閉鎖存,阻止外部數(shù)據(jù)進(jìn)來
- DataPort=Data[i]; //把數(shù)值Data[0~7]里的值依次傳給第一燈板的573鎖存器中
- LATCH8=1;LATCH8=0;
- Delay(100); //掃描間隙延時(shí),時(shí)間太長會(huì)閃爍,太短會(huì)造成重影
- }
- }
- }
- }
- void display4(unsigned char *Data)//顯示功能模塊
- {
- unsigned char i,j,k;
- for(k=0;k<9;k++)
- {
- DataPort=0x00; // 清空行鎖存器里數(shù)據(jù),防止出現(xiàn)亂碼
- line_LATCH=1; //
- line_LATCH=0;
- LATCH1=1;LATCH1=0;
- LATCH2=1;LATCH2=0;
- LATCH3=1;LATCH3=0;
- LATCH4=1;LATCH4=0;
- LATCH5=1;LATCH5=0;
- LATCH6=1;LATCH6=0;
- LATCH7=1;LATCH7=0;
- LATCH8=1;LATCH8=0;
- for(j=0;j<8;j++)
- {
- DataPort=0xff; // 清空行鎖存器里數(shù)據(jù),防止出現(xiàn)亂碼
- line_LATCH=1; //
- line_LATCH=0;
- for(i=0;i<8;i++)
- {
- DataPort=line[i]; //先給行(燈板的公共端)輸入數(shù)據(jù)
- line_LATCH=1; //打開鎖存,把數(shù)據(jù)line[i]放進(jìn)去
- line_LATCH=0; //關(guān)閉鎖存,阻止外部數(shù)據(jù)進(jìn)來
- DataPort=Data[i]; //把數(shù)值Data[0~7]里的值依次傳給第一燈板的573鎖存器中
- LATCH1=1;LATCH1=0;
- Delay(100); //掃描間隙延時(shí),時(shí)間太長會(huì)閃爍,太短會(huì)造成重影
- }
- }
- }
- }
- void zhuzi() //柱子移動(dòng)效果
- {
- display1(Data0);
-
- …………余下代碼請下載附件…………
-
復(fù)制代碼
|