音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

單片機鍵盤設計問題

作者:lxfyang 欄目:單片機
單片機鍵盤設計問題
在下新手,剛寫個了鍵盤程序 一共5個鍵 前兩個鍵還可以,能夠正常工作,為什么加上第3個鍵后,按第二個鍵會影響第3個鍵的顯示,加上第4個鍵后按第2和第3個都對第4個鍵有影響,望高手指點。∫韵率遣糠执a:
//鍵盤主監(jiān)控程序。

unsigned CHAR scankey( void)
{   
//    KeyValue = NoKey;
//    P2=0xff;                    //將P2口全部置為高。
    SWITCH (ReadKey())
    {
  //復位/運行鍵.    
case 0xef:                        //是否為RunStop鍵.
        if ((KeyState==0)&&(DelayTime==0))        //上一次的狀態(tài)為無按鍵且延時已到。
        {            //延時1s后在判斷是否為連續(xù)按鍵.  
                KeyValue=0xef;
                KeyState=1;
                DelayTime=100;
        }
        if ((KeyState==1)&&(DelayTime==0))
        {
            KeyValue=0xef;
            DelayTime=30;        //延時300ms后開始判斷為連續(xù)按鍵.  
        }

    break;
//電壓選擇鍵
case 0xf7:                        //u選擇。
        if ((KeyState==0)&&(DelayTime==0))        //上一次的狀態(tài)為無按鍵且延時已到。
        {                                //延時1s后在判斷是否為連續(xù)按鍵.
                KeyValue=0xf7;
                KeyState=1;
                DelayTime=100;
        }
              if ((KeyState==1)&&(DelayTime==0)){
            KeyValue=0xf7;
            DelayTime=30;                //延時300ms后開始判斷為連續(xù)按鍵.
            }
    break;
//hz選擇鍵

case 0xfb:                        //hz選擇。
        if ((KeyState==0)&&(DelayTime==0))        //上一次的狀態(tài)為無按鍵且延時已到。
        {                                //延時1s后在判斷是否為連續(xù)按鍵.
                KeyValue=0xfb;
                KeyState=1;
                DelayTime=100;
        }
              if ((KeyState==1)&&(DelayTime==0)){
            KeyValue=0xfb;
            DelayTime=30;                //延時300ms后開始判斷為連續(xù)按鍵.
            }
     break;
//sj選擇鍵

case 0xfd:                        //sj選擇。
        if ((KeyState==0)&&(DelayTime==0))        //上一次的狀態(tài)為無按鍵且延時已到。
        {                                //延時1s后在判斷是否為連續(xù)按鍵.
                KeyValue=0xfd;
                KeyState=1;
                DelayTime=100;
        }
              if ((KeyState==1)&&(DelayTime==0)){
            KeyValue=0xfd;
            DelayTime=30;                //延時300ms后開始判斷為連續(xù)按鍵.
            }
     break;
     default:
        KeyState=0;
        DelayTime=0x03;
        KeyValue=NoKey;

    break;
        }
    return KeyValue;
}

//鍵盤處理主過程
void TaskKeyProc(unsigned CHAR KEY)
{    //如果沒有按鍵,立即返回。
    if(KEY == 0xff) return;
    DelayTime|=0;
SWITCH(KEY)
        {
   case KEY1:
           RunStop=~RunStop;        //狀態(tài)反轉(zhuǎn)。    
         if (RunStop==1){        //一開始為待機,按一下鍵后開始工作。如為1,跳出繼續(xù)下面的發(fā)號程序

                Clear_Lcd();
 
2樓: >>參與討論
eleven11
難怪,程序?qū)懙奶珌y了
 
3樓: >>參與討論
lxfyang
不好意思
呵呵 我第一次寫程序 見諒啊 

4樓: >>參與討論
未來是夢
RE
case KEY2:和case KEY3:語句段結(jié)束時少了break;



* - 本貼最后修改時間:2006-10-18 14:08:22 修改者:未來是夢

5樓: >>參與討論
lxfyang
謝謝拉!
搞了大半天頭都大了,怎么也找找不出來 呵呵 謝謝高人指點

6樓: >>參與討論
lxfyang
在問一下!
哪位大蝦有雙機通訊的例程。孔詈煤唵吸c的,對于新手來說比較容易理解的.能否給小弟發(fā)一份,小弟感激不盡,謝謝了。!yangchan5945@163.com我郵箱

參與討論
昵稱:
討論內(nèi)容:
 
 
相關帖子
急求紅外遙控編碼資料
請問51系列單片機處于“空閑模式”時,它的i/o的狀態(tài)是怎樣的?
小弟向各位前輩請教。。
請給推薦一款4M Byte/5v的FLASH
UCDOS中的24x24字庫問題
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號