找回密码
 立即注册

QQ登录

只需一步,快速开始

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

能询问下单片机如何加入判断世纪闰年的代码(即400的倍数)

[复制链接]
跳转到指定楼层
楼主
ID:536815 发表于 2019-5-13 11:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
源程序如下
void timer0() interrupt 1//定时器0中断服务程序

{
TH0=(65536-50000)/256;//再次装定时器初值
TL0=(65536-50000)%256;
count++;                            //中断次数累加
if(count==20) //20次50毫秒为1秒
{
  count=0;
  ssecond++;
  if(ssecond==60)//秒加到60则进位分钟
  {
   ssecond=0;//同时秒数清零
   mminute++;
   if(mminute==60)//分钟加到60则进位小时
   {
    mminute=0;//同时分钟数清零
    hhour++;                                                      
    if(hhour==24)//小时加到24则小时清零
    {
     hhour=0;
     week++;
     if(week==8)
     {
      week=1;
     }
     write_week(week);//星期若变化则重新写入
     day++;
     if(year%4==0&&month==2)//判断是否为闰年的2月
     {
      if(day==30)
      {
       writeym();                                                                                                                                                                                                                                                                        
      }
      write_ymd(9,day);//日若变化则重新写入
     }
     if(year%4!=0&&month==2)//判断是否为平年的2月
     {
      if(day==29)
      {
       writeym();                                                                                                                                                                       
      }
      write_ymd(9,day);//日若变化则重新写入
     }
     if(month!=2&&month!=4&&month!=6&&month!=9&&month!=11)
     {
      if(day==32)
      {
       writeym();                                                                                                                                                                       
      }
      write_ymd(9,day);//日若变化则重新写入
     }
     if(month==4||month==6||month==9||month==11)
     {
      if(day==31)
      {
       writeym();                                                                                                                                                                       
      }
      write_ymd(9,day);//日若变化则重新写入
     }
    }
    if(bj==0)
     write_sfm(4,hhour);//24小时制小时若变化则重新写入
   }
   if(bj==0)
    write_sfm(7,mminute);//分钟若变化则重新写入
  }
  if(bj==0)
   write_sfm(10,ssecond);//秒若变化则重新写入            
}            
}

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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