久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

立即注冊 登錄
返回首頁

uid:430571的個人空間

日志

1602液晶 液晶萬年歷 四個按鍵 光標

已有 837 次閱讀2018-12-16 21:05 |個人分類:液晶1602| 啦啦啦

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit w=P2^5; 
sbit s=P2^6;
sbit e=P2^7;
sbit key1=P3^0;      //功能鍵
sbit key2=P3^1;      //增加建
sbit key3=P3^2;      //減小鍵
sbit key4=P3^3;      //走動鍵
uchar count,key1num,tianmax;
long int miao=20,fen=59,shi=23,tian=27,yue=2,nian=2018;
void delayms(uint xms)
{
   uint i,j;                     
   for(i=xms;i>0;i--)
      for(j=110;j>0;j--);
}
void write_com(uchar com)//命令
{
   s=0;
   w=0;
   e=0;
   P0=com;
   delayms(5);
   e=1;
   delayms(5);
   e=0;
}
void write_date(uchar date)//數據 
{
    s=1;
    w=0;
    e=0;
    P0=date;
    delayms(5);
    e=1;
    delayms(5);
    e=0;
}
void write_sfm(uchar add,uchar date) //寫時分秒函數   add位置  date輸入數據
{                                                     
    uchar shi,ge;
    shi=date/10;
    ge=date%10;                                                                 
    write_com(0xc0+add);
    write_date(0x30+shi);
    write_date(0x30+ge);
}
void write_ry(uchar add,uchar date) //寫日月函數   add位置  date輸入數據
{                                                     
    uchar shi,ge;
    shi=date/10;
    ge=date%10;                                                                 
    write_com(0x80+add);
    write_date(0x30+shi);
    write_date(0x30+ge);
}
void write_nian1()//寫年函數
{     
   uchar ge,shi,bai,qian;
    qian=nian/1000%10;
    bai=nian/100%10;
    shi=nian/10%10;
    ge=nian%10;
    write_com(0x80+4);
    write_date(0x30+qian);
    write_date(0x30+bai);
    write_date(0x30+shi);
    write_date(0x30+ge);
 
}
void init()//初始化函數
{
    count=0;
    key1num=0;
    write_com(0x38);
    write_com(0x08);
    write_com(0x01);   
    write_com(0x06);
    write_com(0x0c);

write_com(0xc0+6);
write_date(':');
delayms(1);
 write_com(0xc0+9);
write_date(':');           
delayms(1);

write_com(0x80+11);
write_date('-');
delayms(1);
 write_com(0x80+8);
write_date('-');
delayms(1);

write_sfm(10,miao);
write_sfm(7,fen);
write_sfm(4,shi);           

write_ry(12,tian);
write_ry(9,yue);
write_nian1();

    TMOD=0x01;
    TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;
    EA=1;
    ET0=1;
    TR0=1;
}
void keyscan()
{
   if(key1==0)
   {
     delayms(5);
     if(key1==0)
     {
        key1num++;
        while(!key1);
      switch(key1num)
      {
        case 1:
        TR0=0;
        write_com(0xc0+10);                   //秒
        write_com(0x0f);            //光標開始閃爍
        break;

        case 2:
        write_com(0xc0+7);                  //分
        break;

        case 3:                               //時
        write_com(0xc0+4);
        break;

        case 4:
        write_com(0x80+12);                   //天
        break;

        case 5:
        write_com(0x80+9);                   //月
        break;

        case 6:
        write_com(0x80+4);                    //年
        break;

        case 7:
        key1num=0;
        write_com(0x0c);//取消光標閃爍
        TR0=1;


      }
     }
   }
   if(key1num!=0)
   {
   if(key2==0)
   {
     delayms(5);
     if(key2==0)
     {
         while(!key2);
        if(key1num==1)
        {
           miao++;
           if(miao==60)
            miao=0;
            write_sfm(10,miao);
          }
          if(key1num==2)
          {
            fen++;
            if(fen==60)
            fen=0;
            write_sfm(7,fen);
          }
          if(key1num==3)
          {
            shi++;
            if(shi==24)
            shi=0;
            write_sfm(4,shi);
          }
           if(key1num==4)
          {
            tian++;
            if(tian==tianmax)
            tian=1;
            write_ry(12,tian);
          }
           if(key1num==5)
          {
            yue++;
            if(yue==13)
            yue=1;
            write_ry(9,yue);
          }
          if(key1num==6)
          {
            nian++;
            write_nian1();
          }

     }
   }
    if(key3==0)
   {
     delayms(5);
     if(key3==0)
     {
         while(!key3);
        if(key1num==1)
        {
           miao--;
           if(miao==-1)
            miao=59;
            write_sfm(10,miao);
          }
          if(key1num==2)
          {
            fen--;
            if(fen==-1)
            fen=59;
            write_sfm(7,fen);
          }
          if(key1num==3)
          {
            shi--;
            if(shi==-1)
            shi=23;
            write_sfm(4,shi);
          }
           if(key1num==4)
          {
            tian--;
            tianmax=tianmax-1;
            if(tian==0)
            tian=tianmax;
            write_ry(12,tian);
          }
           if(key1num==5)
          {
            yue--;
            if(yue==0)
            yue=12;
            write_ry(9,yue);
          }
          if(key1num==6)
          {
            nian--;
            write_nian1();
          }
        }
      }
if(key4==0)     //走動
{
   delayms(5);
   if(key4==0)
   {
     key1num=0;
        write_com(0x0c);//取消光標閃爍
        TR0=1;
   }
   while(!key3);
}
   }
}
 void T0_time()interrupt 1
{
  
  TH0=(65536-57000)/256;
  TL0=(65536-57000)%256;
  count++;
  if(count==20)
  {
      count=0;
      miao++;
      if(miao==60)
      {
          miao=0;
        fen++;
        if(fen==60)
        {
            fen=0;
          shi++;
            if(shi==24)
            {
               shi=0;
             tian++;
              if(tian==tianmax)
              {
                 tian=1;
                yue++;
                  if(yue==13)
                  {
                     yue=1;
                    nian++;
                     if(nian==9999)
                     {
                       nian=0;
                     }
                      write_nian1();
                   }
                 write_ry(9,yue);
                }
               write_ry(12,tian);
              }
              write_sfm(4,shi);
            }
            write_sfm(7,fen);
            }
           write_sfm(10,miao);
   }
}
void daymax()//最大天數
{
 switch(yue)
 {
  case 1:
  case 3:
  case 5:
  case 7:
  case 8:
  case 10:
  case 12:
  tianmax=32;
  break;

  case 4:
  case 6:
  case 9:
  case 11:
  tianmax=31;
  break;

  case 2:
  if((nian%400==0)||(nian%4==0&&nian%100!=0))//判斷潤平年
   {
     tianmax=30;
   }
     else
     tianmax=29;
     break;
 }
}
void main()
{
    init();
    while(1)
    {
    daymax();
      keyscan();
    }
}


