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

📄 testhlv11.c

📁 LED照明行业地砖及护栏控制器程序 从现况来看
💻 C
字号:
//************************************
//**** 测试护栏管程序
//****	
//************************************
#include <reg51.h>
#include <stdio.h>//一般I/O函数
#include <stdlib.h>//标准函数
#include <absacc.h>//绝对地址
#include <intrins.h>//内部函数	
#include <setjmp.h>
#define uchar unsigned char
#define uint unsigned int
#define Byte unsigned char
#define Word unsigned int
#define ulong unsigned long
#define bool bit
#define true 1
#define false 0
#define V_TH0   0xff  /* 时间常数高8位 (65536-500)/256			*/
#define V_TL0   0x80  /* 时间常数低8位 (65536-500)%256   11.0592*/
#define ADD 2
#define reg01 XBYTE[0xc000]
#define reg02 XBYTE[0xc001] //控制寄存器

//******************************
uchar code x64cr[]=
{
/*

*/
//0,0,0,0,0,0,0,0,
15,13,11,9,7,5,3,1,
15,13,11,9,7,5,3,1,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
15,13,11,9,7,5,3,1,
15,13,11,9,7,5,3,1,
0,0,0,0,0,0,0,0,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,
30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,
31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,

};
//*****************************************************************************
uchar code x64cg[]=
{
/*

*/
//0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
15,13,11,9,7,5,3,1,
15,13,11,9,7,5,3,1,
15,13,11,9,7,5,3,1,
0,0,0,0,0,0,0,0,
15,13,11,9,7,5,3,1,
15,13,11,9,7,5,3,1,
0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,
31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,
31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,
31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

};
//*************************************
uchar code x64cb[]=
{
//0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
15,13,11,9,7,5,3,1,
15,13,11,9,7,5,3,1,
15,13,11,9,7,5,3,1,
15,13,11,9,7,5,3,1,
0,0,0,0,0,0,0,0,

0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,
31,31,31,31,31,31,31,31,
31,31,31,31,31,31,31,31,
31,31,31,31,31,31,31,31,
31,31,31,31,31,31,31,31,
31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,
31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,

};
//******************************
uchar	code	x7cr[]=
{
31,31,0,0,0,31,31,
};
//******************************
uchar	code	x7cg[]=
{
0,31,31,31,0,0,31,
};
//******************************
uchar	code	x7cb[]=
{
0,0,0,31,31,31,31,
};
//**************************************************************
uchar 	mode;
uchar 	pointer;

uchar	dis_red0,dis_red1,dis_red2;
uchar	dis_grn0,dis_grn1,dis_grn2;
uchar	dis_blu0,dis_blu1,dis_blu2;

uchar	dis_red3,dis_red4,dis_red5;
uchar	dis_grn3,dis_grn4,dis_grn5;
uchar	dis_blu3,dis_blu4,dis_blu5;

uchar	dis_red6,dis_red7;
uchar	dis_grn6,dis_grn7;
uchar	dis_blu6,dis_blu7;

uchar	pwm,rl;
uchar bdata flags;
sbit flag0=flags^0;
sbit flag1=flags^1;
sbit flag2=flags^2;
sbit flag3=flags^3;
uchar bdata sfd0,sfd1,sfd2;

