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

📄 main.c

📁 philips ARM7 lpc2000系列 工程模板. 省去编写启动代码的麻烦。
💻 C
字号:
#include  "config.h"
				
#define  BEEP		1<<27
#define  KEY     	(IO0PIN&(1<<8))			//开始按钮


#define 	_RST 		1<<19
#define 	_CS			1<<20
#define 	RS			1<<21
#define 	_WR			1<<22
#define 	_RD			1<<23

#define 	DB0 		1<<24
#define 	DB1 		1<<25
#define 	DB2 		1<<26
#define 	DB3 		1<<27
#define 	DB4 		1<<28
#define 	DB5 		1<<29
#define 	DB6 		1<<30
#define 	DB7 		1<<31
void delay(uint16 t)
{
	uint16 i,j;
	for(j=0;j<t;j++);
		for(i=0;i<100;i++);
	
}
void  DelayMS(uint32  dly)
{  uint32  i;
   for(; dly>0; dly--) 
   for(i=0; i<5000; i++);
}

void Writebyte(uint8 byte)
{
   uint32 temp1=0x00000000,temp2=0x00000000;
    if (byte&0x01)
       temp1|=DB0;
    else
       temp2|=DB0;
    if (byte&0x02)
       temp1|=DB1;
    else
       temp2|=DB1;
    if (byte&0x04)
       temp1|=DB2;
    else
       temp2|=DB2;
    if (byte&0x08)
       temp1|=DB3;
    else 
       temp2|=DB3;
    if (byte&0x10)
       temp1|=DB4;
    else
       temp2|=DB4;
    if (byte&0x20)
       temp1|=DB5;
    else 
       temp2|=DB5;
    if(byte&0x40)
       temp1|=DB6;
    else
       temp2|=DB6;
    if (byte&0x80)
       temp1|=DB7;
    else 
       temp2|=DB7;
       IO1SET=temp1;
       IO1CLR=temp2;
	
}

void CmdWrite(uint8 cmdreg,uint8 cmddata )
{

	delay(2);
	Writebyte(cmdreg);
	IO1CLR=_CS; 
	IO1SET=_RD; 
	IO1CLR=RS;  
	IO1CLR=_WR; 
	delay(1);
	IO1SET=_WR;
	delay(1);
	IO1SET=RS;
	IO1SET=_CS;
	delay(1);
	Writebyte(cmddata);
	IO1CLR=_CS;
	IO1SET=_RD;
	IO1CLR=RS;
    IO1CLR=_WR;
	delay(1);
	IO1SET=_WR;
	delay(1);
	IO1SET=RS;
	IO1SET=_CS;
}

void DataWrite(uint8 wrdata)
{
	delay(2);
	IO1SET=_RD;
	IO1SET=_WR;
	IO1SET=RS;
	Writebyte(wrdata);
	IO1CLR=_CS;
	IO1CLR=_WR;
	delay(1);
	IO1SET=_WR;
	delay(1);
	IO1CLR=RS;
	IO1SET=_CS;
}


void Printstr(char *pstr)
{ 
	while(*pstr>0)
	{	
		DataWrite(*pstr);
		pstr++;
		delay(50);
	}
}
void FullScreenFill(uint8 fill_data)
{
	uint8 i,j;
	CmdWrite(0x60,0x00);
	CmdWrite(0x70,0x00);
	for(i=0;i<24;i++)
		for(j=0;j<128;j++)
			DataWrite(fill_data);
}
void LCD_Initial()
{
	IO1SET=_RST;//_RST=0;			   //复位
	delay(1000);
	IO1CLR=_RST;//_RST=1;
	delay(400);		   
	CmdWrite(0x20,0x17);//设置工作视窗位置 right
	CmdWrite(0x30,0x7f);//bottom
	CmdWrite(0x40,0x00);//left
	CmdWrite(0x50,0x00);//top
	
	CmdWrite(0x21,0x17);//设置显示视窗位置	right
	CmdWrite(0x31,0x7f);//bottom
	CmdWrite(0x41,0x00);//left
	CmdWrite(0x51,0x00);//top

	CmdWrite(0x90,0x0d);//移位时钟
	CmdWrite(0xf0,0xa0);//简体中文,
	CmdWrite(0x00,0xcd);//文本模式,显示开
	CmdWrite(0x11,0x00);//光标高度,

}

char *str=" 阳光是如此耀眼,整个世界白茫茫一片,人潮在身边流动,面孔却个个模糊.我行走在大街上,,..QWQW!@!";
int  main(void)
{	
	 PINSEL0 = 0x00000000;					// 设置管脚连接GPIO
	 PINSEL1 = 0x00000000;
	 PINSEL2 = 0x00000000;
	 IO0DIR = BEEP;	//设置I/O为输出
	 IO0SET = BEEP|KEY;
	 IO1DIR = 0xFFFFFFFF;
	 IO1SET = 0xFFFFFFFF; 


	LCD_Initial();	 			//初始化
	CmdWrite(0x12,0x91);		//选择PAGE1进行读写   0xa2是选择PAGE2 ,0x91是选择PAGE1
	CmdWrite(0x00,0xcd);		//文本模式,显示开 	   0xc5 是图形模式,0xcd是文本模式
	FullScreenFill(0x00);		//清屏
	CmdWrite(0x60,0x00);		//定义X轴光标
	CmdWrite(0x70,0x00);		//定义Y轴光标
    Printstr(str);
    
    CmdWrite(0x60,0x00);
    CmdWrite(0x70,0x32);		//定义Y轴光标
    CmdWrite(0xf0,0xa4);
	Printstr("dfddfdfd");
	
	while(KEY!=0);
	while(1)
	{	IO0SET=BEEP;
		DelayMS(1000);
		IO0CLR=BEEP;
		DelayMS(1000);
	}

return(0);
}

⌨️ 快捷键说明

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