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

📄 timer_mian411.c.bak

📁 这是一个段式lcd显示
💻 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 + -