[AVR单片机] atmgea16用1602液晶显示ds1302和ds18b20的问题

[复制链接]
3728|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 | 显示全部楼层
温度转换时间跟你的系统没有关系,你只是定时去读取值再显示出来就好
这肯定是你的程序问题,自己好好检查一下
liuyaoping 发表于 2011-9-16 17:02 | 显示全部楼层
可以跟你沟通一下。联系方式:谢谢!
joyme 发表于 2011-9-17 11:08 | 显示全部楼层
要保证时钟显示正确(以1s为例),
程序必须
1、在1s中之内至少刷新2-3次屏显
2、循环执行的所有子程序执行时间和小于500ms
至于温度转换时间是ds18b20自己的事,你只要定时去读取就好,至于它是否转换完对你读取应该没有影响(最多就是连续几次读取的数据是不变的)
qin552011373 发表于 2011-9-25 17:24 | 显示全部楼层
学习了
 楼主| zage2009 发表于 2011-10-3 12:54 | 显示全部楼层
6# joyme

已经解决了,多谢。准备再在论坛中找相关程序,改进一下程序。
jstiger 发表于 2011-10-11 16:40 | 显示全部楼层
我最近也在琢磨写呢,楼主共享一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

36

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部