amobbs.com 阿莫电子技术论坛

标题: 12864LCD刷屏慢的疑问。 [打印本页]

作者: mkliop    时间: 2012-7-9 22:28
标题: 12864LCD刷屏慢的疑问。
我弄到了一个带字库的12864液晶屏,是金鹏牌的型号是OCMJ4X8B,玩过以后发现调入一副128*64的图片要用差不多半秒,能够看到它从上到下刷屏,请问这种毛病怎么解决?这不像是单片机的问题哦
作者: lcw_swust    时间: 2012-7-10 09:17
轮流调入两副图或整屏填充不同颜色试试
作者: sanda    时间: 2012-7-10 09:40
可能单片机发送图像数据太慢了
作者: xiaoaf    时间: 2012-7-10 10:26
如果是有串口写的话就差不多是这个速度吧
作者: z421868436    时间: 2012-7-10 10:30
先将数据填进去  然后再打开使能显示
原来做反白是这样做的  具体的也忘记了  3到4年了……
作者: nbzwt    时间: 2012-7-10 10:46
本帖最后由 nbzwt 于 2012-7-10 10:49 编辑

什么单片机,晶振多少?代码发上来瞧瞧。12864我用STC单片机可以刷到60FPS
作者: xlwq    时间: 2012-7-10 10:55
在写数据,或命令的函数中,是不是有比较长的延时?
作者: mkliop    时间: 2012-7-10 11:21
我找到原因了,单片机是12c5a60s2这个Lcm一个指令的响应时间是0.1ms美写一个字节的数据就要写一个指令,写一副12864的图片要写1024个指令所以慢下来了…
作者: chishangpiao    时间: 2012-7-10 11:44
我也有这型号的液晶,没有这个问题啊,是不是程序的问题
作者: mkliop    时间: 2012-7-10 21:14
chishangpiao 发表于 2012-7-10 11:44
我也有这型号的液晶,没有这个问题啊,是不是程序的问题

