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

📄 dzkzqv11.c

📁 LED照明行业地砖及护栏控制器程序 从现况来看
💻 C
📖 第 1 页 / 共 2 页
字号:
	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();
	delay1s(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 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)
	{
	for(i=0;i<800;i++);
	j--;
	}
ssp=1;
}
//*******************************
void delay(uint j)
{
uint i;
while(j!=0)
	{
	for(i=0;i<ssp*256;i++);
	j--;
	}
ssp=1;
}
void send_del(uchar j)
{
while(j!=0)
	{
	j--;
	}
}
//*******************************
void send_delay(void)
{
uchar	j;
j=12;
while(j!=0)
	{
	j--;
	}
}
//*******************************
void SomeNOP(void)
{
uchar i;
i=5;
while(i--);
}

/***************************************************************************/
void I2cDelay(unsigned int number) {
	unsigned char temp;
	for(;number!=0;number--) {
		for(temp=112;temp!=0;temp--) {
		}
	}
}

/***************************************************************************/
void Start() {
	SDA=1;
	SCL=1;SomeNOP();
	SDA=0;SomeNOP();
	SCL=0;
}

/***************************************************************************/
void Stop() {
	SCL=0;
	SDA=0;SomeNOP();
	SCL=1;SomeNOP();
	SDA=1;
}

/***************************************************************************/
void Ack() {
	SDA=0;
	SCL=1;SomeNOP();
	SCL=0;SomeNOP();
	SDA=1;
}

/***************************************************************************/
void NoAck() {
	SDA=1;
	SCL=1;SomeNOP();
	SCL=0;
}

/***************************************************************************/
bit TestAck() {
	bit ErrorBit;
	SDA=1;
	SCL=1;
	ErrorBit=SDA;SomeNOP();
	SCL=0;
	return(ErrorBit);
}

/***************************************************************************/
Write8Bit(unsigned char input)
{
unsigned char temp;
for(temp=8;temp!=0;temp--) {
		SDA=(bit)(input&0x80);
		SCL=1;
		SCL=0;
		input=input<<1;
	}
}
/***************************************************************************/
void Write24c02(unsigned char *Wdata,unsigned char RomAddress,unsigned char number) {
	Start();
	Write8Bit(WriteDeviceAddress);
	TestAck();
	Write8Bit(RomAddress);
	TestAck();
	for(;number!=0;number--) {
		Write8Bit(*Wdata);
		TestAck();
		Wdata++;
	}
	Stop();
	I2cDelay(10);
}
/***************************************************************************/
unsigned char Read8Bit() {
	unsigned char temp,rbyte=0;
	for(temp=8;temp!=0;temp--) {
		SCL=1;
		rbyte=rbyte<<1;
		rbyte=rbyte|((unsigned char)(SDA));
		SCL=0;
	}
	return(rbyte);
}
/***************************************************************************/
void Read24c02(unsigned char *RamAddress,unsigned char RomAddress,unsigned char bytes) {
//	unsigned char temp,rbyte;
	Start();
	Write8Bit(WriteDeviceAddress);
	TestAck();
	Write8Bit(RomAddress);
	TestAck();
	Start();
	Write8Bit(ReadDviceAddress);
	TestAck();
	while(bytes!=1) {
	*RamAddress=Read8Bit();
	Ack();
	RamAddress++;
	bytes--;
	}
	*RamAddress=Read8Bit();
	NoAck();
	Stop();
}
//**************************************
void	save(void)
{
uchar i;
uchar *sp;
sp=&send_buf[0];
for(i=0;i<16;i++)
	{
	Write24c02(sp,i*4,4);
	sp+=4;
	}
}
//*****************************************
//			串口中断服务程序
//*****************************************
void send(void) interrupt  4 
{
uchar d;
if(!TI && RI && !frameok)
 {RI=0;
  d=SBUF;
	if(pointer==0)
    	{if(d==ADD)
			{subchk=d;send_buf[0]=d;TB8=1;senden=1;
			send_delay();SBUF=d;while(!TI);TI=0;send_delay();
			senden=0;SM2=0;TB8=0;pointer++;}//71
		else if(d==0xff)
			{subchk=d;SM2=0;pointer++;}
			
     	}
  else 
		{if(pointer==64)
       	{send_buf[pointer]=d;
			if(d==subchk)
				{senden=1;send_delay();SBUF=subchk;while(!TI);send_delay();senden=0;TI=0;frameok=1;}
			else
				{senden=1;send_delay();SBUF=~subchk;while(!TI);send_delay();TI=0;senden=0;}
			SM2=1;pointer=0;
			}
     	else
          {send_buf[pointer]=d;subchk+=d;pointer++;}
		}        
  }//end if
}
//*************************************
/*
void timer1() interrupt  1  
{TL0=V_TL0;
TH0=V_TH0;
ms++;
if(ms>zhepe)
	{timout=1;
	ms=0;
	}
}
*/

⌨️ 快捷键说明

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