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

📄 einttest.c

📁 做显示时测试用,可以单个点的显示屏上显示字或其它的图形.
💻 C
字号:
/*****************************************************************************
 *   einttest.c:  main C entry file for Philips LPC214x Family Microprocessors
 *
 *   Copyright(C) 2006, Philips Semiconductor
 *   All rights reserved.
 *
 *   History
 *   2005.10.01  ver 1.00    Prelimnary version, first Release
 *
******************************************************************************/
#include "LPC214x.H"                        /* LPC21xx definitions */
#include "type.h"
#include "irq.h"
#include "extint.h"
#include "timer.h"
#include "target.h"
#include "uart.h"
#include "dac.h"
#include "PCB.h"

WORD LCD_MAP_Buff1[64]=
{

0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,
0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,
0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,
0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,
0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,
0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,
0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,
0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF,0x3FF

/*
0x3FF,0x2A0,0x260,0x240,0x230,0x220,0x210,0x000,
0x3FF,0x2A0,0x260,0x240,0x230,0x220,0x210,0x000,
0x3FF,0x2A0,0x260,0x240,0x230,0x220,0x210,0x000,
0x3FF,0x2A0,0x260,0x240,0x230,0x220,0x210,0x000,
0x3FF,0x2A0,0x260,0x240,0x230,0x220,0x210,0x000,
0x3FF,0x2A0,0x260,0x240,0x230,0x220,0x210,0x000,
0x3FF,0x2A0,0x260,0x240,0x230,0x220,0x210,0x000,
0x3FF,0x2A0,0x260,0x240,0x230,0x220,0x210,0x000	*/
/*
0x3FF,0x2A0,0x260,0x240,0x230,0x220,0x210,0x000,
0x3FF,0x2A0,0x260,0x240,0x230,0x220,0x210,0x000,
0x3FF,0x2A0,0x260,0x240,0x230,0x220,0x210,0x000,
0x3FF,0x2A0,0x260,0x240,0x230,0x220,0x210,0x000,
0x3FF,0x2A0,0x260,0x240,0x230,0x220,0x210,0x000,
0x3FF,0x2A0,0x260,0x240,0x230,0x220,0x210,0x000,
0x3FF,0x2A0,0x260,0x240,0x230,0x220,0x210,0x000,
0x3FF,0x2A0,0x260,0x240,0x230,0x220,0x210,0x000
*/
/*
0x000,0x210,0x220,0x230,0x240,0x260,0x2A0,0x3FF,
0x000,0x210,0x220,0x230,0x240,0x260,0x2A0,0x3FF,
0x000,0x210,0x220,0x230,0x240,0x260,0x2A0,0x3FF,
0x000,0x210,0x220,0x230,0x240,0x260,0x2A0,0x3FF,
0x000,0x210,0x220,0x230,0x240,0x260,0x2A0,0x3FF,
0x000,0x210,0x220,0x230,0x240,0x260,0x2A0,0x3FF,
0x000,0x210,0x220,0x230,0x240,0x260,0x2A0,0x3FF,
0x000,0x210,0x220,0x230,0x240,0x260,0x2A0,0x3FF,

*/
/*
0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,
0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,
0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,
0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,
0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,
0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,
0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,
0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240
*/
/*
0x260,0x260,0x260,0x260,0x260,0x260,0x260,0x260,
0x260,0x260,0x260,0x260,0x260,0x260,0x260,0x260,
0x260,0x260,0x260,0x260,0x260,0x260,0x260,0x260,
0x260,0x260,0x260,0x260,0x260,0x260,0x260,0x260,
0x260,0x260,0x260,0x260,0x260,0x260,0x260,0x260,
0x260,0x260,0x260,0x260,0x260,0x260,0x260,0x260,
0x260,0x260,0x260,0x260,0x260,0x260,0x260,0x260,
0x260,0x260,0x260,0x260,0x260,0x260,0x260,0x260
*/
};
BYTE LCD_MAP_Buff[64]=
{
	0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,
	0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,
	0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,
	0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,
	0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,
	0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,
	0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,
	0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,
	
};
const unsigned char gImage[64*13] = {
//4
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

//3
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,

0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,

0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,

0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,

0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,

0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//2
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,

0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,

0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,

0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//1
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,

0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//1
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

//1
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,

0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//2
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,

0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,

0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,

0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//3
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,

0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,

0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,

0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,

0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,

0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//4
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF

/*
//5
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

//6
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF,0xFF,

0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF,0xFF,

0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF,0xFF,

0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

//7
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,

0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,

0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,

0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,

0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,

0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

//8
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
*/

};
void Delay_Nus(WORD Nus)
{
	BYTE i;
	while(Nus--)
	{
		for(i=0;i<5;i++);
	}	
}
void DelayNms(WORD Nms)
{
	WORD i;
	while(Nms--)
	{
		for(i=0;i<5000;i++);
	}
}

