欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2394|回復: 7
收起左側

求問一個ds1302時鐘芯片的問題

[復制鏈接]
ID:100982 發表于 2022-8-26 11:24 | 顯示全部樓層 |閱讀模式
看書上的1302的程序,會寫這么一行unsigned char psec=0xAA; //秒備份,初值 AA 確保首次讀取時間后會刷新顯示 不是很明白,這個會和讀取的秒時間進行比較,這個的意思是因為是bcd碼,初值AA超過了9了,清0的意思嗎?


回復

使用道具 舉報

ID:123289 發表于 2022-8-26 14:14 | 顯示全部樓層
只個只能表示給個初值。有沒有其它意思,結合整個程序及硬件設計就清楚了。
回復

使用道具 舉報

ID:100982 發表于 2022-8-26 15:19 | 顯示全部樓層
本帖最后由 wifen 于 2022-8-27 10:09 編輯
  1. while (1)
  2. {
  3. if (flag200ms) //每 200ms 讀取依次時間
  4. {
  5. flag200ms = 0;
  6. DS1302BurstRead(time); //讀取 DS1302 當前時間
  7. if (psec != time[0]) //檢測到時間有變化時刷新顯示
  8. {
  9. str[0] = '2'; //添加年份的高 2 位: 20
  10. str[1] = '0';
  11. str[2] = (time[6] >> 4) + '0'; //“年”高位數字轉換為 ASCII 碼
  12. str[3] = (time[6]&0x0F) + '0'; //“年”低位數字轉換為 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'; //“時”
  26. str[1] = (time[2]&0x0F) + '0';
  27. str[2] = ':'; //添加時間分隔符
  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]; //用當前值更新上次秒數
  36. }
復制代碼



我把用到這塊的貼全,這個初值是啥含義啊
回復

使用道具 舉報

ID:1023753 發表于 2022-8-31 13:45 | 顯示全部樓層
就是分初值,沒什么特殊意義
回復

使用道具 舉報

ID:1043068 發表于 2022-8-31 14:22 | 顯示全部樓層
unsigned char psec=0xAA;
意思就是先臨時用個數據初始值代替上,后面獲取到準確的值就可以更新,就跟大多數電子聯網設備一樣,一開始聯網前日期都是不準的,后面聯網就自動校準了。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:213173 發表于 2022-8-31 16:43 | 顯示全部樓層
wifen 發表于 2022-8-26 15:19
我把用到這塊的貼全,這個初值是啥含義啊

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

使用道具 舉報

ID:100982 發表于 2022-10-25 10:44 | 顯示全部樓層
wulin 發表于 2022-8-31 16:43
就是給psec賦一個不是0~59的任意值psec=0xAA;,但首次讀取1302后,秒數存入time[0],if (psec != time[0] ...

明白了,謝謝,就和變量賦初值是一個意思其實。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表