1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

標題: 51單片機按鍵程序問題求助 [打印本頁]

作者: 一袋天驕    時間: 2018-7-18 09:53
標題: 51單片機按鍵程序問題求助
  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.        }
復制代碼


作者: 一袋天驕    時間: 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.    }
復制代碼



作者: 一袋天驕    時間: 2018-7-18 10:06
程序里面有多個地方需要按鍵函數,怎樣做一個按鍵子函數,可以對yi,er,san,si……進行按鍵加減呢
作者: 13976778401    時間: 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();
  }
}

作者: 一袋天驕    時間: 2018-7-18 15:35
13976778401 發表于 2018-7-18 14:51
這個簡單只要void打包好就行了,看下面程序就知道了

void anjian1()

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

然后需要寫yi時用anjian(yi),需要寫er用anjian(er),不知道我的想法有沒有錯誤
作者: 一袋天驕    時間: 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);
                      }
       }
}
作者: 13976778401    時間: 2018-7-18 17:38
一袋天驕 發表于 2018-7-18 15:35
謝謝,我在想能不能只寫一個按鍵函數,
void  anjian(x)
{  

不明確,要告訴單片機步驟教他走路!
作者: 13976778401    時間: 2018-7-18 17:41
一袋天驕 發表于 2018-7-18 16:28
還有一個疑問就是如何給yi設定一個變量初值,然后在這個初值上加減
void  anjian()
{

void main()
{
可以在這里設置變量初級
yi=0;或等于多少自己定,初始化后就是你自己設定的變量初級!
while(1)
{
.....................
}
}
作者: goldfatherzuo    時間: 2018-7-18 20:47
將while(!key2)寫到if條件判斷外面就OK了
作者: 一袋天驕    時間: 2018-7-19 08:13
13976778401 發表于 2018-7-18 17:38
不明確,要告訴單片機步驟教他走路!

謝謝,因為定義的yi,er,san,si....,比較多,所以想需要哪個時用哪個
作者: 一袋天驕    時間: 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();
     ......
     }
}
作者: 一袋天驕    時間: 2018-7-19 08:35
goldfatherzuo 發表于 2018-7-18 20:47
將while(!key2)寫到if條件判斷外面就OK了

不太理解怎么做
作者: 一袋天驕    時間: 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);
       }




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1