12864打点绘制曲线出问题

2020-01-23 14:24发布

本帖最后由 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);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
22条回答
ruan18278816371
2020-01-23 19:21
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;
}

一周热门 更多>