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

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

我的按鍵程序設計,可以處理加速鍵、一鍵多功能等情況

作者:xwj 欄目:單片機
我的按鍵程序設計,可以處理加速鍵、一鍵多功能等情況
呵呵
看到論壇在討論按鍵,也把我設計按鍵程序的思路說說,歡迎大家拍磚

1、一般都不在鍵盤程序中延時,而是通過隔一段時間調用(比如10毫秒)來掃描按鍵,以盡量釋放CPU資源;
2、所有鍵盤程序基本上都是一個模式,可以處理加速鍵、一鍵多功能等情況;
3、對外接口只有2個,換用不同硬件的鍵盤只需把該鍵盤程序加入工程編譯即可,其他不需要作任何改動,非常方便。


基本上都是一個模式:
有鍵?--YES——和上次相同?--No--Keyold=0;退出
  |      |
  |     YES--Keyold++;
  |      |
  |     Keyold==首鍵延時KEYDELAY?--No--退出
  |      |
  |     YES--Keyok=1;     //按下不放一定時間發(fā)首鍵,后面發(fā)加速鍵
  |            保存鍵值到Keydata;(必要時譯碼)
  |            Keyold=KEYDELAY-KEYLOOP(按住不放的延時);--退出
  |
  No--Keyold==0?--YES--退出
            |
           N0--Keyok=1;    //不為0說明按了鍵再放開,當然作按鍵有效處理
                 保存鍵值到Keydata;(必要時譯碼)
                 Keyold=0;--退出

所有鍵盤程序對外接口:
unsigned CHAR KeyGetCode(void)        //返回按鍵碼
{
    key_ok=0;
    return(key_data);
}

bit KeyTest(void)            //檢查有無按鍵
{
    KeyScan();            //鍵掃描
    return(key_ok);
}
    

   



2樓: >>參與討論
xwj
自己用的按鍵程序,為了直觀去掉了煩瑣的解碼程序
//--------------------------------------------------------------------------//
//                                源程序大公開                              //
//                    (c) COPYRIGHT 20012005 xuwenjun                     //
//                            All Rights Reserved                           //
//                                    V1.00                                 //
//--------------------------------------------------------------------------//
//標 題: P1口行列式鍵盤程序                                                //
//文件名: xwj_hlkey.c                                                       //
//版 本: V1.00                                                             //
//修改人: 徐文軍                         E-mail:xuwenjun@21cn.com           //
//日 期: 05-05-13                                                          //
//描 述: P1口行列式鍵盤程序                                                //
//聲 明:                                                                   //
//        以下代碼僅免費提供給學習用途,但引用或修改后必須在文件中聲明出處. //
//        如用于商業(yè)用途請與作者聯(lián)系.    E-mail:xuwenjun@21cn.com           //
//        有問題請mailto xuwenjun@21cn.com   歡迎與我交流!                  //
//--------------------------------------------------------------------------//
//老版本: 無                             老版本文件名:                      //
//創(chuàng)建人: 徐文軍                         E-mail:xuwenjun@21cn.com           //
//日 期: 05-05-13                                                          //
//--------------------------------------------------------------------------//
#include <reg52.h>
#include "xwj_hlkey.h"                //  P1口行列式鍵盤  //
//#include "xwj_bp.h"                //峰鳴器

#define KEYDELAY 25    /*首鍵延遲次數(shù)*/
#define KEYLOOP 10    /*連續(xù)鍵間隔次數(shù),需小于KEYDELAY*/
unsigned CHAR key_bak;
unsigned CHAR key_temp;
unsigned CHAR key_old;
unsigned CHAR key_data;
bit key_ok;

    //  P1口行列式鍵盤  //
#define KEYPIN_L  P1               // 定義鍵掃描列端口為 P1低四位輸入  //
#defin
3樓: >>參與討論
ri1982

 
4樓: >>參與討論
fushaobing
已經收藏,謝謝
TO xwj:你的程序好象很煩瑣,能不能發(fā)個簡潔一點的?你的“Keyold”是不是指“鍵齡”?

5樓: >>參與討論
huzeng168
非常感謝
xwj:非常感謝你,我是初學者,你有沒有匯編的程序,非常想學習下按鍵程序設計,再次謝謝!

6樓: >>參與討論
chenglcd
還可以,UP
 
7樓: >>參與討論
zxlfly
感謝!
已經收藏

8樓: >>參與討論
wu1980
re
如果用51匯編,該怎么寫呢?麻煩指導.
zhangsong@airluxgroup.com
謝謝!

9樓: >>參與討論
艾森豪威爾
不錯
收藏中...

10樓: >>參與討論
kanprin
不錯!
 
參與討論
昵稱:
討論內容:
 
 
相關帖子
可用外接4MB程序存儲器和32KB RAM的8/16位單片機選什么好?
告急  告急  。51單片機有不有3.3V電源工作的。
595級聯(lián),用來做大型LED幕的,有沒有問題?(附圖)
請教:用89C51怎么實現(xiàn)在線交流電流檢測的檢測
51單片機主程序怎么編呀?
免費注冊為維庫電子開發(fā)網會員,參與電子工程師社區(qū)討論,點此進入


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