標(biāo)題: 分享51單片機(jī)+DS1302+LCD1602萬年歷程序,包括星期自動計算功能 [打印本頁]

作者: q466187669    時間: 2019-5-18 16:16
標(biāo)題: 分享51單片機(jī)+DS1302+LCD1602萬年歷程序,包括星期自動計算功能
一個基于51單片機(jī),DS1302,LCD1602的萬年歷程序。
設(shè)置日期的時候,程序基于蔡勒(Zeller)公式會自動計算星期,包含了BCD碼的處理轉(zhuǎn)換。

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機(jī)源程序如下:
  1. uchar calc_week(uchar y,uchar m,uchar d)
  2. {
  3.     uint temp = 0,m_tmp=0;
  4.     uchar week_temp;
  5.     y = bcd_to_dec(y);
  6.     m = bcd_to_dec(m);
  7.     d = bcd_to_dec(d);
  8.    
  9.     if(m > 2)
  10.     {
  11.         m_tmp = m+1;
  12.         temp = 26*m_tmp;
  13.         temp /= 10;
  14.         week_temp = (y+(y/4)+(temp&0xff)+d-36)%7;
  15.     }
  16.     else
  17.     {
  18.         m_tmp = m+13;
  19.         temp = 26*m_tmp;
  20.         temp /= 10;
  21.         week_temp = (y - 1+((y - 1)/4)+(temp&0xff)+d-36)%7;
  22.     }
  23.     return week_temp;
  24. }
復(fù)制代碼
全部資料51hei下載地址:
Calendar.zip (125.7 KB, 下載次數(shù): 673)


作者: 檸凝檸    時間: 2019-6-16 19:07
真實有效,完全是對的,從來沒有遇到過這么良心的帖子,太感謝了
作者: tiutiu    時間: 2019-6-21 09:01
謝謝樓主~好資料,51黑有你更精彩!!! 完美運(yùn)行了

作者: 8imi8    時間: 2019-10-20 12:23
感謝分享
作者: Tony_W    時間: 2019-11-7 11:03
非常好
作者: Tony_W    時間: 2019-11-7 11:04
代碼寫的真的不錯
作者: jovew    時間: 2019-12-8 16:32
值得研究,好好的看看!
作者: 1860774xxxx    時間: 2019-12-16 09:53
很感謝
作者: 露西亞想沙    時間: 2019-12-21 18:38
為什么會報錯呢
電子鐘.c(1): error C129: missing ';' before 'calc_week'
作者: 蠢姐駕到    時間: 2019-12-27 23:56
有錯誤啊
作者: wyb668    時間: 2020-1-6 21:42
謝謝,正需要
作者: 1860774xxxx    時間: 2020-1-10 00:51
謝謝分享!
作者: 一二一二一    時間: 2020-1-12 19:51
沒有仿真嗎
作者: q466187669    時間: 2020-2-24 19:50
一二一二一 發(fā)表于 2020-1-12 19:51
沒有仿真嗎

有仿真的呀
作者: q466187669    時間: 2020-2-24 19:50
露西亞想沙 發(fā)表于 2019-12-21 18:38
為什么會報錯呢
電子鐘.c(1): error C129: missing ';' before 'calc_week'

是不是不小心按到鍵盤了,我這里沒問題。
作者: q466187669    時間: 2020-2-24 19:52
蠢姐駕到 發(fā)表于 2019-12-27 23:56
有錯誤啊

哈,哪里出錯了?
作者: 超級流氓兔    時間: 2020-3-7 13:48
有用,感謝樓主
作者: 阿喀琉斯    時間: 2020-3-8 13:16
報錯了: error C129: missing ';' before 'calc_week'
作者: yiyuan3085377    時間: 2020-11-23 20:41
咋加個鬧鐘呢

作者: 5083    時間: 2020-11-24 21:22
非常好的例子  感謝樓主無私的分享
作者: hhdsdy    時間: 2020-11-24 22:13
阿喀琉斯 發(fā)表于 2020-3-8 13:16
報錯了: error C129: missing ';' before 'calc_week'

本來我是不想下載的,看到有錯誤特意下載想看看能不能找出錯誤提高自己的閱讀水平,結(jié)果編譯是0錯誤0警告。
錯誤提示的是“calc_week”之前缺少“;”  ,整個工程搜索calc_week只有兩處,一處在在276行的函數(shù)上,前后的大括號都是配對的,符號也正常;另一處在327行上,也是前后都是正確的,所以出錯應(yīng)該是你自己那邊的問題,下載的程序是沒錯的。

作者: 陳筱筱    時間: 2020-11-26 20:24
yiyuan3085377 發(fā)表于 2020-11-23 20:41
咋加個鬧鐘呢

同問加鬧鐘
作者: 羊羊22    時間: 2021-1-2 14:50
樓主,
為啥源碼打開keil就無響應(yīng)
作者: 羊羊22    時間: 2021-1-5 13:09
樓主,燒錄后顯示器只有第二行有黑格子,也沒有數(shù)據(jù)
作者: cy009    時間: 2021-1-23 12:47
有錯誤,打不開
作者: lpcyh    時間: 2021-12-30 18:02
為什么所有的注釋都是亂碼
作者: lmn2005    時間: 2021-12-30 18:11
有沒有帶農(nóng)歷功能?
作者: xiexianxiao    時間: 2022-3-20 18:04
18年之前的星期轉(zhuǎn)換都不對,比如2017-03-01顯示星期日,真實是星期三




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1