当前位置:首页 > 单片机课程论文
该模块的作用是判断某一年是闰年还是平年,因为闰年和平年的2月的天数不同。闰年的确定原则是:年份在能被一百整除的基础上能被四百整除,或者该年份能被四整除,这样的年份为闰年否则为平年。
3.2.3月份设置模块
//******************************************* //月份设置
//******************************************* unsigned char Mon_Dat_0() { switch(Time.Mon)//判断是几月 { case 1: case 3: case 5: case 7: case 8: case 10: case 12: Mon_Dat1=31; break; case 4: case 6: case 9: case 11: Mon_Dat1=30; break; case 2: { if(n==0) Mon_Dat1=28;//闰年2月28天 else if(n==1) Mon_Dat1=29;//平年2月29天 break; } } return Mon_Dat1;返回某月的天数
13
}
该模块的作用是设置某月的天数,供定时模块月份加一时使用。闰年和平年之分在于二月有不同的天数,闰年二月有二十八天,平年二月有二十九天。 具体流程:
3.2.4中断模块
//****************************************************** // 定时器中断
//****************************************************** void T0_Int(void) interrupt 1 using 1 {
TH0=(65536-25000)/256; //定时器装填 TL0=(65536-25000)%6;
T0_Int_Times++; //中断次数加
if(T0_Int_Times>=10) //每半秒更新闪烁标志 {
Flash_flag =1; } else {
Flash_flag =0; };
14
if(T0_Int_Times>=20) //如果中断20次为1秒的时间开始更新时、分、秒 {
T0_Int_Times=0; Time.Sec++; if(Time.Sec>=60) {
}; }; }
Time.Sec=0; Time.Min++; if(Time.Min>=60) {
Time.Min=0; Time.Hour++;
if(Time.Hour>=24) {
Time.Hour=0; Time.Dat++;
if(Time.Dat>Mon_Dat) {
Time.Dat=1; Time.Mon++; if(Time.Mon>12) {
Time.Mon=1; Time.Year++; }; }; }; }; 15
月置一 定时中断程序 设置初值 中断次数加一 是 中断次数>=10? Flash_flag==1 中断次数>=20? 是 秒加一 中断次数清零 Flash_flag==0 否 秒>=60? 是 分加一 秒清零 分>=60? 是 时加一 分清零 时>=24? 是 天加一 时清零 天>=本月天数? 是 月加一 是 年加一 16 天置一 月>12?
共分享92篇相关文档