1.#include后面没有加头文件你应该用的是51把,加上reg52.h这个头文件;
2.display函数的第一个位选结束应该使wei=0;
3.按键key1的检测程序有错误,你的意思貌似使用按键1来切换设置的时分秒,应该改成
if(key1==0)
{
delay(10);//延时消抖
if(key1==0)
{
if(nop<3)//判断是否设定完毕,按4下代表设置结束将nop设为0
nop++;
else
nop=0;
while(!key1);//松手检测
delay(10);//松手抖动延时
while(!key1);//再次进行松手检测
}
}
以及底下key2和key3的检测都应该按照这样的模式写从而能更好的消除按键抖动造成的重复按键;
4.时分秒设定判断你都是写的if(nop==1&&......)应该分别是nop==1、nop==2、nop==3来判定是到底是对应的时分秒的哪一个。