搜索
bottom↓
回复: 1

430f147控制液晶12232求助!

[复制链接]

出0入0汤圆

发表于 2010-12-27 15:48:16 | 显示全部楼层 |阅读模式
公司产品更新,小弟刚刚进来工作,现在负责一些程序的更新,这次要调一个液晶12232的驱动程序。现在的问题是,之前的程序勉强能用,但是总会有出乱码的地方,由于之前没有接触过这种型号的液晶,不知道从哪里入手。现在把程序贴出来希望高手们指点下!
//write command
void LcdWriteCmd(unsigned char Cmd)
{   LcdDatDIR=0xff;
    LcdConDIR|=COMA0+COMBA+COMBB;
    LcdConOUT&=~COMA0;
    LcdConOUT|=COMBA;//LcdConOUT&=~COMBB;   
    LcdDatOUT=Cmd;
    LcdConOUT&=~COMBA;     //e1
    delay_test(200);
    LcdConOUT|=COMBB;
    LcdDatOUT=Cmd;
    LcdConOUT&=~COMBB;    //e2
}
//write data
void LcdWriteData(unsigned char Eflag,unsigned char Data)
{
    LcdDatDIR=0xff;
    LcdConDIR|=COMA0+COMBA+COMBB;
    LcdConOUT|=COMA0;
//    delay_test(200);
    if(Eflag==1)
    {  LcdConOUT|=COMBA;//LcdConOUT&=~COMBB;
       LcdDatOUT=Data;
       LcdConOUT&=~COMBA;     //e1
    }
    else
    {  LcdConOUT|=COMBB;
       LcdDatOUT=Data;
       LcdConOUT&=~COMBB;    //e2
    }
}  

//write a char data to Lcd
void DispChar(unsigned char Page,unsigned char Column,unsigned char DataAddr,unsigned char fanbaiFlag)
{   unsigned char i,DataTemp;
    ColumnTemp=Column;
   
    switch (Page)   
    {    case 1: LcdWriteCmd(0xb8);break;
         case 2: LcdWriteCmd(0xb9);break;
         case 3: LcdWriteCmd(0xba);break;
         case 4: LcdWriteCmd(0xbb);break;
         default:break;
     }
   
     for (i=0;i<=6;i++)
     {   if (fanbaiFlag==1){DataTemp=DispCode[DataAddr];}
         else{DataTemp=~DispCode[DataAddr];}
         if(ColumnTemp<=60)
         {    LcdWriteCmd(ColumnTemp);
              LcdWriteData(1,DataTemp);
              ColumnTemp++;
         }
         else
         {    LcdWriteCmd(ColumnTemp-61);
              LcdWriteData(2,DataTemp);
              ColumnTemp++;
         }
    }
}

//Clear Lcd Screen
void ClearCld(void)
{   unsigned int i,j;
    for(i=0xb8;i<=0xbb;i++)
    {  LcdWriteCmd(i);
       LcdWriteCmd(0);
       for(j=0;j<=61;j++)
       {   LcdDatDIR=0xff;
           LcdConDIR|=COMA0+COMBA+COMBB;
           LcdConOUT|=COMA0;
           LcdConOUT|=COMBA;
           LcdDatOUT=0;
           LcdConOUT&=~COMBA;     //e1
           LcdConOUT|=COMBB;
           LcdDatOUT=0;
           LcdConOUT&=~COMBB;    //e2
       }
    }
}

//Lcd Init
void LcdInit(void)
{   LcdWriteCmd(0xe2);    //software reset
    LcdWriteCmd(0xae);    //close display
    LcdWriteCmd(0xa4);    //stats drive off
    LcdWriteCmd(0xa9);    //select duty  1:32
    LcdWriteCmd(0xa0);    //select ADC:CW output
    LcdWriteCmd(0xee);    //read-modify-write off
    LcdWriteCmd(0x00);    //开始的 列地址
    LcdWriteCmd(0xc0);    //开始的 行地址
    LcdWriteCmd(0xaf);  //open display
  
}

主要内容就这样了,现在的问题就是有时候字符显示正确,有时候就乱码,有时还出现上下两部分内容镜像的情况。求助!

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

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-6-3 17:53

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

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