查看: 2122|回复: 7

LCD1602A 的奇怪问题

[复制链接]
  • TA的每日心情
    慵懒
    2017-2-6 16:52
  • 签到天数: 43 天

    [LV.5]常住居民I

    发表于 2017-1-23 12:08 | 显示全部楼层 |阅读模式
    使用一块LCD1602A的32字符显示屏,配合uno r3, 实现显示功能。程序没问题,但在刚上电时,有时屏幕空白,有时屏幕能正确显示。多次实验,没有任何规律可言,经常一上电空白,试四五次才有一次正常,但有时候一次就点亮。。有人碰到这种情况吗
  • TA的每日心情
    无聊
    2017-1-23 17:05
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    发表于 2017-1-23 16:57 | 显示全部楼层
    确认线接好了,确认复位过了,确认屏不是从JS那里买的
  • TA的每日心情
    开心
    2017-1-28 03:23
  • 签到天数: 131 天

    [LV.7]常住居民III

    发表于 2017-1-23 23:54 | 显示全部楼层
    你用什么LCD1602的库?我记得与复位后初始化时序有关,以前早期的库实现的不够好,这种事情偶尔会发生。。后来的库都没这个问题了。
  • TA的每日心情
    慵懒
    2017-2-6 16:52
  • 签到天数: 43 天

    [LV.5]常住居民I

     楼主| 发表于 2017-1-25 15:00 | 显示全部楼层
    好像没有用库:

    void LCD_Command_Write(int command)
    {
    int i,temp;
    digitalWrite( LCD1602_RS,LOW);
    digitalWrite( LCD1602_RW,LOW);
    digitalWrite( LCD1602_EN,LOW);

    temp=command & 0xf0;
    Serial.println(temp);
    for (i=DB[0]; i <= 5; i++)
    {
       digitalWrite(i,temp & 0x80);
       temp <<= 1;
    }
    Serial.println(temp);
    digitalWrite( LCD1602_EN,HIGH);
    delayMicroseconds(1);
    digitalWrite( LCD1602_EN,LOW);

    temp=(command & 0x0f)<<4;
    for (i=DB[0]; i <= 5; i++)
    {
       digitalWrite(i,temp & 0x80);
       temp <<= 1;
    }

    digitalWrite( LCD1602_EN,HIGH);
    delayMicroseconds(1);
    digitalWrite( LCD1602_EN,LOW);
    }
  • TA的每日心情
    慵懒
    2017-2-6 16:52
  • 签到天数: 43 天

    [LV.5]常住居民I

     楼主| 发表于 2017-1-25 15:01 | 显示全部楼层
    pencilstart 发表于 2017-1-23 23:54
    你用什么LCD1602的库?我记得与复位后初始化时序有关,以前早期的库实现的不够好,这种事情偶尔会发生。。 ...

    好像没有用库:

    void LCD_Command_Write(int command)
    {
    int i,temp;
    digitalWrite( LCD1602_RS,LOW);
    digitalWrite( LCD1602_RW,LOW);
    digitalWrite( LCD1602_EN,LOW);

    temp=command & 0xf0;
    Serial.println(temp);
    for (i=DB[0]; i <= 5; i++)
    {
       digitalWrite(i,temp & 0x80);
       temp <<= 1;
    }
    Serial.println(temp);
    digitalWrite( LCD1602_EN,HIGH);
    delayMicroseconds(1);
    digitalWrite( LCD1602_EN,LOW);

    temp=(command & 0x0f)<<4;
    for (i=DB[0]; i <= 5; i++)
    {
       digitalWrite(i,temp & 0x80);
       temp <<= 1;
    }

    digitalWrite( LCD1602_EN,HIGH);
    delayMicroseconds(1);
    digitalWrite( LCD1602_EN,LOW);
    }
  • TA的每日心情
    开心
    2017-1-28 03:23
  • 签到天数: 131 天

    [LV.7]常住居民III

    发表于 2017-1-25 21:51 | 显示全部楼层
    本帖最后由 pencilstart 于 2017-1-25 21:52 编辑

    自已根据SPEC写的?为何不用那个 LiquidCrystal_I2C ? 或者你可以看看它的源代码?
  • TA的每日心情
    慵懒
    2017-2-6 16:52
  • 签到天数: 43 天

    [LV.5]常住居民I

     楼主| 发表于 2017-1-28 19:08 | 显示全部楼层
    pencilstart 发表于 2017-1-25 21:51
    自已根据SPEC写的?为何不用那个 LiquidCrystal_I2C ? 或者你可以看看它的源代码? ...

    谢谢,研究一下这个库
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    全国机器人等级考试配件购买
    全国机器人等级考试配件购
    本人想自己教小孩机器人等级考试,需要购买机器人等级考试的配件,可是淘宝上的太
    【Arduino】108种传感器系列实验(24)---水位传感器模块
    【Arduino】108种传感器系
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    【Arduino】108种传感器系列实验(96)---433M无线发射接收模块
    【Arduino】108种传感器系
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    【Arduino】108种传感器系列实验(93)---CSR8350蓝牙音乐模块
    【Arduino】108种传感器系
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    【Arduino】108种传感器系列实验(89)--- 4*4位 RGB LED 全彩模块
    【Arduino】108种传感器系
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表