我用1602.1302.18b20做了一个单片机最小系统,1602上面显示的时间字符很正常,但温度在不停的闪烁,怎么解决?
第1个回答 2012-05-15
你应该是用到了中断,18b20对时序比较严格,所以在对它进行读写操作时,不能有中断。你在读写18b20的时候,关掉中断,读写完再打开中断就不会出现闪烁的问题了。比如:
EA=0;
T=ReadTemp(); //读温度
EA=1;
这样应该可以的。
第2个回答 2011-07-04
估计在1°间跳动,而且与实际温度有出入。
这是正常现象。
追问不是这个意思,是1602上面的时间字符正常,而温度字符不停的闪烁,不是指温度值变化.
追答你的1602,1302,18B20 是用哪个端口驱动的。
如果是P0的话,就要注意了。
追问注意什么?
追答看一下AT89S52的规格书就知道了,P0口适合于做数据I/O口。
发个电路给大伙看看啊!不要自己闷着。
第3个回答 2011-07-04
估计是不停的读取温度,然后刷新显示。建议你1秒或者更长时间读取一次温度值,然后显示,或者读取温度后,和上次的值对比一下,连续几次不一样再刷新显示并暂存当前温度值
追问但是我的时间也是不停刷新的啊,怎么不闪烁?
追答时间一般不是1s刷新一次么?
追问不是,while中不停的显示.
追答那不应该,你检查下程序吧,顺便问下,你的是在实际电路上的现象,还是仿真软件(比如Proteus)仿真的结果?
Warning: Invalid argument supplied for foreach() in /www/wwwroot/aolonic.com/skin/templets/default/contents.html on line 45
相似回答