有个定时不知道怎么加,我在扫描和设置时分秒的地方都试过了不行(标签-ar|关键词-#include)


#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit rs=P1^0;//¼Ä´æÆ÷Ñ¡Ôñ
sbit rw=P1^1;//¶ÁдÐźÅÏß
sbit lcden=P1^2;//ledʹÄܶË

sbit scl=P1^3;//ʱÖÓÏß
sbit rst=P1^5;//¸´Î»Ïß
sbit io=P1^4;//Êý¾Ý¿Ú

sbit key_set_time=P3^4;//ÉèÖÃʱ¼ä¼ü
sbit key_add=P3^5;//¼Ó¼ü
sbit key_minus=P3^6;//¼õ¼ü
sbit key_set_alarm=P3^7;//ÉèÖÃÄÖÖÓ¼ü
sbit bee=P1^6;//·äÃùÆ÷½Ó¿Ú
sbit dq=P1^7;//ds18b20²âÎÂ

uchar getTimebuf[7];//´æ·Åʱ¼äÊý¾Ý
uchar time[]={"  :  :  "};//ʱ¼ä¸ñʽ×Ö·û´®
uchar date[]={"20  -  -  "};//ÈÕÆÚ¸ñʽ×Ö·û´®
uchar weeklist[]={"SunMonTueWedThuFriSat"};//ÐÇÆÚ×Ö·ûÁбí
uchar week[]={"   "};//ÐÇÆÚ¸ñʽ×Ö·û´®

int count;//É趨Ãë·ÖʱÈÕÔÂÐÇÆÚÄêµÄʱºòcountµÄÖµ·Ö±ðΪ1235647
int alarm;//ÊÇ·ñ½øÈëÄÖÖÓÉèÖýçÃæ 123·Ö±ð´ú±í¿ª¹Ø ·Ö СʱµÄÉèÖÃ
int isOpen;//ÄÖÖÓÊÇ·ñ¿ªÆô  ĬÈϲ»¿ªÆô
int fen,shi;//ÄÖÖӵķÖÖÓСʱ
int isRing;//ÄÖÖÓÊÇ·ñÔÚÏì

uchar isInit_1302;//ÊÇ·ñ³õʼ»¯Ê±ÖÓÍê±Ï

int num;
int temperature;//ζÈ
int temp_flag;//ζÈÕý¸º±êÖ¾

void delay(uint x){
    int y;
    while(x--){
        for(y=100;y>0;y--);
    }
}
void write_1602com(uchar com){
    //1602дָÁî
    rs=0;
    lcden=0;
    P2=com;
    delay(5);
    lcden=1;
    delay(5);
    lcden=0;
}
void write_1602data(uchar dat){
    //1602дÊý¾Ý
    rs=1;
    lcden=0;
    P2=dat;
    delay(5);
    lcden=1;
    delay(5);
    lcden=0;
}
void init_1602(){
    //³õʼ»¯1602Òº¾§
    rw=0;
    lcden=0;
    write_1602com(0x38);//ÉèÖÃÏÔʾģʽ
    write_1602com(0x0c);//ÏÔʾ¿ª¹Ø¼°¹â±êÊÇ·ñÏÔʾºÍÉÁ¶¯
    write_1602com(0x06);//¹â±êÒÆ¶¯·½Ïò
    write_1602com(0x01);//ÇåÆÁ
}
void write_ds1302_byte(uchar temp){
    //ds1302дһ¸ö×Ö½ÚÊý¾Ý
    uchar i;
    for(i=0;i<8;i++){
        io=temp&0x01;//½«Êý¾Ý·Åµ½IO¿ÚÉÏ
        scl=0;//sclΪµÍʱ׼±¸Êý¾Ý
        scl=1;//ÉÏÉýÑØÐ´Èë
        temp>>=1;
    }
}
void write_ds1302(uchar add,uchar dat){
    //ÏòµØÖ·addдÈëÊý¾Ýdat
    rst=0;
    scl=0;
    rst=1;
    write_ds1302_byte(add);
    write_ds1302_byte(dat);
    scl=1;
    rst=0;
}
uchar read_ds1302(uchar add){
    //ds1302¶ÁÊý¾Ý
    uchar i,dat;
    rst=0;
    scl=0;
    rst=1;
    write_ds1302_byte(add);//Ê×ÏÈдÈëÒª¶ÁµÄÊý¾Ý´¦µÄµØÖ·
    for(i=0;i<8;i++){
        if(io==1){
            dat|=0x80;
        }
        scl=1;
        scl=0;//ϽµÑضÁÈ¡Êý¾Ý
        dat>>=1;
    }
    scl=1;
    rst=0;
    return dat;
}
void read_time(uchar curr_time[]){
      uchar i;
      uchar ucAddr = 0x81;
      for (i=0;i<7;i++){
        curr_time[i] = read_ds1302(ucAddr);//¸ñʽΪ: Ãë ·Ö Ê± ÈÕ Ô ÐÇÆÚ Äê 
        ucAddr += 2;
      }
        if((getTimebuf[1])==30&&(getTimebuf[0]==00))
        {
            bee=1;
            delay(900);
        }
}
void set_time(uchar *pSecDa){
    //É趨ʱ¼ä
    uchar i;
    uchar ucAddr = 0x80;
    write_ds1302(0x8e,0x00);    
    for(i =7;i>0;i--){ 
        write_ds1302(ucAddr,*pSecDa); //Ãë ·Ö Ê± ÈÕ Ô ÐÇÆÚ Äê
        pSecDa++;
        ucAddr+=2;
    }
    write_ds1302(0x8e,0x80);
}
void init_ds1302(){
    //ds1302³õʼ»¯
    isInit_1302=read_ds1302(0x81);//¶Á³öʱÖÓ״̬
    if(isInit_1302&0x80){//˵Ã÷ûÓгõʼ»¯
        write_ds1302(0x8e,0x00);//¹Ø±Õд±£»¤  ÒÔºóÒ»Ö±¿ª×Å
        write_ds1302(0x90,0xa5); //¸¨ÖúµçÔ´³äµçÃüÁî Ò»¸ö¶þ¼«¹Ü  Ò»¸ö2Kµç×è
        write_ds1302(0x80,0x00);//Ãë CHÖÃ0 ¿ªÆôʱÖÓ
        write_ds1302(0x82,0x59);//·Ö
        write_ds1302(0x84,0x10);//ʱ
        write_ds1302(0x86,0x07);//ÈÕ
        write_ds1302(0x88,0x05);//ÔÂ
        write_ds1302(0x8a,0x04);//ÐÇÆÚ
        write_ds1302(0x8c,0x14);//Äê
        write_ds1302(0x8e,0x80);
    }
}
char int_to_char(int temp){
    //°Ñ0µ½9¶ÔÓ¦µÄÊý×ÖתΪ×Ö·û
    char x='0';
    switch(temp){
        case 0:x='0';break;
        case 1:x='1';break;
        case 2:x='2';break;
        case 3:x='3';break;
        case 4:x='4';break;
        case 5:x='5';break;
        case 6:x='6';break;
        case 7:x='7';break;
        case 8:x='8';break;
        case 9:x='9';break;
    }
    return x;
}
int ds18b20_read_temp();
void display(){
    uchar bai,shi,ge,point,fuhao;
    read_time(getTimebuf);//ʱʱ¶Áȡʱ¼ä
    time[6]=(getTimebuf[0])/16+48;//¸ñʽ»¯Ê±¼äÃë
    time[7]=(getTimebuf[0])%16+48;

    time[3]=(getTimebuf[1])/16+48;//¸ñʽ»¯Ê±¼ä·Ö
    time[4]=(getTimebuf[1])%16+48;

    time[0]=(getTimebuf[2])/16+48;//¸ñʽ»¯Ê±¼äСʱ
    time[1]=(getTimebuf[2])%16+48;

    date[8]=getTimebuf[3]/16+48;//¸ñʽ»¯ÈÕÆÚÈÕ
    date[9]=getTimebuf[3]%16+48;

    date[5]=getTimebuf[4]/16+48;//¸ñʽ»¯ÈÕÆÚÔÂ
    date[6]=getTimebuf[4]%16+48;

    date[2]=getTimebuf[6]/16+48;//¸ñʽ»¯ÈÕÆÚÄê
    date[3]=getTimebuf[6]%16+48;

    week[0]=weeklist[(getTimebuf[5]%10)*3];//¸ñʽ»¯ÐÇÆÚ
    week[1]=weeklist[(getTimebuf[5]%10)*3+1];
    week[2]=weeklist[(getTimebuf[5]%10)*3+2];
    
    write_1602com(0x80+1);
    for(num=0;num<10;num++){
        write_1602data(date[num]);
    }

    write_1602data(' ');
    for(num=0;num<3;num++){
        write_1602data(week[num]);
    }

    write_1602com(0x80+0x40);
    for(num=0;num<8;num++){
        write_1602data(time[num]);
    }
    
    //ÏÔʾζÈÖµ
    write_1602com(0x80+0x40+8);//ÉèÖÃÊý¾ÝÖ¸Õë
    temperature=ds18b20_read_temp();
    bai=temperature/1000+0x30;
    shi=temperature%1000/100+0x30;
    ge=temperature%100/10+0x30;
    point=temperature%100%10+0x30;
    if(temp_flag==1){//˵Ã÷ΪÕýÊý  ²»ÏÔʾ·ûºÅλ 125.6 25.7Á½ÖÖ
        fuhao=0x20;//ÏÔʾ¿Õ°×
        if(bai==0x30){
            bai=0x20;//Èç¹û°ÙλΪ0  ²»ÏÔʾ
            if(shi==0x30){
                shi=0x20;//Èç¹û°ÙλΪ0  ʮλҲΪ0  ¶¼²»ÏÔʾ
            }
        }
        write_1602data(fuhao);
        write_1602data(bai);
        write_1602data(shi);
    }else{
        fuhao=0x2d;//ÏÔʾ¸ººÅ  -2.5  -25.8Á½ÖÖ
        write_1602data(0x20);//ÒòΪ¸ºÊý×îµÍµ½55£¬ËùÒÔ²»ÏÔʾ°Ùλ
        if(shi==0x30){    
            write_1602data(0x20);
            write_1602data(fuhao);
        }else{
            write_1602data(fuhao);
            write_1602data(shi);
        }
    }
    write_1602data(ge);
    write_1602data('.');
    write_1602data(point);
    write_1602data(0xdf);
    write_1602data('C');
}
void display_alarm(uchar add,int dat){
    //°ÑÉ趨µÄʱ·ÖÏÔʾ³öÀ´
    int x,y;
    x=dat/10;
    y=dat%10;
    write_1602com(add);
    write_1602data(int_to_char(x));
    write_1602com(add+1);//·ÀֹдºóµØÖ·×Ô¶¯Ïòºó¼ÓÒ»  ¹â±êÉÁ˸¿´²»µ½
    write_1602data(int_to_char(y));
    write_1602com(add+1);
}
void init_alarm(){
    //ÄÖÖÓÉèÖýçÃæ  Ö»ÓÐÊ״νøÈë²ÅÖ´ÐÐ
    uchar code x[]="SET ALARM";
    uchar i;
    if(alarm==0){
        write_1602com(0x01);//ÇåÆÁ
        write_1602com(0x80+3);//ÉèÖÃÊý¾ÝÖ¸Õë
        for(i=0;i<9;i++){
            write_1602data(x[i]);
        }
        display_alarm(0x80+0x40+5,shi);//ÔØÈëÄÖÖÓµÄʱ·Ö
        write_1602com(0x80+0x40+7);
        write_1602data(':');
        display_alarm(0x80+0x40+8,fen);
        if(isOpen){//³õʼ»¯µÄʱºòÈç¹ûÒѾ­É趨ÄÖÖÓÔòÏÔʾON
            write_1602com(0x80+0x40+13);
            write_1602data(' ');
            write_1602data('O');
            write_1602data('N');
        }else{
            write_1602com(0x80+0x40+13);
            write_1602data('O');
            write_1602data('F');
            write_1602data('F');
        }
    }
}
void key_scan(){
    int i;
    uchar code tips1[]="SET SUCCESS";//ÄÖÖÓÉèÖóɹ¦µÄÌáʾ
    uchar code tips2[]="CANCEL SUCCESS";//È¡ÏûÄÖÖÓµÄÌáʾ
    if(key_set_time==0){//¼ì²âÊÇ·ñ°´ÏÂ
        delay(10);//Ïû¶¶
        if(key_set_time==0){//Ôٴμì²âÊÇ·ñ°´ÏÂ
            while(!key_set_time);//¼ì²âÊÇ·ñËÉ¿ª
            delay(10);//ÑÓʱÏû¶¶
            while(!key_set_time);//Ôٴμì²âÊÇ·ñËÉ¿ª
            if(alarm==0){//µ±Ã»ÓÐÏÔʾÄÖÖÓ½çÃæÊ±²ÅÏÔʾʱ¼äÉ趨
                count++;
                write_ds1302(0x80,0x80);//ÈÃʱÖÓÍ£Ö¹
                if(count==8){
                    //¼ÌÐø×ßʱ£¬ËµÃ÷ʱ¼äÒѾ­É趨ºÃÁË
                    write_1602com(0x0c);//Èùâ±êÏûʧ
                    write_ds1302(0x80,0);//ÈÃʱÖÓ¼ÌÐø
                    set_time(getTimebuf);//дÈëеÄʱ¼ä
                    count=0;
                    return;
                }
                switch(count){
                    case 1:
                        write_1602com(0x80+0x40+7);//ÔÚÃëµÄλÖÃ
                        break;
                    case 2:
                        write_1602com(0x80+0x40+4);//ÔÚ·ÖµÄλÖÃ
                        break;
                    case 3:
                        write_1602com(0x80+0x40+1);//ÔÚʱµÄλÖÃ
                        break;
                    case 4:
                        write_1602com(0x80+14);//ÔÚÐÇÆÚµÄλÖÃ
                        break;
                    case 5:
                        write_1602com(0x80+10);//ÔÚÈÕµÄλÖÃ
                        break;
                    case 6:
                        write_1602com(0x80+7);//ÔÚÔµÄλÖÃ
                        break;
                    case 7:
                        write_1602com(0x80+4);//ÔÚÄêµÄλÖÃ
                        break;
                }
                write_1602com(0x0f);//Èùâ±êÉÁ˸
            }
        }
    }
    if(key_add==0){//¼ì²âÊÇ·ñ°´ÏÂ
        delay(10);//Ïû¶¶
        if(key_add==0){//Ôٴμì²âÊÇ·ñ°´ÏÂ
            while(!key_add);//¼ì²âÊÇ·ñËÉ¿ª
            delay(10);//ÑÓʱÏû¶¶
            while(!key_add);//Ôٴμì²âÊÇ·ñËÉ¿ª
            if(count!=0){
                switch(count){
                case 1:
                    //ÔÚÃëµÄλÖÃ
                    getTimebuf[0]++;
                    if(getTimebuf[0]==0x5a){
                        getTimebuf[0]=0;
                    }
                    if(getTimebuf[0]==0x4a){
                        getTimebuf[0]=0x50;
                    }
                    if(getTimebuf[0]==0x3a){
                        getTimebuf[0]=0x40;
                    }
                    if(getTimebuf[0]==0x2a){
                        getTimebuf[0]=0x30;
                    }
                    if(getTimebuf[0]==0x1a){
                        getTimebuf[0]=0x20;
                    }
                    if(getTimebuf[0]==0x0a){
                        getTimebuf[0]=0x10;
                    }
                    time[6]=(getTimebuf[0])/16+48;//¸ñʽ»¯Ê±¼äÃë
                    time[7]=(getTimebuf[0])%16+48;
                    write_1602com(0x80+0x40+6);//ÔÚÃëµÄλÖÃ
                    write_1602data(time[6]);
                    write_1602com(0x80+0x40+7);//ÔÚÃëµÄλÖÃ
                    write_1602data(time[7]);
                    write_1602com(0x80+0x40+7);//Èùâ±êÔÚÃëµÄλÖÃÉÁ˸
                    break;
                case 2:
                    //ÔÚ·ÖµÄλÖÃ
                    getTimebuf[1]++;
                    if(getTimebuf[1]==0x5a){
                        getTimebuf[1]=0;
                    }
                    if(getTimebuf[1]==0x4a){
                        getTimebuf[1]=0x50;
                    }
                    if(getTimebuf[1]==0x3a){
                        getTimebuf[1]=0x40;
                    }
                    if(getTimebuf[1]==0x2a){
                        getTimebuf[1]=0x30;
                    }
                    if(getTimebuf[1]==0x1a){
                        getTimebuf[1]=0x20;
                    }
                    if(getTimebuf[1]==0x0a){
                        getTimebuf[1]=0x10;
                    }
                    time[3]=(getTimebuf[1])/16+48;//¸ñʽ»¯Ê±¼ä·Ö
                    time[4]=(getTimebuf[1])%16+48;
                    write_1602com(0x80+0x40+3);//ÔÚ·ÖµÄλÖÃ
                    write_1602data(time[3]);
                    write_1602com(0x80+0x40+4);//ÔÚ·ÖµÄλÖÃ
                    write_1602data(time[4]);
                    write_1602com(0x80+0x40+4);//Èùâ±êÔÚ·ÖµÄλÖÃÉÁ˸
                    break;
                case 3:
                    //ÔÚʱµÄλÖÃ
                    getTimebuf[2]++;
                    if(getTimebuf[2]==0x24){
                        getTimebuf[2]=0;
                    }
                    if(getTimebuf[2]==0x1a){
                        getTimebuf[2]=0x20;
                    }
                    if(getTimebuf[2]==0x0a){
                        getTimebuf[2]=0x10;
                    }
                    time[0]=(getTimebuf[2])/16+48;//¸ñʽ»¯Ê±¼äСʱ
                    time[1]=(getTimebuf[2])%16+48;
                    write_1602com(0x80+0x40+0);//ÔÚСʱµÄλÖÃ
                    write_1602data(time[0]);
                    write_1602com(0x80+0x40+1);
                    write_1602data(time[1]);
                    write_1602com(0x80+0x40+1);
                    break;
                case 4:
                    //ÔÚÐÇÆÚµÄλÖÃ
                    getTimebuf[5]++;
                    if(getTimebuf[5]==0x08){
                        getTimebuf[5]=0x01;
                    }
                    if((getTimebuf[5]%10)*3==21){//ÂÖÍêÁË  ÖØÐ¿ªÊ¼
                        week[0]=weeklist[0];
                        week[1]=weeklist[1];
                        week[2]=weeklist[2];
                    }else{
                        week[0]=weeklist[(getTimebuf[5]%10)*3];//¸ñʽ»¯ÐÇÆÚ
                        week[1]=weeklist[(getTimebuf[5]%10)*3+1];
                        week[2]=weeklist[(getTimebuf[5]%10)*3+2];
                    }
                    write_1602com(0x80+12);
                    write_1602data(week[0]);
                    write_1602com(0x80+13);
                    write_1602data(week[1]);
                    write_1602com(0x80+14);
                    write_1602data(week[2]);
                    write_1602com(0x80+14);
                    break;
                case 5:
                    //ÔÚÈÕµÄλÖÃ
                    getTimebuf[3]++;
                    if(getTimebuf[3]==0x32){
                        getTimebuf[3]=0x01;
                    }
                    if(getTimebuf[3]==0x2a){
                        getTimebuf[3]=0x30;
                    }
                    if(getTimebuf[3]==0x1a){
                        getTimebuf[3]=0x20;
                    }
                    if(getTimebuf[3]==0x0a){
                        getTimebuf[3]=0x10;
                    }
                    date[8]=(getTimebuf[3])/16+48;
                    date[9]=(getTimebuf[3])%16+48;
                    write_1602com(0x80+9);
                    write_1602data(date[8]);
                    write_1602com(0x80+10);
                    write_1602data(date[9]);
                    write_1602com(0x80+10);
                    break;
                case 6:
                    //ÔÚÔµÄλÖÃ
                    getTimebuf[4]++;
                    if(getTimebuf[4]==0x13){
                        getTimebuf[4]=0x01;
                    }
                    if(getTimebuf[4]==0x0a){
                        getTimebuf[4]=0x10;
                    }
                    date[5]=(getTimebuf[4])/16+48;
                    date[6]=(getTimebuf[4])%16+48;
                    write_1602com(0x80+6);
                    write_1602data(date[5]);
                    write_1602com(0x80+7);
                    write_1602data(date[6]);
                    write_1602com(0x80+7);
                    break;
                case 7:
                    //ÔÚÄêµÄλÖÃ
                    getTimebuf[6]++;
                    if(getTimebuf[6]==0x9a){
                        getTimebuf[6]=0x00;
                    }
                    if(getTimebuf[6]==0x8a){
                        getTimebuf[6]=0x90;
                    }
                    if(getTimebuf[6]==0x7a){
                        getTimebuf[6]=0x80;
                    }
                    if(getTimebuf[6]==0x6a){
                        getTimebuf[6]=0x70;
                    }
                    if(getTimebuf[6]==0x5a){
                        getTimebuf[6]=0x60;
                    }
                    if(getTimebuf[6]==0x4a){
                        getTimebuf[6]=0x50;
                    }
                    if(getTimebuf[6]==0x3a){
                        getTimebuf[6]=0x40;
                    }
                    if(getTimebuf[6]==0x2a){
                        getTimebuf[6]=0x30;
                    }
                    if(getTimebuf[6]==0x1a){
                        getTimebuf[6]=0x20;
                    }
                    if(getTimebuf[6]==0x0a){
                        getTimebuf[6]=0x10;
                    }
                    date[2]=(getTimebuf[6])/16+48;
                    date[3]=(getTimebuf[6])%16+48;
                    write_1602com(0x80+3);
                    write_1602data(date[2]);
                    write_1602com(0x80+4);
                    write_1602data(date[3]);
                    write_1602com(0x80+4);
                    break;
                }
            }
            if(alarm!=0){
                switch(alarm){
                    case 1:
                        //µ÷½ÚÄÖÖӵĿªÓë¹Ø
                        if(isOpen==0){
                            isOpen=1;
                            write_1602com(0x80+0x40+13);
                            write_1602data(' ');
                            write_1602data('O');
                            write_1602data('N');
                        }else{
                            isOpen=0;
                            write_1602com(0x80+0x40+13);
                            write_1602data('O');
                            write_1602data('F');
                            write_1602data('F');
                        }
                        //·ÀֹдºóµØÖ·×Ô¶¯Ïòºó¼ÓÒ»  ¹â±êÉÁ˸¿´²»µ½
                        write_1602com(0x80+0x40+15);
                        break;
                    case 2:
                        //µ÷½ÚÄÖÖӵķÖ
                        fen++;
                        if(fen==60){
                            fen=0;
                        }
                        display_alarm(0x80+0x40+8,fen);
                        break;
                    case 3:
                        //µ÷½ÚÄÖÖÓµÄСʱ
                        shi++;
                        if(shi==24){
                            shi=0;
                        }
                        display_alarm(0x80+0x40+5,shi);
                        break;
                }
            }
        }
    }
    if(key_minus==0){//¼ì²âÊÇ·ñ°´ÏÂ
        delay(10);//Ïû¶¶
        if(key_minus==0){//Ôٴμì²âÊÇ·ñ°´ÏÂ
            while(!key_minus);//¼ì²âÊÇ·ñËÉ¿ª
            delay(10);//ÑÓʱÏû¶¶
            while(!key_minus);//Ôٴμì²âÊÇ·ñËÉ¿ª
            if(count!=0){
                switch(count){
                case 1:
                    //ÔÚÃëµÄλÖÃ
                    getTimebuf[0]--;
                    if(getTimebuf[0]==0xff){
                        getTimebuf[0]=0x59;
                    }
                    if(getTimebuf[0]==0x4f){
                        getTimebuf[0]=0x49;
                    }
                    if(getTimebuf[0]==0x3f){
                        getTimebuf[0]=0x39;
                    }
                    if(getTimebuf[0]==0x2f){
                        getTimebuf[0]=0x29;
                    }
                    if(getTimebuf[0]==0x1f){
                        getTimebuf[0]=0x19;
                    }
                    if(getTimebuf[0]==0x0f){
                        getTimebuf[0]=0x09;
                    }
                    time[6]=(getTimebuf[0])/16+48;//¸ñʽ»¯Ê±¼äÃë
                    time[7]=(getTimebuf[0])%16+48;
                    write_1602com(0x80+0x40+6);//ÔÚÃëµÄλÖÃ
                    write_1602data(time[6]);
                    write_1602com(0x80+0x40+7);//ÔÚÃëµÄλÖÃ
                    write_1602data(time[7]);
                    write_1602com(0x80+0x40+7);//Èùâ±êÔÚÃëµÄλÖÃÉÁ˸
                    break;
                case 2:
                    //ÔÚ·ÖµÄλÖÃ
                    getTimebuf[1]--;
                    if(getTimebuf[1]==0xff){
                        getTimebuf[1]=0x59;
                    }
                    if(getTimebuf[1]==0x4f){
                        getTimebuf[1]=0x49;
                    }
                    if(getTimebuf[1]==0x3f){
                        getTimebuf[1]=0x39;
                    }
                    if(getTimebuf[1]==0x2f){
                        getTimebuf[1]=0x29;
                    }
                    if(getTimebuf[1]==0x1f){
                        getTimebuf[1]=0x19;
                    }
                    if(getTimebuf[1]==0x0f){
                        getTimebuf[1]=0x09;
                    }
                    time[3]=(getTimebuf[1])/16+48;//¸ñʽ»¯Ê±¼ä·Ö
                    time[4]=(getTimebuf[1])%16+48;
                    write_1602com(0x80+0x40+3);//ÔÚ·ÖµÄλÖÃ
                    write_1602data(time[3]);
                    write_1602com(0x80+0x40+4);//ÔÚ·ÖµÄλÖÃ
                    write_1602data(time[4]);
                    write_1602com(0x80+0x40+4);//Èùâ±êÔÚ·ÖµÄλÖÃÉÁ˸
                    break;
                case 3:
                    //ÔÚʱµÄλÖÃ
                    getTimebuf[2]--;
                    if(getTimebuf[2]==0xff){
                        getTimebuf[2]=0x23;
                    }
                    if(getTimebuf[2]==0x1f){
                        getTimebuf[2]=0x19;
                    }
                    if(getTimebuf[2]==0x0f){
                        getTimebuf[2]=0x09;
                    }
                    time[0]=(getTimebuf[2])/16+48;//¸ñʽ»¯Ê±¼äСʱ
                    time[1]=(getTimebuf[2])%16+48;
                    write_1602com(0x80+0x40+0);//ÔÚСʱµÄλÖÃ
                    write_1602data(time[0]);
                    write_1602com(0x80+0x40+1);
                    write_1602data(time[1]);
                    write_1602com(0x80+0x40+1);
                    break;
                case 4:
                    //ÔÚÐÇÆÚµÄλÖÃ
                    getTimebuf[5]--;
                    if(getTimebuf[5]==0){
                        getTimebuf[5]=0x07;
                    }
                    if((getTimebuf[5]%10)*3==21){//ÂÖÍêÁË  ÖØÐ¿ªÊ¼
                        week[0]=weeklist[0];
                        week[1]=weeklist[1];
                        week[2]=weeklist[2];
                    }else{
                        week[0]=weeklist[(getTimebuf[5]%10)*3];//¸ñʽ»¯ÐÇÆÚ
                        week[1]=weeklist[(getTimebuf[5]%10)*3+1];
                        week[2]=weeklist[(getTimebuf[5]%10)*3+2];
                    }
                    write_1602com(0x80+12);
                    write_1602data(week[0]);
                    write_1602com(0x80+13);
                    write_1602data(week[1]);
                    write_1602com(0x80+14);
                    write_1602data(week[2]);
                    write_1602com(0x80+14);
                    break;
                case 5:
                    //ÔÚÈÕµÄλÖÃ
                    getTimebuf[3]--;
                    if(getTimebuf[3]==0){
                        getTimebuf[3]=0x31;
                    }
                    if(getTimebuf[3]==0x2f){
                        getTimebuf[3]=0x29;
                    }
                    if(getTimebuf[3]==0x1f){
                        getTimebuf[3]=0x19;
                    }
                    if(getTimebuf[3]==0x0f){
                        getTimebuf[3]=0x09;
                    }
                    date[8]=(getTimebuf[3])/16+48;
                    date[9]=(getTimebuf[3])%16+48;
                    write_1602com(0x80+9);
                    write_1602data(date[8]);
                    write_1602com(0x80+10);
                    write_1602data(date[9]);
                    write_1602com(0x80+10);
                    break;
                case 6:
                    //ÔÚÔµÄλÖÃ
                    getTimebuf[4]--;
                    if(getTimebuf[4]==0){
                        getTimebuf[4]=0x12;
                    }
                    if(getTimebuf[4]==0x0f){
                        getTimebuf[4]=0x09;
                    }
                    date[5]=(getTimebuf[4])/16+48;
                    date[6]=(getTimebuf[4])%16+48;
                    write_1602com(0x80+6);
                    write_1602data(date[5]);
                    write_1602com(0x80+7);
                    write_1602data(date[6]);
                    write_1602com(0x80+7);
                    break;
                case 7:
                    //ÔÚÄêµÄλÖÃ
                    getTimebuf[6]--;
                    if(getTimebuf[6]==0xff){
                        getTimebuf[6]=0x99;
                    }
                    if(getTimebuf[6]==0x8f){
                        getTimebuf[6]=0x89;
                    }
                    if(getTimebuf[6]==0x7f){
                        getTimebuf[6]=0x79;
                    }
                    if(getTimebuf[6]==0x6f){
                        getTimebuf[6]=0x69;
                    }
                    if(getTimebuf[6]==0x5f){
                        getTimebuf[6]=0x59;
                    }
                    if(getTimebuf[6]==0x4f){
                        getTimebuf[6]=0x49;
                    }
                    if(getTimebuf[6]==0x3f){
                        getTimebuf[6]=0x39;
                    }
                    if(getTimebuf[6]==0x2f){
                        getTimebuf[6]=0x29;
                    }
                    if(getTimebuf[6]==0x1f){
                        getTimebuf[6]=0x19;
                    }
                    if(getTimebuf[6]==0x0f){
                        getTimebuf[6]=0x09;
                    }
                    date[2]=(getTimebuf[6])/16+48;
                    date[3]=(getTimebuf[6])%16+48;
                    write_1602com(0x80+3);
                    write_1602data(date[2]);
                    write_1602com(0x80+4);
                    write_1602data(date[3]);
                    write_1602com(0x80+4);
                    break;
                }
 
            }
            if(alarm!=0){
                switch(alarm){
                    case 1:
                        //µ÷½ÚÄÖÖӵĿªÓë¹Ø
                        if(isOpen==0){
                            isOpen=1;
                            write_1602com(0x80+0x40+13);
                            write_1602data(' ');
                            write_1602data('O');
                            write_1602data('N');
                        }else{
                            isOpen=0;
                            write_1602com(0x80+0x40+13);
                            write_1602data('O');
                            write_1602data('F');
                            write_1602data('F');
                        }
                        //·ÀֹдºóµØÖ·×Ô¶¯Ïòºó¼ÓÒ»  ¹â±êÉÁ˸¿´²»µ½
                        write_1602com(0x80+0x40+15);
                        break;
                    case 2:
                        //µ÷½ÚÄÖÖӵķÖ
                        fen--;
                        if(fen<0){
                            fen=59;
                        }
                        display_alarm(0x80+0x40+8,fen);
                        break;
                    case 3:
                        //µ÷½ÚÄÖÖÓµÄСʱ
                        shi--;
                        if(shi<0){
                            shi=23;
                        }
                        display_alarm(0x80+0x40+5,shi);
                        break;
                }
            }
        }
    }
    if(key_set_alarm==0){//¼ì²âÊÇ·ñ°´ÏÂ
        delay(10);//Ïû¶¶
        if(key_set_alarm==0){//Ôٴμì²âÊÇ·ñ°´ÏÂ
            while(!key_set_alarm);//¼ì²âÊÇ·ñËÉ¿ª
            delay(10);//ÑÓʱÏû¶¶
            while(!key_set_alarm);//Ôٴμì²âÊÇ·ñËÉ¿ª
            if(count==0){//ʱ¼äÔÚÕý³£×ß¶¯µÄʱºò²ÅÄÜÉèÖÃÄÖÖÓ
                init_alarm();
                alarm++;//˵Ã÷½øÈëÄÖÖÓÉèÖýçÃæ
                if(alarm==4){
                    alarm=0;//˵Ã÷ÄÖÖÓÉèÖÃÍê±Ï
                    write_1602com(0x01);//ÇåÆÁÒÔ±ãÏÔʾʱ¼ä
                    write_1602com(0x0c);//¹Ø±Õ¹â±ê
                    //ÏÔʾÉèÖóɹ¦»òÈ¡ÏûµÄÌáʾ
                    if(isOpen){
                        write_1602com(0x80+2);
                        for(i=0;i<11;i++){
                            write_1602data(tips1[i]);
                        }
                    }else{
                        write_1602com(0x80+1);
                        for(i=0;i<14;i++){
                            write_1602data(tips2[i]);
                        }
                    }
                    //ÑÓʱ2msºóÇåÆÁÏÔʾʱ¼ä
                    delay(2000);
                    write_1602com(0x01);
                }else{
                    switch(alarm){
                        case 1:
                            write_1602com(0x80+0x40+15);
                            break;
                        case 2:
                            write_1602com(0x80+0x40+9);
                            break;
                        case 3:
                            write_1602com(0x80+0x40+6);
                            break;
                    }
                    write_1602com(0x0f);
                }
            }
        }
    }
}
void beep()
    {
    //¼ì²âÄÖÖÓ  ²¢ÇÒ±¨¾¯
    if(time[0]==int_to_char(shi/10)&&time[1]==int_to_char(shi%10)&&time[3]==int_to_char(fen/10)&&time[4]==int_to_char(fen%10)){
        isRing=1;//ÄÖÖÓÏìÆð£¬´ËʱÈç¹û½øÈëÄÖÖÓÉèÖýçÃæ ¸Ä±äʱ·Ö£¬ÄÖÖӾ͹رÕÁË
        bee=0;
        delay(250);
        bee=1;
        delay(250);
    }else{
        isRing=0;//¹Ø±ÕÄÖÖÓ»òÕßÒ»·ÖÖÓºóÄÖÖÓ×Ô¶¯¹Ø±Õ
        bee=1;
    }
}