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

📄 新建 文本文档.txt

📁 6个数码管与两个按键作成的电子时钟 6个数码管与两个按键作成的电子时钟
💻 TXT
字号:
#i nclude <reg51.h>
#i nclude <intrins.h>
#i nclude <absacc.h>
#define uchar unsigned char
#define uint unsigned int
sbit key7=P3^2;
sbit key8=P3^3;
uchar code tab1[6]= {0x7f,0x88,0xbc,0xbc,0x1c,0x2a};// HELLO-
uchar data con1s=0x00,con=0x00,con04s=0x00;
uchar data dis[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x00};
uchar data tab[6]={0x04,0x03,0x05,0x2,0x08,0x00};
uchar code dis_7[11]={0x88,0xeb,0x4c,0x49,0x2b,0x19,0x18,0xcb,0x08,0x09,0xff};//0~9
uchar code dis_9[11]={0x88,0xe3,0x44,0x41,0x23,0x11,0x10,0xc3,0x00,0x01,0xff};//带小数点的0123456789不亮

delay(uint t)     //1ms秒延时
{
uint i,j;
for(i=0;i<t;i++)
   for(j=0;j<120;j++)
 ;
}

display()   //开机显示子程序
{
 uchar i,j;
 for(i=0;i<6;i++)
  {SBUF=tab1[i];
   while(!TI);
   TI=0;
   delay(300);
  }
  for(j=0;j<5;j++)
  delay(1000);
}
 
keyscan()    //键扫描子程序
{
 EA=0; 
 if(key7==0)
  {
   delay(10);
   while(key7==0);
   if(dis[con]==10)
   {dis[7]=dis[con];dis[con]=dis[6];dis[6]=dis[7];}
   con++;TR0=0;ET0=0; TR1=1;ET1=1;
   if(con>=6)
     {con=0;TR1=0;ET1=0,TR0=1;ET0=1;}
    }
 
 if(con!=0)         //加1
  {
   if(key8==0)
   {
    delay(30);
    while(key8==0);
     tab[con]++;
     if(tab[con]>=10)
       {tab[con]=0; }
     dis[con]=tab[con];dis[6]=0x0a;
    }
  }
   EA=1;

}
 
clearmen()      //初始化子程序
{
uchar i;
for(i=0;i<6;i++)
dis[i]=tab[i];
SCON=0x00;
TH0=0x3c;TL0=0xb0;
TH1=0x3c;TL1=0xb0;
TMOD=0x11;
TR0=1; ET0=1;
TR1=0; ET1=1;
EA=1;
}

scan()      //显示子程序
{
 uchar i;
 for(i=0;i<6;i++)
  {
     if(i==0||i%2!=0)
       {  SBUF=dis_7[dis[i]];
          while(!TI);
          TI=0;}
 else
   {SBUF=dis_9[dis[i]];
    while(!TI);
    TI=0;}
   }
}

void time_intt(void) interrupt 1 using 0     //计时中断0
{
ET0=0;TR0=0;TH0=0x3c;TL0=0xb0;TR0=1;
con1s++;
if(con1s==20)
 {
  con1s=0x00;
  tab[0]++;
  if (tab[0]>=10)
   {
     tab[0]=0;tab[1]++;
     if(tab[1]>=6)
   {
    tab[1]=0;tab[2]++;
    if(tab[2]>=10)
       {
       tab[2]=0;tab[3]++;
        if(tab[3]>=6)
            {
              tab[3]=0;tab[4]++;
      if(tab[4]>=10)
     {
      tab[4]=0;tab[5]++;
      }
    if(tab[5]==2)
             {
               if(tab[4]==4)
                 {
                   tab[4]=0;tab[5]=0;
                  }

              }
    
             }
        }
      }
    }
dis[0]=tab[0];dis[1]=tab[1];dis[2]=tab[2]; 
dis[3]=tab[3];dis[4]=tab[4];dis[5]=tab[5]; 
 }
ET0=1;
}

void time_iint1(void) interrupt 3     //计时中断1
{
 EA=0;TR1=0;TH1=0x3c;TL1=0xb0;TR1=1;
 con04s++;
 if(con04s==8)
 {
   con04s=0x00;
   dis[7]=dis[con];dis[con]=dis[6];dis[6]=dis[7];
  }
  EA=1;
}

main()
{
  key7=1;
 key8=1;
  display();
  clearmen();
  while(1)
  {
    scan();
 delay(10);
 keyscan();
   }
}

⌨️ 快捷键说明

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