中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > C51單片機矩陣鍵盤掃描去抖程序

        C51單片機矩陣鍵盤掃描去抖程序

        作者: 時間:2011-10-27 來源:網(wǎng)絡 收藏

        電子去抖

        本文引用地址:http://www.antipu.com.cn/article/172438.htm

          這段有1個的項目,用的是新華龍的 F020。項目中要使成為事實4*5的。電路圖如次如示

          

        矩陣電路圖

          此中,四條列線接在 F020的P2~P5口線上,5條行線接在P5口線上(F020的P5口是差別于平凡C51的擴大接口,不克不及位尋址)。同時4條列線接在一四輸入與非門(74LS20)上,門輸出接F020的外間斷1,如許,不論什么一鍵按下,都會孕育發(fā)生間斷,報信舉行電子

          托1個新手給寫了鍵盤的電子,基本功效都能使成為事實,但對鍵盤的去抖措置懲罰老是做欠好,體現(xiàn)是或不克不及去抖,或按鈕相應太卡,或采集到紕繆鍵值??磥硇率謱仃囨I盤電子掃描原理掌握較好(網(wǎng)上資料多),但對鍵盤去抖的知識卻有所欠缺,基本都是按照書上說的延時一段時間再采集鍵值,現(xiàn)實應用中,如許的措置懲罰是遠遠不敷的,過于簡單。現(xiàn)實去抖措置懲罰應該如許舉行更合理一些,即連續(xù)采集鍵值,當采集到的鍵值在一段時間內(nèi)是不異的,即以為按鈕狀況已經(jīng)穩(wěn)定,此鍵值為真實鍵值。別的,按鈕開釋時,也會有抖動,導致誤采鍵值,是以在鍵開釋時,也應舉行去抖措置懲罰,措置懲罰要領同時是連續(xù)一段時間采集到無鍵按下狀況,才以為按鈕被開釋。按照這個要領,我重寫了新手的程序,現(xiàn)實應用中體現(xiàn)極好。

          現(xiàn)將程序發(fā)布如次,供新手參考。

          Key.h文件內(nèi)容

          #ifndef __key_H__

          #define __key_H__

          #define 滅茬_KEY 0x0000

          #define S1 0x3801

          #define S2 0x3401

          #define S3 0x3802

          #define S4 0x3402

          #define S5 0x3804

          #define S6 0x3404

          #define S7 0x3808

          #define S8 0x3408

          #define S9 0x3810

          #define S10 0x3410

          #define S11 0x2C01

          #define S12 0x1C01

          #define S13 0x2C02

          #define S14 0x1C02

          #define S15 0x2C04

          #define S16 0x1C04

          #define S17 0x2C08

          #define S18 0x1C08

          #define S19 0x2C10

          #define S20 0x1C10

          #define KEY_DELAY 20

          extern unsigned int Key_Value;

          extern void Init_Key();

          extern void Scan_Key();

          extern bit Key_Pressed;

          extern bit Key_Released;

          extern unsigned int idata Keypress_Count;

          extern unsigned int idata Keyrelease_Count;

          #endif

          key.c 文件內(nèi)容

          #include

          #include key.h

          bit Key_Down; //是不是有鍵按下的標記

          unsigned int idata Keypress_Count;

          sbit Col_Key0 = P2^2;

          sbit Col_Key1 = P2^3;

          sbit Col_Key2 = P2^4;

          sbit Col_Key3 = P2^5;

          bit Key_Pressed;

          bit Key_Released;

          unsigned int Key_Value; bit Key_Down; //是不是有鍵按下的標記

          unsigned int idata Keypress_Count; //一毫秒增加一次的變量

          unsigned int idata Keyrelease_Count; //一毫秒增加一次的變量

          //矩陣鍵盤施用間斷1作為鍵盤間斷

        DIY機械鍵盤相關社區(qū):機械鍵盤DIY



        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區(qū)

        關閉