音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

求助:萬年歷程序

作者:troye 欄目:單片機
求助:萬年歷程序
我想用c語言編寫一個萬年歷的程序。導(dǎo)師說有這方面的算法等資料,可是我不知道該去哪兒找。請有這方面經(jīng)驗的前輩不吝賜教。感激不盡。

2樓: >>參與討論
troye
ps:
剛才忘記了。我的E-mail:liuzhidongcn@163.com

3樓: >>參與討論
艾森豪威爾
你到網(wǎng)上一搜,一堆一堆的
www.programsalon.com上可以下載到,不過你要先往上傳代碼

4樓: >>參與討論
莊莊
你上網(wǎng)搜“匠人的百寶箱”
他那里有好多程序

5樓: >>參與討論
wengheiwei
用專用芯片啊,挺簡單的啊,
 
6樓: >>參與討論
imaway
要的是哪種?
萬年歷有多種,在什么上實現(xiàn)?

我的網(wǎng)站
我的網(wǎng)站
我的論壇
給我來信:我的郵箱imaway@126.com


* - 本貼最后修改時間:2005-11-24 13:23:41 修改者:imaway

http://www.51dz.com/sop/disp.asp?sn=12519&i=imaway

7樓: >>參與討論
imaway
做的怎樣啦?
 萬年歷做的怎樣啦?

8樓: >>參與討論
LPC900
推薦PHILIPS的實時時鐘/日歷芯片PCF8563,硬件自動實現(xiàn)萬年歷
PCF8563PHILIPS半導(dǎo)體推出的實時時鐘/日歷芯片,僅8個管腳,I2C總線接口,超低功耗(0.25μA),低價格。硬件能自動實現(xiàn)萬年歷功能,你要做的僅僅是設(shè)置時間和日期的初值,而時間和日期的進位硬件可以自動完成。自動判斷閏年,無“千年蟲”問題。另外還有報時功能、定時器功能、中斷功能、可編程方波輸出功能。

http://www.zlgmcu.com/philips/iic/pcf8563.asp

9樓: >>參與討論
lag3631
回復(fù)
這類東西網(wǎng)上好多的

10樓: >>參與討論
javie
軟件實現(xiàn)很簡單的啊
你只需要把閏年來處理好就行

普通的C語言書上就有對于閏年的算法示例

如此。。。OK

11樓: >>參與討論
LPC900
萬年歷程序?qū)懗鰜聿缓芾щy,但是寫得規(guī)范、高效、可靠并不容易
推薦PHILIPS的實時時鐘/日歷芯片PCF8563,硬件自動實現(xiàn)萬年歷功能。

http://www.zlgmcu.com/philips/iic/pcf8563.asp

12樓: >>參與討論
陳遠征
忘了這是從誰哪里下的了:)
二.本程序涉及到的算法

1.閏年的判斷:

閏年的條件:①能被4整除,但不能被100整除的年份是閏年,如2004年是閏年;②能被100整除,又能被400整除的年份是閏年,如2000年是閏年。不符合這兩個條件的年份都不是閏年。

實現(xiàn):如果邏輯表達式( year%4==0 && year%100!=0 || year%400==0 )的值為真,則為閏年,否則不是閏年。

2.某年某月某日是這一年的第幾天:加啦(前N個月的天數(shù)+該月日期),不難吧。如2004年3月12日是這一年的第(31+29)+12=72天,記住了閏年2月是29天哦。

3.某年某月某日是星期幾年算法:

求((year-1)+(year-1)/4-(year-1)/100+(year-1)/400)+days)%7的余數(shù),余數(shù)為0(星期日),為1(星期一),為2(星期二),……為6(星期六)。如2004年3月12日為

((2004-1)+(2004-1)/4-(2004-1)/100+(2004-1)/400+72)%7=5,為星期五。




適用于51系列單片機的一種萬年歷優(yōu)化算法源程序


一、 陽歷算法

具體算法見函數(shù)Void get_solar_day_date(void),這樣陽歷日歷的星期排法就確定了。
表1:


月份 1 2 3 4 5 6 7 8 9 10 11 12
閏年 31 29 31 30 31 30 31 31 30 31 30 31
非閏年 31 28 31 30 31 30 31 31 30 31 30 31

變量定義:
Public:
   Unsigned int temp_total_day;
   Unsigned CHAR gc_solar_calendar_year;
   Unsigned CHAR gc_solar_calendar_month;
   Unsigned CHAR gc_solar_calendar_date;
   Unsigned CHAR gc_lunar_calendar_year;
   Unsigned CHAR gc_lunar_calendar_month;
   Unsigned CHAR gc_lunar_calendar_date;
   Unsigned CHAR start_day_of_week;
