📄 main.c
字号:
if(Temp1==1)
{
b=b<<1;
b=b|0x01;
}
else
b=b<<1;
}
return b;
}
*/
//------------
/*
描述:从I2C总线读n个字节
入口参数:*buffer-读取值存放缓冲的地址,n-读取个数
返回值:成功标志
*/
/*
static bit Read_N_Bytes(unsigned char n,unsigned char *buffer)
{
//从I2C总线读n个字节
unsigned char i;
for(i=0;i<n;i++)
{
buffer[i]=IIC_Byte_R();
if(i!=n)
SEND_0(); //发送应答
else
SEND_1(); //发送非应答
}
IIC_Stop();
return TRUE;
}
*/
/*********
延时子程序
入口参数:时间,一个单位4.88us
返回值:无
********/
/*
void Delay(unsigned int time)//4.88us, 6个周期
{
do{time--; }
while(time>0);
}
*/
//************看门狗涵数********
void REST_WDT(void)
{
WDREST=0x1e;
WDREST=0xe1;
}
/*********
延时子程序
入口参数:时间,一个单位4.88us
返回值:无
********/
void Delay1(unsigned int time)//4.88us, 6个周期
{ uint temp,i;
temp=time*250;
//if()
do
{temp--;
for(i=0;i<200;i++)
{
}
if(((uchar)time)!=LightData[0]){return;}
//REST_WDT();
}
while(temp>0);
}
/*
void Delay2()//通讯专用延时
{ uint temp,i,temp2;
temp=LightData[1];
temp2=temp;
do
{temp--;
for(i=0;i<20;i++)
{
}
REST_WDT();}
while(temp>0);
}
*/
void Delay2(unsigned int time)//跑动间隔延时
{ uint temp,i;
temp=time*25;
do
{temp--;
for(i=0;i<50;i++)
{
}
if(((uchar)time)!=LightData[0])
{
return;
}
//REST_WDT();
}
while(temp>0);
}
void Delay3(unsigned int time)//七彩追逐间隔延时
{ uint temp,i;
temp=time*25;
do
{temp--;
for(i=0;i<50;i++)
{
}
/*
if(((uchar)time)!=LightData[0])
{
return;
}
*/
//REST_WDT();
}
while(temp>0);
}
void tb_red()//红色整体跳变亮
{
uint i;
// clr();
SLATCH595=0;
for(i=0;i<=JUMP_NUMBER_MAX;i++)
{
SCLK595=0; //bit 24 shift-out
SDATA595=OFF;
SCLK595=1;
SCLK595=0; //bit 24 shift-out
SDATA595=ON;
SCLK595=1;
SCLK595=0; //bit 24 shift-out
SDATA595=OFF;
SCLK595=1;
}
SCLK595=0;
SLATCH595=1;
SLATCH595=0;
// Delay1(LightData[0]);
}
void tb_blue()//蓝色整体跳变亮
{
uint i;
// clr();
SLATCH595=0;
for(i=0;i<=JUMP_NUMBER_MAX;i++)
{
SCLK595=0; //bit 24 shift-out
SDATA595=ON;
SCLK595=1;
SCLK595=0; //bit 24 shift-out
SDATA595=OFF;
SCLK595=1;
SCLK595=0; //bit 24 shift-out
SDATA595=OFF;
SCLK595=1;
}
SCLK595=0;
SLATCH595=1;
SLATCH595=0;
//Delay1(LightData[0]);
}
void tb_green()//绿色整体跳变亮
{
uint i;
// clr();
SLATCH595=0;
for(i=0;i<=JUMP_NUMBER_MAX;i++)
{
SCLK595=0; //bit 24 shift-out
SDATA595=OFF;
SCLK595=1;
SCLK595=0; //bit 24 shift-out
SDATA595=OFF;
SCLK595=1;
SCLK595=0; //bit 24 shift-out
SDATA595=ON;
SCLK595=1;
}
SCLK595=0;
SLATCH595=1;
SLATCH595=0;
// Delay1(LightData[0]);
}
void tb_red_green()//跳变红绿整体亮
{
uint i;
// clr();
SLATCH595=0;
for(i=0;i<=JUMP_NUMBER_MAX;i++)
{
SCLK595=0; //bit 24 shift-out
SDATA595=OFF;
SCLK595=1;
SCLK595=0; //bit 24 shift-out
SDATA595=ON;
SCLK595=1;
SCLK595=0; //bit 24 shift-out
SDATA595=ON;
SCLK595=1;
}
SCLK595=0;
SLATCH595=1;
SLATCH595=0;
// Delay1(LightData[0]);
}
void tb_red_blue()//跳变红蓝整体亮
{
uint i;
// clr();
SLATCH595=0;
for(i=0;i<=JUMP_NUMBER_MAX;i++)
{
SCLK595=0; //蓝色
SDATA595=ON;
SCLK595=1;
SCLK595=0; //红色
SDATA595=ON;
SCLK595=1;
SCLK595=0; //绿色
SDATA595=OFF;
SCLK595=1;
}
SCLK595=0;
SLATCH595=1;
SLATCH595=0;
// Delay1(LightData[0]);
}
void tb_green_blue()//绿蓝跳变整体亮
{
uint i;
// clr();
SLATCH595=0;
for(i=0;i<=JUMP_NUMBER_MAX;i++)
{
SCLK595=0; //蓝色
SDATA595=ON;
SCLK595=1;
SCLK595=0; //红色
SDATA595=OFF;
SCLK595=1;
SCLK595=0; //绿色
SDATA595=ON;
SCLK595=1;
}
SCLK595=0;
SLATCH595=1;
SLATCH595=0;
// Delay1(LightData[0]);
}
//*****************************************跑动效果控制函数*********************////////
////////////////////////////////////////////////////////////////////////////////////////
void pd_red()//红色跑动效果
{
uint i;
// clr();
SLATCH595=0;
for(i=0;i<=JUMP_NUMBER_MAX;i++)
{
SCLK595=0; //蓝色
SDATA595=OFF;
SCLK595=1;
SCLK595=0; //红色
SDATA595=ON;
SCLK595=1;
SCLK595=0; //绿色
SDATA595=OFF;
SCLK595=1;
SCLK595=0;
SLATCH595=1;
SLATCH595=0;
Delay2(LightData[0]);
}
}
void pd_green()//绿色跑动效果
{
uint i;
// clr();
SLATCH595=0;
for(i=0;i<=JUMP_NUMBER_MAX;i++)
{
SCLK595=0; //蓝色
SDATA595=OFF;
SCLK595=1;
SCLK595=0; //红色
SDATA595=OFF;
SCLK595=1;
SCLK595=0; //绿色
SDATA595=ON;
SCLK595=1;
SCLK595=0;
SLATCH595=1;
SLATCH595=0;
Delay2(LightData[0]);
}
}
void pd_blue()//蓝色跑动效果
{
uint i;
// clr();
SLATCH595=0;
for(i=0;i<=JUMP_NUMBER_MAX;i++)
{
SCLK595=0; //蓝色
SDATA595=ON;
SCLK595=1;
SCLK595=0; //红色
SDATA595=OFF;
SCLK595=1;
SCLK595=0; //绿色
SDATA595=OFF;
SCLK595=1;
SCLK595=0;
SLATCH595=1;
SLATCH595=0;
Delay2(LightData[0]);
}
}
void pd_red_green()//红绿跑动效果
{
uint i;
// clr();
SLATCH595=0;
for(i=0;i<=JUMP_NUMBER_MAX;i++)
{
SCLK595=0; //蓝色
SDATA595=OFF;
SCLK595=1;
SCLK595=0; //红色
SDATA595=ON;
SCLK595=1;
SCLK595=0; //绿色
SDATA595=ON;
SCLK595=1;
SCLK595=0;
SLATCH595=1;
SLATCH595=0;
Delay2(LightData[0]);
}
}
void pd_red_blue()//红蓝跑动效果
{
uint i;
// clr();
SLATCH595=0;
for(i=0;i<=JUMP_NUMBER_MAX;i++)
{
SCLK595=0; //蓝色
SDATA595=ON;
SCLK595=1;
SCLK595=0; //红色
SDATA595=ON;
SCLK595=1;
SCLK595=0; //绿色
SDATA595=OFF;
SCLK595=1;
SCLK595=0;
SLATCH595=1;
SLATCH595=0;
Delay2(LightData[0]);
}
}
void pd_green_blue()//绿蓝跑动效果
{
uint i;
// clr();
SLATCH595=0;
for(i=0;i<=JUMP_NUMBER_MAX;i++)
{
SCLK595=0; //蓝色
SDATA595=ON;
SCLK595=1;
SCLK595=0; //红色
SDATA595=OFF;
SCLK595=1;
SCLK595=0; //绿色
SDATA595=ON;
SCLK595=1;
SCLK595=0;
SLATCH595=1;
SLATCH595=0;
Delay2(LightData[0]);
}
}
/////////*****************以上是单色混色跑动效果********************
///////////////////////////***************************************************
//*****************************以下是全彩跑动效果********************
//*************************///////////////////*******************************
void seven_color_full()//全彩跑动效果
{
uint m;
for(m=0;m<150;m++)// 循环发送的数据个数
{
SLATCH595=0;
SCLK595=0; SDATA595=OFF; SCLK595=1;//蓝
SCLK595=0; SDATA595=ON; SCLK595=1;//红
SCLK595=0; SDATA595=OFF; SCLK595=1;//绿
SLATCH595=1; SLATCH595=0; SCLK595=0; Delay3(10);//1
SLATCH595=0;
SCLK595=0; SDATA595=OFF; SCLK595=1;//蓝
SCLK595=0; SDATA595=OFF; SCLK595=1;//红
SCLK595=0; SDATA595=ON; SCLK595=1;//绿
SLATCH595=1; SLATCH595=0; SCLK595=0; Delay3(10);//2
SLATCH595=0;
SCLK595=0; SDATA595=ON; SCLK595=1;//蓝
SCLK595=0; SDATA595=OFF; SCLK595=1;//红
SCLK595=0; SDATA595=OFF; SCLK595=1;//绿
SLATCH595=1; SLATCH595=0; SCLK595=0; Delay3(10);//3
SLATCH595=0;
SCLK595=0; SDATA595=OFF; SCLK595=1;//蓝
SCLK595=0; SDATA595=ON; SCLK595=1;//红
SCLK595=0; SDATA595=ON; SCLK595=1;//绿
SLATCH595=1; SLATCH595=0; SCLK595=0; Delay3(10);//4
SLATCH595=0;
SCLK595=0; SDATA595=ON; SCLK595=1;//蓝
SCLK595=0; SDATA595=ON; SCLK595=1;//红
SCLK595=0; SDATA595=OFF; SCLK595=1;//绿
SLATCH595=1; SLATCH595=0; SCLK595=0; Delay3(10); //5
SLATCH595=0;
SCLK595=0; SDATA595=ON; SCLK595=1;//蓝
SCLK595=0; SDATA595=OFF; SCLK595=1;//红
SCLK595=0; SDATA595=ON; SCLK595=1;//绿
SLATCH595=1; SLATCH595=0; SCLK595=0; Delay3(10);//6
SLATCH595=0;
SCLK595=0; SDATA595=OFF; SCLK595=1;//蓝
SCLK595=0; SDATA595=ON; SCLK595=1;//红
SCLK595=0; SDATA595=OFF; SCLK595=1;//绿
SLATCH595=1; SLATCH595=0; SCLK595=0; Delay3(10);//7
SLATCH595=0;
SCLK595=0; SDATA595=OFF; SCLK595=1;//蓝
SCLK595=0; SDATA595=OFF; SCLK595=1;//红
SCLK595=0; SDATA595=ON; SCLK595=1;//绿
SLATCH595=1; SLATCH595=0; SCLK595=0; Delay3(10);//8
SLATCH595=0;
SCLK595=0; SDATA595=ON; SCLK595=1;//蓝
SCLK595=0; SDATA595=OFF; SCLK595=1;//红
SCLK595=0; SDATA595=OFF; SCLK595=1;//绿
SLATCH595=1; SLATCH595=0; SCLK595=0; Delay3(10);//9
SLATCH595=0;
SCLK595=0; SDATA595=ON; SCLK595=1;//蓝
SCLK595=0; SDATA595=ON; SCLK595=1;//红
SCLK595=0; SDATA595=OFF; SCLK595=1;//绿
SLATCH595=1; SLATCH595=0; SCLK595=0; Delay3(10);//10
SLATCH595=0;
SCLK595=0; SDATA595=ON; SCLK595=1;//蓝
SCLK595=0; SDATA595=OFF; SCLK595=1;//红
SCLK595=0; SDATA595=ON; SCLK595=1;//绿
SLATCH595=1; SLATCH595=0; SCLK595=0; Delay3(10);//11
SLATCH595=0;
SCLK595=0; SDATA595=OFF; SCLK595=1;//蓝
SCLK595=0; SDATA595=ON; SCLK595=1;//红
SCLK595=0; SDATA595=OFF; SCLK595=1;//绿
SLATCH595=1; SLATCH595=0; SCLK595=0; Delay3(10);//12
SLATCH595=0;
SCLK595=0; SDATA595=OFF; SCLK595=1;//蓝
SCLK595=0; SDATA595=OFF; SCLK595=1;//红
SCLK595=0; SDATA595=ON; SCLK595=1;//绿
SLATCH595=1; SLATCH595=0; SCLK595=0; Delay3(10);//13
SLATCH595=0;
SCLK595=0; SDATA595=ON; SCLK595=1;//蓝
SCLK595=0; SDATA595=OFF; SCLK595=1;//红
SCLK595=0; SDATA595=OFF; SCLK595=1;//绿
SLATCH595=1; SLATCH595=0; SCLK595=0; Delay3(10);//14
SLATCH595=0;
SCLK595=0; SDATA595=ON; SCLK595=1;//蓝
SCLK595=0; SDATA595=ON; SCLK595=1;//红
SCLK595=0; SDATA595=OFF; SCLK595=1;//绿
SLATCH595=1; SLATCH595=0; SCLK595=0; Delay3(10); //15
SLATCH595=0;
SCLK595=0; SDATA595=ON; SCLK595=1;//蓝
SCLK595=0; SDATA595=OFF; SCLK595=1;//红
SCLK595=0; SDATA595=ON; SCLK595=1;//绿
SLATCH595=1; SLATCH595=0; SCLK595=0; Delay3(10);//16
}
}
void clr()//清零函数
{
uint i;
SLATCH595=0;
for(i=0;i<=JUMP_NUMBER_MAX;i++)
{
SCLK595=0; //bit 24 shift-out
SDATA595=OFF;
SCLK595=1;
SCLK595=0; //bit 24 shift-out
SDATA595=OFF;
SCLK595=1;
SCLK595=0; //bit 24 shift-out
SDATA595=OFF;
SCLK595=1;
}
SCLK595=0;
SLATCH595=1;
SLATCH595=0;
//Delay1(LightData[0]);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -