本帖最后由 w995612220 于 2012-7-7 10:12 编辑
/*使用说明书:P3^4控制进入调时间的按钮(LED全不亮时即为调时间的功能),然后按P3^5,选择分钟还是选择小时(为24小时制),选择好之后,按P3^5使(LED全不亮后)按P3^4即可进入正常工作*/ #include ***it P27=P2^7; ***it P26=P2^6; ***it P24=P2^4; ***it P23=P2^3; ***it P21=P2^1; ***it P20=P2^0; ***it P34=P3^4; //功能中断位 ***it P35=P3^5; //分钟,时间转换 ***it P36=P3^6; //加1 ***it P37=P3^7; //减1 unsigned char time[]={0x00,0x00,0x00},a; //秒 分 时 unsigned char D[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90,0xc0}; delay(unsigned int n); an_jian(); void main() { unsigned char i; for(;;) { for(i=0;i<134;i++) { if(P34==0) delay(1000); if(P34==0) an_jian(); //调用按键控制函数 //LED灯显示 P27=0; a=time[0]%10; P0=D[a]; delay(110); P27=1; P26=0; a=time[0]/10; P0=D[a]; delay(110); P26=1; P24=0; a=time[1]%10; P0=D[a]; delay(110); P24=1; P23=0; a=time[1]/10; P0=D[a]; delay(111); P23=1; P21=0; a=time[2]%10; P0=D[a]; delay(110); P21=1; P20=0; a=time[2]/10; P0=D[a]; delay(111); P20=1; } time[0]+=1; if(time[0]==60) { time[0]=0;time[1]+=1;} if(time[1]==60) { time[1]=0;time[2]+=1;} if(time[2]==24) time[2]=0; } } delay(unsigned int n) { for(;n>0;n--); } an_jian() //P3^4按下后中断 { for(;;) { if(P35==0) { delay(5000);if(P35==0) for(;;) { for(;;) //分 控制 { if(P35==0) delay(1000); if(P35==0) break; if(P36==0) delay(1000); if(P36==0) {time[1]+=1; if(time[1]==60) time[1]=0;} if(P37==0) delay(1000); if(P37==0) {time[1]-=1; if(time[1]==-1) time[1]=59;} //LED灯显示分钟 P24=0; a=time[1]%10; P0=D[a]; delay(5000); P24=1; P23=0; a=time[1]/10; P0=D[a]; delay(5000); P23=1; } for(;;) //小时 控制 { if(P35==0) delay(1000); if(P35==0) break; if(P36==0) delay(1000); if(P36==0) {time[2]+=1; if(time[2]==60) time[2]=0;} if(P37==0) delay(1000); if(P37==0) {time[2]-=1; if(time[2]==-1) time[2]=23;} //LED灯显示小时 P21=0; a=time[2]%10; P0=D[a]; delay(5000); P21=1; P20=0; a=time[2]/10; P0=D[a]; delay(5000); P20=1; } if(P35==0) delay(1000); if(P35==0) break; } } if(P34==0) delay(1000); if(P34==0) break; } }
|