📄 main.c
字号:
unsigned int year=2006;
unsigned int month=1;
unsigned int day=1;
unsigned int hour=0;
unsigned int min=0;
unsigned int sec=0;
unsigned int flag_runnian=0;
int runnian[12]={31,29,31,30,31,30,31,31,30,31,30,31};
int pingnian[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int output[8]={1,2,3,4,5,6,7,8};
unsigned int light=100;
unsigned int num=0;
int flag;
int max;
int line;
int point=0;
int b[17]={0,1};
int key_scan();
int system();
int output_asm();
/**********判断闰年并产生标志flag_runnian 同时计算当月最大天数***********/
int run_nian()
{
if( year%400==0 || (year%4==0&&year%100!=0))
{ flag_runnian=1;max=runnian[month-1];}
else
{ flag_runnian=0;max=pingnian[month-1];}
}
/*******走表程序**************/
int time_run()
{
if(sec>59)
{sec=0;
min++;}
if(min>59)
{min=0;
hour++;}
if(hour>23)
{hour=0;
day++;}
run_nian();
if(flag_runnian==1)
{ if(day>runnian[month-1])
{ month++;
day=1;}
else
if(day>pingnian[month-1])
{ month++;day=1;}
}
if(month>13)
{month=1;
year++;}
}
/*********键盘调整 产生标志b数组******************/
int key_b()
{ int i=100;
b[3]=0;b[4]=0;
key_scan();
if(flag==1){b[2]=0;point=0;}
if(flag)
{
b[flag]+=1;
flag=0;
if(b[1]==2)b[1]=0;
if(b[2]==4)b[2]=0;
}
}
/********利用b数组调整万年历输出值*******************/
int tiaozheng()
{
if(b[1])
{
switch(b[2])
{
case 1: point=384; hour+=b[3];hour-=b[4];if(hour==-1)hour=23; if(hour==24)hour=0;break;
case 2: point=0x0480;min+=b[3]; min-=b[4]; if(min==-1) min=59;if(min==60)min=0;;break;
case 3 :point=0; b[2]=0;
default :break;
}
}
else
{
switch(b[2])
{
case 1: point=0x0380; year+=b[3];year-=b[4];if(year==-1)year=0;break;
case 2: point=0x0580; month+=b[3]; month-=b[4];if(month==0)month=12;if(month==13)month=1; break;
case 3: point=0x0780; day+=b[3];day-=b[4];run_nian();if(day>max)day=1;if(day==0)day=max;break;
default:point=0;;break;
}
}
}
/********输出函数 *******************/
int out_put()
{
if(b[1])
{
output[2]=38;
output[1]=hour%10;
output[0]=(hour-output[1])/10;
output[4]=min%10;
output[3]=(min-output[4])/10;
output[7]=sec%10;
output[6]=(sec-output[7])/10;
output[5]=38;
}
else
{
output[3]=year%10;
output[2]=(year%100-output[3])/10;
output[1]=(year%1000-10*output[2]-output[3])/100;
output[0]=(year-100*output[1]-10*output[2]-output[3])/1000;
output[5]=month%10;
output[4]=(month-output[5])/10;
output[7]=day%10;
output[6]=(day-output[7])/10;
}
output_asm();
}
/********主函数 ******************/
int main()
{
system();
while(1)
{
key_b();
tiaozheng();
time_run();
out_put();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -