8X8光立方原理图+程序源码
单片机源程序如下:
- * 上升沿电子科技
- //Build target 'Target 1'
- //compiling stc8x8x8.c...
- //linking...
- //Program Size: data=17.1 xdata=355 code=53475
- //creating hex file from "stc8x8x8"...
- //"stc8x8x8" - 0 Error(s), 0 Warning(s).
- //没有关闭本店字样的显示函数 FLASH_12 FLASH_14 FLASH_18 如果需要自己关闭函数即
- #include "STC12C5A.H" //包含单片机的头文件使用KEIL必须添加进来否则编译不了
- #include "intrins.h" //包含NOP延时头文件
- #define uchar unsigned char
- #define uint unsigned int
- #define nop() _nop_();_nop_();
- void key_baihei_scan();
- void key_shangwiej_scan();
- void key_donghua_scan();
- void key_yinyue_scan();
- void box(unsigned char x1,unsigned char z1,unsigned char y1,unsigned char x2,unsigned char z2,unsigned char y2,unsigned char fill,unsigned char le);
- /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
- sbit AD=P1^0; //定义音频输入接口
- sbit GM=P1^1; //定义光敏输入接口
- sbit K1=P0^0; //定义功能按键接口
- sbit K2=P0^1; //定义功能按键接口
- sbit K3=P0^2; //定义功能按键接口
- sbit K4=P0^3; //定义功能按键接口
- sbit PWM_POW=P4^4; //定义PWM呼吸小夜灯和主板电源指示灯功能接口 低电平
- sbit IRIN=P3^2; //红外线信号接口
- /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
- sbit M_HR_DS0=P1^4; //模拟数据发送端口
- sbit M_LR_DS0=P1^5; //模拟数据发送端口
- sbit M_HG_DS0=P1^6; //模拟数据发送端口
- sbit M_LG_DS0=P0^7; //模拟数据发送端口
- sbit CLK=P1^3; //模拟时钟控制端口
- sbit SUO=P1^2; //模拟锁存信号端口
- /*$-_-$_-_$-_-$_-_$-_-$_-_$-_-$_-_$-_-$_-_$-_-$_-_$-_-$_-_$-_-$_-_$-_-$_-_$-_-$_-_$*/
- sbit M_A=P3^4; //行数据扫描信号
- sbit M_B=P3^5; //行数据扫描信号
- sbit M_C=P3^6; //行数据扫描信号
- sbit M_D=P3^7; //行数据扫描信号
- sbit M_EN=P1^7; //行数据扫描信号
- /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
- unsigned char displayck[]=
- {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 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 shuzu8X8[]=
- {
- 0XBD,0X85,0X85,0XBD,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
- 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
- 0XA1,0XA1,0XA1,0XBD,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
- 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
- };
- /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
- uchar xdata display[8][8];
- uchar xdata msd=4;
- uint ld=500;
- uchar test=0,key1=0,key2=0,key3=0,key4=0;
- bit pu;
- uchar xsdsq=0;
- uchar cd=0,cnt=0,errd_flag=0,read_flag=0,layerr=0,saom=0;
- unsigned char IRCOM[7];
- /*rank:A,1,2,3,4,I,心,U*/
- uchar code table_cha[8][8]=
- {
- 0x51,0x51,0x51,0x4a,0x4a,0x4a,0x44,0x44,
- 0x18,0x1c,0x18,0x18,0x18,0x18,0x18,0x3c,
- 0x3c,0x66,0x66,0x30,0x18,0x0c,0x06,0x7e,
- 0x3c,0x66,0x60,0x38,0x60,0x60,0x66,0x3c,
- 0x30,0x38,0x3c,0x3e,0x36,0x7e,0x30,0x30,
- 0x3c,0x3c,0x18,0x18,0x18,0x18,0x3c,0x3c,
- 0x66,0xff,0xff,0xff,0x7e,0x3c,0x18,0x18,
- 0x66,0x66,0x66,0x66,0x66,0x66,0x7e,0x3c,
- };
- /*the "ideasoft"*/
- /*rank:A,1,2,3,4,I,心,U*////开机的LOGO显示字符字模提取PLC2002
- uchar code table_cha_sj[8][8]=
- {
- 0x08,0x08,0x78,0x08,0x08,0x08,0x08,0xFF,/*"上",0*/
- 0x18,0x04,0x22,0x24,0xFF,0x24,0x24,0x24,/*"升",0*/
- 0x78,0x49,0xCE,0x00,0xFF,0x84,0x86,0xFD,/*"沿",0*/
- 0x3C,0x42,0xA5,0xDB,0x81,0x99,0x42,0x3C,/*"笑脸",0*/
- 0x3C,0x42,0xA5,0xDB,0x81,0x99,0x42,0x3C,/*"笑脸",0*/
- 0x08,0x2A,0x2A,0xFF,0x14,0x14,0x96,0x71,/*"光",0*/
- 0x08,0x7F,0x22,0x22,0x24,0x14,0x14,0xFF,/*"立",0*/
- 0x08,0xFF,0x04,0x7C,0x44,0x44,0x42,0x31,/*"方",0*/
- };
- /*rank:3,D,C,L,U,E,F,F,T*///开机的LOGO显示字符字模提取PLC2002
- uchar code table_cha_cu[9][8]=
- {
- 0x7E,0x40,0x40,0x7C,0x7C,0x40,0x40,0x7E,/*"3",0*/
- 0x00,0x3C,0x44,0x44,0x44,0x44,0x44,0x3C,/*"D",0*/
- 0x00,0x3C,0x02,0x02,0x02,0x02,0x02,0x3C,/*"C",0*/
- 0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x7C,/*"L",0*/
- 0x00,0x42,0x42,0x42,0x42,0x42,0x42,0x3C,/*"U",0*/
- 0x00,0x7E,0x02,0x02,0x7E,0x02,0x02,0x7E,/*"E",0*/
- 0x78,0x04,0x04,0x04,0x7C,0x04,0x04,0x04,/*"F",0*/
- 0x78,0x04,0x04,0x04,0x7C,0x04,0x04,0x04,/*"F",0*/
- 0x00,0x7E,0x18,0x18,0x18,0x18,0x18,0x18,/*"T",0*/
- };
- uchar code table_id[40]=
- {
- 0x81,0xff,0x81,0x00,0xff,0x81,0x81,0x7e,
- 0x00,0xff,0x89,0x89,0x00,0xf8,0x27,0x27,
- 0xf8,0x00,0x8f,0x89,0x89,0xf9,0x00,0xff,
- 0x81,0x81,0xff,0x00,0xff,0x09,0x09,0x09,
- 0x01,0x00,0x01,0x01,0xff,0x01,0x01,0x00,
- };
- /*the "ideasoft"*///侧面移动显示字符取摸plc2002
- uchar code table_yd[120]={
- 0x08,0x08,0x78,0x08,0x08,0x08,0x08,0xFF,/*"上",0*/
- 0x18,0x04,0x22,0x24,0xFF,0x24,0x24,0x24,/*"升",0*/
- 0x78,0x49,0xCE,0x00,0xFF,0x84,0x86,0xFD,/*"沿",0*/
- 0x7E,0x2A,0x2A,0xFF,0xAA,0xAA,0xBE,0x40,/*"电",0*/
- 0x09,0x49,0x89,0xFD,0x0B,0x0B,0x09,0x08,/*"子",0*/
- 0x00,0x7C,0x92,0x92,0x92,0x92,0x7C,0x00,/*"8",0*/
- 0x00,0x42,0x24,0x18,0x18,0x24,0x42,0x00,/*"x",0*/
- 0x00,0x7C,0x92,0x92,0x92,0x92,0x7C,0x00,/*"8",0*/
- 0x00,0x42,0x24,0x18,0x18,0x24,0x42,0x00,/*"x",0*/
- 0x00,0x7C,0x92,0x92,0x92,0x92,0x7C,0x00,/*"8",0*/
- 0x88,0x4E,0x78,0x0F,0xF8,0x8E,0x88,0x48,/*"光",0*/
- 0x82,0x8E,0xF2,0x83,0xE2,0x9E,0x82,0x80,/*"立",0*/
- 0x82,0x42,0x3E,0x0B,0x8A,0x8A,0x7A,0x02,/*"方",0*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- };
- /*railway*/
- uchar code dat[128]=
- {
- 0x00,0x20,0x40,0x60,0x80,0xa0,0xc0,0xe0,
- 0xe4,0xe8,0xec,0xf0,0xf4,0xf8,0xfc,0xdc,
- 0xbc,0x9c,0x7c,0x5c,0x3c,0x1c,0x18,0x14,
- 0x10,0x0c,0x08,0x04,0x25,0x45,0x65,0x85,
- 0xa5,0xc5,0xc9,0xcd,0xd1,0xd5,0xd9,0xb9,
- 0x99,0x79,0x59,0x39,0x35,0x31,0x2d,0x29,
- 0x4a,0x6a,0x8a,0xaa,0xae,0xb2,0xb6,0x96,
- 0x76,0x56,0x52,0x4e,0x6f,0x8f,0x93,0x73,
- 0x6f,0x8f,0x93,0x73,0x4a,0x6a,0x8a,0xaa,
- 0xae,0xb2,0xb6,0x96,0x76,0x56,0x52,0x4e,
- 0x25,0x45,0x65,0x85,0xa5,0xc5,0xc9,0xcd,
- 0xd1,0xd5,0xd9,0xb9,0x99,0x79,0x59,0x39,
- 0x35,0x31,0x2d,0x29,0x00,0x20,0x40,0x60,
- 0x80,0xa0,0xc0,0xe0,0xe4,0xe8,0xec,0xf0,
- 0xf4,0xf8,0xfc,0xdc,0xbc,0x9c,0x7c,0x5c,
- 0x3c,0x1c,0x18,0x14,0x10,0x0c,0x08,0x04,
- };
- /*railway 2*/
- uchar code dat2[28]=
- {
- 0x00,0x20,0x40,0x60,0x80,0xa0,0xc0,0xe0,
- 0xe4,0xe8,0xec,0xf0,0xf4,0xf8,0xfc,0xdc,
- 0xbc,0x9c,0x7c,0x5c,0x3c,0x1c,0x18,0x14,
- 0x10,0x0c,0x08,0x04,
- };
- /*railway 3*/
- uchar code dat3[24]=
- {
- 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x16,
- 0x26,0x36,0x46,0x56,0x66,0x65,0x64,0x63,
- 0x62,0x61,0x60,0x50,0x40,0x30,0x20,0x10,
- };
- /*3p char*/
- uchar code table_3p[3][8]=
- {
- 0xff,0x89,0xf5,0x93,0x93,0xf5,0x89,0xff,
- 0x0e,0x1f,0x3f,0x7e,0x7e,0x3f,0x1f,0x0e,
- 0x18,0x3c,0x7e,0xff,0x18,0x18,0x18,0x18,
- };
- /*3p char*///飘雪打字显示字符取摸plc2002
- uchar code table_3p_zf[11][8]={
- 0x88,0x4E,0x78,0x0F,0xF8,0x8E,0x88,0x48,/*"光",0*/
- 0x82,0x8E,0xF2,0x83,0xE2,0x9E,0x82,0x80,/*"立",0*/
- 0x82,0x42,0x3E,0x0B,0x8A,0x8A,0x7A,0x02,/*"方",0*/
- 0x00,0x7C,0x92,0x92,0x92,0x92,0x7C,0x00,/*"8",0*/
- 0x00,0x42,0x24,0x18,0x18,0x24,0x42,0x00,/*"x",0*/
- 0x00,0x7C,0x92,0x92,0x92,0x92,0x7C,0x00,/*"8",0*/
- 0x00,0x42,0x24,0x18,0x18,0x24,0x42,0x00,/*"x",0*/
- 0x00,0x7C,0x92,0x92,0x92,0x92,0x7C,0x00,/*"8",0*/
- 0x00,0x00,0xC3,0xFF,0xFF,0xC3,0x00,0x00,//i
- 0x0e,0x1f,0x3f,0x7e,0x7e,0x3f,0x1f,0x0e,
- 0x00,0x7F,0xFF,0x80,0x80,0xFF,0x7F,0x00,//u
- };
- unsigned int voivol(unsigned int n);
- void sendbyte(unsigned int num1,unsigned int num2,unsigned int num3,unsigned int num4);
- void fvb();
- void sendbyteck(unsigned int num1,unsigned int num2,unsigned int num3,unsigned int num4);
- /*initializtion
- That is to initialize the program .
- It is write to set the timer in c52 mcu.
- So the program can renovate the led_3d_cube in fixed time use the interrupt function.*/
- /*##########################################################################################*/
- uchar code number[]={//数字,滚动字幕使用,从上至下
- 0x00,0x40,0x40,0x40,0x40,0x40,0x7E,0x00,/*"L",0*/
- 0x00,0x7E,0x40,0x7E,0x40,0x40,0x7E,0x00,/*"E",1*/
- 0x00,0x7C,0x46,0x42,0x42,0x46,0x7C,0x00,/*"D",2*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",3*/
- 0x00,0x3C,0x62,0x40,0x40,0x61,0x3E,0x00,/*"C",4*/
- 0x00,0x42,0x42,0x42,0x42,0x42,0x3C,0x00,/*"U",5*/
- 0x00,0x7C,0x42,0x7C,0x42,0x41,0x7E,0x00,/*"B",6*/
- 0x00,0x7E,0x40,0x7E,0x40,0x40,0x7E,0x00,/*"E",7*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",8*/
- 0x00,0x42,0x42,0x7E,0x42,0x42,0x42,0x00,/*"H",9*/
- 0x00,0x42,0x42,0x42,0x42,0x42,0x3C,0x00,/*"U",10*/
- 0x00,0xC2,0x64,0x38,0x10,0x10,0x10,0x00,/*"Y",11*/
- 0x00,0x18,0x18,0x24,0x7E,0x42,0x81,0x00,/*"A",12*/
- 0x00,0x62,0x62,0x52,0x4A,0x46,0x46,0x00,/*"N",13*/
- 0x00,0x3C,0x62,0x40,0x4E,0x62,0x3E,0x00,/*"G",14*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",15*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",16*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",17*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"Y",18*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",19*/
- 0x00,0x44,0x44,0x7C,0x44,0x44,0x44,0x00,/*"H",20*/
- 0x00,0x44,0x44,0x44,0x44,0x44,0x38,0x00,/*"U",21*/
- 0x00,0x82,0x44,0x28,0x10,0x10,0x10,0x00,/*"Y",22*/
- 0x00,0x10,0x28,0x28,0x7C,0x44,0x82,0x00,/*"A",23*/
- 0x00,0x64,0x64,0x54,0x54,0x4C,0x44,0x00,/*"N",24*/
- 0x00,0x78,0xC4,0x80,0x9C,0xC4,0x7C,0x00,/*"G",25*/
- 0x00,0x10,0x10,0x10,0x10,0x00,0x10,0x00,/*"!",26*/
- 0X38,0X64,0X06,0X3E,0X66,0X66,0X24,0X18,//"9"27
- 0X3C,0X66,0X66,0X3C,0X66,0X66,0X24,0X18,//"8"28
- 0X30,0X30,0X30,0X18,0X0C,0X04,0X46,0X7E,//"7"29
- 0X18,0X26,0X66,0X78,0X60,0X66,0X24,0X18,//"6"30
- 0X18,0X64,0X46,0X06,0X1C,0X60,0X62,0X7E,//"5"31
- 0X0C,0X0C,0X7E,0X68,0X6C,0X2C,0X3C,0X1C,//"4"32
- 0x78,0x46,0x06,0x06,0x1c,0x06,0x46,0x3c,//"3"33
- 0xfc,0xc0,0x60,0x30,0x18,0xc6,0xc6,0x78,//"2"34
- 0x3c,0x18,0x18,0x18,0x18,0x18,0x38,0x18,//"1"35
- 0X18,0X24,0X66,0X66,0X66,0X66,0X24,0X18,//"0"36
- 0x44,0xEE,0x66,0x22,0x3E,0x22,0x3E,0x00,/*"Y",1*/
- 0x08,0xF4,0x44,0x2E,0x94,0x64,0x03,0x00,/*"D",2*/
- 0x7E,0x10,0x10,0x10,0x1C,0x10,0x10,0x00,/*"S",3*/
- 0x81,0x42,0x18,0xA5,0xA5,0x18,0x42,0x81,/*"M",4*/
- 0x00,0x00,0x18,0x24,0x24,0x18,0x00,0x00,/*"M",5*/
- };
- uchar code flash0__tab[]=
- {
- 0X03,0X07,0X06,0X08,0X10,0X20,0X40,0X80,
- 0X07,0X07,0X0F,0X1C,0X18,0X20,0X40,0X80,
- 0X0F,0X0F,0X1F,0X3F,0X3C,0X78,0X60,0X80,
- 0X1F,0X1F,0X3F,0X3F,0X7F,0X7C,0X70,0X80,
- 0X3F,0X3F,0X3F,0X7F,0X7F,0X7F,0XF8,0XC0,
- 0X7F,0X7F,0X7F,0X7F,0XFF,0XFF,0XFF,0XF0,
- 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF//7
- };
- uchar code yc_table[]={//2帧,yinchu函数使用
- 0x00,0x00,0x00,0x3c,0x3c,0x00,0x00,0x00,//1I
- 0x00,0x00,0x00,0x3c,0x3c,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x3c,0x3c,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x3c,0x3c,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,//2心脏
- 0x00,0x00,0x00,0x3c,0x3c,0x00,0x00,0x00,
- 0x00,0x00,0x18,0x7e,0x7e,0x18,0x00,0x00,
- 0x00,0x00,0x3c,0x7e,0x7e,0x3c,0x00,0x00,
- 0x00,0x18,0x7e,0xff,0xff,0x7e,0x18,0x00,
- 0x00,0x00,0x7e,0xff,0xff,0x7e,0x00,0x00,
- 0x00,0x00,0x00,0x66,0x66,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,//3U
- 0x00,0x00,0x00,0x3c,0x3c,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x66,0x66,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x66,0x66,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x66,0x66,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x66,0x66,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x66,0x66,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x66,0x66,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x24,0x24,0x00,0x00,0x00,//4苹果
- 0x00,0x00,0x00,0x7e,0x7e,0x00,0x00,0x00,
- 0x00,0x00,0x3c,0xff,0x7e,0x3c,0x00,0x00,
- 0x00,0x18,0x7e,0xff,0xff,0x7e,0x18,0x00,
- 0x00,0x00,0x3c,0xfe,0xfe,0x3c,0x00,0x00,
- 0x00,0x00,0x00,0x6e,0x66,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x18,0x10,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//5五角星
- 0x00,0x00,0x00,0x22,0x22,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x36,0x36,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x1c,0x1c,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x3e,0x3e,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x7f,0x7f,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x1c,0x1c,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x08,0x08,0x00,0x00,0x00
- };
- char code tab_mian[]={4,3,7,2,0,6,1,5};
- char code tab_xian[]={5,0,3,6,1,7,4,2};
- char code tab_dian[]={
- 0,1,3,4,7,2,6,5,
- 1,7,5,0,4,2,3,6,
- 1,6,4,0,7,5,2,3,
- 5,7,4,2,0,1,6,3,
- 1,6,3,4,5,2,0,7,
- 6,7,1,5,4,2,0,3,
- 2,0,3,1,5,7,6,4,
- 5,2,1,0,3,6,7,4,
- 0,7,4,3,2,6,5,1,
- 4,7,2,6,5,3,1,0,
- 0,1,4,3,2,5,6,7,
- 3,6,7,2,1,4,0,5,
- 5,2,1,0,7,6,4,3,
- 1,4,0,2,3,5,7,6,
- 4,2,1,5,6,0,7,3,
- 0,4,7,3,1,5,2,6,
- 1,0,6,7,4,5,3,2,
- 6,0,4,2,7,5,1,3,
- 3,1,2,6,7,5,0,4,
- 2,4,1,0,6,5,3,7,
- 6,2,1,5,7,4,3,0,
- 1,0,5,3,2,6,7,4,
- 7,1,0,4,2,5,6,3,
- 6,4,1,0,2,5,7,3,
- 2,6,7,0,3,5,1,4,
- 6,3,7,2,1,4,5,0,
- 7,0,5,6,1,3,4,2,
- 5,2,3,4,0,7,1,6,
- 2,3,0,7,6,4,1,5,
- 1,3,0,4,5,2,7,6,
- 3,4,2,5,6,0,1,7,
- 4,2,0,6,3,7,5,1,
- 4,1,6,0,7,3,2,5,
- 7,6,0,5,1,4,2,3,
- 6,1,3,2,7,0,5,4,
- 2,7,3,6,0,5,1,4,
- 6,5,2,1,0,3,7,4,
- 7,1,0,5,4,6,3,2,
- 1,7,3,2,6,0,5,4,
- 0,2,6,7,4,3,5,1,
- 0,5,4,1,6,3,2,7,
- 0,1,5,4,7,2,3,6,
- 1,4,2,3,5,7,6,0,
- 2,7,0,5,6,1,3,4,
- 2,1,6,0,4,5,3,7,
- 6,1,5,4,2,7,3,0,
- 4,0,5,2,1,6,7,3,
- 1,2,0,6,3,7,4,5,
- 5,0,1,2,4,3,7,6,
- 4,2,0,6,7,5,1,3,
- 2,3,7,4,6,1,0,5,
- 1,5,7,0,3,4,2,6,
- 2,7,6,3,5,1,0,4,
- 4,5,7,0,2,3,1,6,
- 0,5,7,3,2,1,6,4,
- 6,4,5,7,1,0,3,2,
- 1,6,5,7,0,2,3,4,
- 2,1,5,3,6,4,0,7,
- 0,6,5,4,3,7,0,2,
- 6,4,2,0,3,1,5,7,
- 4,5,7,6,0,3,1,2,
- 0,3,7,2,1,5,6,4,
- 5,2,4,0,1,3,7,2,
- 4,5,3,1,7,0,2,6
- };
- uint code tab_water[]={
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0080,0x0140,0x0080,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0080,0x0140,0x0220,0x0140,0x0080,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x01c0,0x0220,0x0410,0x0410,0x0410,0x0220,0x01c0,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x03e0,0x0410,0x0808,0x0808,0x0808,0x0808,0x0808,0x0410,0x03e0,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x07f0,0x0808,0x1004,0x1004,0x1004,0x1004,0x1004,0x1004,0x1004,0x0808,0x07f0,0x0000,0x0000,0x0000,
- 0x0000,0x0ff8,0x1004,0x2002,0x2002,0x2002,0x2002,0x2002,0x2002,0x2002,0x2002,0x2002,0x1004,0x0ff8,0x0000,0x0000,
- 0x1ffc,0x2002,0x4001,0x4001,0x4001,0x4001,0x4001,0x4001,0x4001,0x4001,0x4001,0x4001,0x4001,0x2002,0x1ffc,0x0000
- };
- uchar code tab_print[]={//打印函数使用
- 0X00,0X00,0X3C,0X3C,0X3C,0X3C,0X00,0X00,//正方形
- 0X20,0X30,0X38,0X3C,0X3C,0X38,0X30,0X20,//三角形
- 0X08,0X14,0X22,0X77,0X14,0X14,0X14,0X1C,//箭头
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,//全亮
- };
- uchar code tab_xuanzhuantiao[]=//旋转条
- {
- 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,
- 0x00,0x01,0x06,0x08,0x10,0x60,0x80,0x00,
- 0x00,0x00,0x01,0x0e,0x70,0x80,0x00,0x00,
- 0x00,0x00,0x00,0x0f,0xf0,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xf0,0x0f,0x00,0x00,0x00,
- 0x00,0x00,0x80,0x70,0x0e,0x01,0x00,0x00,
- 0x00,0x80,0x60,0x10,0x08,0x06,0x01,0x00,//
- 0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,//1
- 0x40,0x20,0x20,0x10,0x08,0x04,0x04,0x02,
- 0x20,0x10,0x10,0x10,0x08,0x08,0x08,0x04,
- 0x10,0x10,0x10,0x10,0x08,0x08,0x08,0x08,
- 0x08,0x08,0x08,0x08,0x10,0x10,0x10,0x10,
- 0x04,0x08,0x08,0x08,0x10,0x10,0x10,0x20,
- 0x02,0x04,0x04,0x08,0x10,0x20,0x20,0x40//7
- };
- uchar code tab_xuanzhuantiao2[]=//旋转条
- {
- 0X01,0X02,0X04,0X08,0X10,0X20,0X40,0X80,//1
- 0X02,0X04,0X08,0X00,0X10,0X20,0X40,0X80,//
- 0X04,0X08,0X00,0X10,0X20,0X20,0X40,0X80,//
- 0X08,0X10,0X10,0X20,0X20,0X40,0X40,0X80,//
- 0X10,0X10,0X20,0X20,0X20,0X40,0X40,0X80,//
- 0X20,0X20,0X40,0X40,0X40,0X80,0X80,0X80,//
- 0X40,0X40,0X40,0X40,0X80,0X80,0X80,0X80,//
- 0X80,0X80,0X80,0X80,0X80,0X80,0X80,0X80,//8
- 0X80,0X80,0X80,0X80,0X40,0X40,0X40,0X40,//
- if(kxg==2)
- {
- box(7,7,7,7-l,7-l,7-l,0,1);
- result=voivol(16);
- box(7,7,7,7-l,7-l,7-l,1,0);
- }
- if(kxg==3)
- { box(7,0,7,0,l,0,0,1);
- result=voivol(16);
- box(l,0,l,0,7,0,1,0);
- }
- if(kxg==4)
- {
- box(l,l,l,7-l,7-l,7-l,0,1);
- result=voivol(16);
- box(7-l,7-l,7-l,l,l,l,1,0);
- }
- if(kxg==5)
- {
- box(0,7,7,l,7-l,0,0,1);
- result=voivol(16);
- box(0,7,7,l,7-l,0,1,0);
- }
- if(kxg==6)
- {
- box(l,l,l,7-l,7-l,7-l,0,1);
- result=voivol(16);
- box(7-l,7-l,7-l,7,7,7,1,0);
- }
- if(kxg==7)
- {
- box(l,0,7,0,7,0,0,1);
- result=voivol(16);
- box(7,0,l,0,l,0,1,0);
- }
- n--;
- if(key2==3||key2==2){if(key2==3){msd=3;break;}
- else{if(key2==2){msd=2;break;}}}
- }
- }
- void Vol_watch_2()
- {
- unsigned int xdata result=0,l=0,n=500;
- while(n)
- {
- if ((result>>5)>l)
- l=result>>5;
- else
- if (l>0)
- l--;
- if (l>7)
- l=7;
- clear(0);
- switch(l)
- {
- case 0:point(4,4,4,1);break;
- case 1:box(3,3,3,4,4,4,1,1);break;
- case 2:box(2,2,2,4,4,4,1,1);break;
- case 3:box(2,2,2,5,5,5,1,1);break;
- case 4:box(1,1,1,5,5,5,1,1);break;
- case 5:box(1,1,1,6,6,6,1,1);break;
- case 6:box(0,0,0,6,6,6,1,1);break;
- default:box(0,0,0,7,7,7,1,1);
- }
- result=voivol(16);
- n--;
- if(key2==3||key2==2){if(key2==3){msd=3;break;}
- else{if(key2==2){msd=2;break;}}}
- }
- }
- void Vol_watch_3()
- {
- unsigned int result,l,n=500;
- while(n)
- {
- result=voivol(3);
- l=result>>3;
- if (l>7)
- l=7;
- transss();
- box_apeak_xy(0,0,0,0,7,l,1,1);
- delayyp(60);
- n--;
- if(key2==3||key2==2){if(key2==3){msd=3;break;}
- else{if(key2==2){msd=2;break;}}}
- }
- }
- void init_uart(void)
- {
- PCON |= 0x80;
- SCON = 0x50;
- AUXR |= 0x40;
- AUXR &= 0xFE;
- TMOD &= 0x0F;
- TMOD |= 0x20;
- TL1 = 0xE8;
- TH1 = 0xE8;
- ET1 = 0;
- TR1 = 1;
- ES=1;
- EA=1;
- }
- void sendbyteck(unsigned int num1,unsigned int num2,unsigned int num3,unsigned int num4)
- {
- unsigned char c;
- for(c=0;c<8;c++)
- {
- CLK=0;
- M_LR_DS0=num1&0x01;
- M_LG_DS0=num2&0x01;
- M_HR_DS0=num3&0x01;
- M_HG_DS0=num4&0x01;
- CLK=1;
- num1>>=1;
- num2>>=1;
- num3>>=1;
- num4>>=1;
- }
- }
- void key_shangwiej_scan()
- {
- if(!K2) //如果检测到低电平,说明按键按下
- {
- if(msd==1||msd==2){TR0=0;}
- delay10us(); //延时去抖,一般10-20ms
- if(!K2) //再次确认按键是否按下,没有按下则退出
- {
- while(!K2)//如果确认按下按键等待按键释放,没有则退出
- {
- if(test==1){key1=1;}
- if(test==2){key2=3;}
- PWM_POW=1;
- delay10us(); delay10us();delay10us();delay10us(); delay10us();delay10us();
- PWM_POW=0;
- }
- }
- }
- if(msd==1||msd==2){TR0=1;}
- }
- /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
- void main()
- {
- sinter();
- clear(0);
- PWM_LED();//开启PWM呼吸灯功能
- turn_on(10);
- H_scan(10);
- V_scan(10);
- W_scan(10);
- PWM_POW=0;//打开电源指示灯
- test=1;
- while(1)
- {
- ld=500;
- H_scan(40);
- if(key1==1||key1==2||key1==3||key1==4){ break;} V_scan(40);
- if(key1==1||key1==2||key1==3||key1==4) {break;}W_scan(40);
- if(key1==1||key1==2||key1==3||key1==4) {break;}}
- while(1)
- {
- if(key1==3) {H_scan(40); } if(key1==2){V_scan(40); }if(key1==1){W_scan(40); }if(key1==4){
- test=2;
- msd=2;
- ld=500;
- break; //退出测试功能
- }
- }
- delay(10); TR0=0;
- while(1) /*play list*/
- {
- if(msd==1)
- {
- key3=3;
- TR0=0;
- EA=0;
- xsdsq=1;
- hy(number+(36+1)*8,10);
- W_side(number+(36+1)*8,1,200);
- xsdsq=0;
- PWM_POW=0;
- TR0=1; //开启定时器显示扫描
- EA=1;
- test=2;
- while(1)
- {
- if(key2==3||key2==2){if(key2==3){msd=3;break;}
- else{if(key2==2){msd=2;break;}}}else{ clear(0); Vol_watch_0(1);}
- if(key2==3||key2==2){if(key2==3){msd=3;break;}
- else{if(key2==2){msd=2;break;}}}else{ clear(0); Vol_watch_0(2);}
- if(key2==3||key2==2){if(key2==3){msd=3;break;}
- else{if(key2==2){msd=2;break;}}}else{ clear(0); Vol_watch_0(3); }
- if(key2==3||key2==2){if(key2==3){msd=3;break;}
- else{if(key2==2){msd=2;break;}}}else{ clear(0); Vol_watch_0(4); }
- if(key2==3||key2==2){if(key2==3){msd=3;break;}
- else{if(key2==2){msd=2;break;}}}else{ clear(0); Vol_watch_0(5);}
- if(key2==3||key2==2){if(key2==3){msd=3;break;}
- else{if(key2==2){msd=2;break;}}}else{ clear(0); Vol_watch_0(6);}
- if(key2==3||key2==2){if(key2==3){msd=3;break;}
- else{if(key2==2){msd=2;break;}}}else{ clear(0); Vol_watch_0(7);}
- if(key2==3||key2==2){if(key2==3){msd=3;break;}
- else{if(key2==2){msd=2;break;}}}else{ clear(0); Vol_watch_1(1);}
- if(key2==3||key2==2){if(key2==3){msd=3;break;}
- else{if(key2==2){msd=2;break;}}}else{ clear(0); Vol_watch_1(2);}
- if(key2==3||key2==2){if(key2==3){msd=3;break;}
- else{if(key2==2){msd=2;break;}}}else{ clear(0); Vol_watch_1(3); }
- if(key2==3||key2==2){if(key2==3){msd=3;break;}
- else{if(key2==2){msd=2;break;}}}else{ clear(0); Vol_watch_1(4);}
- if(key2==3||key2==2){if(key2==3){msd=3;break;}
- else{if(key2==2){msd=2;break;}}}else{ clear(0); Vol_watch_1(5);}
- if(key2==3||key2==2){if(key2==3){msd=3;break;}
- else{if(key2==2){msd=2;break;}}}else{ clear(0); Vol_watch_2();}
- if(key2==3||key2==2){if(key2==3){msd=3;break;}
- else{if(key2==2){msd=2;break;}}}else{ clear(0); Vol_watch_3();}
- }
- }
- if(msd==2)
- {
- key3=3;
- xsdsq=1;
- hy(number+(36+2)*8,10);
- W_side(number+(36+2)*8,1,200);
- xsdsq=0;
- while(1)
- {
- msd=6;
- TR0=0; //关闭定时器显示扫描
- EA=0;
- flash_20(); //第一个面屏幕上下拉开
- flash_21(); //从后面往前面显示数组的数字9-0
- flash_22(); //围绕着最外面的LED循环滚动显示数组中内容
- flash_23(); //分层升降左右上下前后以此打开升降测试
- flash_24(); //从最上面的一个面往下面的一层移动完
- flash_25(); //光立方全亮并且闪烁5次
- flash_26(); //从下面往上面依次显示出数组中的内容IXU
- flash_27(); //狼七八咋的显示出LED的每一个灯展示灯火效果
- flash_28(); //显示从上面往下面滴水的效果
- flash_29(); //将4个面围城圈圈然后旋转几次
- flash_30(); //空心显示将数组内容打印出来可以打印4个数组内容
- flash_31(); //将左右的四个面围绕成圈圈转起来4次之后从左边往右边显示数组中一幅图像64个的数据
- flash_32(); //从左边显示一个面然后旋转出一个面的空心效果实心效果
- flash_33(); //旋转单个面依次交换到买一个面
- flash_34(); //以中点位轴进行选择左右旋转切换实现波纹的效果
- flash_35(); //旋转左右为中心加快速度实现每个面的抖动效果
- flash_36(); //将数组中的内容显示出现进行旋转是一个正方形的
- flash_37(); //将方形变形缩小然后变成一个全亮的效果
- flash_38(); //前后左右上下伸缩全亮
- flash_39(); //实心和空心缩放和放大正方形全亮显示
- flash_40(); //动画显示一个数组里面的心形数据 会动的心形
- flash_41(); //显示一个电梯的图形
- flash_42(); //显示数字往上移动出来
- flash_15(); //显示下雨的效果
- msd=2;
- TR0=1;
- EA=1;
-
- //显示中有些动画包含本店的数据如果不需要请自己将动画函数屏蔽
- //flash_14();flash_18();flash_12();
- if(key2==1||key2==3){if(key2==1){msd=1;break;}
- else{if(key2==3){msd=3;break;}}}else{flash_1();}//包含第一个面显示4321倒计时的文字
- if(key2==1||key2==3){if(key2==1){msd=1;break;}
- else{if(key2==3){msd=3;break;}}}else{flash_17();}//显示出一个VI的版本标志然后从最里面往外面滚动出来
- if(key2==1||key2==3){if(key2==1){msd=1;break;}
- else{if(key2==3){msd=3;break;}}}else{flash_16();}//从边边的左右中滚动显示默认的英文字母ideasoft
- if(key2==1||key2==3){if(key2==1){msd=1;break;}
- else{if(key2==3){msd=3;break;}}}else{flash_14();}//一个一个的字变出来显示上升沿电子光立方可以修改显示数据
- if(key2==1||key2==3){if(key2==1){msd=1;break;}
- else{if(key2==3){msd=3;break;}}}else{flash_18();}//显示出上升沿电子8X8X8光立方下雨效果飘出字移动出去
- if(key2==1||key2==3){if(key2==1){msd=1;break;}
- else{if(key2==3){msd=3;break;}}}else{flash_2();}//图形圈圈显示出来
- if(key2==1||key2==3){if(key2==1){msd=1;break;}
- else{if(key2==3){msd=3;break;}}}else{flash_3();}//从前一排显示到后面一排两次
- if(key2==1||key2==3){if(key2==1){msd=1;break;}
- else{if(key2==3){msd=3;break;}}}else{flash_4();}//从前一排斜杆到最后一排两次
- if(key2==1||key2==3){if(key2==1){msd=1;break;}
- else{if(key2==3){msd=3;break;}}}else{flash_5();}//框框伸缩从中间到前面到后面
- if(key2==1||key2==3){if(key2==1){msd=1;break;}
- else{if(key2==3){msd=3;break;}}}else{flash_6();}//滚四边的圈圈然后下雨效果飘出字移动出去
- if(key2==1||key2==3){if(key2==1){msd=1;break;}
- else{if(key2==3){msd=3;break;}}}else{flash_7();}//滚四边包括前后左右滚然后出来半边三角形
- if(key2==1||key2==3){if(key2==1){msd=1;break;}
- else{if(key2==3){msd=3;break;}}}else{flash_8();}//从左移动一排到右边中间显示文字图形
- if(key2==1||key2==3){if(key2==1){msd=1;break;}
- else{if(key2==3){msd=3;break;}}}else{flash_9();}//从左到右边滚出斜杆然后螺旋转轴旋转框框显示方框伸缩孔空心和实心
- if(key2==1||key2==3){if(key2==1){msd=1;break;}
- else{if(key2==3){msd=3;break;}}}else{flash_10();}//从最左小脚伸缩出框框然后变轮子前后左右上下滚动然后收缩还原
- if(key2==1||key2==3){if(key2==1){msd=1;break;}
- else{if(key2==3){msd=3;break;}}}else{flash_11();}//象红旗一样被风飘动象蛇一样飘动走动
- if(key2==1||key2==3){if(key2==1){msd=1;break;}
- else{if(key2==3){msd=3;break;}}}else{flash_12();}//滚动上升沿电子的字模数据文字移动显示出来
- if(key2==1||key2==3){if(key2==1){msd=1;break;}
- else{if(key2==3){msd=3;break;}}}else{flash_13();}//渐变出来文字VI1234IXU的图案
- if(key2==1||key2==3){if(key2==1){msd=1;break;}
- else{if(key2==3){msd=3;break;}}}else{flash_19();}//平行滑动显示出3D CULE FFT的字?
- TR0=0;
- EA=0;
- PWM_POW=0;
- }
- }
- if(msd==3)
- {
- key3=3;
- TR0=0;
- EA=0;
- xsdsq=1;
- hy(number+(36+3)*8,10);
- W_side(number+(36+3)*8,1,200);
- xsdsq=0;
- PWM_POW=0;
- init_uart();
- test=2;
- while(1)
- {
- fvb();
- if(key2==1||key2==2){if(key2==1){msd=1;break;}
- else{if(key2==2){msd=2;break;}}}
- }
- }
- }
- }
复制代码
所有资料51hei提供下载:
光立方综合功能源程序.zip
(299.43 KB, 下载次数: 34)
|