|
这是一个带红外遥控控制的单片机万年历源程序,还有闹钟的功能:
部分单片机源码:
- #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);
- /*往液晶屏填写 年 数据-------------------------------------------*/
- lcm_w_test(0,0x80);
- lcm_w_word("20");
- year=read_clock(0x8d);//调用1302时钟数据中的年数据,从地址0x8d中
- lcm_w_test(1,(year/16+0x30));
- lcm_w_test(1,(year%16+0x30));
- // lcm_w_word("年");
-
- /*往液晶屏填写 月 数据-------------------------------------------*/
- month=read_clock(0x89);//调用1302时钟数据中的月数据,从地址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("月");
- /*往液晶屏填写 日 数据-------------------------------------------*/
- date=read_clock(0x87);//从1302芯片中读取日数据,从地址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("日");
- }
- /*往液晶屏填写 星期 数据-----------------------------------------*/
- void displayxq(void){
- dd = read_clock(0x87);//日
- mo = read_clock(0x89);//月
- yy = read_clock(0x8d);//年
- Conver_week(0,yy,mo,dd);//调用公历换算星期子函数
- sel=week;//week是公历转换星期子函数的运行结果,结果为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("三");}//经调试发现液晶屏不认这一句,只好用下一句显示 三 。需要打补丁才能正确显示。
- 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("周");//调用字符显示子函数,显示 "周"
- }
- /*需要绘图显示的:时、分、秒--------------------------------------------------*/
- void displaytime(void)
- {
- /*往液晶屏填写 小时 数据-----------------------------------------*/
- if(read_clock(0x85)!=hour)//更新小时数据,然后整点报时
- {//也可根据个人需要设定在那个时间段进行报时,只需加条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(":");
- /*往液晶屏填写 分钟 数据-----------------------------------------*/
- min = read_clock(0x83); //读取DS1302的 分
- write_data((min/16)+0x30);
- write_data((min%16)+0x30);
- lcm_w_word(":");
- /*往液晶屏填写 秒钟 数据-----------------------------------------*/
- 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) //节日数据库
- {
- write_com(0x98);
- //**********************1月份**********************************************
- if ( mo == 0x01 && dd == 0x01 ){ lcm_w_word("Happy New Year!!"); }//1月
- if ( mo == 0x01 && dd == 0x05 ){ lcm_w_word("二十四节气:小寒"); }
- if ( mo == 0x01 && dd == 0x20 ){ lcm_w_word("二十四节气:大寒"); }
- if (month_moon== 1 && day_moon == 1 ){ lcm_w_word("※※春节快乐※※"); }//阴历日期填阴历月和日
- if (month_moon== 1 && day_moon == 15 ){ lcm_w_word("※元宵节快乐!!※"); }
-
- //************************2月份*****************************************************
-
- if ( mo == 0x02 && dd == 0x03 ){ lcm_w_word("二十四节气:立春"); }//2月
- // if ( mo == 0x02 && dd == 0x13 ){ lcm_w_word(" 明天情人节了 "); }
- if ( mo == 0x02 && dd == 0x14 ){ lcm_w_word("◆情人节快乐!!◆"); }//阳历日期填实际的阳历月和日
- // if ( mo == 0x02 && dd == 0x20 ){ lcm_w_word("二十四节气:雨水"); }//阳历日期填实际的阳历月和日
- //**************************3月份***************************************************
- // if ( mo == 0x03 && dd == 0x05 ){ lcm_w_word("二十四节气:惊蛰"); }
- if ( mo == 0x03 && dd == 0x03 ){ lcm_w_word("二十四节气:春分"); }
- if ( mo == 0x03 && dd == 0x08 ){ lcm_w_word("☆三·八妇女节☆"); }
- if ( mo == 0x03 && dd == 0x12 ){ lcm_w_word("┣今天植树节!!┫"); }
- if ( mo == 0x03 && dd == 0x15 ){ lcm_w_word("⊙消费者权益日⊙"); }
- // if ( mo == 0x03 && dd == 0x31 ){ lcm_w_word(" 明天是愚人节 "); }
- if ( mo == 0x04 && dd == 0x01 ){ lcm_w_word("愚人节◆小心上当"); }//3
-
- //****************************4月份*************************************************
- if ( mo == 0x04 && dd == 0x04 ){ lcm_w_word("二十四节气:清明"); }
- // if ( mo == 0x04 && dd == 0x08 ){ lcm_w_word("今天是复活节"); }
- // if ( mo == 0x04 && dd == 0x19 ){ lcm_w_word("二十四节气:谷雨"); }
- if (month_moon== 5 && day_moon == 5 ){ lcm_w_word("◆今天乃端午节◆"); }
-
- //*****************************5月份************************************************
- // if ( mo == 0x04 && dd == 0x30 ){ lcm_w_word("明天是五一劳动节"); }//5
- if ( mo == 0x05 && dd == 0x01 ){ lcm_w_word("△五一劳动节!!△"); }//5
- if ( mo == 0x05 && dd == 0x04 ){ lcm_w_word("≌五四青年节!!≌"); }
- if ( mo == 0x05 && dd == 0x05 ){ lcm_w_word("二十四节气:立夏"); }
- // if ( mo == 0x05 && dd == 0x05 ){ lcm_w_word("近日注意母亲节 "); }
- if ( mo == 0x05 && dd == 0x10 ){ lcm_w_word("★今天是母亲节★"); }
- // if ( mo == 0x05 && dd == 0x20 ){ lcm_w_word("二十四节气:小满"); }
-
- //****************************6月份*************************************************
- if ( mo == 0x06 && dd == 0x01 ){ lcm_w_word("※今天是儿童节※"); }//6
- if ( mo == 0x06 && dd == 0x05 ){ lcm_w_word("二十四节气:芒种"); }
- // if ( mo == 0x06 && dd == 0x13 ){ lcm_w_word("近日注意父亲节 "); }
- // if ( mo == 0x06 && dd == 0x15 ){ lcm_w_word("近日注意父亲节 "); }
- if ( mo == 0x06 && dd == 0x21 ){ lcm_w_word("△今天是父亲节△"); }
- if (month_moon== 7 && day_moon == 7 ){ lcm_w_word("七夕--中国情人节"); }
-
- //****************************7月份*************************************************
- // if ( mo == 0x07 && dd == 0x06 ){ lcm_w_word("二十四节气:小暑"); }
- // if ( mo == 0x07 && dd == 0x07 ){ lcm_w_word("抗日战争记念日 "); }
- // if ( mo == 0x07 && dd == 0x22 ){ lcm_w_word("二十四节气:大暑"); }
- //****************************8月份*************************************************
- if (month_moon== 8 && day_moon == 15 ){ lcm_w_word("⊙中秋节快乐!!⊙"); }
- if ( mo == 0x08 && dd == 0x01 ){ lcm_w_word("〓八一建军节〓=="); }//8
- if ( mo == 0x08 && dd == 0x07 ){ lcm_w_word("二十四节气:立秋"); }
- // if ( mo == 0x08 && dd == 0x08 ){ lcm_w_word(" 中国父亲节 "); }
- // if ( mo == 0x08 && dd == 0x15 ){ lcm_w_word("抗战胜利记念日 "); }
- // if ( mo == 0x08 && dd == 0x22 ){ lcm_w_word("二十四节气:处暑"); }
- if (month_moon== 9 && day_moon == 9 ){ lcm_w_word("▲今日重阳节!!▲"); }
-
- //*******************************9月份**********************************************
- // if ( mo == 0x09 && dd == 0x07 ){ lcm_w_word("二十四节气:白露"); }//9
- // if ( mo == 0x09 && dd == 0x09 ){ lcm_w_word(" 明天是教师节 "); }//9
- if ( mo == 0x09 && dd == 0x10 ){ lcm_w_word(">>今天是教师节<<"); }//9
- // if ( mo == 0x09 && dd == 0x18 ){ lcm_w_word("九·一八事变记念"); }
- if ( mo == 0x09 && dd == 0x22 ){ lcm_w_word("二十四节气:秋分"); }//9
- //******************************10月份***********************************************
- if ( mo == 0x10 && dd == 0x01 ){ lcm_w_word("※国庆节到了!!※"); }//10
- // if ( mo == 0x10 && dd == 0x08 ){ lcm_w_word("二十四节气:寒露"); }
- // if ( mo == 0x10 && dd == 0x12 ){ lcm_w_word("明天国际教师节 "); }
- // if ( mo == 0x10 && dd == 0x13 ){ lcm_w_word(" 国际教师节 "); }
- if ( mo == 0x10 && dd == 0x23 ){ lcm_w_word("二十四节气:霜降"); }
-
- //********************************11月份*********************************************
- if ( mo == 0x11 && dd == 0x07 ){ lcm_w_word("二十四节气:立冬"); }//11
- // if ( mo == 0x11 && dd == 0x22 ){ lcm_w_word("二十四节气:小雪"); }
-
- //*********************************12月份********************************************
- if (month_moon== 12 && day_moon == 8 ){ lcm_w_word("★今天是腊八节★"); }
- 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("二十四节气:大雪"); }
- if ( mo == 0x12 && dd == 0x22 ){ lcm_w_word("二十四节气:冬至"); }
- // 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("〓今天儿子生日〓"); }
- //***************************非节日********************************************
- 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
复制代码
下载:
stc89c58万年历程序.rar
(89.76 KB, 下载次数: 75)
|
评分
-
查看全部评分
|