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

QQ登錄

只需一步,快速開(kāi)始

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

求問(wèn)一個(gè)ds1302時(shí)鐘芯片的問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:100982 發(fā)表于 2022-8-26 11:24 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
看書(shū)上的1302的程序,會(huì)寫(xiě)這么一行unsigned char psec=0xAA; //秒備份,初值 AA 確保首次讀取時(shí)間后會(huì)刷新顯示 不是很明白,這個(gè)會(huì)和讀取的秒時(shí)間進(jìn)行比較,這個(gè)的意思是因?yàn)槭莃cd碼,初值A(chǔ)A超過(guò)了9了,清0的意思嗎?


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

使用道具 舉報(bào)

沙發(fā)
ID:123289 發(fā)表于 2022-8-26 14:14 | 只看該作者
只個(gè)只能表示給個(gè)初值。有沒(méi)有其它意思,結(jié)合整個(gè)程序及硬件設(shè)計(jì)就清楚了。
回復(fù)

使用道具 舉報(bào)

板凳
ID:100982 發(fā)表于 2022-8-26 15:19 | 只看該作者
本帖最后由 wifen 于 2022-8-27 10:09 編輯
  1. while (1)
  2. {
  3. if (flag200ms) //每 200ms 讀取依次時(shí)間
  4. {
  5. flag200ms = 0;
  6. DS1302BurstRead(time); //讀取 DS1302 當(dāng)前時(shí)間
  7. if (psec != time[0]) //檢測(cè)到時(shí)間有變化時(shí)刷新顯示
  8. {
  9. str[0] = '2'; //添加年份的高 2 位: 20
  10. str[1] = '0';
  11. str[2] = (time[6] >> 4) + '0'; //“年”高位數(shù)字轉(zhuǎn)換為 ASCII 碼
  12. str[3] = (time[6]&0x0F) + '0'; //“年”低位數(shù)字轉(zhuǎn)換為 ASCII 碼
  13. str[4] = '-'; //添加日期分隔符
  14. str[5] = (time[4] >> 4) + '0'; //“月”
  15. str[6] = (time[4]&0x0F) + '0';
  16. str[7] = '-';
  17. str[8] = (time[3] >> 4) + '0'; //“日”
  18. str[9] = (time[3]&0x0F) + '0';
  19. str[10] = '\0';
  20. LcdShowStr(0, 0, str); //顯示到液晶的第一行
  21. str[0] = (time[5]&0x0F) + '0'; //“星期”
  22. str[1] = '\0';
  23. LcdShowStr(11, 0, "week");
  24. LcdShowStr(15, 0, str); //顯示到液晶的第一行
  25. str[0] = (time[2] >> 4) + '0'; //“時(shí)”
  26. str[1] = (time[2]&0x0F) + '0';
  27. str[2] = ':'; //添加時(shí)間分隔符
  28. str[3] = (time[1] >> 4) + '0'; //“分”
  29. str[4] = (time[1]&0x0F) + '0';
  30. str[5] = ':';
  31. str[6] = (time[0] >> 4) + '0'; //“秒”
  32. str[7] = (time[0]&0x0F) + '0';
  33. str[8] = '\0';
  34. LcdShowStr(4, 1, str); //顯示到液晶的第二行
  35. psec = time[0]; //用當(dāng)前值更新上次秒數(shù)
  36. }
復(fù)制代碼



我把用到這塊的貼全,這個(gè)初值是啥含義啊
回復(fù)

使用道具 舉報(bào)

地板
ID:1023753 發(fā)表于 2022-8-31 13:45 | 只看該作者
就是分初值,沒(méi)什么特殊意義
回復(fù)

使用道具 舉報(bào)

5#
ID:1043068 發(fā)表于 2022-8-31 14:22 | 只看該作者
unsigned char psec=0xAA;
意思就是先臨時(shí)用個(gè)數(shù)據(jù)初始值代替上,后面獲取到準(zhǔn)確的值就可以更新,就跟大多數(shù)電子聯(lián)網(wǎng)設(shè)備一樣,一開(kāi)始聯(lián)網(wǎng)前日期都是不準(zhǔn)的,后面聯(lián)網(wǎng)就自動(dòng)校準(zhǔn)了。

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

6#
ID:213173 發(fā)表于 2022-8-31 16:43 | 只看該作者
wifen 發(fā)表于 2022-8-26 15:19
我把用到這塊的貼全,這個(gè)初值是啥含義啊

就是給psec賦一個(gè)不是0~59的任意值psec=0xAA;,但首次讀取1302后,秒數(shù)存入time[0],if (psec != time[0]) 判斷psec != time[0],立即刷新1602顯示(1602以秒速更新),避免1602上電瞬間顯示錯(cuò)亂時(shí)間。
回復(fù)

使用道具 舉報(bào)

7#
ID:100982 發(fā)表于 2022-10-25 10:44 | 只看該作者
wulin 發(fā)表于 2022-8-31 16:43
就是給psec賦一個(gè)不是0~59的任意值psec=0xAA;,但首次讀取1302后,秒數(shù)存入time[0],if (psec != time[0] ...

明白了,謝謝,就和變量賦初值是一個(gè)意思其實(shí)。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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