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

📄 main.c

📁 ARM7(LPC2124)学习的一些例程
💻 C
字号:
#include  <LPC21XX.H>

#define rs (1<<8)  //rs=P0.8
#define rw (1<<9)  //rw=P0.9
#define en (1<<10) //en=P0.10
#define busy (1<<7)//busy=P0.7

typedef unsigned char uint8; 

uint8 ledDown[]={"LED down!-neoic"};
uint8 ledUp[]={"LED up!-neoic"};

void waitLCD()					/*等待LCD*/
{
	IO0DIR=0xf00;
	while(1)
	{
		IO0CLR=rs;
		IO0SET=rw;
		IO0SET=en;
		if(!(IO0PIN & busy))break;
		IO0CLR = en;
	}
	IO0DIR=0xfff;
}
void lcdOp(uint8 dat)					/*送LCD控制码*/
{
	waitLCD();
	IO0CLR=rs;		
	IO0CLR=rw;
	IO0CLR=0xff;	
	IO0SET=dat;		
	IO0SET=en;
	IO0CLR=en;
}
void lcdData(uint8 dat)					/*送LCD显示数据*/	
{
	waitLCD();
	IO0SET=rs;
	IO0CLR=rw;
	IO0CLR=0xff;	
	IO0SET=dat;		
	IO0SET=en;
	IO0CLR=en;
}
void lcdInit(void)					/*初始化LCD,DataSheet里有建议的初始化代码*/
{
	/* LCD配置为两行,5*7字体 */
	lcdOp(0x38);
	lcdOp(0x38);
	lcdOp(0x06);			
	lcdOp(0x0E);	
	lcdOp(0x01);
	/* LCD配置为一行,5*10字体
		lcdOp(0x34);
		lcdOp(0x34);
		lcdOp(0x06);			
		lcdOp(0x0E);	
		lcdOp(0x01);
 	*/	
}
void lcdDisplay(uint8 addr,uint8 *p)					/*LCD显示字符串*/
{
	lcdOp(addr);
	while(*p !='\0'){
		lcdData(*(p++));
	}
}
void lcdClear(void)					/*LCD清屏*/
{
	lcdOp(0x01);
}
void delay (void)  {                         
  unsigned volatile long i,j;
  for(i=0;i<60000;i++)
  for(j=0;j<10;j++)
  ;
}
int main(void)
{   
    lcdInit();			/*初始化LCD显示*/
	IO0DIR=0xfff;		//设置为输出口
	IO0CLR=0xfff;
	  while (1)  {
	  	IO0CLR = 0x000800;
		lcdDisplay(0x80,ledUp); //在第一行显示ledUp消息
		delay();
		lcdClear();
	  	IO0SET = 0x000800;
		lcdDisplay(0x80,ledDown); //在第二行显示ledDown消息
		delay();
		lcdClear();
	  }
	  return 0;	
}

⌨️ 快捷键说明

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