打印
[AVR单片机]

atmgea16用1602液晶显示ds1302和ds18b20的问题

[复制链接]
2701|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zage2009|  楼主 | 2011-9-13 19:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
把程序写好,调试后写进片子里,在1602液晶上能正常显示电子钟和温度,但是过一会发现电子钟的秒显示有点问题:有时从第1秒跳到第三秒,然后变正常,过一会可能又出现类似的问题。如果不加ds18b20,秒的显示就很正常,是连续的。最后发现,可能是由于ds18b20转换时间至少要750ms,当显示完1秒后,ds1820转换后,差不多过去1秒了,液晶就直接显示第三秒了。不知道我的结论是否正确。

各位在写操作ds1302和ds18B20的时候是否遇到过这个问题,怎么解决呢?

相关帖子

沙发
joyme| | 2011-9-16 11:22 | 只看该作者
750ms是什么概念,按平均一条语句4-5个指令周期,bus频率为1M,也能执行750*200条语句,LZ怎么转换一个时间要750多ms,这个系统真的不用做了

使用特权

评论回复
板凳
zage2009|  楼主 | 2011-9-16 11:57 | 只看该作者
可是数据手册中说ds18b20的分辨率为12位时,对应的温度最大转换时间是750ms,网上查到的例程里也有要延时750ms的,难道不需要这么长的等待时间温度转换就能完成吗,还是用中断解决?

使用特权

评论回复
地板
joyme| | 2011-9-16 12:18 | 只看该作者
温度转换时间跟你的系统没有关系,你只是定时去读取值再显示出来就好
这肯定是你的程序问题,自己好好检查一下

使用特权

评论回复
5
liuyaoping| | 2011-9-16 17:02 | 只看该作者
可以跟你沟通一下。联系方式:谢谢!

使用特权

评论回复
6
joyme| | 2011-9-17 11:08 | 只看该作者
要保证时钟显示正确(以1s为例),
程序必须
1、在1s中之内至少刷新2-3次屏显
2、循环执行的所有子程序执行时间和小于500ms
至于温度转换时间是ds18b20自己的事,你只要定时去读取就好,至于它是否转换完对你读取应该没有影响(最多就是连续几次读取的数据是不变的)

使用特权

评论回复
7
qin552011373| | 2011-9-25 17:24 | 只看该作者
学习了

使用特权

评论回复
8
zage2009|  楼主 | 2011-10-3 12:54 | 只看该作者
6# joyme

已经解决了,多谢。准备再在论坛中找相关程序,改进一下程序。

使用特权

评论回复
9
jstiger| | 2011-10-11 16:40 | 只看该作者
我最近也在琢磨写呢,楼主共享一下。

使用特权

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

本版积分规则

3

主题

36

帖子

0

粉丝