我有源程序,你自己看看,自己画图吧
//***********************************************
//12864 lcd液晶显示
//液晶显示程序:可以显示汉字、字符、数字
//作者:练祥华
//***********************************************
//写指令代码(左)
void PRL0(unsigned char COM)
{
CLRBIT(PORTG,CSA);
SETBIT(PORTG,CSB);
SETBIT(PORTG,CSC);
CLRBIT(PORTF,RS);
SETBIT(PORTF,RW);
DDRA=0x00; // portA as input
PORTA=0XFF;
do
{
SETBIT(PORTF,E);
del();
CLRBIT(PORTF,E);
}
while (PINA&0x80);
CLRBIT(PORTF,RW);
DDRA=0XFF;
PORTA=COM;
SETBIT(PORTF,E);
del();
CLRBIT(PORTF,E);
}
//写数据(左)
void PRL1(unsigned char DAT)
{
CLRBIT(PORTG,CSA);
SETBIT(PORTG,CSB);
SETBIT(PORTG,CSC);
CLRBIT(PORTF,RS);
SETBIT(PORTF,RW);
DDRA=0x00; // portA as input
PORTA=0XFF;
do
{
SETBIT(PORTF,E);
del();
CLRBIT(PORTF,E);
}
while (PINA&0x80);
SETBIT(PORTF,RS);
CLRBIT(PORTF,RW);
DDRA=0XFF;
PORTA=DAT;
SETBIT(PORTF,E);
del();
CLRBIT(PORTF,E);
}
//写指令代码(中)
void PRM0(unsigned char COM)
{
SETBIT(PORTG,CSA);
CLRBIT(PORTG,CSB);
SETBIT(PORTG,CSC);
CLRBIT(PORTF,RS);
SETBIT(PORTF,RW);
DDRA=0x00; // portA as input
PORTA=0XFF;
do
{
SETBIT(PORTF,E);
del();
CLRBIT(PORTF,E);
}
while (PINA&0x80);
CLRBIT(PORTF,RW);
DDRA=0XFF;
PORTA=COM;
SETBIT(PORTF,E);
del();
CLRBIT(PORTF,E);
}
//写数据(中)
void PRM1(unsigned char DAT)
{
SETBIT(PORTG,CSA);
CLRBIT(PORTG,CSB);
SETBIT(PORTG,CSC);
CLRBIT(PORTF,RS);
SETBIT(PORTF,RW);
DDRA=0x00; // portA as input
PORTA=0XFF;
do
{
SETBIT(PORTF,E);
del();
CLRBIT(PORTF,E);
}
while (PINA&0x80);
SETBIT(PORTF,RS);
CLRBIT(PORTF,RW);
DDRA=0XFF;
PORTA=DAT;
SETBIT(PORTF,E);
del();
CLRBIT(PORTF,E);
}
//写指令代码(右)
void PRR0(unsigned char COM)
{
SETBIT(PORTG,CSA);
SETBIT(PORTG,CSB);
CLRBIT(PORTG,CSC);
CLRBIT(PORTF,RS);
SETBIT(PORTF,RW);
DDRA=0x00; // portA as input
PORTA=0XFF;
do
{
SETBIT(PORTF,E);
del();
CLRBIT(PORTF,E);
}
while (PINA&0x80);
CLRBIT(PORTF,RW);
DDRA=0XFF;
PORTA=COM;
SETBIT(PORTF,E);
del();
CLRBIT(PORTF,E);
}
//写数据(右)
void PRR1(unsigned char DAT)
{
SETBIT(PORTG,CSA);
SETBIT(PORTG,CSB);
CLRBIT(PORTG,CSC);
CLRBIT(PORTF,RS);
SETBIT(PORTF,RW);
DDRA=0x00; // portA as input
PORTA=0XFF;
do
{
SETBIT(PORTF,E);
del();
CLRBIT(PORTF,E);
}
while (PINA&0x80);
SETBIT(PORTF,RS);
CLRBIT(PORTF,RW);
DDRA=0XFF;
PORTA=DAT;
SETBIT(PORTF,E);
del();
CLRBIT(PORTF,E);
}
void LCD_init()
{
PRL0(0X0C);
PRM0(0X0C);
PRR0(0X0C);
del();
PRL0(0X3F);
PRM0(0X3F);
PRR0(0X3F);
}
void LCD_clear()
{
unsigned char i,j,k,l;
// k=0;
for(i=0;i