mussBAschaffen 发表于 2013-5-14 14:18:01

显示屏如何实现定时翻页功能

因为身边材料有限,只有一个1602LCD显示屏,因此希望能够实现显示屏翻页,从而能够尽可能多的实现数据的显示。

不过在实践中发现效果并不理想,用了delay( )+lcd.clear( ),没法将此前的数据刷新掉,不知道大家有什么建议么?

mussBAschaffen 发表于 2013-5-24 15:50:00

原本想用以下的代码进行编译编译的,不过发现加入变量之后就出现了一些问题,测出的变量不能实时显示在lcd屏幕上,不知道有木有大神能够帮我解决一下这个问题?
lcd.print("V1=");
lcd.setCursor(0,2);
lcd.print("V2=");
lcd.setCursor(3,0);
lcd.print(vin1);
lcd.print(" V");
delay(500);
lcd.setCursor(3,1);
lcd.print(vin2);
lcd.print(" V");
delay(5000);
lcd.clear();

lcd.print(ohm);
lcd.print(" Ohm");
delay(5000);
lcd.clear();

文少 发表于 2013-5-24 16:10:02

用lcd.clear( )来清屏,或者直接写满整个屏,空位用空格代替。
定时翻页可以用定时时中断实现,参考这个贴子 http://www.geek-workshop.com/forum.php?mod=viewthread&tid=4021

mussBAschaffen 发表于 2013-5-24 22:37:22

文少 发表于 2013-5-24 16:10 static/image/common/back.gif
用lcd.clear( )来清屏,或者直接写满整个屏,空位用空格代替。
定时翻页可以用定时时中断实现,参考这个贴 ...

先谢过,我在看了,如果有问题再问

mussBAschaffen 发表于 2013-5-24 23:07:17

文少 发表于 2013-5-24 16:10 static/image/common/back.gif
用lcd.clear( )来清屏,或者直接写满整个屏,空位用空格代替。
定时翻页可以用定时时中断实现,参考这个贴 ...

我礼拜一再去试一下,板子没带回家,没法实践。。。哎,蛋疼

mussBAschaffen 发表于 2013-6-3 21:44:05

文少 发表于 2013-5-24 16:10 static/image/common/back.gif
用lcd.clear( )来清屏,或者直接写满整个屏,空位用空格代替。
定时翻页可以用定时时中断实现,参考这个贴 ...

后来试了试还是不行,不太清楚LCD的定时时间如何设定

lemodd 发表于 2013-6-4 16:02:48

定义个变量alt,当alt小于5时显示一个屏,大于5时显示另一个,大于9时回0
我就是这样做的,请参考

        if(alt++ < 5){
                lcd.clear();                                                                        //the first screen
                lcd.setCursor(0,0);
                lcd.print("T:");
                lcd.print(temp);

                lcd.setCursor(9,0);
                lcd.print("H:");
                lcd.print(humi);

                lcd.setCursor(0,1);
                lcd.print("P:");
                lcd.print(pm25);

                lcd.setCursor(9,1);
                lcd.print("L:");
                lcd.print(light);
        }else{                                                                                //the second screen
                lcd.clear();
                lcd.setCursor(0,0);
                lcd.print("BP:");
                lcd.print(bp);

                lcd.setCursor(0,1);
                lcd.print("Al:");
                lcd.print(altitude);
               

        }
        if(alt >9) alt = 0;

mussBAschaffen 发表于 2013-6-4 16:13:04

lemodd 发表于 2013-6-4 16:02 static/image/common/back.gif
定义个变量alt,当alt小于5时显示一个屏,大于5时显示另一个,大于9时回0
我就是这样做的,请参考



alt可以换成时间变量然后进行操作么
之前用的是delay(),发现在delay的阶段CPU处于停滞状态,不能对外部数据进行处理

lemodd 发表于 2013-6-4 16:16:17

mussBAschaffen 发表于 2013-6-4 16:13 static/image/common/back.gif
alt可以换成时间变量然后进行操作么
之前用的是delay(),发现在delay的阶段CPU处于停滞状态,不能对外 ...

可以用millis()获得时间,你可以试下

mussBAschaffen 发表于 2013-6-4 16:21:31

lemodd 发表于 2013-6-4 16:16 static/image/common/back.gif
可以用millis()获得时间,你可以试下

嗯,好的
我去试试看,希望多个屏幕的翻转不会出现问题
页: [1]
查看完整版本: 显示屏如何实现定时翻页功能