📄 main.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 + -