一直卡在读不出LCD中的数据

2019-07-21 20:16发布

用G2和12864(ST7920)串行连接,准备做画曲线的程序,但是一直卡在读不出LCD中的数据
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
liliang9554
1楼-- · 2019-07-22 02:08
 精彩回答 2  元偷偷看……
wyjie
2楼-- · 2019-07-22 03:13

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;
}
zhaoxqi
3楼-- · 2019-07-22 04:53

这个比较简单的,网上有人发过这样的例程,你读不出7920的数据,很有可能是时序不对
zhanghqi
4楼-- · 2019-07-22 05:47
,楼主要仔细看一下7920的时序,把软件延时改改吧
jlyuan
5楼-- · 2019-07-22 08:40
时序可能有问题,读写位的方向很重要。
dengdc
6楼-- · 2019-07-22 08:41
 精彩回答 2  元偷偷看……

一周热门 更多>