?? d.c
字號(hào):
#include<reg51.h>
#include<intrins.h>
sbit RSPIN = P2^6;
sbit RWPIN = P2^5;
sbit EPIN = P2^7;
sbit E=P3^4;//使數(shù)碼管高阻
unsigned char XPOS,YPOS;
void delay(unsigned int t)
{ unsigned int i,j;
for(i=0;i<t;i++)
for(j=0;j<10;j++);
}
void lcdwaitidle(void) //忙檢查
{ P0=0xff; //讀作準(zhǔn)備
RSPIN=0;
RWPIN=1;
EPIN=1;
while((P0&0x80)==0x80);
EPIN=0;
}
void lcdwcn(unsigned char c)//確定光標(biāo)位置,由參數(shù)C值決定 及初始化
{ RSPIN=0;
RWPIN=0;
P0=c;
EPIN=1;
_nop_(); //空操作
EPIN=0;
}
void lcdwc(unsigned char c)
{ lcdwaitidle();
lcdwcn(c);
}
void lcdwd(unsigned char d)
{ lcdwaitidle();
RSPIN=1;
RWPIN=0; //送要顯示的數(shù)據(jù)
P0=d;
EPIN=1;
_nop_();
EPIN=0;
}
void lcdpos(void)
{ XPOS&=0x0f; //xp0s=xpos&0x0f
YPOS&=0x03;
if(YPOS==0x00)
lcdwc(XPOS|0x80);
else if(YPOS==0x01)
lcdwc((XPOS+0x40)|0x80); //第一行與第二行地址相差40H
}
void lcdreset() //復(fù)位
{ delay(150);lcdwcn(0x38);
delay(50); lcdwcn(0x38);
delay(50); lcdwcn(0x38);
lcdwc(0x38);
lcdwc(0x08);
lcdwc(0x01);
lcdwc(0x06);
lcdwc(0x0c);
}
/*v oid lcdfill(unsigned char n) //全部顯示同一個(gè)字符
{
for(YPOS=0;YPOS<2;YPOS++) //兩行
for(XPOS=0;XPOS<16;XPOS++)//一行16個(gè)字符
{ lcdpos();
lcdwd(n); }
}*/
/*void lcdwda(unsigned char x,unsigned char y,unsigned char *s)//X,Y顯示的開(kāi)始位置 S表示
{ YPOS=y;
for(XPOS=x;XPOS<16;XPOS++)
{ lcdpos(); //確定顯示位置
lcdwd(*s); //顯示數(shù)據(jù)
s++;
delay(400);
}
}*/
//讀狀態(tài)
/*unsigned char ReadStatusLCM(void)
{
P0= 0xFF;
RSPIN = 0;
RWPIN = 1;
EPIN = 0;
EPIN = 0;
EPIN = 1;
while (P0 & 0x80); //檢測(cè)忙信號(hào)
return(P0);
} */
void main()
{
unsigned int i=0;
EPIN=0;
RD=0;
WR=1;
E=1;
lcdreset();
XPOS=0;YPOS=0;
lcdpos();
delay(150);
lcdwd(0xa0);
lcdwd(0x57); //顯示一個(gè)Welcome!
lcdwd(0x65);
lcdwd(0x6c);
lcdwd(0x63);
lcdwd(0x6f);
lcdwd(0x6d);
lcdwd(0x65);
lcdwd(0x21);
lcdwc(0x02);
lcdwc(0x05);
delay(500);
while(1)
{ i++;
switch (i)
{
case 15:
{ // i=15;
lcdreset();
lcdwc(0x00);
delay(150);
XPOS=30;YPOS=1;
lcdpos();
lcdwd(0xa0);
lcdwd(0x57); //顯示一個(gè)Welcome!
lcdwd(0x65);
lcdwd(0x6c);
lcdwd(0x63);
lcdwd(0x6f);
lcdwd(0x6d);
lcdwd(0x65);
lcdwd(0x21);
// lcdwc(0x02);
lcdwc(0x07);
delay(1000);
break;
}
case 30:
{ i=0;
lcdreset();
XPOS=0;YPOS=0;
lcdpos();
delay(150);
// lcdwc(0x00);
delay(150);
lcdwd(0xa0);
lcdwd(0x57); //顯示一個(gè)Welcome!
lcdwd(0x65);
lcdwd(0x6c);
lcdwd(0x63);
lcdwd(0x6f);
lcdwd(0x6d);
lcdwd(0x65);
lcdwd(0x21);
lcdwc(0x02);
lcdwc(0x05);
delay(1000);
break;
}
default:
{ lcdwd(0xa0);
delay(1000);
break;
}
}}}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -