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

📄 time.c

📁 自己写的C语言的例子啦
💻 C
字号:
#include <reg52.h>//加载头文件
#define uchar unsigned char//变量类型的宏定义
#define uint unsigned int//变量类型的宏定义

sbit P3_0=P3^0;
sbit P3_1=P3^1;
sbit P3_2=P3^2;
sbit P3_3=P3^3;

//------------------ 	 
uchar count=0;             //50mS计数单元
uchar sec,min,hou,day,mon,year;//秒、分、时、天、月
uchar temp_min,temp_hou,temp_day;//临时存放的分、时、天

//------------------------
//time0初始化,定时50mS
//------------------------
void Init_Time0(void)
{
	TMOD = 0x01;
	IE=0x82;
	TH0 = 0x4C;
	TL0 = 0x00;
	TR0 = 1;
}
void Time0Int(void) interrupt 1 using 2
{
	TH0 = 0x4C;
	TL0 = 0x00;
	count++;/* 用户代码 */
}


//***********初始化子函数************
void init(void)
{
	Init_Time0();                  
}

//------------------------------------
//年、月、日、时、分、秒计时单元转换
//------------------------------------
void conv()
{
	if(count>=20){sec++;count=0;}
	if(sec>=60){min++;sec=0;}	
	if(min>=60){hou++;min=0;}
	if(hou>=24){day++;hou=0;}
	switch(mon)
	{
		case 1:if(day>31){mon++;day=1;}break;// 万年历计算
		case 2:if(year%4==0&&year%100!=0||year%400==0)
				{
					if(day>29)
					mon++;day=1;
				}
				else if(day>28)
					{
						mon++;day=1;
					}
				break;
		case 3:if(day>31){mon++;day=1;}break;
		case 4:if(day>30){mon++;day=1;}break;
		case 5:if(day>31){mon++;day=1;}break;
		case 6:if(day>30){mon++;day=1;}break;
		case 7:if(day>31){mon++;day=1;}break;
		case 8:if(day>31){mon++;day=1;}break;
		case 9:if(day>30){mon++;day=1;}break;
		case 10:if(day>31){mon++;day=1;}break;
		case 11:if(day>30){mon++;day=1;}break;
		case 12:if(day>31){year++;mon=1;day=1;}break;
		default:break;
	}
}

/****************主程序*******************/
void main()
{	
	init();//初始化
	while(1)
	{
	conv();//时间计算及转换
	}
}

⌨️ 快捷键说明

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