sbit red0=sfd0^0;
sbit grn0=sfd0^1;
sbit blu0=sfd0^2;
sbit red1=sfd0^3;
sbit grn1=sfd0^4;
sbit blu1=sfd0^5;
sbit red2=sfd0^6;
sbit grn2=sfd0^7;
sbit blu2=sfd1^0;
sbit red3=sfd1^1;
sbit grn3=sfd1^2;
sbit blu3=sfd1^3;
sbit red4=sfd1^4;
sbit grn4=sfd1^5;
sbit blu4=sfd1^6;
sbit red5=sfd1^7;
sbit grn5=sfd2^0;
sbit blu5=sfd2^1;
sbit red6=sfd2^2;
sbit grn6=sfd2^3;
sbit blu6=sfd2^4;
sbit red7=sfd2^5;
sbit grn7=sfd2^6;
sbit blu7=sfd2^7;
sbit lat=P3^2;
//*****************************************
//	 延时
//**************************************
void delay(uint tim)
{
uint i;
while(tim!=0)
	{
	for(i=0;i<500;i++);
	tim--;
	}
}
//********************************
//clear
//***************************************
void	clear(void)
{
uchar i;dis_red0=dis_red1=dis_red2=dis_red3=dis_red4=dis_red5=dis_red6=dis_red7=0;
dis_grn0=dis_grn1=dis_grn2=dis_grn3=dis_grn4=dis_grn5=dis_grn6=dis_red7=0;
dis_blu0=dis_blu1=dis_blu2=dis_blu3=dis_blu4=dis_blu5=dis_blu6=dis_blu7=0;
}
//**********************
void	msk(uint	speed)
{
clear();
dis_red0=255;
dis_red2=255;
dis_red4=255;
dis_red6=255;
dis_blu1=255;
dis_blu3=255;
dis_blu5=255;
dis_blu7=255;
delay(speed);
clear();
dis_grn0=255;
dis_grn2=255;
dis_grn4=255;
dis_grn6=255;
dis_red1=dis_blu1=255;
dis_red3=dis_blu3=255;
dis_red5=dis_blu5=255;
dis_red7=dis_blu7=255;
delay(speed);
clear();
dis_red0=dis_grn0=255;
dis_red2=dis_grn2=255;
dis_red4=dis_grn4=255;
dis_red6=dis_grn6=255;
dis_grn1=dis_blu1=255;
dis_grn3=dis_blu3=255;
dis_grn5=dis_blu5=255;
dis_grn7=dis_blu7=255;
delay(speed);

}
//********************************
// 多彩流动
//***************************************
void	qczz(uint speed,uchar r,g,b)
{
//while(1);
for(i=0;i<8;i++)
	{
	dis_red0=dis_red1;
	dis_grn0=dis_grn1;
	dis_blu0=dis_blu1;
	
	dis_red1=dis_red2;
	dis_grn1=dis_grn2;
	dis_blu1=dis_blu2;

	dis_red2=dis_red3;
	dis_grn2=dis_grn3;
	dis_blu2=dis_blu3;

	dis_red3=dis_red4;
	dis_grn3=dis_grn4;
	dis_blu3=dis_blu4;
	
	dis_red4=dis_red5;
	dis_grn4=dis_grn5;
	dis_blu4=dis_blu5;

	dis_red5=dis_red6;
	dis_grn5=dis_grn6;
	dis_blu5=dis_blu6;
	
	dis_red6=dis_red7;
	dis_grn6=dis_grn7;
	dis_blu6=dis_blu7;
	
	dis_red7=r;
	dis_grn7=g;
	dis_blu7=b;
	delay(speed);
	
	}
}
//********************************
// 多彩流动
//***************************************
void	qcld(uint speed,uchar step)
{
uchar j;
for(j=0;j<255;j+=step)
	{
	dis_red0=x64cr[j];
	dis_red1=x64cr[j+1];
	dis_red2=x64cr[j+2];
	dis_red3=x64cr[j+3];
	dis_red4=x64cr[j+4];
	dis_red5=x64cr[j+5];
	dis_red6=x64cr[j+6];
	dis_red7=x64cr[j+7];


	dis_grn0=x64cg[j];
	dis_grn1=x64cg[j+1];
	dis_grn2=x64cg[j+2];
	dis_grn3=x64cg[j+3];
	dis_grn4=x64cg[j+4];
	dis_grn5=x64cg[j+5];
	dis_grn6=x64cg[j+6];
	dis_grn7=x64cg[j+7];


	dis_blu0=x64cb[j];
	dis_blu1=x64cb[j+1];
	dis_blu2=x64cb[j+2];
	dis_blu3=x64cb[j+3];
	dis_blu4=x64cb[j+4];
	dis_blu5=x64cb[j+5];
	dis_blu6=x64cb[j+6];
	dis_blu7=x64cb[j+7];

	delay(speed);
	//while(1);
	}
}
//************************************
//七彩过渡
//**********************************

