打印

请教:我想在12864上显示的内容

[复制链接]
5632|57
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yuanquan12345|  楼主 | 2010-10-5 15:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想在12864的第一、二行显示的内容,每24小时变化一次。
而第三、四行显示日期和时钟,并且在第一、二行变化时,日期和时钟不变。
程序怎样编写。
请指点。
谢谢。

相关帖子

沙发
yuanquan12345|  楼主 | 2010-10-5 15:27 | 只看该作者
我将DS12C887读回来的小时,每24小时加一,来实现上面的功能。
我试了一下不行。

使用特权

评论回复
板凳
yx331447791| | 2010-10-5 21:01 | 只看该作者
其实啊,实现不难,关键是程序的架构要好,可维护性强

使用特权

评论回复
地板
yuanquan12345|  楼主 | 2010-10-6 07:37 | 只看该作者
能说的详细一点吗?
先谢谢了。

使用特权

评论回复
5
ssxwcw| | 2010-10-6 10:06 | 只看该作者
要看你的屏是用什么芯片驱动的,加我QQ:584408776
我给你例程你

使用特权

评论回复
6
e2zone| | 2010-10-6 10:32 | 只看该作者
本帖最后由 e2zone 于 2010-10-6 10:33 编辑

我用过ST7920控制芯片的12864,如果是这个控制芯片:
看你那种像是字符显示,那么第一行就是设定地址,送数据,
第二、三、四行都一样,只是地址和数据不同。
而要实现你说的功能,你下面有时间不是么,那么就检测,等到24小时去更换一二行的内容,
而下面的时间显示,自己可以看,如果没有秒的显示可以每分钟更新一次,有秒的话,
就把秒的显示位置,每秒更新一次,当分钟变化了,就去更新分钟,小时变化了就去更新小时。

使用特权

评论回复
7
yuanquan12345|  楼主 | 2010-10-6 17:08 | 只看该作者
我的12864是长沙太阳人的KNY12864-20M,带字库,用ST7920控制芯片的12864。
我将时间读回来编的程序,不管用。

使用特权

评论回复
8
yuanquan12345|  楼主 | 2010-10-6 17:14 | 只看该作者
我的程序:/**************************************/
/*显示*/
/**************************************/
void xs()
{
        uchar i;
        flag=0;
        if(miao==10)
        {
                flag++;
                if(flag==0)
                {
                        lcd_pos(0,0);             //设置显示位置为第一行的第1个字符
                     i = 0;
                    while(dis1[i] != '\0')
                     {                         //显示字符
                       lcd_wdat(dis1[i]);
                       i++;
                     }       
                }
                if(flag==1)
                {
                        flag=0;
                        lcd_pos(0,0);             //设置显示位置为第一行的第1个字符
                     i = 0;
                    while(dis0[i] != '\0')
                     {                         //显示字符
                       lcd_wdat(dis1[i]);
                       i++;
                     }       
                }
        }
}

使用特权

评论回复
9
yuanquan12345|  楼主 | 2010-10-6 17:15 | 只看该作者
需要怎样修改请大家指点。
谢谢。

使用特权

评论回复
10
e2zone| | 2010-10-6 22:23 | 只看该作者
在这之前你确定自己可以操作你的12864了吗?
我建议你最好是先能操作它去做别的,比如先写一下字符的显示。
因为看不到你的底层操作,所以也不能确定你是什么问题。
你先别写其他任何的程序,只写让他显示字符,当这样能做好,其他的就全部迎刃而解了。
你说呢?

使用特权

评论回复
11
yuanquan12345|  楼主 | 2010-10-7 07:43 | 只看该作者
我自己可以操作你的12864了,前几天刚完成了DS12C887和12864的时钟显示,我想让三、四行显示日期和时间,一、二行显示汉字,就是经励志方面的语言,每24小时变换一次。
上面的程序我是将887的miao(秒),读回来每十秒变换一次,没成功。
请您指点。
谢谢。

使用特权

评论回复
12
yuanquan12345|  楼主 | 2010-10-7 07:43 | 只看该作者
我是新手请多指教。

使用特权

评论回复
13
t.jm| | 2010-10-7 08:27 | 只看该作者
要实现每10秒显示更新一次,你最好要在小于1秒的间隔去读时间,否则显示就会不正常。
上面的程序,miao 的值如何得到?

使用特权

评论回复
14
yuanquan12345|  楼主 | 2010-10-7 09:18 | 只看该作者
miao的值,是从887读回来的,不知道这样用行不。

使用特权

评论回复
15
t.jm| | 2010-10-7 10:13 | 只看该作者
我知道你是从时钟芯片读来的,你没做任何处理?还有读时间的间隔是多长?

使用特权

评论回复
16
yuanquan12345|  楼主 | 2010-10-7 10:35 | 只看该作者
没处理。

使用特权

评论回复
17
t.jm| | 2010-10-7 11:17 | 只看该作者
那肯定不行,再加个变量delay.
if( delay != (miao/10)  )
{
delay = miao/10;
...
}

使用特权

评论回复
18
yuanquan12345|  楼主 | 2010-10-7 11:35 | 只看该作者
谢谢,我试试。

使用特权

评论回复
19
yuanquan12345|  楼主 | 2010-10-7 11:45 | 只看该作者
是不是这样:if( delay != (miao/10)  )
{
delay = miao/10;
flag++;
if(flag==0)
输出一行内容;
if(flag==1)
输出另一行内容;
}

使用特权

评论回复
20
yuanquan12345|  楼主 | 2010-10-7 11:45 | 只看该作者
是不是这样:if( delay != (miao/10)  )
{
delay = miao/10;
flag++;
if(flag==0)
输出一行内容;
if(flag==1)
输出另一行内容;
}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

75

主题

1155

帖子

3

粉丝