新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > AT89S52鍵盤程序

        AT89S52鍵盤程序

        作者: 時間:2016-11-13 來源:網絡 收藏
        //返回鍵值

        /********************************************************************/

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

        //鍵盤掃描子程序 獲取鍵值函數

        /****************************************************************************/

        uchar keyscan(void)

        { uchar temp;

        P0=0xfe; //第一行置低

        temp=P0;

        temp&=0xf0;

        if(temp!=0xf0)

        {

        delay_nms(10);

        if(temp!=0xf0)

        {

        switch(temp) //根據列線獲取第一行的鍵值

        {

        case 0xe0: key=3; break;

        case 0xd0: key=2; break;

        case 0xb0: key=1; break;

        case 0x70: key=0; break;

        }

        }

        }

        P0=0xfd; //掃描第二行,置低

        temp=P0;

        temp&=0xf0;

        if(temp!=0xf0)

        {

        delay_nms(10);

        if(temp!=0xf0)

        {

        switch(temp)

        {

        case 0xe0: key=7; break;

        case 0xd0: key=6; break;

        case 0xb0: key=5; break;

        case 0x70: key=4; break;

        }

        }

        }

        P0=0xfb; //掃描第三行,置低

        temp=P0;

        temp&=0xf0;

        if(temp!=0xf0)

        {

        delay_nms(10);

        if(temp!=0xf0)

        {

        switch(temp)

        {

        case 0xe0: key=11; break;

        case 0xd0: key=10; break;

        case 0xb0: key=9; break;

        case 0x70: key=8; break;

        }

        }

        }

        P0=0xf7; //掃描第四行,置低

        temp=P0;

        temp&=0xf0;

        if(temp!=0xf0)

        {

        delay_nms(10);

        if(temp!=0xf0)

        {

        switch(temp)

        {

        case 0xe0: key=15; break;

        case 0xd0: key=14; break;

        case 0xb0: key=13; break;

        case 0x70: key=12; break;

        }

        }

        }

        else

        {

        ;

        }

        return(key);

        }



        關鍵詞: AT89S52鍵盤程

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 江都市| 镇平县| 华宁县| 宜川县| 潢川县| 交城县| 广水市| 莎车县| 桐庐县| 斗六市| 兴国县| 额济纳旗| 萍乡市| 丰原市| 遂溪县| 改则县| 巴马| 广西| 四平市| 阜康市| 昭通市| 富民县| 托里县| 绥阳县| 若尔盖县| 舒城县| 进贤县| 昭苏县| 三门县| 临猗县| 府谷县| 珠海市| 本溪市| 元朗区| 江永县| 左云县| 三都| 镇江市| 闵行区| 澄迈县| 盖州市|