|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
緊急求助:有誰(shuí)用過(guò)DS12887 ???? |
| 作者:冷暖色 欄目:單片機(jī) |
我在做一個(gè)紅綠燈程序,用了DS12887時(shí)鐘芯片,程序中初始化芯片時(shí)間是13點(diǎn)13分,給電路板加電后,把時(shí)間調(diào)整校正到準(zhǔn)確時(shí)間,并且用數(shù)碼管顯示. 反復(fù)給電路板加電斷電,有時(shí)候數(shù)碼管顯示時(shí)間正確,可為什么有時(shí)候加電后顯示最初的時(shí)間13點(diǎn)13分?為什么沒(méi)記住上次的時(shí)間呢? 是程序有問(wèn)題嗎?但有時(shí)候通電時(shí)間顯示就正確.比如我在14點(diǎn)加電數(shù)碼管就顯示14點(diǎn),但可能在16點(diǎn)加電它有回復(fù)到顯示13點(diǎn)了. 本人是新手,剛用這個(gè)片子,好著急,急盼大家的回復(fù)!! 謝謝。。 |
| 2樓: | >>參與討論 |
| 作者: ojf916 于 2005/10/19 21:45:00 發(fā)布:
問(wèn)題 請(qǐng)注意: 1》復(fù)位電路時(shí)間夠不夠? 2》單片機(jī)等待時(shí)鐘芯片復(fù)位時(shí)間夠不夠? 3》你如何判斷時(shí)鐘芯片已初始化?判斷標(biāo)志存放在時(shí)鐘芯片的RAM嗎? 4》能看你的初始化程序嗎? |
|
| 3樓: | >>參與討論 |
| 作者: lrzxc 于 2005/10/19 23:03:00 發(fā)布:
在論壇中搜索“12887” |
|
| 4樓: | >>參與討論 |
| 作者: 冷暖色 于 2005/10/20 14:15:00 發(fā)布:
to:ojf916 1》復(fù)位電路時(shí)間夠不夠? 我不清楚,復(fù)位時(shí)間怎么得出來(lái)的, 2》單片機(jī)等待時(shí)鐘芯片復(fù)位時(shí)間夠不夠? 你的意思是說(shuō)時(shí)鐘芯片還沒(méi)有來(lái)不及復(fù)位單片機(jī)就開(kāi)始工作了嗎? 也就是說(shuō)因?yàn)闆](méi)復(fù)位所以顯示最初的時(shí)間,是嗎,如果是復(fù)位時(shí)間不夠,那是不是可以修改程序延長(zhǎng)復(fù)位時(shí)間? 4》能看你的初始化程序嗎? 函數(shù)功能:參數(shù)的初始化程序 應(yīng)用范圍: 入口參數(shù): 出口參數(shù): *************************************************************/ void para_init(void) { unsigned CHAR i; time = 0; time_counter = 0; msecond = 0; si_counter = 0; for (i = 0; i < 3; i++) r_data[i] = 0; for (i = 0; i < 53; i++) para_data[i] = 0; flag0 = 0x02; /*obey rtc time*/ flag1 = 0x01; detect_eep_counter = 0; for (i = 0; i < 5; i++) eep_data[i] = 0; passwordl = 0x0D; /*password: 1313*/ passwordh = 0x0D; for (i = 0; i < 50; i++) timetable.element[i] = 0; rtc_read_counter = 0; rtc_error_time = 0; rtc_error_counter = 0; second = 47; minute = 13; hour = 13; /*frist time: 13:13:47*/ } 函數(shù)功能:DS12C887的設(shè)置程序 應(yīng)用范圍: 入口參數(shù): 出口參數(shù): *************************************************************/ void rtc_init(unsigned CHAR thour, unsigned CHAR tminute) { unsigned CHAR i; write_rtc(&R_REGB, 0x96); /*停止工作,更新周期結(jié)束中斷,24小時(shí)模式,BCD格式*/ write_rtc((&R_SECOND)+1, 0xFF); write_rtc((&R_MINUTE)+1, 0xFF); write_rtc((&R_HOUR)+1, 0xFF); /*設(shè)置報(bào)警間隔,1秒一次,未使用*/ write_rtc(&R_CENTURY, 20); write_rtc(&R_YEAR, 5); write_rtc(&R_MONTH, 2); write_rtc(&R_WEEK, 1); write_rtc(&R_DAY, 14); /*set date:2005年2月14日*/ write_rtc(&R_HOUR, thour); write_rtc(&R_MINUTE, tminute); write_rtc(&R_SECOND, second); /*set time*/ write_rtc(&R_TEST, 0x13); /*set flag*/ write_rtc(&R_REGA, 0x20); /*啟動(dòng)晶振*/ i = read_rtc(&R_REGC); /*清除中斷標(biāo)志*/ i = read_rtc(&R_REGD); /*內(nèi)部RAM有效*/ write_rtc(&R_REGB, 0x16); /*開(kāi)始正常工作*/ } 這個(gè)程序有問(wèn)題嗎?那些地方不對(duì)? 還有你的說(shuō)的"判斷標(biāo)志存放在時(shí)鐘芯片的RAM嗎"中的標(biāo)志是不是write_rtc(&R_TEST, 0x13);中的(&R_TEST? |
|
| 5樓: | >>參與討論 |
| 作者: ojf916 于 2005/10/22 15:07:00 發(fā)布:
繼續(xù)。。 1》復(fù)位時(shí)間是由芯片本身規(guī)定的,你看一下芯片資料,至于要多少?gòu)?fù)位時(shí)間你自己算一下(看一下CPU復(fù)位時(shí)間+程序走的時(shí)間滿足時(shí)鐘芯片要求的復(fù)位時(shí)間否)。 2》若你的系統(tǒng)重新上電,怎么調(diào)用子程序rtc_init? 3》初始化沒(méi)啥問(wèn)題。 |
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |