基于P16F877A单片机的数字时钟设计

2019-03-25 18:47发布

#include<htc.h>
#include<pic.h>
main()
{
        int a=1,b,z,h=1;
        int s1=0,s2=0,s3=0,s4=0;
        int n1=0,n2=0,n3=0,n4=0;
        int m1=0,m2=0,m3=0,m4=0;
    int LED1,LED2,LED3,LED4,RA1,t,time;
        static bit biaozhi=0;
        static bit mbz=0;
       
   ADCON1=0X06;
   TRISA=0X00;
   TRISB=0X01;
   PORTB=0X00;
   TRISD=0X01;
   PORTD=0X01;
   TRISE=0X00;

   timer1init()
   {
      INTE=1;
      INTEDG=1;
      RA1=1;
      LED1=0;
      LED2=0;
      LED3=0;
      LED4=0;

   while(1)
   {
           RD4=1;
           if(RD0==1)
           {
                    delay(10);
                    if(RD0==1)
                     {
                             RD2=1;
                             delay(30);
                             RD2=0;
                             if(h==3)
                              {
                                      mbz=!mbz;t=0;
                                   }
                                   else
                                   {
                                           biaozhi=!biaozhi;
                                           time=0;
                                        }
                      }
                        while(RD0==1);
           }
              RD4=0;     
              RD5=1;
              if(RD0==1)
              {
                      delay(10);
                      if(RD0==1)
                      {
                              RD2=1;
                              delay(30);
                              RD2=0;
                              a++;
                              if(a==5)
                                        a=1;         
                                        if(a==1)         
                                        {
                                                b=LED1;
                                                LED1=10;            
                                                delay(300);
                                                 LED1=b;         
                                        }           
                                        if(a==2)           
                                        {
                                                b=LED2;
                                                LED2=10;           
                                                delay(300);
                                                LED2=b;           
                                        }
              if(a==3)           
              {
                      b=LED3;
                      LED3=10;           
                      delay(300);
                      LED3=b;
                    }         
                     if(a==4)         
                     {
                             b=LED4;
                             LED4=10;         
                             delay(300);
                             LED4=b;         
                           }         
                        }
                        while(RD0==1);
                        {     
                          RD5=0;      
                          RD6=1;
                          if(RD0==1)
                          {  
                          delay(10);
                          if(RD0==1)
                          {
                                  RD2=1;
                                  delay(30);
                                  RD2=0;
                                  if(h==1)
                                   {
                                           LED1=s1;
                                           LED2=s2;
                                           LED3=s3;
                                             LED4=s4;
                                           }
                                          if(a==1)
                                          s1++;
                                          if(a==2)
                                          s2++;
                                          if(a==3)
                                          s3++;
                                          if(a==4)
                                          s4++;
                                          if(s1==3)
                                          s1=0;
                                          if(s1<2)      
                                          {
                                                  if(s2==10)
                                                  s2=0;
                                                  }      
                                                  if(s1==2)     
                                                    {
                                                            if(s2==4)
                                                              s2=0;
                                               }     
                                                if(s3==6)
                                                 s3=0;      
                                          if(s4==10)
                                           s4=0;      
                                            }         
                                             if(h==2)
                                             {
                                                     LED1=n1;
                                                     LED2=n2;
                                                     LED3=n3;
                                                     LED4=n4;
                                      }
                                       if(a==1)
                                       n1++;
                                       if(a==2)
                                       n2++;
                                       if(a==3)
                                       n3++;
                                       if(a==4)
                                       n4++;
                                       if(s1==3)
                                       s1=0;
                                       if(s1<2)         
                                       {
                                               if(s2==10)
                                               s2=0;
                                             }         
                                             if(s1==2)         
                                             {
                                                     if(s2==4)
                                                     s2=0;
                                           }         
                                           if(s3==6)
                                           s3=0;         
                                           if(s4==10)
                                           s4=0;         
                                         }        
                                 }
                                  while(RD0==1);
                                  {
                                           RD6=0;      
                                           RD7=1;
                                           if(RD0==1)
                                            {
                                               delay(10);
                                            }
                                               if(RD0==1)
                                               {
                                                       RD2=1;
                                                       delay(30);
                                                       RD2=0;
                                                       h++;
                                                       if(h==4)
                                                       h=1;            
                                                     }
                                                     while(RD0==1);
                                                     {
                                                             RD7=0;
                                                           }
                                                              if(h==1)
                                                              {
                                                                      LED1=s1;
                                                                      LED2=s2;
                                                                      LED3=s3;
                                                                      LED4=s4;
                                                                    }
                                                                    if(h==2)
                                                                    {
                                                                       LED1=n1;
                                                                       LED2=n2;
                                                                       LED3=n3;
                                                                       LED4=n4;
                                                                    }
                                                                    if(h==3)
                                                                    {  
                                                                         LED1=m1;
                                                                       LED2=m2;
                                                                        LED3=m3;         
                                                                         LED4=m4;
                                                                     }
                                                                     if(biaozhi)
                                                                     {   
                                                                        if(time>=400)
                                                                         {
                                                                                 time=0;         
                                                                                 z++;
                                                                                 if(z==60)
                                                                                 {
                                                                                         s4++;
                                                                                         z=0;
                                                                                      }
                                                                                      if(s4==10)
                                                                                      {
                                                                                              s3++;
                                                                                              s4=0;
                                                                                            }      
                                                                                            if(s3==6)  
                                                                                              {
                                                                                                      s2++;
                                                                                                        s3=0;
                                                                                                    }      
                                                                                                       if(s1<2)
                                                                                                       {
                                                                                                               if(s2==4)
                                                                                                               {
                                                                                                                       s1=0;
                                                                                                                       s2=0;
                                                                                                                     }
                                                                                                            }                  
                                                                                    }                                   
                                                                                    if(s1==n1&&s2==n2&&s3==n3&&s4==n4)
                                                                                    {
                                                                                             RD2=1;
                                                                                             if(time>=40)                           
                                                                                             RD2=0;                             
                                                                                     }                                          
                                                                                     if(s3==0&&s4==0)
                                                                                     {
                                                                                              RD2=1;
                                                                                              if(time>=40)   
                                                                                              RD2=0;                     
                                                                                      }              
                                                                              }
                                                                               if(mbz)
                                                                               {     
                                                                                 if(t>=40)
                                                                                 t=0;
                                                                                 m4++;         
                                                                                 if(m4==10)
                                                                                 {
                                                                                         m3++;
                                                                                         m4=0;
                                    }                          
                                     if(m3==10)
                                      {
                                              m2++;
                                                m3=0;
                                            }                        
                                              if(m2==6)  
                                               {
                                                       m1++;m2=0;
                                                    }                          
                                                      if(m1==10)
                                                       {
                                                               m1=0;
                                                                 }     

                                     }

                               }
                     }


      }               
   }                                        

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。