这几天,着手把以前用DS12C887时钟芯片做的万年历,改成用DS1302来做,以前写DS12C887的代码时感觉蛮轻松,但是写DS1302感觉有些棘手,在调试的过程中更是不顺的种种。开始写代码,一开始用开发板做实验,用LCD1602做显示,这个还是很轻松就搞定了(一天过去了)。
然后自己用DS1302芯片焊了块板子,然后用杜邦线连接到开发板上面进行测试,不过LCD1602什么都没有显示,(以为程序有问题不停改来改去花了很多时间,然后才确定肯定是硬件问题而不是软件问题,以为数据都没有写进DS1302中), 经过分析可能是开发板上面的某些芯片可能会对SPI的数据传输造成一些影响(一天过去了)
自己又焊了一块单片机的板子,把LCD1602给放上去然后连接好DS1302,一上电时钟开始走了,顿时感觉轻松了,结果仔细一看,时间全部都是乱的,我又开始怀疑是程序问题,我开始修改程序,但是怎么样都没有结果(感觉很久没有写程序,放这10多天的假已经没有感觉,感觉无从下手,很是郁闷),找不到问题只能又把LCD1602放到开发板上面去做测试,一试还是可以在开发板上面正常工作,难道是芯片的问题,或者是和晶振没有接电容的关系,马上开始查资料,换芯片,结果还是一样,于是乎真的就傻眼了(一天过去了)
第二天一开始就先在百度上面搜原因和解决方法,最后也没有收到一个解决的方法,我准备在进行一次测试,把LCD1602从开发板上门取下来,然后放到自己做的单片机板子上面,一上电,上面都没有LCD1602亮的不亮,一看引脚,原来插错了,于是就重新插,结果只有背光亮,屏幕没有反应了,试了几次看样子的果断被烧坏了(感觉太背时了)。
一想就气愤,调了这么久没有结果还把东西烧了,觉得不爽还想继续,但是没有LCD1602(这个感觉比较熟悉),只好硬着头皮用LCD12864,还 是先在开发板上面做测试,结果屏幕一片空白,又开始了不断修改程序,结果还是空白的说(一天又过去了),
已经是第五天了,已经快失去耐心了,决定将程序从头到尾仔细进行分析(这之间看了很多不同的人的不同程序),后来发现开发板的DS1302和 LCD12864的片选CS引脚重叠,仔细一想肯定是这个问题,然后将cs引脚断开,终于程序开始正常运行和显示了(感觉对这个又开始有那么一点感觉了),开始把东西移植到焊接的板子上面,结果读回来的值和LCD1602的一样,我想了很久没有想到方法,只能将它显示的数字都抄下来,看看是否有规律可寻,将数据改写成2进制,左看右看也没有看出个所以然来。(一天真的是很快)
晚上睡觉前想了很久很久,还是没有一个可行的方案,早上一开始时就想还是从百度好好找找答案吧,看了好几篇帖子,还是没有结果,不过还是在不停的找着, 顿时感觉就是他了,看之后就更加肯定了,他显示出的问题和我的一模一样,看样子还难倒不少人,而且有些是高手也被这个问题难住了,我马上把线改短,一试就OK了。。。。。