找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2716|回復(fù): 5
收起左側(cè)

關(guān)于ds12c887時鐘芯片單片機修改時間的問題

[復(fù)制鏈接]
ID:703745 發(fā)表于 2020-3-22 22:57 來自手機 | 顯示全部樓層 |閱讀模式
由于是BCD格式,所以讀的時候除16分別得到個位與十位,但是當(dāng)寫時間進(jìn)去的時候應(yīng)該怎樣將十位數(shù)轉(zhuǎn)換成時鐘芯片讀的懂的數(shù)呢?
回復(fù)

使用道具 舉報

ID:164602 發(fā)表于 2020-3-23 09:40 | 顯示全部樓層
個人理解:
1、BCD碼,就是用四位二進(jìn)制,表示一位十進(jìn)制,也就是說:一個二位的十進(jìn)制數(shù),就要有八位二進(jìn)制數(shù)。
2、舉例1——數(shù)據(jù)換算——靜態(tài)
例如要寫一個時間48秒,應(yīng)該寫入芯片的數(shù)據(jù)就是0x48。那么:①48/10,得到4,賦值一個變量A②該變量A左移四位③48%10,得到8④與那個變量A相加,得到0x48。
3、舉例2——數(shù)據(jù)換算——動態(tài)
如果是在調(diào)節(jié)時間這個動態(tài)狀態(tài)下,就非常簡單了。
例如:時間變量A從0開始調(diào)節(jié)到11秒,那么一直加,即0x00,0x01,0x02......0x09,再加就會是0x0a,而a大于9,就加6,0x0a+0x06=0x10,就是BCD碼了,再加1,就是0x11,就是我們要的BCD時間碼。
這是我的理解,也是這樣編程的
只是不知道我講清楚沒有
回復(fù)

使用道具 舉報

ID:703745 發(fā)表于 2020-3-23 09:58 來自手機 | 顯示全部樓層
HC6800-ES-V2.0 發(fā)表于 2020-3-23 09:40
個人理解:
1、BCD碼,就是用四位二進(jìn)制,表示一位十進(jìn)制,也就是說:一個二位的十進(jìn)制數(shù),就要有八位二進(jìn) ...

謝謝大神,解決了,是將兩位數(shù)分為個位與十位,然后十位×16加上個位,時鐘芯片就認(rèn)識了。
回復(fù)

使用道具 舉報

ID:164602 發(fā)表于 2020-3-24 08:58 | 顯示全部樓層
最高權(quán)限 發(fā)表于 2020-3-23 09:58
謝謝大神,解決了,是將兩位數(shù)分為個位與十位,然后十位×16加上個位,時鐘芯片就認(rèn)識了。

其實就是讀取數(shù)據(jù)的逆運算嘛
回復(fù)

使用道具 舉報

ID:1011444 發(fā)表于 2022-5-23 14:20 | 顯示全部樓層
我剛開始學(xué)做ds12c887時鐘,走時和顯示都沒問題,但無法調(diào)整設(shè)置時間,就是只能讀取和顯示時間而不能重新寫入時間,按鍵加減不起作用,什么原因?請指教
回復(fù)

使用道具 舉報

ID:23303 發(fā)表于 2023-6-21 10:04 | 顯示全部樓層
剛開始學(xué)習(xí)12C887,請各位老師多幫助,謝謝!
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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