新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機系列連載8—獨立鍵盤與矩陣鍵盤

        51單片機系列連載8—獨立鍵盤與矩陣鍵盤

        作者: 時間:2016-11-27 來源:網絡 收藏
        在前面我們講的都是向單片機中向外輸出數據,今天我們開始介紹一下如何向單片機里面輸入數據,也就是鍵盤。

        本文引用地址:http://www.104case.com/article/201611/322440.htm

        鍵盤有兩種,獨立式鍵盤與行列式矩陣鍵盤。

        獨立式鍵盤是指直接用一根I/O口線構成的單個按鍵電路,每個I/O口的按鍵不會影響另外一個,具體電路圖如下:

        接下來看一個程序,這個程序主要是按鍵二極管亮,同時按一下數碼管顯示一下,往下加,加到9,具體程序如下:

        #include

        #defineuintunsignedint;

        #defineucharunsignedchar;

        sbitd1=P1^2;

        sbitduan=P2^2;

        sbitwei=P2^3;

        sbitkey1=P3^3;

        ucharcodetable[]={

        0x3f,0x06,0x5b,0x4f,

        0x66,0x6d,0x7d,0x07,

        0x7f,0x6f,0x77,0x7c,

        0x39,0x5e,0x79,0x71};

        ucharnum,t1,y,z;

        voiddelay(uintz)

        {

        uintt1,y;

        for(t1=z;t1>0;t1--)

        for(y=110;y>0;y--);

        }

        voidmain()

        {wei=1;

        P0=0xfe;

        wei=0;

        key1=1;

        while(1)

        {

        if(key1==0)

        {

        delay(10);

        if(key1==0)

        {

        d1=0;

        num ;

        if(num==10)

        num=0;

        }

        while(key1==0);//這個語句加的好神奇

        }

        else

        d1=1;

        duan=1;

        P0=table[num];

        duan=0;

        }

        }

        但是在仿真時就出現問題了,C(15):errorC141:syntaxerrornear;對應的是這句voiddelay(uintz),但直到現在我都不知道它到底哪里錯了,真悲哀,先記下來,以后有時間回過頭再看。

        矩陣式鍵盤跟獨立式鍵盤相反,彼此之間是有聯系的,如下圖:


        矩陣式鍵盤的原理也很簡單,跟獨立按鍵的基本原理是一樣的,但是它是一行一行掃描的,由于時間關系就不做過多分析,具體看一下下面的編程:


        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 肃宁县| 枝江市| 任丘市| 图们市| 若尔盖县| 迁安市| 洞头县| 凯里市| 开阳县| 咸阳市| 郴州市| 洪湖市| 朝阳市| 拉萨市| 昌邑市| 宁河县| 淅川县| 彰化县| 商丘市| 定边县| 建昌县| 平潭县| 陕西省| 长治县| 安图县| 广宁县| 门源| 巴中市| 博乐市| 威宁| 乌海市| 珲春市| 运城市| 邳州市| 四平市| 张家口市| 广昌县| 乐陵市| 三门县| 民丰县| 信宜市|