找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2473|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

二手DS12C887使用時(shí)還要初始化嗎?萬年歷代碼中要?jiǎng)h除的語句問題?請(qǐng)高手指點(diǎn)。

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:476623 發(fā)表于 2020-8-6 22:16 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
本人剛開始學(xué)習(xí)單片機(jī),手里有一片使用過的DS12C887芯片,想學(xué)習(xí)制作一個(gè)萬年歷,下載了別人的代碼在學(xué)習(xí)中了解到,首次操作12C887時(shí),寄存器要初始化,初始化完成后相應(yīng)的代碼要?jiǎng)h除。代碼中有兩段是關(guān)于12C887初始化,有一段起點(diǎn)和結(jié)束注解的很清楚,整段刪除就可以,還有一段注解不是很清楚,不知道哪里是結(jié)束點(diǎn)。請(qǐng)高手給予指點(diǎn)一二。謝謝啦!
下面是標(biāo)注清楚的一段:
/*
                   首次操作12C887時(shí),寄存器初始化
                   配置12C887當(dāng)前時(shí)間(20190716-10:54:07)
                   配置12C887鬧鐘
*/
void set_time(void)
{
   write_ds(0,7);
   write_ds(1,0);
   write_ds(2,54);
   write_ds(3,0);
   write_ds(4,10);
   write_ds(5,0);
   write_ds(6,3);
   write_ds(7,16);
   write_ds(8,7);
   write_ds(9,19);
}
/*首次上電設(shè)置DS12C887時(shí)使用,以后不必再調(diào)用*/
下面這一段注解不是很清楚,不知道刪除到哪里結(jié)束:,還有就是初始化代碼都刪除了,后面還有一句“init();調(diào)用初始化函數(shù)”怎么辦?
void set_time()                 //首次操作12c887時(shí)給寄存器初始化,完成后,要把這一段用給屏蔽起來
{
write_ds(0,0);                //根據(jù)寄存器A,相當(dāng)于     所有的位置,全部顯示00
write_ds(1,0);
write_ds(2,0);
write_ds(3,0);
write_ds(4,0);
write_ds(5,0);
write_ds(6,0);
write_ds(7,0);
write_ds(8,0);
write_ds(9,0);
}      
void read_alarm()                    //讀取鬧鐘值
{
amiao=read_ds(1);                根據(jù)寄存器A,分別把鬧鐘值讀出來,并且賦值給時(shí)分秒
afen=read_ds(3);
ashi=read_ds(5);
}
void main()                                //主程序
{
init();                                         //調(diào)用初始化函數(shù)
while(1)                                    //為真不斷循環(huán),等待鬧鐘中斷
{
還有下面這一段是不是只刪除打開振蕩器這一句代碼就可以了?
write_ds(0x0A,0x20);     //首次使用ds12c887時(shí)使用,以后不必在寫。打開振蕩器
write_ds(0x0B,0x26);          // 設(shè)置24小時(shí)模式,數(shù)據(jù)二進(jìn)制格式,開啟鬧鐘中斷。
    //0A,0B表示地址,2026翻譯成二進(jìn)制是00100000,00100110對(duì)應(yīng)著對(duì)著寄存器ABD7-D0
set_time();           //設(shè)置默認(rèn)上電時(shí)間

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:332444 發(fā)表于 2020-8-7 08:45 | 只看該作者
函數(shù)的第一對(duì)花括號(hào)就是函數(shù)的整個(gè)函數(shù)體了,void set_time() {。。。}也就是你所謂的開始和結(jié)束。
回復(fù)

使用道具 舉報(bào)

板凳
ID:476623 發(fā)表于 2020-8-7 10:22 | 只看該作者
謝謝樓上的回復(fù)。明白了“一對(duì)花括號(hào)就是函數(shù)的整個(gè)函數(shù)體”。
又下載了另外一個(gè)萬年歷代碼,確認(rèn)了就是一對(duì)花括號(hào)內(nèi)的語句全部刪除。還有就是 打開振蕩器那個(gè)地方要?jiǎng)h除三段語句。
現(xiàn)在就!罢{(diào)用初始化函數(shù)”這一個(gè)問題了,再仔細(xì)看一下代碼是不是另有所指。

回復(fù)

使用道具 舉報(bào)

地板
ID:123289 發(fā)表于 2020-8-7 17:01 | 只看該作者
你需要讀通DS12C887的手冊(cè),而后再寫程序。!
回復(fù)

使用道具 舉報(bào)

5#
ID:796012 發(fā)表于 2020-11-8 17:18 | 只看該作者
樓主,我試了下,是這樣的,初始化完成后,僅需在大括號(hào)內(nèi)屏蔽那10條語句,之后重新編譯程序,拔出DS12887+,然后新編譯程序僅下載到單片機(jī)就OK了,親測(cè)有效。

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

6#
ID:796012 發(fā)表于 2020-11-8 17:19 | 只看該作者
/*初始化完成后,拔掉DS12C887+,
然后從大括號(hào)處屏蔽此10條語句,之后
重新僅下載到單片機(jī),之后再插上
DS12C887+就可以斷電運(yùn)行時(shí)間了*/

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

7#
ID:772379 發(fā)表于 2021-2-5 19:36 | 只看該作者
樓主。我和你用的參考程序是同一個(gè)人的,我這邊刪掉初始化代碼,但是lcd顯示的內(nèi)容有亂碼?請(qǐng)問你有遇到這種情況嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表