??你可以帮忙发一个驱动上来吗》?下面这个是我的
#include<stc60s2.h>
#include<intrins.h>
#define u8 unsigned char
sbit REQ=P0^0;         
sbit BUSY=P0^1;
unsigned char code tab[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x01,0x82,0x80,0x00,0x00,0x00,0x02,0x10,0x00,0x0F,0xFB,0xC0,0x00,0x00,0x00,
0x00,0x02,0x42,0x80,0x00,0x00,0x00,0x19,0x18,0x00,0x0B,0xFF,0x80,0x00,0x00,0x00,
0x00,0x02,0xC2,0x80,0x00,0x00,0x00,0x21,0xFF,0x00,0x0F,0xFF,0x80,0x00,0x00,0x00,
0x00,0x3B,0xC1,0x80,0x00,0x00,0x00,0x57,0xFF,0xE0,0x0F,0xFF,0x80,0x00,0x00,0x00,
0x00,0x45,0xB9,0x80,0x80,0x00,0x00,0x8F,0xFF,0xF1,0x0F,0xFF,0x00,0x00,0x00,0x00,
0x00,0x82,0x44,0xA0,0x80,0x00,0x01,0x1E,0x8F,0xFE,0x0F,0xFF,0x00,0x00,0x00,0x00,
0x00,0x82,0x5C,0x10,0x60,0x00,0x00,0xF9,0x07,0xFC,0x0F,0xFF,0x00,0x00,0x00,0x00,
0x0F,0x83,0xF8,0x49,0xF8,0x00,0x00,0x33,0x06,0x7E,0x0F,0xFE,0x00,0x00,0x00,0x00,
0x10,0x8A,0x20,0x47,0xFE,0x00,0x00,0x67,0x06,0x7F,0x0E,0x0E,0x10,0x00,0x00,0x00,
0x10,0x92,0x10,0xA7,0x1F,0x00,0x00,0x6F,0x8F,0xFF,0x0C,0x04,0x00,0x00,0x00,0x00,
0x10,0x44,0x11,0x26,0x0F,0x00,0x00,0x4F,0xF3,0xFF,0x8C,0xE4,0x50,0x00,0x00,0x00,
0x08,0x78,0x51,0x3D,0x0F,0x80,0x00,0x1F,0xF3,0x9D,0xC9,0x02,0x00,0x00,0x00,0x00,
0x0F,0xCC,0x22,0x2D,0x9F,0x80,0x00,0x1F,0xCE,0x9E,0x89,0x02,0x10,0x00,0x00,0x00,
0x10,0x5F,0xC4,0x0B,0xE7,0xC0,0x00,0x1F,0xCF,0xF6,0x93,0xC2,0x00,0x00,0x00,0x00,
0x20,0x7C,0x49,0x5A,0x67,0xC0,0x00,0x1F,0xFF,0xFE,0x84,0x22,0x50,0x00,0x00,0x00,
0x21,0x7C,0x30,0x12,0x7F,0xC0,0x00,0x1F,0xFF,0xFE,0x05,0x22,0x00,0x00,0x00,0x00,
0x22,0x84,0x21,0x0B,0xFF,0xC0,0x00,0x1F,0xFF,0xF6,0x04,0x22,0x10,0x00,0x00,0x00,
0x11,0xA4,0x20,0x0B,0xFF,0xC0,0x00,0x0F,0xFF,0xD6,0x06,0x44,0x00,0x00,0x00,0x00,
0x0E,0x86,0x41,0x4B,0xFF,0xC0,0x00,0x0F,0xFF,0xCC,0x00,0x05,0x50,0x00,0x00,0x00,
0x10,0x97,0xFC,0x07,0xFF,0xC0,0x00,0x07,0xF0,0x1C,0x00,0x08,0x00,0x00,0x00,0x00,
0x20,0x8F,0xE9,0x15,0xFE,0xC0,0x00,0x07,0xE0,0x38,0x10,0x09,0x10,0x00,0x00,0x00,
0xF8,0x7F,0xF0,0x05,0xE2,0x80,0x1F,0xC3,0x80,0x78,0x10,0x10,0x00,0x00,0x00,0x00,
0xF4,0x5F,0xD5,0x49,0xE1,0x8F,0xE0,0x40,0xC1,0xF0,0x2C,0x65,0x50,0x00,0x00,0x00,
0x7A,0x5F,0xA0,0x08,0xC3,0x08,0x1F,0xC3,0xFF,0xC0,0x23,0x80,0x00,0x00,0x00,0x00,
0xBE,0xEE,0xD1,0x09,0x7E,0x07,0xFF,0xC0,0xFF,0x00,0x50,0x71,0x10,0x00,0x00,0x00,
0x6B,0x5F,0x00,0x08,0x00,0x07,0xFF,0xC0,0x00,0xE0,0x40,0x88,0x00,0x00,0x00,0x00,
0x1D,0xC0,0x55,0x48,0x74,0x03,0xFF,0xC0,0x20,0x20,0x95,0x05,0x50,0x00,0x00,0x00,
0x77,0xFE,0x00,0x04,0x8A,0x03,0xFF,0xC0,0x20,0x41,0x01,0x04,0x00,0x00,0x00,0x00,
0xBF,0xFF,0xC1,0x14,0x48,0x01,0xFF,0xC0,0x1F,0x83,0x87,0x04,0x08,0x00,0x00,0x00,
0xFF,0xFF,0xF0,0x02,0x38,0x01,0xFE,0x40,0x00,0x05,0x58,0x8F,0x90,0x00,0x00,0x00,
0xF0,0x40,0xF5,0x55,0x00,0x01,0xF0,0x40,0x00,0x18,0x30,0x70,0x50,0x00,0x00,0x00,
0xB8,0xA1,0xD0,0x00,0x80,0x00,0xE0,0x40,0x00,0x20,0x10,0x70,0x50,0x00,0x00,0x00,
0xC7,0xDE,0x21,0x11,0x60,0x00,0x40,0x80,0x00,0xC0,0x10,0xF0,0x48,0x00,0x00,0x00,
0xF8,0x29,0xD0,0x00,0x18,0x00,0x3F,0x00,0x03,0x00,0x0F,0x10,0x40,0x00,0x00,0x00,
0xBE,0x73,0x35,0x45,0x46,0x00,0x00,0x00,0x1C,0x00,0x02,0x0F,0x90,0x00,0x00,0x00,
0x6C,0x33,0x20,0x00,0x01,0xC0,0x00,0x01,0xFF,0x80,0x02,0x08,0x80,0x00,0x00,0x00,
0xBF,0xFC,0xD1,0x11,0x10,0x3D,0xFC,0x3F,0x00,0x60,0x02,0x08,0x50,0x00,0x00,0x00,
0x3F,0xFC,0xC0,0x00,0x00,0x06,0x03,0xC8,0x00,0x1C,0x01,0x18,0x20,0x00,0x00,0x00,
0x2E,0x33,0x04,0x44,0x44,0x18,0x00,0x70,0x00,0x03,0xC1,0xE8,0x20,0x00,0x00,0x00,
0x3F,0x73,0x00,0x00,0x00,0x60,0x00,0x20,0x00,0x00,0x39,0x08,0x10,0x00,0x00,0x00,
0x3F,0x6F,0xD0,0x10,0x11,0x80,0x00,0x40,0x00,0x00,0x06,0x04,0x08,0x00,0x00,0x00,
0x3F,0x5F,0xC0,0x00,0x06,0x20,0x00,0x40,0x00,0x20,0x01,0x04,0x00,0x00,0x00,0x00,
0xEF,0x3F,0xF7,0xFF,0xFF,0xF0,0x00,0x40,0x00,0x7F,0xFF,0xFF,0xF8,0x00,0x00,0x00,
0x17,0x7F,0x80,0x00,0x00,0x0C,0x00,0x40,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x1E,0x3F,0x80,0x00,0x00,0x03,0x81,0xA0,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x0F,0xFF,0x00,0x00,0x00,0x00,0x7E,0x1F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};       
void d30us(void)   //误差 -0.070167824074us
{
        unsigned char a;
    for(a=51;a>0;a--);
}

