||
前天调试DS1302时钟芯片,用MC9S08AC60单片机,找了以前网上的程序,改了改,发现不行,读出的时分秒数据位0xFF,0xFF,0xFF,很是郁闷,看DS1302的手册,发现了问题,原来我的单片机用的是20MHz的总线频率,延时不够,时序除了问题,加延时,读出了数据,但是始终不变化,时分秒的数据分别为:0x00,0x00,0x80。郁闷!!!再看手册,查资料,发现了问题,呵呵,因为我的板子上没有焊DS1302的备用电池,第一次对DS1302操作,要先写入初始值,否则芯片不工作,秒寄存器的最高位位1,所以读出来是0x80,嘿嘿,在初始化加上后,读出了正确值,嘿嘿。
总结:1、用芯片前一定要仔细看手册(很少这样,呵呵,没有养成好习惯)
2、对于时序要求比较严格的程序,一定要注意MCU的频率和延时关系,保证时序正确
3、DS1302未接备用电池,使用前一定要初始化,写入初始数据。