|
本帖最后由 exv 于 2014-12-6 12:58 編輯
看了論壇中幾個有農(nóng)歷的時鐘程序,無一例外使用查表法實現(xiàn)的,且只能查上下100年(因為DS1302只有上下一百年)。
看過莆田第十中學(xué)許劍偉老師的農(nóng)歷算法,可實現(xiàn)上下五千年農(nóng)歷的計算(含節(jié)氣),
與主函數(shù)直接相關(guān)的C代碼就有6000余行;
關(guān)于日月星辰軌道計算的代碼有數(shù)十組,
每一組換算往往涉及幾十個64位double。
不知道51單片機在 合理 配置的情況下,能否實現(xiàn)這樣的計算?
如果不行,實現(xiàn)這一功能的最低配置是?
許劍偉老師的代碼這兒就不貼了(估計也貼不下),百度下 莆田第十中學(xué)許劍偉老師 即可。
51hei人才濟濟,下面這段計算圓周率的代碼大家應(yīng)該非常熟悉,古人幾十本書還沒說清的一兩行就搞定了:- long a=10000,b,c=2800,d,e,f[2801],g;
- void main(){for(;b-c;)f[b++]=a/5;for(;d=0,g=c*2;c-=14,cout<<e+d/a,e=d%a)for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b);}
復(fù)制代碼
古人制農(nóng)歷最多也就是算盤,難道 51單片機 真敵不過古人算盤?
另外,許老師的日歷程序除了可定農(nóng)歷日期/節(jié)氣,還可依此結(jié)合設(shè)定的經(jīng)緯度換算出每天的日落日出,非常實用。
|
|