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

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

單片機控制1602液晶顯示萬年歷

作者:佚名   來源:本站原創   點擊數:  更新時間:2011年06月05日   【字體:
/*
跳線設置:默認
利用三個按鍵來調節時間---希望帶給你幫助 
把1602液晶插入51hei-5型單片機開發板后,即可顯示時間
調節時間使用int0,s4和s5這3個按鍵
*/
#include<reg52.h>
#include<51hei.h>
sbit dula=P2^6;
sbit wela=P2^7;
sbit lcdwr=P2^7;
sbit lcdrs=P3^5;
sbit lcden=P3^4;
sbit key1=P3^2;
sbit key2=P3^6;
sbit key3=P3^7;
#define uchar unsigned char
#define uint unsigned int
uchar code table0[]=" 2011-04-03 SUN";//16
uchar code table1[]="    00:00:00";//12
uchar code table2[]="MON";
uchar code table3[]="TUE";
uchar code table4[]="WED";
uchar code table5[]="THU";
uchar code table6[]="FRI";
uchar code table7[]="SAT";
uchar code table8[]="SUN";
uchar num,aa,bb,cc,dd,flag,flag1,flag2;
char shi,fen,miao,ee,ff,gg;
void delay(uchar z)
{
 uint x,y;
  for(x=z;x>0;x--)
   for(y=110;y>0;y--);
}
void write_com(uchar com)
{
 lcdrs=0;
 delay(5);
 P0=com;
 delay(5);
 lcden=1;
 delay(5);
 lcden=0; 
}
void write_data(uchar date)
{
 lcdrs=1;
 delay(5);
 P0=date;
 delay(5);
 lcden=1;
 delay(5);
 lcden=0;
}
void init()
{
 dula=0;
 wela=0;
 lcdwr=0;
 lcdrs=1;
 lcden=0;
 shi=00;
 fen=00;
 miao=00;
 bb=0;
 cc=0;
 dd=0;
 ee=03;
 ff=04;
 gg=11;
 write_com(0x38);
 write_com(0x0c);
 write_com(0x06);
 write_com(0x80);
 write_com(0x01);
 for(num=0;num<15;num++)
  { 
   write_data(table0[num]);
   delay(5);
  }
 write_com(0x80+0x40);
 for(num=0;num<12;num++)
  { 
   write_data(table1[num]);
   delay(5);
  }
 TMOD=0x01;
 TH0=(65536-50000)/256;
 TL0=(65536-50000)%256;
 EA=1;
 ET0=1;
 TR0=1; 
}
void sfm_date(uchar add,uchar date1)
{ 
 uchar shi,ge;
 shi=date1/10;
 ge=date1%10;
 write_com(0x80+0x40+add);
 write_data(0x30+shi);
 write_data(0x30+ge); 
}
void nyr_date1(uchar add,uchar date1)
{ 
 uchar shi,ge;
 shi=date1/10;
 ge=date1%10;
 write_com(0x80+add);
 write_data(0x30+shi);
 write_data(0x30+ge); 
}
void main()
{guanled();
 guandz();
 init();
 while(1)
 { 
   if(key1==0)
  {
   bb++;
   delay(5);
   if(key1==0)
    {
     if(bb==1)
      {
       while(!key1);
       TR0=0;
       write_com(0x80+0x40+10);
       write_com(0x0f);
      }
     if(bb==2)
      {
       while(!key1);
       write_com(0x80+0x40+7);
      }
     if(bb==3)
      {
       while(!key1);
       write_com(0x80+0x40+4);
      }
     if(bb==4)
      {
       while(!key1);
       write_com(0x80+12);
       
      }
       if(bb==5)
      {
       while(!key1);
       write_com(0x80+9);
      }
       if(bb==6)
      {
       while(!key1);
       write_com(0x80+6);
      }
       if(bb==7)
      {
       while(!key1);
       write_com(0x80+3);
      }
       if(bb==8)
      {
       bb=0;
       while(!key1);
       TR0=1;
       write_com(0x0c);
      }
    }
  }
  if(bb==1)
   {
    if(key2==0)
     {
      delay(5);
      while(!key2);
      miao++;
      if(miao==60)
       {
        miao=0;
       }
       sfm_date(10,miao);
       write_com(0x80+0x40+10); 
     }
    if(key3==0)
     {
      delay(5);
      while(!key3);
      miao--;
      if(miao==-1)
       {
        miao=59;
       }
       sfm_date(10,miao);
       write_com(0x80+0x40+10); 
     }
   }
  if(bb==2)
   {
    if(key2==0)
      {
      delay(5);
      while(!key2);
      fen++;
      if(fen==60)
       {
        fen=0;
       }
       sfm_date(7,fen);
       write_com(0x80+0x40+7); 
     }
    if(key3==0)
      {
      delay(5);
      while(!key3);
      fen--;
      if(fen==-1)
       {
        fen=59;
       }
       sfm_date(7,fen);
       write_com(0x80+0x40+7); 
     }
   }
  if(bb==3)
   {
    if(key2==0)
     {
      delay(5);
      while(!key2);
      shi++;
      if(shi==24)
       {
        shi=0;
       }
      sfm_date(4,shi);
      write_com(0x80+0x40+4); 
     }
    if(key3==0)
     {
      delay(5);
      while(!key3);
      shi--;
      if(shi==-1)
       {
        shi=23;
       }
      sfm_date(4,shi);
      write_com(0x80+0x40+4); 
     }
   }
  if(bb==4)
   {
    if(key2==0)
     {
      delay(5);
      dd++;
      while(!key2);
      if(dd==1)
       {
        for(cc=0;cc<3;cc++)
         {
          write_data(table2[cc]);
         }
       }
      write_com(0x80+12);
      if(dd==2)
       {
        for(cc=0;cc<3;cc++)
         {
          write_data(table3[cc]);
         }
       }
      write_com(0x80+12);
      if(dd==3)
       {
        for(cc=0;cc<3;cc++)
         {
          write_data(table4[cc]);
         }
       }
      write_com(0x80+12);
      if(dd==4)
       {
        for(cc=0;cc<3;cc++)
         {
          write_data(table5[cc]);
         }
       }
      write_com(0x80+12);
      if(dd==5)
       {
        for(cc=0;cc<3;cc++)
         {
          write_data(table6[cc]);
         }
       }
      write_com(0x80+12);
      if(dd==6)
       {
        for(cc=0;cc<3;cc++)
         {
          write_data(table7[cc]);
         }
       }
      write_com(0x80+12);
      if(dd==7)
       {
        dd=0;
        for(cc=0;cc<3;cc++)
         {
          write_data(table8[cc]);
         }
       }
      write_com(0x80+12);
     }
    if(key3==0)
     {
      dd++;
      delay(5);
      while(!key3);
      if(dd==1)
       {
        for(cc=0;cc<3;cc++)
         {
          write_data(table8[cc]);
         }
       }
      write_com(0x80+12);
      if(dd==2)
       {
        for(cc=0;cc<3;cc++)
         {
          write_data(table7[cc]);
         }
       }
      write_com(0x80+12);
      if(dd==3)
       {
        for(cc=0;cc<3;cc++)
         {
          write_data(table6[cc]);
         }
       }
      write_com(0x80+12);
      if(dd==4)
       {
        for(cc=0;cc<3;cc++)
         {
          write_data(table5[cc]);
         }
       }
      write_com(0x80+12);
      if(dd==5)
       {
        for(cc=0;cc<3;cc++)
         {
          write_data(table4[cc]);
         }
       }
      write_com(0x80+12);
      if(dd==6)
       {
        for(cc=0;cc<3;cc++)
         {
          write_data(table3[cc]);
         }
       }
      write_com(0x80+12);
      if(dd==7)
       {
        dd=0;
        for(cc=0;cc<3;cc++)
         {
          write_data(table2[cc]);
         }
       }
      write_com(0x80+12);
     }
   }
  if(bb==5)
   {
    if(key2==0)
     {
      delay(5);
      while(!key2);
      ee++;
      if(ee==32)
       {
        ee=1;
       }
      nyr_date1(9,ee);
      write_com(0x80+9); 
     }
    if(key3==0)
     {
      delay(5);
      while(!key3);
      ee--;
      if(ee==0)
       {
        ee=31;
       }
      nyr_date1(9,ee);
      write_com(0x80+9); 
     } 
   }
   if(bb==6)
   {
    if(key2==0)
     {
      delay(5);
      while(!key2);
      ff++;
      if(ff==13)
       {
        ff=1;
       }
      nyr_date1(6,ff);
      write_com(0x80+6); 
     }
    if(key3==0)
     {
      delay(5);
      while(!key3);
      ff--;
      if(ff==0)
       {
        ff=12;
       }
      nyr_date1(6,ff);
      write_com(0x80+6); 
     } 
   }
   if(bb==7)
   {
    if(key2==0)
     {
      delay(5);
      while(!key2);
      gg++;
      if(gg==41)
       {
        gg=11;
       }
      nyr_date1(3,gg);
      write_com(0x80+3); 
     }
    if(key3==0)
     {
      delay(5);
      while(!key3);
      gg--;
      if(gg==10)
       {
        gg=41;
       }
      nyr_date1(3,gg);
      write_com(0x80+3); 
     } 
   }
  if(aa==20)
  {
   aa=0;
   miao++;
   if(miao==60)
   {
    miao=0;
    fen++;
    if(fen==60)
    {
     fen=0;
     shi++;
     if(shi==24)
     {
      shi=0;
      flag=1;
     }
     sfm_date(4,shi);
    }
    sfm_date(7,fen);
   }
  sfm_date(10,miao); 
  }
 if(flag==1)
  {
   flag=0;
   ee++;
   if(ee==32)
    {
     ee=1;
     flag1=1;
    }
   nyr_date1(9,ee);
   //write_com(0x80+9);
   dd++;
   if(dd==8)
    {
     dd=0;
    }
              if(dd==1)
       {
        write_com(0x80+12);
        for(cc=0;cc<3;cc++)
         {
          write_data(table2[cc]);
         }
       }
      write_com(0x80+12);
      if(dd==2)
       {
        write_com(0x80+12);
        for(cc=0;cc<3;cc++)
         {
          write_data(table3[cc]);
         }
       }
      //write_com(0x80+12);
      if(dd==3)
       {
        write_com(0x80+12);
        for(cc=0;cc<3;cc++)
         {
          write_data(table4[cc]);
         }
       }
      //write_com(0x80+12);
      if(dd==4)
       {
        write_com(0x80+12);
        for(cc=0;cc<3;cc++)
         {
          write_data(table5[cc]);
         }
       }
      //write_com(0x80+12);
      if(dd==5)
       {
        write_com(0x80+12);
        for(cc=0;cc<3;cc++)
         {
          write_data(table6[cc]);
         }
       }
      //write_com(0x80+12);
      if(dd==6)
       {
        write_com(0x80+12);
        for(cc=0;cc<3;cc++)
         {
          write_data(table7[cc]);
         }
       }
      //write_com(0x80+12);
      if(dd==7)
       {
        dd=0;
        write_com(0x80+12);
        for(cc=0;cc<3;cc++)
         {
          write_data(table8[cc]);
         }
       }
     // write_com(0x80+12);
  }
 if(flag1==1)
  {
   flag1=0;
   ff++;
   if(ff==13)
    {
     ff=1;
     flag2=1;
    }
   nyr_date1(6,ff);
   write_com(0x80+6); 
  }
 if(flag2==1)
  {
   flag2=0;
   gg++;
   if(gg==41)
    {
     gg=11;
    }
   nyr_date1(3,gg);
   write_com(0x80+3);
   
  }
 }
}
void timer0() interrupt 1
{
 TH0=(65536-50000)/256;
 TL0=(65536-50000)%256;
 aa++;
}

