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

📄 clock.c

📁 基于51的数字时钟程序,能够显示小时,分钟.可以进行时时修改
💻 C
字号:
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
uchar code dispcode[]={0x3f,0x06,0x5b,0x4f, 
                       0x66,0x6d,0x7d,0x07, 
                       0x7f,0x6f,0x77,0x7c, 
                       0x39,0x5e,0x79,0x71,0x00}; 
uchar dispbitcode[]={0x01,0x02,0x04,0x08,0x10,0x20}; 
uchar dispbuf[]={1,2,0,0,0,0}; 
uchar dispbitcnt,second,minute,hour,mstcnt; 
uint tcnt; 
sbit K1=P3^2; 
sbit K2=P3^3;
sbit K3=P3^4;
uchar i,j;
void delay (uint );
void main(void) 
{ 
	TMOD=0x02; 
	TH0=0x06; 
	TL0=0x06; 
	TR0=1; 
	ET0=1; 
	EA=1; 
	hour=12;
  while(1) 
    {
			if(K1==0)
				{
					delay(1);
				
					if(K1==0)
						{
							
							second++;
							if(second==60)
									second=0;
							dispbuf[5]=second%10;
							dispbuf[4]=second/10;
							while(K1==0);
						}
				}
			
			if(K2==0)
				{
					delay(1);
				
					if(K2==0)
						{
							
							minute++;
							if(minute==60)
									minute=0;
							dispbuf[3]=minute%10; 
      					dispbuf[2]=minute/10;
							while(K2==0);
						}

				}

			if(K3==0)
				{
				delay(1);
			
					if(K3==0)
						{
							
							hour++;
							if(hour==24)
									hour=0;
						 dispbuf[1]=hour%10; 
     					 dispbuf[0]=hour/10;
							while(K3==0);
						}

				}
	 }
} 
void t0(void) interrupt 1  
{ 
  mstcnt++; 
  if(mstcnt==8) 
    { 
      mstcnt=0; 
      P0=dispcode[dispbuf[dispbitcnt]]; 
      P2=dispbitcode[dispbitcnt]; 
      dispbitcnt++; 
      if(dispbitcnt==6) 
        { 
          dispbitcnt=0; 
        } 
    } 
  tcnt++; 
  if(tcnt==4000) 
    { 
      tcnt=0; 
      second++; 
      if(second==60) 
        { 
          second=0; 
          minute++; 
          if(minute==60) 
            { 
              minute=0; 
              hour++; 
              if(hour==24) 
                { 
                  hour=0; 
                } 
            } 
        } 
      dispbuf[5]=second%10; 
      dispbuf[4]=second/10; 
      dispbuf[3]=minute%10; 
      dispbuf[2]=minute/10; 
      dispbuf[1]=hour%10; 
      dispbuf[0]=hour/10; 
    } 
}void delay (uint z)
{
	uint x,y;
	for(x=z;x>0;x--)
		for(y=110;y>0;y--);
}

⌨️ 快捷键说明

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