手电大家谈-手电筒爱好者之家

 找回密码
 注册成为会员,享受更多功能。

QQ登录

只需一步,快速开始

只需一步,快速开始

搜索
查看: 8206|回复: 33

[电子电路] 请问蓝色LCD12864显示全白是什么情况?

[复制链接]
  • TA的每日心情
    开心
    2021-12-29 09:01
  • 签到天数: 1219 天

    [LV.10]以坛为家III

    发表于 2021-2-28 22:01 | 显示全部楼层 |阅读模式

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

    您需要 登录 才可以下载或查看,没有账号?注册成为会员,享受更多功能。

    x
    LCD是全新购买的,做测试用,如下图,开发板什么代码都没写,LCD12864怎么就全部显示像素?是对比度没调好吗,还是其他原因?我在开发板、LCD的背面都调了相关电阻,根本没有用。
    LCD12864.jpg
    回复 dsu_marcocopyright:copyright

    使用道具 举报

  • TA的每日心情
    开心
    2021-12-29 09:01
  • 签到天数: 1219 天

    [LV.10]以坛为家III

     楼主| 发表于 2021-3-1 06:45 | 显示全部楼层
    顶一下
    回复

    使用道具 举报

    该用户从未签到

    发表于 2021-3-1 09:14 | 显示全部楼层
    看你的照片是日立兼容芯片的12864 8位并行接口图形LCD,你不写代码直接通电后显示所有像素这是正常的。你要测试就要写个代码。

    点评

    晕倒,写了代码,还是这样。不过,我也不确定代码是否正确,否则,我也不会专门买块来上开发板测试。在Proteus上跑是正常的,不过,Proteus上不写任何代码就是指亮灯无显示,现在我这个是全部都显示了,我看啥啊,估  详情 回复 发表于 2021-3-1 09:25
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2021-12-29 09:01
  • 签到天数: 1219 天

    [LV.10]以坛为家III

     楼主| 发表于 2021-3-1 09:25 | 显示全部楼层
    jd2000 发表于 2021-3-1 09:14
    看你的照片是日立兼容芯片的12864 8位并行接口图形LCD,你不写代码直接通电后显示所有像素这是正常的。你要 ...

    晕倒,写了代码,还是这样。不过,我也不确定代码是否正确,否则,我也不会专门买块来上开发板测试。在Proteus上跑是正常的,不过,Proteus上不写任何代码就是指亮灯无显示,现在我这个是全部都显示了,我看啥啊,估计有文字输出我也看不出呀,被覆盖了。我这个是ST7920主控的,我的开发板描述也是支持这种主控的LCD12864。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2021-12-29 09:01
  • 签到天数: 1219 天

    [LV.10]以坛为家III

     楼主| 发表于 2021-3-1 09:34 | 显示全部楼层
    网上说和LCD1602差不多,看文档好像也差不多,所以是从LCD1602那改的,我下面的代码,LCD1602能显示,但是LCD12864不能,关键是我的LCD12864不写代码全都显示了,感觉不应该这样。

    //12864初始化
    void LCD12864_Init(void)
    {
            _LCD_DATADDR = 0xFF;
            _LCD_DATAPORT=0x00;
            _LCD_RWEDDR=0xFF;
            LCD_Delay();
            writecom(0x38,0);
            LCD_Delay();
            writecom(0x38,0);
            LCD_Delay();
            writecom(0x38,0);
            LCD_Delay();
            writecom(0x38,1);
            writecom(0x08,1); //关闭显示
            writecom(0x01,1);    //显示清屏
            writecom(0x06,1); //显示光标移动设置
            writecom(0x0C,1); //显示开及光标设置
    }


    //LCD12864输出字符串
    void LCD12864_WriteChar(uchar row,uchar col,uchar *pBuffer)
    {
       switch (row)
       {
          case 0:{row=0x80;break;}
          case 1:{row=0x90;break;}
          case 2:{row=0x88;break;}
          default:{row=0x98;break;}
       }
       row+= col;
       writecom(row,1);
       _LCD_RS=1;
       LCD_Delay();
       _LCD_RW=0;
       LCD_Delay();
       while(*pBuffer)
       {
           LCD_Delay();
           _LCD_DATAPORT=*pBuffer;
           LCD_Delay();
           _LCD_EN=1;
           LCD_Delay();
           _LCD_EN=0;
           LCD_Delay();
           pBuffer++;
       }
    }

    回复

    使用道具 举报

    该用户从未签到

    发表于 2021-3-1 09:38 | 显示全部楼层
    你先试试调整3脚上的可变电阻,确认不是对比度设置的问题。如果对比度没问题,那么看来是没有正确初始化LCD,多半是接线或代码的问题,硬件损坏的可能性不大。

    点评

    这个LCD背面有一个可调电阻,通过一个焊盘确定是否连接第3脚,默认是不连接的,也就是第3脚默认是悬空不接任何地方,所以默认是使用LCD背面的可调电阻调对比度,文档也是这样描述的,但是我调了,没用。我用镊子短路  详情 回复 发表于 2021-3-1 09:46
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2021-12-29 09:01
  • 签到天数: 1219 天

    [LV.10]以坛为家III

     楼主| 发表于 2021-3-1 09:46 | 显示全部楼层
    本帖最后由 cyradg 于 2021-3-1 09:49 编辑
    jd2000 发表于 2021-3-1 09:38
    你先试试调整3脚上的可变电阻,确认不是对比度设置的问题。如果对比度没问题,那么看来是没有正确初始化LCD ...

    这个LCD背面有一个可调电阻,通过一个焊盘确定是否连接第3脚,默认是不连接的,也就是第3脚默认是悬空不接任何地方,所以默认是使用LCD背面的可调电阻调对比度,文档也是这样描述的,但是我调了,没用。我用镊子短路这个焊盘,使用开发板上的可调电阻,也没用,晕了。。。。
    ==================
    继续补充下,这个LCD上还有什么标识为P焊盘的,标识为S焊盘的,说是串口并口切换用,但是描述并口模式的话可以不用管这两个焊盘,我使用的是并口。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2021-12-29 09:01
  • 签到天数: 1219 天

    [LV.10]以坛为家III

     楼主| 发表于 2021-3-1 10:02 | 显示全部楼层
    上两个淘宝该商品的图,下面是背面可调电阻,P、S焊盘,还有一个叫JP1的焊盘,焊盘默认都是开路。

                                   
    登录/注册后可看大图

    下面是正面图,有个叫JP2的焊盘,默认也是开路,这个目前应该是短接JP2使用开发板可调电阻。描述说是结合JP1确定是否选择开发板可调电阻,那个JP1目前没仔细去看。有谁用过LCD12864,按道理不写任何代码是只亮灯但是没任何显示的呀。

                                   
    登录/注册后可看大图

    回复

    使用道具 举报

    该用户从未签到

    发表于 2021-3-1 10:05 | 显示全部楼层
    如果你调整电位器时屏幕背景有明暗变化就没问题。我现在手头上没有这个LCD,没法试验了。不过我记得8位并行模式是0x30,不是0x38,你初始化模式似乎选得不对,你试试吧。我目前都是ESP8266/ESP32为主,好玩很多,AVR很久没用了。

    点评

    我目前手头只有AVR开发板,也支持这个显示器,先测试玩玩。LCD12864实在太大了,我最终还是想用OLED,OLED有自带中文字库的吗?我看宝上的好多都说不带字库的,是连英文字库也不带?自己去做模?  详情 回复 发表于 2021-3-1 10:40
    0x30 昨天试了,没用。其实0x38和0x30看文档只是显示的细微差别,这个LCD涉及到显示的焊盘有4个,分别是P、S、JP1、JP2,全是开路,P和S是串口和并口模式选择的,其实也可以通过PSB引脚由MCU选择模式,似乎与我这种  详情 回复 发表于 2021-3-1 10:35
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2021-12-29 09:01
  • 签到天数: 1219 天

    [LV.10]以坛为家III

     楼主| 发表于 2021-3-1 10:35 | 显示全部楼层
    jd2000 发表于 2021-3-1 10:05
    如果你调整电位器时屏幕背景有明暗变化就没问题。我现在手头上没有这个LCD,没法试验了。不过我记得8位并行 ...

    0x30 昨天试了,没用。其实0x38和0x30看文档只是显示的细微差别,这个LCD涉及到显示的焊盘有4个,分别是P、S、JP1、JP2,全是开路,P和S是串口和并口模式选择的,其实也可以通过PSB引脚由MCU选择模式,似乎与我这种显示状态无关,那个JP1是控制-V0的,JP2是控制V0,那个JP1我没仔细看,回去再看下。我估计很大可能是对比度出问题了,对于黄屏来讲,也就是所谓的全黑。还有这玩意我目前还不能上锡,否则真有问题不能换货。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2021-12-29 09:01
  • 签到天数: 1219 天

    [LV.10]以坛为家III

     楼主| 发表于 2021-3-1 10:40 | 显示全部楼层
    jd2000 发表于 2021-3-1 10:05
    如果你调整电位器时屏幕背景有明暗变化就没问题。我现在手头上没有这个LCD,没法试验了。不过我记得8位并行 ...

    我目前手头只有AVR开发板,也支持这个显示器,先测试玩玩。LCD12864实在太大了,我最终还是想用OLED,OLED有自带中文字库的吗?我看宝上的好多都说不带字库的,是连英文字库也不带?自己去做模?

    点评

    单色OLED 128X64 的不贵,用I2C驱动非常方便。带中文字库的比较少见。普通的可以直接显示英文,显示中文要取模,稍微麻烦一点。而我自己则喜欢用彩色TFT LCD,320X240,用SPI高速驱动,可以设计非常精美的界面。自从  详情 回复 发表于 2021-3-1 11:35
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-9 20:19
  • 签到天数: 32 天

    [LV.5]常住居民I

    发表于 2021-3-1 10:40 来自手机 | 显示全部楼层
    个人不成熟建议,去论坛下个写好的程序写入来测试一下有没显示。

    点评

    开发平台不兼容。我用的是ATMEL STUDIO 7里面的GCC平台,网上拷贝来的直接编译是通过不的,需要自己猜谜语一样翻译一下,然后才上Proteus仿真,Proteus通过了最后才上开发板的。  详情 回复 发表于 2021-3-1 10:54
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2021-12-29 09:01
  • 签到天数: 1219 天

    [LV.10]以坛为家III

     楼主| 发表于 2021-3-1 10:44 | 显示全部楼层
    LCD12864就是便宜,而且也支持中文字库,所以先拿来练练手。商家叫我觉得有问题就退回去,哎,不想退,就那么点钱,加个邮费退回去不值得,自己能解决最好。商家没有明确说什么问题,但是大概猜得出估计是对比度有问题,而且LCD自带的可调电阻可能坏了。。。。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2021-12-29 09:01
  • 签到天数: 1219 天

    [LV.10]以坛为家III

     楼主| 发表于 2021-3-1 10:54 | 显示全部楼层
    uikyhuang 发表于 2021-3-1 10:40
    个人不成熟建议,去论坛下个写好的程序写入来测试一下有没显示。

    开发平台不兼容。我用的是ATMEL STUDIO 7里面的GCC平台,网上拷贝来的直接编译是通过不的,需要自己猜谜语一样翻译一下,然后才上Proteus仿真,Proteus通过了最后才上开发板的。
    回复

    使用道具 举报

    该用户从未签到

    发表于 2021-3-1 11:35 | 显示全部楼层
    cyradg 发表于 2021-3-1 10:40
    我目前手头只有AVR开发板,也支持这个显示器,先测试玩玩。LCD12864实在太大了,我最终还是想用OLED,OLE ...

    单色OLED 128X64 的不贵,用I2C驱动非常方便。带中文字库的比较少见。普通的可以直接显示英文,显示中文要取模,稍微麻烦一点。而我自己则喜欢用彩色TFT LCD,320X240,用SPI高速驱动,可以设计非常精美的界面。自从用了这个,我对1602和12864等的单色LCD都不感冒了,哈哈。


    20210228_223107.jpg

    点评

    SPI还没学,SPI速度高,不知道能否同时接多个设备?不过我估计只能接一个设备,否则I2C真没啥用。I2C能同时接多个设备,就是速率低。对于一些简单的显示,I2C还是比较方便的,现在在Proteus上测试通过了LCD1602,LCD  详情 回复 发表于 2021-3-1 11:48
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2021-12-29 09:01
  • 签到天数: 1219 天

    [LV.10]以坛为家III

     楼主| 发表于 2021-3-1 11:48 | 显示全部楼层
    jd2000 发表于 2021-3-1 11:35
    单色OLED 128X64 的不贵,用I2C驱动非常方便。带中文字库的比较少见。普通的可以直接显示英文,显示中文 ...

    SPI还没学,SPI速度高,不知道能否同时接多个设备?不过我估计只能接一个设备,否则I2C真没啥用。I2C能同时接多个设备,就是速率低。对于一些简单的显示,I2C还是比较方便的,现在在Proteus上测试通过了LCD1602,LCD2004显示,EEPROM的读取,INA219电流,电压,功率读取,MCP3421的差分ADC转换,现在就要上开发板测试了,不过我目前的开发板没有这么多接口,自己做了个扩展板,今天刚在嘉立创下单做PCB了,白嫖价5元。折腾完了I2C,下一个就是SPI。下面是自己做的开发板扩展
    PCB.png



    回复

    使用道具 举报

    该用户从未签到

    发表于 2021-3-1 12:47 | 显示全部楼层
    I2C只使用单片机的两个IO引脚作为总线,无论挂多少个设备都始终只用两个脚,节省单片机硬件资源,缺点是速度较慢。SPI使用4个IO引脚,而且每增加一个设备就要多用一个IO引脚,因此不能挂太多设备,但速度很快。对于12864和传感器之类对速度要求不高的,用I2C很合适。但是TFT LCD等设备对数据传输速度要求很高,用SPI就合适。你如果初学单片机,我觉得从Arduino入手比较好,完全开源,资料丰富,而且库文件齐全,例如你驱动12864 LCD只需导入一个库即可,不需自己从底层写起。以后学深入了还可以研究库文件,看底层是怎样操作的。

    点评

    我目前也是想用Arduino,支持类,可以很好地封装成对象,Proteus的例子也是Arduino。呆伙我试用下。当初选ATMEL STUDIO,第一个原因是因为它是ATMEL官方的,估计和他自己的产品配好也好,ATMEL STUDIO的界面是.NET界  详情 回复 发表于 2021-3-1 14:31
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2021-12-29 09:01
  • 签到天数: 1219 天

    [LV.10]以坛为家III

     楼主| 发表于 2021-3-1 14:31 | 显示全部楼层
    jd2000 发表于 2021-3-1 12:47
    I2C只使用单片机的两个IO引脚作为总线,无论挂多少个设备都始终只用两个脚,节省单片机硬件资源,缺点是速 ...

    我目前也是想用Arduino,支持类,可以很好地封装成对象,Proteus的例子也是Arduino。呆伙我试用下。当初选ATMEL STUDIO,第一个原因是因为它是ATMEL官方的,估计和他自己的产品配好也好,ATMEL STUDIO的界面是.NET界面,对于代码提示也非常友好,界面随.NET,因此可以弄成中文界面,但是看来看去,只支持C++,不支持类封装,现成的库也不多。GCC,ICC,IAR我也试用过,只能用“我查”来形容,没有什么现成的库,不支持类封装,也没有代码的友好提示,更TMD,代码编辑器居然连中文都不支持!!!只要删除啥玩意,中文全是乱码,果断丢弃!!!

    ZW.png
    ATMEL STUDIO 7中文界面,不过,实际上没见着什么开发帮助,不是.NET的功能也不是中文。
    ZW2.png
    代码友好提示,这是现在开发环境必备,也是我的首选,因为没谁知道那么多函数该怎么完整地去写,很多地方都需要开发环境协助。写错的地方,或者不是安全的代码,也会用红波浪线标注,这样会让给我看到,思考一下就知道这样写代码可能会让MCU跑飞。我觉得友好提示是第一重要,但愿Arduino也有该功能,否则我也有可能放弃Arduino。

    点评

    看到语句中有 GOTO,就不禁想起大学里学计算机语言时,老师严禁使用goto语句(虽然各种语言都有goto语句,而且使用很方便),说考试时谁使用谁不及格。  详情 回复 发表于 2021-3-2 08:08
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2021-12-29 09:01
  • 签到天数: 1219 天

    [LV.10]以坛为家III

     楼主| 发表于 2021-3-1 15:31 | 显示全部楼层
    刚安装了Arduino,居然中文界面,然而编辑器相对ATMEL STUDIO 7真的单调了,没有代码友好提示,如下图,Serial应该是个串口对象,习惯上,有好的开发环境只要在对象后面加个“.”或者“->”,那么这个对象里面的所有属性,方法,事件都会列出来,Arduino很遗憾不会,代码编辑功能差了些,要知道C语言区分大小写,一个字母写错都编译不通过。不过Arduino的库,例子,文档真的比ATMEL STUDIO 7多的太多了,先耐着性子看看吧。。。。。
    AR.png
    Arduino的代码编辑还是差些,没有任何代码管理功能,只是给你一个简单的颜色提示,这个"Serial”的确是玩意,是什么玩意,自己琢磨。
    AM.png
    AMTEL STUDIO 7的代码编辑管理,引用了微软的.NET体系,代码管理我觉得一级棒!!比如上图info结构里的TWI_EA变量,不但能有代码管理器自动给开发者,还能把备注完整地给开发者提示这是干什么用的,其实这对于初学者也是非常好的,省去开发者记忆很多东西。ATMEL STUDIO 7的缺点是没有什么库,全是底层库,也没有什么帮助文档,也不支持类封装,整个代码感觉有点散,也就是很多函数和变量其实是私有的,不能单独使用,这是没有类封装的缺点,否则,ATMEL STUDIO 7我觉得真的很完美。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2021-12-29 09:01
  • 签到天数: 1219 天

    [LV.10]以坛为家III

     楼主| 发表于 2021-3-1 15:50 | 显示全部楼层
    我听说Arduino可以作为一个插件被引入ATMEL STUDIO 7,我查!!看看。。。。有谁把Arduino作为插件被引入开发环境的?
    回复

    使用道具 举报

    本版积分规则

    小黑屋|手机版|Archiver|论坛自带搜索|下载论坛app|手电大家谈-手电筒爱好者之家 ( 备案序号:鲁ICP备05002565号 )
    以上言论纯属个人观点,与手电大家谈立场无关。
    最佳浏览模式:1920*1080


    GMT+8, 2024-11-19 22:38 , Processed in 0.208984 second(s), 66 queries , Gzip On.

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表