打印

求个答案,关于程序

[复制链接]
1719|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Wwilliam|  楼主 | 2011-11-5 00:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
液晶1602写时钟,
uchar code table1[]="   00:01:00 ";

……

for(num=0;num<12;num++)
{
write_date(table1[num]);
delay(5);
}

……

write_sfm(uchar add,uchar date)
write_sfm(9,miao);

1.num<12,12应该就是双引号内(字符串)所有的位数再加1得到的吧,包括空格?
2.写秒显示,如果9是正确的,这个9是什么意思啊,怎么决定的?

相关帖子

沙发
yumpie| | 2011-11-5 08:08 | 只看该作者
table1是个字符串,循环就是把字符串中的字符一个一个的写到液晶中 因此,只需要将有效的字符写入液晶即可。 如无特殊用途,不需要加一,也不需要空格,code中也不需要空格

使用特权

评论回复
板凳
chen51rui| | 2011-11-5 15:31 | 只看该作者
本帖最后由 chen51rui 于 2011-11-5 15:36 编辑

table1[]="   00:01:00 ";
table1数组中的字符个数是12个,包括前面3个和后面1个空格,至于为什么前面有3个空格和后面有1个空格,应该和显示的模组或者点阵屏有关系。加上数字冒号刚好是12个字符。所以for要循环12次,write_date()函数的参数应该是一次写一个字符的功能。所以循环12次来写完。

写秒的write_sfm()函数定义的第一个参数是个ADD,看意思应该是个地址,至于为什么是9,要阅读函数体和要写硬件的具体情况才知道。通常常量最好宏定义一下,写成英文字母的缩写,便于后期阅读,单个数字是无法猜测出来用意的。

使用特权

评论回复
地板
yumpie| | 2011-11-5 22:27 | 只看该作者
晕 手机看的 看乱了 空格丢了 问题2也没看懂啥意思
楼上正解
建议楼主先弄明白原理用(时序、指令等),类似write_sfm这种函数要自己能写,学习阶段不建议用现成的。
我也正在学这个,欢迎讨论

使用特权

评论回复
5
Wwilliam|  楼主 | 2011-11-6 16:02 | 只看该作者
本帖最后由 Wwilliam 于 2011-11-6 16:03 编辑

我刚又仔细听了郭天祥这样说的,"   00:01:00 ",从最左边开始,第一位空格定为第0,秒数据写到秒的高位,那数到秒的高位就是第9了,只是未理解为什么?……

使用特权

评论回复
6
yumpie| | 2011-11-6 23:49 | 只看该作者
显示的每个字符对应液晶存储器的一个地址,如果第一空格写在屏幕第一排左端,则地址为00H,依次往右数就是了

使用特权

评论回复
7
yumpie| | 2011-11-6 23:50 | 只看该作者
秒的高位是9,地址就是09H。

使用特权

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

本版积分规则

11

主题

128

帖子

1

粉丝