亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 51單片機電子日歷程序.txt

?? 這是由51單片機編制的C語言日歷程序
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
}

void update_timerstr(void)      /*更新秒表顯示代碼數組timerstr*/
{
        timerstr[0]=led[timer.ms%10];
        timerstr[1]=led[(int)(timer.ms/10)];
        timerstr[2]=led[timer.s%10];
        timerstr[3]=led[(int)(timer.s/10)];
        timerstr[4]=led[timer.m%10];
        timerstr[5]=led[(int)(timer.m/10)];
}
void display(void)        /*刷新顯示六位LED一次*/
{
 unsigned char i;
 for(i=0;i<6;i++)
 {
  LED_ON(i);   /*選通相應位*/
  XBYTE[LED_SEG]=dispbuf[i]; /*寫顯示段碼*/
                deley(50);   /*延時顯示*/
  LED_OFF;   /*寫LED全滅段碼*/
 }
}
void update_dispbuf(unsigned char *str)    /*更新顯示緩沖區子函數,參數為要用來更新緩沖區的源字符數組的首地址*/
{
        dispbuf[0]=str[0]; /*將要更新的源字符數組內容COPY至dispbuf數組,用作顯示緩沖區*/
        dispbuf[1]=str[1];
        dispbuf[2]=str[2]|0x80; /*默認把時位和分位后面的小數點顯示出來,根據需要再取舍*/
        dispbuf[3]=str[3];
        dispbuf[4]=str[4]|0x80;
        dispbuf[5]=str[5];
}
void deley(int i)  /*延時子函數*/
{
  while(i--);
}
unsigned char getkeycode(void) /*鍵盤掃描子程序,返回獲得的鍵碼*/
{
 unsigned char keycode;  /*鍵碼變量,一開始存行碼*/
 unsigned char scancode=0x20; /*列掃描碼*/
 unsigned char icolumn=0;  /*鍵的列號*/
        display();                      /*用刷新數碼管顯示的時間去抖*/
        XBYTE[KEY_COLUMN]=0x00;
 keycode=XBYTE[KEY_LINE]&0x0f; /*從行端口讀入四位行碼*/
 while((scancode&0x3f)!=0) /*取scancode的低六位,只沒變為全0,則執行循環*/
 {
  XBYTE[KEY_COLUMN]=(~scancode)&0x3f; /*給列賦掃描碼,第一次為011111*/
  if((XBYTE[KEY_LINE]&0x0f)==keycode) break; /*檢測按鍵所在的列跳出循環*/
                scancode=scancode>>1; /*列掃描碼右移一位*/
  icolumn++;  /*列號加1*/
        }
 keycode=keycode<<4;  /*把行碼移到高四位*/
 keycode=keycode|icolumn; /*由行碼和列碼組成鍵碼*/
 //等待按鍵放開
 XBYTE[KEY_COLUMN]=0x00;
 while((XBYTE[KEY_LINE]&0x0f)!=0x0f) display();
 return keycode;
}
void keyprocess(unsigned char keycode) /*鍵值處理函數*/
{
 switch (keycode)
 {
  case 0x73: Akey();
             break;
  case 0xB3: Bkey();
      break;
  case 0xD3: Ckey();
      break;
                case 0xE3: Dkey();
                           break;
  default:   break;
 }
        update_dispbuf(CurrentMode);
}
unsigned char getmonthdays(unsigned int year,unsigned char month)/*得到某月的天數*/
{
 unsigned char days;
 switch (month)
 {
  case 4:
  case 6:
  case 9:
  case 11:days=30;
          break;
  case 2: if(year%4==0) days=29;
   else days=28;
          break;
  default:days=31;
          break;
 }
 return days;
}

