ruan18278816371 发表于 2014-8-7 11:27:20

12864打点绘制曲线出问题

本帖最后由 ruan18278816371 于 2014-8-7 11:36 编辑

最近用STC15F2K60S2在12864液晶上打点绘制曲线,测试打点函数之前需要图像清屏,但是调用这个图像清屏函数耗时很长,一个点打出来差不多要两分钟这明显不科学啊,查了好久没找出原因请各位大牛指教,下面贴出清屏函数和主函数
void gui_clear(void)
{
        uchar i,j,k;
        write_com(EXTEND_SET);//扩展指令集,8位数据传输
        write_com(DRAW_OFF);//绘图显示关闭
        for(i=0;i<2;i++)//分上下两屏写
        {
                for(j=0;j<32;j++)
                {
                        write_com(0x80+j);//写y坐标
                       //Delay10ms();          //这儿我以为是耗时长的原因把延时注释了,还是解决不了问题
                        if(i==0)//写x坐标
                        {
                                write_com(0x80);
                                //Delay10ms();
                        }
                        else //写下半屏
                        {
                                write_com(0x88);
                                //Delay10ms();
                        }
                        for(k=0;k<16;k++)//写一整行数据
                        {
                                write_dat(0x00);//写高字节
                                write_dat(0x00);//写低字节
                                //Delay10ms();
                        }
                }
        }
        write_com(DRAW_ON);//打开绘图显示
        write_com(BASIC_SET);//打开基本指令集
}
void main()
{
        lcd_init();//lcd初始化
        lcd_set_dot(2,1);//打点
        while(1);
}

mcu_lover 发表于 2014-8-7 11:52:29

检查读写函数,打一个点2分钟不科学。即便是整屏清除,1秒钟也够了。
看是读写函数里面否有忙等待之类的,或者大的延时。

lcw_swust 发表于 2014-8-7 11:53:03

write_com、write_dat内部延时太长了吧

Jordan?? 发表于 2014-8-7 11:53:40

网上有一个12864的库
不过是msp430,改一下就能用

ruan18278816371 发表于 2014-8-7 11:54:35

lcw_swust 发表于 2014-8-7 11:53
write_com、write_dat内部延时太长了吧

/*写指令数据到LCD*/
/*RS=1,RW=1,E=高脉冲,D0-D7=指令码。*/
void write_com(uchar cmd)
{
        LCD_RS=0;
        LCD_RW=0;
        //LCD_EN=0;
        P0=cmd;
        Delay5ms();
        LCD_EN=1;
        Delay5ms();
        LCD_EN=0;
}
/*写显示数据到LCD*/
/*RS=1,RW=0,E=高脉冲,D0-D7=数据。*/
void write_dat(uchar dat)
{
        LCD_RS=1;
        LCD_RW=0;
        //LCD_EN=0;
        P0=dat;
        Delay5ms();
        LCD_EN=1;
        Delay5ms();
        LCD_EN=0;
}

lcw_swust 发表于 2014-8-7 11:56:53

ruan18278816371 发表于 2014-8-7 11:54
/*写指令数据到LCD*/
/*RS=1,RW=1,E=高脉冲,D0-D7=指令码。*/
void write_com(uchar cmd)


竟然Delay5ms!
楼主看看LCD的手册吧,看这个时间究竟取多少合适。

xiaoha_abc 发表于 2014-8-7 13:11:18

把整个工程文档贴上来看一下呗

ruan18278816371 发表于 2014-8-7 14:39:37

lcw_swust 发表于 2014-8-7 11:56
竟然Delay5ms!
楼主看看LCD的手册吧,看这个时间究竟取多少合适。

Delay1ms是比先在快,但点还是要几十秒的时间啊!这样还不科学

lcw_swust 发表于 2014-8-7 14:44:29

ruan18278816371 发表于 2014-8-7 14:39
Delay1ms是比先在快,但点还是要几十秒的时间啊!这样还不科学

改为Delay1us         

fbestwish 发表于 2014-8-7 14:49:12

xiaoha_abc 发表于 2014-8-7 13:11
把整个工程文档贴上来看一下呗

源码在这里http://www.amobbs.com/forum.php?mod=viewthread&tid=5590564&page=1#pid7744238

ruan18278816371 发表于 2014-8-7 14:55:31

fbestwish 发表于 2014-8-7 14:49
源码在这里http://www.amobbs.com/forum.php?mod=viewthread&tid=5590564&page=1#pid7744238

你的代码我没用,我只是作为参考!

ruan18278816371 发表于 2014-8-7 14:58:13

lcw_swust 发表于 2014-8-7 14:44
改为Delay1us

Delay1us点就不出来了啊,估计时序乱了

lcw_swust 发表于 2014-8-7 15:00:52

ruan18278816371 发表于 2014-8-7 14:58
Delay1us点就不出来了啊,估计时序乱了

那就Delay2us
同学,你就不能多试几种延时?

yyts 发表于 2014-8-7 15:02:34

ruan18278816371 发表于 2014-8-7 14:58
Delay1us点就不出来了啊,估计时序乱了

看手册这个时间需要多久.

ruan18278816371 发表于 2014-8-7 15:06:59

lcw_swust 发表于 2014-8-7 15:00
那就Delay2us
同学,你就不能多试几种延时?

试了 10US 100us 都不行的 大哥

lcw_swust 发表于 2014-8-7 15:11:44

ruan18278816371 发表于 2014-8-7 15:06
试了 10US 100us 都不行的 大哥

那你这液晶屏可真够慢的,扔了吧。
要不用示波器看看延时准不准?

ruan18278816371 发表于 2014-8-7 15:21:55

打点不正常搞得下面画线也不正常,一根线就出现几个点{:sad:}

fbestwish 发表于 2014-8-7 15:47:51

ruan18278816371 发表于 2014-8-7 14:55
你的代码我没用,我只是作为参考!

好吧,那这个源码画点也很慢吗,记得拿这个库做过贪吃蛇呢,应该没有问题吧

ruan18278816371 发表于 2014-8-7 16:06:41

fbestwish 发表于 2014-8-7 15:47
好吧,那这个源码画点也很慢吗,记得拿这个库做过贪吃蛇呢,应该没有问题吧 ...

不懂了!我现在的情况是能画竖线,横线就出几个点!

rain73 发表于 2014-8-7 16:11:45

不要delay not more,要用check busy ...

ruan18278816371 发表于 2014-8-7 16:23:14

rain73 发表于 2014-8-7 16:11
不要delay not more,要用check busy ...

判断忙?理论来说液晶反应的时间比单片机快多了啊。不对!我用的是1T的单片机,有必要判断液晶是否忙?

ruan18278816371 发表于 2014-8-7 23:36:20

xiaoha_abc 发表于 2014-8-7 13:11
把整个工程文档贴上来看一下呗

这是工程,硬件用的是STC15F2K60S21T的单片机
页: [1]
查看完整版本: 12864打点绘制曲线出问题