0.jpg (116.34 KB, 下載次數: 51)
下載附件
2018-1-2 02:15 上傳
0.png (6.8 KB, 下載次數: 51)
下載附件
2018-1-2 02:15 上傳
名稱 數量 備注
micro usb接口 1
撥動開關 1 (側腳 支架 SK12D07VG3 3MM柄高)
220uF電解電容 1
10uF電解電容 1
33PF瓦片電容 2
12M晶振 1
0805電阻22R 1 (塔頂限流)
10K歐4/1W 1
1K歐4/1W 16
120歐4/1W 4
40PID集成座 1
89C52RC單片機 1
M3銅柱螺母 4
底座七彩自閃 4
塔身LED 270
只限潮殼電子新款電路
單片機源程序如下:
- #include<reg52.h>
- #include<intrins.h>
- #define uint unsigned int
- #define uchar unsigned char
- uchar code table0[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//從低位往高位移一個燈
- uchar code table1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//從高位往低位移一個燈
- uchar code table2[]={0xfe,0xfa,0xf8,0xf0,0xe0,0xa0,0x80,0x00};//從低位到高位逐步全部點亮
- uchar code table3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};//從高位到低位逐步全部點亮
- uchar code table4[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};//從低位到高位逐步全部熄滅
- uchar code table5[]={0x80,0xa0,0xe0,0xf0,0xf8,0xfa,0xfe,0xff};//從高位到低位逐步全部熄滅
- uchar code table6[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//從低位到高位,滅一個燈移動
- uchar code table7[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};//從高位到低位,滅一個燈移動
- uchar i;
- void delay(uint z) //延時函數
- {
- uint x,y;
- for(x=z;x>0;x--)
- for(y=314;y>0;y--);
- }
- ///////////////////////////////////////////////////
- ///////////////////////////////////////////////////
- void deng1234()//層燈移位
- {
- for(i=0;i<8;i++)
- {
- P1=table0[i];///從高到低
- P3=table0[i];
- delay(30);
- }
- }
- ///////////////////////////////////////////////////
- void deng123()//
- {
- for(i=0;i<8;i++)
- {
- P2=table1[i];//從低到高
- P0=table1[i];
- delay(30);
- }
- }
- /***********************************************
- ************************************************/
- void deng0()//所有燈亮一會兒
- {
- P0=0x00;P1=0x00;P2=0x00;P3=0x00;
- delay(300);
- }
- /////////////////////////////////
- void deng0_1()//所有燈滅一會兒
- {
- P0=0xff;P1=0xff;P2=0xff;P3=0xff;
- delay(150);
- }
- //////////////////////////////////////
- void deng1()//兩列燈順時針旋轉2遍,然后逐漸降低
- {
- uchar c;
- P1=0x00;P3=0x00;
-
- for(c=3;c>0;c--)
- {
- deng123();
- }
- ////////////////
- P1=0x03;
- deng123();
- /////////////////
- P1=0x0f;
- deng123();
- ////////////////
- P1=0x3f;
- deng123();
- ///////////////
- P1=0xff;
- deng123();
- ////////////////////////
- P3=0x03;
- deng123();
- //////////////
- P3=0x0f;
- deng123();
- //////////////
- P3=0x3f;
- deng123();
- /////////////
- P3=0xff;
- deng123();
- P2=0xff;P0=0xff;
-
- }
- ///////////////////////////////////////////////
- void deng2()//四列燈順時針旋轉2遍
- {
- uchar a;
- uchar b;
- b=0x77;
- P2=b;
- P0=b;
- P1=0x00;P3=0x00;
- for(a=8;a>0;a--)
- {
- for(i=0;i<8;i++)
- {
- b=_cror_(b,1);//循環左移
- delay(25);
- P2=b;
- P0=b;
- }
- }
-
- P2=0xff;P0=0xff;P1=0xff;P3=0xff;
-
- }
- //////////////////////////////////////////////
- void deng38()//2列燈順時針旋轉2遍
- {
- uchar u;
- uchar v;
- v=0xf7;
- P2=v;
- P0=v;
- P1=0x00;P3=0x00;
- for(u=8;u>0;u--)
- {
- for(i=0;i<8;i++)
- {
- v=_cror_(v,1);//循環左移
- delay(25);
- P2=v;
- P0=v;
- }
- }
-
- P2=0xff;P0=0xff;P1=0xff;P3=0xff;
-
- }
- //////////////////////////////////////////////
- void deng3()//單層,向上升
- {
- P0=0x00;
- P2=0x00;
-
- for(i=0;i<8;i++)
- {
- P3=table1[i];
- delay(25);
- }
- P3=0xff;
- /*----------------------*/
- for(i=0;i<8;i++)
- {
- P1=table1[i];
- delay(25);
- }
- P1=0xff;
- }
- /////////////////////////////////////////
- void deng4()//單層,向下降
- {
- P2=0x00;P0=0x00;
- for(i=0;i<8;i++)
- {
- P1=table0[i];
- delay(25);
- }
- P1=0xff;
- /*----------------------*/
- for(i=0;i<8;i++)
- {
- P3=table0[i];
- delay(25);
- }
- P3=0xff;P1=0xff;P0=0xff;P2=0xff;
- }
- /////////////////////////////////////////
- void deng5()//從上到下,逐層全部點亮】
- {
- P0=0x00;P2=0x00;
- for(i=0;i<8;i++)
- {
- P1=table2[i];
- delay(25);
- }
- for(i=0;i<8;i++)
- {
- P3=table2[i];
- delay(25);
- }
- P0=0xff;P1=0xff;P2=0xff;P3=0xff;
- }
- ////////////////////////////////////////
- void deng6()//從上到下,逐層全部熄滅】
- {
- P0=0x00;P2=0x00;
- P1=0x00;P3=0x00;
- for(i=0;i<8;i++)
- {
- P1=table4[i];
- delay(25);
- }
- P1=0xff;
- for(i=0;i<8;i++)
- {
- P3=table4[i];
- delay(25);
- }
- P3=0xff;
- P0=0xff;P2=0xff;
- }
- ///////////////////////////////////
- void deng7()//四組燈,交替兩次
- {
- for(i=2;i>0;i--)
- {
- P1=0x00;P2=0x00;//上左
- delay(25);
- P1=0xff;P2=0xff;
- delay(25);
-
-
- /////////////
- P3=0x00;P0=0x00;//下右
- delay(25);
- P3=0xff;P0=0xff;
- delay(25);
- /////////////
- P3=0x00;P2=0x00;//下左
- delay(25);
- P3=0xff;P2=0xff;
- delay(25);
- /////////////
- P1=0x00;P0=0x00;//上右
- delay(25);
- P1=0xff;P0=0xff;
- delay(25);
- }
-
- }
- void deng8()//上半先逐步列點亮,然后再向下點點亮
- {
- P0=0xff;P2=0xff;P3=0xff;
- P1=0x00;
- for(i=0;i<8;i++)
- {
- P0=table3[i];
- P2=table3[i];
- delay(25);
- }
- delay(70);
- P1=0x00;P2=0x00;P0=0x00;
- for(i=0;i<8;i++)
- {
- P3=table2[i];
- delay(25);
- }
-
- }
- //////////////////////////////////////
- void deng9()//從中間向上、下點亮,再熄滅
- {
- P0=0x00;P2=0x00;
- for(i=0;i<8;i++)
- {
- P1=table3[i];
- P3=table2[i];
- delay(150);
- }
- for(i=0;i<8;i++)
- {
- P1=table4[i];
- P3=table5[i];
- delay(150);
- }
- }
- ///////////////////////////////////////////
- void deng10()//從中間向上、下熄滅
- {
- P0=0x00;P2=0x00;
- for(i=0;i<8;i++)
- {
- P1=table5[i];
- P3=table4[i];
- delay(25);
- }
- P1=0xff;P3=0xff;
- }
- void deng11()//逆時針逐列點亮所有燈
- {
- P1=0x00;P3=0x00;
- P0=0xff;P2=0xff;
- for(i=0;i<8;i++)
- {
- P0=table2[i];
- delay(25);
- }
- for(i=0;i<8;i++)
- {
- P2=table2[i];
- delay(25);
- }
- P0=0xff;P2=0xff;P3=0xff;P1=0xff;
- }
- ///////////////////////////////////////////
- void deng12()//閃爍
- {
- uchar i;
- uchar b;
- b=0xaa;
- P2=b;
- P0=b;
- P1=b;
- P3=b;
-
- for(i=0;i<8;i++)
- {
- b=_cror_(b,1);//循環左移
- delay(100);
- P2=b;
- P0=b;
- P1=b;
- P3=b;
-
- }
- P0=0xff;P1=0xff;P2=0xff;P3=0xff;
- }
- void deng13()//兩層燈,分別從中間向上、下移動
- {
- P2=0x00;P0=0x00;
- for(i=0;i<8;i++)
- {
- P1=table1[i];
- P3=table0[i];
- delay(50);
- }
- P2=0xff;P0=0xff;P1=0xff;P3=0xff;
- }
- //////////////////////////////////////////////////
- void deng16() //隔一層亮
- {
- P0=0x00;
- P2=0x00;
- P3=0x55;
- P1=0x55;
- delay(500);
- }
- ////////////////////////////////////////////////////
- /////////////////////////////////////////////////////
- /////////////////////////////////////////////////////
- void deng17() //1列燈 滴水
- {
- uchar d;
- P2=0x7f;P0=0xff;
- for(d=1;d>0;d--)
- {
- deng1234();
- }
- }
- ///////////////////////////////////////////////
- void deng18() //1列滴水
- {
- uchar f;
- P2=0xfe;P0=0xff;
- for(f=1;f>0;f--)
- {
- deng1234();
- }
- }
- //////////////////////////////////////////////
- void deng19() //1列滴水
- {
- uchar e;
- P2=0xef;P0=0xff;
- for(e=1;e>0;e--)
- {
- deng1234();
- }
- }
- //////////////////////////////////////////////////
- void deng20() //一列滴水
- {
- uchar j;
- P2=0xfd;P0=0xff;
- for(j=1;j>0;j--)
- {
- deng1234();
- }
- }
- ///////////////////////////////////////////////
- void deng01() //旋轉往下
- {
- for(i=0;i<8;i++)
- {
- P1=table0[i];
- P3=table0[i];
- P0=table1[i];
- P2=table1[i];
- delay(50);
- }
- }
- ////////////////////////////////////////////////////
- void deng21() //列燈亮
- {
- uchar k;
- P1=0x00;P3=0x00;
- for(k=4;k>0;k--)
- {
- P0=0x7f;
- delay(55);
- P2=0x7f;
- delay(55);
- P0=0xef;
- delay(55);
- P2=0xef;
- delay(55);
- P0=0xfd;
- delay(55);
- P2=0xfd;
- delay(55);
- P0=0xdf;
- delay(55);
- P2=0xbf;
- delay(55);
- }
- }
- /////////////////////////////////////////////////////
- void deng22() //P0一列左移
- {
- uchar h;
- uchar l;
- l=0x7f;
- P0=l;
- P1=0x00;P3=0x00;
- for(h=8;h>0;h--)
- {
- l=_crol_(l,1);
- delay(13);
- P0=l;
- }
- }
- /////////////////////////////////////////////////
- void deng23() //P2一列左移
- {
- uchar p;
- uchar q;
- q=0x7f;
- P2=q;
- P1=0x00;P3=0x00;
- for(p=8;p>0;p--)
- {
- q=_crol_(q,1);
- delay(13);
- P2=q;
- }
- }
- ///////////////////////////////////////////////////////
- void deng24() //隔一層閃
- {
- P0=0x00;
- P2=0x00;
- P3=0x55;
- P1=0x55;
- delay(100);
- P0=0x00;
- P2=0x00;
- P3=0xaa;
- P1=0xaa;
- delay(100);
- }
- ////////////////////////////////////////////////////////
- void deng14_1()//點滿一圈的小函數(限內部用)
- {
- P2=0xff;P0=0xff;
- for(i=0;i<8;i++)
- {
- P2=table2[i];
- delay(15);
- }
-
- for(i=0;i<8;i++)
- {
- P0=table2[i];
- delay(15);
- }
- P2=0xff;P0=0xff;
- }
- /////////////////////////////////////////////////////////
- void deng25()//從下開始,點滿一圈后,滅,再上升點亮第二圈
- {
- P1=0xff;
- P3=0x7f;//1層
- deng14_1();//點滿一圈的小函數(限內部用)
- P3=0xbf;//2層
- deng14_1();//點滿一圈的小函數(限內部用)
- P3=0xdf;//3層
- deng14_1();//點滿一圈的小函數(限內部用)
- P3=0xef;//4層
- deng14_1();//點滿一圈的小函數(限內部用)
- P3=0xf7;//5層
- deng14_1();//點滿一圈的小函數(限內部用)
- P3=0xfb;//6層
- deng14_1();//點滿一圈的小函數(限內部用)
- P3=0xfd;//7層
- deng14_1();//點滿一圈的小函數(限內部用)
- P3=0xfe;//8層
- deng14_1();//點滿一圈的小函數(限內部用)
- //////////////////
- P3=0xff;
- P1=0x7f;//1層
- deng14_1();//點滿一圈的小函數(限內部用)
- P1=0xbf;//2層
- deng14_1();//點滿一圈的小函數(限內部用)
- P1=0xdf;//3層
- deng14_1();//點滿一圈的小函數(限內部用)
- P1=0xef;//4層
- deng14_1();//點滿一圈的小函數(限內部用)
- P1=0xf7;//5層
- deng14_1();//點滿一圈的小函數(限內部用)
- P1=0xfb;//6層
- deng14_1();//點滿一圈的小函數(限內部用)
- P1=0xfd;//7層
- deng14_1();//點滿一圈的小函數(限內部用)
- P1=0xfe;//8層
- deng14_1();//點滿一圈的小函數(限內部用)
- P1=0xff;
- }
- ////////////////////////////////////////////////////////
- /*====================================================
- ===================主函數君===========================
- ======================================================*/
- void main()
- {
- while(1)
- {
- deng0(); //所有燈亮
- deng0(); //同上
- deng16(); //隔一層亮
- deng22();//隔一層閃
- deng23();//隔一層閃
- deng25();
- deng4();//單層,向下降
- deng3();
- deng4();
- deng4();
- deng17(); //1列滴水
- deng18();
- deng19();
- deng20();
-
- deng4();
- deng3();
- deng3();
- deng3();
- deng01();//旋轉下
- deng4();
- deng3();
- deng01();//旋轉下
- deng01();//旋轉下
- deng01();//旋轉下
- deng22();
- deng23();//隔一層閃
- deng5();//從上到下,逐層全部點亮
- deng6();//從上到下,逐層全部熄滅】
- deng5();
- deng6();
- deng5();
- deng6();
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
廣州塔全套資料含PCB程序.rar
(5.41 MB, 下載次數: 134)
2017-12-31 19:45 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|