/*功能鍵子函數部分*/
void Akey(void) /*對當前設置位進行加一操作,如果設置秒位,則給秒位清零*/
{
        if(CurrentMode==TIMER)  /*秒表模式下啟閉走時*/
        { TR1=!TR1;
          return;
        }
        if(!IsSet) return;     /*如果不是設置模式退出*/
 switch (SetSelect)
 {
  case SECOND:if(CurrentMode==CLOCK)
                            {
                             clock.s=0;  /*如果當前被設置位是秒位,則清零秒位*/
           update_clockstr();
                            }
                            if(CurrentMode==ALART)
                            {
                             Alart_EN=!Alart_EN;
                             update_alartstr();
                            }
                            if(CurrentMode==DATE)
                            {
                             if(++date.day==(getmonthdays(date.year,date.month)+1)) date.day=1;
                             update_datestr();
                            }
                            if(CurrentMode==TIMER)
                            {
                             TR1=!TR1;
                            }
                            break;
  case MINUTE:if(CurrentMode==CLOCK)
                            {
                             if(++clock.m==60) clock.m=0; /*如果當前被設置分位,則分位加1*/
        update_clockstr();
                            }
                            if(CurrentMode==ALART)
                            {
                             if(++alart.m==60) alart.m=0;
                             update_alartstr();
                            }
                            if(CurrentMode==DATE)
                            {
                             if(++date.month==13) date.month=1;
                             update_datestr();
                            }
                            break;
  case HOUR:  if(CurrentMode==CLOCK)
                            {
                             if(++clock.h==24) clock.h=0; /*如果當前被設置時位,則時位加1*/
        update_clockstr();
                            }
                            if(CurrentMode==ALART)
                            {
                             if(++alart.h==24) alart.h=0;
                             update_alartstr();
                            }
                            if(CurrentMode==DATE)
                            {
                             if(++date.year==100) date.year=0;
                             update_datestr();
                            }
                            break;
    default:   break;
 }
        update_dispbuf(CurrentMode);
}
void Bkey(void)  /*對當前設置位進行減一操作,如果設置秒分,則給秒位清零,類比Akey()函數*/
{
        if(!IsSet) return;
 switch (SetSelect)
 {
  case SECOND:if(CurrentMode==CLOCK)
                            {
                             clock.s=0;
        update_clockstr();
                            }
                            if(CurrentMode==ALART)
                            {
                             Alart_EN=!Alart_EN;
                             update_alartstr();
                            }
                            if(CurrentMode==DATE)
                            {
                             if(--date.day==0x00) date.day=getmonthdays(date.year,date.month);
                             update_datestr();
                            }
       break;
  case MINUTE:if(CurrentMode==CLOCK)
                            {
                             if(--clock.m==0xff) clock.m=59;
        update_clockstr();
                            }
                            if(CurrentMode==ALART)
                            {
                             if(--alart.m==0xff) alart.m=59;
                             update_alartstr();
                            }
                        &nbs;   if(CurrentMode==DATE)
                            {
                             if(--date.month==0x00) date.month=12;
                             update_datestr();
                            }
       break;
  case HOUR:  if(CurrentMode==CLOCK)
                            {
                             if(--clock.h==0xff) clock.h=23;
        update_clockstr();
                            }
                            if(CurrentMode==ALART)
                            {
                             if(--alart.h==0xff) alart.h=23;
                             update_alartstr();
                            }
                            if(CurrentMode==DATE)
                            {
                             if(--date.year==0xffff) date.year=99;
                             update_datestr();
                            }
       break;
   default:    break;
 }
        update_dispbuf(CurrentMode);
}
void Ckey(void) /*正常走時模式和設置模式的切換*/
{
  if(CurrentMode==TIMER)
  {
        TR1=0;          /*初始化定時器1設置,停止秒表記時*/
        TH1=6;
        TL1=6;
        timer.ms=0;     /*初始化秒表數組*/
        timer.s=0;
        timer.m=0;
        update_timerstr();
  }else
  {
 if(IsSet==0) /*在非秒表模式下,第一次按下C鍵進入設置模式,設置時位*/
 {
  IsSet=1; /*置位標志位,進入設置模式 */
  SetSelect=HOUR;
  return;
 }   /*第二次按C鍵設置分位,第三次按鍵設置秒位,第四次按鍵完成退出設置*/
 if(SetSelect==0) /*按到第四次,即設置完秒位后,將標志位IsSet置0,完成設置*/
 {
  IsSet=0; /*復位標志位,進入正常走時模式*/
  return;
 }
 if(SetSelect>0) SetSelect--;    /*設置位的標志變量SetSelect=0:時位 1:分位 2:秒位*/
 }
}
void Dkey(void) /*工作狀態切換:時鐘、鬧鐘、日期、秒表*/
{
        if(CurrentMode==CLOCK)         /*切換至鬧鐘,同時開關鬧鐘*/
        { CurrentMode=ALART;
          Alart_EN=!Alart_EN;
          update_alartstr();
          return;
        }
        if(CurrentMode==ALART)         /*切換至日期*/
        { CurrentMode=DATE;
          return;
        }
        if(CurrentMode==DATE)          /*切換至秒表,同時關閉設置模式*/
        {
          CurrentMode=TIMER;
          IsSet=0;
          return;
        }
        if(CurrentMode==TIMER)         /*切換至時鐘*/
        {        
          CurrentMode=CLOCK;
          return;
        }
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丝瓜av网站精品一区二区| 福利一区二区在线| 久久国产免费看| 久久成人av少妇免费| 免费观看在线综合色| 午夜精品一区在线观看| 亚洲美女屁股眼交| 亚洲视频一二区| 亚洲bt欧美bt精品| 精品在线你懂的| 成人精品一区二区三区中文字幕| 菠萝蜜视频在线观看一区| 91免费看片在线观看| 欧洲一区在线电影| 精品一区二区三区影院在线午夜| 激情欧美一区二区三区在线观看| 成人一区二区三区| 欧美三级视频在线| 久久免费精品国产久精品久久久久 | 国产人成亚洲第一网站在线播放 | 欧美性大战xxxxx久久久| 欧美一级生活片| 国产精品区一区二区三| 日韩制服丝袜av| 91丨porny丨蝌蚪视频| 56国语精品自产拍在线观看| 国产精品女同一区二区三区| 亚洲一二三四区| 不卡一区二区中文字幕| 精品国产99国产精品| 亚洲欧美日韩中文字幕一区二区三区| 亚洲无线码一区二区三区| 麻豆极品一区二区三区| 色先锋资源久久综合| 久久综合久久99| 婷婷六月综合网| 欧美日韩一二三| 亚洲精品成人在线| 成人99免费视频| 国产精品视频一二| 国产一区二区不卡在线| 日韩精品中文字幕在线一区| 亚洲国产精品综合小说图片区| 91在线国产福利| 成人免费小视频| 色久优优欧美色久优优| 亚洲日本韩国一区| 国产91色综合久久免费分享| 欧美一二三区精品| 精品一区二区三区免费观看| 51精品久久久久久久蜜臀| 婷婷成人综合网| 91精品国产91久久综合桃花| 亚洲综合视频在线观看| 欧美日韩国产bt| 男女男精品视频网| 日韩精品一区二区三区视频在线观看| 免费在线欧美视频| 精品国产凹凸成av人导航| 国产伦精品一区二区三区免费| 国产日韩av一区| 色94色欧美sute亚洲线路一ni| 一区二区三区 在线观看视频 | 99国产精品久久久久久久久久久| 国产精品久久久久永久免费观看| 99在线精品一区二区三区| 日韩美女视频一区二区| 欧美日韩国产高清一区| 国产一区二区导航在线播放| 亚洲欧洲成人精品av97| 欧美另类一区二区三区| 国产乱码字幕精品高清av| 亚洲桃色在线一区| 日韩欧美卡一卡二| 91色.com| 国产一区二区三区国产| 亚洲一级二级三级在线免费观看| 日韩一区二区三区观看| 成人av免费观看| 久久国产综合精品| 亚洲欧洲99久久| 日韩视频一区二区三区在线播放| 97精品电影院| 国产精品99久| 久久精品国内一区二区三区| 一区二区三区中文在线观看| 日韩精品自拍偷拍| 欧洲亚洲国产日韩| 99在线精品免费| 国产99精品国产| 国产电影一区在线| 国产一区二区在线电影| 日本女优在线视频一区二区| 亚洲永久精品大片| 亚洲色图欧美激情| 国产精品久久久久久久蜜臀| 精品国产不卡一区二区三区| 欧美日韩免费高清一区色橹橹| av中文字幕不卡| 欧美曰成人黄网| 99久久伊人网影院| 成人国产精品免费网站| 成人av电影在线观看| 东方aⅴ免费观看久久av| 成人午夜免费av| 成人精品一区二区三区四区| 国产伦精品一区二区三区免费 | 亚洲精品在线观| 26uuu国产在线精品一区二区| 日韩三级精品电影久久久| 日韩欧美另类在线| 精品久久久三级丝袜| 精品剧情在线观看| 日本一区二区视频在线| 亚洲日本青草视频在线怡红院| 国产精品福利av| 亚洲电影视频在线| 久88久久88久久久| 9久草视频在线视频精品| 欧美中文字幕一区二区三区 | 亚洲精品美国一| 午夜视频在线观看一区| 精品中文字幕一区二区| 成人爱爱电影网址| 欧美精品在欧美一区二区少妇| 日韩一区二区免费在线电影| 精品福利在线导航| 国产视频一区在线播放| 亚洲黄一区二区三区| 五月开心婷婷久久| 国产盗摄视频一区二区三区| 91在线观看地址| www国产亚洲精品久久麻豆| 亚洲乱码中文字幕综合| 国产做a爰片久久毛片| 欧美日韩国产天堂| 中文字幕免费在线观看视频一区| 亚洲福利视频导航| 一本一道波多野结衣一区二区| 欧美va天堂va视频va在线| 亚洲欧美偷拍卡通变态| 国产一区二区在线免费观看| 91精品麻豆日日躁夜夜躁| 中文字幕一区在线观看| 国产精品1区2区| 日韩免费高清av| 亚洲综合在线第一页| 91老司机福利 在线| 国产日韩欧美麻豆| 国内成人精品2018免费看| 欧美色中文字幕| 一区二区三区四区高清精品免费观看 | 亚洲国产日韩a在线播放| 色av一区二区| 伊人色综合久久天天人手人婷| 国产精品一级片| 精品国内二区三区| 久久国产乱子精品免费女| 欧美浪妇xxxx高跟鞋交| 亚洲国产aⅴ天堂久久| 91久久国产综合久久| 一区二区三区精品在线观看| 91社区在线播放| 亚洲欧美日韩中文字幕一区二区三区| 粉嫩欧美一区二区三区高清影视| 久久综合狠狠综合| 成人成人成人在线视频| 伊人一区二区三区| 欧美美女一区二区在线观看| 天堂成人免费av电影一区| 日韩欧美一级在线播放| 国产成人鲁色资源国产91色综| 国产农村妇女毛片精品久久麻豆| 国产a区久久久| 亚洲美女屁股眼交3| 欧美午夜一区二区三区免费大片| 日韩激情av在线| 久久精品人人做| 欧美性淫爽ww久久久久无| 久久国内精品自在自线400部| 日本一区二区三区视频视频| 99精品视频一区二区| 蜜桃精品视频在线| 又紧又大又爽精品一区二区| 日韩免费在线观看| 日本久久一区二区| 国产福利91精品一区二区三区| 亚洲激情第一区| 中文字幕av在线一区二区三区| 欧美日韩国产综合久久| 国产二区国产一区在线观看| 亚洲国产一区二区a毛片| 国产精品午夜春色av| 精品少妇一区二区| 欧美酷刑日本凌虐凌虐| 91影院在线免费观看| 懂色av一区二区三区免费观看 | 在线综合+亚洲+欧美中文字幕| 91色.com| 色综合久久天天综合网|