3.c

来自「刚学时编的小程序」· C语言 代码 · 共 74 行

C
74
字号
#include <AT89X51.H>

unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,0x40};
unsigned char dispbitcode[]={0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f};
unsigned char dispbuf[8]={0,0,16,0,0,16,0,0};
unsigned char dispbitcnt;

unsigned char second;
unsigned char minite;
unsigned char hour;
unsigned int tcnt;
unsigned char mstcnt;


void main()
{
	TMOD=0x02;
	TH0=0x06;
	TL0=0x06;
	TR0=1;
	ET0=1;
	EA=1;
	P1=dispcode[dispbuf[dispbitcnt]]	;
	P2=dispbitcode[dispbitcnt]	  ;
	while(1);

}

void t0(void) interrupt 1 using 0
{
	mstcnt++;
	if(mstcnt==8)
	{
		mstcnt=0;
		P1=dispcode[dispbuf[dispbitcnt]]	;
		P2=dispbitcode[dispbitcnt]	  ;
		dispbitcnt++;
		if(dispbitcnt==8)
		{
			dispbitcnt=0;
		}
	}
	tcnt++;
	if(tcnt==4000)
	{	tcnt=0;
	 	second++;
		if(second==60)
		{
			minite++;
			if(minite==60)
			{
				hour++;
				if(hour==24)
				{
					hour=0;
				}	
				minite=0;
			}
			second=0;
		}
		dispbuf[0]=second%10;
		dispbuf[1]=second/10;
		dispbuf[3]=minite%10;
		dispbuf[4]=minite/10;
		dispbuf[6]=hour%10;
		dispbuf[7]=hour/10;
	}
		
		
}

⌨️ 快捷键说明

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