Á¢¼´×¢ƒÔ(c¨¨) µÇä›
·µ»ØÊ×í“(y¨¨)

uid:223372µÄ‚€(g¨¨)ÈË¿Õég

ÈÕÖ¾

½o´ó¼Ò·ÖÏíÒ»‚€(g¨¨)”µ(sh¨´)´a•r(sh¨ª)犳ÌÐò

ÒÑÓÐ 800 ´Îé†×x2017-7-30 13:36 | ”µ(sh¨´)×Ö•r(sh¨ª)çŠ

#include<reg51.h>

#define uchar unsigned char

#define uint unsigned int         

sbit s1=P2^0;                 

sbit s2=P2^1;

sbit s3=P2^2;

sbit s4=P2^3;

sbit s5=P2^4;

sbit s6=P2^5;

sbit s7=P2^6;

sbit k1=P1^0;                      //•r(sh¨ª)égÔO(sh¨¨)ÖÃ

sbit k2=P1^1;                       // ô[çŠÔO(sh¨¨)ÖÃ

sbit k3=P1^2;                     //¶¨•r(sh¨ª)é_(k¨¡i)êP(gu¨¡n)ÔO(sh¨¨)ÖÃ

sbit k4=P1^3;                   //µ¹Ó‹(j¨¬)•r(sh¨ª)ÔO(sh¨¨)ÖÃ

sbit k5=P1^4;                   //•r(sh¨ª)·ÖÃë

sbit k6=P1^5;                  //¼Ó

sbit k7=P1^6;                   //œp

sbit k8=P1^7;                  //µ¹Ó‹(j¨¬)•r(sh¨ª)é_(k¨¡i)êP(gu¨¡n)

 

 

uchar count=0,count1=0,a,b,c,sec,min,hour,x,y,z;flag=0,s=60,m=60,h=24;

