打印

大家帮我解决一下LCD1602的问题!!!

[复制链接]
3106|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
songning1991|  楼主 | 2013-4-20 14:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 songning1991 于 2013-4-20 16:11 编辑

也清屏了!然后送的数,但是就是不能够显示,就是图片的这种情况,谁能帮我解决一下呀   在线等!!!!QQ83379246

5.png (5.03 KB )

5.png

1.png (106.09 KB )

1.png

6.png (10.48 KB )

6.png

2.png (5.55 KB )

2.png

3.png (16.77 KB )

3.png

4.png (19.16 KB )

4.png

相关帖子

沙发
Cheribat| | 2013-4-20 16:04 | 只看该作者
通常出现这种情况的原因是:你的指令不对

使用特权

评论回复
板凳
Cheribat| | 2013-4-20 16:04 | 只看该作者
你用的什么控制器 可以把代码贴上来 大家帮你看一下

使用特权

评论回复
地板
songning1991|  楼主 | 2013-4-20 16:12 | 只看该作者
Cheribat 发表于 2013-4-20 16:04
你用的什么控制器 可以把代码贴上来 大家帮你看一下

你好我把代码贴上来了!你有时间来看下呗?  谢谢额!!

使用特权

评论回复
5
NICKY99| | 2013-4-20 16:33 | 只看该作者
/********************************************************************/
//上电复位
/********************************************************************/
void LCD_Reset(void)
{      
    _delay_ms(120);// Delay_Nms(120); // Delay_Nus 120ms 等待上电复位
    PORTD =(1<<PD7)|(0<<PD6)|(0<<PD5)|(1<<PD4)|(1<<PD3)|(1<<PD2)|(1<<PD1)|(1<<PD0);//LCD控制输出
    //PORTD =0xff;//lcd_control = 0xff; // LCD_RS/WR/RD/CS1/CS2 normal - skeep high.
    _delay_ms(120);
    ClrLCD_RS;
   // _delay_ms(120);
}

/********************************************************************/
//LCD初始化
/********************************************************************/
void LCD_Initial(void)
{
  ClrLCD_E;//e=0;
  wr_lcd (comm,0x01);  /*清屏,地址指针指向00H*/
  wr_lcd (comm,0x06);  /*光标的移动方向*/
  wr_lcd (comm,0x0c);  /*开显示,关光标*/
  wr_lcd (comm,0x38);  /*8位接口两行显示模式*/
}



void wr_lcd (unsigned char dat_comm,unsigned char content)
{
  if(dat_comm)
   {
    SetLCD_RS;//rs=1;   //data
    ClrLCD_WR;//rw=0;   //write
   }
  else  
   {
    ClrLCD_RS;//rs=0;   //command
    ClrLCD_WR;//rw=0;   //write
   }
  PORTC = content;   //output data or comm
  SetLCD_E;//e=1;
  _delay_ms(1);//delay(1);
  ClrLCD_E;//e=0;
}

void chrt_disp (unsigned char *chrt)
{
  uchar i,j;
  wr_lcd (comm,0x80);
  for (j=0;j<2;j++)
  {
    for (i=0;i<16;i++)
    wr_lcd (dat,chrt[j*16+i]);
    wr_lcd (comm,0xc0);
  }
}

使用特权

评论回复
6
songning1991|  楼主 | 2013-4-20 16:37 | 只看该作者
NICKY99 发表于 2013-4-20 16:33
/********************************************************************/
//上电复位
/***************** ...

那我的这个代码哪里不对可以帮我解释一下么?

使用特权

评论回复
7
NICKY99| | 2013-4-20 16:44 | 只看该作者
将延时加长一点看看,用示波器测测相关时序。

使用特权

评论回复
8
中国机器| | 2013-4-20 17:06 | 只看该作者
你用的单片机主频是多大的,估计是你的单片速度快,所以别人用着没问题的代码,在你那里就不能用了,因为LCD1602的反应速度有限。

在基础指令里面,每个读写操作之后加上延时试试

使用特权

评论回复
9
菜鸟同学| | 2013-4-20 17:58 | 只看该作者
GPIO_Mode_Out_PP 试试。把读写 的延时提高下试试!

使用特权

评论回复
10
Cheribat| | 2013-4-20 18:07 | 只看该作者
哈哈 不小心把ST-LINK搞挂了 看来今天帮不上你了
有几个地方
你的 void LCD_dat(u8 dat)
dat << 8 移位完成之后 dat 里应该只剩0了吧
没有看到你的LCD_Busy()函数的具体实现,你应该用的STM32吧,管脚方向读数据的时候是要改变的
LCD1602的初始化操作和我看到的推荐操作也是有出入的
总之 你再好好检查下吧 这个还是需要自己去调试

使用特权

评论回复
11
zhaoyu2005| | 2013-4-22 08:54 | 只看该作者
你这个黑框是复位完就有还是送显示命令后出的?
话说很多复位不正常的就出这个现象

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