完整的代碼下載地址:http://www.zg4o1577.cn/f/1602wnltiaojie.rar

關閉窗口

相關文章

主站蜘蛛池模板: 成人免费观看男女羞羞视频 | 人人做人人澡人人爽欧美 | 午夜视频免费在线 | 91久久久久久久久 | 国产一区免费视频 | 视频一区二区在线观看 | 午夜精品一区二区三区在线播放 | 538在线精品 | 久久视频一区 | 亚洲一区日韩 | 日韩欧美精品一区 | 日韩欧美在线精品 | 盗摄精品av一区二区三区 | 天天碰夜夜操 | 免费精品久久久久久中文字幕 | 久一精品 | 欧美vide| 久久999| 97av视频在线 | 日本三级网址 | 九色av| 日韩av在线免费 | 亚洲精品99 | 欧美8一10sex性hd | 成人三级在线播放 | 91精品国产一区二区三区动漫 | 中文日韩在线 | 国产精品激情 | 四虎影院在线观看av | www.青青草| 激情三区 | 国产精品久久久久久久7电影 | 亚洲欧美自拍偷拍视频 | 免费日韩av | 亚洲国产精品久久久久秋霞不卡 | 五月天婷婷综合 | 成人小视频在线观看 | 中文字幕高清 | 日韩免费激情视频 | 国产日韩一区二区 | 免费在线成人 |