找回密码
 注册
关于网站域名变更的通知
查看: 413|回复: 2
打印 上一主题 下一主题

LCD12864显示问题,请大神指点

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-4-29 10:25 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 Quiescent_521 于 2020-4-29 10:38 编辑
- Y5 `7 l6 X, I$ \" C$ u# i% N: {" N" V  f! ~$ B/ {$ B
有检查过硬件电路,测试表明都是通的。软件编程方面请各位大神帮忙纠纠错。
9 v1 |0 }& Y+ ?  P  h, m+ I0 N5 Y. wLCD12864之前能正常显示,但一段时间后全屏显示“翱”字
( D2 b' N5 ]" |# c" t  s
/ m( V8 M+ @( _7 C5 {
& u4 s& M/ P  B; }3 h5 H7 o
4 y$ c  I' ?4 Y! M5 ~ 4 R* ~; c7 E  t# O
  • //****************************************
  • //lcd12864写命令
  • //****************************************
  • void write_12864com(uchar com)
  • {
  •    Busy();
  •    rw=0;
  •    rs=0;
  •    delay_50us(1);
  •    P0=com;
  •    E=1;
  •    delay_50us(10);
  •    E=0;
  •    delay_50us(2);
  • }
  • //****************************************
  • //lcd12864测忙
  • //****************************************
  • void Busy()
  • {
  •   uchar busy;
  •   do
  •   {
  •     E=0;
  •         rs=0;
  •         rw=1;
  •         delay_50ms(1);
  •         E=1;
  •         busy=P0;
  •         delay_50ms(1);
  •         E=0;
  •   }
  •    while(busy&0x80);
  • }
  • //****************************************
  • //lcd12864写数据
  • //****************************************
  • void write_12864dat(uchar dat)
  • {
  •    Busy();
  •    rw=0;
  •    rs=1;
  •    E=0;
  •    P0=dat;
  •    delay_50us(1);
  •    E=1;
  •    delay_50us(10);
  •    E=0;
  •    delay_50us(2);
  • }
  • //****************************************
  • //lcd12864初始化
  • //****************************************
  • void initial_LCD()
  • {
  •   RST=1;
  •   delay_50ms(2);
  •   write_12864com(0x30); //功能设置
  •   delay_50us(4);
  •   write_12864com(0x30); //再次设置
  •   delay_50us(4);
  •   write_12864com(0x0f); //显示设置,游标设置 0X0C
  •   delay_50us(4);
  •   write_12864com(0x01);  //清屏
  •   delay_50ms(1);
  •   write_12864com(0x02);
  •   delay_50us(10);
  • }
  • //****************************************
  • //lcd12864初始显示
  • //****************************************
  • void display_initial()
  • {
  •   uchar i,j;
  •   write_12864com(0x80); //LCD地址第一行
  •   for(i=0;i<16;i++)
  •   {
  •      write_12864dat(table1);
  •          delay_50us(1);
  •   }
  • write_12864com(0x88);//lcd地址第三行
  •   for(j=0;j<16;j++)
  •   {
  •      write_12864dat(table2[j]);
  •          delay_50us(1);
  •   }
  •   initial_LCD();
  • }
  • //****************************************
  • //lcd12864清屏
  • //****************************************
  • void display_clear()
  • {
  •    write_12864com(0x01);  //清屏
  •   delay_50us(2);
  • }

  • 3 a! W  H- J5 T; V
" I9 @+ R9 Y; y

该用户从未签到

2#
发表于 2020-4-29 10:39 | 只看该作者
字符串位置设置有问题,汉字与字符串串了,建议添加字符显示函数。
  • TA的每日心情
    开心
    2023-5-15 15:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2020-4-30 13:34 | 只看该作者
    你这是字符占的位置不对,造成后面的字型乱码,汉字是16*16,字符是8*16,要显示小数点要空一格(8*16)才能正常。当然这样不好看,因此要写字符显示函数,网上有案例,你看看别人怎么写的
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-10-11 07:18 , Processed in 0.125000 second(s), 26 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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