资源简介
这个是我自己写的4*4*4的光立方代码,以及取模软件。现在全部共享出来,方便大家学习。博客里面有具体的项目讲解。
代码片段和文件信息
#include //P1为黄色,P2为红色。 P0为阴极
#include
#define uint unsigned int
#define uchar unsigned char
unsigned char code tabP0[]={0xFE0xFD0xFB0xF70xEF0xDF0xBF0x7F}; //低电平扫描 ,每次只让亮一排(一个P0口)
uchar code table[]={ //呼吸灯专用
0012345678910
1112131415161718
192021222324252627
282930313233343536
373839404142434445
464748495051525354
555657585960616263
646566676869707172
73747576777879808182
838485868788899091
9293949596979899100101102103104105106107108109
110111112113114115116117118119120121122123124125
126127128129130131132133134135136137138139140141
142143144145146147148149150};
void ys(uint xms)//1ms延时
{
uint xy;
for(x=xms;x>0;x--)
for(y=110;y>0;y--);
}
void delay(uint z)
{
uint xy;
for(x=5;x>0;x--) //11的时候即可完全没有闪烁呼吸灯模式 (11一下效果都可以接受自己调整)
for(y=z;y>0;y--);
}
//红呼吸灯
void honglight1(uchar num1)
{
uchar j;
P0=0x00;
P2=0x00;
j = table[num1];
delay(j);
P0=0xff;
P2=0x00;
delay(150-j);
}
void honglight2(uchar num2) //由亮到灭 (可以理解为亮的时间由长到短。灭的时间由短到长)
{
uchar j;
P0=0xff; //首先关闭P0
P2=0x00; //打开P2
j = table[num2];
delay(j); //延时 (由短到长的)
P0=0x00; //打开P0叫它亮
P2=0x00;
delay(150-j); //延时由长到短
}
void hongbegin() //全亮 呼吸灭
{
int i;
for(i=0;i<140;i++)
{
honglight2(i);
}
P0=0x00; //保持亮的状态
P2=0xff;
P1=0xff;
}
void hongend() //全灭 呼吸亮
{
int i;
P0=0xff;
P2=0x00;
delay(100);
for(i=0;i<140;i++)
{
honglight1(i);
}
P0=0x00;
}
//下面是黄呼吸
void huanglight1(uchar num1)
{
uchar j;
P0=0x00;
P1=0x00;
j = table[num1];
delay(j);
P0=0xff;
P1=0x00;
delay(150-j);
}
void huanglight2(uchar num2) //由亮到灭 (可以理解为亮的时间由长到短。灭的时间由短到长)
{
uchar j;
P0=0xff; //首先关闭P0
P1=0x00; //打开P2
j = table[num2];
delay(j); //延时 (由短到长的)
P0=0x00; //打开P0叫它亮
P1=0x00;
delay(150-j); //延时由长到短
}
void huangbegin() //全亮 呼吸灭
{
int i;
for(i=0;i<140;i++)
{
huanglight2(i);
}
P0=0x00; //保持亮的状态
P1=0x00;
P1=0x00;
}
void huangend() //全灭 呼吸亮
{
int i;
P0=0xff;
P1=0x00;
delay(100);
for(i=0;i<140;i++)
{
huanglight1(i);
}
P0=0x00;
}
// 黄色变红色
void huangsebianhongse()
{
int a;
for(a=60;a>0;a-- )
{
P2=0xff;
P0=0x00;
P1=0x00;
ys(a);
P2=0x00;
ys(4);
}
}
//橙色灯
void chengsedeng() //黄色和红色的比例大概为1比15左右会出现橙色
{
int b;
for(b=150;b>0;b-- )
{
P2=0xff;
P0=0x0
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-07-17 14:32 444光立方\
文件 24580 2013-08-28 02:47 444光立方\guanglifang
文件 22503 2013-08-28 02:47 444光立方\guanglifang.c
文件 13902 2013-08-28 02:47 444光立方\guanglifang.hex
文件 70 2013-08-28 02:47 444光立方\guanglifang.lnp
文件 50699 2013-08-28 02:47 444光立方\guanglifang.LST
文件 38754 2013-08-28 02:47 444光立方\guanglifang.M51
文件 31053 2013-08-28 02:47 444光立方\guanglifang.OBJ
文件 191 2014-07-17 11:44 444光立方\guanglifang.plg
文件 67325 2013-10-09 21:35 444光立方\guanglifang.uvopt
文件 13419 2013-08-27 03:48 444光立方\guanglifang.uvproj
文件 41 2013-08-28 02:47 444光立方\guanglifang.__i
文件 60719 2013-10-09 00:00 444光立方\guanglifang_uvopt.bak
文件 0 2013-08-26 22:34 444光立方\guanglifang_uvproj.bak
文件 6376 2009-05-07 14:37 444光立方\STARTUP.A51
文件 14053 2013-08-28 00:21 444光立方\STARTUP.LST
文件 749 2013-08-28 00:21 444光立方\STARTUP.OBJ
文件 745472 2013-08-14 12:51 小杰光立方取模软件.exe
- 上一篇:口袋妖怪的一些小图标
- 下一篇:easyx教程和
评论
共有 条评论