打印

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

[复制链接]
1660|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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++;       
        }
}

使用特权

评论回复
5
gypsy1986|  楼主 | 2012-4-26 15:04 | 只看该作者
麻烦给我看看
谢谢了

使用特权

评论回复
6
joing1999| | 2012-4-26 15:14 | 只看该作者
CS没操作?

使用特权

评论回复
7
gypsy1986|  楼主 | 2012-4-26 15:24 | 只看该作者
操作了
第二个参数

使用特权

评论回复
8
gypsy1986|  楼主 | 2012-4-26 15:24 | 只看该作者
chip

使用特权

评论回复
9
joing1999| | 2012-4-26 15:54 | 只看该作者
write_data_Lcd(0x00, j);
这个,试试连续写两次。

使用特权

评论回复
10
joing1999| | 2012-4-26 15:54 | 只看该作者
for(k = 0; k < 64; ++k)
                        {
                                write_data_Lcd(0x00, j);
                                write_data_Lcd(0x00, j);
                        }

使用特权

评论回复
11
gypsy1986|  楼主 | 2012-4-26 18:40 | 只看该作者
好的
谢谢了

使用特权

评论回复
12
gypsy1986|  楼主 | 2012-4-27 11:10 | 只看该作者
怎么还是不行,刚才将0x00改为0xFF 结果全屏都亮了。可是一清屏就不行了?
有谁用过这屏,求助!

使用特权

评论回复
13
gypsy1986|  楼主 | 2012-4-27 11:16 | 只看该作者
自己顶一下自己!

使用特权

评论回复
14
gypsy1986|  楼主 | 2012-4-27 11:30 | 只看该作者
谢了, joing1999

使用特权

评论回复
15
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

粉丝