找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4303|回复: 2
打印 上一主题 下一主题
收起左侧

红外遥控万年历源程序 带闹钟 LCD12864显示

[复制链接]
跳转到指定楼层
楼主
这是一个带红外遥控控制的单片机万年历源程序,还有闹钟的功能:


部分单片机源码:
  1. #ifndef __displaytime_H__
  2. #define __displaytime_H__
  3. #include "nongli.h"
  4. #include "zk.h"
  5. #include "bell.h"
  6. #include "LCD12864.h"

  7. uchar sec,min,hour,day,date,month,year,week,day_moon;
  8. uchar sel,dd,mo,yy;

  9. /*显示年、月、日、星期-------------------------------------------------------*/
  10. void displaydate(void)
  11. {
  12.         write_com(0x30);
  13.         write_com(0x06);

  14. /*往液晶屏填写 年 数据-------------------------------------------*/
  15.         lcm_w_test(0,0x80);
  16.         lcm_w_word("20");       
  17.         year=read_clock(0x8d);//调用1302时钟数据中的年数据,从地址0x8d中
  18.         lcm_w_test(1,(year/16+0x30));       
  19.         lcm_w_test(1,(year%16+0x30));
  20. //        lcm_w_word("年");
  21.        
  22. /*往液晶屏填写 月 数据-------------------------------------------*/
  23.         month=read_clock(0x89);//调用1302时钟数据中的月数据,从地址0x89中
  24.         lcm_w_word("-");       
  25. /*       
  26.         if(month/10 != 0){write_data((month/10)+0x30);}       
  27.                 else{write_data(0x20);}//十位消隐
  28. */
  29.         lcm_w_test(1,(month/16+0x30));
  30.         lcm_w_test(1,((month%16)+0x30));               
  31. //        lcm_w_word("月");       

  32. /*往液晶屏填写 日 数据-------------------------------------------*/
  33.         date=read_clock(0x87);//从1302芯片中读取日数据,从地址0x87中
  34.         lcm_w_word("-");
  35. /*               
  36.         if(date/10 != 0){write_data((date/10)+0x30);}       
  37.                 else{write_data(0x20);}//十位消隐
  38. */                 
  39.         lcm_w_test(1,(date/16+0x30));
  40.         lcm_w_test(1,(date%16+0x30));
  41. //        lcm_w_word("日");
  42. }

  43. /*往液晶屏填写 星期 数据-----------------------------------------*/
  44. void displayxq(void){

  45.         dd = read_clock(0x87);//日
  46.         mo = read_clock(0x89);//月
  47.         yy = read_clock(0x8d);//年
  48.         Conver_week(0,yy,mo,dd);//调用公历换算星期子函数
  49.    sel=week;//week是公历转换星期子函数的运行结果,结果为0-6,0是星期日
  50.         lcm_w_test(0,0x86);//显示位置
  51.         if(sel==0)  {lcm_w_word("日");}    //0=星期日
  52.           if(sel==6)  {lcm_w_word("六");}    //
  53.           if(sel==5)  {lcm_w_word("五");}    //
  54.           if(sel==4)  {lcm_w_word("四");}    //
  55. //        if(sel==3)  {lcm_w_word("三");}//经调试发现液晶屏不认这一句,只好用下一句显示 三        。需要打补丁才能正确显示。
  56.         if(sel==3)  {lcm_w_test(1,0xc8);lcm_w_test(1,0xfd);} //此指令等于lcm_w_word("三"); 因为“三”的内码失效。
  57.           if(sel==2)  {lcm_w_word("二");}    //
  58.           if(sel==1)  {lcm_w_word("一");}    //星期一
  59.         lcm_w_test(0,0x85);
  60.         lcm_w_word("周");//调用字符显示子函数,显示 "周"

  61. }
  62. /*需要绘图显示的:时、分、秒--------------------------------------------------*/
  63. void displaytime(void)
  64. {
  65. /*往液晶屏填写 小时 数据-----------------------------------------*/
  66. if(read_clock(0x85)!=hour)//更新小时数据,然后整点报时
  67.         {//也可根据个人需要设定在那个时间段进行报时,只需加条if语句便可
  68.         hour = read_clock(0x85);//读取DS1302的小时
  69.         BEEP=0;DelayM(160);BEEP=1;         //整点报时
  70.    
  71.         }                                 
  72.     write_com(0x88);
  73.         write_data((hour/16)+0x30);
  74.         write_data((hour%16)+0x30);
  75.     lcm_w_word(":");
  76. /*往液晶屏填写 分钟 数据-----------------------------------------*/
  77.         min = read_clock(0x83);                 //读取DS1302的 分                               
  78.         write_data((min/16)+0x30);
  79.         write_data((min%16)+0x30);
  80.     lcm_w_word(":");

  81. /*往液晶屏填写 秒钟 数据-----------------------------------------*/
  82.         sec= read_clock(0x81);                  //读取DS1302的 秒
  83.         write_data((sec/16)+0x30);
  84.         write_data((sec%16)+0x30);
  85. }

  86. /*显示农历日期---------------------------------------------------------------*/
  87. void displaynl(void)
  88. {
  89.         Conversion(century,year,month,date);        //公历转农历
  90.         write_com(0x30); write_com(0x06); write_com(0x90);
  91.         if (month_moon==1) {lcm_w_word("正");}
  92.         if (month_moon==2) {lcm_w_word("二");}
  93. //        if (month_moon==2) {lcm_w_word("三");}
  94.         if (month_moon==3) {lcm_w_test(1,0xc8);lcm_w_test(1,0xfd);}
  95.         if (month_moon==4) {lcm_w_word("四");}
  96.         if (month_moon==5) {lcm_w_word("五");}
  97.         if (month_moon==6) {lcm_w_word("六");}
  98.         if (month_moon==7) {lcm_w_word("七");}
  99.         if (month_moon==8) {lcm_w_word("八");}
  100.         if (month_moon==9) {lcm_w_word("九");}
  101.         if (month_moon==10){lcm_w_word("十");}
  102.         if (month_moon==11){lcm_w_word("冬");}
  103.         if (month_moon==12){lcm_w_word("腊");}
  104.                         lcm_w_word("月");

  105.         if (day_moon==1)   {lcm_w_word("初一");}
  106.         if (day_moon==2)   {lcm_w_word("初二");}
  107.         if (day_moon==3)   {lcm_w_word("初");lcm_w_test(1,0xc8);lcm_w_test(1,0xfd);} //“三”的代码
  108.         if (day_moon==4)   {lcm_w_word("初四");}
  109.         if (day_moon==5)   {lcm_w_word("初五");}
  110.         if (day_moon==6)   {lcm_w_word("初六");}
  111.         if (day_moon==7)   {lcm_w_word("初七");}
  112.         if (day_moon==8)   {lcm_w_word("初八");}
  113.         if (day_moon==9)   {lcm_w_word("初九");}
  114.         if (day_moon==10)  {lcm_w_word("初十");}
  115.         if (day_moon==11)  {lcm_w_word("十一");}
  116.         if (day_moon==12)  {lcm_w_word("十二");}
  117.         if (day_moon==13)  {lcm_w_word("十");lcm_w_test(1,0xc8);lcm_w_test(1,0xfd);} //十三
  118.         if (day_moon==14)  {lcm_w_word("十四");}
  119.         if (day_moon==15)  {lcm_w_word("十五");}
  120.         if (day_moon==16)  {lcm_w_word("十六");}
  121.         if (day_moon==17)  {lcm_w_word("十七");}
  122.         if (day_moon==18)  {lcm_w_word("十八");}
  123.         if (day_moon==19)  {lcm_w_word("十九");}
  124.         if (day_moon==20)  {lcm_w_word("二十");}
  125.         if (day_moon==21)  {lcm_w_word("廿一");}
  126.         if (day_moon==22)  {lcm_w_word("廿二");}
  127.         if (day_moon==23)  {lcm_w_word("廿");lcm_w_test(1,0xc8);lcm_w_test(1,0xfd);}        //廿三
  128.         if (day_moon==24)  {lcm_w_word("廿四");}
  129.         if (day_moon==25)  {lcm_w_word("廿五");}
  130.         if (day_moon==26)  {lcm_w_word("廿六");}
  131.         if (day_moon==27)  {lcm_w_word("廿七");}
  132.         if (day_moon==28)  {lcm_w_word("廿八");}
  133.         if (day_moon==29)  {lcm_w_word("廿九");}
  134.         if (day_moon==30)  {lcm_w_test(1,0xc8);lcm_w_test(1,0xfd);lcm_w_word("十");}        //三十

  135. }

  136. /****************************************************************************/
  137. void displayJr(void)  //节日数据库
  138. {       
  139.                 write_com(0x98);
  140. //**********************1月份**********************************************
  141.                 if ( mo == 0x01 && dd == 0x01 ){ lcm_w_word("Happy New Year!!"); }//1月
  142.                 if ( mo == 0x01 && dd == 0x05 ){ lcm_w_word("二十四节气:小寒"); }
  143.                 if ( mo == 0x01 && dd == 0x20 ){ lcm_w_word("二十四节气:大寒"); }
  144.                 if (month_moon== 1 && day_moon == 1 ){  lcm_w_word("※※春节快乐※※");  }//阴历日期填阴历月和日                                                  
  145.                 if (month_moon== 1 && day_moon == 15 ){ lcm_w_word("※元宵节快乐!!※"); }   

  146. //************************2月份*****************************************************                                                                                             
  147.       
  148.                 if ( mo == 0x02 && dd == 0x03 ){ lcm_w_word("二十四节气:立春"); }//2月
  149. //                if ( mo == 0x02 && dd == 0x13 ){ lcm_w_word("  明天情人节了  "); }               
  150.                 if ( mo == 0x02 && dd == 0x14 ){ lcm_w_word("◆情人节快乐!!◆"); }//阳历日期填实际的阳历月和日
  151. //                if ( mo == 0x02 && dd == 0x20 ){ lcm_w_word("二十四节气:雨水"); }//阳历日期填实际的阳历月和日

  152. //**************************3月份***************************************************                               
  153. //                if ( mo == 0x03 && dd == 0x05 ){ lcm_w_word("二十四节气:惊蛰"); }               
  154.                 if ( mo == 0x03 && dd == 0x03 ){ lcm_w_word("二十四节气:春分"); }               
  155.                 if ( mo == 0x03 && dd == 0x08 ){ lcm_w_word("☆三·八妇女节☆"); }
  156.         if ( mo == 0x03 && dd == 0x12 ){ lcm_w_word("┣今天植树节!!┫"); }                       
  157.                 if ( mo == 0x03 && dd == 0x15 ){ lcm_w_word("⊙消费者权益日⊙"); }                       
  158. //                if ( mo == 0x03 && dd == 0x31 ){ lcm_w_word("  明天是愚人节  "); }
  159.                 if ( mo == 0x04 && dd == 0x01 ){ lcm_w_word("愚人节◆小心上当"); }//3       
  160.                
  161. //****************************4月份*************************************************
  162.                 if ( mo == 0x04 && dd == 0x04 ){ lcm_w_word("二十四节气:清明"); }               
  163. //                if ( mo == 0x04 && dd == 0x08 ){ lcm_w_word("今天是复活节"); }               
  164. //                if ( mo == 0x04 && dd == 0x19 ){ lcm_w_word("二十四节气:谷雨"); }               
  165.                 if (month_moon== 5 && day_moon == 5 ){ lcm_w_word("◆今天乃端午节◆"); }  
  166.                
  167. //*****************************5月份************************************************
  168. //                if ( mo == 0x04 && dd == 0x30 ){ lcm_w_word("明天是五一劳动节"); }//5
  169.                 if ( mo == 0x05 && dd == 0x01 ){ lcm_w_word("△五一劳动节!!△"); }//5                                
  170.                 if ( mo == 0x05 && dd == 0x04 ){ lcm_w_word("≌五四青年节!!≌"); }       
  171.                 if ( mo == 0x05 && dd == 0x05 ){ lcm_w_word("二十四节气:立夏"); }                                       
  172. //                if ( mo == 0x05 && dd == 0x05 ){ lcm_w_word("近日注意母亲节  "); }               
  173.                 if ( mo == 0x05 && dd == 0x10 ){ lcm_w_word("★今天是母亲节★"); }
  174. //                if ( mo == 0x05 && dd == 0x20 ){ lcm_w_word("二十四节气:小满"); }       
  175.                        
  176. //****************************6月份*************************************************
  177.                 if ( mo == 0x06 && dd == 0x01 ){ lcm_w_word("※今天是儿童节※"); }//6
  178.                 if ( mo == 0x06 && dd == 0x05 ){ lcm_w_word("二十四节气:芒种"); }               
  179. //                if ( mo == 0x06 && dd == 0x13 ){ lcm_w_word("近日注意父亲节  "); }
  180. //                if ( mo == 0x06 && dd == 0x15 ){ lcm_w_word("近日注意父亲节  "); }
  181.                 if ( mo == 0x06 && dd == 0x21 ){ lcm_w_word("△今天是父亲节△"); }       
  182.                 if (month_moon== 7 && day_moon == 7 ){ lcm_w_word("七夕--中国情人节"); }  
  183.                        
  184. //****************************7月份*************************************************                       
  185. //                if ( mo == 0x07 && dd == 0x06 ){ lcm_w_word("二十四节气:小暑"); }               
  186. //                if ( mo == 0x07 && dd == 0x07 ){ lcm_w_word("抗日战争记念日  "); }
  187. //                if ( mo == 0x07 && dd == 0x22 ){ lcm_w_word("二十四节气:大暑"); }

  188. //****************************8月份*************************************************
  189.             if (month_moon== 8 && day_moon == 15 ){ lcm_w_word("⊙中秋节快乐!!⊙"); }  
  190.                 if ( mo == 0x08 && dd == 0x01 ){ lcm_w_word("〓八一建军节〓=="); }//8
  191.                 if ( mo == 0x08 && dd == 0x07 ){ lcm_w_word("二十四节气:立秋"); }
  192. //                if ( mo == 0x08 && dd == 0x08 ){ lcm_w_word("  中国父亲节    "); }
  193. //                if ( mo == 0x08 && dd == 0x15 ){ lcm_w_word("抗战胜利记念日  "); }
  194. //                if ( mo == 0x08 && dd == 0x22 ){ lcm_w_word("二十四节气:处暑"); }
  195.                 if (month_moon== 9 && day_moon == 9 ){ lcm_w_word("▲今日重阳节!!▲"); }  
  196.                                               
  197. //*******************************9月份**********************************************       
  198. //                if ( mo == 0x09 && dd == 0x07 ){ lcm_w_word("二十四节气:白露"); }//9
  199. //                if ( mo == 0x09 && dd == 0x09 ){ lcm_w_word("  明天是教师节  "); }//9       
  200.                 if ( mo == 0x09 && dd == 0x10 ){ lcm_w_word(">>今天是教师节<<"); }//9
  201. //                if ( mo == 0x09 && dd == 0x18 ){ lcm_w_word("九·一八事变记念"); }
  202.                 if ( mo == 0x09 && dd == 0x22 ){ lcm_w_word("二十四节气:秋分"); }//9

  203. //******************************10月份***********************************************
  204.                 if ( mo == 0x10 && dd == 0x01 ){ lcm_w_word("※国庆节到了!!※"); }//10
  205. //                if ( mo == 0x10 && dd == 0x08 ){ lcm_w_word("二十四节气:寒露"); }       
  206. //                if ( mo == 0x10 && dd == 0x12 ){ lcm_w_word("明天国际教师节  "); }
  207. //                if ( mo == 0x10 && dd == 0x13 ){ lcm_w_word("  国际教师节    "); }
  208.                 if ( mo == 0x10 && dd == 0x23 ){ lcm_w_word("二十四节气:霜降"); }
  209.                                           
  210. //********************************11月份*********************************************
  211.                 if ( mo == 0x11 && dd == 0x07 ){ lcm_w_word("二十四节气:立冬"); }//11
  212. //                if ( mo == 0x11 && dd == 0x22 ){ lcm_w_word("二十四节气:小雪"); }
  213.        
  214. //*********************************12月份********************************************       
  215.             if (month_moon== 12 && day_moon == 8 ){ lcm_w_word("★今天是腊八节★"); }  
  216.             if (month_moon== 12 && day_moon == 15 )    { lcm_w_word("※今天乃小年也※"); }  
  217. //            if (month_moon== 12 && day_moon == 29 ){ lcm_w_word("  腊月二十九    "); }  
  218.             if (month_moon== 12 && day_moon == 30 ){ lcm_w_word("大年三十(*^O^*)!"); }
  219. //                if ( mo == 0x12 && dd == 0x13 ){ lcm_w_word("南京大屠杀纪念日"); }//12
  220. //                if ( mo == 0x12 && dd == 0x07 ){ lcm_w_word("二十四节气:大雪"); }
  221.                 if ( mo == 0x12 && dd == 0x22 ){ lcm_w_word("二十四节气:冬至"); }
  222. //                if ( mo == 0x12 && dd == 0x23 ){ lcm_w_word("  明晚平安夜    "); }
  223.                 if ( mo == 0x12 && dd == 0x24 ){ lcm_w_word("※※平安夜!!※※"); }
  224.                 if ( mo == 0x12 && dd == 0x25 ){ lcm_w_word("▲▲圣诞快乐▲▲"); }
  225. //                if ( mo == 0x12 && dd == 0x31 ){ lcm_w_word("    明日新年    "); }

  226. //****************************生日(阴历)*********************************
  227.                 if (month_moon== 10 && day_moon == 12 ){ lcm_w_word("☆今天爷爷生日☆"); }
  228.             if (month_moon== 10 && day_moon == 21 ){ lcm_w_word("☆今天奶奶生日☆"); }

  229.                 if (month_moon== 2 && day_moon == 12 ){ lcm_w_word("★今天妈妈生日★"); }//爸爸生日
  230.                 if (month_moon== 8 && day_moon == 29 ){ lcm_w_word("★今天爸爸生日★"); }
  231.                
  232.                 if (month_moon== 5 && day_moon == 12 ){ lcm_w_word("※今天妹妹生日※"); }//妹妹生日
  233.                 if (month_moon== 4 && day_moon == 19 ){ lcm_w_word("〓今天我的生日〓"); }//杨慧生日
  234.                 if (month_moon== 6 && day_moon == 5 ){ lcm_w_word("〓今天儿子生日〓"); }

  235. //***************************非节日********************************************
  236.                 else{
  237.                        
  238.                         if ( hour >= 0x00 && hour <= 0x01 ){ lcm_w_word("★I always O U★");}
  239.               if ( hour >= 0x04 && hour <  0x06 ) { lcm_w_word("★★★凌晨▲▲▲"); }
  240.                         if ( hour >= 0x06 && hour <  0x08 ) { lcm_w_word("☆☆☆早晨△△△"); }
  241.                         if ( hour >= 0x08 && hour <  0x12 ) { lcm_w_word("△△△上午▲▲▲"); }
  242.                         if ( hour == 0x12)                  { lcm_w_word("⊙⊙⊙中午⊙⊙⊙"); }
  243.                         if ( hour >= 0x13 && hour <  0x18 ) { lcm_w_word("▲▲▲下午△△△"); }
  244.                         if ( hour >= 0x18 && hour <  0x22 ) { lcm_w_word("★★★晚上☆☆☆"); }
  245.                         if ( hour >= 0x22 && hour <= 0x23)  { lcm_w_word("★★★夜里★★★");}
  246.                         if ( hour >= 0x00 && hour <  0x04)  { lcm_w_word("◆◆◆深夜◆◆◆"); }
  247.                         }

  248. }


  249. /*显示欢迎信息---------------------------------------------------------------
  250. void welcome(void)
  251. {                                                                  
  252.         write_com(0x80); lcm_w_word("〓〓∧∧∧∧〓〓");
  253.         write_com(0x90); lcm_w_word("Believe yourself");  
  254.         write_com(0x88); lcm_w_word("Don't give up^_^");        
  255.         write_com(0x98); lcm_w_word("〓〓∨∨∨∨〓〓");       
  256. }
  257. */                                                          
  258. void welcome0(void)
  259. {
  260.         write_com(0x80); lcm_w_word("〓电子万年历〓");  
  261.         write_com(0x90); lcm_w_word("专利产品仿冒必究");
  262.         write_com(0x88); lcm_w_word(" QQ:1239300456"); //Smile to our life       
  263.         write_com(0x98); lcm_w_word("秉奇科技荣誉出品");   
  264. //⊙⊙⊙⊙⊙⊙⊙⊙  ≌≌≌≌≌≌≌≌  ※※※※※※※※   
  265. //╋╋╋╋╋╋╋╋  〓〓〓〓〓〓〓〓  ◆◆◆◆◆◆◆◆  卐卐卐卐卐卐卐卐
  266. //◎◎◎◎◎◎◎◎  ☆☆☆☆☆☆☆☆  ★★★★★★★★  ╳╳╳╳╳╳╳╳
  267. //┣┣┣┣┫┫┫┫  ┳┳┳┳┳┳┳┳  ┻┻┻┻┻┻┻┻  ╲╱╲╱╲╱╲╱  
  268. //╱╲╱╲╱╲╱╲      
  269. //△△△△△△△△  ◤◤◤◤◥◥◥◥  ◣◣◣◣◢◢◢◢  卍卍卍卍卍卍卍卍  
  270. //〇〇〇〇〇〇〇〇  △▽△▽△▽△▽
  271. //              
  272. }

  273. /*---------------------------------------------------------------------------*/
  274. #endif
复制代码


下载:
stc89c58万年历程序.rar (89.76 KB, 下载次数: 75)


评分

参与人数 1黑币 +5 收起 理由
close_two + 5 赞一个!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏5 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:159515 发表于 2017-3-7 08:42 | 只看该作者
看起来不错!!!!!!!!
回复

使用道具 举报

板凳
ID:185419 发表于 2017-4-1 18:00 | 只看该作者
看起来不错!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表