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

📄 test.cpp

📁 LED照明行业地砖及护栏控制器程序 从现况来看
💻 CPP
字号:
//TEST.cpp : source file for the TEST project
//

#include "TEST.h"
#include "TESTTimer.h"

/////////////////////////////////////////////////////////////////////////////
//TEST

void io_init(void)
{
	//{{WIZARD_MAP(General)
	//}}WIZARD_MAP(General)

	//{{WIZARD_MAP(I/O Ports)
	// PortB
	PORTB = 0x0;
	DDRB = 0x0;
	// PortD
	PORTD = 0x3f;
	DDRD = 0x3f;
	//}}WIZARD_MAP(I/O Ports)

	//{{WIZARD_MAP(Watchdog)
	// Watchdog Enabled, Prescaler: OSC/16k
	wdt_enable(WDTO_15MS);
	//}}WIZARD_MAP(Watchdog)

	//{{WIZARD_MAP(Analog Comparator)
	// Analog Comparator Disabled
	ACSR = 0x80;
	//}}WIZARD_MAP(Analog Comparator)
}
#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   0xfb  /* 时间常数高8位 (65536-500)/256			*/
#define V_TL0   0x00  /* 时间常数低8位 (65536-500)%256   11.0592*/
#define ADD 2
#define reg01 XBYTE[0xc000]
#define reg02 XBYTE[0xc001] //控制寄存器
prog_uchar chr[]=
{
0x0B,0x0B,0x0A,0x0A,0x09,0x09,0x08,0x07,0x07,0x06,0x06,0x05,0x05,0x05,0x04,0x04,
0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
0x03,0x03,0x03,0x03,0x04,0x04,0x05,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,
0x0D,0x0E,0x0E,0x0F,0x0F,0x0F,0x0F,0x0E,0x0E,0x0D,0x0D,0x0D,0x0C,0x0C,0x0B,0x00,
0x0B,0x0B,0x0A,0x0A,0x09,0x09,0x08,0x07,0x07,0x06,0x06,0x05,0x05,0x05,0x04,0x04,
0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
0x03,0x03,0x03,0x03,0x04,0x04,0x05,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,
0x0D,0x0E,0x0E,0x0F,0x0F,0x0F,0x0F,0x0E,0x0E,0x0D,0x0D,0x0D,0x0C,0x0C,0x0B,0x00,
0x0B,0x0B,0x0A,0x0A,0x09,0x09,0x08,0x07,0x07,0x06,0x06,0x05,0x05,0x05,0x04,0x04,
0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
0x03,0x03,0x03,0x03,0x04,0x04,0x05,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,
0x0D,0x0E,0x0E,0x0F,0x0F,0x0F,0x0F,0x0E,0x0E,0x0D,0x0D,0x0D,0x0C,0x0C,0x0B,0x00,
0x0B,0x0B,0x0A,0x0A,0x09,0x09,0x08,0x07,0x07,0x06,0x06,0x05,0x05,0x05,0x04,0x04,
0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
0x03,0x03,0x03,0x03,0x04,0x04,0x05,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,
0x0D,0x0E,0x0E,0x0F,0x0F,0x0F,0x0F,0x0E,0x0E,0x0D,0x0D,0x0D,0x0C,0x0C,0x0B,0x00,

};
//*****************************************************************************
FLASH char chg[]=
{
0x0F,0x0E,0x0E,0x0E,0x0D,0x0D,0x0C,0x0C,0x0C,0x0B,0x0B,0x0B,0x0A,0x0A,0x0A,0x0A,
0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x09,0x09,0x09,0x08,0x08,0x07,0x07,
0x06,0x06,0x06,0x05,0x05,0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
0x05,0x05,0x05,0x05,0x04,0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x06,0x07,0x07,0x00,
0x0F,0x0E,0x0E,0x0E,0x0D,0x0D,0x0C,0x0C,0x0C,0x0B,0x0B,0x0B,0x0A,0x0A,0x0A,0x0A,
0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x09,0x09,0x09,0x08,0x08,0x07,0x07,
0x06,0x06,0x06,0x05,0x05,0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
0x05,0x05,0x05,0x05,0x04,0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x06,0x07,0x07,0x00,
0x0F,0x0E,0x0E,0x0E,0x0D,0x0D,0x0C,0x0C,0x0C,0x0B,0x0B,0x0B,0x0A,0x0A,0x0A,0x0A,
0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x09,0x09,0x09,0x08,0x08,0x07,0x07,
0x06,0x06,0x06,0x05,0x05,0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
0x05,0x05,0x05,0x05,0x04,0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x06,0x07,0x07,0x00,
0x0F,0x0E,0x0E,0x0E,0x0D,0x0D,0x0C,0x0C,0x0C,0x0B,0x0B,0x0B,0x0A,0x0A,0x0A,0x0A,
0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x09,0x09,0x09,0x08,0x08,0x07,0x07,
0x06,0x06,0x06,0x05,0x05,0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
0x05,0x05,0x05,0x05,0x04,0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x06,0x07,0x07,0x00,

};
//*************************************
uchar prog_char chb[]=
{
0x02,0x02,0x02,0x02,0x02,0x02,0x03,0x03,0x03,0x03,0x04,0x04,0x05,0x05,0x06,0x06,
0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0E,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0E,0x0D,0x0B,0x0A,0x08,0x07,0x06,0x05,0x04,0x03,
0x02,0x02,0x02,0x02,0x02,0x02,0x03,0x03,0x03,0x03,0x04,0x04,0x05,0x05,0x06,0x06,
0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0E,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0E,0x0D,0x0B,0x0A,0x08,0x07,0x06,0x05,0x04,0x03,
0x02,0x02,0x02,0x02,0x02,0x02,0x03,0x03,0x03,0x03,0x04,0x04,0x05,0x05,0x06,0x06,
0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0E,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0E,0x0D,0x0B,0x0A,0x08,0x07,0x06,0x05,0x04,0x03,
0x02,0x02,0x02,0x02,0x02,0x02,0x03,0x03,0x03,0x03,0x04,0x04,0x05,0x05,0x06,0x06,
0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0E,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0E,0x0D,0x0B,0x0A,0x08,0x07,0x06,0x05,0x04,0x03,

};
//******************************
uchar prog_char x64cr[]=
{
15,11,7,3,0,0,0,0,
15,11,7,3,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,11,7,3,0,0,0,0,
15,11,7,3,0,0,0,0,

};
//********************
uchar prog_char x64cg[]=
{
0,0,0,0,0,0,0,0,
15,11,7,3,0,0,0,0,
15,11,7,3,0,0,0,0,
15,11,7,3,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
15,11,7,3,0,0,0,0,
};
//*************************************
uchar prog_char 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,
15,11,7,3,0,0,0,0,
15,11,7,3,0,0,0,0,
15,11,7,3,0,0,0,0,
15,11,7,3,0,0,0,0,
};
//******************************
uchar prog_char x7cr[]=
{
15,
15,
0,
0,
0,
15,
15,

};
//********************
uchar prog_char x7cg[]=
{
0,
15,
15,
15,
0,
0,
15,
};
//*************************************
uchar prog_char x7cb[]=
{
0,
0,
0,
15,
15,
15,
15,
};