void	qcgd(uint speed)
{
uchar i;
dis_red0=dis_red1=dis_red2=dis_red3=dis_red4=dis_red5=dis_red6=dis_red7=0;
dis_grn0=dis_grn1=dis_grn2=dis_grn3=dis_grn4=dis_grn5=dis_grn6=dis_red7=0;
dis_blu0=dis_blu1=dis_blu2=dis_blu3=dis_blu4=dis_blu5=dis_blu6=dis_blu7=0;
for(i=1;i<16;i++)
	{dis_red0=dis_red1=dis_red2=dis_red3=dis_red4=dis_red5=dis_red6=dis_red7=i;
	delay(speed);
	}
for(i=1;i<16;i++)
	{//dis_red0=dis_red1=dis_red2=dis_red3=i;
	dis_grn0=dis_grn1=dis_grn2=dis_grn3=dis_grn4=dis_grn5=dis_grn6=dis_red7=i;		//yello
	delay(speed);
	}
for(i=15;i<255;i--)
	{dis_red0=dis_red1=dis_red2=dis_red3=dis_red4=dis_red5=dis_red6=dis_red7=i;
	delay(speed);
	}
for(i=1;i<16;i++)
	{//dis_red0=dis_red1=dis_red2=dis_red3=i;
	dis_blu0=dis_blu1=dis_blu2=dis_blu3=dis_blu4=dis_blu5=dis_blu6=dis_blu7=i;
	delay(speed);
	}
for(i=15;i<255;i--)
	{//dis_red0=dis_red1=dis_red2=dis_red3=i; //blue
	dis_grn0=dis_grn1=dis_grn2=dis_grn3=dis_grn4=dis_grn5=dis_grn6=dis_red7=i;		//yello
	delay(speed);
	}
for(i=1;i<16;i++)
	{dis_red0=dis_red1=dis_red2=dis_red3=dis_red4=dis_red5=dis_red6=dis_red7=i;
	delay(speed);
	}
for(i=15;i<255;i--)
	{dis_grn0=dis_grn1=dis_grn2=dis_grn3=dis_grn4=dis_grn5=dis_grn6=dis_red7=i;		//yello
	delay(speed);
	}
}

//*****************************************
//*********************************
void main(void)
{

TMOD=0x01;
TL0=V_TL0;
TH0=V_TH0;
TR0=1;
ET0=1;
TR1=1;
EA=1;
rl=0x01;
SCON=0;
ES=0;
reg02=0x4f;
P1=0;
while(1)
	{
	clear();
//	qczz(500,16,0,0);
//	qcgd(100);
	qcld(40,1);
//	msk(5000);
	}
}

//**************************************
void pwmout(void)
{
red0=(bit)(dis_red0&rl);
red1=(bit)(dis_red1&rl);
red2=(bit)(dis_red2&rl);
red3=(bit)(dis_red3&rl);
red4=(bit)(dis_red4&rl);
red5=(bit)(dis_red5&rl);
red6=(bit)(dis_red6&rl);
red7=(bit)(dis_red7&rl);


grn0=(bit)(dis_grn0&rl);
grn1=(bit)(dis_grn1&rl);
grn2=(bit)(dis_grn2&rl);
grn3=(bit)(dis_grn3&rl);
grn4=(bit)(dis_grn4&rl);
grn5=(bit)(dis_grn5&rl);
grn6=(bit)(dis_grn6&rl);
grn7=(bit)(dis_grn7&rl);


blu0=(bit)(dis_blu0&rl);
blu1=(bit)(dis_blu1&rl);
blu2=(bit)(dis_blu2&rl);
blu3=(bit)(dis_blu3&rl);
blu4=(bit)(dis_blu4&rl);
blu5=(bit)(dis_blu5&rl);
blu6=(bit)(dis_blu6&rl);
blu7=(bit)(dis_blu7&rl);


SBUF=sfd2;while(!TI);TI=0;
SBUF=sfd1;while(!TI);TI=0;
SBUF=sfd0;while(!TI);TI=0;
lat=1;
lat=0;
}

//*******************************************
void timer1() interrupt  1  
{//TR0=0;
 pwm++;
	switch(pwm)
		{
		case	1:
			pwmout();
			rl=0x02;
		break;
		case	2:
			pwmout();
			rl=0x04;
		break;
		case	4:
			pwmout();
			rl=0x08;
		break;
		case	8:
			pwmout();
			rl=0x01;
		break;
		case	16:
			pwm=0;
		break;
		default:	break;
		}
	TL0=V_TL0;
	TH0=V_TH0;
	//TR0=1;
}//end sub

⌨️ 快捷键说明

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