ts1926-4B 192*64的液晶点阵显示不清晰

[复制链接]
 楼主| gypsy1986 发表于 2012-4-26 10:13 | 显示全部楼层 |阅读模式
主要是刷屏都不干净!

时序:
             void write_com_Lcd(uchar8 byte, uchar8 chip)
{
TS_EN  = 0;
TS_RW = 0;
/* 选中那一块 */
if(chip == LEFT)
{
  CS_A = 0;
  CS_B = 1;
  CS_C = 1;
}else if(chip == MID)
    {
  CS_A = 1;
  CS_B = 0;
  CS_C = 1;
}else
{
  CS_A = 1;
  CS_B = 1;
  CS_C = 0;
}

TS_DI = 0;
TS_EN  = 1;
TS_DATA = byte;
_nop_();
_nop_();
_nop_();
TS_EN  = 0;
TS_RW = 1;
TS_EN = 1;
CS_A = 1;
CS_B = 1;
CS_C = 1;
}
 楼主| gypsy1986 发表于 2012-4-26 10:16 | 显示全部楼层
有大牛能帮我看一下吗?
joing1999 发表于 2012-4-26 14:49 | 显示全部楼层
把你清屏的命令发上来看看吧。
一般清得不干净可能是你清屏写得太快了。
写数据部分加点延时试试。
 楼主| gypsy1986 发表于 2012-4-26 15:03 | 显示全部楼层
:)

void clear_all_Lcd(void)
{
          uchar8 i, j, k;
        //uint8_t *p_display[3];
       
        //init_Port();

        uchar8 uc_xcoord = LCD_X;
        uchar8 uc_temp = 0;

        for(i = 0; i < 8; ++i)
        {
                /* 每次写一行 */
                for(j = 0; j < 3; ++j)  
                {
                        write_com_Lcd(ON, j);
                        write_com_Lcd(LCD_Y, j);  
                        write_com_Lcd(uc_xcoord, j);

                        for(k = 0; k < 64; ++k)
                        {
                                write_data_Lcd(0x00, j);
                                //send_serial_Data(p[i][uc_temp]);
                        }
                }                       
                uc_xcoord++;       
        }
}
 楼主| gypsy1986 发表于 2012-4-26 15:04 | 显示全部楼层
麻烦给我看看
谢谢了
joing1999 发表于 2012-4-26 15:14 | 显示全部楼层
CS没操作?
 楼主| gypsy1986 发表于 2012-4-26 15:24 | 显示全部楼层
操作了
第二个参数
 楼主| gypsy1986 发表于 2012-4-26 15:24 | 显示全部楼层
joing1999 发表于 2012-4-26 15:54 | 显示全部楼层
write_data_Lcd(0x00, j);
这个,试试连续写两次。
joing1999 发表于 2012-4-26 15:54 | 显示全部楼层
for(k = 0; k < 64; ++k)
                        {
                                write_data_Lcd(0x00, j);
                                write_data_Lcd(0x00, j);
                        }
 楼主| gypsy1986 发表于 2012-4-26 18:40 | 显示全部楼层
好的
谢谢了
 楼主| gypsy1986 发表于 2012-4-27 11:10 | 显示全部楼层
怎么还是不行,刚才将0x00改为0xFF 结果全屏都亮了。可是一清屏就不行了?
有谁用过这屏,求助!
 楼主| gypsy1986 发表于 2012-4-27 11:16 | 显示全部楼层
自己顶一下自己!
 楼主| gypsy1986 发表于 2012-4-27 11:30 | 显示全部楼层
谢了, joing1999
joing1999 发表于 2012-4-28 10:53 | 显示全部楼层
/*--------------写点阵------------------*/
void wrlattice (uchar data1,uchar data2)
{
  uchar i,j;
  cs1=0;cs2=0;cs3=0;
  wr_lcd(comm,disp_on);
  for(j=0;j<8;j++)
  {
    wr_lcd (comm,disp_x+j);
    wr_lcd (comm,disp_z);
    wr_lcd (comm,disp_y);
    for(i=0;i<32;i++)
    {
      wr_lcd (data,data1);
      wr_lcd (data,data2);
    }
  }
}
我写的子函数,data1 data2 赋值0X00就是清屏了。
#define disp_x     0xb8
#define disp_z     0xc0
#define disp_y     0x40
你直接套用试试行不行,如果不行。那把写数据的子函数加点延时,可能你单片机太快了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

10

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部