新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 節約單片機端口資源的鍵盤電路

        節約單片機端口資源的鍵盤電路

        作者: 時間:2011-09-28 來源:網絡 收藏
        以下為鍵盤處理子程序:

          uchar getkey(void)

          {

          uchar x

          P1=P1|0x07; /*I/O1至I/O3寫“1”*/

          xP10x07; /*讀入I/O1至I/O3并屏蔽其它位*/

          if(x= =10)

          {

          P1=P1|0x07;

          P1=P10xfd; /*I/O2寫“0”*/

          x=P10x07;

          x=(x+1)/2+10; /*屏蔽I/O2并轉換K10至K12的鍵值*/

          if(x = =13)

          {

          P1=P1|0x07;

          P1=P10xfb; /*I/O3寫“0”*/

          x=P10x07;

          x=x+13; /*屏蔽I/O3并轉換K13至K15的鍵值*/

          }

          }

          }

          return x;

          }

          利用該并根據邏輯組合原理可推斷開n條I/O線可組合的按鍵數N為:

          N=(2n-1)+(2 n-1 -1)n

          表1給出了2至4條I/O線可組合的按鍵數。

          表1 2~4條I/O線可組合的按鍵數

          I/O線 可組合按鍵

          2 5

          3 16

          4 43

          3 結束語

          這種新型在使用時非常穩定可靠,節省大量的I/O端口,而且程序處理也很簡潔,速率比4×4的掃描式電路還要快,因此,該電路特別適合一些引腳較少的單片機,如PIC12C508、Z86E03以及AT89C2051等。


        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 靖州| 汤原县| 巩义市| 垫江县| 屯昌县| 孝义市| 嘉善县| 汝城县| 怀柔区| 修水县| 光山县| 龙州县| 竹山县| 含山县| 道孚县| 泸溪县| 华容县| 临沂市| 嘉善县| 皮山县| 平舆县| 绍兴市| 伊通| 曲阜市| 郧西县| 青河县| 乐安县| 徐汇区| 丹凤县| 白城市| 禹州市| 伊宁县| 右玉县| 上饶县| 东兴市| 澄江县| 长武县| 林芝县| 奎屯市| 宣汉县| 子长县|