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

QQ登錄

只需一步,快速開始

搜索

單片機(jī)實(shí)時(shí)時(shí)鐘顯示 求幫理解啥情況

查看數(shù): 2689 | 評(píng)論數(shù): 7 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請(qǐng)稍候......
發(fā)布時(shí)間: 2020-5-4 08:19

正文摘要:

幫理解一下TIME[2]是個(gè)十六進(jìn)制的存儲(chǔ)方式,那么TIME[2]/16是什么意思?結(jié)果是多少?也是十六進(jìn)制的數(shù)嗎,比如TIME[2]是0x59,那TIME[2]/16值是多少呢,另DIG_CODE[]也是存儲(chǔ)的十六進(jìn)制數(shù)的斷碼,那它的下標(biāo)也是 ...

回復(fù)

ID:462827 發(fā)表于 2020-5-5 21:15
TIME[2]是DS1302讀取時(shí)間的小時(shí)(不全是這樣,這要看你所用的DS1302驅(qū)動(dòng)),TIME[2]/16就是小時(shí)的十位數(shù),TIME[2]%16就是小時(shí)的個(gè)位數(shù),因?yàn)樵赥IME[2]里存的是從時(shí)鐘芯片里讀來的BCD碼表示的時(shí)間。
ID:90619 發(fā)表于 2020-5-5 14:27
csmyldl 發(fā)表于 2020-5-4 10:12
TIME[2]/16即把TIME[2]中的數(shù)據(jù)右移4位得到高4位,如TIME[2]=0x59,通過TIME[2]/16后得到0x05,下標(biāo)從0開 ...

非常感謝,TIME[2]除以十進(jìn)制的數(shù)16,就是右移4位?這個(gè)是依據(jù)啥
ID:90619 發(fā)表于 2020-5-5 14:24
HC6800-ES-V2.0 發(fā)表于 2020-5-4 09:47
沒有看到全部程序,只能以我自己做過這類程序的感覺去猜了。
“時(shí)鐘/日歷包含在7個(gè)寄存器中,數(shù)據(jù)在時(shí)鐘/ ...

非常感謝 你的感覺是對(duì)的  ,你說的16應(yīng)該就是十進(jìn)制的數(shù),然后把它轉(zhuǎn)成十六進(jìn)制的數(shù)0x10,就是0x59/0x10 這個(gè)過程除如何細(xì)致的謝謝 ,與或倒是明白
ID:90619 發(fā)表于 2020-5-5 14:22
wulin 發(fā)表于 2020-5-4 09:52
用一個(gè)字節(jié)的高8位表示10進(jìn)制的十位,低8位表示10進(jìn)制的個(gè)位。
比如TIME[2]是0x59,TIME[2]/16=5,TIME[2] ...

非常感謝 ,但是一個(gè)字節(jié)的高位不明白,比如0x59的高八位不存在吧 ,TIME[2]是十六進(jìn)制  然后除以 16為十進(jìn)制,這個(gè)過程是如何除的? 那得到的結(jié)果是十進(jìn)制嗎?
ID:235200 發(fā)表于 2020-5-4 10:12
TIME[2]/16即把TIME[2]中的數(shù)據(jù)右移4位得到高4位,如TIME[2]=0x59,通過TIME[2]/16后得到0x05,下標(biāo)從0開始按16進(jìn)制計(jì)數(shù),TIME[2]&0x0F得到TIME[2]中的低4位數(shù)據(jù),如TIME[2]=0x59,通過TIME[2]&0x0F運(yùn)算后得到0x09,數(shù)碼管顯示出來的結(jié)果跟預(yù)先預(yù)置的段顯碼有關(guān),一般情況下對(duì)應(yīng)顯示0至F
ID:213173 發(fā)表于 2020-5-4 09:52
用一個(gè)字節(jié)的高8位表示10進(jìn)制的十位,低8位表示10進(jìn)制的個(gè)位。
比如TIME[2]是0x59,TIME[2]/16=5,TIME[2]&0X0F=9。
樓主看懂下面算式就明白TIME[2]/16是什么意思
0x09+0x01=0x10
0000 1001 + 0000 0001 = 0001 0000
ID:164602 發(fā)表于 2020-5-4 09:47
沒有看到全部程序,只能以我自己做過這類程序的感覺去猜了。
“時(shí)鐘/日歷包含在7個(gè)寄存器中,數(shù)據(jù)在時(shí)鐘/日歷寄存器中是二進(jìn)制編碼的十進(jìn)制格式存儲(chǔ)的,也就是常說的BCD碼存儲(chǔ)的!
讀懂這句話,就可以解決你的問題了。

TIME[2]/16是什么意思?就是取時(shí)間數(shù)據(jù),將十位的數(shù)據(jù)變成顯示碼,顯示出的當(dāng)然是十進(jìn)制的。如0x59/16=0x59/0x10=5;0x59&0x0f=9

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

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

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