📄 timer_mian411.c.bak
字号:
//ICC-OKI application builder : 2009-3-10
// Target : ML610Q411
#include <m610411.h>
#include <common.h>
#define uchar unsigned char
uchar col,ms1,ms30,ms300,loop;
uchar time[6]={30,58,22,1,1,0};
uchar *p;
uchar Oper_Vect[] = {
// 有/无,下限,上限,显示位置,位标志位置
/*秒=time[0]*/ 1, 0, 60, 6, 1,
/*分=time[1]*/ 1, 0, 60, 5, 2,
/*时=time[2]*/ 1, 0, 24, 4, 3,
/*日=time[3]*/ 0, 1, 31, 3, 4,
/*月=time[4]*/ 0, 1, 12, 2, 5,
/*年=time[5]*/ 0, 0, 99, 1, 6,
};
//*******每月的天数**1**2**3**4**5**6**7**8**9**10**11**12*******/
uchar month_day[12]={32,29,32,31,32,31,32,32,31,32,31,32};
uchar mark_month_day(uchar day,uchar mon,uchar year) ////处理最大日
{
uchar temp;
// p1=&month_day[0];
// temp=*(p1+mon);
temp=month_day[mon]; //取相应的月终值
if (mon==2) //2月处理
if (year%4) temp=*p; //如果是闰年取29+1天
if (day >= temp) day=1; //月终处理
return day;
}
//***********************************************************
/**********************时间、日期处理***************************/
void autotime(uchar n ) // 时间,日期处理(n=3无日期, n=6有日期 )
{
uchar i=0,temp;
p=&Oper_Vect[0];
do
{ time[i]++;
temp=time[i];
if (i==3)
{ temp=mark_month_day(time[3],time[4],time[5]); //判断每月的天数
if (temp!=1) goto TIME_END;
}
// if (temp >= *(p+2)) temp=mov_time[i]; //判断是否上限
if (temp >= *(p+2)) time[i]=*(p+1); //达到上限值,本身就清零,同时对下一位进位
else goto TIME_END;
i++;
p=p+5; //每组5个Byte
}while(i<n);
TIME_END:;
}
//****************************************************************//
/*
void settime(void)
{
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -