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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1819|回復: 0
打印 上一主題 下一主題
收起左側

單片機一鍵多功能獨立鍵盤遇到問題求幫助!

[復制鏈接]
跳轉到指定樓層
樓主
ID:299904 發表于 2018-4-2 11:55 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
k1是功能選擇鍵,選擇功能是根據按鍵次數定義的。
怎樣讓k1一直保持低電平狀態并且可以選擇功能。





void keyscan()//菜單鍵按下掃描函數定義
{
k1=1;
k2=1;
k3=1;
k4=1;
//判斷菜單鍵k1是否按下
if(k1==0)
{
  delay(5);
  
  if(k1==0)
  {
   while(!k1);//松手檢測
   k1_num++;//記錄菜單鍵k1是第幾次按下,而判斷是調節秒、分還是時。
   if(k1_num==1 )//指示調節秒
   {   
       EX0=0;//關閉外部中斷0,使時間走動停止,準備調時間
    ds1307_write_date(0xd0,0,0x80|b_second);
    lcd_write_com(0x80+0x40+12);//數據指針和光標移動秒出
    lcd_write_com(0x0f);//使光標顯示,并光標處字符格符閃爍,用來提示用戶此時可以調節是秒,是分還是時。
   }
   if(k1_num==2)//指示調節分
   {
    lcd_write_com(0x80+0x40+9);//數據指針和光標移動分出
   }
   if(k1_num==3)//指示調節時
   {
    lcd_write_com(0x80+0x40+6);//數據指針和光標移動時出
   }
   if(k1_num==4)//退出時間調節菜單
   {
    k1_num=0;//菜單鍵k0按下清零
    lcd_write_com(0x0c);//恢復到時鐘走動狀態,即光標不顯示,不閃爍
    //將所調的時間轉換成bcd碼
    b_second=dectobcd(second);
    b_minute=dectobcd(minute);
    b_hour=dectobcd(hour);
    //將所調的時間向時鐘寫入
    ds1307_write_date(0xd0,2,b_hour);
    ds1307_write_date(0xd0,1,b_minute);
    ds1307_write_date(0xd0,0,b_second);
    EX0=1;//開外部中斷0,時間開始繼續走動
   }
   
  }
}
//判斷是否按下過時間調節菜單鍵k1,而處于需要調節時間狀態
if(k1==0)
{
  //判斷是否是上調鍵k2按下
  if(k2==0)
  {
   delay(5);
   if(k2==0)
   {
    while(!k2);//松手檢測
    if(k2_num==1)//上調秒
    {
     second++;
     if(second==60)
      second=0;
     lcd_write_second(second);//向lcd寫入被修改的時間
     lcd_write_com(0x80+0x40+12);//光標位置重定位到所要調的時間處
     
    }
    if(k2_num==2)//上調分
    {
     minute++;
     if(minute==60)
      minute=0;
     lcd_write_minute(minute);
     lcd_write_com(0x80+0x40+9);
    }
    if(k2_num==3)//上調時
    {
     hour++;
     if(hour==24)
      hour=0;
     lcd_write_hour(hour);
     lcd_write_com(0x80+0x40+6);
    }
   }
  }
  
  //判斷是否是下調鍵k3按下
  if(k1==0)
  {
   delay(5);
   if(k3==0)
   {
    while(!k3);
    if(k3_num==1)//下調節秒
    {
     second--;
     if(second==255)
      second=59;
     lcd_write_second(second);
     lcd_write_com(0x80+0x40+12);
    }
    if(k3_num==2)//下調節分
    {
     minute--;
     if(minute==255)
      minute=59;
     lcd_write_minute(minute);
     lcd_write_com(0x80+0x40+9);
    }
    if(k3_num==3)//下調節時
    {
     hour--;
     if(hour==255)
      hour=23;
     lcd_write_hour(hour);
     lcd_write_com(0x80+0x40+6);
    }
   }
  }
  if(k1==0)
  {
   delay(5);
  //判斷是否是確定鍵k1按下
  if(k4==0)
  {
   while(!k4);//松手檢測
       if(k4_num==1)//退出時間調節菜單
   {
    lcd_write_com(0x0c);//恢復到時鐘走動狀態,即光標不顯示,不閃爍
    //將所調的時間轉換成bcd碼
    b_second=dectobcd(second);
    b_minute=dectobcd(minute);
    b_hour=dectobcd(hour);
    //將所調的時間向時鐘寫入
    ds1307_write_date(0xd0,2,b_hour);
    ds1307_write_date(0xd0,1,b_minute);
    ds1307_write_date(0xd0,0,b_second);
    EX0=1;//開外部中斷0,時間開始繼續走動
   }
  
   }  
  }
}
}     
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲欧美一区二区三区国产精品 | 国产精品一区二区日韩 | av高清 | 午夜精品久久久久久久久久久久久 | 91综合网 | 亚洲一区视频在线 | 99视频免费播放 | 国内精品免费久久久久软件老师 | 成人在线精品视频 | 国产精品久久久久永久免费观看 | 天天综合操 | 91久久精品日日躁夜夜躁欧美 | 特黄一级| 免费午夜电影 | 国产成人精品午夜 | 午夜国产精品视频 | 中文字幕国产高清 | 国产欧美精品在线观看 | 国产精品久久精品 | 国产欧美精品区一区二区三区 | 噜噜噜色网 | 国内久久 | 中文字幕亚洲一区二区三区 | 欧美日韩中文在线 | 91xx在线观看 | 7777在线 | 欧美a免费 | 国产免费xxx | 日韩一区二区在线免费观看 | av片在线免费看 | 九九精品网 | 久久久国产一区 | 国产分类视频 | 99久久99| 羞羞在线观看视频 | 成人在线视频免费观看 | www.国产一区 | 伊人网综合 | 国产在线精品一区 | 精品一区精品二区 | 伊人国产精品 |