搜索
bottom↓
回复: 30

各位大虾帮忙看看,RA8835的320240的液晶显示汉字不行啊

[复制链接]

出0入0汤圆

发表于 2012-4-6 11:11:20 | 显示全部楼层 |阅读模式
#include<reg52.h>
#include <intrins.h>
sbit WWR=P0^1;
sbit RRD=P0^2;
sbit CS=P0^3;  
sbit A0=P0^4;
sbit REST=P0^5;
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={0x00,0x80,0x7F,0xC4,0x11,0x0C,0x11,0x10,                //7
                0x11,0x20,0x11,0x44,0x11,0x0C,0xFF,0xD0,
                0x11,0x20,0x11,0x42,0x11,0x06,0x11,0x08,
                0x21,0x10,0x21,0x20,0x41,0x40,0x01,0x00,
};                                          


uchar code SysTab[8]={0x30,0x87,0x07,0x27,0x42,0xf0,0x28,0x00};

uchar code ScrTab[10]={0x00,0x00,0xf0,0x00,0x40,0xf0,0x00,0x08,0x00,0x00};

void delayms(unsigned int x)//1ms
{
unsigned char j;
while(x--)
    {for(j=0;j<125;j++)
{;}
}
}
void delay100us(unsigned char x)//100us
{
unsigned char j;
while(x--)
{for(j=0;j<12;j++)
{;}
}
}

void WriteCommand(uchar command)
{
CS=0;

RRD=1;
P1=command;
A0=1;
WWR=0;

WWR=1;
}
void WriteData(unsigned char LCDdata)
{
CS=0;
RRD=1;
P1=LCDdata;
A0=0;
WWR=0;
WWR=1;
}
void Init_LCD()
{ uchar i;
        REST=1;
        REST=0;
        REST=1;

          WriteCommand(0x40);                        //设置SYSTEM SET参数
           for(i=0;i<8;i++)
        {
    WriteData(SysTab[i]);
           }
  /*         WriteData(0x30);
                WriteData(0x87);
                WriteData(0x07);
                WriteData(0x27);
                WriteData(0x42);
        WriteData(0xf0);
                WriteData(0x28);
                WriteData(0x00); */
    WriteCommand(0x44);                        //设置SYSTEM SET Scroll参数
        for(i=0;i<10;i++)
        {
                   WriteData(ScrTab[i]);
           }       
/*        WriteData(0x00);
        WriteData(0x00);
    WriteData(0xf0);
    WriteData(0x00);
        WriteData(0x40);
    WriteData(0xf0);
    WriteData(0x00);
    WriteData(0x08);
    WriteData(0x00);
    WriteData(0x00); */

    WriteCommand(0x5a);   //HDOT SCR点不移位
        WriteData(0x00);

    WriteCommand(0x5b);  //简单合成显示,L1为文本,L2为图形,L3为文本属性,单屏时不用四区
    WriteData(0x04);
          
    WriteCommand(0x59);   //开显示及设显示状态
    WriteData(0x44);      //一,,三,区均开显示但不闪烁,光标显示关闭,二四区关显示

       
}       
void Locatexy(uchar x,uchar y)
{
   uint add;
   add = (uint)y*0x28+x;
//        if(attribs)temp += 0x40*256;        // 如果需要就指向第二区,加上第二区首地址
        WriteCommand( 0x46 );                                // 光标Locate,定位
        WriteData( (uchar)(add & 0xff) );        // 写入参数CSRL设置参数光标指针低8位
        WriteData( (uchar)(add >>8 ) );        // 写入参数CSRH设置参数光标指针高8位
    WriteCommand(0x5d);
        WriteData(0x07);
        WriteData(0x87);
        WriteCommand(0x59);
        WriteData(0x03);

        }

void dprintf()

