单色光立方4源程序.docx
《单色光立方4源程序.docx》由会员分享,可在线阅读,更多相关《单色光立方4源程序.docx(65页珍藏版)》请在冰豆网上搜索。
单色光立方4源程序
#include
#include
#defineuintunsignedint
#defineucharunsignedchar
unsignedintscale;//占空比控制变量
unsignedcharcodetabP0[38][8]={0x00,0x60,0x60,0x00,0x00,0x60,0x60,0x00};
unsignedcharcodetabP2[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};//扫描
unsignedcharcodePWMsz[8]={0x00,0x60,0x60,0x00,0x00,0x60,0x60,0x00};//中间四个
/********************************************************************
*名称:
Delay_1ms()
*功能:
延时子程序,延时时间为1ms*x
*输入:
x(延时一毫秒的个数)
*输出:
无
***********************************************************************/
/************************************************************************/
//结束呼吸灯专用
ucharcodetable[]={
0,0,1,2,3,4,5,6,7,8,9,10,
11,12,13,14,15,16,17,18,
19,20,21,22,23,24,25,26,27,
28,29,30,31,32,33,34,35,36,
37,38,39,40,41,42,43,44,45,
46,47,48,49,50,51,52,53,54,
55,56,57,58,59,60,61,62,63,
64,65,66,67,68,69,70,71,72,
73,74,75,76,77,78,79,80,81,82,
83,84,85,86,87,88,89,90,91,
92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,
110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150};
voiddelay(uintz)
{
uintx,y;
for(x=80;x>0;x--)
for(y=z;y>0;y--);
}
voidlight1(ucharnum1)
{
ucharj;
P0=0x00;
P2=0x00;
j=table[num1];
delay(j);
P0=0xff;
P2=0x00;
delay(150-j);
}
voidlight2(ucharnum2)
{
ucharj;
P0=0xff;
P2=0x00;
j=table[num2];
delay(j);
P0=0x00;
P2=0x00;
delay(150-j);
}
/*******************************************************************/
voidys(uchari)//1ms延时
{
ucharx,j;
for(j=0;j
for(x=0;x<=148;x++);
}
voidinit()//初始化函数
{
TMOD=0x02;//定时器0,工作模式2(0000,0010),8位定时模式
TH0=0x06;//写入预置初值6到定时器0,使250微秒溢出一次(12MHz)
TL0=0x06;//写入预置值
ET0=1;//允许定时器0中断
EA=1;//允许总中断
}
voidalllighttooff()//闪动4下最后关闭
{
unsignedcharcodetabP0[8][8]={
{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}
};
intj,k,i;
for(j=0;j<8;j++)
{
for(k=0;k<25;k++)
{
for(i=0;i<8;i++)
{
P0=0;
P2=tabP2[i];
P0=tabP0[j][i];
ys(10);
}
}
}
}
voidrandomlight()//随机亮完
{
unsignedcharcodetabP0[38][8]={
{0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x20,0x00,0x00,0x00,0x00,0x10,0x00},
{0x00,0x20,0x00,0x00,0x00,0x02,0x10,0x00},
{0x00,0x20,0x04,0x00,0x00,0x02,0x10,0x00},
{0x00,0xA0,0x04,0x00,0x00,0x02,0x10,0x00},
{0x00,0xA0,0x24,0x10,0x00,0x02,0x10,0x00},
{0x40,0xA0,0x24,0x10,0x00,0x02,0x10,0x00},
{0x40,0xA0,0x24,0x10,0x20,0x02,0x10,0x00},
{0x40,0xA0,0x24,0x10,0x20,0x22,0x10,0x00},
{0x40,0xA0,0x24,0x10,0x20,0x22,0x14,0x42},
{0x40,0xA0,0x24,0x10,0x20,0x26,0x14,0x42},
{0x40,0xA0,0x25,0x10,0x20,0x26,0x14,0x42},
{0x44,0xA0,0x25,0x10,0x20,0x26,0x14,0x42},
{0x44,0xA0,0x25,0x50,0x20,0x26,0x14,0x42},
{0x44,0xA0,0x25,0x50,0xA0,0x26,0x14,0x42},
{0x44,0xA0,0x25,0x50,0xA0,0x27,0x14,0x43},
{0x44,0xA0,0x25,0x50,0xA0,0x27,0x14,0x53},
{0x44,0xA0,0x65,0x50,0xA0,0x27,0x54,0x53},
{0x44,0xA0,0x65,0x50,0xA0,0xA7,0x54,0x53},
{0x44,0xA0,0x65,0x50,0xA8,0xA7,0x54,0x53},
{0x44,0xA0,0x65,0x50,0xA8,0xA7,0x56,0x5B},
{0x46,0xA0,0x67,0x52,0xA8,0xA7,0x56,0x5B},
{0x46,0xA1,0x67,0x52,0xA8,0xA7,0x56,0x5B},
{0x46,0xB1,0x67,0x52,0xA8,0xA7,0x56,0x5B},
{0x46,0xB1,0x67,0x5A,0xA8,0xA7,0x56,0x5B},
{0x56,0xB1,0x67,0x5A,0xA8,0xA7,0x56,0x5B},
{0x56,0xB1,0x67,0x5A,0xA8,0xE7,0x56,0x5B},
{0x56,0xB1,0x67,0x5A,0xAA,0xE7,0x56,0x5F},
{0x56,0xB1,0x67,0x5A,0xAA,0xE7,0x56,0x7F},
{0x56,0xF9,0x67,0x7A,0xAA,0xE7,0x56,0x7F},
{0x56,0xF9,0x67,0x7A,0xAE,0xE7,0x5E,0x7F},
{0x5E,0xFD,0x67,0x7B,0xAE,0xE7,0x5E,0x7F},
{0x5E,0xFD,0x67,0x7B,0xEE,0xE7,0xDE,0xFF},
{0xDE,0xFD,0xE7,0xFB,0xEF,0xE7,0xFF,0xFF},
{0xDE,0xFD,0xF7,0xFB,0xFF,0xF7,0xFF,0xFF},
{0xDE,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}
};
intj,k,i;
for(j=0;j<38;j++)
{
for(k=0;k<10;k++)
{
for(i=0;i<8;i++)
{
P0=0;
P2=tabP2[i];
P0=tabP0[j][i];
ys(10);
}
}
}
}
voidrandomoff()//随机灭完
{
unsignedcharcodetabP0[23][8]={
{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0xDF,0xFF,0xFF,0xFF,0xFF,0xDF},
{0xFF,0xFF,0xDF,0xFF,0xFF,0xFF,0xED,0xDF},
{0xFF,0xF7,0xDD,0xFF,0xFF,0xFF,0xED,0xDF},
{0xFF,0xF7,0xDD,0xEF,0xFF,0xDF,0xED,0xDF},
{0xFF,0xF7,0x5D,0xAF,0xFD,0xDF,0xED,0xDF},
{0xFF,0xF7,0x5C,0xAF,0xDD,0xDF,0xED,0xDF},
{0xFF,0xE7,0x5C,0xAF,0xDD,0xDF,0x6D,0xDD},
{0xFF,0xE7,0x5C,0x2F,0xDD,0xD7,0x6D,0x9D},
{0xFF,0xE5,0x5C,0x2F,0xDD,0xD7,0x69,0x9D},
{0xFF,0xA5,0x5C,0x2B,0xDD,0x57,0x69,0x9D},
{0xFF,0xA5,0x5C,0x29,0xDD,0x57,0x69,0x8D},
{0xBD,0x85,0x5C,0x29,0xDD,0x57,0x69,0x8D},
{0xBD,0x85,0x54,0x29,0xDD,0x53,0x48,0x8D},
{0x9D,0x85,0x54,0x29,0xDD,0x53,0x08,0x8D},
{0x9D,0x81,0x54,0x09,0xDD,0x13,0x08,0x8D},
{0x95,0x81,0x54,0x09,0xDD,0x12,0x08,0x85},
{0x95,0x01,0x54,0x09,0xC9,0x12,0x08,0x85},
{0x95,0x01,0x54,0x01,0x89,0x12,0x08,0x84},
{0x95,0x01,0x40,0x01,0x89,0x02,0x08,0x80},
{0x95,0x00,0x40,0x01,0x88,0x02,0x08,0x00},
{0x94,0x00,0x00,0x00,0x88,0x00,0x08,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
};
intj,k,i;
for(j=0;j<23;j++)
{
for(k=0;k<10;k++)
{
for(i=0;i<8;i++)
{
P0=0;
P2=tabP2[i];
P0=tabP0[j][i];
ys(10);
}
}
}
}
voidallfalloff()//由全亮到下落关闭只剩一排
{
unsignedcharcodetabP0[4][8]={
{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},
{0x00,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF},
{0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFF},
{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF}
};
intj,k,i;
for(j=0;j<4;j++)
{
for(k=0;k<15;k++)
{
for(i=0;i<8;i++)
{
P0=0;
P2=tabP2[i];
P0=tabP0[j][i];
ys(10);
}
}
}
}
voidturnR()//由下面一排转到右面
{
unsignedcharcodetabP0[6][8]={
{0x00,0x00,0x0F,0xF0,0x00,0x00,0x00,0xFF},
{0x00,0x0F,0xF0,0x00,0x00,0x00,0x00,0xFF},
{0x0F,0xF0,0x00,0x00,0x00,0x00,0xF0,0x0F},
{0xF0,0x00,0x00,0x00,0x00,0xF0,0x0F,0x0F},
{0x00,0x00,0x00,0x00,0xF0,0x0F,0x0F,0x0F},
{0x00,0x00,0x00,0x00,0x0F,0x0F,0x0F,0x0F}
};
intj,k,i;
for(j=0;j<6;j++)
{
for(k=0;k<10;k++)
{
for(i=0;i<8;i++)
{
P0=0;
P2=tabP2[i];
P0=tabP0[j][i];
ys(6);
}
}
}
}
voidrighttoleft()//右面平移到左面
{
unsignedcharcodetabP0[4][8]={
{0x00,0x00,0x00,0x00,0x0F,0x0F,0x0F,0x0F},
{0x00,0x00,0x00,0x00,0xF0,0xF0,0xF0,0xF0},
{0xF0,0xF0,0xF0,0xF0,0x00,0x00,0x00,0x00},
{0x0F,0x0F,0x0F,0x0F,0x00,0x00,0x00,0x00}
};
intj,k,i;
for(j=0;j<4;j++)
{
for(k=0;k<10;k++)
{
for(i=0;i<8;i++)
{
P0=0;
P2=tabP2[i];
P0=tabP0[j][i];
ys(10);
}
}
}
}
voidlefttoright()//左面平移到右面
{
unsignedcharcodetabP0[4][8]={
{0x0F,0x0F,0x0F,0x0F,0x00,0x00,0x00,0x00},
{0xF0,0xF0,0xF0,0xF0,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0xF0,0xF0,0xF0,0xF0},
{0x00,0x00,0x00,0x00,0x0F,0x0F,0x0F,0x0F}
};
intj,k,i;
for(j=0;j<4;j++)
{
for(k=0;k<10;k++)
{
for(i=0;i<8;i++)
{
P0=0;
P2=tabP2[i];
P0=tabP0[j][i];
ys(10);
}
}
}
}
voidturnD()//从右面到下面
{
unsignedcharcodetabP0[6][8]={
{0x00,0x00,0x00,0x00,0xF0,0x0F,0x0F,0x0F},
{0xF0,0x00,0x00,0x00,0x00,0xF0,0x0F,0x0F},
{0x0F,0xF0,0x00,0x00,0x00,0x00,0xF0,0x0F},
{0x00,0x0F,0xF0,0x00,0x00,0x00,0x00,0xFF},
{0x00,0x00,0x0F,0xF0,0x00,0x00,0x00,0xFF},
{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF}
};
intj,k,i;
for(j=0;j<6;j++)
{
for(k=0;k<10;k++)
{
for(i=0;i<8;i++)
{
P0=0;
P2=tabP2[i];
P0=tabP0[j][i];
ys(10);
}
}
}
}
voidtoptofollowing()//上面平移到下面
{
unsignedcharcodetabP0[4][8]={
{0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00},
{0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00},
{0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00},
{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF},
};
intj,k,i;
for(j=0;j<4;j++)
{
for(k=0;k<10;k++)
{
for(i=0;i<8;i++)
{
P0=0;
P2=tabP2[i];
P0=tabP0[j][i];
ys(8);
}
}
}
}
voidfollowingtotop()//下面平移到上面
{
unsignedcharcodetabP0[4][8]={
{0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF},
{0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00},
{0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00},
{0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00},
};
intj,k,i;
for(j=0;j<4;j++)
{
for(k=0;k<10;k++)
{
for(i=0;i<8;i++)
{
P0=0;
P2=tabP2[i];
P0=tabP0[j][i];
ys(8);
}
}
}
}
voidalllight()//右到左全亮
{
unsignedcharcodetabP0[4][8]={
{0x00,0x00,0x00,0x00,0x0F,0x0F,0x0F,0x0F},
{0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF},
{0xF0,0xF0,0xF0,0xF0,0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}
};
intj,k,i;
for(j=0;j<4;j++)
{
for(k=0;k<10;k++)
{
for(i=0;i<8;i++)
{
P0=0;
P2=tabP2[i];
P0=tabP0[j][i];
ys(10);
}
}
}
}
voidevel()//斜面亮
{
unsignedcharcodetabP0[7][8]={
{0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0xF7},
{0x00,0x00,0x00,0xEC,0x00,0x00,0x00,0x73},
{0x00,0x00,0x00,0x4C,0x00,0x00,0x00,0x23},
{0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x21},
{0x00,0x00,0x48,0x48,0x00,0x00,0x21,0x21},
{0x00,0x48,0x48,0x48,0x00,0x21,0x21,0x21},
{0x48,0x48,0x48,0x48,0x21,0x21,0x21,0x21},
};
intj,k,i;
for(j=0;j<7;j++)
{
for(k=0;k<10;k++)
{
for(i=0;i<8;i++)
{
P0=0;
P2=tabP2[i];
P0=tabP0[j][i];
ys(7);
}
}
}
}
voidfollowtotop()//上面转移到后面可以接旋转
{
unsignedcharcodetabP0[10][8]={
{0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00},
{0xEE,0x11,0x00,0x00,0xFF,0x00,0x00,0x00},
{0xEC,0x12,0x01,0x00,0xFF,0x00,0x00,0x00},
{0xC8,0x24,0x12,0x01,0xEF,0x10,0x00,0x00},
{0x88,0x48,0x24,0x1