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

📄 clock.c

📁 Keil c51 开发的一个日历时钟小程序
💻 C
字号:
//24时时钟
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code constantcode[8]={0x70,0x60,0x50,0x40,0x30,0x20,0x10,0x00};
uchar data table[8]={0,0,0,0,0,0,0,0};
uchar data curled=0;
uchar data timearrive=0;
uchar data timelength=20;
uchar data sl=0;
uchar data sh=0;
uchar data ml=0;
uchar data mh=0;
uchar data hl=0;
uchar data hh=0;
void init(void);
void inittable(uchar*,uchar);
void buildtable(uchar*);
void OnTimer0Event(void) interrupt 1
{
if(curled<7)
{
curled++;
}
else
{
curled=0;
}
P0=table[curled];
TH0=(65535-1000)/256;
TL0=(65535-1000)%256;
}
void OnTimer1Event(void) interrupt 3
{
if(--timelength<=0)
{
timelength=20;
timearrive=1;
}
if(timearrive)
{
	if(sl==9)
	{
	    sl=0;
		if(sh<5)
		{
		sh++;
		}
		else
		{
		sh=0;
			if(ml==9)
			{
			ml=0;
				if(mh<5)
				{
				mh++;
				}
				else
				{
					mh=0;
					if(hh<=1)
					{
						if(hl==9)
						{
						hh++;
						hl=0;
						}
						else
						{
						hl++;
						}
					}
					else
					{
						if(hl==3)
						{
						hl=0;
						hh=0;
						}
						else
						{
						hl++;
						}
					}
					
					
				}
			}
			else
			{
			ml++;
			}
		}
	}
	else
	{
	sl++;
	}
	timearrive=0;
	buildtable(table);
	}
TH1=(65535-50000)/256;
TL1=(65535-50000)%256;
}
void main(void)
{
init();
while(1);
}
void init(void)
{
TMOD=0x11;
TCON=0;
IE=0x8A;
IP=0x02;
TH0=(65536-1000)/256;
TL0=(65535-1000)%256;
TH1=(65535-50000)/256;
TL1=(65535-50000)%256;
inittable(table,8);
TR0=1;
TR1=1;
}
void buildtable(uchar *p)
{
*p=constantcode[0];
*(p+1)=constantcode[1];
*(p+2)=constantcode[2]+hh;
*(p+3)=constantcode[3]+hl;
*(p+4)=constantcode[4]+mh;
*(p+5)=constantcode[5]+ml;
*(p+6)=constantcode[6]+sh;
*(p+7)=constantcode[7]+sl;
}
void inittable(uchar *p,uchar len)
{
uchar data i=0;
do{
*(p+i)=*(p+i)+constantcode[i];
}while(++i<len);
}

⌨️ 快捷键说明

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