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

📄 dzkzqv11.c

📁 LED照明行业地砖及护栏控制器程序 从现况来看
💻 C
📖 第 1 页 / 共 2 页
字号:
//(***************************
//  Version V1.0
//  地砖控制器
//  2004-09-23 mcu:w77e58 ,172800bps at RS485 11.0592MHz
#include <reg52.h>
//#include <w77c32.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define byte unsigned char
#define word unsigned  
#define bool bit
#define true 1
#define false 0
#define SPEED 20

#define SPEEDCOLS 500	//七彩停留时间
#define SPEEDBY	40		//百叶速度
#define ADD  1                     /* 定时器T0方式控制字 */
#define WriteDeviceAddress 0xa0
#define ReadDviceAddress 	0xa1

//*************************************
sfr     CHPCON= 0xbf;
sfr		CHPENR=0xf6;
sfr 	PMR= 0xC4;
sfr		SBUF1=0xc1;
sfr		SCON1=0xc0;
sbit SM01  = SCON1^7; /* alternative SM0_FE_1  */
sbit SM11  = SCON1^6; /* alternative SM1_1  */
sbit SM21  = SCON1^5; /* alternative SM2_1  */
sbit REN1  = SCON1^4; /* alternative REN_1  */
sbit TB81  = SCON1^3; /* alternative TB8_1  */
sbit RB81  = SCON1^2; /* alternative RB8_1  */
sbit TI1   = SCON1^1; /* alternative TI_1   */
sbit RI1   = SCON1^0; /* alternative RI_1   */
sbit ES1   = IE^6;

sbit	led=P3^5;
sbit	senden=P3^2;
sbit	SDA=P1^0;
sbit	SCL=P1^1;
//**********************
uchar idata dis_red[40];
uchar idata dis_grn[40];
uchar idata dis_blu[40];
uchar	send_buf[65];
uchar XX,X1,ssp;
uchar 	pointer,subchk;			//接收指针 和校验
uchar	bdata flag;
sbit 	frameok=flag^0;		 	//rece ok

