<li id="8g3ty"><tbody id="8g3ty"><th id="8g3ty"></th></tbody></li>
    <label id="8g3ty"><samp id="8g3ty"></samp></label>
  • <span id="8g3ty"></span>

    1. <center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
    2. <bdo id="8g3ty"><meter id="8g3ty"><bdo id="8g3ty"></bdo></meter></bdo><center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
      <label id="8g3ty"><samp id="8g3ty"></samp></label>

    3. 電子開發(fā)網(wǎng)

      電子開發(fā)網(wǎng)電子設(shè)計 | 電子開發(fā)網(wǎng)Rss 2.0 會員中心 會員注冊
      搜索: 您現(xiàn)在的位置: 電子開發(fā)網(wǎng) >> 電子開發(fā) >> 單片機 >> 正文

      c51單片機萬年歷的c程序

      作者:佚名    文章來源:本站原創(chuàng)    點擊數(shù):    更新時間:2012/5/12

      求一個單片機可以顯示陽歷的年、月、日、星期、小時.分.秒。陰歷也能顯示,標(biāo)明是否為閏年。  用LCD液晶顯示,可以調(diào)整時間。。。。。

      這有個數(shù)碼管顯示的程序
      以前做的,。。
      你可以在我這個程序上修改修改
      包括鍵盤掃描,還有動態(tài)顯示

      【。。。】
      #include <REG51.H>
      //常量參數(shù)
      #define TMODW 0x01;
      #define SCONW 0x00;
      #define xplay 0x04;//顯示分頻系數(shù)
      //顯示位選
      unsigned char data stb;
      //鍵值緩存,0xFF無鍵命令
      unsigned char data keynum;
      //顯示字型變量
      unsigned char data play[8];
      //工作參數(shù)
      unsigned char data l,m;
      //字型碼
      unsigned char code BCDPC[10]=
      {0x3F,0x06,0x5B,0x4F,0x66,
      0x6D,0x7D,0x07,0x7F,0x6F};
      //字位碼
      unsigned char code STBCODE[8]=
      {0x01,0x02,0x04,0x08,
      0x10,0x20,0x40,0x80 };
      //400Hz xplay分頻計數(shù)
      unsigned char data cttime;
      //時鐘參數(shù)
      unsigned char data hr,min,sec,sec100;
      //調(diào)整時鐘參數(shù)(時鐘“走”)
      void ct1()
      {sec100++;
      if (sec100==100)
      {sec100=0;sec++;
      if (sec==60)
      {sec=0;min++;
      if (min==60)
      {min=0;hr++;
      if (hr==24) hr=0;
      }
      }
      }
      }
      //時鐘參數(shù)→LED 顯示緩存7段參數(shù)轉(zhuǎn)換函數(shù);
      void xcplay()
      {play[0]=BCDPC[hr/10];
      play[1]=BCDPC[hr%10];
      play[2]=BCDPC[min/10];
      play[3]=BCDPC[min%10];
      play[4]=BCDPC[sec/10];
      play[5]=BCDPC[sec%10];
      play[6]=BCDPC[sec100/10];
      play[7]=BCDPC[sec100%10];
      }
      //顯示掃描
      void cplay()
      {T0=1;//T0-高電平消隱
      T1=0;//T1-低電平準(zhǔn)備發(fā)脈沖前沿
      TI=0;//?
      P1=0;//?
      SBUF=STBCODE[stb];
      while (TI==0)
      {
      };
      TI=0;
      SBUF=play[stb];
      while (TI==0)
      {
      };
      T1=1;
      T0=0;
      stb=++stb&0x07;
      }

      extern void cthl0();
      //定時器0中斷處理程序
      void ct0(void) interrupt 1 using 1
      {cthl0();
      cttime--;
      if (cttime==0)
      {cttime=xplay;
      ct1();//調(diào)用時鐘“走”函數(shù)
      xcplay();//調(diào)用時鐘參數(shù)→Led顯示緩存轉(zhuǎn)換函數(shù)
      };
      cplay();
      }
      void w20ms()
      {for (l=0;l<41;l++)
      {for (m=0;m<81;m++)
      {
      }
      }
      }
      void tkey()
      {P1=0xF0;
      keynum=0xFF;
      if (P1!=0xF0)
      {w20ms();
      P1=0xF0;
      if (P1!=0xF0)
      {P1=0xFE;
      switch (P1)
      {case 0xEE:keynum=0;break;
      case 0xDE:keynum=1;break;
      case 0xBE:keynum=2;break;
      case 0x7E:keynum=3;break;
      }
      P1=0xFD;
      switch (P1)
      {case 0xED:keynum=4;break;
      case 0xDD:keynum=5;break;
      case 0xBD:keynum=6;break;
      case 0x7B:keynum=7;break;
      }
      P1=0xFB;
      switch (P1)
      {
      case 0xEB:keynum=8;break;
      }
      };
      };
      P1=0x00;
      }
      void command()
      {switch (keynum)
      {
      case 0:{hr=hr+1;
      if (hr==24)
      hr=0;
      }
      break;


      case 1:{min=min+1;
      if (min==60)
      min=0;
      }
      break;


      case 2:{sec=sec+1;
      if (sec==60)
      sec=0;
      }
      break;

      case 3:{sec100=0;
      }
      break;


      case 4:{
      while(!(P1=0xED))
      {
      hr=0;
      min=0;
      sec=0;
      }
      }
      break;

      case 5:{hr=hr-1;
      if (hr==00)
      hr=24;
      }
      break;
      case 6:{min=min-1;
      if (min==00)
      min=59;
      }
      break;

      case 7:{sec=sec-1;
      if (sec==00)
      sec=0;
      }
      break;

      case 0xFF:break;
      }
      keynum=0xFF;
      }
      main ()
      { hr=8;
      min=5;
      sec=8;
      sec100=0;
      TMOD=TMODW;
      SCON=SCONW;
      ET0=1;
      TR0=1;
      EA=1;
      cttime=xplay;
      while (1)
      {w20ms();
      tkey();
      command();

      };
      }

      Tags:單片機,萬年歷,程序  
      責(zé)任編輯:admin
      請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
      1分 2分 3分 4分 5分

      還可以輸入 200 個字
      [ 查看全部 ] 網(wǎng)友評論
      最新推薦
      關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁面
      下到頁底
      晶體管查詢
      主站蜘蛛池模板: 亚洲av成人综合网| 亚洲综合丁香婷婷六月香| 亚洲婷婷天堂在线综合| 亚洲国产成人久久综合一| 狠狠色丁香久久婷婷综合蜜芽五月 | 亚洲综合小说久久另类区| 噜噜综合亚洲AV中文无码| 久久久久亚洲AV综合波多野结衣 | 国产在线五月综合婷婷| 色综合久久夜色精品国产| 国产成人亚洲综合无码| 色噜噜狠狠色综合欧洲| 色综合久久无码五十路人妻| 色天天综合色天天看| 91探花国产综合在线精品| 亚洲亚洲人成综合网络| 日韩亚洲人成在线综合| 91精品国产色综合久久不卡蜜| 伊人久久青草青青综合| 日日狠狠久久偷偷色综合96蜜桃| 亚洲综合综合在线| 色诱久久久久综合网ywww| 久久国产精品亚洲综合| 国产成人亚洲综合无码| 一本大道久久a久久综合| 亚州AV综合色区无码一区| 狠狠色综合一区二区| 日韩亚洲国产综合高清| 中文字幕人成无码人妻综合社区 | 亚洲国产成人久久综合| 伊人久久久大香线蕉综合直播| 色噜噜狠狠成人中文综合| 色综合久久中文色婷婷| 伊人久久久大香线蕉综合直播| 综合五月激情二区视频| 狠狠色丁香九九婷婷综合五月| 国产91久久综合| 亚洲妓女综合网99| 天天做天天爱天天综合网| 亚洲AV综合色区无码一区| 综合在线免费视频|