430F147驱动晶发液晶12232再次求助!
再次向大家求助!我真的是没招了!公司产品更新,有一款液晶要换新的,说是只要把写数据的时间延长就可以,图片如下:http://cache.amobbs.com/bbs_upload782111/files_36/ourdev_619746GIQPK5.jpg
指定要修改的地方 (原文件名:image003.jpg)
但是我加了N个NOP还是不行!每个地方也都试了加NOP,就是不对。之前我曾经发过这个帖子,当时以为解决问题了,但是过了两天发现还是不对。
现在把液晶的驱动程序贴上,希望大家帮忙啊!液晶的背面写着GFE122032F,可能是它的型号吧。时钟晶振是32.768K的,现在的效果还是经常会有丢失和乱码,该在第一页显示的跑到第二页··
//********************************display program start
//define display I/O
#define LcdDatDIR P4DIR
#define LcdDatOUT P4OUT
#define LcdConDIR P3DIR
#define LcdConOUT P3OUT
unsigned charCOMA0=BIT2,COMBA=BIT0,COMBB=BIT1;//comba->e1; combb->e2;coma0->a
unsigned char i,DataTemp,ColumnTemp;
//write command
void LcdWriteCmd(unsigned char Cmd)
{ LcdDatDIR=0xff;
LcdConDIR|=COMA0+COMBA+COMBB;
LcdConOUT&=~COMA0;
LcdConOUT|=COMBA;//LcdConOUT&=~COMBB;
LcdDatOUT=Cmd;
LcdConOUT&=~COMBA; //e1
LcdDatOUT=0;
// delay_test(200);
LcdConOUT|=COMBB;
LcdDatOUT=Cmd;
LcdConOUT&=~COMBB; //e2
LcdDatOUT=0;
}
//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
LcdDatOUT=0;
}
else
{LcdConOUT|=COMBB;
LcdDatOUT=Data;
LcdConOUT&=~COMBB; //e2
LcdDatOUT=0;
}
}
//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 duty1:32
LcdWriteCmd(0xa0); //select ADC:CW output
LcdWriteCmd(0xee); //read-modify-write off
LcdWriteCmd(0x00); //开始的 列地址
LcdWriteCmd(0xc0); //开始的 行地址
LcdWriteCmd(0xaf);//open display
}
//****************display program end 顶起,真的救命啊! 救命啊!!!!!999999999999999999 好吧,我自己再次买块砖把自己拍死! 在这里我要说一句 晶发的12232液晶,老子恨死你了! 之前就是因为你我才发帖求助,http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4480053&bbs_page_no=1&search_mode=3&search_text=lazyduck&bbs_id=9999当时以为是供电的问题,就不了了之了。后来发现不是,只有那一块是那样! 其余的都显示不正常,按照你们厂家提供的资料,我在写数据的地方加延时,加了N多都没效果,撞墙的心都有了!最后转换思路,用51单片机驱动它完全正常,才发现是I/O操作电压的问题。旧的型号挺好的,5V供电,3.3V的I/O口电压工作起来挺好的,非要更新,更新也就算了,弄出这么一个问题,害我折腾了快三个星期,把注意力从软件改到硬件上才找到问题,坑爹呢!!! 还是那句话,大家看了当做经验,别跟我一样遇到这种问题。
页:
[1]