<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. 電子開發網

      電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
      搜索: 您現在的位置: 電子開發網 >> 電子開發 >> 單片機 >> 正文

      c51單片機萬年歷的c程序

      作者:佚名    文章來源:本站原創    點擊數:    更新時間:2012-5-12

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

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

      【。。。】
      #include <REG51.H>
      //常量參數
      #define TMODW 0x01;
      #define SCONW 0x00;
      #define xplay 0x04;//顯示分頻系數
      //顯示位選
      unsigned char data stb;
      //鍵值緩存,0xFF無鍵命令
      unsigned char data keynum;
      //顯示字型變量
      unsigned char data play[8];
      //工作參數
      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分頻計數
      unsigned char data cttime;
      //時鐘參數
      unsigned char data hr,min,sec,sec100;
      //調整時鐘參數(時鐘“走”)
      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;
      }
      }
      }
      }
      //時鐘參數→LED 顯示緩存7段參數轉換函數;
      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-低電平準備發脈沖前沿
      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();//調用時鐘“走”函數
      xcplay();//調用時鐘參數→Led顯示緩存轉換函數
      };
      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:單片機,萬年歷,程序  
      責任編輯:admin
      請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
      1分 2分 3分 4分 5分

      還可以輸入 200 個字
      [ 查看全部 ] 網友評論
      關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁面
      下到頁底
      晶體管查詢
      主站蜘蛛池模板: 开心五月激情综合婷婷| 亚洲av综合av一区二区三区| 亚洲小说图区综合在线| 婷婷色中文字幕综合在线| 亚洲综合av一区二区三区| 一本色道久久88亚洲综合| 久久久久综合国产| 国产香蕉尹人综合在线观看| 久久久久久久综合日本| 亚洲精品第一综合99久久| 亚洲综合另类小说色区| 另类小说图片综合网| 国产亚洲综合成人91精品| 国产成人综合久久精品亚洲| 久久大香线蕉综合爱| 一本一道久久a久久精品综合| 久久影院综合精品| 狠狠色丁香久久综合婷婷| 一本一道色欲综合网中文字幕| 91精品一区二区综合在线| 国产精品综合色区在线观看| 伊人色综合九久久天天蜜桃| 天天综合天天综合色在线| 亚洲综合无码一区二区三区| 色欲色香天天天综合网站| 久久综合综合久久| 国内精品综合久久久40p| 色噜噜狠狠狠综合曰曰曰| 色综合天天综合网看在线影院| 婷婷五月综合丁香在线| 国产色丁香久久综合| 97久久天天综合色天天综合色| 亚洲国产综合自在线另类| 亚洲精品第一国产综合亚AV| 成人综合久久精品色婷婷| 狠狠综合久久av一区二区| 狠狠夜色午夜久久综合热91| 色偷偷91久久综合噜噜噜| 色天天综合久久久久综合片| 91久久婷婷国产综合精品青草| 97久久国产综合精品女不卡|