if(TAD==0&&j==1) { i=i; } else j=0; } }
void main (void) {
iniClock(); //始终初始化
while(1) {
GetTimeF(); //获取之前初始化入DS1302中的时间
ChangeKF(); //显示数据切换 DateDisF(); //日期控制 TimeDisF(); //时间控制 //设置闹钟 if(i==2) //闹钟1 { disRing(); P0=0x6; P1=7; if(K1==0&&i1==0) { i1=1; ring[1]=ring[1]+1; if(ring[1]==24) ring[1]=0; disRing(); } if(K2==0&&i2==0) { i2=1; ring[0]=ring[0]+1;
}
if(ring[0]==60) ring[0]=0; disRing(); }
if(K2==1&&K1==1) { i1=0;i2=0; }
if(i==3) //闹钟2 {
disRing1(); P0=0x5b; P1=7; if(K1==0&&i1==0) { i1=1; ring1[1]=ring1[1]+1; if(ring1[1]==24) ring1[1]=0; disRing1(); } if(K2==0&&i2==0) { i2=1; ring1[0]=ring1[0]+1; if(ring1[0]==60) ring1[0]=0; disRing1(); } if(K2==1&&K1==1) { i1=0;i2=0; } }
if(i==4) //闹钟3 {
disRing2(); P0=0x4F; P1=7; if(K1==0&&i1==0) {
i1=1; ring2[1]=ring2[1]+1; if(ring2[1]==24) ring2[1]=0; disRing2(); }
if(K2==0&&i2==0) { i2=1; ring2[0]=ring2[0]+1; if(ring2[0]==60) ring2[0]=0; disRing2(); }
if(K2==1&&K1==1) { i1=0;i2=0; }
}
if(hou==ring[1]&&min==ring[0]) {
Bee=0; P1_6=1; P1_7=1; CDelay(50); Bee=1; } else {
Bee=1; P1_6=0; P1_7=0; }
if(hou==ring1[1]&&min==ring1[0]) {
Bee=0; P1_6=1; P1_7=1; CDelay(50); Bee=1; } else
//闹钟1振铃LED灯亮 //闹钟2振铃LED灯亮
}
}
{
Bee=1; P1_6=0; P1_7=0; }
if(hou==ring2[1]&&min==ring2[0]) //闹钟3振铃LED灯亮 {
Bee=0; P1_6=1; P1_7=1; CDelay(50); Bee=1; } else {
Bee=1; P1_6=0; P1_7=0; }
5实现过程中遇到的问题及解决方法
1)最小系统无法实现:利用万用表对线路电压,电阻及短路与否进行逐个排查直至找出错误连接点
2)LED数码管显示不正确:参照电路原理图与电路对照,发现线路接反,重新焊接后数码管显示正常
3)蜂鸣器接通电源后响声不停:三极管管脚焊接错误,重新焊接后蜂鸣器正常蜂鸣
4)软件部分在编写过程中进行过许多次调试,直至达到要求,其中设置多闹铃部分通过三个数组Ring,Ring1,Ring2来实现闹钟之间互不影像。
6效果图
通电后电路板正面
电路板背面焊接图