void delay10ms(void)   //误差 -0.000000000001us
{
    u8 a,b,c;
    for(c=7;c>0;c--)
        for(b=168;b>0;b--)
            for(a=24;a>0;a--);
}
void wlcm(u8 date)
{
  while(BUSY);
  REQ=0;
  P1=date;
d30us();
  REQ=1;
  d30us();
  REQ=0;
}
void xieh(u8 h,l) //往指定位置写字
{
u8 mm,gw,dw,kk=0;
unsigned int j;

for(j=0;j<1023;j++)
{
  wlcm(0x0f3);
  wlcm(h);
  wlcm(l);
  wlcm(tab[j]);
   h++;  
  if(h==0x14)
  {
  h=0x04;
  l++;
   }
}
}
void main()
{
  BUSY=1;
  REQ=0;
  delay10ms();
   xieh(0x04,0x00);
  while(1);
}
作者: zhanyicai000    时间: 2012-7-10 22:17
mark!!!!
作者: zhanyicai000    时间: 2012-7-10 22:22

mark!!!!
作者: zhanyicai000    时间: 2012-7-10 22:23
mkliop 发表于 2012-7-10 21:14
??你可以帮忙发一个驱动上来吗》?下面这个是我的
#include
#include

恩,这个好
作者: chishangpiao    时间: 2012-7-11 09:56
mkliop 发表于 2012-7-10 21:14
??你可以帮忙发一个驱动上来吗》?下面这个是我的
#include
#include

程序我不一定能给你找到,那是两年前在郑州工作的时候做的,而且我也是参考金鹏给的里程写的
我看了一下你的
void wlcm(u8 date)
{
  while(BUSY);
  REQ=0;
  P1=date;
d30us();
  REQ=1;
  d30us();
  REQ=0;
}
这个程序延时就有60us,加上数据手册上说的while(BUSY);需要20us,   而你的void xieh(u8 h,l) 里面一个循环就执行了4次void wlcm(u8 date),总共1024,我觉得出现你说的那种现象很正常,

数据手册上,他那个req保持时间没有那么长,你楼上说的那个最大0.1ms的指令貌似是最大时间吧,我觉得void xieh(u8 h,l) 里的的地址送一次就行了,内部地址指针会随着你送数据自动累加,时间太久了,有些我也记不清了,不知道上面废话的能否帮上你忙。  

作者: mkliop    时间: 2012-7-11 21:03
chishangpiao 发表于 2012-7-11 09:56
程序我不一定能给你找到,那是两年前在郑州工作的时候做的,而且我也是参考金鹏给的里程写的
我看了一下 ...

谢谢你哦,我在看看
作者: mcu_lover    时间: 2012-7-11 22:01
nbzwt 发表于 2012-7-10 10:46
什么单片机,晶振多少?代码发上来瞧瞧。12864我用STC单片机可以刷到60FPS

用的什么型号的液晶,60fps,严重怀疑啊。我最好才到15fps
作者: xwkm    时间: 2012-7-12 08:43
nbzwt 发表于 2012-7-10 10:46
什么单片机,晶振多少?代码发上来瞧瞧。12864我用STC单片机可以刷到60FPS

12864速度才那么点……你刷得了这么快?这卡住的是LCM,不是单片机!
还有你也逛这里啊?
作者: explorer117    时间: 2012-7-12 08:57
我原来是把延时全部去掉,改为查忙,速度彪了几倍
作者: nbzwt    时间: 2012-7-12 19:03
mcu_lover 发表于 2012-7-11 22:01
用的什么型号的液晶,60fps,严重怀疑啊。我最好才到15fps

KS0108兼容芯片控制的。STC12C5A60S2超频到40MHz。每写1个字节需要加300个nop(我不用查Busy法,节省时间),就是300个周期,而40MHz 1T下1s有4000000个周期,假设写一个字节需要400个周期,那么1秒也可以写100000个字节,一屏是1024字节,除下来就是977FPS啊!
作者: nbzwt    时间: 2012-7-12 19:06
本帖最后由 nbzwt 于 2012-7-12 19:58 编辑
xwkm 发表于 2012-7-12 08:43
12864速度才那么点……你刷得了这么快?这卡住的是LCM,不是单片机!
还有你也逛这里啊? ...


兼容芯片是无敌的,具体看上楼的回复。PS.原来是你,我一直在这混的
作者: haijin0829    时间: 2012-7-13 22:58
单片机不可能那么慢吧……
作者: unifax001    时间: 2012-7-15 22:37
不懂 顶一下!
作者: marshallemon    时间: 2012-7-16 00:33
金鹏的玩意
作者: huang_guo_ming    时间: 2012-7-16 00:34
速度·····
作者: llz0734    时间: 2012-7-16 14:16
新手学习啊!
作者: 锋仔_up    时间: 2013-11-1 23:34
受教 受教··~
作者: 指端轻语    时间: 2013-11-8 19:18
这种情况,仔细看看程序吧,是不是哪有延时程序较多了
作者: TrulyZhu    时间: 2013-11-11 18:06
呵呵,回去试试看




欢迎光临 amobbs.com 阿莫电子技术论坛 (https://www.amobbs.com/) Powered by Discuz! X3.4