我用G2和12864(ST7920)串行连接,准备做画曲线的程序,但是一直卡在读不出LCD中的数据,从网上找,也很少有这方面的资料。所以求助各位大神了。
读程序如下:
uchar read_lcd()
{
uchar i,data;
data =0;
LCD_SCLK0; //en=1;
LCD_SID1; //wr=1
for(i=0;i<5;i++) //数据时序
{
LCD_SCLK1;
delay_us(50);
LCD_SCLK0;
delay_us(50);
}
LCD_SID1; //wr=1
LCD_SCLK1; //en=1
delay_us(50);
LCD_SCLK0; //en=0
delay_us(50);
LCD_SID1;
LCD_SCLK1;
delay_us(50);
LCD_SCLK0;
delay_us(50);
LCD_SID0;
LCD_SCLK1;
delay_us(50);
LCD_SCLK0;
delay_us(50);
P2DIR &= 0xef;
for(i=0;i<4;i++)
{
data<<=1;
LCD_SCLK1;
if(LCD_SID_READ) data++;
LCD_SCLK0;
}
//再接受4个连续'0'
for(i=0;i<4;i++)
{
delay_us(1);
LCD_SCLK1;
delay_us(1);
LCD_SCLK0;
}
//接受低4位
for(i=0;i<4;i++)
{
data<<=1;
LCD_SCLK1;
if(LCD_SID_READ) data++;
LCD_SCLK0;
}
//再接受4个连续'0'
for(i=0;i<4;i++)
{
delay_us(1);
LCD_SCLK1;
delay_us(1);
LCD_SCLK0;
}
P2DIR |= BIT4;
return data;
} |