uchar code r4d1cr[]=
{
0x3F,0x3F,0x3F,0x3F,0x20,0x20,0x20,0x20,0x3F,0x3F,0x3F,0x3F,0x20,0x20,0x20,0x20,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x3F,0x3F,0x3F,0x3F,0x20,0x20,0x20,0x20,0x3F,0x3F,0x3F,0x3F,0x20,0x20,0x20,0x20,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x00,
0x00,0x20,0x20,0x20,0x20,0x3F,0x3F,0x3F,0x3F,0x20,0x20,0x20,0x20,0x3F,0x3F,0x3F,
0x3F,0x20,0x20,0x20,0x20,0x3F,0x3F,0x3F,0x3F,0x20,0x20,0x20,0x20,0x3F,0x3F,0x3F,
0x3F,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x3F,0x3F,0x20,0x20,0x20,0x20,0x3F,0x3F,0x3F,
0x3F,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,
0x20,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x3F,0x3F,0x3F,0x3F,0x20,0x20,
0x20,0x20,0x3F,0x3F,0x3F,0x3F,0x20,0x20,0x20,0x20,0x3F,0x3F,0x3F,0x3F,0x20,0x20,
0x20,0x20,0x3F,0x3F,0x3F,0x3F,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x3F,0x3F,0x20,0x20,
0x20,0x20,0x3F,0x3F,0x3F,0x3F,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x3F,
0x3F,0x3F,0x3F,0x20,0x20,0x20,0x20,0x3F,0x3F,0x3F,0x3F,0x20,0x20,0x20,0x3F,0x3F,
};
//================================
uchar	code	r4d1cg[]=
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x3F,0x3F,0x20,0x20,0x20,0x20,
0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x3F,0x3F,0x20,0x20,0x20,0x20,
0x3F,0x3F,0x3F,0x3F,0x10,0x10,0x10,0x10,0x3F,0x3F,0x3F,0x3F,0x20,0x20,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,
0x20,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x3F,
0x3F,0x20,0x20,0x20,0x20,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x20,0x20,0x20,
0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x3F,
0x3F,0x20,0x20,0x20,0x20,0x3F,0x3F,0x3F,0x3F,0x10,0x10,0x10,0x10,0x3F,0x3F,0x3F,
0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x20,0x20,0x20,0x20,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x3F,0x3F,0x3F,0x3F,0x20,0x20,0x20,0x20,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
0x3F,0x3F,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x3F,0x3F,0x3F,0x3F,0x20,0x20,0x20,0x20,0x3F,0x3F,0x3F,0x3F,0x10,0x10,
0x10,0x10,0x3F,0x3F,0x3F,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x10,0x10,0x10,0x00,0x00,
};
//====================================
uchar	code	r4d1cb[]=
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x3F,0x3F,0x3F,0x3F,0x20,0x20,0x20,0x20,0x3F,0x3F,0x3F,0x3F,
0x3F,0x3F,0x3F,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x10,0x10,0x10,0x10,
0x20,0x20,0x20,0x20,0x10,0x10,0x10,0x10,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
0x3F,0x3F,0x3F,0x3F,0x3F,0x20,0x20,0x20,0x20,0x3F,0x3F,0x3F,0x3F,0x10,0x10,0x10,
0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x3F,0x3F,0x20,0x20,0x20,
0x20,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
0x20,0x10,0x10,0x10,0x10,0x20,0x20,0x20,0x20,0x10,0x10,0x10,0x10,0x3F,0x3F,0x3F,
0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x20,0x20,0x20,0x20,0x3F,0x3F,
0x3F,0x3F,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,
0x3F,0x3F,0x20,0x20,0x20,0x20,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x20,0x20,
0x20,0x20,0x20,0x20,0x20,0x20,0x10,0x10,0x10,0x10,0x20,0x20,0x20,0x20,0x10,0x10,
0x10,0x10,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x20,
0x20,0x20,0x20,0x3F,0x3F,0x3F,0x3F,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,
};
//===========================
uchar code x64cr[]=
{
//红色数据:
/*
0x3F,0x3F,0x3F,0x3C,0x27,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x2A,0x3E,
0x3F,0x3F,0x3F,0x3F,0x3F,0x3C,0x27,0x0F,
*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x0F,0x1A,
0x27,0x32,0x3C,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
0x3F,0x3D,0x35,0x29,0x1D,0x11,0x07,0x00,};
//------------------------------------------------
uchar code x64cg[]=
{
//绿色数据:
/*
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x30,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
0x2F,0x14,0x00,0x00,0x00,0x00,0x00,0x00,
*/
0x07,0x13,0x20,0x2C,0x38,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
0x3F,0x3F,0x3F,0x3D,0x36,0x2C,0x22,0x17,0x0C,0x04,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
//---------------------------
uchar code x64cb[]=
{
/*
0x00,0x15,0x32,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3D,0x2A,0x12,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x15,0x32,0x3F,0x3F,0x3F,
*/
0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x39,0x30,0x26,0x1B,0x11,0x7,0x01,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x8,0x12,0x1D,0x29,
0x33,0x3C,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,};
//**************************
//七彩无过渡色
uchar	code	col7cr[]=
{
0x3F,0x3F,0x3F,0x3C,0x27,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x2A,0x3E,
0x3F,0x3F,0x3F,0x3F,0x3F,0x3C,0x27,0x0F,
0x3F,0x3F,0x3F,0x3C,0x27,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x2A,0x3E,
0x3F,0x3F,0x3F,0x3F,0x3F,0x3C,0x27,0x0F,

};

uchar	code	col7cg[]=
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x30,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
0x2F,0x14,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x30,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
0x2F,0x14,0x00,0x00,0x00,0x00,0x00,0x00,

};

uchar	code	col7cb[]=
{
0x00,0x15,0x32,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3D,0x2A,0x12,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x15,0x32,0x3F,0x3F,0x3F,
0x00,0x15,0x32,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3D,0x2A,0x12,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x15,0x32,0x3F,0x3F,0x3F,
};
void clear(void);
void sendall(void);//发送全部
void televise(void);//广播发送