//**************************************************************
char 	pwm,rl,mode;
char 	pointer;
char 	dis_buf[96];
#define	roe PB3
#define	goe PB4
#define	boe PB5
#define	da PB0
#define	sclk PB1
#define	lat PB2
//*****************************************
//	 延时
//**************************************
void delay(uint tim)
{
uint i;
while(tim!=0)
	{
	for(i=0;i<500;i++);
	tim--;
	}
}
//-----------------------
void	cler(void)
{
uchar i,j;
j=0;
for(i=0;i<96;i++)
	dis_buf[i]=~j;
}
//*****************************************
void	pwm_oe(uchar r,g,b)
{
uchar i;
for(i=1;i<255;i++)
	{
	roe=(r<i)?1:0;
	goe=(g<i)?1:0;
	boe=(b<i)?1:0;
	}
}

//********************************
// 多彩流动
//***************************************
void	qcld(uchar ts,uchar code *rp,uchar code *gp,uchar code *bp)
{
uchar i,j;
for(j=0;j<ts;j++)
	{
	for(i=0;i<7;i++)
		dis_buf[i]=dis_buf[i+1];
		dis_buf[7]=dis_buf[24];
	for(i=8;i<15;i++)
		dis_buf[i]=dis_buf[i+1];
		dis_buf[15]=dis_buf[32];
	for(i=16;i<23;i++)
		dis_buf[i]=dis_buf[i+1];
		dis_buf[23]=dis_buf[40];

	for(i=24;i<31;i++)
		dis_buf[i]=dis_buf[i+1];
		dis_buf[31]=dis_buf[48];
	for(i=32;i<39;i++)
		dis_buf[i]=dis_buf[i+1];
		dis_buf[39]=dis_buf[56];
	for(i=40;i<47;i++)
		dis_buf[i]=dis_buf[i+1];
		dis_buf[47]=dis_buf[64];

	for(i=48;i<55;i++)
		dis_buf[i]=dis_buf[i+1];
		dis_buf[55]=dis_buf[72];
	for(i=56;i<63;i++)
		dis_buf[i]=dis_buf[i+1];
		dis_buf[63]=dis_buf[80];
	for(i=64;i<71;i++)
		dis_buf[i]=dis_buf[i+1];
		dis_buf[71]=dis_buf[88];

	for(i=72;i<79;i++)
		dis_buf[i]=dis_buf[i+1];
		dis_buf[79]=*rp++;
	for(i=80;i<87;i++)
		dis_buf[i]=dis_buf[i+1];
		dis_buf[87]=*gp++;
	for(i=88;i<95;i++)
		dis_buf[i]=dis_buf[i+1];
		dis_buf[95]=*bp++;

	delay(60);
	}

}
//************************************
//七彩渐变
//**********************************

