本品是基于单片机制作的广州塔模型,由256个LED 灯制作16*16点阵原理,就是做出来的东西有点胖了,半径有点大了,不是小蛮腰的形状,但是讲究这个还不错,,卿大神多多指教了。。。小弟出来砸到,,,还望多多关照
- #include <reg52.h>
- #include <intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit been=P0^7;
- sbit bee=P3^2;
- sbit SCK=P0^0; //11脚 移位时钟 //kongzhi++
- sbit RCK=P0^1; //12脚 锁存时钟
- sbit DATA=P0^2; //14数据输入
- sbit SCK1=P0^3; //11脚 移位时钟
- sbit RCK1=P0^4; //12脚 锁存时钟
- sbit DATA1=P0^5; //14数据输入
- sbit SCK2=P1^0; //11脚 移位时钟 //kongzhi--
- sbit RCK2=P1^1; //12脚 锁存时钟
- sbit DATA2=P1^2; //14数据输入
- sbit SCK3=P1^3; //11脚 移位时钟
- sbit RCK3=P1^4; //12脚 锁存时钟
- sbit DATA3=P1^5; //14数据输入
- uint m,i,dat,temp=0,flag=0;
- uint cy,cy1,pw;
- uchar code shumaguan[]={0xfe,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x88,0xc0,0x7f,0x6f};//显示0~9的值
- uchar code table[]={ //p0.0
- 0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, //0-17
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80, //33
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00, //50 一圈圈移动
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00, // 67
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00, //83
- 0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, //99
- 0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //115
- 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, //131
- 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03, //147
- 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, //163
- 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, //179
- 0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f, //195
- 0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f, //211
- 0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f, //217
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, //233
- 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, //249
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, //265
- };
- uchar code table1[]={ //p2.0
- 0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00, //7
- 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
- 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
- 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
- 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,
- 0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,
- 0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,
- 0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, //15
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //16
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- };
- uchar code table2[]={ //xia 8 -
- 0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f, //1-19
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //20-35
- 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xff,0xfe,0xfc,0xf8,0xe0,0xc0,0x80,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, //7
- 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, //15
- 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, //16
- 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- };
- uchar code table3[]={ //shang 8 -
- 0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf8,0xe0,0xc0,0x80,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,0xff, //7
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f, //15
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f, //16
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,
- };
- void delay(uint z)
- { uint x,y;
- for(x=z;x>0;x--)
- for(y=10;y>0;y--);
- }
- void delay2(uint x)
- {
- uint a,b;
- for(a=x;a>0;a--)
- for(b=5;b>0;b--);
- }
- void write(uchar dat)
- { uint m;for(m=0;m<8;m++){if(dat& 0x80) DATA=1; else DATA=0; SCK=0; delay(1); SCK=1; delay(1); SCK=0; delay(1); dat=dat<<1; }}
- void read()
- { RCK=0; delay(1);RCK=1; }
- void write1(uchar dat)
- { uint m;for(m=0;m<8;m++){if(dat& 0x80) DATA1=1; else DATA1=0; SCK1=0; delay(1); SCK1=1; delay(1); SCK1=0; delay(1); dat=dat<<1; }}
- void read1()
- { RCK1=1; delay(1);RCK1=0; }
- void write2(uchar dat)
- { uint m;for(m=0;m<8;m++){if(dat& 0x80) DATA2=1; else DATA2=0; SCK2=0; delay(1); SCK2=1; delay(1); SCK2=0; delay(1); dat=dat<<1; }}
- void read2()
- { RCK2=1; delay(1);RCK2=0; }
- void write3(uchar dat)
- { uint m;for(m=0;m<8;m++){if(dat& 0x80) DATA3=1; else DATA3=0; SCK3=0; delay(1); SCK3=1; delay(1); SCK3=0; delay(1); dat=dat<<1; }}
- void read3()
- { RCK3=1; delay(1);RCK3=0; }
- void one ()
- {
- write (table [i]); delay(1000); read (); delay(1000);
- write1(table1[i]); delay(1000); read1(); delay(1000);
- write2(table2[i]); delay(1000); read2(); delay(1000);
- write3(table3[i]); delay(1000); read3(); delay(1000);
- }
- void two()
- {
- write (table [i]); delay(100); read (); delay(100);
- write1(table1[i]); delay(100); read1(); delay(100);
- write2(table2[i]); delay(100); read2(); delay(100);
- write3(table3[i]); delay(100); read3(); delay(100);
- }
- void three()
- {
- write (table [i]); delay(10); read (); delay(10);
- write1(table1[i]); delay(10); read1(); delay(10);
- write2(table2[i]); delay(10); read2(); delay(10);
- write3(table3[i]); delay(10); read3(); delay(10);
- }
- void four()
- {
- write (table [i]); delay(1); read (); delay(1);
- write1(table1[i]); delay(1); read1(); delay(1);
- write2(table2[i]); delay(1); read2(); delay(1);
- write3(table3[i]); delay(1); read3(); delay(1);
- }
- void hxd()
- {
- write (0xff); delay(1); read (); delay(1);
- write1(0xff); delay(1); read1(); delay(1);
- for(pw=1;pw<cy1;pw++)
- {
- write2(0x00);read2();delay2(pw);
- write3(0x00);read2();delay2(cy1-pw);
- }
- for(pw=1;pw<cy1;pw++)
- {
- write2(0xf0);read2();delay2(pw);
- write3(0xf0);read2();delay2(cy1-pw);
- }
- }
- /******************半层呼吸灯*********************/
- //void bhxd()
- //{
- //P0=0xff;P1=0xff;
- //for(pw=1;pw<cy;pw++)
- //{
- // P2=0x00;P3=0xff;delay2(pw);
- // P2=0xff;P3=0x00;delay2(cy-pw);
- //}
- //}
- void init_int0()
- {
- EA=1;
- EX0=1;
- IT0=1;
- }
- void int0() interrupt 0
- {
- while(bee==1)
- {
- // for(i=115;i<233;i++)four();
- for(i=83;i>68;i--)three();
- for(i=68;i<80;i++)four();
- for(i=68;i<76;i++)four();
- for(i=68;i<72;i++)four();
- for(i=68;i<80;i++)three();
- for(i=68;i<72;i++)four();
- for(i=68;i<72;i++)three();
- // for(i=115;i<233;i++)four();
- for(i=68;i<80;i++)four();
- for(i=68;i<76;i++)three();
- for(i=68;i<80;i++)three();
- for(i=68;i<76;i++)four();
- for(i=68;i<76;i++)three();
- for(i=68;i<80;i++)four();
- for(i=68;i<76;i++)three();
- for(i=68;i<76;i++)three();
- for(i=68;i<76;i++)four();
- }
- }
-
- // flag=1;
- // if(flag==1)
- // {
- // flag=0;
- // temp++;
- // if(temp==1)
- // {
- // for(i=0;i<233;i++)
- // {
- // four();
- //// i=i%232;
- // }
- // }
- // if(temp==2)
- // {
- // temp=0;
- // for(i=0;i<233;i++) two();
- // }
- //
- //// switch(temp)
- //// {
- //// case 1:for(i=0;i<233;i++)
- //// {
- //// four();
- //// i=i%232;
- //// }
- //// break;
- //// case 2:for(i=0;i<233;i++) two();temp=0;break;
- //// }
- // }
- void main ()
- {
- init_int0();
- for(i=68;i<82;i++)three();for(i=82;i>68;i--)three(); /*全亮暗上移*/
- for(i=83;i<99;i++)three();for(i=99;i<116;i++)three(); /*列递亮*/
- while(1)
- {
- for(i=115;i<233;i++)two(); /*单个向上增加*/
- for(i=34;i<49;i++)two(); /*上一圈*/
- for(i=49;i>34;i--)two();
- for(i=68;i<83;i++)two();/*全亮liang上移*/
- for(i=82;i>68;i--)two();
- for(i=68;i<82;i++)two();
- for(i=51;i<66;i++)two(); /*全亮暗上移*/
- for(i=66;i>51;i--)two(); /*全亮暗上移*/
- for(i=25;i<32;i++)two();
- for(i=18;i<26;i++)two(); /*左右一列*/
- for(i=84;i<99;i++)two(); /*列递亮*/
- for(i=99;i<115;i++)two(); /*列递暗*/
- for(i=18;i<33;i++)two(); /*左右一列*/
- for(i=0;i<8;i++)three(); /*左右两列*/
- for(i=8;i>0;i--)two();
- for(i=8;i>0;i--)two();
- for(i=68;i<83;i++)three();
- for(i=82;i>68;i--)three();
- for(i=68;i<82;i++)three();
- for(i=51;i<66;i++)three();
- for(i=66;i>51;i--)three();
- for(i=25;i<32;i++)three();
- for(i=18;i<26;i++)three();
- for(i=84;i<99;i++)three(); /*列递亮*/
- for(i=99;i<115;i++)three(); /*列递暗*/
- for(i=18;i<33;i++)three(); /*左右一列*/
- for(i=0;i<8;i++)three(); /*左右两列*/
- for(i=8;i>0;i--)three();
- for(i=8;i>0;i--)three();
- for(i=8;i<17;i++)three(); /*左右两列*/
- for(i=0;i<6;i++)
- {
- for(i=8;i<17;i++)three();
- for(i=8;i<17;i++)three();
- for(i=17;i>8;i--)three();}
- for(i=83;i<99;i++)three(); /*列递亮*/
- for(i=99;i<115;i++)three(); /*列递暗*/
- for(i=84;i<88;i++)four(); /*列递亮*/
- for(i=88;i>84;i--)two(); /*列递暗*/
- for(i=90;i<99;i++)four(); /*列递亮*/
- for(i=88;i>86;i--)two(); /*列递暗*/
- for(i=92;i<99;i++)four(); /*列递亮*/
- for(i=99;i>92;i--)two(); /*列递暗*/
- for(i=95;i<99;i++)four(); /*列递亮*/
- for(i=99;i>95;i--)two(); /*列递暗*/
- for(i=83;i>68;i--)three();
- for(i=68;i<80;i++)four();
- for(i=68;i<76;i++)four();
- for(i=68;i<72;i++)four();
- for(i=68;i<80;i++)three();
- for(i=68;i<80;i++)two();
- for(i=68;i<76;i++)four();
- for(i=68;i<76;i++)three();
- for(i=68;i<80;i++)four();
- for(i=68;i<76;i++)three();
- for(i=68;i<76;i++)three();
- for(i=68;i<76;i++)four();
- for(i=115;i<233;i++)four(); /*单个向上增加*/
- for(i=34;i<49;i++)four(); /*上一圈*/
- for(i=49;i>34;i--)four();
- for(i=68;i<83;i++)four();/*全亮liang上移*/ for(i=68;i<83;i++)four();for(i=68;i<83;i++)four();for(i=68;i<83;i++)four();
- for(i=82;i>68;i--)four();
- for(i=68;i<82;i++)four();
- for(i=51;i<66;i++)four(); /*全亮暗上移*/
- for(i=66;i>51;i--)four(); /*全亮暗上移*/
- for(i=25;i<32;i++)four();
- for(i=84;i<99;i++)four(); /*列递亮*/
- for(i=99;i<115;i++)four(); /*列递暗*/
- for(i=82;i>68;i--)three();
- for(i=82;i>74;i--)three();
- for(i=82;i>80;i--)three();
- }
- // for(i=242;i<262;i++)one();
- }
- //for(i=0;i<17;i++)three(); /*左右两列*/
- //for(i=17;i<33;i++)three(); /*左右一列*/
- //for(i=33;i<50;i++)three(); /*左右一列*/
- //for(i=33;i<50;i++)three(); /*上一圈*/
- //for(i=51;i<67;i++)three(); /*全亮暗上移*/
- //for(i=68;i<83;i++)three(); /*全亮暗上移*/
- //for(i=83;i<99;i++)three(); /*列递亮*/
- //for(i=99;i<115;i++)three(); /*列递暗*/
- //for(i=115;i<233;i++)three(); /*单个向上增加*/
-
-
复制代码
|