金牌会员
 
- 积分
- 2097
- 金钱
- 2097
- 注册时间
- 2014-3-7
- 在线时间
- 491 小时
|
1金钱
本帖最后由 ssssssssssss 于 2016-1-6 16:54 编辑
12864指定位置反白,用网上给的程序反白刷新速度很慢,等5.6秒才出现反白,有哪个大神可以指点一下?程序给人的感觉是执行这个反白函数好5s左右一样,之后我尝试把(void display() //为反白做准备,目地是在图形显示时防止有噪点),这个函数屏蔽掉,刷新速度上去了,但是有噪点,有什么方法可以刷新速度快,而且没噪点吗?
[mw_shl_code=c,true]void display() //为反白做准备,目地是在图形显示时防止有噪点
{
uchar i,j;
lcd_wcmd(0x34); //写数据时,关闭图形显示
for(i=0;i<32;i++)
{
lcd_wcmd(0x80+i); //先写入水平坐标值
lcd_wcmd(0x80); //写入垂直坐标值
for(j=0;j<16;j++) //再写入两个8位元的数据
lcd_wdat(0x00);
delay(1);
}
for(i=0;i<32;i++)
{
lcd_wcmd(0x80+i);
lcd_wcmd(0x88);
for(j=0;j<16;j++)
lcd_wdat(0x00);
delay(1);
}
lcd_wcmd(0x36); //写完数据,开图形显示
}
void photodisplay(uchar x,uchar y,uchar width) //反白,X值为0-7,Y值为0-3,width为行反白格数
{
uchar i,j,flag=0x00;
display();
if(y>1)
{
flag=0x08;
y=y-2;
}
lcd_wcmd(0x34); //写数据时,关闭图形显示,且打开扩展指令集
for(i=0;i<16;i++)
{
lcd_wcmd(0x80+(y<<4)+i);
lcd_wcmd(0x80+flag+x);
for(j=0;j<width;j++)
{
lcd_wdat(0xff);
lcd_wdat(0xff);
}
delay(1);
}
lcd_wcmd(0x36); //写完数据,开图形显示
// lcd_wcmd(0x30); //从扩展指令到基本指令
}
lcd_init(); //初始化LCD
clr_screen(); //清屏
while(1)
{
clr_screen();
lcd_pos(1,0); //设置显示位置为第一行
lcd_wstr(DIS1);
delay(30);
lcd_pos(2,0); //设置显示位置为第二行
lcd_wstr(DIS2);
lcd_pos(3,0); //设置显示位置为第三行
lcd_wstr(DIS3);
lcd_pos(4,0); //设置显示位置为第四行
lcd_wstr(DIS4);
delay(1000);
delay(1000);
photodisplay(3,2,3);
delay(1000);
delay(1000);
lcd_wcmd(0x30); //基本指令集
delay(1000);
delay(1000);
}
}[/mw_shl_code]
|
|