|
這是一個帶紅外遙控控制的單片機萬年歷源程序,還有鬧鐘的功能:
IMG0703A.jpg (58.36 KB, 下載次數(shù): 37)
下載附件
2017-3-7 00:58 上傳
IMG0699A.jpg (58.65 KB, 下載次數(shù): 33)
下載附件
2017-3-7 00:58 上傳
IMG0700A.jpg (58.34 KB, 下載次數(shù): 34)
下載附件
2017-3-7 00:58 上傳
IMG0701A.jpg (57.55 KB, 下載次數(shù): 57)
下載附件
2017-3-7 00:58 上傳
IMG0702A.jpg (58.38 KB, 下載次數(shù): 28)
下載附件
2017-3-7 00:58 上傳
部分單片機源碼:
- #ifndef __displaytime_H__
- #define __displaytime_H__
- #include "nongli.h"
- #include "zk.h"
- #include "bell.h"
- #include "LCD12864.h"
- uchar sec,min,hour,day,date,month,year,week,day_moon;
- uchar sel,dd,mo,yy;
- /*顯示年、月、日、星期-------------------------------------------------------*/
- void displaydate(void)
- {
- write_com(0x30);
- write_com(0x06);
- /*往液晶屏填寫 年 數(shù)據(jù)-------------------------------------------*/
- lcm_w_test(0,0x80);
- lcm_w_word("20");
- year=read_clock(0x8d);//調用1302時鐘數(shù)據(jù)中的年數(shù)據(jù),從地址0x8d中
- lcm_w_test(1,(year/16+0x30));
- lcm_w_test(1,(year%16+0x30));
- // lcm_w_word("年");
-
- /*往液晶屏填寫 月 數(shù)據(jù)-------------------------------------------*/
- month=read_clock(0x89);//調用1302時鐘數(shù)據(jù)中的月數(shù)據(jù),從地址0x89中
- lcm_w_word("-");
- /*
- if(month/10 != 0){write_data((month/10)+0x30);}
- else{write_data(0x20);}//十位消隱
- */
- lcm_w_test(1,(month/16+0x30));
- lcm_w_test(1,((month%16)+0x30));
- // lcm_w_word("月");
- /*往液晶屏填寫 日 數(shù)據(jù)-------------------------------------------*/
- date=read_clock(0x87);//從1302芯片中讀取日數(shù)據(jù),從地址0x87中
- lcm_w_word("-");
- /*
- if(date/10 != 0){write_data((date/10)+0x30);}
- else{write_data(0x20);}//十位消隱
- */
- lcm_w_test(1,(date/16+0x30));
- lcm_w_test(1,(date%16+0x30));
- // lcm_w_word("日");
- }
- /*往液晶屏填寫 星期 數(shù)據(jù)-----------------------------------------*/
- void displayxq(void){
- dd = read_clock(0x87);//日
- mo = read_clock(0x89);//月
- yy = read_clock(0x8d);//年
- Conver_week(0,yy,mo,dd);//調用公歷換算星期子函數(shù)
- sel=week;//week是公歷轉換星期子函數(shù)的運行結果,結果為0-6,0是星期日
- lcm_w_test(0,0x86);//顯示位置
- if(sel==0) {lcm_w_word("日");} //0=星期日
- if(sel==6) {lcm_w_word("六");} //
- if(sel==5) {lcm_w_word("五");} //
- if(sel==4) {lcm_w_word("四");} //
- // if(sel==3) {lcm_w_word("三");}//經調試發(fā)現(xiàn)液晶屏不認這一句,只好用下一句顯示 三 。需要打補丁才能正確顯示。
- if(sel==3) {lcm_w_test(1,0xc8);lcm_w_test(1,0xfd);} //此指令等于lcm_w_word("三"); 因為“三”的內碼失效。
- if(sel==2) {lcm_w_word("二");} //
- if(sel==1) {lcm_w_word("一");} //星期一
- lcm_w_test(0,0x85);
- lcm_w_word("周");//調用字符顯示子函數(shù),顯示 "周"
- }
- /*需要繪圖顯示的:時、分、秒--------------------------------------------------*/
- void displaytime(void)
- {
- /*往液晶屏填寫 小時 數(shù)據(jù)-----------------------------------------*/
- if(read_clock(0x85)!=hour)//更新小時數(shù)據(jù),然后整點報時
- {//也可根據(jù)個人需要設定在那個時間段進行報時,只需加條if語句便可
- hour = read_clock(0x85);//讀取DS1302的小時
- BEEP=0;DelayM(160);BEEP=1; //整點報時
-
- }
- write_com(0x88);
- write_data((hour/16)+0x30);
- write_data((hour%16)+0x30);
- lcm_w_word(":");
- /*往液晶屏填寫 分鐘 數(shù)據(jù)-----------------------------------------*/
- min = read_clock(0x83); //讀取DS1302的 分
- write_data((min/16)+0x30);
- write_data((min%16)+0x30);
- lcm_w_word(":");
- /*往液晶屏填寫 秒鐘 數(shù)據(jù)-----------------------------------------*/
- sec= read_clock(0x81); //讀取DS1302的 秒
- write_data((sec/16)+0x30);
- write_data((sec%16)+0x30);
- }
- /*顯示農歷日期---------------------------------------------------------------*/
- void displaynl(void)
- {
- Conversion(century,year,month,date); //公歷轉農歷
- write_com(0x30); write_com(0x06); write_com(0x90);
- if (month_moon==1) {lcm_w_word("正");}
- if (month_moon==2) {lcm_w_word("二");}
- // if (month_moon==2) {lcm_w_word("三");}
- if (month_moon==3) {lcm_w_test(1,0xc8);lcm_w_test(1,0xfd);}
- if (month_moon==4) {lcm_w_word("四");}
- if (month_moon==5) {lcm_w_word("五");}
- if (month_moon==6) {lcm_w_word("六");}
- if (month_moon==7) {lcm_w_word("七");}
- if (month_moon==8) {lcm_w_word("八");}
- if (month_moon==9) {lcm_w_word("九");}
- if (month_moon==10){lcm_w_word("十");}
- if (month_moon==11){lcm_w_word("冬");}
- if (month_moon==12){lcm_w_word("臘");}
- lcm_w_word("月");
- if (day_moon==1) {lcm_w_word("初一");}
- if (day_moon==2) {lcm_w_word("初二");}
- if (day_moon==3) {lcm_w_word("初");lcm_w_test(1,0xc8);lcm_w_test(1,0xfd);} //“三”的代碼
- if (day_moon==4) {lcm_w_word("初四");}
- if (day_moon==5) {lcm_w_word("初五");}
- if (day_moon==6) {lcm_w_word("初六");}
- if (day_moon==7) {lcm_w_word("初七");}
- if (day_moon==8) {lcm_w_word("初八");}
- if (day_moon==9) {lcm_w_word("初九");}
- if (day_moon==10) {lcm_w_word("初十");}
- if (day_moon==11) {lcm_w_word("十一");}
- if (day_moon==12) {lcm_w_word("十二");}
- if (day_moon==13) {lcm_w_word("十");lcm_w_test(1,0xc8);lcm_w_test(1,0xfd);} //十三
- if (day_moon==14) {lcm_w_word("十四");}
- if (day_moon==15) {lcm_w_word("十五");}
- if (day_moon==16) {lcm_w_word("十六");}
- if (day_moon==17) {lcm_w_word("十七");}
- if (day_moon==18) {lcm_w_word("十八");}
- if (day_moon==19) {lcm_w_word("十九");}
- if (day_moon==20) {lcm_w_word("二十");}
- if (day_moon==21) {lcm_w_word("廿一");}
- if (day_moon==22) {lcm_w_word("廿二");}
- if (day_moon==23) {lcm_w_word("廿");lcm_w_test(1,0xc8);lcm_w_test(1,0xfd);} //廿三
- if (day_moon==24) {lcm_w_word("廿四");}
- if (day_moon==25) {lcm_w_word("廿五");}
- if (day_moon==26) {lcm_w_word("廿六");}
- if (day_moon==27) {lcm_w_word("廿七");}
- if (day_moon==28) {lcm_w_word("廿八");}
- if (day_moon==29) {lcm_w_word("廿九");}
- if (day_moon==30) {lcm_w_test(1,0xc8);lcm_w_test(1,0xfd);lcm_w_word("十");} //三十
- }
- /****************************************************************************/
- void displayJr(void) //節(jié)日數(shù)據(jù)庫
- {
- write_com(0x98);
- //**********************1月份**********************************************
- if ( mo == 0x01 && dd == 0x01 ){ lcm_w_word("Happy New Year!!"); }//1月
- if ( mo == 0x01 && dd == 0x05 ){ lcm_w_word("二十四節(jié)氣:小寒"); }
- if ( mo == 0x01 && dd == 0x20 ){ lcm_w_word("二十四節(jié)氣:大寒"); }
- if (month_moon== 1 && day_moon == 1 ){ lcm_w_word("※※春節(jié)快樂※※"); }//陰歷日期填陰歷月和日
- if (month_moon== 1 && day_moon == 15 ){ lcm_w_word("※元宵節(jié)快樂!!※"); }
-
- //************************2月份*****************************************************
-
- if ( mo == 0x02 && dd == 0x03 ){ lcm_w_word("二十四節(jié)氣:立春"); }//2月
- // if ( mo == 0x02 && dd == 0x13 ){ lcm_w_word(" 明天情人節(jié)了 "); }
- if ( mo == 0x02 && dd == 0x14 ){ lcm_w_word("◆情人節(jié)快樂!!◆"); }//陽歷日期填實際的陽歷月和日
- // if ( mo == 0x02 && dd == 0x20 ){ lcm_w_word("二十四節(jié)氣:雨水"); }//陽歷日期填實際的陽歷月和日
- //**************************3月份***************************************************
- // if ( mo == 0x03 && dd == 0x05 ){ lcm_w_word("二十四節(jié)氣:驚蟄"); }
- if ( mo == 0x03 && dd == 0x03 ){ lcm_w_word("二十四節(jié)氣:春分"); }
- if ( mo == 0x03 && dd == 0x08 ){ lcm_w_word("☆三·八婦女節(jié)☆"); }
- if ( mo == 0x03 && dd == 0x12 ){ lcm_w_word("┣今天植樹節(jié)!!┫"); }
- if ( mo == 0x03 && dd == 0x15 ){ lcm_w_word("⊙消費者權益日⊙"); }
- // if ( mo == 0x03 && dd == 0x31 ){ lcm_w_word(" 明天是愚人節(jié) "); }
- if ( mo == 0x04 && dd == 0x01 ){ lcm_w_word("愚人節(jié)◆小心上當"); }//3
-
- //****************************4月份*************************************************
- if ( mo == 0x04 && dd == 0x04 ){ lcm_w_word("二十四節(jié)氣:清明"); }
- // if ( mo == 0x04 && dd == 0x08 ){ lcm_w_word("今天是復活節(jié)"); }
- // if ( mo == 0x04 && dd == 0x19 ){ lcm_w_word("二十四節(jié)氣:谷雨"); }
- if (month_moon== 5 && day_moon == 5 ){ lcm_w_word("◆今天乃端午節(jié)◆"); }
-
- //*****************************5月份************************************************
- // if ( mo == 0x04 && dd == 0x30 ){ lcm_w_word("明天是五一勞動節(jié)"); }//5
- if ( mo == 0x05 && dd == 0x01 ){ lcm_w_word("△五一勞動節(jié)!!△"); }//5
- if ( mo == 0x05 && dd == 0x04 ){ lcm_w_word("≌五四青年節(jié)!!≌"); }
- if ( mo == 0x05 && dd == 0x05 ){ lcm_w_word("二十四節(jié)氣:立夏"); }
- // if ( mo == 0x05 && dd == 0x05 ){ lcm_w_word("近日注意母親節(jié) "); }
- if ( mo == 0x05 && dd == 0x10 ){ lcm_w_word("★今天是母親節(jié)★"); }
- // if ( mo == 0x05 && dd == 0x20 ){ lcm_w_word("二十四節(jié)氣:小滿"); }
-
- //****************************6月份*************************************************
- if ( mo == 0x06 && dd == 0x01 ){ lcm_w_word("※今天是兒童節(jié)※"); }//6
- if ( mo == 0x06 && dd == 0x05 ){ lcm_w_word("二十四節(jié)氣:芒種"); }
- // if ( mo == 0x06 && dd == 0x13 ){ lcm_w_word("近日注意父親節(jié) "); }
- // if ( mo == 0x06 && dd == 0x15 ){ lcm_w_word("近日注意父親節(jié) "); }
- if ( mo == 0x06 && dd == 0x21 ){ lcm_w_word("△今天是父親節(jié)△"); }
- if (month_moon== 7 && day_moon == 7 ){ lcm_w_word("七夕--中國情人節(jié)"); }
-
- //****************************7月份*************************************************
- // if ( mo == 0x07 && dd == 0x06 ){ lcm_w_word("二十四節(jié)氣:小暑"); }
- // if ( mo == 0x07 && dd == 0x07 ){ lcm_w_word("抗日戰(zhàn)爭記念日 "); }
- // if ( mo == 0x07 && dd == 0x22 ){ lcm_w_word("二十四節(jié)氣:大暑"); }
- //****************************8月份*************************************************
- if (month_moon== 8 && day_moon == 15 ){ lcm_w_word("⊙中秋節(jié)快樂!!⊙"); }
- if ( mo == 0x08 && dd == 0x01 ){ lcm_w_word("〓八一建軍節(jié)〓=="); }//8
- if ( mo == 0x08 && dd == 0x07 ){ lcm_w_word("二十四節(jié)氣:立秋"); }
- // if ( mo == 0x08 && dd == 0x08 ){ lcm_w_word(" 中國父親節(jié) "); }
- // if ( mo == 0x08 && dd == 0x15 ){ lcm_w_word("抗戰(zhàn)勝利記念日 "); }
- // if ( mo == 0x08 && dd == 0x22 ){ lcm_w_word("二十四節(jié)氣:處暑"); }
- if (month_moon== 9 && day_moon == 9 ){ lcm_w_word("▲今日重陽節(jié)!!▲"); }
-
- //*******************************9月份**********************************************
- // if ( mo == 0x09 && dd == 0x07 ){ lcm_w_word("二十四節(jié)氣:白露"); }//9
- // if ( mo == 0x09 && dd == 0x09 ){ lcm_w_word(" 明天是教師節(jié) "); }//9
- if ( mo == 0x09 && dd == 0x10 ){ lcm_w_word(">>今天是教師節(jié)<<"); }//9
- // if ( mo == 0x09 && dd == 0x18 ){ lcm_w_word("九·一八事變記念"); }
- if ( mo == 0x09 && dd == 0x22 ){ lcm_w_word("二十四節(jié)氣:秋分"); }//9
- //******************************10月份***********************************************
- if ( mo == 0x10 && dd == 0x01 ){ lcm_w_word("※國慶節(jié)到了!!※"); }//10
- // if ( mo == 0x10 && dd == 0x08 ){ lcm_w_word("二十四節(jié)氣:寒露"); }
- // if ( mo == 0x10 && dd == 0x12 ){ lcm_w_word("明天國際教師節(jié) "); }
- // if ( mo == 0x10 && dd == 0x13 ){ lcm_w_word(" 國際教師節(jié) "); }
- if ( mo == 0x10 && dd == 0x23 ){ lcm_w_word("二十四節(jié)氣:霜降"); }
-
- //********************************11月份*********************************************
- if ( mo == 0x11 && dd == 0x07 ){ lcm_w_word("二十四節(jié)氣:立冬"); }//11
- // if ( mo == 0x11 && dd == 0x22 ){ lcm_w_word("二十四節(jié)氣:小雪"); }
-
- //*********************************12月份********************************************
- if (month_moon== 12 && day_moon == 8 ){ lcm_w_word("★今天是臘八節(jié)★"); }
- if (month_moon== 12 && day_moon == 15 ) { lcm_w_word("※今天乃小年也※"); }
- // if (month_moon== 12 && day_moon == 29 ){ lcm_w_word(" 臘月二十九 "); }
- if (month_moon== 12 && day_moon == 30 ){ lcm_w_word("大年三十(*^O^*)!"); }
- // if ( mo == 0x12 && dd == 0x13 ){ lcm_w_word("南京大屠殺紀念日"); }//12
- // if ( mo == 0x12 && dd == 0x07 ){ lcm_w_word("二十四節(jié)氣:大雪"); }
- if ( mo == 0x12 && dd == 0x22 ){ lcm_w_word("二十四節(jié)氣:冬至"); }
- // if ( mo == 0x12 && dd == 0x23 ){ lcm_w_word(" 明晚平安夜 "); }
- if ( mo == 0x12 && dd == 0x24 ){ lcm_w_word("※※平安夜!!※※"); }
- if ( mo == 0x12 && dd == 0x25 ){ lcm_w_word("▲▲圣誕快樂▲▲"); }
- // if ( mo == 0x12 && dd == 0x31 ){ lcm_w_word(" 明日新年 "); }
- //****************************生日(陰歷)*********************************
- if (month_moon== 10 && day_moon == 12 ){ lcm_w_word("☆今天爺爺生日☆"); }
- if (month_moon== 10 && day_moon == 21 ){ lcm_w_word("☆今天奶奶生日☆"); }
- if (month_moon== 2 && day_moon == 12 ){ lcm_w_word("★今天媽媽生日★"); }//爸爸生日
- if (month_moon== 8 && day_moon == 29 ){ lcm_w_word("★今天爸爸生日★"); }
-
- if (month_moon== 5 && day_moon == 12 ){ lcm_w_word("※今天妹妹生日※"); }//妹妹生日
- if (month_moon== 4 && day_moon == 19 ){ lcm_w_word("〓今天我的生日〓"); }//楊慧生日
- if (month_moon== 6 && day_moon == 5 ){ lcm_w_word("〓今天兒子生日〓"); }
- //***************************非節(jié)日********************************************
- else{
-
- if ( hour >= 0x00 && hour <= 0x01 ){ lcm_w_word("★I always O U★");}
- if ( hour >= 0x04 && hour < 0x06 ) { lcm_w_word("★★★凌晨▲▲▲"); }
- if ( hour >= 0x06 && hour < 0x08 ) { lcm_w_word("☆☆☆早晨△△△"); }
- if ( hour >= 0x08 && hour < 0x12 ) { lcm_w_word("△△△上午▲▲▲"); }
- if ( hour == 0x12) { lcm_w_word("⊙⊙⊙中午⊙⊙⊙"); }
- if ( hour >= 0x13 && hour < 0x18 ) { lcm_w_word("▲▲▲下午△△△"); }
- if ( hour >= 0x18 && hour < 0x22 ) { lcm_w_word("★★★晚上☆☆☆"); }
- if ( hour >= 0x22 && hour <= 0x23) { lcm_w_word("★★★夜里★★★");}
- if ( hour >= 0x00 && hour < 0x04) { lcm_w_word("◆◆◆深夜◆◆◆"); }
- }
- }
- /*顯示歡迎信息---------------------------------------------------------------
- void welcome(void)
- {
- write_com(0x80); lcm_w_word("〓〓∧∧∧∧〓〓");
- write_com(0x90); lcm_w_word("Believe yourself");
- write_com(0x88); lcm_w_word("Don't give up^_^");
- write_com(0x98); lcm_w_word("〓〓∨∨∨∨〓〓");
- }
- */
- void welcome0(void)
- {
- write_com(0x80); lcm_w_word("〓電子萬年歷〓");
- write_com(0x90); lcm_w_word("專利產品仿冒必究");
- write_com(0x88); lcm_w_word(" QQ:1239300456"); //Smile to our life
- write_com(0x98); lcm_w_word("秉奇科技榮譽出品");
- //⊙⊙⊙⊙⊙⊙⊙⊙ ≌≌≌≌≌≌≌≌ ※※※※※※※※
- //╋╋╋╋╋╋╋╋ 〓〓〓〓〓〓〓〓 ◆◆◆◆◆◆◆◆ 卐卐卐卐卐卐卐卐
- //◎◎◎◎◎◎◎◎ ☆☆☆☆☆☆☆☆ ★★★★★★★★ ╳╳╳╳╳╳╳╳
- //┣┣┣┣┫┫┫┫ ┳┳┳┳┳┳┳┳ ┻┻┻┻┻┻┻┻ ╲╱╲╱╲╱╲╱
- //╱╲╱╲╱╲╱╲
- //△△△△△△△△ ◤◤◤◤◥◥◥◥ ◣◣◣◣◢◢◢◢ 卍卍卍卍卍卍卍卍
- //〇〇〇〇〇〇〇〇 △▽△▽△▽△▽
- //
- }
- /*---------------------------------------------------------------------------*/
- #endif
復制代碼
0.png (67.97 KB, 下載次數(shù): 21)
下載附件
2017-3-7 01:01 上傳
下載:
stc89c58萬年歷程序.rar
(89.76 KB, 下載次數(shù): 75)
2017-3-7 01:01 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
評分
-
查看全部評分
|