DS12CR887实时时钟完整程序.docx

上传人:b****8 文档编号:28366429 上传时间:2023-07-10 格式:DOCX 页数:15 大小:16.66KB
下载 相关 举报
DS12CR887实时时钟完整程序.docx_第1页
第1页 / 共15页
DS12CR887实时时钟完整程序.docx_第2页
第2页 / 共15页
DS12CR887实时时钟完整程序.docx_第3页
第3页 / 共15页
DS12CR887实时时钟完整程序.docx_第4页
第4页 / 共15页
DS12CR887实时时钟完整程序.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

DS12CR887实时时钟完整程序.docx

《DS12CR887实时时钟完整程序.docx》由会员分享,可在线阅读,更多相关《DS12CR887实时时钟完整程序.docx(15页珍藏版)》请在冰豆网上搜索。

DS12CR887实时时钟完整程序.docx

DS12CR887实时时钟完整程序

DS12CR887实时时钟完整程序附图片(液晶显示)

#include

#include

voiddelay(uchark)

{

    uchari,j;

    for(i=0;i

        for(j=0;j<110;j++);

}

voiddidi()

{

    beep=0;

    delay(200);

    beep=1;

    delay(200);

}

voidds_write(ucharadd,uchardate)

{

    dscs=0;

    dsds=1;

    dswr=1;

    dsas=1;

    P0=add;

    dsas=0;

    P0=date;

    dswr=0;

    dswr=1;

    dsas=1;

}

uchards_read(ucharadd)

{

    ucharz;

    dscs=0;

    dswr=1;

    dsds=1;

    dsas=1;

    P0=add;

    dsas=0;

    dsds=0;

  P0=0xff;

    z=P0;

    dsds=1;

    dsas=1;

    returnz;

}

voidwrite_com(ucharcom)

{

    rs=0;

    lcden=0;

    P0=com;

    delay(5);

    lcden=1;

    delay(5);

    lcden=0;    

}

voidwrite_date(uchardate)

{

    rs=1;

    lcden=0;

    P0=date;

    delay(5);

    lcden=1;

    delay(5);

    lcden=0;    

}

/*voidset_time()

{

    ds_write(9,0x08);

    ds_write(8,6);

    ds_write(7,3);

    ds_write(6,2);

    ds_write(4,14);

    ds_write(2,42);

    ds_write(0,00);

    ds_write(5,14);

    ds_write(3,42);

    ds_write(1,10);

}*/

voidinit()

{

    dsas=0;

    dsds=0;

    dswr=0;

    wr=0;

    lcden=0;

    //set_time();

  ds_write(0x0a,0x20);

  ds_write(0x0b,0x26);

    write_com(0x38);

    write_com(0x0c);

    write_com(0x06);

    write_com(0x01);

    write_com(0x80);

  year=ds_read(9);

    write_sfm1(2,year);

    write_date('-');

    month=ds_read(8);

    write_sfm1(5,month);

    write_date('-');

    date=ds_read(7);

    write_sfm1(8,date);

    day=ds_read(6);

    write_com(0x80+0x0c);

    write_date(table[day]);

    write_date(table1[day]);

    write_date(table2[day]);

    EA=1;

    EX0=1;

    IT0=1;

}

voidwrite_sfm(ucharadd,uchardate)

{

    ucharshi,ge;

    shi=date/10;

    ge=date%10;

    write_com(0x80+0x40+add);

    write_date(0x30+shi);

    write_date(0x30+ge);

}

voidwrite_sfm1(ucharadd,uchardate)

{

    ucharshi,ge;

    shi=date/10;

    ge=date%10;

    write_com(0x80+add);

    write_date(0x30+shi);

    write_date(0x30+ge);

}

main()

{

    init();

    while

(1)

        {

            keyscan();

            if(alarm==0)

                {

                    if(flag1==1)

                        didi();

                    if(flag==0)

                        {

                        sec=ds_read(0);

                        min=ds_read

(2);

                        hour=ds_read(4);

                            write_sfm(4,hour);

                            write_date(':

');

                            write_sfm(7,min);

                            write_date(':

');

                            write_sfm(10,sec);    

                          if(hour==0&&min==0)

                              {

                                  if(sec==0)

                                      {

                                        day=ds_read(6);

                                      write_com(0x80+0x0c);

                              write_date(table[day]);

                              write_date(table1[day]);

                              write_date(table2[day]);

                                        date=ds_read(7);

                                        write_sfm1(8,date);

                                        if(date==1)

                                            {

                                                month=ds_read(8);

                                                write_sfm1(5,month);

                                                write_date('-');

                                                if(month==1)

                                                    {

                                                        year=ds_read(9);

                                                        write_sfm1(2,year);

                                                        write_date('-');

                                                    }

                                            }

                                    }    

                                }                                  

                      }

                }

        }

}

voidkeyscan()

{    

    if(key4==0&&flag1==0)

        {

            delay(5);

            if(key4==0)

                {

                    while(!

key4);

                    alarm=1;

                    flag=1;

                    asec=ds_read

(1);

                  amin=ds_read(3);

                    ahour=ds_read(5);

                    write_com(0x0c);

                    write_sfm(4,ahour);

                    write_date(':

');

                    write_sfm(7,amin);

                    write_date(':

');

                    write_sfm(10,asec);                            

                }    

            }

            

    if(flag1==1&&alarm==0)

        {

            if(key1==0)

                {

                    delay(5);

                    if(key1==0)

                        {

                            flag1=0;

                            while(!

key1);

                        }

                }

            if(key2==0)

                {

                    delay(5);

                    if(key2==0)

                        {

                            flag1=0;

                            while(!

key2);

                        }

                }

            if(key3==0)

                {

                    delay(5);

                    if(key3==0)

                        {

                            flag1=0;

                            while(!

key3);

                        }

                }

            if(key4==0)

                {

                    delay(5);

                    if(key4==0)

                        {

                            flag1=0;

                            while(!

key4);

                        }

                }

        }

    if(flag1==0)

      {

          if(key1==0)    

            {

                delay(5);

                if(key1==0)

                    {    

                                s1num++;

                                flag=1;

                                write_com(0x0d);

                                while(!

key1);

                          }

                  if(s1num==1)            

                        {

                            write_com(0x80+0x4a);                                                            

                        }

                    if(s1num==2)            

                        {

                          

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1