您当前的位置:五五电子网电子知识单片机-工控设备AVR单片机AVR单片机万年历程序 正文
AVR单片机万年历程序

AVR单片机万年历程序

点击数:7784 次   录入时间:03-04 11:39:06   整理:http://www.55dianzi.com   AVR单片机
                (*Flag)|=0x80;         //当前位加上小数点显示
                if(Flag==temp1+13) 
                 {Flag=temp1;
                  (*Flag)|=0x80;
                  (*(Flag+13))&=0x7f;}
                break;
          case 0x20:                   //"上一位"键处理
                if(Flag==temp1) 
                    {(*Flag)&=0x7f;
                     Flag=temp1+13;
                     (*Flag)|=0x80;} 
                else Flag--;           
                (*Flag)|=0x80;         //当前位加上小数点显示
                (*(Flag+1))&=0x7f;     //下一位去掉点小数点显示
                break;
          case 0x40:Enter_Flag=1;break;//"确定"键处理
    //      case 0x80:Enter_Flag=1;break;  //测试用
          default:break;}
        
       }
     Enter_Flag=0;                     //按键状态恢复
     temp2[0]=0x00;                    //秒,默认从00开始计时
     temp2[1]=(temp1[11]<<4)|temp1[12];//分
     temp2[2]=(temp1[9]<<4)|temp1[10]; //时
     temp2[3]=temp1[8];                //周
     temp2[4]=(temp1[6]<<4)|temp1[7];  //日
     temp2[5]=(temp1[4]<<4)|temp1[5];  //月
     temp2[6]=(temp1[2]<<4)|temp1[3];  //年
     Write_Nbyte(SD2303,0x00,temp2,7); //初始化设定时间
    }
   if(Key==0xfd)                       //"闹铃设置"键按下
    {temp1[9]|=0x80;
     Flag=temp1+9;                     //定时小时高位设置提示
     while(!Enter_Flag)                //直到按下确定键方停止
       {for(i=0;i<50;i++)
          Display(temp1);
        Key=~PINB;
        switch(Key)
         {case 0x04:                   //"+"按键处理
               (*Flag)++;
               if(((*Flag)&0x7f)==10) *Flag=0|0x80;
               break;
          case 0x08:                   //"-"按键处理
                if(((*Flag)&0x7f)==0)    *Flag=10|0x80; 
                (*Flag)--;
                break;
          case 0x10:                   //"下一位"按键处理
                Flag++;
                (*(Flag-1))&=0x7f;     //上一位去掉小数点显示
                (*Flag)|=0x80;         //当前位加上小数点显示
                if(Flag==temp1+13) 
                 {(*Flag)&=0x7f;
                  Flag=temp1+9;
                  (*Flag)|=0x80;}
                break;
          case 0x20:                   //"上一位"按键处理
                if(Flag==temp1+9) 
                 {(*Flag)&=0x7f;
                  Flag=temp1+13;
                  (*Flag)|=0x80;}
                else Flag--;

上一页  [1] [2] [3] [4] [5]  下一页


本文关键字:单片机  程序  万年历  AVR单片机单片机-工控设备 - AVR单片机