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

📄 zly.c

📁 2051控制两组LED交叉显示的99分定时器源代码。
💻 C
字号:
#include<AT89x051.h>
#include<INTRINS.H>
unsigned int led[10]={0x08,0x6d,0x14,0x44,0x61,0x42,0x02,0x6c,0x00,0x60};
unsigned int kkg[4]={0xf7,0xf3,0xf5,0xf6};
unsigned int sh,g,ms,ss,s,kk,temp;
/*void start(void)
{
 
}*/

void timer0(void) interrupt 1 using 1
{
 TH0=0x63;TL0=0xbe;
 ss++;
 if(ss==10){ss=0;s++;}
 if(s==100){s=0;g--;}
 if(g>9&&sh>0){g=9;sh--;}
}

void timer1(void) interrupt 3 using 3
{
 TH1=0xfe;TL1=0xb3;ms--;
 temp=(!temp);
 if(temp==1){P1=led[g];P1_7=0;}else{P1=led[sh];P1_7=1;}
}

void delay(unsigned int s)
{
 TR1=1;
 ms=s;
 while(ms){;}
 TR1=0;  
}



void main(void)
{
 
 unsigned int i;
 i=0;

 
 TMOD=0x11;TR0=0;IT0=0;EA=1;TH0=0x63;TL0=0xbe;
 TH1=0xfe;TL1=0xb3;ET0=1;ET1=1;
  delay(50);
 while(1)
 {
   if(kk==3){P3_7=1;delay(1);P3_7=0;delay(1);}
   if(kk==2){P3_7=1;delay(9);P3_7=0;delay(9);}
   if(kk==1){P3_7=1;delay(16);P3_7=0;delay(16);}
   if(sh==0&&g==0)while(P3_4){TR0=0;P3=0xff;delay(5);}
	P3_3=0;P3_7=0;
   if(sh==0&&g==0&&P3_4==0){sh=9;g=9;}
   if(kk==0)delay(1);
   while(!P3_4||!P3_5)                                
   {
	 i++;delay(400);
    if(P3_4==0)g--;if(g>9&&sh>0){g=9;sh--;}
    if(sh==0&&g==0&&P3_4==0){sh=9;g=9;}
    if(P3_5==0&&i==1){kk++;if(kk==4)kk=0;P3=kkg[kk];}
    
    if(i==2)i=0;
   }TR0=1;
 }
}


⌨️ 快捷键说明

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