uchar code mum[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

/*******ÑÓ•r(sh¨ª)³ÌÐò*************/

void display();

void delayms(uint k)

{

 uint i,j;

 for(i=k;i>0;i--)

 for(j=110;j>0;j--);

}

/********ï@ʾ×Ó³ÌÐò*******/

void display(uchar sz,uchar fz,uchar xh)

{

 if(((sec>=a)&&(min>=b)&&(hour>=c))||(k3==0))

 {

 s1=1;

 P0=mum[xh/10];

 delayms(5);

 s1=0;

 

 s2=1;

 P0=mum[xh%10]&0x7f;

 delayms(5);

 s2=0;

 

 s3=1;

 P0=mum[fz/10];

 delayms(5);

 s3=0;

 

 s4=1;

 P0=mum[fz%10]&0x7f;

 delayms(5);

 s4=0;

 

 s5=1;

 P0=mum[sz/10];

 delayms(5);

 s5=0;

 

 s6=1;

 P0=mum[sz%10];

 delayms(5);

 s6=0;

  }

}

/*******µ¹Ó‹(j¨¬)•r(sh¨ª)ï@ʾ×Ó³ÌÐò**********/

void display1()

{ s1=1;

 P0=mum[z/10];

 delayms(5);

 s1=0;

 

 s2=1;

 P0=mum[z%10]&0x7f;

 delayms(5);

 s2=0;

 

 s3=1;

 P0=mum[y/10];

 delayms(5);

 s3=0;

 

 s4=1;

 P0=mum[y%10]&0x7f;

 delayms(5);

 s4=0;

 

 s5=1;

 P0=mum[x/10];

 delayms(5);

 s5=0;

 

 s6=1;

 P0=mum[x%10];

 delayms(5);

 s6=0;

}

/*********¶¨•r(sh¨ª)é_(k¨¡i)êP(gu¨¡n)***************/

void time()

{

        if(k3==0)

        {

                delayms(10);              

                if(k3==0)

                {

                a=sec;b=min;c=hour;

                while(k3==0)         //é_(k¨¡i)ʼ¶¨•r(sh¨ª)é_(k¨¡i)êP(gu¨¡n)ÔO(sh¨¨)ÖÃ

                {

                        display(a,b,c);

                        if(k5==0)

                        {

                                delayms(10);

                                if(k5==0)         

                                {

                                while(!k5);

                                flag++;

                                if(flag==3)        flag=0;

                                }

                        }

                        if(k6==0)                //¼Ó”µ(sh¨´)

                                {

                                         delayms(10);

                                        if(k6==0)

                                        {

                                        while(!k6);

                                        switch(flag)

                                        {

                                        case 0:a++;if(a==60)a=0;break;

                                        case 1:b++;if(b==60)b=0;break;

                                        case 2:c++;if(c==24)c=0;break;      

                                        default :;                                              

                                        }

                                        }      

                                }

                        if(k7==0)                //œp”µ(sh¨´)

                                {

                                         delayms(10);

                                        if(k7==0)

                                        {

                                        while(!k7);

                                        switch(flag)

                                        {

                                        case 0:if(a>0)a--;

                                                        else        a=0;break;

                                        case 1:if(b>0)b--;

                                                        else        b=0;break;

                                        case 2:if(c>0)c--;

                                                        else        c=0;break;      

                                        default : ;

                                        }                                                                                                                                                }      

                                        }

                                }                                              

                        }

        }

 

}

/*******µ¹Ó‹(j¨¬)•r(sh¨ª)***********/

void dtime()

{

        if(k4==0)

        {

                delayms(10);              

                if(k4==0)

                {

                x=sec;y=min;z=hour;

                while(k4==0)         //é_(k¨¡i)µ¹Ó‹(j¨¬)•r(sh¨ª)ÔO(sh¨¨)ÖÃ

                {

                        display1();

                        if(k5==0)

                        {

                                delayms(10);

                                if(k5==0)         

                                {

                                while(!k5);

                                flag++;

                                if(flag==3)        flag=0;

                                }

                        }

                        if(k6==0)                //¼Ó”µ(sh¨´)

                                {

                                         delayms(10);

                                        if(k6==0)

                                        {

                                        while(!k6);

                                        switch(flag)

                                        {

                                        case 0:x++;if(x==60)x=0;break;

                                        case 1:y++;if(y==60)y=0;break;

                                        case 2:z++;if(z==24)z=0;break;      

                                        default :;                                              

                                        }

                                        }      

                                }

                        if(k7==0)                //œp”µ(sh¨´)

                                {

                                         delayms(10);

                                        if(k7==0)

                                        {

                                        while(!k7);

                                        switch(flag)

                                        {

                                        case 0:if(x>0)x--;

                                                        else        x=0;break;

                                        case 1:if(y>0)y--;

                                                        else        y=0;break;

                                        case 2:if(z>0)z--;

                                                        else        z=0;break;      

                                        default : ;

                                        }                                                                                                                                                }      

                                        }

                                }                                              

                        }

        }

 

}

void key()           //é_(k¨¡i)ʼµ¹Ó‹(j¨¬)•r(sh¨ª)

{

    if(k8==0)

    {

    delayms(10);

    if(k8==0)

       {

       while(k8==0)

           {

           display1();

           TR1=1;

           if((x==0)&&(y==0)&&(z==0))

              {

              TR1=0;

              }

           }

       }

    }

}

/*****•r(sh¨ª)égÔO(sh¨¨)ÖÃ******/

void shijian_settime()

{

 uchar st,mt,ht;

 display(sec,min,hour);

        if(k1==0)

        {

                delayms(10);

                if(k1==0)

                {

                st=sec,mt=min,ht=hour;

                TR0=0;                 //êP(gu¨¡n)é]¶¨•r(sh¨ª)Æ÷

                while(k1==0)         //é_(k¨¡i)ʼÔO(sh¨¨)ÖÕr(sh¨ª)ég

                {

                        display(st,mt,ht);                      

                        if(k5==0)

                        {

                                delayms(10);

                                if(k5==0)         

                                {

                                while(!k5);

                                flag++;

                                if(flag==3)        flag=0;

                                }

                        }

                        if(k6==0)                //¼Ó”µ(sh¨´)

                                {

                                         delayms(10);

                                        if(k6==0)

                                        {

                                        while(!k6);

                                        switch(flag)

                                        {

                                        case 0:st++;if(st==60)st=0;break;

                                        case 1:mt++;if(mt==60)mt=0;break;

                                        case 2:ht++;if(ht==24)ht=0;break;      

                                        default :;                                               

                                        }

                                        }      

                                }

                        if(k7==0)                //œp”µ(sh¨´)

                                {

                                         delayms(10);

                                        if(k7==0)

                                        {

                                        while(!k7);

                                        switch(flag)

                                        {

                                        case 0:if(st>0)st--;

                                                        else        st=0;break;

                                        case 1:if(mt>0)mt--;

                                                        else        mt=0;break;

                                        case 2:if(ht>0)ht--;

                                                        else        ht=0;break;      

                                        default : ;

                                        }                                                                                                                                      

                                        }      

                                }

                                }

                        TR0=1;

                        sec=st,min=mt,hour=ht;                                                      

                        }                                              

                }               

                display(sec,min,hour);

}

/********ô[çŠ**********/

void naozhong_time()               

{

        if(k2==0)

        {

                delayms(10);              

                if(k2==0)

                {

                s=sec;m=min;h=hour;

                while(k2==0)         //é_(k¨¡i)ʼÔO(sh¨¨)ÖÃô[çŠ

                {

                        display(s,m,h);

                        if(k5==0)

                        {

                                delayms(10);

                                if(k5==0)         

                                {

                                while(!k5);

                                flag++;

                                if(flag==3)        flag=0;

                                }

                        }

                        if(k6==0)                //¼Ó”µ(sh¨´)

                                {

                                         delayms(10);

                                        if(k6==0)

                                        {

                                        while(!k6);

                                        switch(flag)

                                        {

                                        case 0:s++;if(s==60)s=0;break;

                                        case 1:m++;if(m==60)m=0;break;

                                        case 2:h++;if(h==24)h=0;break;      

                                        default :;                                              

                                        }

                                        }      

                                }

                        if(k7==0)                //œp”µ(sh¨´)

                                {

                                         delayms(10);

                                        if(k7==0)

                                        {

                                        while(!k7);

                                        switch(flag)

                                        {

                                        case 0:if(s>0)s--;

                                                        else        s=0;break;

                                        case 1:if(m>0)m--;

                                                        else        m=0;break;

                                        case 2:if(h>0)h--;

                                                        else        h=0;break;      

                                        default : ;

                                        }                                                                                                                                                }      

                                        }

                                }                                              

                        }

        }

}

void naozhong()

{

 if((hour==h)&&(min==m)&&(sec==s))    //ÅДà•r(sh¨ª)égÊÇ·ñß_(d¨¢)µ½

 {

  s7=1;

  delayms(5000);

  s7=0;

  }

}

/******Ö÷³ÌÐò*******/                                            

void main()

  TMOD=0x11;

  TH0=(65536-45872)/256;

  TL0=(65536-45872)/256;

  TH1=(65536-45872)/256;               

  TL1=(65536-45872)%256;

  EA=1;

  ET0=1;

  TR0=1;

  ET1=1;

  TR1=0;

  s7=0;

  while(1)

  {

  shijian_settime();     //ÔO(sh¨¨)ÖÕr(sh¨ª)ég

  naozhong_time();          //ô[çŠÔO(sh¨¨)ÖÃ

  naozhong();            //ô[犳ÌÐò

  time();                  //¶¨•r(sh¨ª)é_(k¨¡i)êP(gu¨¡n)ÔO(sh¨¨)ÖÕr(sh¨ª)ég

  dtime();                 //µ¹Ó‹(j¨¬)•r(sh¨ª)ÔO(sh¨¨)ÖÕr(sh¨ª)ég

  key();                 //µ¹Ó‹(j¨¬)•r(sh¨ª)é_(k¨¡i)êP(gu¨¡n)

  }

}

/*******ÖДà×Ó³ÌÐò*********/

void T0_ms() interrupt 1          //ÖДàÈë¿Ú³ÌÐò

{

        TH0=(65536-45872)/256;                //ÖØÐÂÑb³õÖµ

        TL0=(65536-45872)%256;

        count++;

        if(count==20)                 //Åж¨1s•r(sh¨ª)égÊÇ·ñÒѵ½

        {

                count=0;

                sec++;

                if(sec==60)

                {

                 sec=0;

                 min++;

                if(min==60)

                {

                 min=0;

                 hour++;

                if(hour==24)

                 {

                  hour=0;

 }

 }

 }

        }

}

void T1_ms() interrupt 3          //ÖДàÈë¿Ú³ÌÐò

{

        TH1=(65536-45872)/256;                //ÖØÐÂÑb³õÖµ

        TL1=(65536-45872)%256;

        count1++;

        if(count1==20)                 //Åж¨1s•r(sh¨ª)égÊÇ·ñÒѵ½

        {

                count1=0;

 

 if(x!=0)

 {

 x--;

 }

 if((y!=0)&&(x==0))

 {

 x=59;

 y--;

 }

     if((z!=0)&&(y==0)&&(x==0))

 {

 z--;

 y=59;

 x=59;

 }

  display1();

   }    

}


·ß^(gu¨°)

ëuµ°

õr»¨

ÎÕÊÖ

À×ÈË

Ôu(p¨ªng)Õ“ (0 ‚€(g¨¨)Ôu(p¨ªng)Õ“)

ÊÖ™C(j¨©)°æ|СºÚÎÝ|51ºÚëŠ×ÓÕ“‰¯ |51ºÚëŠ×ÓÕ“‰¯6Ⱥ QQ ¹ÜÀí†TQQ:125739409;¼¼Ðg(sh¨´)½»Á÷QQȺ281945664

Powered by †ÎƬ™C(j¨©)½Ì³Ì¾W(w¨£ng)

·µ»Øí”²¿