void	qcjb(uint speed)
{
uchar i,j;
for(i=0;i<96;i++)
	{
	da=1;
	sclk=1;
	sclk=0;
	}
lat=0;
lat=1;
for(i=0;i<255;i++)
	for(j=0;j<speed;j++)
	pwm_oe(i,0,0);
for(i=0;i<255;i++)
	for(j=0;j<speed;j++)
	pwm_oe(255,i,0);//y
for(i=255;i>0;i--)
	for(j=0;j<speed;j++)
	pwm_oe(i,255,0);//g
for(i=0;i<255;i++)
	for(j=0;j<speed;j++)
	pwm_oe(0,255,i);//q
for(i=255;i>0;i--)
	for(j=0;j<speed;j++)
	pwm_oe(0,i,255);//b
for(i=0;i<255;i++)
	for(j=0;j<speed;j++)
	pwm_oe(i,0,255);//z
for(i=0;i<255;i++)
	for(j=0;j<speed;j++)
	pwm_oe(255,i,255);//b

}


//**************************************
void pwmout(void)
{
uchar i;
for(i=0;i<96;i++)
	{
	da=(bit)(dis_buf[i]&rl);
	sclk=0;
	sclk=1;
	}
lat=0;
lat=1;
}

//*******************************************
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

int main(void)
{
	//{{WIZARD_MAP(Initialization)
	io_init();
	timers_init();
	//}}WIZARD_MAP(Initialization)
	// TODO: Add extra initialization here
	
	//{{WIZARD_MAP(Global interrupt)
	//}}WIZARD_MAP(Global interrupt)
	while(1)
	{
	EA=0;
	qcjb(2);
	EA=1;
	roe=0;
	goe=0;
	boe=0;
	
	cler();
	qcld(255,chr,chg,chb);
	qcld(255,chr,chg,chb);
	qcld(56,x64cr,x64cg,x64cb);
	qcld(56,x64cr,x64cg,x64cb);
	for(i=0;i<12;i++)
		qcld(7,x7cr,x7cg,x7cb);

	}
//	while(1)
//	{
		// TODO: Add your code here
		
//	}
}

⌨️ 快捷键说明

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