用力天的开发板,在IAR5.11B版本下调试好了,DS18B20,DS1302,ADC转换,串口通信,还有1602显示。
注意我的开发板单片机是ATMEGA16A,晶振16MHZ。
在调试过程中遇到一些问题,
主要是DS18B20,有时候会显示-0000,原因是在DS18B20的程序中间,延时没有调好,注意一下其中的延时时间,因为它对延时要求比较严格了,一线通信嘛,大家都熟悉的。
还有就是1602的第一行第十位跳动,但是其他所有的位都显示正常,这个问题也是1602驱动程序中间的延时有问题,我将延时时间减小,然后问题就解决了。
下面看看图片。T:代表温度,V:代表电压,第二行是月,天,小时,分钟,秒。
上图是开发板断电后,过一段时间后,重新上电出现的现象,我也很郁闷,怎么回事呢,其实我为了减少电池的损耗,就纽扣电池拿下了,这是因为长时间断电DS1302内部数据消失导致的,所以我们在初始化代码中重新写入时间和日期就好了,DS1302_SetTime(Set_Time);在我的代码中加入此句就好了,该语句的功能是设定DS1302的初始化时间和日期。
单片机将年月日时间发送到串口。
文章评论(0条评论)
登录后参与讨论