/******************************************************************
			LED Display 
*******************************************************************/
void SCK_Trigger(BYTE n)
{
	while(n--)
	{
		
		HC595_SCL_L;
   		HC595_SCL_H;
   	}
}

void RCK_Trigger(void)
{
	HC595_TAL_L;
	HC595_TAL_H;
}

void HC595_SDA(BYTE Val)
{
	if(Val)
	{
		HC595_SDA_H;
	}
	else
	{
		HC595_SDA_L;
	}
}

void HC595_CLR(void)
{
	HC595_SDA(0);
	SCK_Trigger(100);
}


void SysIOinit(void)
{
	//HC595 IO
	SCS = 0x03;
	PINSEL0 &= ~((3<<22)|(3<<24)|(3<<26));// 设置P0.11 P0.12 P0.13为GPIO 
	FIO0DIR|=(1<<11)|(1<<12)|(1<<13);  //设置P0.11 P0.12 P0.13为输出
	
	PINSEL0 &=~((1<<28)|(1<<30));// 设置P0.14 P0.15为GPIO	
	FIO0DIR &=~((1<<14)|(1<<15));	//设置P0.14 P0.15为输入
	//LED RGB IO
 	PINSEL0 &= ~((3<<16)|(3<<18)|(3<<20));// 设置P0.8 P0.9 P0.10为GPIO 
	FIO0DIR|=(1<<8)|(1<<9)|(1<<10);  //设置P0.11 P0.12 P0.13为输出

	FIO1DIR |= (1<<16)|(1<<24);		/* P1.16 P1.24 defined as Outputs */

	FIO0MASK &=~(((1<<11)|(1<<12)|(1<<13))/*HC595 IO*/|((1<<8)|(1<<9)|(1<<10))/*LED RGB IO*/|((1<<14)|(1<<15))/*Keyboard IO*/);

   	
	HC595_CLR();//HC595 init
	RCK_Trigger();

}

void  LCD_Frame(WORD *cp,int KEY_Val)
{
	static BYTE flag=0;
	BYTE i;

	//KEY_Val=0;
	//timer_10msFlag=1;
	//if(timer_10msFlag!=0)
	{
		//timer_10msFlag = 0;
		flag=~flag;

		if(flag!=0)
		{
			HC595_SDA(1);
			for(i=0;i<64;i++)
			{
				/*
				HC595_SDA(1);
				SCK_Trigger(1);
				HC595_SDA(0);
				SCK_Trigger(64-i-1);	
				RCK_Trigger();
				//Delay_Nus(40);
				*/

				DACout(*cp);
				cp++;
				COM_L; //COM

				SCK_Trigger(1);	
				RCK_Trigger();

				Delay_Nus(45);
				HC595_SDA(0);

			}	
			
		}
		else
		{
			HC595_SDA(1);
			for(i=0;i<64;i++)
			{
			/*
				HC595_SDA(1);
				SCK_Trigger(1);
				HC595_SDA(0);
				SCK_Trigger(64-i-1);	
				RCK_Trigger();
				//Delay_Nus(40);
			 */
				DACout(1023-(*cp));//(0);
				cp++;
				COM_H; //COM

				SCK_Trigger(1);	
				RCK_Trigger();


				Delay_Nus(45);
				HC595_SDA(0);
			}
		}
		HC595_CLR();
		RCK_Trigger();
	}
}

void printf(BYTE* BufferPtr,DWORD Length)
{
	UARTSend(BufferPtr,Length);
	DelayNms(10);
}
/****************************************************************************
**   Main Function  main()
******************************************************************************/
int main (void)
{	
	//const x __at 0x000001FC = 0x87654321;	//代码保护	
	//BYTE
	int  KEY_Val=0;
	DWORD i,j,x,COLOR;	
	BYTE str[100];

	TargetResetInit();

    init_VIC();
	UARTInit(115200);	/* baud rate setting */
    /* initialize GPIO pins as external interrupts */        
    EINTInit();
	init_timer0(INTERVAL_10MS);
	enable_timer(0);
	DACInit();
	SysIOinit();
    /****** It's an endless loop waiting for external interrupt ******/    
    /* On Keil MCB214x board, INT1 can be used to test the external interrupt */ 
	printf("硬件系统初始化完成!\n",sizeof("硬件系统初始化完成!\n")); 
	LED_R_H;
	LED_G_L;
	LED_B_H;
	//DACout(1023);
	while (1)	/* Loop forever */
    {

/*
			FIO1CLR |= (1<<16);	//turn off P1.16
			DelayNms(255);
			DelayNms(255);
			DelayNms(255);
			DelayNms(255);
			FIO1SET |= (1<<16);	//turn off P1.16
			for(i=0;i<64;i++)
			{
				LCD_MAP_Buff[i] = 0;
			}
			DelayNms(255);
			DelayNms(255);

			FIO1CLR |= (1<<16);	//turn off P1.16
			DelayNms(255);
			DelayNms(255);
			DelayNms(255);
			DelayNms(255);
			FIO1SET |= (1<<16);	//turn off P1.16
			for(i=0;i<64;i++)
			{
				LCD_MAP_Buff[i] = 0x3FF;
			}
			DelayNms(255);
			DelayNms(255);
			DelayNms(255);
			DelayNms(255);			

*/	 
		for(j=0;j<4;j++)
		{
			for(i=0;i<500000;i++)
			{
				LCD_Frame(LCD_MAP_Buff);
			}
			for(i=0;i<64;i++)
			{
				LCD_MAP_Buff[i] = ~LCD_MAP_Buff[i];
			}
		}
	   
		for(x=0;x<5;x++)
		{	for(j=0;j<9;j++)
			{
				for(i=0;i<100000;i++)
				{
					LCD_Frame(&gImage[j*64]);
				}
			}
		}

/*			
		COLOR++;
		if(COLOR>6)
		{
			COLOR=0;
		}
		switch(COLOR)
		{
			case 0:
				LED_R_L;
				LED_G_H;
				LED_B_H;
				break;
			case 1:
				LED_R_L;
				LED_G_L;
				LED_B_H;
				break;
			case 2:
				LED_R_H;
				LED_G_L;
				LED_B_H;
				break;
			case 3:
				LED_R_H;
				LED_G_L;
				LED_B_L;
				break;
			case 4:
				LED_R_H;
				LED_G_H;
				LED_B_L;
				break;
			case 5:
				LED_R_L;
				LED_G_H;
				LED_B_L;
				break;
			case 6:
				LED_R_L;
				LED_G_L;
				LED_B_L;
				break;
			default:COLOR=0; break;
		}
	  
		//LCD_Test(200,1);
		//DACout(459);//中线1.501V

											/////////////////
	*/	
	   /*	
		if((FIO0PIN&0x00004000)!=0x00004000)
		{
			DelayNms(10);
			if((FIO0PIN&0x00004000)!=0x00004000)
			{
				if(KEY_Val>=1023)
				{
					KEY_Val=1023;	
				}

				KEY_Val+=10;
				FIO1SET |= (1<<16);	//turn off P1.16
				DelayNms(200);

				for(i=0;i<64;i++)
				{
					LCD_MAP_Buff1[i]=KEY_Val;
				}
			}
			//DelayNms(50);
			FIO1CLR |= (1<<16);	//turn off P1.16
				
		}

		if((FIO0PIN&0x00008000)!=0x00008000)
		{
			DelayNms(10);
			if((FIO0PIN&0x00008000)!=0x00008000)
			{

				if(KEY_Val<=0)
				{
					KEY_Val=0;
				}

				KEY_Val-=10;
				FIO1SET |= (1<<16);	//turn off P1.16
				DelayNms(200);

				for(i=0;i<64;i++)
				{
					LCD_MAP_Buff1[i]=KEY_Val;
				}
			}

			//DelayNms(50);
			FIO1CLR |= (1<<16);	//turn off P1.16
	
		}
		*/

		/*
	 
		printf(&str[0],DEC_to_Str(KEY_Val,&str[0]));
		printf("\n",sizeof("\n"));
		DACout(KEY_Val*2+511);
		DelayNms(100);
		DACout(512-KEY_Val*2);
		DelayNms(100);
		FIO1CLR |= (1<<16);	//turn off P1.16
		*/
	 
    }

    return 0;
}

/******************************************************************************
**         ,                   End Of File
******************************************************************************/

⌨️ 快捷键说明

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