如何制作光立方,帶有視頻,ad畫的原理圖,單片機仿真電路圖等很詳細的教程
帶有光立方的程序詳解,注釋非常詳細。
所有資料下載:
光立方制作.zip
(18.97 MB, 下載次數: 1850)
2017-3-9 19:38 上傳
點擊文件名下載附件
光立方制作教程
光立方制作成功后的效果圖片:
光立方的原理:
仿真制作原理:先從P0口給控制共陰端的573鎖入相應的數值,然后給共陽端再送人相應的數值,這樣與共陰端的相呼應就可點亮相應的燈.
光立方的proteus仿真原理圖:
下面是光立方的制作過程,非常詳細:
光立方的單片機源程序:
- /*銳銳制作光立方源程序*/
- #include<reg51.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義
- #define DataPort P0 //定義數據端口 程序中遇到DataPort 則用P0 替換
- sbit line_LATCH=P1^0;//定義鎖存使能端口 行掃描的鎖存端口
- sbit LATCH1=P2^0;//定義鎖存使能端口 第一燈板的字節鎖存
- 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)//顯示子程序,指針數組作為形參,直接指向傳過來的實參數組的地址 ,這樣就可直接操縱數組傳過來的數組了
- {
- unsigned char i;
- for(i=0;i<8;i++)
- {
- DataPort=line[i]; //先給行(燈板的公共端)輸入數據
- line_LATCH=1; //打開鎖存,把數據line[i]放進去
- line_LATCH=0; //關閉鎖存,阻止外部數據進來
-
- DataPort=Data[i]; //把數組Data[0~7]里的值依次傳給第一燈板的573鎖存器中
- LATCH1=1;LATCH1=0;
-
- DataPort=Data[8+i]; //把數組Data[8~15]里的值依次傳給第二燈板的573鎖存器中
- LATCH2=1;LATCH2=0;
-
- DataPort=Data[16+i]; //把數組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); //掃描間隙延時,時間太長會閃爍,太短會造成重影
-
- DataPort=0xff; // 清空行鎖存器里數據,防止出現亂碼
- line_LATCH=1; //
- line_LATCH=0;
- } /*如此一趟循環下來,每次都是8塊燈板的同一行一起點亮,
- 如此組成一個燈板,8次循環下來,就全部燈都點亮了*/
- }
- void liang() //點亮所有的燈
- {
- unsigned int i;
- for(i=0;i<5000;i++)
- {
- DataPort=0x00; //先給行(燈板的公共端)輸入數據
- line_LATCH=1; //打開鎖存,把數據0x00放進去
- line_LATCH=0; //關閉鎖存,阻止外部數據進來
-
- DataPort=0xff; //把0xff送進鎖存器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 mie() //熄滅所有的燈
- {
- unsigned int i;
- for(i=0;i<5000;i++)
- {
- DataPort=0x00; //先給行(燈板的公共端)輸入數據
- line_LATCH=1; //打開鎖存,把數據0x00放進去
- line_LATCH=0; //關閉鎖存,阻止外部數據進來
-
- DataPort=0x00; //把0x00送進鎖存器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() //來回燈板顯示效果
- {
- unsigned char i;
- unsigned char code laihui0[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//定義空間為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,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);//調用顯示子程序display,并把數組laihui0的數組名作為實參傳給指針式形參
- 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循環多調用幾次,可增加顯示的時間,可省去延時的調用
- 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() //布帶抖動效果
- {
- 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; // 清空行鎖存器里數據,防止出現亂碼
- 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; // 清空行鎖存器里數據,防止出現亂碼
- line_LATCH=1; //
- line_LATCH=0;
-
- for(i=0;i<8;i++)
- {
- DataPort=line[i]; //先給行(燈板的公共端)輸入數據
- line_LATCH=1; //打開鎖存,把數據line[i]放進去
- line_LATCH=0; //關閉鎖存,阻止外部數據進來
- DataPort=Data[i]; //把數值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); //掃描間隙延時,時間太長會閃爍,太短會造成重影
- }
- }
- 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; // 清空行鎖存器里數據,防止出現亂碼
- 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; // 清空行鎖存器里數據,防止出現亂碼
- line_LATCH=1; //
- line_LATCH=0;
-
- for(i=0;i<8;i++)
- {
- DataPort=line[i]; //先給行(燈板的公共端)輸入數據
- line_LATCH=1; //打開鎖存,把數據line[i]放進去
- line_LATCH=0; //關閉鎖存,阻止外部數據進來
- DataPort=Data[i]; //把數值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); //掃描間隙延時,時間太長會閃爍,太短會造成重影
- }
- }
- num--;
- if(num==0)num=9;
- }
- }
- void display3(unsigned char *Data)//顯示功能模塊
- {
- unsigned char i,j,k;
- for(k=0;k<9;k++)
- {
- DataPort=0x00; // 清空行鎖存器里數據,防止出現亂碼
- 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; // 清空行鎖存器里數據,防止出現亂碼
- line_LATCH=1; //
- line_LATCH=0;
-
- for(i=0;i<8;i++)
- {
- DataPort=line[i]; //先給行(燈板的公共端)輸入數據
- line_LATCH=1; //打開鎖存,把數據line[i]放進去
- line_LATCH=0; //關閉鎖存,阻止外部數據進來
- DataPort=Data[i]; //把數值Data[0~7]里的值依次傳給第一燈板的573鎖存器中
- LATCH8=1;LATCH8=0;
- Delay(100); //掃描間隙延時,時間太長會閃爍,太短會造成重影
- }
- }
- }
- }
- void display4(unsigned char *Data)//顯示功能模塊
- {
- unsigned char i,j,k;
- for(k=0;k<9;k++)
- {
- DataPort=0x00; // 清空行鎖存器里數據,防止出現亂碼
- 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; // 清空行鎖存器里數據,防止出現亂碼
- line_LATCH=1; //
- line_LATCH=0;
- for(i=0;i<8;i++)
- {
- DataPort=line[i]; //先給行(燈板的公共端)輸入數據
- line_LATCH=1; //打開鎖存,把數據line[i]放進去
- line_LATCH=0; //關閉鎖存,阻止外部數據進來
- DataPort=Data[i]; //把數值Data[0~7]里的值依次傳給第一燈板的573鎖存器中
- LATCH1=1;LATCH1=0;
- Delay(100); //掃描間隙延時,時間太長會閃爍,太短會造成重影
- }
- }
- }
- }
- void zhuzi() //柱子移動效果
- {
- display1(Data0);
-
- …………余下代碼請下載附件…………
-
復制代碼
|