路過

雞蛋

鮮花

握手

雷人

評論 (0 個評論)

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

返回頂部
主站蜘蛛池模板: 色爱综合网 | 日韩中文字幕高清 | 亚洲精品1区 | 亚洲天堂一区二区 | 成年人在线观看 | 欧美日韩在线观看一区二区三区 | 中文字幕一区二区三区四区五区 | 国产aaaaav久久久一区二区 | 365夜爽爽欧美性午夜免费视频 | 亚洲第1页| 亚洲欧美日韩精品久久亚洲区 | 91精品国产色综合久久 | 可以免费观看的av | 国产精品久久久久久久久图文区 | 久久精品国内 | 久久久www| 婷婷综合激情 | 国产欧美视频一区 | 乱码av午夜噜噜噜噜动漫 | 久久国产精品久久久久久 | 人成在线视频 | 夜夜爽99久久国产综合精品女不卡 | 97人人草| 秋霞精品 | 国产精品一区二区在线免费观看 | 日韩在线不卡 | 成人在线观 | 伊人网91| 欧美一二三 | 欧美精品在线一区二区三区 | 日韩成人在线一区 | 国产区精品视频 | 午夜影院网站 | 91精品久久久久久久久99蜜臂 | 日韩欧美国产一区二区三区 | 精品国产黄a∨片高清在线 成人区精品一区二区婷婷 日本一区二区视频 | 午夜国产一级片 | 黄色一级片视频 | 秋霞av国产精品一区 | 国产一区二区精品在线 | 中文字幕第二区 |