說明:函數(shù)get_solar_day_date(void)的輸入變量:gc_solar_calendar_year 和gc_solar_calendar_month
輸出變量:start_day_of_week和temp_total_day
Void get_solar_day_date(void)
{
    unsigned CHAR TEMP01;
    /*------calculate what day is the day of the current month and year. Mon~Sun?---*/
    /*條件初始化二次,減少運算數(shù)據(jù)量. temp_total_day 是int型變量*/
    start_day_of_week = 2;
    temp_total_day = 0;
    calculate_temp = 1;
    if(gc_solar_calendar_year > 99)
   {
         start_day_of_week = 6;calculate_temp = 100;
     }
    for(TEMP01 = calculate_temp; TEMP01<gc_solar_calendar_year; TEMP01++)
   {
        if(TEMP01%4 == 0)
       {
             start_day_of_week +=2;
            temp_total_day += 366;
        }
        else
     {
             start_day_of_week +=1;
             temp_total_day += 365;
      }
   }
   for(TEMP01 = 1;TEMP01<gc_solar_calendar_month;TEMP01++)
   {
       SWITCH(TEMP01)
       {
            case 1,3,5,7,8,10,12:
                 start_day_of_week +=3;
                 temp_total_day +=31;
                 break;
            case 2:
                 if(((gc_solar_calendar_year%4) == 0)&&(gc_solar_calendar_year != 200))
                 {
                      start_day_of_week +=1;
                      temp_total_day +=29;
                  }
                  else
                  {
                       start_day_of_week +=0;
                       temp_total_day +=28;
                   }
                   break;
             case 4,6,9,11:
                  start_day_of_week +=2;
                  temp_total_day +=30;
                  break;
        }
    }
    start_day_of_week %=7;
   /*-end of calculate what day is the day(Mon~Sun?) and total day --*/
}


二、 陰歷算法
200年需要200 × 2 = 400個字節(jié),構(gòu)成陰歷壓縮數(shù)據(jù)表lunar_calendar_month_table[]如下:
const CHAR lunar_calendar_month_table[]={ //從陰歷年1900年到2100
/*the total day of each month pointer */
/* from 1901~2100*/
/* (0110)110000001001 (0110)leap month,110000001001
lunar month total day: 1:29 0:30*/
0x00,0x04,0xad,0x08,0x5a,0x01,0xd5,0x54,0xb4,0x09,0x64,0x05,0x59,0x45, 0x95,0x0a,0xa6,0x04,0x55,0x24,0xad,0x08,0x5a,0x62,0xda,0x04,0xb4,0x05, 0xb4,0x55,0x52,0x0d,0x94,0x0a,0x4a,0x2a,0x56,0x02,0x6d,0x71,0x6d,0x01, 0xda,0x02,0xd2,0x52,0xa9,0x05,0x49,0x0d,0x2a,0x45,0x2b,0x09,0x56,0x01, 0xb5,0x20,0x6d,0x01,0x59,0x69,0xd4,0x0a,0xa8,0x05,0xa9,0x56,0xa5,0x04, 0x2b,0x09,0x9e,0x38,0xb6,0x08,0xec,0x74,0x6c,0x05,0xd4,0x0a,0xe4,0x6a, 0x52,0x05,0x95,0x0a,0x5a,0x42,0x5b,0x04,0xb6,0x04,0xb4,0x22,0x6a,0x05, 0x52,0x75,0xc9,0x0a,0x52,0x05,0x35,0x55,0x4d,0x0a,0x5a,0x02,0x5d,0x31, 0xb5,0x02,0x6a,0x8a,0x68,0x05,0xa9,0x0a,0x8a,0x6a,0x2a,0x05,0x2d,0x09, 0xaa,0x48,0x5a,0x01,0xb5,0x09,0xb0,0x39,0x64,0x05,0x25,0x75,0x95,0x0a, 0x96,0x04,0x4d,0x54,0xad,0x04,0xda,0x04,0xd4,0x44,0xb4,0x05,0x54,0x85, 0x52,0x0d,0x92,0x0a,0x56,0x6a,0x56,0x02,0x6d,0x02,0x6a,0x41,0xda,0x02, 0xb2,0xa1,0xa9,0x05,0x49,0x0d,0x0a,0x6d,0x2a,0x09,0x56,0x01,0xad,0x50, 0x6d,0x01,0xd9,0x02,0xd1,0x3a,0xa8,0x05,0x29,0x85,0xa5,0x0c,0x2a,0x09, 0x96,0x54,0xb6,0x08,0x6c,0x09,0x64,0x45,0xd4,0x0a,0xa4,0x05,0x51,0x25, 0x95,0x0a,0x2a,0x72,0x5b,0x04,0xb6,0x04,0xac,0x52,0x6a,0x05,0xd2,0x0a, 0xa2,0x4a,0x4a,0x05,0x55,0x94,0x2d,0x0a,0x5a,0x02,0x75,0x61,0xb5,0x02, 0x6a,0x03,0x61,0x45,0xa9,0x0a,0x4a,0x05,0x25,0x25,0x2d,0x09,0x9a,0x68, 0xda,0x08,0xb4,0x09,0xa8,0x59,0x54,0x03,0xa5,0x0a,0x91,0x3a,0x96,0x04, 0xad,0xb0,0xad,0x04,0xda,0x04,0xf4,0x62,0xb4,0x05,0x54,0x0b,0x44,0x5d, 0x52,0x0a,0x95,0x
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
誰知道k9k29是啥東東??
請教關(guān)于AT89C2051單片機
請用過DAC0832的高手幫忙
請幫我推薦適合做小玩意的4位/8位單片機
有誰研究過keil的Startup.A51,其最后的ljmp ?C_START ??
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號