void  delay(uint j);
void delay1s(uint j);

void qcld(uchar speed);
void duun(uchar speed);
void lrmun(uchar speed);
void mlrun(uchar speed);
void mlrco(uchar speed);
void lrmco(uchar speed);
void colld(uchar speed);
void col7(uchar SPEEDCOL);
void mlrmov(uchar speed);
void lmovo(uchar speed);
void send_delay(void);
void ybyzk(uchar speed);
void send_del(uchar j);
void ybybm(uchar speed);
void zbyzk(uchar speed);
void zbybm(uchar speed);
//********************************************
void main()
{

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;
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)

/*TL0=0xff;	//timer 0 is ac sync
TH0=0xff;
TR0=1;
ET0=1;
*/
TR1=1;
ET1=0;
ES1=1;

PMR=PMR|0x01;	//enable on-chip RAM
XX=40;		//dz 162 pcs
X1=20;
//p=&iic_buf[0];
//Read24c02(p,0,96);

//*******************
while(1)
	{
//	col7(10);
	zbyzk(SPEEDBY);
	zbybm(SPEEDBY);
	ybyzk(SPEEDBY);
	ybybm(SPEEDBY);
	zbyzk(SPEEDBY);
	zbybm(SPEEDBY);
	ybyzk(SPEEDBY);
	ybybm(SPEEDBY);
	qcld(120/XX);
	duun(120/XX);
	clear();
	lrmun(120/XX);
	lrmco(120/XX);
	mlrun(120/XX);
	mlrco(120/XX);
//	lpla(120/XX);
//	lmovo(120/XX);
	colld(120/XX);
	mlrmov(120/XX);
	mlrun(120/XX);

 	}
}
//**************************
//七种颜色渐变
//*****************************
void col7(uchar SPEEDCOL)
{
uchar i;
for(i=0;i<255;i++)
	{dis_red[0]=i;
	televise();
	delay1s(SPEEDCOL);
	}
delay1s(SPEEDCOLS);
//----------------------------
for(i=0;i<255;i++)
	{dis_grn[0]=i;
	televise();
	delay1s(SPEEDCOL);
	}
delay1s(SPEEDCOLS);
//----------------------------
for(i=255;i>0;i--)
	{dis_red[0]=i;
	televise();
	delay1s(SPEEDCOL);
	}
delay1s(SPEEDCOLS);
//----------------------------
for(i=0;i<255;i++)
	{dis_blu[0]=i;
	televise();
	delay1s(SPEEDCOL);
	}
delay1s(SPEEDCOLS);
//----------------------------
for(i=255;i>0;i--)
	{dis_grn[0]=i;
	televise();
	delay1s(SPEEDCOL);
	}
delay1s(SPEEDCOLS);
//----------------------------
for(i=0;i<255;i++)
	{dis_red[0]=i;
	televise();
	delay1s(SPEEDCOL);
	}
delay1s(SPEEDCOLS);
//---------------------------
for(i=0;i<255;i++)
	{dis_grn[0]=i;
	televise();
	delay1s(SPEEDCOL);
	}
delay1s(SPEEDCOLS);
}
//**************************
//将数据广播发送
//*****************************
void televise(void)
{
TB81=1;
SBUF1=0;while(!TI1);TI1=0;
TB81=0;
send_del(20);
SBUF1=dis_red[0];
while(!TI1);TI1=0;
send_del(20);
SBUF1=dis_grn[0];
while(!TI1);TI1=0;
send_del(20);
SBUF1=dis_blu[0];
while(!TI1);TI1=0;
send_del(20);
led=!led;
}
//**************************
//加清除显示内存
//*****************************
void clear(void)
{
uchar i;
for(i=0;i<XX;i++)
	{
	dis_red[i]=0;
	dis_grn[i]=0;
	dis_blu[i]=0;
	}
}
//*******************************
//左展开
//********************************
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();
	}
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];

⌨️ 快捷键说明

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