新聞中心

        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 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 思茅市| 桂平市| 南雄市| 临洮县| 麟游县| 淳安县| 安岳县| 丽水市| 连城县| 城固县| 天镇县| 龙岩市| 中山市| 伊川县| 张家界市| 电白县| 得荣县| 江门市| 益阳市| 瑞安市| 巴楚县| 巧家县| 定日县| 沙坪坝区| 稻城县| 金华市| 泾阳县| 濮阳县| 平利县| 庆云县| 蛟河市| 当阳市| 伊宁县| 成安县| 邵阳县| 阳东县| 岚皋县| 定结县| 石嘴山市| 贺兰县| 景宁|