{ uchar i,j;
  
  Locatexy(0,0);
  WriteCommand(0x4f);
  WriteCommand(0x42);
   for(i=0;i<16;i++)
   {  WriteData(table[i*2]);
             }
   Locatexy(0,1);
    WriteCommand(0x4f);
    WriteCommand(0x42);
    for(j=0;j<16;j++)
        {WriteData(table[i*2+1]);}

void qingping(void)  //清文本区
{  uchar k;
    WriteCommand(0x46);                   //设置光标指针0x0000-第一显示区,CSRW代码
    WriteData(0x00);//列
    WriteData(0x00);//行  

   WriteCommand(0x42);                //设置数据写入,MWRITE代码       

        for (k=0x00;k<0xff;k++)
        {
        WriteCommand(0x20);
        }
}
void clear1(void)  //清图形点阵
{         uint i;
           WriteCommand(0x4c);   //光标向右
    WriteCommand(0x46);   //光标坐标设置
        WriteData(0x00);
    WriteData(0x00);
    WriteCommand(0x42);
        for(i=0;i<0xffff;i++)
  {
            WriteData(0x00);
  }
}

void main(void)
{
Init_LCD();
clear1();

   qingping();
  Loc//dprintf(0,10,"图形方式测试");
while(1);}


就是什么都没有显哦,是什么原因哦,各位大哥帮看看,这还有一份SD1335的各种例程哦,给有需要的人,有的也照搬过来的不过也不行,头都大了。

本帖子中包含更多资源

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

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2012-4-6 11:13:05 | 显示全部楼层
各位帮看看啊,别沉了啊

出0入0汤圆

发表于 2012-4-7 17:45:46 | 显示全部楼层
你的原理图是怎么连接的?初始化对不对

出0入0汤圆

 楼主| 发表于 2012-4-10 11:39:09 | 显示全部楼层
hpdell 发表于 2012-4-7 17:45
你的原理图是怎么连接的?初始化对不对

没错的。问题找到了,就是显示区设置错误啊、~·

出0入0汤圆

发表于 2012-4-10 15:45:18 | 显示全部楼层
我这有例程,你要不?

出0入0汤圆

 楼主| 发表于 2012-4-10 17:24:26 | 显示全部楼层
joing2000 发表于 2012-4-10 15:45
我这有例程,你要不?

要啊。帮我发到我的邮箱里哦,谢谢啊。tangui123@sina.com
我今天能给它显示汉字了,但还有就是显示区我搞不清哦,搞不明白,有4个显示区,他们对应屏是哪个部份的哦。地址又是多少哦,汉字也只能在这几行里显示
,多了又回到0开始。大虾给解释下就好了啊

出0入0汤圆

 楼主| 发表于 2012-4-10 17:34:09 | 显示全部楼层
C:\Documents and Settings\XT-01\桌面

出0入0汤圆

 楼主| 发表于 2012-4-10 17:38:32 | 显示全部楼层
C:\Documents and Settings\XT-01\桌面
还有的点漏掉。不什么稳定的,开机一下,又变了个样。
只能这上面几行显示?
不知道为什么?

本帖子中包含更多资源

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

x

出0入0汤圆

 楼主| 发表于 2012-4-10 17:40:38 | 显示全部楼层
joing2000 发表于 2012-4-10 15:45
我这有例程,你要不?

例程我也在网上找了很多,你给我也要的哦,看看。

出0入0汤圆

发表于 2012-4-12 11:02:40 | 显示全部楼层
tanguicaicai 发表于 2012-4-10 17:40
例程我也在网上找了很多,你给我也要的哦,看看。

发你邮箱了,你看看吧~

出0入0汤圆

 楼主| 发表于 2012-4-12 16:11:23 | 显示全部楼层
joing2000 发表于 2012-4-12 11:02
发你邮箱了,你看看吧~

大哥,你发的我没收到哦,哈哈,麻烦你再发一次啊,有什么资料的一起发来,要不发QQ邮箱也可以啊!415476297@QQ.COM

出0入0汤圆

发表于 2012-4-13 08:47:16 | 显示全部楼层
tanguicaicai 发表于 2012-4-12 16:11
大哥,你发的我没收到哦,哈哈,麻烦你再发一次啊,有什么资料的一起发来,要不发QQ邮箱也可以啊!
...

加你QQ发给你吧。
头像被屏蔽

出0入0汤圆

发表于 2012-5-4 10:35:46 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

 楼主| 发表于 2012-5-7 08:46:08 | 显示全部楼层
Q28182900 发表于 2012-5-4 10:35
也给我发一个 啊

给你的QQ或者邮箱来我给你发过去

出0入0汤圆

发表于 2012-5-7 09:20:30 | 显示全部楼层
把2区设置为图形方式,然后往2区写入字模数据,完全没问题的啊!我用的是HGT160160,程序写的无压力。

出0入0汤圆

发表于 2012-5-7 14:27:39 来自手机 | 显示全部楼层
这LCD是带汉字库的?

出0入0汤圆

 楼主| 发表于 2012-5-8 09:58:23 | 显示全部楼层
XA144F 发表于 2012-5-7 09:20
把2区设置为图形方式,然后往2区写入字模数据,完全没问题的啊!我用的是HGT160160,程序写的无压力。 ...

那大虾,我在下半屏写入字模时,也就是第三显示区时,就显示乱码,第一和第三显示区都是图形显示方式的,但就是显示乱码。

出0入0汤圆

 楼主| 发表于 2012-5-8 10:01:07 | 显示全部楼层
XA144F 发表于 2012-5-7 09:20
把2区设置为图形方式,然后往2区写入字模数据,完全没问题的啊!我用的是HGT160160,程序写的无压力。 ...

还有啊,第一和第三区才是主显示区啊、也就是上半屏和下半屏啊。

出0入0汤圆

发表于 2012-5-8 10:54:21 | 显示全部楼层
最好不分上下半屏,不然会惹出不少麻烦。

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2012-5-8 10:55:29 | 显示全部楼层
我用的是160X160的夜景,这是初始化代码:
     CmdWrite(0x40);                            //系统设置
     DataWrite(0x32);                           //P1参数:单屏幕,CGROM+CGRAM1+CGRAM2
     DataWrite(0x87);                           //P2参数:8点列
     DataWrite(0x07);                           //P3参数:8点行
     DataWrite(0x13);                           //P4参数:CR显示窗口宽度为 20
     DataWrite(0x18);                           //P5参数:TC/R>=C/R+4
     DataWrite(0xA0);                           //P6参数:160扫描行
     DataWrite(0x14);                           //P7参数:APL    AP>=CR+1
     DataWrite(0x00);                           //P8参数:APH

     CmdWrite(0x44);                             //显示区域设置
     DataWrite(0x00);                           //显示一区首地址为 0000H
     DataWrite(0x00);
     DataWrite(0xA0);                           //显示一区的扫描行数 160行
     DataWrite(0x00);                           //显示二区首地址为 0x1000H
     DataWrite(0x10);
     DataWrite(0xA0);                           //显示二区的扫描行数 160行
     DataWrite(0x00);                           //显示三区首地址为 0x2000H
     DataWrite(0x20);

     CmdWrite(0x58);                             //显示状态设置,显示总开关
     DataWrite(0x54);                           //打开各区显示和光标

     CmdWrite(0x5b);                            //合成方式设置
     DataWrite(0x08);                           //两重合成显示,一区文本,三区图形,三个区"或"关系

     CmdWrite(0x5c);                            //CGRAM的起始地址为0x4000H
     DataWrite(0x00);
     DataWrite(0x40);

     CmdWrite(0x5d);                            //光标形状设置
     DataWrite(0x07);
     DataWrite(0x06);

     CmdWrite(0x4c);                            //光标移动方向设为向右

     FullScreenFill(0x00,0x00,0x00);             //清显示一区
     FullScreenFill(0x00,0x10,0x00);             //清显示二区
     FullScreenFill(0x00,0x20,0x00);             //清显示三区

     CmdWrite(0x59);                            //打开显示总开关
     DataWrite(0x54);   //04无光标,05无闪烁,07闪烁

出0入0汤圆

 楼主| 发表于 2012-5-8 11:19:42 | 显示全部楼层
XA144F 发表于 2012-5-8 10:55
我用的是160X160的夜景,这是初始化代码:
     CmdWrite(0x40);                            //系统设置
...

谢谢啊,我只想在屏中啊,也就是上屏下屏能写入任意地址
大的字模就行了。

出0入0汤圆

 楼主| 发表于 2012-5-8 11:22:15 | 显示全部楼层
合成显示是什么意思哦、还有上屏下屏的区是1区和3区还是1区和2区,搞不明白

出0入0汤圆

 楼主| 发表于 2012-5-8 11:25:47 | 显示全部楼层
XA144F 发表于 2012-5-8 10:54
最好不分上下半屏,不然会惹出不少麻烦。

不分上下屏,那大虾,那在这个屏中啊,的任意地址是多少到多少哦

出0入0汤圆

 楼主| 发表于 2012-5-8 11:35:56 | 显示全部楼层
大虾可以 话,加你Q可以不、不明白的可以问下

出0入0汤圆

 楼主| 发表于 2012-5-14 16:28:56 | 显示全部楼层
项目急,把那个RA835给废了,那地址太难找了,还是个09年的屏,什么写都不行
去买了个RA8806的,这个很好弄,今天很好的把原程序移植到这屏上来了,总算
完了

出0入0汤圆

 楼主| 发表于 2012-5-14 16:35:05 | 显示全部楼层
项目急,把那个RA835给废了,那地址太难找了,还是个09年的屏,什么写都不行
去买了个RA8806的,这个很好弄,今天很好的把原程序移植到这屏上来了,总算
完了

出0入0汤圆

发表于 2012-7-11 15:20:35 | 显示全部楼层
貌似第三屏必须是图形方式吧,我看的RA8835的资料上翻译版说的是可以文本可以图形,但是英文原版的只能是图形方式.

出0入0汤圆

发表于 2012-11-8 10:17:50 | 显示全部楼层
tanguicaicai 发表于 2012-5-14 16:35
项目急,把那个RA835给废了,那地址太难找了,还是个09年的屏,什么写都不行
去买了个RA8806的,这个很好弄 ...

LZ能把RA8806的程序发我一份吗?邮箱476745870@qq.com.谢谢啦!
最近也要弄这个还没什么头绪呢

出0入0汤圆

 楼主| 发表于 2012-11-8 13:42:26 | 显示全部楼层
kosmosy 发表于 2012-11-8 10:17
LZ能把RA8806的程序发我一份吗?邮箱.谢谢啦!
最近也要弄这个还没什么头绪呢 ...

兄弟给你发过去了~~注意查收

出0入0汤圆

发表于 2012-11-8 13:45:28 | 显示全部楼层
tanguicaicai 发表于 2012-11-8 13:42
兄弟给你发过去了~~注意查收

收到了,再次谢谢LZ

出0入0汤圆

发表于 2013-8-23 11:59:10 | 显示全部楼层
进来学习.....................
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 14:27

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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