微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于51单片机的数字钟

基于51单片机的数字钟

时间:09-17 来源:互联网 点击:

void timer1() interrupt 3 using 3 //display
{
TH1=(65536-3000)/256;
TL1=(65536-3000)%256; //0.006s
monthl=tmonthl[month];
monthh=tmonthh[month];
dayl=tdayl[day];
dayh=tdayh[day];
hourl=thourl[hour];
hourh=thourh[hour];
if(slient==1)
{ if(j4)
j++;
else
j=1;
if(state==1 || state==4 || state==5) //显示时间 1:显示时间 2:显示月日 3:显示年 4:修改分钟 5:修改时钟 6:修改年 7:修改月 8:修改日 ;
{
if(j==1)
{if(state==4 dps==0 int0!=0) // 闪烁,调节时不闪
P1=0x00;
else
{P1=display[minl]; //p3.5,p3.4,p3.1,p3.0 为势能端
}} //11XX10
else if(j==2)
{if(state==4 dps==0 int0!=0) // 闪烁
P1=0x00;
else
{P1=display[minh];
}} //11XX01
else if(j==3)
{if(state==5 dps==0 int0!=0) // 闪烁
P1=0x00;
else
{P1=display[hourl];
}} //10XX11
else if(j==4)
{if(state==5 dps==0 int0!=0) // 闪烁
P1=0x00;
else
{P1=display[hourh];
}} //01XX11
}
else if(state==2 || state==7 || state==8) //显示月日 1:显示时间 2:显示月日 3:显示年 4:修改分钟 5:修改时钟 6:修改年 7:修改月 8:修改日 ;
{
if(j==1)
{if(state==8 dps==0 int0!=0) // 闪烁
P1=0x00;
else
{P1=display[dayl]; //p3.5,p3.4,p3.1,p3.0 为势能端
}} //11XX10
else if(j==2)
{if(state==8 dps==0 int0!=0) // 闪烁
P1=0x00;
else
{P1=display[dayh];
}} //11XX01
else if(j==3)
{if(state==7 dps==0 int0!=0) // 闪烁
P1=0x00;
else
{P1=display[monthl];
}} //10XX11
else if(j==4)
{if(state==7 dps==0 int0!=0) // 闪烁
P1=0x00;
else
{P1=display[monthh];
}} //01XX11
}
else if(state==3 || state==6) //显示年
{
if(state==6 dps==0 int0!=0)
P1=0x00;
else
{if(j==1)
{P1=display[year1]; //p3.5,p3.4,p3.1,p3.0 为势能端
} //11XX10 3e
else if(j==2)
{P1=display[year2];
} //11XX01 3d
else if(j==3)
{P1=display[year3];
} //10XX11 2f
else if(j==4)
{P1=display[year4];
} //01XX11 1f
}
}

if(j==1)
{P3_0=0;P3_1=1;P3_4=1;P3_5=1;}
else if(j==2)
{P3_0=1;P3_1=0;P3_4=1;P3_5=1;}
else if(j==3)
{P3_0=1;P3_1=1;P3_4=0;P3_5=1;}
else if(j==4)
{P3_0=1;P3_1=1;P3_4=1;P3_5=0;}
/////////////////////////////////////////////////////////// DP
/////////////////////////////////////////////////////////// 1:显示时间 2:显示月日 3:显示年 4:修改分钟 5:修改时钟 6:修改年 7:修改月 8:修改日 ;
if(dps==1)
{if(state==1 || state==2)
{ if(j==1) //DP,显示时间,月日
{DP=0;}
else if(j==2)
{DP=0;}
else if(j==3)
{DP=1;}
else if(j==4)
{DP=0;} }
else if(state==3)
{ if(j==1) //DP,显示年
{DP=0;}
else if(j==2)
{DP=0;}
else if(j==3)
{DP=0;}
else if(j==4)
{DP=0;} }
else if(state==4)
{ if(j==1) //DP,改分钟
{DP=1;}
else if(j==2)
{DP=1;}
else if(j==3)
{DP=0;}
else if(j==4)
{DP=0;} }
else if(state==5)
{ if(j==1) //DP,改时钟
{DP=0;}
else if(j==2)
{DP=0;}
else if(j==3)
{DP=1;}
else if(j==4)
{DP=1;} }
else if(state==8)
{ if(j==1) //DP,改日
{DP=0;}
else if(j==2)
{DP=1;}
else if(j==3)
{DP=0;}
else if(j==4)
{DP=0;}
}
else if(state==7)
{ if(j==1) //DP,改月
{DP=0;}
else if(j==2)
{DP=0;}
else if(j==3)
{DP=0;}
else if(j==4)
{DP=1;}
}
else if(state==6)
{ DP=0; //DP, 改年
}}
else //dps==0
DP=0;
//////////////////////////////////////////////////////////////////DP
}
else //slient==0
{P1=0x00;ET1=0;} //省电,关闭显示器,关闭显示中断
} //timer1 显示

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top