液晶顯示源程序代碼及相關(guān)注釋
E=0;
}
/*帶忙檢測(cè)的寫字符子程序
*/
void LcdWd(uchar c)
{ WaitIdle();
LcdWdn(c);
}
/*檢測(cè)忙信號(hào)的送控制字子程序*/
void LcdWcn(uchar c)
{ RS=0;
RW=0;
DPORT=c;
E=1;
_nop_();
E=0;
}
/*檢測(cè)忙信號(hào)的送控制字子程序*/
void LcdWc(uchar c)
{ WaitIdle();
LcdWcn(c);
}
void LcdPos()
{ uchar tmp;
Xpos=0x0f; //16xx型液晶的范圍是0~15
Ypos=0x01; //Y的范圍是0~1
tmp=Xpos;
if(Ypos==1)
{ tmp+=0x40;
}
tmp|=0x80;
LcdWc(tmp);
}
/*LCD的復(fù)位程序
*/
void RstLcd()
{ mDelay(15); //延時(shí)15ms
LcdWcn(0x38);
mDelay(5);
LcdWcn(0x38);
mDelay(5);
LcdWcn(0x38);
LcdWc(0x38);
LcdWc(0x08);
LcdWc(0x01);
LcdWc(0x06);
LcdWc(0x0c);
}
void WriteString(char s[])
{ uchar pS=0;
for(;;)
{ WriteChar(s[pS]);
pS++;
if(s[pS]==0)
break;
if(++Xpos>=15) //每行最多顯示16個(gè)字符
break;
}
}
void main()
{ uchar s1[]=Hellow World!;
RstLcd(); //復(fù)位LCD
ClrLcd();
SetCur(CurFlash); //光標(biāo)顯示且閃爍
Xpos=2;
Ypos=1;
WriteString(s1);
for(;;)
{;}
}
本文引用地址:http://cafeforensic.com/article/168165.htm
評(píng)論