⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dzkzqv12.c

📁 LED照明行业地砖及护栏控制器程序 从现况来看
💻 C
📖 第 1 页 / 共 2 页
字号:
//*******************************
//左展开
//********************************
void duun(uchar speed)
{
uchar x;
for(x=0;x<XX;x++)
	{
	dis_red[x]=x64cr[x];
	dis_grn[x]=x64cg[x];
	dis_blu[x]=x64cb[x];
	sendall();
	delay(speed);
	}
delay1s(speed);
}
//*******************************
//左百叶展开
//********************************
void zbyzk(uchar speed)
{
uchar x,i;
for(i=0;i<4;i++)
	{for(x=0;x<XX/4;x++)
		{
		dis_red[x*4+i]=x64cr[x];
		dis_grn[x*4+i]=x64cg[x];
		dis_blu[x*4+i]=x64cb[x];
		}
	sendall();
	delay1s(speed);
	}
}
//*******************************
//左百叶闭幕
//********************************
void zbybm(uchar speed)
{
uchar x,i;
for(i=0;i<4;i++)
	{for(x=0;x<XX/4;x++)
		{
		dis_red[x*4+i]=0;
		dis_grn[x*4+i]=0;
		dis_blu[x*4+i]=0;
		}
	sendall();
	delay1s(speed);
	}
}

//*******************************
//右百叶展开
//********************************
void ybyzk(uchar speed)
{
uchar x,i;
for(i=3;i<254;i--)
	{for(x=0;x<XX/4;x++)
		{
		dis_red[x*4+i]=x64cr[x];
		dis_grn[x*4+i]=x64cg[x];
		dis_blu[x*4+i]=x64cb[x];
		}
	sendall();
	delay1s(speed);
	}
}
//*******************************
//右百叶闭幕
//********************************
void ybybm(uchar speed)
{
uchar x,i;
for(i=3;i<254;i--)
	{for(x=0;x<XX/4;x++)
		{
		dis_red[x*4+i]=0;
		dis_grn[x*4+i]=0;
		dis_blu[x*4+i]=0;
		}
	sendall();
	delay1s(speed);
	}
}
//*******************************
//从中间向两边展开
//*******************************
void mlrun(uchar speed)
{
uchar x;
for(x=0;x<X1;x++)
	{
	dis_red[x+X1]=x64cr[x+X1];dis_red[X1-x]=x64cr[X1-x];
	dis_grn[x+X1]=x64cg[x+X1];dis_grn[X1-x]=x64cg[X1-x];
	dis_blu[x+X1]=x64cb[x+X1];dis_blu[X1-x]=x64cb[X1-x];
	sendall();
	}
delay1s(speed);
}
//*******************************
//从中间向两边闭幕
//**********************************
void mlrco(uchar speed)
{
uchar x;
for(x=X1;x<XX;x++)
	{
	dis_red[x]=0;dis_red[XX-1-x]=0;
	dis_grn[x]=0;dis_grn[XX-1-x]=0;
	dis_blu[x]=0;dis_blu[XX-1-x]=0;
	sendall();
	}
delay1s(speed);
}
//*******************************
//两边向中间展开
//**********************************
void lrmun(uchar speed)
{
uchar x;
for(x=XX-1;x>X1;x--)
	{
	dis_red[x]=x64cr[x];dis_red[XX-1-x]=x64cr[XX-1-x];
	dis_grn[x]=x64cg[x];dis_grn[XX-1-x]=x64cg[XX-1-x];
	dis_blu[x]=x64cb[x];dis_blu[XX-1-x]=x64cb[XX-1-x];
	sendall();
	}
delay1s(speed);
}
//*******************************
//两边向中间闭幕
//**********************************
void lrmco(uchar speed)
{
uchar x;
for(x=0;x<X1;x++)
	{
	dis_red[x]=0;dis_red[XX-1-x]=0;
	dis_grn[x]=0;dis_grn[XX-1-x]=0;
	dis_blu[x]=0;dis_blu[XX-1-x]=0;
	sendall();
	}
delay1s(speed);
}
//*******************************
//中间向两边移出
//**********************************
void mlrmov(uchar speed)
{
uint i,x;
uchar code *ROMP;
ROMP=0x2000;
for(x=0;x<XX;x++)
	{
	dis_red[x]=0;//清屏
	dis_grn[x]=0;//清屏
	dis_blu[x]=0;//清屏
	}
for(i=0;i<XX/2;i++)
	{
	for(x=XX-1;x>X1;x--)
		{
		dis_red[x]=dis_red[x-1];
		dis_grn[x]=dis_grn[x-1];
		dis_blu[x]=dis_blu[x-1];
		}
	dis_red[X1]=*ROMP;ROMP++;
	dis_grn[X1]=*ROMP;ROMP++;
	dis_blu[X1]=*ROMP;ROMP++;
	for(x=0;x<X1-1;x++)
		{
		dis_red[x]=dis_red[x+1];
		dis_grn[x]=dis_grn[x+1];
		dis_blu[x]=dis_blu[x+1];
		}
	dis_red[X1-1]=*ROMP;ROMP++;
	dis_grn[X1-1]=*ROMP;ROMP++;
	dis_blu[X1-1]=*ROMP;ROMP++;
	sendall();
	}
delay1s(speed);
}
//***********************************
//多彩流动
//***************************************
void qcld(uchar speed)
{
uint j,x;
uchar rs,gs,bs;
for(j=0;j<XX;j++)
	{for(x=XX-1;x>0;x--)
		{
		dis_red[x]=dis_red[x-1];
		dis_grn[x]=dis_grn[x-1];
		dis_blu[x]=dis_blu[x-1];
		}
	dis_red[0]=x64cr[j];
	dis_grn[0]=x64cg[j];
	dis_blu[0]=x64cb[j];
	sendall();
	delay(speed);
	}
delay1s(speed);
for(j=0;j<256;j++)
	{
	rs=dis_red[XX-1];
	gs=dis_grn[XX-1];
	bs=dis_blu[XX-1];
	for(x=XX-1;x>0;x--)
		{
		dis_red[x]=dis_red[x-1];
		dis_grn[x]=dis_grn[x-1];
		dis_blu[x]=dis_blu[x-1];
		}
		dis_red[0]=rs;
		dis_grn[0]=gs;
		dis_blu[0]=bs;
		sendall();
		delay(speed);
	}
//*******************************************
for(j=0;j<XX;j++)
	{for(x=XX-1;x>0;x--)
		{
		dis_red[x]=dis_red[x-1];
		dis_grn[x]=dis_grn[x-1];
		dis_blu[x]=dis_blu[x-1];
		}
	dis_red[0]=0;
	dis_grn[0]=0;
	dis_blu[0]=0;
	sendall();
	delay(speed);
	}
}
//***********************************
//七彩流动 一条一种颜色
//***************************************
void colld(uchar speed)
{
uint j,x;
uchar rs,gs,bs;
for(j=0;j<XX;j++)
	{for(x=XX-1;x>0;x--)
		{
		dis_red[x]=dis_red[x-1];
		dis_grn[x]=dis_grn[x-1];
		dis_blu[x]=dis_blu[x-1];
		}
	dis_red[0]=col7cr[x];
	dis_grn[0]=col7cg[x];
	dis_blu[0]=col7cb[x];
	sendall();
	delay(speed);
	}
delay1s(speed);
for(j=0;j<256;j++)
	{
	rs=dis_red[XX-1];
	gs=dis_grn[XX-1];
	bs=dis_blu[XX-1];
	for(x=XX-1;x>0;x--)
		{
		dis_red[x]=dis_red[x-1];
		dis_grn[x]=dis_grn[x-1];
		dis_blu[x]=dis_blu[x-1];
		}
		dis_red[0]=rs;
		dis_grn[0]=gs;
		dis_blu[0]=bs;
		sendall();
		delay(speed);
	}
//*******************************************
for(j=0;j<XX;j++)
	{for(x=XX-1;x>0;x--)
		{
		dis_red[x]=dis_red[x-1];
		dis_grn[x]=dis_grn[x-1];
		dis_blu[x]=dis_blu[x-1];
		}
	dis_red[0]=0;
	dis_grn[0]=0;
	dis_blu[0]=0;
	sendall();
	delay(speed);
	}
}
//------------------------------
void msk_data(uchar r0,g0,b0,r1,g1,b1)
{
uchar i;
for(i=0;i<XX/4;i++)
	{
	dis_red[i]=r0;
	dis_grn[i]=g0;
	dis_blu[i]=b0;

	dis_red[i+1]=r1;
	dis_grn[i+1]=g1;
	dis_blu[i+1]=b1;

	dis_red[i+2]=r0;
	dis_grn[i+2]=g0;
	dis_blu[i+2]=b0;

	dis_red[i+3]=r1;
	dis_grn[i+3]=g1;
	dis_blu[i+3]=b1;
//------------------------------
	dis_red[i+4]=r1;
	dis_grn[i+4]=g1;
	dis_blu[i+4]=b1;

	dis_red[i+5]=r0;
	dis_grn[i+5]=g0;
	dis_blu[i+5]=b0;

	dis_red[i+6]=r1;
	dis_grn[i+6]=g1;
	dis_blu[i+6]=b1;

	dis_red[i+7]=r0;
	dis_grn[i+7]=g0;
	dis_blu[i+7]=b0;
	}
}
//************************************
//马赛克
//*************************************
void	msk(uchar speed)
{
msk_data(255,0,0,0,255,0);
sendall();
delay1s(speed);
msk_data(0,255,0,0,0,255);
sendall();
delay1s(speed);
msk_data(0,0,255,255,0,0);
sendall();
delay1s(speed);
msk_data(255,255,0,0,255,255);
sendall();
delay1s(speed);
msk_data(255,0,255,0,255,255);
sendall();
delay1s(speed);
msk_data(255,255,0,0,0,255);
sendall();
delay1s(speed);

}
//***********************************
//多彩流动
//***************************************
void qcldx4(uchar speed)
{
uint j,x;
for(j=0;j<XX/4;j++)
	{
	for(x=0;x<4;x++)
		{
		dis_red[j*4+x]=dis_red[j*4+x+1];
		dis_grn[j*4+x]=dis_grn[j*4+x+1];
		dis_blu[j*4+x]=dis_blu[j*4+x+1];
		}
	dis_red[XX-j*4-1]=x64cr[j*4];
	dis_grn[XX-j*4-1]=x64cg[j*4];
	dis_blu[XX-j*4-1]=x64cb[j*4];

	dis_red[XX-j*4-2]=x64cr[j*4+1];
	dis_grn[XX-j*4-2]=x64cg[j*4+1];
	dis_blu[XX-j*4-2]=x64cb[j*4+1];

	dis_red[XX-j*4-3]=x64cr[j*4+2];
	dis_grn[XX-j*4-3]=x64cg[j*4+2];
	dis_blu[XX-j*4-3]=x64cb[j*4+2];

	dis_red[XX-j*4-4]=x64cr[j*4+3];
	dis_grn[XX-j*4-4]=x64cg[j*4+3];
	dis_blu[XX-j*4-4]=x64cb[j*4+3];
	sendall();
	delay(speed);
	}
delay1s(speed);
}
//******************************
//发送显示内存数据到各灯管
//*******************************
void sendall(void)
{
uchar j;
for(j=0;j<XX-1;j++)
	{TB81=1;
	SBUF1=j+1;while(!TI1);TI1=0;
	TB81=0;
	send_del(50);
	//send  red
	SBUF1=dis_red[j];
	while(!TI1);TI1=0;
	send_del(50);
	//send greed
	SBUF1=dis_grn[j];
	while(!TI1);TI1=0;
	send_del(50);
	//***********bluer
	SBUF1=dis_blu[j];
	while(!TI1);TI1=0;
	send_del(50);
	}
	led=!led;
}
//**********************************
//延时
//*******************************
void delay1s(uint j)
{
//uint i;
while(j!=0)
	{
	while(timer!=10)
		{
		if(frameok){save();frameok=0;}
		}
		timer=0;
		j--;
	}
}
//*******************************
void delay(uint j)
{
while(j!=0)
	{
	j--;if(frameok){save();frameok=0;}
	}
}
//-------------------------------------
void send_del(uchar j)
{
while(j!=0)
	{
	j--;
	if(frameok){save();frameok=0;}
	}
}
//*******************************
void send_delay(void)
{
uchar	j;
j=12;
while(j!=0)
	{
	j--;
	}
}
//********************************************
void main()
{
uchar i,j;
uchar idata *p;
SM0=1;
SM1=1;
SM2=0;
T2CON=0X30;
ES=0;
RCAP2H=0XFF;
TH2=0XFF;
RCAP2L=0Xdc;	//bps19200 0xdc 
TL2=0Xdc;	//bps=38400bps 256-(22.1184*10^6/32/38400)
TR2=1;    //
ES=1;     //允许串行端口的中断。
REN=1;    //串行通讯接收允许信号,该位可以由软件来设定。
TMOD=0x25;	//timer 1 dps timer sync
SCON1=0xc0;	//serial prot 1 
TH1=0xfd;
TL1=0xfd;	//256-(22.1184*10~6/32/12/3/38400*2)
senden=0;//rev
senden1=1;
TL0=0xff;	//timer 0 is ac sync
TH0=0xff;   
TR0=1;        //计时器1启动控制位可由软件来设定或清除。为1时启动,0时关闭

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -