⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 秒表.c

📁 此程序含有仿真电路图和C语言程序
💻 C
字号:
#include<reg51.h>
#include<absacc.h>
#define a8255 XBYTE[0x1b00]
#define b8255 XBYTE[0x1b01]
#define c8255 XBYTE[0x1b02]
#define com8255 XBYTE[0x1b03]
char min,sec,dsec,a,b,c;
char n[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};
char count;
bit flag;
bit flag1;
sbit p10=P1^0;
sbit p11=P1^1;
void delay(void)
{char k;
 for(k=0;k<99;k++);
}
void display(int m,int s,int ds)
{char m1,m2,s1,s2,i;
 m1=m2=s1=s2=0;
 if(m>0){m2=m%10;m/=10;}
 if(m>0) m1=m%10;
 if(s>0){s2=s%10;s/=10;}
 if(s>0) s1=s%10;
 b8255=0xff;
 for(i=0;i<7;i++)
  {switch(i)
    {case 0:b8255=0xfe;a8255=n[m1];delay();
     case 1:b8255=0xfd;a8255=n[m2];delay();
     case 2:b8255=0xfb;a8255=n[10];delay();
     case 3:b8255=0xf7;a8255=n[s1];delay();
     case 4:b8255=0xef;a8255=n[s2];delay();
     case 5:b8255=0xdf;a8255=n[10];delay();
     case 6:b8255=0xbf;a8255=n[ds];delay();
    }
  }
 }
void initial(void)
{com8255=0x80;
 TMOD=0x01;
 IT0=1;
 EA=1;
 ET0=1;
 EX0=1;
 min=0;
 sec=0;
 dsec=0;
 a=0;
 b=0;
 c=0;
 flag=0;
 flag1=0;
}
void main(void)
{initial();
 while(1)
  {if(!flag1)
     display(min,sec,dsec);
   else
     display(a,b,c);
  }
}
void st(void)
{flag=!flag;
 if(flag)
  {TH0=-50000/256;
   TL0=-50000%256;
   TR0=1;
  }
 if(!flag)
  {if(flag1==1)
 {min=0;
 sec=0;
 dsec=0;
 count=0;
 flag1=0;
 TR0=0;
 }
        else TR0=0;
        flag=0;
   }
 }
 void lock(void)
 {  if(flag==1)
    {  a=min;
     b=sec;
     c=dsec;
     flag1=!flag1;
        }
  }
  void T0_serv(void) interrupt 1 using 1
  {  TH0=-50000/256;
      TL0=-50000%256;
      TR0=1;
      count++;
      dsec=count;
      if(count>9)
      {  sec++;
      count=0;
      dsec=0;
      }
      if(sec>59)
      {  min++;
     sec=0;
       }
   }
   void INT0_serv(void)interrupt 0 using 1
   {  if(p10==0&&p11==1)
   st();
   if(p10==1&&p11==0)
   lock();
   }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -