標題: 單片機功能怎么實現(xiàn)? [打印本頁]

作者: hhh275    時間: 2014-10-17 21:27
標題: 單片機功能怎么實現(xiàn)?
在主程序中我寫了這段程序,怎么實現(xiàn)bz0=1和 bz0=0兩種狀態(tài)
主程序中,先是bz0=0;當按下按鍵時bz0=1;但仿真后不能分開兩個功能 面向各位請教問題出在哪里了  謝謝

void key2()
{
    bz0=~bz0;
     if(bz0==1)
       {
        ZS=0;
        bz1=1;
         }
  
   
}
void main()
{  bz0=0;

whlie(1)
{
if(bz0==1)
     {
     bz0=0;     //選則英寸界面
     bz1=1;
     ZS=0;      //指示燈亮
     }
     else
      {
       bz0=1;   //選則毫米界面
       bz1=0;
    ZS=1;    //指示燈滅
      }
}

作者: T29    時間: 2014-10-17 22:01
不是很懂,感覺你的鍵盤掃描這里取反不知道什么意思,按鍵好像需要一個自鎖標志,否則運算速度很快,狀態(tài)也不斷在變,那你的程序判斷輸出肯定也無法成立,論壇里有很多按鍵程序,你搜一下吧
作者: hhh275    時間: 2014-10-17 23:33
本帖最后由 hhh275 于 2014-10-17 23:35 編輯

按鍵進行了更改,可以分開了;但是我現(xiàn)在需要再按一下鍵就回到bz5=0;也就是bz5第一下制鎖,第二下取消制鎖的功能  ,謝謝
void key2()
{
   if(S2==0)
         {                    
           delay(10);
                    if(S2==0)
                                        {
                                               bz0=~bz0;
                                           if(bz0==1)
                                                                 {        
                                                                   bz5=1;
                                                                   ZS=0;
                                                                   }
                                                    else
                                                                 {
                                                                 bz5=1;
                                                                 ZS=0;
                                                                 }
                                         }
                                        else
                                        {
                                        bz5=0;
                                         ZS=1;
                                        }
                                }
               

}
void main()
{        while(1)
{ if(bz5==1)
                          {
                           bz1=1;
                           ZS=0;             //指示燈亮
                          }
                          else
                          {
                          bz1=0;
                          ZS=1;             //指示燈滅                          }
      }
}
作者: a110    時間: 2014-10-19 00:14
學習了
作者: skyhanfeng    時間: 2014-10-20 14:27
用while語句進行判斷,可鎖住。if語句只進行一次判斷




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