PIC LCD1602顯示
__CONFIG(1,XT) ; //晶振為外部4M
__CONFIG(2,WDTDIS) ; //看門狗關(guān)閉
__CONFIG(4,LVPDIS) ; //禁止低電壓編程
#define uint unsigned int
#define uchar unsigned char
#define en RB3
#define rw RB4
#define rs RB5
#define D PORTD
void delayms(uint x)
{
int i,j;
for(i=0;i<=110;i++)
for(j=0;j<=x;j++);
}
void write_com(uchar com)
{
rs=0;
rw=0;
delayms(5);
en=1;
delayms(5);
D=com;
en=0;
delayms(5);
}
void write_dat(uchar dat)
{
rs=1;
rw=0;
delayms(5);
en=1;
delayms(5);
D=dat;
en=0;
delayms(5);
}
void init()
{
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
write_com(0x80+1);
write_dat(I);
write_com(0x80+3);
write_dat(a);
write_com(0x80+4);
write_dat(m);
write_com(0x80+6);
write_dat(I);
write_com(0x80+7);
write_dat(r);
write_com(0x80+8);
write_dat(o);
write_com(0x80+9);
write_dat(n);
write_com(0x80+11);
write_dat(m);
write_com(0x80+12);
write_dat(a);
write_com(0x80+13);
write_dat(n);
}
void main(void)
{
ADCON1=0X06; //所有IO均為數(shù)字口,模擬量輸入禁止
TRISB=0B11000111;
TRISD=0x00;
init();
while(1)
{
}
}
LCD1602使用的方法都是一樣的,不管在51單片機(jī),還是PIC,就簡單帶過
PS:有一點(diǎn)不一樣,就是在51中,可以利用編譯器在一個(gè)位置之后直接寫入一連串字符,但是PIC不行,必須一個(gè)一個(gè)寫入,并且一個(gè)一個(gè)標(biāo)注好索要的顯示位置
評(píng)論