http://www.raoushi.com/ziliao/51hei-5/DS1302時(shí)鐘_c.rar
顯示效果:
1,數(shù)碼管上顯示:時(shí),分
2,數(shù)碼管分位的小數(shù)點(diǎn)閃爍表示秒
3,時(shí)間初始值10.59.50秒
但是,如果不初始化,開始就顯示不正常了。
倒數(shù)第2行,干掉他就行了,不過(guò)干掉之前別忘記了裝上電池初始化ds1302的時(shí)間,而且電池從此時(shí)開始就不能拔掉了,不然會(huì)就導(dǎo)致顯示不正常.
v_Set1302(); //時(shí)間初值 就是這一句
過(guò)程是:先裝上電池->燒錄我提供的沒(méi)有修改過(guò)的hex文件-> 然后刪掉v_Set1302(); //時(shí)間初值 這一句 -> 然后重新生成hex文件-> 燒錄新的hex文件
這樣就行了,本人已經(jīng)過(guò)試驗(yàn)驗(yàn)證ok
好奇怪,我的先裝一次原來(lái)的hex就顯示正常,再把v_set1302()刪掉,重新生成后,燒入。。。可是每次都顯示00 00 80
顯示00 00 80 表示沒(méi)有起振,可能你的電池已經(jīng)電量不夠,或者接觸不良了,
你加入下面這一句即可起振,就是把秒寄存器的CH位置0.
v_W1302(0X80,0X00);//寫秒起振
但是你的原始時(shí)間值還是沒(méi)有被保留.
你可先看看ds1302的基礎(chǔ)知識(shí) http://apps.hi.baidu.com/share/detail/15013403
問(wèn)題是你先裝了電池,燒錄我提供的原始hex的時(shí)候,CH位已經(jīng)被我的程序置0,而你現(xiàn)在讀出來(lái)的秒是80,就表示CH位已經(jīng)被復(fù)位為1了,而你電池是裝上的,ds1302一直有持續(xù)的供電,不應(yīng)該發(fā)生這種情況,所以我分析是電池沒(méi)電了,或者接觸不良你用萬(wàn)用表測(cè)一下
哈,謝謝,可以用了,果然是電池沒(méi)電了。
歡迎光臨 (http://www.raoushi.com/bbs/) | Powered by Discuz! X3.1 |