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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1884|回復: 12
收起左側

51單片機按鍵程序問題求助

[復制鏈接]
ID:261451 發表于 2018-7-18 09:53 | 顯示全部樓層 |閱讀模式
  1. if(key3==0)
  2.       {
  3.           delay_ms(50);        
  4.                   if(key3==0)
  5.                         {
  6.                              if(yi<9)
  7.                                  {
  8.                                    yi++;
  9.                                   }
  10.                         while(!key3);
  11.                        }
  12.         }
  13.   if(key2==0)
  14.        {
  15.            delay_ms(50);        
  16.                  if(key2==0)
  17.                       {
  18.                           if(yi>0)
  19.                                 {
  20.                                  yi--;
  21.                                  }
  22.                        while(!key2);
  23.                       }
  24.        }
復制代碼

回復

使用道具 舉報

ID:261451 發表于 2018-7-18 10:02 | 顯示全部樓層
本帖最后由 一袋天驕 于 2018-7-19 08:34 編輯
  1. if(key3==0)
  2.     {
  3.     delay_ms(50);        
  4.            if(key3==0)
  5.                {                                 
  6.                   if(er<9)
  7.                        {
  8.                          er++;
  9.                        }
  10.                      while(!key3);
  11.                  }
  12.    }
復制代碼


回復

使用道具 舉報

ID:261451 發表于 2018-7-18 10:06 | 顯示全部樓層
程序里面有多個地方需要按鍵函數,怎樣做一個按鍵子函數,可以對yi,er,san,si……進行按鍵加減呢
回復

使用道具 舉報

ID:84765 發表于 2018-7-18 14:51 | 顯示全部樓層
這個簡單只要void打包好就行了,看下面程序就知道了

void anjian1()
{
if(key3==0)
    {
    delay_ms(50);        
           if(key3==0)
               {                                 
                  if(yi<9)

                       {

                         yi++;

                       }

                    while(!key3);

                }
   }


if(key2==0)
   {
         delay_ms(50);        
         if(key2==0)
              {
               if(yi>0)
                    {
                      yi--;
                     }
                while(!key2);
              }
   }

}
void anjian2()
{
if(key3==0)
    {
    delay_ms(50);        
           if(key3==0)
               {                                 
                  if(san<9)

                       {

                         san++;

                       }

                    while(!key3);

                }
   }


if(key2==0)
   {
         delay_ms(50);        
         if(key2==0)
              {
               if(san>0)
                    {
                      san--;
                     }
                while(!key2);
              }
   }
}

void main()
{

  while(1)
  {
  anjian1();
  anjian2();
  }
}
回復

使用道具 舉報

ID:261451 發表于 2018-7-18 15:35 | 顯示全部樓層
13976778401 發表于 2018-7-18 14:51
這個簡單只要void打包好就行了,看下面程序就知道了

void anjian1()

謝謝,我在想能不能只寫一個按鍵函數,
void  anjian(x)
{  
(按鍵加減)
},

然后需要寫yi時用anjian(yi),需要寫er用anjian(er),不知道我的想法有沒有錯誤
回復

使用道具 舉報

ID:261451 發表于 2018-7-18 16:28 | 顯示全部樓層
還有一個疑問就是如何給yi設定一個變量初值,然后在這個初值上加減
void  anjian()
{
if(key3==0)
      {
          delay_ms(50);        
                  if(key3==0)
                        {
                             if(yi<9)
                                 {
                                   yi++;
                                  }
                        while(!key3);
                       }
        }
  if(key2==0)
       {
           delay_ms(50);        
                 if(key2==0)
                      {
                          if(yi>0)
                                {
                                 yi--;
                                 }
                       while(!key2);
                      }
       }
}
回復

使用道具 舉報

ID:84765 發表于 2018-7-18 17:38 | 顯示全部樓層
一袋天驕 發表于 2018-7-18 15:35
謝謝,我在想能不能只寫一個按鍵函數,
void  anjian(x)
{  

不明確,要告訴單片機步驟教他走路!
回復

使用道具 舉報

ID:84765 發表于 2018-7-18 17:41 | 顯示全部樓層
一袋天驕 發表于 2018-7-18 16:28
還有一個疑問就是如何給yi設定一個變量初值,然后在這個初值上加減
void  anjian()
{

void main()
{
可以在這里設置變量初級
yi=0;或等于多少自己定,初始化后就是你自己設定的變量初級!
while(1)
{
.....................
}
}

評分

參與人數 1黑幣 +70 收起 理由
admin + 70 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:374361 發表于 2018-7-18 20:47 | 顯示全部樓層
將while(!key2)寫到if條件判斷外面就OK了
回復

使用道具 舉報

ID:261451 發表于 2018-7-19 08:13 | 顯示全部樓層
13976778401 發表于 2018-7-18 17:38
不明確,要告訴單片機步驟教他走路!

謝謝,因為定義的yi,er,san,si....,比較多,所以想需要哪個時用哪個
回復

使用道具 舉報

ID:261451 發表于 2018-7-19 08:33 | 顯示全部樓層
13976778401 發表于 2018-7-18 17:41
void main()
{
可以在這里設置變量初級

謝謝,是我沒說清楚,不能在外面賦值,不過最后用了一個標志位g實現,用的4樓的子函數
void main()
{
while(1)
    {
   if(g=0)
        {
        yi=guang%10;
        g=1;
        }
    anjian_yi();
      ......
   if(key1==0)
     {
   g=0;
       }

   if(g=0)
        {
        yi=wen%10;
        g=1;
        }
    anjian_yi();
     ......
     }
}
回復

使用道具 舉報

ID:261451 發表于 2018-7-19 08:35 | 顯示全部樓層
goldfatherzuo 發表于 2018-7-18 20:47
將while(!key2)寫到if條件判斷外面就OK了

不太理解怎么做
回復

使用道具 舉報

ID:261451 發表于 2018-7-19 09:28 | 顯示全部樓層
goldfatherzuo 發表于 2018-7-18 20:47
將while(!key2)寫到if條件判斷外面就OK了

是這樣么,在里面會有什么影響呢
if(key2==0)
       {
           delay_ms(50);
                 if(key2==0)
                      {
                          if(yi>0)
                                {
                                 yi--;
                                 }
                      }
                       while(!key2);
       }
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本成人在线网址 | 欧美激情在线一区二区三区 | 黄色毛片一级 | 国产精品一区二区久久 | 五月婷婷激情网 | 久久黄色网| h片在线免费看 | 国产欧美精品一区二区 | 91麻豆精品一区二区三区 | 四虎精品在线 | 午夜视频一区二区 | 精品少妇v888av | 91精品国产综合久久久久久 | 日韩视频一区 | 国产精品观看 | 91看片网| 亚洲第一福利视频 | 国产综合精品 | 成人精品一区二区三区中文字幕 | 九九国产 | 亚洲午夜久久久 | 精品久久久一区二区 | 国产91在线播放精品91 | 国产91精品久久久久久久网曝门 | 黄色一级视频 | 伊人精品在线 | 国产激情毛片 | 一区二视频 | 午夜精品久久久久久久99黑人 | 精品久久久久久中文字幕 | 欧洲视频一区二区 | 国产高清视频在线 | 国产美女自拍视频 | 亚洲欧美日韩在线不卡 | 99久久久久久99国产精品免 | 久久久久久91 | 欧美黄色免费网站 | 亚洲一区二区视频 | 丁香婷婷成人 | 91精品国产91久久久久游泳池 | 亚洲一区二区三区在线免费观看 |